Bible Network Crypto DeFi Onchain RWA AI Agent Stablecoin Chain SAFU CryptoTax DeFAI AGI Claude Me Claude Skill Claude Design Claude Cowork
Independent Media
Not affiliated with any project
Learn Claude Skills. Do Everything Better.
claudeskill-me.com
LATEST
Claude Code Sandbox Will Not Start on Ubuntu 24.04: Checking and Fixing the AppArmor Block on bubblewrap User Namespaces  ·  Which Claude Code Effort Setting Wins: Precedence of CLAUDE_CODE_EFFORT_LEVEL, --effort, modelSettings, effortLevel and maxEffortLevel  ·  Claude Code v2.1.310 and v2.1.311: Compaction Retries a Missing Summary, ultrathink Runs at xhigh, DISABLE_COMPACT Becomes a One-Way Switch  ·  Watching Claude Code Compaction and Hooks Through OpenTelemetry: Reading the compaction, hook_execution_complete and precompute_reuse Fields  ·  Blind Spots in Bash Permission Rules: deny Misses /bin/rm, bash -c and git -C, and devbox run * Lets Any Inner Command Through  ·  CLAUDE.md Too Long? Use .claude/rules/ and paths So Rules Load Only When Claude Touches Matching Files
advanced

Which Claude Code Effort Setting Wins: Precedence of CLAUDE_CODE_EFFORT_LEVEL, --effort, modelSettings, effortLevel and maxEffortLevel

30-Second Version · For the impatient
Write effortLevel: xhigh in user settings and Opus 5.5 and later models ignore it until you save a level for them.

Full Explanation +
01 · Why did this happen?

I want the whole team capped at high. How do I set it?

Set maxEffortLevel to high in managed or project settings. The docs say higher levels, including ones from --effort and CLAUDE_CODE_EFFORT_LEVEL, run at the cap. It needs v2.1.267 or later.

02 · What is the mechanism?

Where does a value set with /effort get stored?

In an interactive session on your machine it is saved under the active model's modelSettings (before v2.1.251 it wrote the top-level effortLevel); in -p, the Agent SDK and remote workers it applies to that session only. /effort auto clears it.

03 · How does it affect me?

Is ultrathink limited by maxEffortLevel?

The official material I read does not answer this. The release notes only say ultrathink runs the turn at xhigh; test the interaction yourself rather than assuming.

04 · What should I do?

I'm not an engineer. One-line version?

Effort is how long you ask an assistant to think: someone names it on a note, someone sets a ceiling in company policy, and the rule is that the ceiling wins, then whichever instruction is closest and most specific.

Full Content +

Claude Code's effort settings are spread across several places: effortLevel, modelSettings, maxEffortLevel, --effort, the environment variable CLAUDE_CODE_EFFORT_LEVEL, the /effort command and the ultrathink keyword. When several are present, which one wins? This article collects the precedence from the official settings reference. The page I read was truncated in places, so I write only what I could read and mark what I could not; I did not test any combination.

Precedence, highest first

  1. CLAUDE_CODE_EFFORT_LEVEL: the docs say it takes precedence over both --effort and effortLevel. I could not read its accepted values.
  2. --effort: one session only, and it takes precedence over the effortLevel key.
  3. Within one settings file, a model's effortLevel under modelSettings takes precedence over the top-level effortLevel.
  4. Top-level effortLevel: a string, with the values I could read being low, medium, high, xhigh, default unset; it sets the default for models you have not saved a level for.

Above all of these sits a ceiling: maxEffortLevel (v2.1.267+). The docs say it caps the effort a session can use; any higher level, including one from /effort, the /model picker, --effort or CLAUDE_CODE_EFFORT_LEVEL, runs at the cap instead. Values range from low to max, where max sets no cap. A per-model cap can also be set under modelSettings.

Where /effort actually writes

  • When you run /effort low, medium, high or xhigh in an interactive session on your machine, Claude Code saves the level for the active model under modelSettings, not the top-level effortLevel. Before v2.1.251, /effort wrote that top-level key.
  • In a session attached to a remote worker, in a -p run and in the Agent SDK, /effort applies to that session only.
  • /effort auto clears your saved level for the model you are using.

Three easy-to-hit traps

  • A user-level effortLevel does nothing for new models: the docs say that in ~/.claude/settings.json the key is the older form /effort wrote before it saved levels per model, and it keeps applying on Opus 5, Fable 5.1 and earlier models; Opus 5.5 and models released after it ignore it and start at their own default until you save a level for them. In project, local and managed settings and with --settings, the key applies to every model. That gives a clear answer to "I wrote xhigh in user settings, so why is Opus 5.5 not using it".
  • The ceiling beats an explicit choice: with maxEffortLevel: "medium" set, --effort xhigh still runs at medium.
  • Turning thinking off: the docs say that with thinking off on the Anthropic API, Claude Code sends effort high instead of a higher level to models it knows do not accept that combination, such as Opus 5; and on models that always think (Opus 5.5, Sonnet 5.5, Haiku 5.5 and the Fable models), setting thinking to false has no effect.

ultracode versus ultrathink

Two easily confused things. ultracode (a key on the settings page) has Claude plan a workflow for each substantive task without being asked; the docs say it plans only when dynamic workflows are enabled for you and your model supports xhigh; it does not change the session's effort and runs at whichever level the session uses; /effort ultracode turns it on for the current session only, and --effort ultracode also turns it on for one session, at xhigh. Before v2.1.284, ultracode: true ran the session at xhigh, and a cap below xhigh kept ultracode off. ultrathink is a keyword in your prompt: the v2.1.311 release notes say that in the interactive terminal through Anthropic's API on Opus 5.5, Sonnet 5.5, Haiku 5.5 and Fable 5.1, that turn runs at xhigh effort, and typed while Claude is working it raises the rest of the turn. The settings page I read does not mention ultrathink, so its behavior here rests on the release notes alone. I also could not find in what I read whether the maxEffortLevel cap limits ultrathink, so do not assume.

My judgment: how to set it without chaos

This is my summary, not official advice: use /effort for personal preference, since it saves into each model's own slot; put a team-wide ceiling in maxEffortLevel in managed or project settings, because it overrides even explicit choices; for CI or Scheduled Tasks use CLAUDE_CODE_EFFORT_LEVEL or --effort, which rank highest. Avoid hand-writing a top-level effortLevel in user settings and expecting it to govern new models. On cost, the docs say only that lower levels are faster and cheaper on straightforward tasks and higher levels reason more deeply on complex problems; the official page gives no cost ratio per level, and I have no numbers.

Sources: Settings reference - Claude Code Docs, Claude Code changelog - Claude Code Docs
Diagram
Claude Code effort 設定的優先順位maxEffortLevel 天花板最高,其次環境變數、--effort、modelSettings 與頂層 effortLevel;/effort 寫入位置、使用者層級舊 key 的陷阱與 ultrathinkWhich effort setting wins in Claude CodemaxEffortLevel (v2.1.267+)Ceiling: higher levels from any source run at the capCLAUDE_CODE_EFFORT_LEVELBeats both --effort and effortLevel--effortOne session only; beats the effortLevel keymodelSettings.<model>.effortLevelPer model; beats top-level in the same fileeffortLevel (top-level)Default for models without a saved level/effort writes tomodelSettings for the active model(before v2.1.251: top-level key)/effort auto clears it-p and SDK: this session onlyTrapUser-level effortLevel is ignored byOpus 5.5 and later modelsuntil you save a level for them(project/managed: applies to all)ultrathink (v2.1.311)That turn runs at xhigh on Opus 5.5,Sonnet 5.5, Haiku 5.5, Fable 5.1Cap interaction not found in docs readultracode: plans workflows, runs at the session level--effort ultracode runs one session at xhighThinking off: Opus 5 gets effort high, always-think models unchangedClaude Skill Me · claudeskill-me.com
Feel free to share. Please credit the source.
Ask a Question
Please enter at least 10 characters
Related Articles
Effort vs. Temperature in Claude: What's the Difference, and Why One of Them No Longer Works on Newer Models
beginners · Sep 02
How to Set Claude's Temperature Parameter: 0 to 1, and the Hidden Constraint That Keeps Breaking Developer Tools
beginners · Aug 28
Watching Claude Code Compaction and Hooks Through OpenTelemetry: Reading the compaction, hook_execution_complete and precompute_reuse Fields
advanced · Oct 23
Chromium Says No usable sandbox! Inside Claude Code's Sandbox: What --no-sandbox, excludedCommands and allowNestedUserNamespaces Each Give Up
advanced · Oct 23
Related News