Output styles changedoutput-styles
Nearest release: v2.1.294, published under an hour after upstream edited the page. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
Upstream edited this page at 8 Oct 2026 03:42 UTC, give or take a minute or two: the time comes from Anthropic’s own sitemap rather than from a commit. This site recorded the change at 22 Oct 2026 18:07 UTC.
Upstream edited
Recorded here
Lines+24added
Lines−24removed
From line
13
where the diff opens
First seen
14 Aug 2026
this site's first read of the page
Recorded edits17to this page, all time
The whole hunk
from line 13, old and new numbered
/
from line 13
1313>
1414> An output style gives Claude instructions to follow. It doesn't guarantee that something always happens or never happens. Some needs fit a different feature:
1515>
16> * For what Claude should know about your project, use [CLAUDE.md](/docs/en/memory).
17> * For something that has to happen every time, such as formatting after each edit or blocking a command, use a [hook](/docs/en/hooks-guide).
16> * For what Claude should know about your project, use [CLAUDE.md](/docs/en/memory.md).
17> * For something that has to happen every time, such as formatting after each edit or blocking a command, use a [hook](/docs/en/hooks-guide.md).
1818> * For skills, subagents, and the other options, see [Choose between an output style and other features](#choose-between-an-output-style-and-other-features).
1919
2020## Built-in output styles
from line 42
4242
4343The style's instructions also tell Claude to check with you in the conversation before an action that deletes data or changes a shared or production system. That check is an instruction Claude follows and is separate from permission prompts.
4444
45Switching to the Proactive style doesn't change your [permission mode](/docs/en/permission-modes). Your permission mode still decides which tool calls run without asking you, so permission prompts appear the same way they did before you switched.
45Switching to the Proactive style doesn't change your [permission mode](/docs/en/permission-modes.md). Your permission mode still decides which tool calls run without asking you, so permission prompts appear the same way they did before you switched.
4646
4747### Concise
4848
from line 86
8686
8787## Change your output style
8888
89Pick a style with the command, a menu, or a settings file. The command and both menus save your choice to `.claude/settings.local.json` at the [local project level](/docs/en/settings).
89Pick a style with the command, a menu, or a settings file. The command and both menus save your choice to `.claude/settings.local.json` at the [local project level](/docs/en/settings.md).
9090
9191* **`/output-style` command**: run `/output-style <style>` to switch, for example `/output-style concise`. With no argument, the command lists the styles you can pick and marks the current one.
9292
93 The command also works in [non-interactive mode](/docs/en/headless) and Agent SDK sessions, and from the mobile app or web via [Remote Control](/docs/en/remote-control#limitations), where you can list and select only [built-in styles](#built-in-output-styles). Requires Claude Code v2.1.269 or later.
93 The command also works in [non-interactive mode](/docs/en/headless.md) and Agent SDK sessions, and from the mobile app or web via [Remote Control](/docs/en/remote-control.md#limitations), where you can list and select only [built-in styles](#built-in-output-styles). Requires Claude Code v2.1.269 or later.
9494* **Terminal menu**: run `/config` and select **Output style** to pick a style from a menu.
95* **VS Code extension**: open the [command menu](/docs/en/vs-code#use-the-prompt-box) with `/` and select **Output styles** to pick a style, including your custom styles. Requires Claude Code v2.1.257 or later.
96* **Desktop app**: set the `outputStyle` field in a settings file, for example `.claude/settings.local.json`, the file the terminal menu writes. When you run `/config` there, Claude Code [opens **Settings > Claude Code**](/docs/en/desktop#what’s-not-available-in-desktop) rather than a menu.
95* **VS Code extension**: open the [command menu](/docs/en/vs-code.md#use-the-prompt-box) with `/` and select **Output styles** to pick a style, including your custom styles. Requires Claude Code v2.1.257 or later.
96* **Desktop app**: set the `outputStyle` field in a settings file, for example `.claude/settings.local.json`, the file the terminal menu writes. When you run `/config` there, Claude Code [opens **Settings > Claude Code**](/docs/en/desktop.md#what’s-not-available-in-desktop) rather than a menu.
9797
9898To set a style without the menu, edit the `outputStyle` field directly in a settings file:
9999
from line 105
105105
106106The value is case-sensitive, so write the built-in names as `Proactive`, `Concise`, `Explanatory`, and `Learning`. A value that doesn't match a style name exactly, such as `explanatory`, gives you the Default style. The `/output-style` command ignores case.
107107
108To make a style your default across projects, set `outputStyle` in `~/.claude/settings.json`. A project's own settings files [take precedence](/docs/en/settings#settings-precedence) over that value.
108To make a style your default across projects, set `outputStyle` in `~/.claude/settings.json`. A project's own settings files [take precedence](/docs/en/settings.md#settings-precedence) over that value.
109109
110When you switch styles mid-session, Claude uses the new style starting with your next message. For what that first message costs in prompt caching, see [Changing output style](/docs/en/prompt-caching#changing-output-style). Before v2.1.251, the new style applied only after you ran `/clear` or started a new session.
110When you switch styles mid-session, Claude uses the new style starting with your next message. For what that first message costs in prompt caching, see [Changing output style](/docs/en/prompt-caching.md#changing-output-style). Before v2.1.251, the new style applied only after you ran `/clear` or started a new session.
111111
112112## Create a custom output style
113113
114114A custom output style is a Markdown file: frontmatter for metadata, then the instructions for Claude.
115115
116In the VS Code extension, you can also create the file from the [**Output styles** menu](/docs/en/vs-code#use-the-prompt-box) rather than writing it by hand. This requires Claude Code v2.1.261 or later.
116In the VS Code extension, you can also create the file from the [**Output styles** menu](/docs/en/vs-code.md#use-the-prompt-box) rather than writing it by hand. This requires Claude Code v2.1.261 or later.
117117
118118**1. Create a Markdown file**
119119
from line 121
121121
122122* User: `~/.claude/output-styles`
123123* Project: `.claude/output-styles`
124* Managed policy: `.claude/output-styles` inside the [managed settings directory](/docs/en/managed-settings#delivery-mechanisms)
124* Managed policy: `.claude/output-styles` inside the [managed settings directory](/docs/en/managed-settings.md#delivery-mechanisms)
125125
126126Project output styles load from every `.claude/output-styles/` between the working directory and the repository root. When more than one of these nested directories defines a style with the same name, Claude Code uses the one closest to the working directory.
127127
from line 149
149149
150150Run `/output-style <style>` in the terminal, or run `/config` and select your style under **Output style**. Claude uses the new style starting with your next message. In the terminal, Claude Code reads style files when it starts, so if you create or edit one during a running session, restart Claude Code to pick up the change.
151151
152[Plugins](/docs/en/plugins/manifest-reference) can also ship output styles in an `output-styles/` directory.
152[Plugins](/docs/en/plugins/manifest-reference.md) can also ship output styles in an `output-styles/` directory.
153153
154154### Frontmatter reference
155155
156Configure an output style with YAML [frontmatter](/docs/en/glossary#frontmatter) between `---` markers at the top of the file. All fields are optional, and field names use lowercase words separated by hyphens. A misspelled field is ignored without an error. If the YAML doesn't parse, the style still loads under its file name with no fields set; run `claude --debug` to see the parse error.
156Configure an output style with YAML [frontmatter](/docs/en/glossary.md#frontmatter) between `---` markers at the top of the file. All fields are optional, and field names use lowercase words separated by hyphens. A misspelled field is ignored without an error. If the YAML doesn't parse, the style still loads under its file name with no fields set; run `claude --debug` to see the parse error.
157157
158158| Field | Required | Description |
159159| :- | :- | :- |
from line 171
171171| You want | Use | Why it fits |
172172| :- | :- | :- |
173173| Every response in a certain voice, length, or format, or Claude in a different role | An output style | It applies to the whole session, and you switch styles with one command |
174| Claude to know your project's conventions, commands, and structure | [CLAUDE.md](/docs/en/memory) | It holds what Claude should know about the codebase, and it stays loaded whichever style you pick |
175| Instructions for one kind of task, such as a release checklist or a review procedure | A [skill](/docs/en/skills) | Claude loads it only when you invoke it or the task matches, so it doesn't shape unrelated responses |
176| Something to happen every time without exception, such as formatting after each edit or blocking a command | A [hook](/docs/en/hooks-guide) | Claude Code runs a hook itself at a lifecycle event, so it doesn't depend on Claude following an instruction |
177| A helper with its own instructions, model, and tools for a focused task | A [subagent](/docs/en/sub-agents) | It runs in a separate context with its own system prompt and returns a summary to your conversation |
174| Claude to know your project's conventions, commands, and structure | [CLAUDE.md](/docs/en/memory.md) | It holds what Claude should know about the codebase, and it stays loaded whichever style you pick |
175| Instructions for one kind of task, such as a release checklist or a review procedure | A [skill](/docs/en/skills.md) | Claude loads it only when you invoke it or the task matches, so it doesn't shape unrelated responses |
176| Something to happen every time without exception, such as formatting after each edit or blocking a command | A [hook](/docs/en/hooks-guide.md) | Claude Code runs a hook itself at a lifecycle event, so it doesn't depend on Claude following an instruction |
177| A helper with its own instructions, model, and tools for a focused task | A [subagent](/docs/en/sub-agents.md) | It runs in a separate context with its own system prompt and returns a summary to your conversation |
178178| An addition to Claude's instructions that you pass when you start Claude Code | [`--append-system-prompt`](/docs/en/cli-reference#system-prompt-flags) | It appends to the system prompt without removing anything |
179179
180These features combine. For example, you can use CLAUDE.md for what Claude should know, an output style for how it responds, and a hook for anything that has to be guaranteed. [Extend Claude Code](/docs/en/features-overview) compares the rest of the extension features.
180These features combine. For example, you can use CLAUDE.md for what Claude should know, an output style for how it responds, and a hook for anything that has to be guaranteed. [Extend Claude Code](/docs/en/features-overview.md) compares the rest of the extension features.
181181
182182## How output styles work
183183
from line 186
186186* Claude Code sends the active style's instructions with every request.
187187* On the full system prompt, custom output styles leave out Claude Code's section of built-in software engineering instructions, such as how to scope changes, write comments, and verify work, unless `keep-coding-instructions` is set to `true`. The shorter system prompt doesn't include that section, so the field has no effect there. To rely on the field, set [`CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT`](/docs/en/env-vars#variables) to `0`, which selects the full prompt on any model.
188188
189Output styles apply to the main conversation and to a [fork](/docs/en/sub-agents#fork-the-current-conversation), which inherits the parent's whole conversation and system prompt. Other [subagents run their own system prompt](/docs/en/sub-agents#what-loads-at-startup), so styles don't change how they respond.
189Output styles apply to the main conversation and to a [fork](/docs/en/sub-agents.md#fork-the-current-conversation), which inherits the parent's whole conversation and system prompt. Other [subagents run their own system prompt](/docs/en/sub-agents.md#what-loads-at-startup), so styles don't change how they respond.
190190
191191Token usage depends on the style. A style's instructions add input tokens, though prompt caching reduces this cost after the first request in a session.
192192
from line 194
194194
195195## Related resources
196196
197* [Settings](/docs/en/settings): where the `outputStyle` field lives and how settings precedence works
198* [Permission modes](/docs/en/permission-modes): how the Proactive style compares to auto mode
199* [Plugins](/docs/en/plugins/overview): package and distribute output styles alongside skills, hooks, and agents
200* [Debug your configuration](/docs/en/debug-your-config): diagnose why an output style isn't taking effect
197* [Settings](/docs/en/settings.md): where the `outputStyle` field lives and how settings precedence works
198* [Permission modes](/docs/en/permission-modes.md): how the Proactive style compares to auto mode
199* [Plugins](/docs/en/plugins/overview.md): package and distribute output styles alongside skills, hooks, and agents
200* [Debug your configuration](/docs/en/debug-your-config.md): diagnose why an output style isn't taking effect
201201
No line in this hunk matches that.