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.
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.
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.
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.
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.
CLAUDE_CODE_EFFORT_LEVEL: the docs say it takes precedence over both --effort and effortLevel. I could not read its accepted values.--effort: one session only, and it takes precedence over the effortLevel key.effortLevel under modelSettings takes precedence over the top-level effortLevel.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.
/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.-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.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".maxEffortLevel: "medium" set, --effort xhigh still runs at medium.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.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.
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.