--- name: output-styles-reference description: CC output styles — configurable response shape, tone, length, and formatting baselines. layer: reference cc_feature: output-styles source: https://docs.claude.com/en/docs/claude-code/output-styles concept: output-style-config last_verified: 2026-04-18 ngram_overlap_score: null review_status: approved --- # Output Styles — Reference Output styles let a user or plugin shape how Claude Code responds: length defaults, formatting preferences, tone, verbosity. They apply across the session rather than needing to be re-stated per prompt. ## Where they live - **Built-in styles** — shipped with the CLI. - **Custom styles** — directory with a manifest describing the style. - **Selection** — the user sets an active style via settings or a `/style` command. The style is injected into Claude's system context. ## What a style can control - Default response length baseline ("keep responses ≤ 100 words unless detail is required"). - Formatting rules (markdown vs plain, code-block conventions). - Tone ("terse", "pedagogical", "adversarial"). - Domain voice (Norwegian for dialog, English for code — a project convention encoded as a style). ## What a style cannot control - Tool permissions (that is `allowed-tools` / `settings.json`). - Hooks (those are harness-level). - Agent system prompts (those come from agent definitions). ## When to use a custom style - The project has a persistent communication convention that should hold across every session (e.g., "never use emojis"). - Multiple users share the project and want consistent output. - A skill's prompts would otherwise have to restate formatting rules each time. ## When not to - For per-task formatting needs — use the prompt instead. - For rules that must hold against prompt injection — use hooks. ## Practical shape A minimal custom style is a markdown or plain-text block listing the conventions. Claude treats it as top-of-system guidance. Keep it short: long styles crowd out the task.