Complete guide for using Superpowers with OpenCode.ai.
Add superpowers to the plugin array in your opencode.json (global or project-level):
{
"plugin": ["superpowers@git+https://github.com/obra/superpowers.git"]
}
Restart OpenCode (opencode2 service restart on V2). The plugin installs
through OpenCode's plugin manager and registers all skills.
Verify by asking: "Tell me about your superpowers"
If you previously installed superpowers using git clone and symlinks, remove the old setup:
# Remove old symlinks
rm -f ~/.config/opencode/plugins/superpowers.js
rm -rf ~/.config/opencode/skills/superpowers
# Optionally remove the cloned repo
rm -rf ~/.config/opencode/superpowers
# Remove skills.paths from opencode.json if you added one for superpowers
Then follow the installation steps above.
Use OpenCode's native skill tool to list all available skills:
use skill tool to list skills
use skill tool to load brainstorming
Create your own skills in ~/.config/opencode/skills/:
mkdir -p ~/.config/opencode/skills/my-skill
Create ~/.config/opencode/skills/my-skill/SKILL.md:
---
name: my-skill
description: Use when [condition] - [what it does]
---
# My Skill
[Your skill content here]
Create project-specific skills in .opencode/skills/ within your project.
Skill Priority: Project skills > Personal skills > Superpowers skills
opencode)OpenCode installs Superpowers through a git-backed package spec. Some OpenCode and Bun versions pin that resolved git dependency in a lockfile or cache, so a restart may not pick up the newest Superpowers commit. If updates do not appear, clear OpenCode's package cache or reinstall the plugin.
To pin a specific version, use a branch or tag:
{
"plugin": ["superpowers@git+https://github.com/obra/superpowers.git#v5.0.3"]
}
The plugin does two things:
config hook, injecting into config.skills.pathssetup() function using ctx.skill.transform() (V2 native API, confirmed active at runtime)experimental.chat.messages.transform hookctx.session.hook("context") — the V2 equivalent (confirmed active at runtime)Skills speak in actions rather than naming any one runtime's tools. On OpenCode these resolve to:
todowriteSubagent (general-purpose): template → OpenCode's task tool with subagent_type: "general" (or "explore" for codebase exploration)skill toolreadapply_patchbashgrep, globwebfetch(Verified against the installed OpenCode CLI's tool inventory.)
V1: Check OpenCode logs:
opencode run --print-logs "hello" 2>&1 | grep -i superpowers
V2: Check the server log:
opencode2 service status
Then inspect ~/.local/share/opencode/log/opencode.log, filtering for role=server.
Also verify the plugin path in your opencode.json is correct and that you're
running a recent version of OpenCode.
Some Windows OpenCode builds have upstream installer issues with git-backed
plugin specs, including cache paths for git+https URLs and Bun not finding
git.exe even when it works in a normal terminal. If OpenCode cannot install
the plugin, try installing with system npm and pointing OpenCode at the local
package:
npm install superpowers@git+https://github.com/obra/superpowers.git --prefix "$HOME\.config\opencode"
Then use the installed package path in opencode.json:
{
"plugin": ["~/.config/opencode/node_modules/superpowers"]
}
skill tool to list available skillsSKILL.md file with valid YAML frontmatterexperimental.chat.messages.transform hook. Restart OpenCode after config changes.ctx.session.hook("context") for bootstrap injection. Verify the plugin loaded via opencode2 api get /api/plugin. Restart with opencode2 service restart after config changes.