Before it answers or calls a tool, the model can reason step by step. This is called extended thinking, and on current models it is adaptive: the model decides on each step whether to think and how much. The effort level sets how far it goes. Higher effort means deeper reasoning and more thinking tokens; lower effort is faster and cheaper. Thinking tokens are billed as output, the most expensive kind of token, so effort is one of the biggest dials on what a session costs.
Levels and defaults
The levels are low, medium, high, xhigh and max. Opus 4.6 and Sonnet 4.6 have no xhigh; models not listed in the docs do not support effort at all.
| Model | Default effort |
|---|---|
| Opus 5.5, Sonnet 5.5, Haiku 5.5 | medium |
| Fable 5.1, Fable 5 and other models that support effort | high |
| Opus 4.7 | xhigh |
If your organization sets a default effort for its default model, that wins over the table. If you ask for a level a model does not have, Claude Code uses the highest one below it.
On Opus 5.5, Sonnet 5.5, Haiku 5.5 and the Fable models, thinking cannot be turned off; lowering effort is the only way to spend less on it.
How to set it
/effortopens a slider./effort <level>sets the level directly,/effort statusshows the current one,/effort autoclears your saved level for the active model.- In the
/modelpicker, adjust effort with the left and right arrow keys. --effort <level>sets it for one session.- In settings,
modelSettingsholds a level per model, andeffortLevelsets a default for models without their own level. - A skill or subagent can set
effortin its frontmatter (the settings block between---lines at the top of its file), which overrides the session level while it runs. CLAUDE_CODE_EFFORT_LEVELoverrides everything above.
Choosing a level with Enter in the slider, or typing it after /effort, saves it as your default for that model. max is the exception: it applies to the current session only, unless you set it through CLAUDE_CODE_EFFORT_LEVEL. The settings keys do not accept max.
For one hard turn without changing the level, put ultrathink in the prompt. Phrases like “think hard” are just text.
Why it matters
Effort changes the cost of every request in the session. A rename or a test run does not need deep reasoning; an architectural decision might. Since 2.1.299, /usage warns when max effort accounts for a large share of your recent usage.
Gotchas
maxis not sticky. It resets at the end of the session.- The old top-level
effortLevelin user settings does not apply to Opus 5.5 or later. Use/effortormodelSettingsinstead. - Ultracode is not an effort level.
/effort ultracodeturns on a separate setting that orchestrates workflows.
Related
- Tokens: why thinking, billed as output, is expensive.
- Usage limits: where the cost of thinking ends up on a subscription.
- Reducing token usage: picking effort and model per task.