Effort levels: what each one changes
Opus 5.5, Sonnet 5.5 and Haiku 5.5 all accept five levels: low, medium, high, xhigh, max. The effort parameter steers how deeply the model thinks, which moves latency and token spend together.[1] Ask for a level a model does not support and Claude Code drops to the highest supported level at or below it.[2]
The "use it for" column is my guidance. Anthropic documents the levels and the default, not a per-task mapping. The one documented recommendation: moving from Opus 5, start at medium.
How to set it
/effort opens a slider. /effort high sets a level, /effort auto clears your saved level, /effort status shows what is in effect.
claude --effort high sets it for one launch.
CLAUDE_CODE_EFFORT_LEVEL wins over everything, including subagent frontmatter. Setting it flattens every subagent to one level, so I leave it unset.
One trap. The top-level effortLevel key in settings.json is the older form. It applies to Opus 5 and earlier but not to Opus 5.5, which starts at its own default until you pick a level.[2] Pasting "effortLevel": "high" into settings and expecting Opus 5.5 to obey it is the mistake I would expect most people to make. Use /effort and confirm with Enter to save per model.
Changing effort mid-session can show a cache warning, because the prompt cache is tied to the request settings. Switch at a natural break, not mid-task. Prompt bloat compounds the cost, so check your project file with the Prompt Bloat Analyzer.
A settings.json to copy
This puts planning on Opus, implementation on Sonnet, and delegated subagent work on Sonnet by default. Put it in ~/.claude/settings.json or a project's .claude/settings.json.
{
"model": "opusplan",
"env": {
"CLAUDE_CODE_SUBAGENT_MODEL": "sonnet"
}
}
What each key does, per the docs:
model: "opusplan" uses opus in plan mode and switches to sonnet for execution. Both phases get the 1M window on the Anthropic API.[2]
CLAUDE_CODE_SUBAGENT_MODEL is the default for subagents that nothing else assigns a model. It takes an alias or a full ID.
- Resolution order for a subagent: the per-call
model parameter, then the definition's model frontmatter, then this variable, then the main conversation's model.[5]
Provider caveat: on Amazon Bedrock and Google Cloud's Agent Platform the sonnet alias points at Sonnet 4.5 and haiku at Haiku 4.5, not the 5.5 models.[2] If you are on those, pin ANTHROPIC_DEFAULT_SONNET_MODEL to the ID you want.
The routing pattern: Opus plans, Sonnet builds, Haiku searches
Setting CLAUDE_CODE_SUBAGENT_MODEL alone does not change the built-in Explore and Plan subagents.[5] Explore inherits the main conversation's model, so on opusplan in plan mode your file searches run on Opus. That is the most expensive way to read a directory.
The documented fix is to define your own subagent named Explore with model: haiku. A user or project definition overrides the built-in. Save this as .claude/agents/Explore.md:
---
name: Explore
description: Fast read-only codebase search. Use for finding files, symbols and usages.
model: haiku
tools: Read, Grep, Glob
---
Search the codebase and report file paths with line numbers. Do not edit anything.
Return the shortest answer that identifies the location.
The alternative is the blunt one: set CLAUDE_CODE_SUBAGENT_MODEL plus CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1 (v2.1.257 or later) to push every subagent onto one model. While forcing is on, Claude Code ignores the model field in every subagent definition, so you lose per-agent control. I prefer the Explore override.
Per-invocation effort for subagents needs v2.1.292 or later.[5] A third-party release tracker also lists a v2.1.293 entry saying the default model moved to Haiku 5.5. The official docs I read do not confirm that, so check your own /model output before relying on it.[6]
Six CLAUDE.md rules that cut waste on Opus
CLAUDE.md loads into every session. On a 2x-priced model, every line you do not need is a standing tax, even at the $0.20 cache-read rate. These six pay for themselves. The CLAUDE.md Production Rules and the CLAUDE.md Starter Templates Pack ship ready-made versions if you would rather not write them from scratch.
1. List the exact verify commands
Write Verify with: pnpm test --run and pnpm lint. Why it works: without it, the model spends thinking tokens working out how your project is tested, and Opus has no way to switch thinking off.
2. State constraints, not tutorials
"Never edit files under generated/" costs one line. A paragraph explaining how React hooks work costs 200 tokens of context the model already has. Why it works: the model needs your project's rules, not general knowledge.
3. Point at files, do not paste them
Write API conventions: see docs/api.md instead of inlining the doc. Why it works: the file loads only when the task touches it, instead of on every turn of every session.
4. Require a plan before touching more than three files
"For changes spanning more than 3 files, write a plan and stop for approval." Why it works: the expensive failure on Opus is a confident wrong edit across ten files. A plan costs a few thousand tokens and catches it before the diff exists.
5. Ask for diffs, not explanations
"Reply with the change and one line of reasoning. No recap of the request." Why it works: output tokens cost $20 per MTok, five times the input rate. Trimming a 1,500-token recap to 150 saves real money across a long session.
6. Send search to the cheap model
"Use the Explore subagent for any search across more than two files." Why it works: it pairs with the Haiku Explore override above, so the bulk of reading happens at Haiku prices and only conclusions come back to Opus.
For a fuller set of hooks, agents and settings beyond these six, the Claude Code Production Pack covers the rest. For another effort-related setting, see our write-up of the side agent and effort parameter mods.
Quick answers
What is the Opus 5.5 model ID?
claude-opus-5-5 on the Claude API, Google Cloud, Microsoft Foundry and Claude Platform on AWS. On Amazon Bedrock it is anthropic.claude-opus-5-5.
What effort does Opus 5.5 use by default?
medium on every surface that sets a default. Sonnet 5.5 defaults to high, so Opus can think less out of the box than the cheaper model.
Why is my effortLevel setting ignored?
The top-level effortLevel key does not apply to Opus 5.5. Run /effort, pick a level and press Enter to save it for the model.
Can I turn thinking off on Opus 5.5?
No. Adaptive thinking is always on. Lower the effort to low instead.
Does Opus 5.5 need the 1M suffix?
No. It runs with the 1M window by default, so opus[1m] is unnecessary. There is no long-context price premium on the Anthropic API for Opus.
How much does Opus 5.5 cost against Sonnet 5.5?
Exactly double: $4 and $20 against $2 and $10 per million input and output tokens. Batch API requests get 50% off both.
Sources
- Claude Opus 5.5 overview, Anthropic
- Model configuration, Claude Code docs
- Models overview, Anthropic
- Opus 5.5 launch thread, Hacker News
- Subagents, Claude Code docs
- Claude Code October 2026 releases, Havoptic (third-party)
Every product mentioned is available at wowhow.cloud — pay once, ship forever.
Comments · 0
Beta: comments are stored locally on your device and not visible to other readers.
No comments yet. Be the first to share your thoughts.