OpenCode plugin for story-driven development with agents and commands.
Use these docs as the primary navigation path:
docs/README.md— documentation taxonomy and canonical operating docsdocs/OVERVIEW.md— project context and repository mapCONTRIBUTING.md— contributor setup and workflow
Focused guides under docs/:
- Beads Integration (Optional) - Local-first issue tracking with stealth mode (local-only) or team mode (git-synced)
- Custom Agents - Four specialized agents for planning, review, task execution, and verification
- Knowledge Base Commands - Rich command library for issue management (
bd/*) - Skills as Commands - Skills from
.opencode/skills/and other installed locations automatically available as/skills/*commands - Template Support - Customizable workflows and issue templates
- Node.js (v18+)
- Bun (recommended for local scripts/tests)
- OpenCode CLI
- npm authentication for GitHub Packages (token with
read:packageswhen installing fromnpm.pkg.github.com)
Since this package is published to GitHub Packages, configure npm for the @dynatrace-oss scope (and provide a token with package read access):
@dynatrace-oss:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=<token-with-read:packages>Then add the plugin to your OpenCode configuration (~/.config/opencode/opencode.json):
{
"plugin": ["@dynatrace-oss/opencode-coder"]
}The plugin starts in an inactive state for fresh projects. It will not create .coder/ files or activate project-local behavior until you explicitly opt in with /opencode-coder/init.
If you want to use the project-local workflow, run /opencode-coder/init inside the repository and choose one of these saved modes:
stealth— local-only active modeteam— shared active modedisabled— keep project-local startup inactive until you re-enable it later
Beads integration is optional. You can use the plugin without beads at all.
If you want the full opencode-coder project workflow, use /opencode-coder/init to enable the project first and let the command drive the correct mode setup.
If you are only setting up beads itself, you can still initialize beads manually with bd init or bd init --stealth, but that is beads-only setup — it is not the documented way to activate opencode-coder for a project.
- Beads files stay local to your machine (gitignored)
- Won't affect git history or other team members
- Perfect for: personal use, OSS contributions, teams not using beads yet
/opencode-coder/initconfigures this mode for plugin-managed setupbd init --stealthis only the manual beads command underneath that setup
- Beads files are committed and synced via git
- Enables multi-device sync and team collaboration
- Perfect for: teams adopting beads together
/opencode-coder/initconfigures this mode for plugin-managed setupbd initis only the manual beads command underneath that setup
The plugin includes automatic integration with aimgr, a CLI tool for discovering and managing AI resources (commands, skills, agents).
When the plugin starts in an active project mode, it can automatically:
- Check if
ai.package.yamlexists in your project - Detect if
aimgris installed on your system - Initialize aimgr if available (
aimgr init) - Install the
opencode-coderpackage if available in your aimgr repository - Notify you via toast when initialization completes
Fresh or saved-disabled projects skip these startup side effects until explicitly enabled.
To use this feature, install aimgr:
# See installation instructions
https://github.com/hk9890/ai-config-manager- Saved project disabled mode: use
/opencode-coder/initand choose the disabled option for this project - Hard-disable plugin completely: set
OPENCODE_CODER_DISABLED=true
The env var hard override disables the plugin entirely and hides its commands. Saved disabled mode keeps the plugin installed but inactive for the current project until you re-enable it.
- Auto-discovery: Automatically finds relevant AI resources for your project
- Zero-config: Works out-of-the-box if aimgr is installed
- Non-intrusive: Fails gracefully if aimgr is not available
- Project-specific: Each project can have its own AI resource configuration
First run /opencode-coder/init in OpenCode and choose stealth or team mode so plugin-managed project setup is explicit and repeatable.
Then track issues with bd:
# Create your first issue
bd create "Setup project structure" --type task --priority 2
# Find available work
bd ready
# Start working on a task
bd update <id> --status in_progress
# Close a completed task
bd close <id>These commands are provided by this plugin and available in OpenCode:
| Command | Description |
|---|---|
/opencode-coder/init |
Explicitly enable, refresh, disable, or reconfigure opencode-coder for a project |
/simplify |
Review and simplify recently changed files using the opencode-coder workflow |
/opencode-coder/doctor |
Diagnose plugin health and configuration |
/opencode-coder/status |
Show plugin status |
/opencode-coder/report-bug |
Report a bug with session context |
/opencode-coder/dump-session |
Export current session data |
/opencode-coder/docs |
Run docs lifecycle (inspect, bootstrap, refresh, audit, slim, verify) |
/opencode-coder/improve-doc |
Turn an incident into targeted doc/routing fixes to prevent recurrence |
/opencode-coder-dev/analyze-logs |
Analyze OpenCode logs for errors (dev use) |
/opencode-coder-dev/fix-bugs |
Triage and fix bugs from logs (dev use) |
/opencode-coder-dev/import-tasks |
Import tasks from GitHub issues (dev use) |
/opencode-coder-dev/release |
Canonical repo release entrypoint (dev use) |
The following are not plugin commands — they are commands from the beads CLI (bd), which must be installed separately. Agents use them as shell commands when beads is initialized in your project.
| Command | Description |
|---|---|
bd create |
Create a new issue |
bd list |
List issues with filters |
bd ready |
Show issues ready to work |
bd show |
Display issue details |
bd update |
Update issue properties |
bd close |
Close an issue |
bd blocked |
Show blocked issues |
bd stats |
Project statistics |
bd export |
Export issues to JSONL |
bd dep |
Manage dependencies |
bd epic |
Create an epic with tasks |
bd template |
Manage issue templates |
Skills extend the agent's capabilities with specialized workflows and domain expertise.
| Skill | Description |
|---|---|
opencode-coder |
Core workflow hub for planning, setup, troubleshooting, and the /simplify cleanup workflow. |
Bidirectional sync between beads and external task systems (GitHub, Jira, etc.).
| Skill | Description |
|---|---|
task-sync |
System-agnostic orchestrator for task synchronization. Provides workflow guidance and delegates to backend-specific skills. |
github-task-sync |
GitHub backend for task sync. Syncs beads with GitHub issues using gh CLI. Supports import, export, and bidirectional workflows. |
Usage Examples:
Sync with GitHub
Import GitHub issues to beads
Export beads to GitHub
Sync tasks bidirectionally
Features:
- Import: Fetch GitHub issues into beads with automatic priority mapping
- Export: Create GitHub issues from beads (NEW capability)
- Bidirectional: Full two-way sync with conflict detection and resolution
- Smart Deduplication: Never import the same issue twice
- Label Tracking:
source:externalandgithub:<number>labels for sync direction
Prerequisites:
- GitHub CLI (
gh) authenticated:gh auth login - Beads initialized:
bd init
For detailed workflow documentation, see the skills at .opencode/skills/task-sync/ and .opencode/skills/github-task-sync/.
| Agent | Role |
|---|---|
orchestrator |
Planning, structure, orchestration - creates epics and tasks, delegates implementation |
reviewer |
Reviews plans and structure (not code) |
tasker |
Implements tasks and closes them when complete |
verifier |
Verifies outcomes and owns acceptance review tasks |
- Orchestrator creates epic + tasks + acceptance review task
- Reviewer reviews plans and creates additional tasks/review work if needed
- Tasker implements tasks and closes when complete
- Verifier validates acceptance review tasks and closes them or creates bugs
MIT