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.

ModelDefault effort
Opus 5.5, Sonnet 5.5, Haiku 5.5medium
Fable 5.1, Fable 5 and other models that support efforthigh
Opus 4.7xhigh

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

  • /effort opens a slider. /effort <level> sets the level directly, /effort status shows the current one, /effort auto clears your saved level for the active model.
  • In the /model picker, adjust effort with the left and right arrow keys.
  • --effort <level> sets it for one session.
  • In settings, modelSettings holds a level per model, and effortLevel sets a default for models without their own level.
  • A skill or subagent can set effort in its frontmatter (the settings block between --- lines at the top of its file), which overrides the session level while it runs.
  • CLAUDE_CODE_EFFORT_LEVEL overrides 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

  • max is not sticky. It resets at the end of the session.
  • The old top-level effortLevel in user settings does not apply to Opus 5.5 or later. Use /effort or modelSettings instead.
  • Ultracode is not an effort level. /effort ultracode turns on a separate setting that orchestrates workflows.

Citations

  1. Model configuration: adjust effort level
  2. Manage costs effectively: adjust extended thinking
  3. Glossary: effort level, extended thinking
  4. Changelog: 2.1.299