Claude Code Output Styles for Data Workflows
What it is: Output styles are a built-in Claude Code feature that change Claude's default instructions for every response in a session — its role, tone, and format — rather than what it knows about your project. Beyond the Default (software engineering) style, Claude Code ships Concise, Explanatory, Learning, and Proactive built-in styles, and you can write your own as a Markdown file. You switch between them with the /output-style command.
Quick answer: Run /output-style to list and switch styles for the current session. Reach for a style when you want a standing change to how Claude explains itself across a whole session — pick a more explanatory style while learning a new codebase, or a terser one when you just want the diff.
Why it matters for data work
Data work covers very different modes: heads-down pipeline debugging where you want terse, just-the-fix answers, versus onboarding onto an unfamiliar warehouse schema where you actually want Claude to explain its reasoning as it goes. Instead of prefacing every message with "explain your reasoning" or "just give me the command," an output style sets that framing once for the session.
Install & configure
Run /output-style with no argument in a Claude Code session to list the available styles and see which is active, or /output-style concise (for example) to switch directly. For a custom style tailored to your team's habits — say, always summarizing query results as a table, or always flagging data-quality assumptions explicitly — add a Markdown file under .claude/output-styles/ with name and description frontmatter and your instructions as the body; set keep-coding-instructions: true if Claude should still code normally under the new tone, or leave it out if the style isn't a coding style at all.
Output style or a slash command?
An output style changes the shape of responses for the rest of the session — tone, verbosity, how much reasoning is shown — regardless of what task you ask for next. A slash command triggers a specific, one-off task with its own prompt. If what you want is "explain things more" for the next hour of work, that's a style. If what you want is "run this specific review every time," that's a command. They compose fine together — invoke a command while a more explanatory style is active and you'll get the command's task explained in more depth.
Limits and gotchas
An output style changes framing and tone, not Claude's underlying tool behavior or judgment — it won't make Claude more or less careful about running a destructive command, only about how much it explains along the way. A style also applies session-wide until you switch it again, so a style you picked for onboarding can linger and feel unnecessarily verbose once you're back to routine work; it's worth checking which style is active if responses suddenly feel off in tone.
Troubleshooting
Most confusion is about scope — what a style affects and how long it lasts.
- Responses don't seem to change after switching styles: confirm the switch actually applied via
/output-style's own confirmation rather than assuming a typed instruction changed it. - Style resets between sessions: some scopes are per-session rather than persisted — check whether you need to set a default style at the project or user level instead of switching it each time.
- Custom style file isn't recognized: confirm it's placed under
.claude/output-styles/and its frontmatter matches the current documented format. - Style seems to conflict with a slash command's own instructions: the command's explicit prompt generally takes precedence for that one task — if the mismatch persists, simplify the command's own tone instructions rather than fighting the active style.
Author & links
Author: Anthropic
Docs: docs.claude.com/en/docs/claude-code/output-styles
License: Proprietary — bundled with Claude Code
Related skills
See slash commands for on-demand tasks rather than session-wide tone, and subagents for delegating a task with its own isolated context.
← Back to Claude Code Skills