Output styles
Adapt Claude Code for uses beyond software engineering
Output styles allow you to use Claude Code as any type of agent while keeping its core capabilities, such as running local scripts, reading/writing files, and tracking TODOs.
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-style
to access the menu and select your output style (this can also be accessed from the/config
menu) -
Run
/output-style [style]
, such as/output-style explanatory
, to directly switch to a style
These changes apply to the local project level
and are saved in .claude/settings.local.json
.
Create a custom output style
To set up a new output style with Claude’s help, run
/output-style:new I want an output style that ...
By default, output styles created through /output-style:new
are saved as
markdown files at the user level in ~/.claude/output-styles
and can be used
across projects. They have the following structure:
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.
Output Styles vs. Agents
Output styles directly affect the main agent loop and only affect the system prompt. Agents are invoked to handle specific tasks and can include additional settings like the model to use, the tools they have available, and some context about when to use the agent.
Output Styles vs. Custom Slash Commands
You can think of output styles as “stored system prompts” and custom slash commands as “stored prompts”.