Output Styles in Claude Code
Claude Code's output styles control how the AI responds to your requests. This summary covers the built-in styles and when to use each one.
TLDR: Output styles = stored system prompts that change Claude's behaviour. Slash commands = stored user prompts for quick actions.
Use the 'default' style for classic coding, 'Explanatory' for learning, 'Learning' for hands-on practice, and create custom styles as needed to match your workflow or creative needs (start from the default system prompt for inspiration).
Note: Requires Claude Code version 1.0.81 or later
Default and Built-in Output Styles
Default Output Style
Purpose: Optimized for software engineering tasks.
Features: Includes system prompt instructions for concise code generation, automatic code verification, and test integration.
Context: This is the initial state, designed for efficient programming workflows.
Explanatory Output Style
Purpose: Adds educational value and explanations to its software engineering help.
Example: When planning a project, it might explain why it's choosing one database over another, or the reasoning behind selecting a store over React context.
Best for: If you want to enhance your learning while coding or need insight into design decisions.
Learning Output Style
Purpose: Mimics a pair-programming experience to help you learn by doing.
Features:
Provides code insights as you go.
Assigns you small, strategic coding tasks (adds "to-do human" items).
Checks your work and offers feedback or explanations based on your solutions.
Best for: Developers who want to upskill or learn new patterns interactively.
Custom Output Styles
You can create your own Output Style.
Behind the scenes: Claude generates a new output-style file and modifies the system prompt accordingly.
Impact: Output styles are tightly coupled to the system prompt, so customisations can drastically change behaviour. Switching to a non-default output style removes software-engineering–specific logic from the system prompt. This potentially reduces coding efficiency but broadens capability in other domains (research, creative writing, etc.).
Put differently: output styles introduce the ability to change the _system prompt_ which can be very powerful! Here is an example where I change the behaviour with respect to Claude Code's commit behaviour.
How to Use & Select Output Styles
Use the CLI to create/select/explore output styles (
output-style:new, then select from available styles).Output styles can be selected per session or per project as needed.
Advanced Tips
Output style selection is part of a broader "system prompt + user message" structure.
You can further manipulate prompts using
--append-system-promptto add final adjustments to the behaviour.For customisation, consider starting from the default system prompt (you can use Claude tracing for this but here is the default system prompt of Claude Code 1.0.85).