opencode-chorus
v0.3.2
Published
OpenCode plugin for Chorus MCP workflow, planning, and reviewer automation.
Maintainers
Readme
opencode-chorus
The Chorus integration plugin for OpenCode.
This plugin connects OpenCode to your Chorus instance, letting you manage proposals, execute tasks, and run the AI-DLC pipeline.
Current plugin release: v0.3.1. This release is compatible with the Chorus v0.7.0 permission model.
Changelog
Release notes are tracked in CHANGELOG.md.
Features
When enabled, opencode-chorus loads Chorus workflow skills and exposes a lazy Chorus tool bridge inside OpenCode. You don't need to configure tools or link skill directories manually.
The plugin provides lifecycle hooks, 7 workflow skills, and 2 review agents for the AI-DLC process.
Components
| Feature Category | Components | Description |
|---|---|---|
| Lifecycle Hooks | State Management | Keeps your OpenCode session state in sync with the .chorus directory. |
| | Lazy MCP Bridge | Exposes chorus_tools, chorus_tool_get, and chorus_tool_execute, then discovers real Chorus tools from the Chorus MCP server on demand. |
| Review Agents | Proposal Reviewer | Automated review agent that evaluates proposals and waits for verdicts. |
| | Task Reviewer | Automated review agent that verifies completed tasks. |
| Workflow Skills | chorus | The entry point. Platform overview, shared tools, and lifecycle rules. |
| | chorus-idea | Claim ideas, elaborate on requirements, and confirm with owners. |
| | chorus-proposal | Draft PRDs, tech designs, and task dependency graphs. |
| | chorus-develop | Implement tasks, report work, and run self-checks before verification. |
| | chorus-quick-dev | Handle small changes and hotfixes with optional self-verification. |
| | chorus-review | Handle reviewer verdicts, governance, and verification states. |
| | chorus-yolo | Execute the full-auto AI-DLC pipeline from prompt to completion. |
Note: A local or online Chorus instance must be running and accessible to use this plugin.
Getting Started
1. Install the Plugin
Install opencode-chorus from npm by adding it to your OpenCode configuration.
Edit your OpenCode config file (usually ~/.config/opencode/config.json) to include the plugin:
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-chorus"]
}2. Configure Credentials
The plugin needs to know where your Chorus server is and how to authenticate. The easiest way to configure this is using environment variables.
The Chorus API key should include the permissions required by the workflows you plan to run. For example, read-only overview and search flows need task:read, task execution needs task:write, proposal work needs proposal:write, idea elaboration needs idea:write, and verification or governance flows need task:admin.
Set these in your terminal before running OpenCode:
export CHORUS_BASE_URL="http://localhost:3000" # Replace with your Chorus server URL
export CHORUS_API_KEY="your-chorus-api-key"Optional observability settings:
export CHORUS_ENABLE_SESSION_CONTEXT_SUMMARY="true"
export CHORUS_ENABLE_NOTIFICATION_HINTS="true"
export CHORUS_REVIEW_GATE_OUTPUT_MODE="summary" # summary or detailedAlternatively, you can create a chorus.json file in your OpenCode configuration directory (~/.config/opencode/chorus.json):
{
"chorusUrl": "http://localhost:3000",
"enableProposalReviewer": true,
"enableTaskReviewer": true,
"enableSessionContextSummary": true,
"enableNotificationHints": true,
"reviewGateOutputMode": "summary"
}Note: While you can put your API key in chorus.json, using the CHORUS_API_KEY environment variable is strongly recommended for security.
Observability behavior:
enableSessionContextSummarycontrols one concise startup/resume Chorus context summary. When disabled, context is still stored locally for recovery, but no proactive summary is shown.enableNotificationHintscontrols actionable text on routed notification queue entries. When disabled, supported notifications are still queued without hint text.reviewGateOutputModecontrols reviewer gate output verbosity.summarykeeps output concise;detailedincludes expanded reviewer job, round, target, comment, timeout, escalation, and verdict details.
These settings only control visibility and hints. They do not auto-claim tasks, approve proposals, or verify tasks.
Lazy Chorus Tools
The plugin no longer injects a remote mcp.chorus server into OpenCode by default. Instead, it exposes three native bridge tools:
chorus_toolslists all Chorus tool names exposed by the remote Chorus MCP server.chorus_tool_getreturns the description for one Chorus tool.chorus_tool_executeexecutes a real Chorus tool by name after applying the plugin's argument-safety policy.
For example, to update a task status, first call chorus_tools, then inspect chorus_update_task with chorus_tool_get, then execute it through the bridge. The bridge keeps the real Chorus tool list in session memory and refreshes it when sessions start or resume.
3. Restart OpenCode
After installing the plugin and setting your credentials, restart OpenCode.
You will see the Chorus skills in your workspace. Start by asking OpenCode to use the chorus skill to inspect available permissions and route into the right workflow, or run a specific stage like chorus-idea or chorus-yolo.
