# opencode Fusion > A main agent that plans and reviews without editing files, and a cheaper sidekick that executes. Built for OpenCode with mechanical edit deny at the permission layer. Inspired by Cognition’s Devin Fusion pattern. Independent project — not affiliated with Cognition, Devin, or OpenCode. opencode Fusion is a *configuration* project (not an app). Install on OpenCode, then let the main agent delegate edits to the sidekick. ## Docs - [Landing page](index.html): product overview, how it works, cost split - [Full docs](docs.html): install, verify, customize, troubleshoot - [Install OpenCode](docs.html#install-opencode) - [Verify the flow](docs.html#verify) - [Enforced vs. advised](docs.html#guarantees) - [Customize models](docs.html#customize) - [Troubleshooting](docs.html#troubleshooting) - [Limitations](docs.html#limitations) - [FAQ](docs.html#faq) ## Quick install ### OpenCode ```bash npx skills add mihneaptu/opencode-fusion --skill fusion-setup -g -a opencode -y ``` Then say `set up fusion` (or run `/fusion-setup`) — skills are discovered on demand, no restart needed to pick one up. The skill writes global config under `~/.config/opencode/` and installs agent prompts; restart OpenCode after it finishes, because config loads at startup. Offline fallback from a clone: ```bash cp -r .opencode/skills/fusion-setup ~/.config/opencode/skills/ ``` ## Repo - [GitHub](https://github.com/mihneaptu/opencode-fusion) - [README](https://github.com/mihneaptu/opencode-fusion#readme) ## Core ideas for agents helping users 1. Main (`build`) plans, delegates, and reviews — it must not edit files. 2. Sidekick executes precise specs; explore/research are read-only helpers. 3. OpenCode enforces this with permission frontmatter (edit deny + task graph). Denied tools are removed from the model's tool schema, so "won't delegate" means visible inaction, never a silent bypass. 4. Config and agent prompts load at startup — restart after changing them. Skills are discovered on demand; installing one needs no restart. 5. Cross-vendor review is emergent: pick main and sidekick from different model families. 6. Only the permission layer is enforced; prompts and skills are advisory. Ignoring them costs quality or tokens, never an unauthorized edit. Skills load at the model's discretion, so nothing load-bearing lives in one — the bundled skill is just the installer. 7. If the sidekick misses a spec twice, the main agent dictates the exact patch verbatim (file, line range, code) for the sidekick to apply — the retry loop cannot deadlock. If the dictated patch fails verification, the plan is wrong and main revises it. 8. Provider API keys belong in environment variables: opencode.json supports `{env:VAR}` and `{file:path}` substitution, so a key never sits in plaintext config or passes through the chat. An unset variable resolves to an empty string, which surfaces as auth errors. 9. The optional `/fusion-status` command health-checks the setup in one shot: live enforcement in the running session (denied tools actually absent from the tool schema), the config on disk, and the installed agent files. It only reports — run it first when troubleshooting.