This page covers installing, verifying, and updating superpowers on Claude Code using the plugin marketplace system. For information about how the plugin hooks into Claude Code's session lifecycle after installation, see Claude Code Integration. For installation on other platforms, see Getting Started.
github.com/obra/superpowers-marketplaceNo additional tooling (Node.js, Git CLI, etc.) is required. Claude Code's plugin system handles all cloning and wiring automatically.
Claude Code uses a two-step process: register the marketplace, then install the plugin from it.
Step 1 — Register the marketplace:
/plugin marketplace add obra/superpowers-marketplace
Step 2 — Install the plugin:
/plugin install superpowers@superpowers-marketplace
That's the complete installation. Claude Code will fetch the plugin from https://github.com/obra/superpowers-marketplace, clone the superpowers plugin, and register its hooks, skills, agents, and commands automatically.
Sources: README.md33-45 RELEASE-NOTES.md741-749
The plugin manifest at `.claude-plugin/plugin.json` declares what superpowers provides to Claude Code:
| Field | Value |
|---|---|
name | superpowers |
version | 4.3.1 |
description | Core skills library for Claude Code |
homepage | https://github.com/obra/superpowers |
Claude Code reads this manifest to register all plugin-provided capabilities. The skills directory, hooks, agents, and commands are all loaded from paths relative to the plugin root.
Plugin components registered at install:
| Component | Path | Role |
|---|---|---|
| Skills | skills/ | Skill library loaded via the Skill tool |
| Agents | agents/ | Subagent definitions (e.g., code-reviewer) |
| Commands | commands/ | Slash commands (/superpowers:brainstorm, etc.) |
| Hooks | hooks/hooks.json | SessionStart hook for context injection |
Sources: .claude-plugin/plugin.json1-13 .cursor-plugin/plugin.json14-18
Installation flow:
Sources: .claude-plugin/plugin.json1-13 README.md33-45 RELEASE-NOTES.md46-50
After installation, every new Claude Code session triggers the SessionStart hook. The hook runs hooks/session-start via the run-hook.cmd polyglot wrapper and injects the using-superpowers meta-skill content into the session context. This means the agent has superpowers instructions loaded before its first response.
The hook runs synchronously (async: false in hooks.json) so the bootstrap content is guaranteed to be in context before the model's first turn.
For details on the hook mechanism, output format, and Windows compatibility, see Hooks System and Claude Code Integration.
Sources: RELEASE-NOTES.md46-50 RELEASE-NOTES.md13-23
Start a new Claude Code session and give the agent a task that would trigger a skill — for example:
"Help me plan this feature" or "Let's debug this issue"
The agent should automatically invoke the relevant superpowers skill (e.g., superpowers:brainstorming or superpowers:systematic-debugging) without being explicitly told to do so.
You do not need to run /help or list slash commands to verify installation. Skills are primarily triggered by describing what you want, not by running specific commands.
Sources: README.md75-77 RELEASE-NOTES.md100-103
/plugin update superpowers
This fetches the latest plugin version from the marketplace. Skills are bundled with the plugin, so they update alongside it.
Sources: README.md143-149
Use the standard Claude Code plugin removal command:
/plugin remove superpowers
This deregisters the hooks, skills, agents, and commands. No manual file cleanup is required.
The file `.claude-plugin/marketplace.json` is a local development marketplace config used for testing plugin changes before publishing. It is not used during normal installation; it exists so plugin authors can test against a local copy of the plugin by pointing the marketplace at "./" instead of a remote URL.
| Field | Value |
|---|---|
name | superpowers-dev |
plugins[0].source | ./ (local path) |
End users installing from obra/superpowers-marketplace do not interact with this file.
Sources: .claude-plugin/marketplace.json1-20
On Windows, the SessionStart hook uses the run-hook.cmd polyglot wrapper to locate and invoke bash. The wrapper tries several Git for Windows install paths before falling back to PATH. If no bash is found, the hook exits silently rather than failing with an error. Shell scripts use LF line endings (enforced via .gitattributes) to prevent CRLF issues on Windows checkout.
For the complete Windows compatibility history, see RELEASE-NOTES.md13-23
Refresh this wiki
This wiki was recently refreshed. Please wait 3 days to refresh again.