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.
By Bernard Huang · Updated
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 twenty-second version.
Download a ready-made style, then pick it:
- Restart Claude Code. The docs say custom style files are read at startup.
- Run
/output-styleand choose AgentTune INTJ, or open/configand set Output style. - 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.
| Where | What it does | Loads | Use it for |
|---|---|---|---|
| Output style | Changes the default instructions Claude Code works from | Every turn | Role and tone. Your personality file. |
| CLAUDE.md | Arrives as a message after the system prompt | Every session | Project conventions, commands, architecture |
--append-system-prompt | Appends text to the system prompt at launch. Removes nothing. | That launch | A one-off, or a script |
--agent | Runs the whole session as a subagent with its own prompt, model and tools | That session | Replacing 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:
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.
- MBTI. INTJ (file) · INTP (file) · INFJ (file) · INFP (file) · ISTJ (file) · ISTP (file) · ISFJ (file) · ISFP (file) · ENTJ (file) · ENTP (file) · ENFJ (file) · ENFP (file) · ESTJ (file) · ESTP (file) · ESFJ (file) · ESFP (file)
- Enneagram. Enneagram 1 (file) · Enneagram 2 (file) · Enneagram 3 (file) · Enneagram 4 (file) · Enneagram 5 (file) · Enneagram 6 (file) · Enneagram 7 (file) · Enneagram 8 (file) · Enneagram 9 (file)
- DISC. DISC D (file) · DISC I (file) · DISC S (file) · DISC C (file)
- Attachment style. Secure attachment (file) · Anxious attachment (file) · Avoidant attachment (file) · Disorganized attachment (file)
- Big Five. High Openness (file) · Low Openness (file) · High Conscientiousness (file) · Low Conscientiousness (file) · High Extraversion (file) · Low Extraversion (file) · High Agreeableness (file) · Low Agreeableness (file) · High Neuroticism (file) · Low Neuroticism (file)
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:
--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:
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.