Output styles are DEPRECATED. On November 5, 2025 or later, we’ll
automatically convert your user-level output style files to plugins and
stop supporting the output styles feature. Use
plugins instead. (example
plugin
for the built-in Explanatory output style)
Deprecation timeline
As of November 5, 2025, Claude Code will:- Automatically convert user-level output style files
(
~/.claude/output-styles) to plugins - Stop supporting the output styles feature
- Remove the
/output-stylecommand and related functionality
- Migrate to plugins before November 5, 2025 for a smoother transition
- Review the migration guide below to understand your options
Alternative: Use plugins instead
Plugins provide more powerful and flexible ways to customize Claude Code’s behavior. Theexplanatory-output-style plugin
recreates the deprecated Explanatory output style functionality.
Example: Explanatory Output Style Plugin
Theexplanatory-output-style plugin uses a SessionStart hook to inject
additional context that encourages Claude to provide educational insights.
Here’s what it does:
- Provides educational insights about implementation choices
- Explains codebase patterns and decisions
- Balances task completion with learning opportunities
Installing a plugin
To install a plugin likeexplanatory-output-style:
Add the marketplace (if not already added)
Install the plugin
Restart Claude Code to activate the plugin
Disable the plugin
Migration guide
Output styles directly modified Claude Code’s system prompt. Here’s how to achieve similar effects with hooks and subagents, both available through Claude Code plugins:Use SessionStart hooks for context injection
If you used output styles to add context at the start of sessions, use SessionStart hooks instead. The hook’s output (stdout) is added to the conversation context. You can also:- Run scripts that dynamically generate context
- Load project-specific information
SessionStart hooks, just like CLAUDE.md, do not change the system prompt.
Use Subagents for different system prompts
If you used output styles to change Claude’s behavior for specific tasks, use Subagents instead. Subagents are specialized AI assistants with:- Custom system prompts (must be in a separate context window from main loop)
- Specific tool access permissions
- Optional model to use, if not the main loop model
Reference: Original output styles documentation
The content below is preserved for reference only. Output styles are
deprecated and will be removed on November 5, 2025. Please migrate to plugins,
hooks, or subagents.
Built-in output styles
Claude Code’s Default output style is the existing system prompt, designed to help you complete software engineering tasks efficiently. There are two additional built-in output styles focused on teaching you the codebase and how Claude operates:- Explanatory: Provides educational “Insights” in between helping you complete software engineering tasks. Helps you understand implementation choices and codebase patterns.
-
Learning: Collaborative, learn-by-doing mode where Claude will not only
share “Insights” while coding, but also ask you to contribute small, strategic
pieces of code yourself. Claude Code will add
TODO(human)markers in your code for you to implement.
How output styles work
Output styles directly modify Claude Code’s system prompt.- Non-default output styles exclude instructions specific to code generation and efficient output normally built into Claude Code (such as responding concisely and verifying code with tests).
- Instead, these output styles have their own custom instructions added to the system prompt.
Change your output style
You can either:-
Run
/output-styleto access the menu and select your output style (this can also be accessed from the/configmenu) -
Run
/output-style [style], such as/output-style explanatory, to directly switch to a style
.claude/settings.local.json.
You can also create your own output style Markdown files and save them either at
the user level (~/.claude/output-styles) or the project level
(.claude/output-styles).
Comparisons to related features
Output Styles vs. CLAUDE.md vs. —append-system-prompt
Output styles completely “turn off” the parts of Claude Code’s default system prompt specific to software engineering. Neither CLAUDE.md nor--append-system-prompt edit Claude Code’s default system prompt. CLAUDE.md
adds the contents as a user message following Claude Code’s default system
prompt. --append-system-prompt appends the content to the system prompt.