Guide · Claude Code

How to change Claude Code's personality.

Output styles, CLAUDE.md, a launch flag, or a whole agent. One of them is built for this.

Most people put their preferences in CLAUDE.md, because it is the file they already have. Claude Code's docs point somewhere else. CLAUDE.md is for what the project needs. How Claude Code talks to you, its role and its tone, is what an output style is for. It is one Markdown file, and one line in it decides whether Claude Code stays good at engineering.

The short answer. Save a Markdown file to ~/.claude/output-styles/ with name and description front-matter and your communication rules as the body. Add keep-coding-instructions: true, or a custom style drops Claude Code's built-in software-engineering instructions. Select it with /output-style or under /config. AgentTune ships all 43 personality tunings as ready-made styles.

The twenty-second version.

Download a ready-made style, then pick it:

mkdir -p ~/.claude/output-styles curl -sSL https://agent-tune.com/output-styles/agenttune-mbti-intj.md \ -o ~/.claude/output-styles/agenttune-mbti-intj.md
  1. Restart Claude Code. The docs say custom style files are read at startup.
  2. Run /output-style and choose AgentTune INTJ, or open /config and set Output style.
  3. Say "hi". A tuned session answers in one short line.

That is the INTJ file. There are 43, one per type, listed further down. They are plain Markdown and MIT licensed, so edit them.

If /output-style is not recognized, update Claude Code. The command was deprecated in March 2026 and brought back in version 2.1.269, on September 11. /config works either way.

Four places to put it. They do different jobs.

This is the comparison Claude Code's own docs draw, in our words.

WhereWhat it doesLoadsUse it for
Output styleChanges the default instructions Claude Code works fromEvery turnRole and tone. Your personality file.
CLAUDE.mdArrives as a message after the system promptEvery sessionProject conventions, commands, architecture
--append-system-promptAppends text to the system prompt at launch. Removes nothing.That launchA one-off, or a script
--agentRuns the whole session as a subagent with its own prompt, model and toolsThat sessionReplacing who Claude Code is

Two details in there decide it. CLAUDE.md is not part of the system prompt, and the docs say plainly that compliance with it is not guaranteed. An output style is sent with every request, with reminders during the conversation. If you want a rule followed at turn ninety, that is the difference.

Output styles, and the flag that matters.

Claude Code ships five: Default, Proactive (acts and assumes instead of asking), Concise (result first, short), Explanatory (adds educational insights) and Learning (leaves TODO(human) markers for you to implement). If one of those is the change you wanted, you are done. Run /output-style Concise.

A custom style is a Markdown file in ~/.claude/output-styles/ for all your work, or .claude/output-styles/ inside one project. The nearest one wins. The front-matter takes four keys:

  • name: what appears in the picker. Defaults to the file name.
  • description: shown next to it.
  • keep-coding-instructions: default false.
  • force-for-plugin: for plugins only.

That third key is the trap. A custom style, by default, drops Claude Code's built-in software-engineering instructions. That is deliberate. Output styles were designed so people could turn Claude Code into something that is not a coding agent at all. If what you wanted was the same engineer with better manners, you have to say so:

--- name: Straight answers description: Conclusion first, no hedging, one recommendation. keep-coding-instructions: true --- How to talk to the person you are working with: - Lead with the answer or the recommendation. Reasoning comes after. - Drop hedges like "I think" and "it depends". If you don't know, say so in one line. - Give one recommendation, not a menu, unless asked for options. - Push back when they are wrong, and say why. - No openers, no recap of what they just said, no closing offers.

People who find their custom style made Claude Code worse at coding have usually hit exactly this. Every file in our pack sets the flag to true, and opens by telling Claude Code that the rules change how it talks, not how it engineers.

You can also set the style without the menu, by putting "outputStyle": "AgentTune INTJ" in a settings file. The menus save your choice to .claude/settings.local.json. One limit: a style reaches the main conversation and its forks. Other subagents do not get it.

The 43-style pack.

One output style per tuning. Each name links to the type's page, which shows the rules in plain English and a before-and-after. File is the download. The install command is the one at the top of this page with the file name swapped. A machine-readable list is at /output-styles/index.json.

Don't know your type? The free MBTI test takes about ten minutes. Four other instruments are at /tests/ if MBTI is not your frame.

CLAUDE.md: right for the project, wrong for you.

CLAUDE.md still matters. It is just answering a different question. The docs give the load order: a managed policy file, then ~/.claude/CLAUDE.md, then ./CLAUDE.md or ./.claude/CLAUDE.md, then ./CLAUDE.local.md. The files are concatenated, none overrides another, and the docs suggest keeping each under 200 lines.

Three reasons your personality does not belong in the project's CLAUDE.md:

  • It is shared. The repo's CLAUDE.md is your team's file. "Talk to me like an ENFP" is not a team convention.
  • It is weaker. It arrives as a message, not as part of the system prompt.
  • It competes. Every line about your temperament is a line not spent on how to run the tests.

If you want it in a CLAUDE.md anyway, use ~/.claude/CLAUDE.md or CLAUDE.local.md, which are yours alone, and keep it to a few lines. /memory opens the files for editing, and /context shows what actually loaded. For what belongs in the project file, see CLAUDE.md examples.

Flags and agents: for one-offs and full replacements.

--append-system-prompt and --append-system-prompt-file add text to the system prompt and remove nothing. They work in interactive and non-interactive mode. Good for a script, or for trying a tuning once:

claude --append-system-prompt-file ~/.claude/output-styles/agenttune-mbti-intj.md

--system-prompt and --system-prompt-file replace the whole system prompt. That is almost never what you want for a personality. One catch from the docs: the prompt is recorded at a conversation's first request, so changing these flags on --resume or --continue only takes effect after compaction or in a new conversation.

claude --agent <name>, or "agent": "<name>" in .claude/settings.json, runs the entire session as one of your subagents. Its file body becomes the system prompt, replacing the default the way --system-prompt does. CLAUDE.md still loads. This is how you build a different character entirely. It is a bigger hammer than a personality needs.

For a team, a plugin can ship output styles in an output-styles/ folder at its root.

What a personality file should not touch.

Keep the two layers apart. The personality layer says how to talk to you: what to lead with, how to disagree, when to stop asking questions. The engineering layer says how to build: conventions, tests, what never to commit. When they blur you get a style that says "be decisive" being read as "skip the tests".

The line we put at the top of every file in the pack:

These rules change how you talk: what you lead with, how you frame decisions, how you disagree, when you stop asking questions. They do not change how you engineer.

The same separation applies to Cursor rules, AGENTS.md and Copilot instructions. That is covered in the layer your AGENTS.md is missing.

Questions people ask.

Does Claude Code have a personality setting?

Yes. It is called an output style. Claude Code ships five built-in styles (Default, Proactive, Concise, Explanatory and Learning), and you can add your own as Markdown files in ~/.claude/output-styles/. Switch with /output-style or under /config.

What is the difference between an output style and CLAUDE.md?

An output style changes the default instructions Claude Code works from and is sent on every turn. CLAUDE.md arrives as a message after the system prompt, and the docs say compliance is not guaranteed. Use an output style for role and tone, and CLAUDE.md for project conventions, commands and architecture.

Why did my custom output style make Claude Code worse at coding?

Custom styles drop Claude Code's built-in software-engineering instructions unless the file sets keep-coding-instructions: true. The default is false. Add that line to the front-matter and restart Claude Code.

Is /output-style deprecated?

It was deprecated in March 2026 and brought back in Claude Code 2.1.269 on September 11, 2026, according to the changelog. On older versions, set the style under /config, or put an outputStyle key in a settings file.

Do output styles apply to subagents?

A style reaches the main conversation and its forks. Other subagents do not receive it, and they do not get Claude Code's default system prompt either. A subagent's own file body is its system prompt.

Can I share an output style with my team?

Yes. Commit it to .claude/output-styles/ in the repo, or ship it in a plugin's output-styles folder. A personality style is usually personal, though, so most people keep it in ~/.claude/output-styles/.

Where do custom output styles live?

In ~/.claude/output-styles/ for every project, or .claude/output-styles/ inside one project. The nearest one wins. Restart Claude Code after adding or editing a file.

What changed.

  • First published, with the 43-style pack. Checked against Claude Code 2.1.278.

Sources.

Keep going.