In Claude Code, output styles change how Claude behaves and how it formats its responses. They work by adjusting the instructions Claude reads at the start of a session -- its underlying system prompt -- so instead of re-asking for the same tone or layout every turn, you set it once and it sticks. Think of an output style as choosing what role Claude plays: a straight-to-the-point coder, a patient teacher, or something you define yourself.

What output styles change (and what they don't)

An output style changes how Claude responds, not what it knows. It sets the role, the tone, and the shape of the output. It does not add facts about your project or your business. If you want Claude to remember your conventions or context, that belongs somewhere else. An output style is purely about the way Claude works and talks back to you.

Plain-English note: the "system prompt" is just the standing set of instructions Claude follows before you type anything. An output style edits that standing instruction, which is why the change carries across every reply instead of only the next one.

The built-in output styles

Claude Code ships with a Default style plus three alternatives. The Default is the normal software-engineering behavior. The others make Claude more explanatory or more teaching-oriented, which is handy even if you never write a line of code yourself and just want to understand what's happening.

built-in styles
DDefaultThe standard behavior, tuned to get work done efficiently.On
PProactiveActs immediately and makes reasonable calls instead of pausing to ask.Off
EExplanatoryAdds educational "Insights" as it works, so you follow the reasoning.Off
LLearningLearn-by-doing: shares insights and hands you small pieces to try.Off

The four styles Claude Code includes out of the box.

How to switch your output style

Historically you switched styles with the /output-style command. In current versions of Claude Code, you change it through the settings menu instead: run /config and pick a style under Output style. Either way you land in the same place -- a short menu where you choose the behavior you want.

/config

Open settings, then choose your style under "Output style." Click to copy.

Because a style changes behavior at the session level, your choice is saved and stays in effect until you change it. A brand-new session picks it up automatically, so you're not re-selecting it every time you sit down.

A real example: learning mode vs. get-it-done mode

Say you're a business operator, not an engineer, and Claude is setting up a small workflow for you. On a normal day you don't care how it works -- you want the change made and you want to move on. That's the Default style: terse, efficient, minimal narration.

But next week you actually want to understand what's happening so you can do it yourself. You switch to the Explanatory or Learning style. Now Claude explains its choices as it goes, and in Learning mode it even hands you small pieces to try. Same task, two completely different experiences, controlled by one setting.

When learningExplanatory or LearningClaude teaches as it works and surfaces the "why" behind each step.
When shippingDefaultYou just want the change made. Less explanation, faster to the result.

Creating your own output style

You aren't limited to the built-in options. A custom output style is a plain Markdown file: a short header for the name and description, followed by the instructions you want Claude to always follow. Claude stores it in your Claude config folder (a .claude/output-styles directory, either just for you or for a specific project), and once saved it shows up in the same menu as the built-in styles.

This is how you'd bottle up a repeated request. If you always want plain-language summaries with no jargon, you write that instruction once as a custom style and never type it again.