OpenCode-only agent pack that bundles the supported Superpowers workflow skills with a primary orchestrator and five specialized subagents.
Built for people who:
- use OpenCode as their CLI coding agent,
- want a smart-detected provider profile (GitHub Copilot or Anthropic) with each agent tuned to a sensible model,
- and want the Superpowers workflow available through OpenCode agents with one install command.
Six OpenCode agents are installed from agents/:
| Agent | Mode | Purpose |
|---|---|---|
superpowers |
primary | Orchestrator. Brainstorms, then delegates spec / plan / implement / review. Tracks plan status and coordination commits. |
superpowers-spec-writer |
subagent | Writes the design spec from an approved brainstorm, then self-audits it. |
superpowers-plan-writer |
subagent | Turns an approved spec into an executable implementation plan, then self-audits it. |
superpowers-implementer |
subagent | Executes the approved plan task-by-task with verification, review handoff, and per-task commits. |
superpowers-code-reviewer |
subagent | Reviews one completed implementation task before the implementer finalizes it. |
The installer also installs the supported vendored skill set from skills/. Skills are installed under a superpowers- prefix, and their installed description: metadata is rewritten to explicitly scope usage to superpowers-* agents. Combined with a wildcard rule in opencode.json, this prevents bleed into other primary agents (build, plan, etc.):
superpowers-using-superpowerssuperpowers-brainstormingsuperpowers-writing-planssuperpowers-subagent-driven-developmentsuperpowers-executing-planssuperpowers-verification-before-completion
The vendored sources under skills/<name>/ stay byte-identical to upstream obra/superpowers; the installer copies each skill to ~/.config/opencode/skills/superpowers-<name>/ and rewrites the SKILL.md name: field plus internal superpowers:<skill> cross-references during install. Lockfile verification (npm run verify:skills) continues to run against the upstream-faithful sources.
The installer renders every agent's model: field from the selected profile. Without --profile, the installer auto-detects from ~/.local/share/opencode/auth.json and prefers copilot when GitHub Copilot is authed, falling back to anthropic when only Anthropic is authed.
| Agent | copilot (default when Copilot is authed) |
copilot-lite |
anthropic |
|---|---|---|---|
superpowers (main) |
github-copilot/gpt-5.4-mini |
github-copilot/gpt-5.4-mini |
anthropic/claude-haiku-4-5 |
superpowers-spec-writer |
github-copilot/gpt-5.5 |
github-copilot/gpt-5.4-mini |
anthropic/claude-sonnet-4-6 |
superpowers-plan-writer |
anthropic/claude-opus-4-7 |
github-copilot/gpt-5.4 |
anthropic/claude-opus-4-7 |
superpowers-implementer |
github-copilot/claude-sonnet-4.6 |
github-copilot/gpt-5.4-mini |
anthropic/claude-sonnet-4-6 |
superpowers-code-reviewer |
github-copilot/gpt-5.4 |
github-copilot/gpt-5.4-mini |
github-copilot/gpt-5.4 |
The copilot profile assumes that delegated subagent calls do not consume Copilot premium-request quota, so it uses top-tier reasoning models (GPT 5.5, Sonnet 4.6) for subagents while keeping the orchestrator on gpt-5.4-mini. Use copilot-lite if you want to avoid premium-tier model IDs entirely. The matrix lives in scripts/install-profiles.json and is easy to fork.
This repository vendors only the minimum upstream Superpowers skills required by the agents listed above. It does not bundle the full upstream plugin runtime, hooks, provider routing, fallback engines, or unrelated skills from obra/superpowers.
The vendored snapshot is pinned in skills/superpowers.lock.json with the upstream commit SHA and per-file SHA-256 checksums.
- OpenCode installed and working.
- A provider configured in OpenCode that matches one of the bundled profiles: a GitHub Copilot subscription for the
copilot/copilot-liteprofiles, or Anthropic API access for theanthropicprofile. The installer auto-detects which one to use; pass--profileto override. - Node.js 16 or newer for the
npxentrypoint and verification scripts.
You do not need to install obra/superpowers separately for this agent pack; the required skills are bundled here.
npx opencode-superpowers # auto-detect profile from opencode auth
npx opencode-superpowers --profile copilot # GitHub Copilot, premium-tier subagents
npx opencode-superpowers --profile copilot-lite # Copilot, no premium-tier models
npx opencode-superpowers --profile anthropic # direct Anthropic APIPackaged installs use copy mode automatically so installed files do not depend on npm cache paths remaining available.
Common flags:
npx opencode-superpowers --dry-run # preview only
npx opencode-superpowers --force # overwrite conflicting unmanaged entries
npx opencode-superpowers --uninstall # remove entries recorded in the local manifestgit clone https://github.com/mrth2/opencode-superpowers ~/Code/opencode-superpowers
cd ~/Code/opencode-superpowers
./scripts/install-opencode.shAll six agents are always rendered from the source templates with the profile's model IDs substituted in, so agent files install as copies. Skills also install as copies (they are namespaced during install). Re-run the installer after git pull or a package refresh to reconcile generated files and managed entries.
The --mode flag is informational only since this version: agents are always copy-installed (each is rendered with the profile's model IDs) and skills are always copy-installed (each is namespaced with superpowers- and has cross-references rewritten). The mode label is recorded in the manifest:
- Symlink mode when the source has a
.gitdirectory or gitfile. - Copy mode when the source looks like a packaged install.
The mode can still be forced for testing:
./scripts/install-opencode.sh --mode symlink
./scripts/install-opencode.sh --mode copyThe installer respects:
| Variable | Default | Meaning |
|---|---|---|
OPENCODE_AGENTS_DIR |
~/.config/opencode/agents |
Where agent files are installed. |
OPENCODE_SKILLS_DIR |
~/.config/opencode/skills |
Where skill directories are installed. |
OPENCODE_SUPERPOWERS_MANIFEST |
~/.config/opencode/opencode-superpowers-install.json |
Local manifest used for safe update and uninstall. |
OPENCODE_AUTH_FILE |
${XDG_DATA_HOME:-~/.local/share}/opencode/auth.json |
OpenCode auth file used for profile auto-detection. |
After installing, restart OpenCode. You should see the six agents and six skills:
ls ~/.config/opencode/agents/
# superpowers-code-reviewer.md
# superpowers-implementer.md
# superpowers-plan-writer.md
# superpowers-spec-writer.md
# superpowers.md
ls ~/.config/opencode/skills/
# superpowers-brainstorming
# superpowers-executing-plans
# superpowers-subagent-driven-development
# superpowers-using-superpowers
# superpowers-verification-before-completion
# superpowers-writing-plansYou can verify the vendored snapshot in a clone with:
npm run verify:skillsExpected output starts with:
ok vendored skills verified:
OpenCode filesystem skills at ~/.config/opencode/skills/ are visible to every agent that can use the skill tool. Because users may have many built-in/custom agents (build, plan, task, project-specific agents, etc.), the safest isolation pattern is:
- global deny for
superpowers-*skills, - per-agent allow override only for
superpowers*agents.
This follows configure permissions + override per agent:
{
"permission": {
"skill": {
"*": "allow",
"superpowers-*": "deny"
}
},
"agent": {
"superpowers": {
"permission": { "skill": { "superpowers-*": "allow" } }
},
"superpowers-spec-writer": {
"permission": { "skill": { "superpowers-*": "allow" } }
},
"superpowers-plan-writer": {
"permission": { "skill": { "superpowers-*": "allow" } }
},
"superpowers-implementer": {
"permission": { "skill": { "superpowers-*": "allow" } }
},
"superpowers-code-reviewer": {
"permission": { "skill": { "superpowers-*": "allow" } }
}
}
}This catches unknown/future agents automatically, without needing to enumerate them. The metadata layer from this package (installed descriptions narrowed to superpowers-* workflow usage) improves trigger quality, but this permission setup is the hard enforcement that prevents cross-agent bleed.
This snippet is opt-in. The installer does not modify your opencode.json.
- Installed via
git clone: rungit pull, then./scripts/install-opencode.sh --profile defaultor./scripts/install-opencode.sh --profile premiumto refresh the manifest and reconcile generated files and managed entries. - Installed via
npx: runnpx opencode-superpowers@latest --profile defaultornpx opencode-superpowers@latest --profile premium.
# from a clone
./scripts/install-opencode.sh --uninstall
# or via npx
npx opencode-superpowers --uninstallUninstall reads ~/.config/opencode/opencode-superpowers-install.json and removes only entries recorded as managed by this project. Manually created sibling agents, skills, and unrelated OpenCode configuration files are left untouched.
Maintainers refresh the vendored snapshot through the sync script:
rm -rf /tmp/opencode-superpowers-upstream
git clone --depth 1 https://github.com/obra/superpowers.git /tmp/opencode-superpowers-upstream
node scripts/sync-superpowers-skills.mjs --upstream /tmp/opencode-superpowers-upstream
npm testMaintainers can run the sync script manually when refreshing the vendored snapshot; this repository does not currently ship a weekly GitHub Actions sync workflow.
The agents are plain markdown with YAML frontmatter. To change the model source, edit the model: placeholder in agents/<name>.md and rerun the installer. For example, to swap the orchestrator off the bundled profile flow:
model: anthropic/claude-sonnet-4-5Clone installs use symlinks for non-rendered agent files, so edits to those agents in this repo are picked up immediately by OpenCode after restart. The profile-specific main agent is rendered as a generated copy. Skills always install as copy-with-rewrite (the installer prefixes them with superpowers- and rewrites cross-references), so rerun the installer after editing a vendored skill or after git pull.
MIT © mrth2 and contributors.
The upstream Superpowers project is licensed separately by its authors. Vendored skill files retain their upstream notices and are pinned in skills/superpowers.lock.json.