99 lines
3.6 KiB
Markdown
99 lines
3.6 KiB
Markdown
# 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](/en/docs/claude-code/settings)
|
||
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:
|
||
|
||
```markdown
|
||
---
|
||
name: My Custom Style
|
||
description: A brief description of what this style does, to be displayed to the user
|
||
---
|
||
|
||
# Custom Style Instructions
|
||
|
||
You are an interactive CLI tool that helps users with software engineering
|
||
tasks. [Your custom instructions here...]
|
||
|
||
## Specific Behaviors
|
||
|
||
[Define how the assistant should behave in this style...]
|
||
```
|
||
|
||
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](/en/docs/claude-code/sub-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](/en/docs/claude-code/slash-commands)
|
||
|
||
You can think of output styles as “stored system prompts” and custom slash
|
||
commands as “stored prompts”.
|