← Back to daily report
+15 lines added
-11 lines removed
> ## Documentation Index¶
> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt¶
> Use this file to discover all available pages before exploring further.¶
¶
# 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.¶
¶
* All output styles exclude instructions for efficient output (such as¶
responding concisely).¶
* Custom output styles exclude instructions for coding (such as verifying code¶
with tests), unless `keep-coding-instructions` is true.¶
* All output styles have their own custom instructions added to the end of the¶
system prompt.¶
* All output styles trigger reminders for Claude to adhere to the output style¶
instructions during the conversation.¶
¶
## Change your output style¶
¶
You can either:¶
¶
* Run `/oRun `/config` and select **Output- style`** to access a menu and select your output style (this can¶
also be accessed from the `/config` menu)¶
¶
* Runpick a style from a menu. Your¶
selection is saved to `.claude/settings.local.json` at the¶
[local project level](/en/settings).¶
¶
To set a style without the menu, edit the `/output-sStyle [style]`, such as `/` field directly in a¶
settings file:¶
¶
```json theme={null}¶
{¶
"output-sStyle e": "Explanatory`, to directly¶
switch to"¶
}¶
```¶
¶
Because the output style is set in the system prompt at style¶
¶
These changes apply to the [local project level](/en/settings) and are saved in¶
`.claude/settings.local.jsession start,¶
changes take effect the next time you start a new session`. You can also directly edit the `outputStyle`¶
field in a settings file at a different levelThis keeps the system¶
prompt stable throughout a conversation so prompt caching can reduce latency and¶
cost.¶
¶
## Create a custom output style¶
¶
Custom output styles are Markdown files with frontmatter and the text that will¶
be added to the system prompt:¶
¶
```markdown theme={null}¶
---¶
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 save these files at the user level (`~/.claude/output-styles`) or¶
project level (`.claude/output-styles`).¶
¶
### Frontmatter¶
¶
Output style files support frontmatter, useful for specifying metadata about the¶
command:¶
¶
| Frontmatter | Purpose | Default |¶
| :------------------------- | :-------------------------------------------------------------------------- | :---------------------- |¶
| `name` | Name of the output style, if not the file name | Inherits from file name |¶
| `description` | Description of the output style. Used only in the UI of `/output-style`, shown in the `/config` picker | None |¶
| `keep-coding-instructions` | Whether to keep the parts of Claude Code's system prompt related to coding. | false |¶
¶
## 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/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. [Skills](/en/skills)¶
¶
Output styles modify how Claude responds (formatting, tone, structure) and are always active once selected. Skills are task-specific prompts that you invoke with `/skill-name` or that Claude loads automatically when relevant. Use output styles for consistent formatting preferences; use skills for reusable workflows and tasks.¶
Unified Diff
--- a/output-styles.md
+++ b/output-styles.md
@@ -42,17 +42,23 @@
## Change your output style
-You can either:
+Run `/config` and select **Output style** to pick a style from a menu. Your
+selection is saved to `.claude/settings.local.json` at the
+[local project level](/en/settings).
-* Run `/output-style` to access a menu and select your output style (this can
- also be accessed from the `/config` menu)
+To set a style without the menu, edit the `outputStyle` field directly in a
+settings file:
-* Run `/output-style [style]`, such as `/output-style explanatory`, to directly
- switch to a style
+```json theme={null}
+{
+ "outputStyle": "Explanatory"
+}
+```
-These changes apply to the [local project level](/en/settings) and are saved in
-`.claude/settings.local.json`. You can also directly edit the `outputStyle`
-field in a settings file at a different level.
+Because the output style is set in the system prompt at session start,
+changes take effect the next time you start a new session. This keeps the system
+prompt stable throughout a conversation so prompt caching can reduce latency and
+cost.
## Create a custom output style
@@ -81,13 +87,12 @@
### Frontmatter
-Output style files support frontmatter, useful for specifying metadata about the
-command:
+Output style files support frontmatter for specifying metadata:
| Frontmatter | Purpose | Default |
| :------------------------- | :-------------------------------------------------------------------------- | :---------------------- |
| `name` | Name of the output style, if not the file name | Inherits from file name |
-| `description` | Description of the output style. Used only in the UI of `/output-style` | None |
+| `description` | Description of the output style, shown in the `/config` picker | None |
| `keep-coding-instructions` | Whether to keep the parts of Claude Code's system prompt related to coding. | false |
## Comparisons to related features