Output styles change how Claude responds, not what Claude knows. They modify the system prompt to set role, tone, and output format while keeping core capabilities like running scripts, reading and writing files, and tracking TODOs. Use one when you keep re-prompting for the same voice or format every turn, or when you want Claude to act as something other than a software engineer. For instructions about your project, conventions, or codebase, use CLAUDE.md instead.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.
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 three additional built-in output styles:- Proactive: Claude executes immediately, makes reasonable assumptions instead of pausing for routine decisions, and prefers action over planning. This applies the same guidance as auto mode without changing your permission mode, so you still see permission prompts before tools run.
- 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.- Custom output styles exclude instructions for coding (such as verifying code
with tests), unless
keep-coding-instructionsis 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
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.
To set a style without the menu, edit the outputStyle field directly in a
settings file:
Create a custom output style
Custom output styles are Markdown files with frontmatter and the text that will be added to the system prompt:- User:
~/.claude/output-styles - Project:
.claude/output-styles - Managed policy:
.claude/output-stylesinside the managed settings directory
output-styles/ directory.
Frontmatter
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, shown in the /config picker | None |
keep-coding-instructions | Whether to keep the parts of Claude Code’s system prompt related to coding. | false |
force-for-plugin | Plugin output styles only: apply this style automatically whenever the plugin is enabled, without requiring users to select it. Overrides the user’s outputStyle setting. If multiple enabled plugins set this, the first one loaded wins. | 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
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
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.
