OpenCode runtime

The OpenCode adapter renders canonical artifacts into OpenCode-native project files under .opencode/ — agents, commands, and skills as plain markdown, with no opencode.json edits required.

Install

bash
npx @agentkrew/cli init --runtime opencode --kit engineer --yes

Verified against OpenCode v2.0.22.

What init generates

text
.agentkrew.json                          installation manifest
AGENTKREW.md                             project context (create-only)
.opencode/agents/<name>.md               one subagent per kit agent
.opencode/commands/<name>.md             one /command per kit command
.opencode/commands/workflow-<name>.md    one per kit workflow
.opencode/skills/<name>/SKILL.md         one directory per kit skill

For the Engineer Kit that is 15 agents, 7 commands, 3 workflow- commands, and 18 skills.

Rendered agents carry description and mode: subagent frontmatter; the body is the kit's prompt.md plus a pointer to AGENTKREW.md. Commands support OpenCode's $ARGUMENTS templating. Workflows render as commands with the workflow- prefix so a command and a workflow of the same name (for example review) never collide.

How you use it

Commands are slash commands. In an OpenCode session:

text
/create-feature "Add a user profile page"
/fix-bug "CSV import fails on empty rows"
/review
/ship

Workflows are invocable directly:

text
/workflow-feature-development "Add a user profile page"

Agents are subagents. Every AgentKrew agent renders with mode: subagent, so the primary agent delegates to it by description (or you @mention it explicitly). Workflow plans embed "spawn one agent per step" instructions, including parallel groups.

Skills load on demand through OpenCode's native skill tool: the session sees each skill's name and description, and loads the full SKILL.md when selected.

Project context

agentkrew init creates AGENTKREW.md at the project root and never overwrites it. Every generated agent carries a pointer to it, so all agents read one shared context file instead of duplicating it.

AGENTS.md and opencode.json are user-owned: AgentKrew never writes them. OpenCode keeps its own instructions in AGENTS.md; the per-agent pointer is what connects the kit to AGENTKREW.md.

What init never touches

  • AGENTS.md, opencode.json
  • Anything outside .opencode/, .agentkrew.json, and AGENTKREW.md

agentkrew update refreshes only generated files under .opencode/; your edits to AGENTKREW.md survive every update. See customization and updates.

Verify

bash
npx @agentkrew/cli doctor
text
✓ OpenCode detected (2.0.22)
✓ Runtime version compatible
✓ AgentKrew manifest valid
✓ 15 agents
...
AgentKrew is healthy.

You can also confirm discovery from OpenCode itself: opencode debug config lists the project's .opencode/ directory as a configuration source, which is where a fresh session picks the kit up.

Notes and limits

  • No runtime APIs involved: everything is file-generatable; no auth, model calls, or server endpoints are needed to install or validate the kit.
  • workflow- prefix is reserved: a kit skill named workflow-<name> would collide with a generated workflow command; agentkrew validate flags such overlaps.
  • Design notes and version-specific research: opencode-research.md.