Chat Superpowers
The Problem
A general-purpose agent gives general-purpose answers. When you’re debugging, you don’t want a brainstorm. When you’re planning, you don’t want line-by-line code review. The agent can do all of these things — it just doesn’t know which one you want right now.
Superpowers let you tell the agent what mode to be in.
How It Works
You pick a focus — your primary working mode — and optionally add extras on top. The agent adjusts its behaviour accordingly.
Focus Modes
You choose one at a time:
- Brainstorm — wide thinking. Explores options, avoids narrowing too early. Good when you’re not sure what to build yet.
- Write Plan — structured output. Step-by-step plans, task breakdowns, dependencies. Good when you know the direction and need it organised.
- Execute Plan — heads-down building. Less discussion, more code. Follows the plan, writes the implementation, moves on. Good when the plan is agreed and you want progress.
- Debug — diagnostic mode. Asks questions, traces what’s happening, checks assumptions. Resists jumping to fixes. Good when something is broken and you need to understand why before you touch it.
Extras
Stack these on top of any focus:
- TDD — writes tests before implementation.
- Review — points out edge cases, missed errors, security concerns.
- Verify — checks that changes actually work. Runs tests, confirms behaviour.
- Parallelise — identifies what can be done at the same time and splits the work.
Why It Matters
Without superpowers, you write the same preamble into every prompt — “don’t write code yet, just brainstorm” or “focus on finding the bug, don’t refactor anything.” That’s friction that adds up across dozens of conversations a day.
More importantly, the mode genuinely changes the quality of output. An agent in debug mode asks different questions than one in execute mode. It probes instead of producing. That distinction matters when you’re stuck versus when you know what to build.
The composability is the key choice. “Execute Plan + TDD + Verify” is a different working mode than “Execute Plan” alone — the agent writes a test first, implements, then checks its own work. You get disciplined engineering from a single toggle, not a paragraph of instructions.
Switching Modes
In the chat input, a picker lets you toggle superpowers on the fly. Switch from brainstorm to execute mid-conversation. No need to start a new chat or reconfigure anything.
You can also customise any preset’s wording in Settings → Superpowers — your team’s “debug” mode might emphasise logging, while another team’s focuses on type safety.
Technical Detail — How Superpowers Work
Superpowers are prompt presets — curated system instructions injected into the agent’s context. They change how the agent responds without affecting tool access or permissions.
The preset definitions live in features/chat/utils/superpowers.ts. Each preset has a key, label, description, and prompt template. The active selection (one focus + zero or more extras) is stored in the Zustand chat store (stores/chat/store.ts) and synced via the settings API at /settings/superpowers.
Technical Detail — Custom Overrides
Users can override any preset’s prompt text via the ChatSuperpowersSettingsTab component in the config page. Overrides are stored as chatPrompts.superpowerOverrides in the user’s settings and persist across sessions.
The override editor shows the default prompt alongside a textarea for the custom version. When an override exists, it replaces the default at injection time.
Technical Detail — Chat Input Integration
The superpowers picker in ChatInput.tsx renders the available focus and extra presets as toggleable chips. Selection updates the chat store immediately, and the active superpowers are included in the next message’s system prompt.
The picker is visible in the chat input area — no navigation to settings required for quick switching.