Kipt

Your prompts and skills, one keystroke away.

Explore

Claude Code effort levels: /effort, --effort and when to change them

Claude Code effort explained: what /effort and --effort do, the levels each model supports, the defaults, ultrathink, and how effort trades speed against cost.

By the Kipt team · Updated 26 October 2026

What is effort in Claude Code?

Effort is the setting that decides how hard Claude thinks before it acts. You change it with the /effort command inside a session or the --effort flag when you launch claude. Low effort is faster and cheaper for simple work; high effort reasons more deeply for hard problems.

Anthropic's model configuration docs describe it this way: effort levels "control adaptive reasoning, which lets the model decide whether and how much to think on each step based on task complexity." So effort is not a fixed token budget. It tells the model how much reasoning a step deserves, and the model decides from there.

That makes effort a second dial next to the model. The model sets how capable Claude is; effort sets how much of that capability it spends on each step.

Which effort levels can you use?

The levels on offer depend on the model. This is the table from the official docs as of October 2026:

Model Levels
Fable 5.1 and Fable 5 low, medium, high, xhigh, max
Opus 5.5, Sonnet 5.5, Haiku 5.5, Opus 5, Sonnet 5, Opus 4.8 and Opus 4.7 low, medium, high, xhigh, max
Opus 4.6 and Sonnet 4.6 low, medium, high, max

Models not listed don't support effort. If you pick a level the active model lacks, Claude Code uses the highest supported level at or below it, so xhigh runs as high on Opus 4.6.

The scale is also calibrated per model. The docs note that "the same level name does not represent the same underlying value across models," so medium on one model is not the same amount of thinking as medium on another.

What is the default effort level?

Each model has its own default:

  • medium on Opus 5.5, Sonnet 5.5 and Haiku 5.5
  • xhigh on Opus 4.7
  • high on every other model that supports effort

If your organization sets a default effort level for its organization default model, that level is the default when you run that model.

Opus 5.5 starting at medium is deliberate. Anthropic says that in its testing, "Opus 5.5 at medium matches or exceeds Opus 5 at high on coding and knowledge-work evaluations," and recommends starting at medium rather than carrying over the level you used on Opus 5. You can check the level in effect at any time: the session header shows it next to the model name, for example "with low effort", and /effort status prints it.

How do you change the effort level?

There are several ways, and they stack in a fixed order.

Method How How long it lasts
/effort slider Run /effort, pick a level, press Enter Saved as your default for that model
/effort with s In the slider or /model picker, press s instead of Enter This session only (v2.1.257 or later)
/effort <level> Type the level, such as /effort high Saved as your default for that model
/model picker Left and right arrow keys move the effort slider Same as the slider
--effort flag claude --effort low That session
Environment variable CLAUDE_CODE_EFFORT_LEVEL=high Wherever it is set
Settings modelSettings per model, or effortLevel as a fallback Until you change the file

A few rules worth knowing:

  • Precedence. An explicit choice wins first, then your saved settings, then the model default. Among explicit choices, the environment variables reference says CLAUDE_CODE_EFFORT_LEVEL overrides both --effort and /effort. The environment variables guide explains where to set it.
  • Per model. Claude Code saves the level you pick for each model under modelSettings in your user settings, so switching models brings back that model's own level.
  • max is temporary. Unless you set it through CLAUDE_CODE_EFFORT_LEVEL, max applies to the current session only, and the settings keys don't accept it.
  • Reset. /effort auto clears your saved level for the active model so it goes back to the default.
  • Mid-turn changes. You can run /effort while Claude is working. The new level applies to the next request in the turn.

Which effort level should you use?

The official docs pair each level with a kind of work. Paraphrased:

Level Good for
low Quick exchanges you review each time: brainstorming, a first sketch, a rename
medium Day-to-day work with a clear scope, such as implementing a feature, on Opus 5.5 and Sonnet 5.5. On models with a higher default, a way to cut tokens for cost-sensitive work
high Work where verification matters or edge cases are likely, such as fixing a bug in an existing codebase
xhigh Deeper reasoning at higher token spend
max Hard problems you want Claude to work through on its own, such as hunting for security vulnerabilities

Anthropic adds a warning about the top level: max "may show diminishing returns and is prone to overthinking, so test before adopting it broadly."

In Anthropic's tests on Opus 5.5 and Fable 5.1, higher levels tested more edge cases, verified more work and made more choices on their own. Lower levels returned a starting point sooner, which suits work where you check each result and steer the next step.

A practical rule: if Claude missed something it could have found, such as a file it never opened or tests it didn't run, raise effort. If Claude had the context, clearly tried, and still got it wrong, a more capable model is the better fix. The models guide covers that choice.

How does effort affect cost and speed?

Effort is a direct lever on what a session costs. The costs page explains why: "Thinking tokens are billed as output tokens, and the default budget can be tens of thousands of tokens per request depending on the model." You pay for all thinking tokens, even when the thinking is collapsed in the terminal.

For simple tasks, lowering effort with /effort is the documented way to cut that spend. On Pro, Max, Team and Enterprise plans, the /usage breakdown can also recommend an effort change, such as switching from max to high, and on v2.1.305 or later pressing f runs those /effort commands for you.

Changing effort mid-session can cost you a cache rebuild. The prompt caching docs say that on most models, changing effort "means the next request reads the entire conversation history with no cache hits," and Claude Code asks you to confirm while the cache is warm. On Opus 5.5, Sonnet 5.5, Haiku 5.5 and Fable 5.1 with an API key or a Claude subscription, changing effort keeps the cache. That exception doesn't apply on Amazon Bedrock, Google Cloud's Agent Platform or a Claude apps gateway. The prompt caching guide has the full list of actions that break the cache.

How do effort and extended thinking relate?

On models with adaptive reasoning, effort is the main control for how much thinking happens. Fable models, Sonnet 5 and later, Haiku 5.5, and Opus 4.7 and later always use adaptive reasoning.

You can't turn thinking off at all on Opus 5.5, Sonnet 5.5, Haiku 5.5 or the Fable models. On other models, Option+T on macOS or Alt+T on Windows and Linux toggles thinking for the session, and /config sets the default.

MAX_THINKING_TOKENS only matters on models with a fixed thinking budget. Opus 4.6 and Sonnet 4.6 use one if you set CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1. Adaptive-reasoning models ignore a nonzero budget, so use effort there instead.

What does ultrathink do?

Include ultrathink anywhere in a prompt to ask for deeper reasoning on that one turn. Claude Code adds an in-context instruction, and the effort level sent to the API stays the same. Phrases such as "think hard" or "think more" are passed through as ordinary text, not keywords.

Ultracode is different. It appears as a toggle in the /effort slider, but the docs call it "a Claude Code setting rather than a model effort level." With it on, Claude plans a dynamic workflow for substantive tasks. claude --effort ultracode starts a session at xhigh with ultracode on, and /effort ultracode off turns it off.

Can skills, subagents and admins set effort?

Yes. A skill or subagent can set effort in its frontmatter, which overrides the session level while it runs but not the environment variable. A quick formatting skill can run at low while a security review skill runs at high.

---
name: security-review
description: Review the current diff for security problems
effort: high
---

Skills can also read the active level through the ${CLAUDE_EFFORT} substitution, and Bash commands and hooks see it in the CLAUDE_EFFORT environment variable.

To keep spend in check, the maxEffortLevel setting caps the level every session can use. Per the settings reference, when several scopes set a cap the lowest applies, so a cap in managed settings can't be raised elsewhere. Claude Enterprise admins can also set per-role effort caps for each model.

Keep the prompts that need high effort together

Some prompts only work well at a particular level: a thorough review prompt at high, a quick rename at low. Writing the level into the prompt or a skill's frontmatter saves you from remembering it. Kipt keeps prompts and Agent Skills as Markdown in a private GitHub repo you own, so a review prompt with a {{scope:current diff}} blank is a Cmd+K search away, and your skills install into Claude Code with one npx skills add command.

For the cost side in depth, see how to reduce Claude Code costs.

Questions

What does /effort do in Claude Code?

It sets the effort level, which controls how much Claude reasons on each step. Run /effort with no argument to open a slider, or /effort followed by a level such as low, medium, high, xhigh or max. Lower levels answer faster and use fewer tokens; higher levels reason more deeply on hard problems.

What is the default effort level in Claude Code?

It depends on the model. Anthropic's docs say the default is high on every model that supports effort, except Opus 5.5, Sonnet 5.5 and Haiku 5.5, which default to medium, and Opus 4.7, which defaults to xhigh. Your organization can also set a default for its default model.

Does a higher effort level cost more?

Usually, yes. Thinking tokens are billed as output tokens, and higher effort lets Claude think more and verify more of its work. Anthropic's docs describe each level as a trade of token spend against capability, so use the lowest level that gets the job done.

What is the difference between ultrathink and max effort?

Typing ultrathink in a prompt asks for deeper reasoning on that one turn without changing your session's effort setting; Claude Code adds an in-context instruction and the effort level sent to the API stays the same. max is an actual effort level that applies to the current session only.

Why can't I pick xhigh or max in /effort?

Either the model doesn't support that level or a cap applies. Opus 4.6 and Sonnet 4.6 have no xhigh, so xhigh runs as high there. A Claude Enterprise per-role cap removes higher levels from the /effort picker, and a maxEffortLevel setting makes any higher level run at the cap instead.

More in Claude Code

All guides

Keep your prompts and skills in one place, in your own GitHub. Install every skill with one command.

Get started

Kipt is an independent product, not affiliated with or endorsed by Anthropic, OpenAI, Cursor or GitHub. Claude, ChatGPT, Codex, Cursor and GitHub are trademarks of their owners.