This page describes how Superpowers integrates with each supported AI coding platform and summarizes the mechanisms used per platform. It is an overview and navigation hub; detailed implementation documentation lives in the child pages: Claude Code Integration, OpenCode Integration, Codex Integration, and the skills-core.js Shared Module.
For information about the overall architecture that enables multi-platform support, see Multi-Platform Integration and Session Lifecycle and Bootstrap.
Superpowers runs on four platforms. Each uses a different mechanism to inject skill context into the agent session, but all share the same skill library at their core.
| Platform | Install Method | Context Injection Mechanism | Skill Discovery |
|---|---|---|---|
| Claude Code | Plugin marketplace | hooks.json SessionStart hook | Skill tool (native) |
| Cursor | /plugin-add command | additionalContext in hook output | Skill tool (native) |
| OpenCode | Manual clone + symlink | experimental.chat.system.transform | skill tool (native) |
| Codex | Manual clone + symlink | Native ~/.agents/skills/ scan | Native skill discovery |
Sources: README.md28-72 RELEASE-NOTES.md1-14 .claude-plugin/plugin.json1-13 .cursor-plugin/plugin.json1-18
The following diagram maps each platform to the specific code files and hook mechanisms it relies on.
Platform-to-Code Mapping Diagram
Sources: .claude-plugin/plugin.json1-13 .cursor-plugin/plugin.json1-18 RELEASE-NOTES.md6-23 RELEASE-NOTES.md137-165
When a session starts, each platform uses a different path to inject the using-superpowers context into the agent.
Session Bootstrap Diagram
Sources: RELEASE-NOTES.md6-23 RELEASE-NOTES.md137-165 RELEASE-NOTES.md323-337
run-hook.cmd — a polyglot file that executes as a Windows .cmd script and as a Unix bash script in the same file. It locates bash across multiple paths (Git for Windows locations, then PATH fallback) and delegates to the extensionless session-start script.additional_context (for Cursor compatibility) and hookSpecificOutput.additionalContext.async: false) so skills context is guaranteed to be present before the model's first turn.session-start (no .sh extension) to prevent Claude Code 2.1.x from auto-prepending bash to the invocation.For full details, see Claude Code Integration.
skills, agents, commands, and hooks.additional_context from the SessionStart hook JSON output. This field was added in v4.3.1 alongside the existing hookSpecificOutput.additionalContext./plugin-add superpowers in the Cursor Agent chat.Cursor shares the same hook execution path as Claude Code. No separate integration module exists for Cursor.
.opencode/plugins/superpowers.js — a Node.js plugin loaded by OpenCode at startup.experimental.chat.system.transform to modify the system prompt directly. This replaced an earlier session.prompt({ noReply: true }) approach that caused OpenCode to reset the selected agent on first message.getBootstrapContent() inside superpowers.js generates the injected system prompt content.~/.config/opencode/skills/superpowers/. OpenCode's native skill tool then resolves them.superpowers.js uses lib/skills-core.js for extractFrontmatter, findSkillsInDir, and resolveSkillPath. On Windows, the file is copied rather than symlinked, so direct relative imports are avoided.For full details, see OpenCode Integration.
~/.codex/superpowers, then create a symlink at ~/.agents/skills/superpowers pointing to ~/.codex/superpowers/skills/.using-superpowers direction in the skill frontmatter.superpowers-codex CLI and its use_skill/find_skills tools were removed in v4.2.0. The symlink approach requires no Node.js dependency.For full details, see Codex Integration.
All platforms that use plugin code (Claude Code, Cursor, OpenCode) depend on lib/skills-core.js for common operations. Codex relies on the same skill files but does not load this module directly.
| Function | Purpose |
|---|---|
extractFrontmatter | Parse YAML frontmatter from a SKILL.md file |
findSkillsInDir | Recursively discover all SKILL.md files under a directory |
resolveSkillPath | Resolve a superpowers:skill-name reference to an absolute path |
checkForUpdates | Check the skills git repo for upstream changes |
stripFrontmatter | Return skill content without the YAML header |
For full documentation of this module, see skills-core.js Shared Module.
Sources: RELEASE-NOTES.md335-337 RELEASE-NOTES.md145-156
| Feature | Claude Code | Cursor | OpenCode | Codex |
|---|---|---|---|---|
| Plugin manifest file | .claude-plugin/plugin.json | .cursor-plugin/plugin.json | .opencode/plugins/superpowers.js | none |
| Hook system | hooks.json SessionStart | hooks.json SessionStart | experimental.chat.system.transform | none |
Polyglot wrapper (run-hook.cmd) | ✓ | ✓ | ✗ | ✗ |
| Skill tool name | Skill | Skill | skill | native |
| Tool mapping layer | none needed | none needed | TodoWrite → update_plan etc. | documented in bootstrap |
| Three-tier priority (project > personal > superpowers) | ✓ | ✓ | ✓ | ✓ |
| Windows symlink alternative | junction | junction | junction | junction |
| Requires Node.js | ✗ | ✗ | ✓ | ✗ |
Sources: README.md28-76 RELEASE-NOTES.md55-59 RELEASE-NOTES.md143-165 .cursor-plugin/plugin.json14-17
Refresh this wiki
This wiki was recently refreshed. Please wait 3 days to refresh again.