Claude Code model and effort: which to use when

Pick the model and effort level in Claude Code. The aliases (opus, sonnet, haiku, fable, opusplan), what the default is, the effort levels from low to max with when to use each, ultrathink, and how /model, /effort, --model and settings decide which one runs. Checked against Claude Code 2.1.308.

Short answer: Type /model to pick a model and, with the left and right arrow keys in the same picker, its effort. Most people never need to leave the default: Opus 5.5 at medium effort on Pro, Max, Team, Enterprise and the Anthropic API. Raise the effort to high for bug fixes where edge cases matter, lower it to low for quick renames and sketches, and write ultrathink in a prompt for one hard turn.

Claude Code has two dials. The model decides who answers; the effort decides how much it thinks and checks before answering. Higher effort means more tokens, so it uses your limits faster. It also changes how Claude works: in Anthropic's tests, Claude at a higher level tested more edge cases and verified more of its work, while a lower level gave you a starting point sooner.

Which model should you use?

You pick a model with an alias, which always points to the latest version, or with a full name such as claude-opus-5-5 to pin one version:

AliasWhat it is for
defaultClears your choice and goes back to your account's default
opusComplex reasoning; Opus 5.5 on the Anthropic API
sonnetDaily coding; Sonnet 5.5 on the Anthropic API
haikuFast, simple tasks; Haiku 5.5 on the Anthropic API
fableThe hardest and longest-running tasks, where Fable is available to you
bestFable where you have it, otherwise the same as opus
opusplanOpus while planning in plan mode, Sonnet while carrying the plan out

default is Opus 5.5 on Pro, Max, Team, Enterprise, the Anthropic API, Bedrock, Claude Platform on AWS and Google Cloud's Agent Platform, unless your organisation set its own default. On some cloud providers the aliases still point to older versions; the full model name gets you the newest one there.

Which effort level should you use?

LevelUse it for
lowQuick exchanges where you review each result: brainstorming, a first sketch, a rename
mediumThe default on Opus 5.5, Sonnet 5.5 and Haiku 5.5: day-to-day work with a clear scope, such as a new feature
highWork where checking matters or edge cases are likely, such as fixing a bug in an existing codebase
xhighDeeper reasoning, more tokens
maxHard problems Claude should work through alone, such as hunting security holes; for this session only, and test it before you use it widely

Not every model has every level: Opus 4.6 and Sonnet 4.6 have no xhigh, and a level a model lacks falls back to the next one down. Moving from Opus 5 (default high) to Opus 5.5? Anthropic suggests starting at medium: in its testing, Opus 5.5 at medium matched or beat Opus 5 at high on coding.

For one hard question in an otherwise easy session, write ultrathink anywhere in the prompt. It asks for deeper reasoning on that turn only. "Think hard" and "think more" are just words to Claude Code; only ultrathink is a keyword.

How do you change the model and effort?

WhereModelEffortLasts
In a session/model sonnet/effort highSaved as your default (press s in either picker for this session only)
At launchclaude --model opusclaude --effort lowThis session
EnvironmentANTHROPIC_MODEL=opusCLAUDE_CODE_EFFORT_LEVEL=highEvery session started with it
Settings file"model": "opus""effortLevel": "high"Every session
A skill or subagentmodel: in its front mattereffort: in its front matterWhile it runs

For the model, the order is: /model in the session, then --model, then ANTHROPIC_MODEL, then the model setting. For effort, an explicit choice (the variable, --effort or /effort) beats a saved level, which beats the model's own default. /effort auto clears the saved level for the current model.

A settings file in your user folder could look like this:

{
  "model": "opus",
  "effortLevel": "high"
}

effortLevel takes low, medium, high or xhigh; max is not accepted there. One trap: a top-level effortLevel in your user settings does not count for Opus 5.5, because /effort now saves levels per model, under modelSettings. If Opus 5.5 ignores your effortLevel, set the level with /effort once instead.

How do you see which model and effort are running?

The session header shows both, for example "with low effort", and the footer shows the effort briefly when it changes. /status shows the model with your account details, and a status line can show them all the time.

A resumed session (claude --resume, --continue) keeps the model it was saved with, unless you start it with --model.

Where can you check this?

Can you set the default model and effort in one place?

Config Studio for Claude Code has the default model, the effort, per-model settings, the highest effort allowed and the models people may pick, each explained, and writes the settings file for you. Nothing changes on your computer until you run its install script yourself.

The tool

Do it in your browser.

Claude Code

Config Studio for Claude Code

Every file Claude Code reads, explained: what each setting does, where it lives, which file wins, and an editor that writes it for you.

Keep reading

More from the blog.

Every post