A home for OpenCode V2 plugins and tools: ports from other agent CLIs, and
original tools. Each plugin lives in its own repo. This repo is the map: what
exists, where it lives, and the conventions every plugin follows. Design specs
for the ports and sila-prime live under docs/compose/spec/; each plugin repo
carries the delivered copy with its report. See AGENTS.md for how to keep this
map current.
These plugins run on OpenCode. New accounts through my referral link get $5 in usage credits, and I get $5 too:
https://opencode.ai/go?ref=N9H3ZEP22A
- model-switcher: slash commands that switch provider and model mid-session. The command set comes from a user JSON file, so anyone can add their own.
- context-limit: a working context budget per model. It lowers the model window through a catalog transform, so compaction fires earlier. It can only lower a window.
- max-mode: a
best_of_ntool that runs 2 to 8 candidate answers in parallel and a judge picks the winner.
- memory: project memory, checkpoints, and notes, stored per project and injected at the start of a session. Registers read, append, and search tools plus three commands.
- sila-prime: runs
sila primeon the first prompt and injects the cross-tool briefing, so the sila knowledge store primes OpenCode without the CLI. Registers a/silacommand for sila subcommands. - task-tool: a tree
tasktool (T1, T1.1) so multi-step work survives long turns and compaction.
- goal: a judged stopping condition per session. When a turn ends, a judge model decides if the goal is met, and the plugin nudges and continues until it is, or gives up at a cap.
- workflows: deterministic multi-agent workflows. Ships deep-research: brief, plan, research, reflect, write, and review. Phases write artifacts and a run is resumable.
- loop: a prompt on a fixed cadence. A tick is skipped while the previous run is still active.
- compose-next: the spec to ship workflow as a skill (grill, spec, workspace, implement, verify, review, finalize, finish), with a read-only reviewer subagent.
- skip-permissions: auto-approve permission prompts for one session. A permission hook upgrades an ask to an allow; a deny is final and never reaches the hook.
- distill: find repeated workflows in session history and propose skills, commands, or subagents. Nothing is written until an explicit apply, and nothing is overwritten.
| Name | Plugin | Purpose |
|---|---|---|
/ds-go /ds /zai /oc-zen /oc-thinking |
model-switcher | Switch model, or cycle a group |
/context-limit |
context-limit | Show or set a working context budget |
/max |
max-mode | Set the default best-of-N count |
best_of_n |
max-mode | Run candidates and return the judged winner |
/remember /memory /checkpoint |
memory | Write or read the memory files |
memory_read memory_append memory_search |
memory | Tool access to memory |
/sila |
sila-prime | Run a sila subcommand (default: prime) |
task |
task-tool | Add, update, list, or clear tree tasks |
/goal |
goal | Set, show, or clear the stopping condition |
/workflow |
workflows | Run a workflow, or list them |
/loop |
loop | Register, list, or stop a recurring prompt |
/compose-next |
compose-next | Start the spec to ship workflow |
/skip-permissions |
skip-permissions | Toggle auto-approve for this session |
/distill |
distill | Propose, list, or apply reusable artifacts |
- Goal, max mode, and distill call
ctx.generate.text, which fails on OpenCode Go withRequest is missing x-opencode-session. Point them at a working model withGOAL_MODEL,MAX_MODE_MODEL, andDISTILL_MODEL. - The workflow runner uses child sessions and inherits the invoking session's model, so it needs no override.
- One loop per session, because the turn-end event names the session, not the run.
skip-permissionsnever overrides a deny.context-limitnever raises a window.distillwrites only on an explicit apply and never overwrites.sila-primecalls thesilaCLI.SILA_BINpoints at the binary,SILA_PRIME=offdisables the first-prompt briefing, andSILA_PRIME_BUDGETcaps it. The session is marked after one attempt, so/silarefreshes on demand.- sila's MCP server is configured in
~/.config/opencode/opencode.jsonundermcp.servers.sila, with a permission block that allows seven tools (prime_context,search_knowledge,search_messages,omni_search,get_latest_handoff,save_handoff,save_memo) and denies the rest, so 41 tools do not load into every prompt.
- One repo per plugin, MIT licensed, with README, AGENTS.md, CONTRIBUTING.md, LICENSE, and a NOTICE when content is adapted from another project.
- Single-file, dependency-free plugin. Export a plain
{ id, setup }object and use Bun globals. Do not import@opencode/plugin. - Tests with
bun test. - Built through the compose-next workflow: spec, workspace, implement, verify,
review with the
reviewersubagent, finalize, then a pull request. - Adding, renaming, or changing a plugin means updating this map. The checklist
is in
AGENTS.md. - Version in
package.jsonplus an exportedVERSIONconstant, kept equal by a test. Releases are taggedvX.Y.Zon main after merge, with a GitHub release. - Runtime API baseline in
runtime-baseline.json, checked bygo run script/check-runtime-api.gofrom the repo root. Run it before changing any plugin'sctxusage.
Some plugins here are ports; each names its source and keeps the license notice
in its NOTICE file. The first program ported from MiMoCode
(https://github.com/XiaomiMiMo/MiMo-Code), MIT, Copyright (c) 2026 MiMo Code,
Xiaomi Corporation. MiMoCode also ships a USE_RESTRICTIONS.md and a trademark
policy. Check those before copying content. This note is a flag, not legal
advice.