Complete guide for using Superpowers with OpenCode.ai.
Tell OpenCode:
Clone https://github.com/obra/superpowers to ~/.config/opencode/superpowers, then create directory ~/.config/opencode/plugin, then symlink ~/.config/opencode/superpowers/.opencode/plugin/superpowers.js to ~/.config/opencode/plugin/superpowers.js, then restart opencode.
mkdir -p ~/.config/opencode/superpowers
git clone https://github.com/obra/superpowers.git ~/.config/opencode/superpowers
OpenCode discovers plugins from ~/.config/opencode/plugin/. Create a symlink:
mkdir -p ~/.config/opencode/plugin
ln -sf ~/.config/opencode/superpowers/.opencode/plugin/superpowers.js ~/.config/opencode/plugin/superpowers.js
Alternatively, for project-local installation:
# In your OpenCode project
mkdir -p .opencode/plugin
ln -sf ~/.config/opencode/superpowers/.opencode/plugin/superpowers.js .opencode/plugin/superpowers.js
Restart OpenCode to load the plugin. Superpowers will automatically activate.
Use the find_skills tool to list all available skills:
use find_skills tool
Use the use_skill tool to load a specific skill:
use use_skill tool with skill_name: "superpowers:brainstorming"
Skills are automatically inserted into the conversation and persist across context compaction.
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 your OpenCode project:
# In your OpenCode project
mkdir -p .opencode/skills/my-project-skill
Create .opencode/skills/my-project-skill/SKILL.md:
---
name: my-project-skill
description: Use when [condition] - [what it does]
---
# My Project Skill
[Your skill content here]
Skills are resolved with this priority order:
.opencode/skills/) - Highest priority~/.config/opencode/skills/)~/.config/opencode/superpowers/skills/)You can force resolution to a specific level:
project:skill-name - Force project skillskill-name - Search project → personal → superpowerssuperpowers:skill-name - Force superpowers skillThe plugin automatically injects superpowers context via the chat.message hook on every session. No manual configuration needed.
When you load a skill with use_skill, it's inserted as a user message with noReply: true. This ensures skills persist throughout long conversations, even when OpenCode compacts context.
The plugin listens for session.compacted events and automatically re-injects the core superpowers bootstrap to maintain functionality after context compaction.
Skills written for Claude Code are automatically adapted for OpenCode. The plugin provides mapping instructions:
TodoWrite → update_planTask with subagents → OpenCode's @mention systemSkill tool → use_skill custom toolLocation: ~/.config/opencode/superpowers/.opencode/plugin/superpowers.js
Components:
use_skill, find_skillslib/skills-core.js module (also used by Codex)Location: ~/.config/opencode/superpowers/lib/skills-core.js
Functions:
extractFrontmatter() - Parse skill metadatastripFrontmatter() - Remove metadata from contentfindSkillsInDir() - Recursive skill discoveryresolveSkillPath() - Skill resolution with shadowingcheckForUpdates() - Git update detectionThis module is shared between OpenCode and Codex implementations for code reuse.
cd ~/.config/opencode/superpowers
git pull
Restart OpenCode to load the updates.
ls ~/.config/opencode/superpowers/.opencode/plugin/superpowers.jsls -l ~/.config/opencode/plugin/superpowers.jsopencode run "test" --print-logs --log-level DEBUGservice=plugin path=file:///.../superpowers.js loading pluginls ~/.config/opencode/superpowers/skillsfind_skills tool to see what's discoveredSKILL.md filenode --input-type=module -e "import('file://~/.config/opencode/plugin/superpowers.js').then(m => console.log(Object.keys(m)))"The implementation includes an automated test suite at tests/opencode/:
# Run all tests
./tests/opencode/run-tests.sh --integration --verbose
# Run specific test
./tests/opencode/run-tests.sh --test test-tools.sh
Tests verify: