{"name":"CLAUDE_CODE_EFFORT_LEVEL","slug":"claude-code-effort-level","family":"env","title":"Environment variables","noun":"environment variable","description":"Set the effort level for supported models. Values: `low`, `medium`, `high`, `xhigh`, `max`, or `auto` to use the model default. Available levels depend on the model. Takes precedence over `--effort`, `\/effort`, and the `modelSettings` and `effortLevel` settings. A [`maxEffortLevel`](\/docs\/en\/settings-reference#maxeffortlevel) cap still applies. See [Adjust effort level](\/docs\/en\/model-config#adjust-effort-level)","description_source":"docs","described_by":{"doc":"claude-code\/env-vars","title":"Environment variables"},"presence":{"first_seen":"2.1.138","removed_in":null,"in_current_build":true,"newest_mined":"2.1.308","builds":149,"mined_builds":149,"first_cited":{"version":"2.1.70","released_at":"2026-03-06 00:09:06","spans":2}},"aliases":[],"entries":[{"version":"2.1.300","anchor":"new-env-var-claude-code-messages-prompt-cache-ttl-added-to-a","heading":"New CLAUDE_CODE_MESSAGES_PROMPT_CACHE_TTL environment variable","line":"A new environment variable, `CLAUDE_CODE_MESSAGES_PROMPT_CACHE_TTL`, sits alongside the existing prompt cache lifetime settings","released_at":"2026-10-14 14:27:26","reason":"found in this entry's text"},{"version":"2.1.299","anchor":"agent-view-model-picker-and-new-session-settings-for-model","heading":"Agent view \/model opens a picker for model, effort and fast mode","line":"In the agent view, \/model sets the model for new sessions from that window, and with no name it opens a picker","released_at":"2026-10-14 00:23:19","reason":"found in this entry's text"},{"version":"2.1.267","anchor":"per-model-maxeffortlevel-cap-now-enforced-client-side-acro","heading":"Per-model \"maxEffortLevel\" cap now enforced client-side across settings","line":"maxEffortLevel now combines a global cap with per-model overrides across all settings files and clamps any explicit effort request","released_at":"2026-09-09 18:25:42","reason":"found in this entry's text"},{"version":"2.1.242","anchor":"effort-display-names-ultracode-and-warns-about-the-environme","heading":"Effort display names ultracode and warns about the environment override","line":"The effort line lists ultracode and warns when your environment variable is overriding your choice.","released_at":"2026-08-24 19:16:14","reason":"named in this entry, found in this entry's text"},{"version":"2.1.234","anchor":"remote-control-can-read-and-change-the-session-s-effort-leve","heading":"Remote Control can read and change the session's effort level and ultracode","line":"A remote client driving your session can now see and change effort level and toggle ultracode.","released_at":"2026-08-17 18:19:13","reason":"found in this entry's text"},{"version":"2.1.232","anchor":"environment-variables-read-through-one-typed-table-instead-o","heading":"Environment variables read through one typed table instead of scattered process.env lookups","line":"Environment variables are now read through one typed table, with the same names and behaviour.","released_at":"2026-08-13 21:30:53","reason":"found in this entry's text"},{"version":"2.1.70","anchor":"effort-level-new-environment-variables","heading":"Effort Level: New Environment Variables","line":null,"released_at":"2026-03-06 00:09:06","reason":"found in this entry's text"},{"version":"2.0.46","anchor":"effort-level-configuration","heading":"Effort Level Configuration","line":null,"released_at":"2025-11-19 04:19:08","reason":"found in this entry's text"}],"entries_total":8,"docs":[{"source":"claude-code","path":"env-vars","title":"Environment variables","documented":true},{"source":"claude-code","path":"changelog","title":"Claude Code changelog","documented":false},{"source":"claude-code","path":"model-config","title":"Model configuration","documented":false},{"source":"claude-code","path":"remote-control","title":"Continue local sessions from any device with Remote Control","documented":false},{"source":"claude-code","path":"server-managed-settings","title":"Configure server-managed settings","documented":false},{"source":"claude-code","path":"settings","title":"Claude Code settings","documented":false},{"source":"claude-code","path":"settings-reference","title":"All settings","documented":false},{"source":"claude-code","path":"sub-agents","title":"Create custom subagents","documented":false},{"source":"claude-docs","path":"third-party\/claude-desktop\/configuration","title":"Configuration reference","documented":false},{"source":"claude-docs","path":"third-party\/claude-desktop\/models","title":"Models and effort levels","documented":false}],"docs_total":10,"gates":[],"related":[{"name":"CLAUDE_CODE_3P_PROBE_WROTE_HAIKU_DEFAULT","slug":"claude-code-3p-probe-wrote-haiku-default","description":"If your cloud account cannot use a model, Claude Code can step down to the next one; `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` turns this off"},{"name":"CLAUDE_CODE_3P_PROBE_WROTE_OPUS_DEFAULT","slug":"claude-code-3p-probe-wrote-opus-default","description":"Internal marker on third-party providers. When Claude Code itself writes `ANTHROPIC_DEFAULT_OPUS_MODEL` into its environment (the model availability probe on Bedrock, Vertex or Mantle, or a move down the model fallback ladder), it sets this variable to the same model ID. An `ANTHROPIC_DEFAULT_OPUS_MODEL` equal to it is treated as Claude Code's own choice rather than a user pin: it does not count as pinned, the probe does not skip it, and the fallback ladder may move it."},{"name":"CLAUDE_CODE_3P_PROBE_WROTE_SONNET_DEFAULT","slug":"claude-code-3p-probe-wrote-sonnet-default","description":"On third-party providers, Haiku model names are no longer skipped by the check that sets up the Sonnet default model"},{"name":"CLAUDE_CODE_3P_SEEDED_OPUS_DEFAULT","slug":"claude-code-3p-seeded-opus-default","description":"If your cloud account cannot use a model, Claude Code can step down to the next one; `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` turns this off"},{"name":"CLAUDE_CODE_3P_SEEDED_SONNET_DEFAULT","slug":"claude-code-3p-seeded-sonnet-default","description":"If your cloud account cannot use a model, Claude Code can step down to the next one; `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` turns this off"},{"name":"CLAUDE_CODE_ACCESSIBILITY","slug":"claude-code-accessibility","description":"Set to `1` to keep the native terminal cursor visible and disable the inverted-text cursor indicator. Allows screen magnifiers like macOS Zoom to track cursor position"},{"name":"CLAUDE_CODE_ACCOUNT_TAGGED_ID","slug":"claude-code-account-tagged-id","description":"Overrides the `user.account_id` attribute Claude Code attaches to its OpenTelemetry data. It applies only when an account UUID is known and `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` is not turned off (default on); when unset or empty, `user.account_id` is derived from the account UUID as a tagged ID of the form `user_01...`."},{"name":"CLAUDE_CODE_ACCOUNT_UUID","slug":"claude-code-account-uuid","description":"The device bridge is skipped entirely when the host's account UUID doesn't match the stored one."},{"name":"CLAUDE_CODE_ACT_DONT_REDERIVE","slug":"claude-code-act-dont-rederive","description":"Three existing feature gates moved position; their defaults are unchanged."},{"name":"CLAUDE_CODE_ACTION","slug":"claude-code-action","description":"Marks a run as coming from the Claude Code GitHub Action. A truthy value (`1`, `true`, `yes` or `on`) makes Claude Code set `CLAUDE_CODE_ENTRYPOINT` to `claude-code-github-action`, but only when `CLAUDE_CODE_ENTRYPOINT` is not already set and the command is not `claude mcp serve`. It is also reported as `isClaudeCodeAction` in the environment details attached to telemetry."}],"url":"https:\/\/changelogs.core-directive.com\/reference\/env\/claude-code-effort-level","family_url":"https:\/\/changelogs.core-directive.com\/reference\/env.json"}