Claude Code Output Styles: Explanatory, Learning, and Custom Options
Software engineer and founder with a background in finance and tech. Currently building aVenture.vc, a platform for researching private companies. Based in San Francisco.

Overview
- What Output Styles are and how they work in Claude Code - The two built‑in styles: Explanatory
and Learning (with to-do prompts) - Exact commands for switching styles and creating custom ones -
Where styles are stored and how they persist per project - How Output Styles compare to CLAUDE.md,
--append-system-prompt, Agents, and Slash Commands
1) Output Styles in a nutshell
- What they are: A top‑level way to change Claude Code’s “personality” by replacing its system prompt while keeping all tools (read/write files, run scripts, track TODOs, MCP integrations) intact.
- Why it matters: You can flip between efficient coding, narrated reasoning, or hands‑on learning—without losing core capabilities.
- Docs: See Anthropic’s guide: docs.anthropic.com/en/docs/claude-code/output-styles
Quick start: switch styles and verify
Per-project default: Your selection persists for this repo in
.claude/settings.local.jsonand is used next time you open it.No global default key (as of 2025-08-24): There's no documented settings key to set a global default output style in
settings.json; pick per repo.Reuse across repos: Store custom styles in
~/.claude/output-styles, then select them once per repo.
Assign an existing custom style directly
This selection will persist for the current project via
.claude/settings.local.json.Note (as of 2025-08-24): Claude Code suggested
/output-style:set, but the working command is/output-style <styleName>or use the/output-stylemenu.
Compare: Output Styles vs CLAUDE.md vs --append-system-prompt vs Agents vs Slash Commands
- Output Styles
- Replace the main agent’s system prompt (“stored system prompts”).
- Affect the main loop and keep all tools available.
- CLAUDE.md
- Adds content as a user message after the default system prompt.
- Does not change the default system prompt itself.
--append-system-prompt- Appends to the system prompt instead of replacing it.
- Agents / Sub-agents
- Invoked for specific tasks; can pick models/tools and include their own context.
- Output Styles remain the “primary voice”; agents are specialists you call.
- Custom Slash Commands
- "Stored prompts," not system prompts. Good for repeatable actions/macros.
2) Create and share custom styles
Method A: Fast path with /output-style:new
Result is saved as a Markdown file:
User-level (reusable everywhere):
~/.claude/output-stylesProject-level (repo-scoped):
.claude/output-styles
Method B: Author the Markdown directly (portable & reviewable)
- Place in
~/.claude/output-stylesor.claude/output-styles. - Switch to it from the picker (
/output-style) once present.
3) Practical workflows that work well
-
Narrated refactors (Explanatory)
- Ask it to explain trade‑offs, coupling, and adjacent impacts as it edits.
- Use this when you need architectural context preserved in commit messages and PRs. For complementary workflows, see Claude Code: Automatic Linting, Error Analysis, & Custom Commands.
-
Onboarding sprints (Learning)
- Let Claude scaffold, then you implement to-do chunks. Pair with linting and error analysis slash‑commands to catch issues early.
- Keeps momentum while ensuring you actually touch core code paths.
-
Domain specialist modes (Custom)
- E.g., “Perf Coach,” “Accessibility Reviewer,” “Security Triage,” “Release Manager.”
- Capture checklists and communication style once; reuse across repos.
Quick recipe: domain specialist that doesn’t break your coding flow
Tip: Combine a Performance Coach style with complexity-focused prompts to catch N+1 queries and needless copies early.
4) Troubleshooting and tips
- If style switches don't seem to persist: ensure
.claude/settings.local.jsonis writable in the repo.
(This file is per-user and typically not committed; verify your.gitignorerules.) - If a custom style isn’t showing: confirm the file lives in
~/.claude/output-stylesor.claude/output-stylesand is valid Markdown/YAML. - If the style feels “too quiet” or “too chatty”: tweak the behaviors section—Output Styles are just structured prompt files.
- For deep reference and edge cases, read: docs.anthropic.com/en/docs/claude-code/output-styles
5) References
- Output Styles (official): docs.anthropic.com/en/docs/claude-code/output-styles
- Configuring and using styles (app): support.anthropic.com/en/articles/10181068-configuring-and-using-styles
- News coverage: