~8 min read · ← Back to README
Mental model: Effort is a behavioural dial, not a strict token budget. It shifts how much Claude thinks before responding, how willing it is to read related files, how long the response gets, and how persistently it pushes through multi-step work. A higher dial doesn't make the model smarter — it changes its bias.
- The API knows 5 levels:
low·medium·high·xhigh·max, withhighas the default. - Claude Code adds a 6th:
ultracode—xhighreasoning plus standing permission to orchestrate multi-agent workflows. It's not an API level. maxandultracodeare session-only by design — they can't be persisted insettings.json.xhighis broadly available now: Fable 5, Mythos 5, Opus 4.8, Opus 4.7, and Sonnet 5 all support it (no longer a single-model exclusive).- Current defaults (July 2026): Opus 4.8 →
highon all surfaces; Sonnet 5 →highon API and Claude Code. - Context quality often beats more effort. A model on Low with great context regularly outperforms the same model on Max with poor context.
- Higher ≠ always better. Anthropic's own guidance:
maxshows diminishing returns and is more prone to overthinking on routine work.
Effort affects three documented behaviours simultaneously, plus a fourth pattern the community has named:
| Dimension | Low | Medium | High / xHigh / Max |
|---|---|---|---|
| Thinking depth | Skips on simple problems | Thinks when warranted | Almost always engages reasoning |
| Tool-call appetite | Minimum exploration | Reads what's asked for | Reads related files unprompted |
| Response length | Terse | Balanced | Thorough, structured |
| Agentic persistence (community framing) | Pauses to ask for clarification | Plans ahead, keeps moving | Drives through multi-step work autonomously |
Even at low, Claude will still think on sufficiently hard problems — just less than it would at higher effort.
| Effort | Available | Behaviour | Reach for it when… |
|---|---|---|---|
| Low | API + Claude Code | Fastest. Skips thinking on simple problems, minimum tool use, terse responses. | Fast interactive queries where you're steering — file renames, simple greps, build commands. |
| Medium | API + Claude Code | Balanced. Thinks when warranted, skips when not. | General coding, small refactors, writing tests, autonomous sessions where the plan is clear. |
| High | API + Claude Code (default) | Almost always engages thinking, reads related files unprompted, gives thorough responses. | Multi-file refactors, complex debugging. The default on current models. |
| xHigh | Fable 5, Mythos 5, Opus 4.8/4.7, Sonnet 5 | A notch above high — more thorough reasoning, more willing to explore, more persistent. | Long autonomous agentic sessions. |
| Max | API + Claude Code, session-only | Highest capability, no token constraints on reasoning. | Architecture decisions, subtle bugs, security reviews — genuinely hard problems. Skip for routine work. |
| Ultracode | Claude Code only, session-only | xhigh reasoning plus automatic multi-agent workflow orchestration — Claude fans work out to background subagents on every substantive task. |
Exhaustive audits, migrations, deep research — when thoroughness matters more than token cost. |
⚠️ Anthropic's official guidance formax: reserve it for genuinely frontier problems. On most workloads it adds significant cost for relatively small quality gains, and on some structured-output tasks it can lead to overthinking. — Effort API docs
| Model | Default effort | Notes |
|---|---|---|
| Opus 4.8 | high |
All surfaces (API, Claude Code, claude.ai) |
| Sonnet 5 | high |
API and Claude Code |
| Fable 5 | high |
Adaptive thinking always on — it can't be disabled |
| Haiku 4.5 | n/a | Effort dial isn't meaningful on Haiku |
📜 History: effort defaults churned through spring 2026 — dropped to
mediumfor all plans in early March (a speed/cost tune that hit quality), then standardized back tohigheverywhere in Claude Code v2.1.117 (April 2026). If a guide tells you Pro/Max users are on a nerfedmediumdefault, that's the fossil record — check/effortin your session.
| Task | Model + Effort |
|---|---|
| File renames, simple greps, build commands | Sonnet 5, Low |
| General coding, small refactors, writing tests | Sonnet 5, Medium |
| Multi-file refactors, complex debugging | Sonnet 5, High |
| Long autonomous agentic sessions | Opus 4.8, xHigh |
| Architecture decisions, subtle bugs, security reviews | Opus 4.8 or Fable 5, Max |
| Exhaustive multi-agent audits, migrations, deep research | Ultracode |
A repeatable cost-saver for harder tasks:
- Plan in Opus 4.8 (or Fable 5) at xHigh or Max. Get a clean, atomic, unambiguous plan with explicit task boundaries. This is where deep reasoning earns its keep.
- Execute in Sonnet 5 at lower effort. Sonnet follows clear plans closely without drift. If the plan leaves no room for interpretation, execution is cheap.
The pattern fails when the plan has gaps — Sonnet at low effort won't catch ambiguity it inherits, so the cleanup costs more than the savings. Invest in the plan; the execution comes for free.
💡 The most actionable insight here: effort level is partly a context-quality proxy. A model on Low with great context regularly beats the same model on Max with poor context — the extra thinking budget gets spent reconstructing state the session should already have.
Practical heuristic: if you're reaching for Max on a task that shouldn't need it, ~80% of the time the fix is upstream — not in how hard the model thinks:
- A sharper
CLAUDE.mdthat names files, conventions, and constraints explicitly. - A clearer plan with atomic, zero-ambiguity tasks.
- Files referenced by path, not "the thing we discussed earlier."
- Errors pasted in full, not paraphrased.
A project that works fine on High but falls apart on Medium is telling you something about your context setup, not the model.
Mechanisms, in increasing order of persistence:
| Mechanism | How | Persistence |
|---|---|---|
| Per-turn keyword | ultrathink in your prompt — adds an in-context instruction; does not change the API effort |
This turn only |
| Per-session command | /effort <level> — or /effort (no args) for an interactive slider; /effort auto resets to model default |
Current session |
| Per-session flag | claude --effort <level> at launch |
Current session |
| Persistent (low / medium / high / xhigh) | "effortLevel": "high" in ~/.claude/settings.json (user) or .claude/settings.json (project) |
All sessions |
# Quick raise for one turn (in-context only — see gotcha below)
> ultrathink — design the migration strategy here
# Raise for the session
/effort xhigh
/effort ultracode # xhigh + automatic multi-agent workflowsTo persist a level project-wide, add the key to your existing .claude/settings.json (don't overwrite the file):
{
"effortLevel": "high"
}
maxandultracodeare session-only by design and cannot be set viasettings.json.
Per Anthropic's docs, ultrathink "adds an in-context instruction" and the effort level sent to the API is unchanged. If you're already running xhigh or max, the in-context "think harder" cue is essentially redundant. For a deliberately deeper turn, prefer /effort max (set, prompt, then /effort auto) over the keyword.
Opus 4.7+, Opus 4.8, and Fable 5 use a tokenizer that produces ~30% more tokens for the same text than pre-4.7 models (pricing docs) — sessions burn through limits faster at the same effort. Budget accordingly on long agentic runs.
Setting effort: "ultracode" in an API request will fail — it exists only in Claude Code, where it means "xhigh + standing permission to orchestrate workflows."
If you remember nothing else from this page:
- Check your current effort with
/effort— defaults have churned and yoursettings.jsonmay be stale. - Stay on the model default (
high) unless you have a specific reason to change. - Reach for
maxonly when the problem genuinely needs it — architecture, subtle bugs, security review. Skip for routine work. - Before raising effort, fix context. Sharper
CLAUDE.md, atomic plan, named files. ~80% of the time that's the actual fix. - Plan with Opus at xHigh/Max, execute with Sonnet at a lower effort when the work is large enough to split.
- Use
ultracodedeliberately — it fans work out to background subagents; wonderful for audits, wasteful for one-line fixes.
- Claude Code model-config docs — canonical reference for
effortLevel,/effort, and precedence - Anthropic Effort API docs — per-level behaviour and the
maxguidance - Claude Code workflows docs — what
ultracodeactually unlocks - Model overview — per-model effort support
- Models — specs and pricing — model IDs, when to pick which
- Slash commands reference —
/effort,/usage,/model - README → Prompt Engineering Deep Dive —
thinkdirectives, Explore→Plan→Code→Commit, TDD workflow - FAQ — pricing, plan limits, Fast Mode