claude/for
Search
Subscribe
Claude CodeUpdated

How do I turn off ultrathink in Claude Code with `CLAUDE_CODE_DISABLE_ULTRATHINK`?

On Claude Code 2.1.316 or later, set CLAUDE_CODE_DISABLE_ULTRATHINK to turn the ultrathink keyword off. It does not change /effort.

To turn off the ultrathink keyword in Claude Code, set the environment variable CLAUDE_CODE_DISABLE_ULTRATHINK. It shipped in Claude Code 2.1.316, released on October 31, 2026. The changelog says it "turns the ultrathink keyword off" and names no value, so we use 1, the usual on-switch. The changelog lists the variable as added in 2.1.316, not earlier.

TL;DR. Variable CLAUDE_CODE_DISABLE_ULTRATHINK · floor 2.1.316 · released 2026-10-31 · affects only the ultrathink keyword, not /effort, not maxEffortLevel. The docs don't list the variable yet, so the value 1 is our reading of the general rule. Checked 2026-11-01.

What ultrathink does

Anthropic's model configuration docs say: "Include ultrathink anywhere in your prompt to request deeper reasoning on that turn without changing your session effort setting." One word, one turn, no saved change.

The Claude Code changelog adds the detail. Since 2.1.311 (October 26, 2026), the word typed in the interactive terminal runs its turn at xhigh effort on Opus 5.5, Sonnet 5.5, Haiku 5.5 and Fable 5.1 through Anthropic's API. It shows in rainbow colors where it can raise effort.

In 2.1.316 the VS Code extension gets the same behavior: xhigh for the turn and a rainbow word in the chat box.

How to set it

Shell, before launching:

export CLAUDE_CODE_DISABLE_ULTRATHINK=1
claude

Settings file, using the generic env key:

{
  "env": {
    "CLAUDE_CODE_DISABLE_ULTRATHINK": "1"
  }
}

The environment variables page says to add variables "under the env key in a settings.json file". A running session applies new values when you save the file, except for features that read their variables once at startup. We don't know which group this one is in, so relaunch claude after the change.

The file can be ~/.claude/settings.json or .claude/settings.json. For the org-wide route, see managed settings, which are the settings an organization deploys. For the wider variable setup, see API keys and env.

Why the value is 1

The env-vars page gives one general rule: for on/off variables, "set 1, true, yes, or on to turn it on and 0, false, no, or off to turn it off, in any casing."

A few variables break that rule and treat any non-empty value as on. When we read the page, CLAUDE_CODE_DISABLE_ULTRATHINK had no row at all, so we can't tell you it follows the general rule. 1 is the safest guess. If you need certainty, run the check below.

The Claude moves worth stealing, by email

Workflows tested on real jobs, sent only when they are worth it. Free.

A check you can run yourself

We haven't run this. It is the check we would do, and the docs describe what you should see.

  1. Run claude --version and confirm 2.1.316 or later.
  2. Without the variable, start a new turn in the terminal and type ultrathink as a plain word in a prompt that doesn't start with /. Per the docs, it should show in rainbow colors where it can raise effort.
  3. Set the variable, relaunch, and type the same prompt. If the keyword is off, the rainbow should be gone.

Step 3 is our expectation, not a documented result. The docs don't describe the word's appearance once the variable is set.

What it does not change

The variable targets one keyword. Everything that sets effort for the whole session is separate.

LeverWhat it controlsSource
ultrathink keywordOne turn, raised to xhigh where it canModel config
/effort, --effortSession effort levelModel config
CLAUDE_CODE_EFFORT_LEVELFirst in the resolution orderModel config
maxEffortLevelA ceiling on the levelSettings reference
CLAUDE_CODE_DISABLE_ULTRATHINKTurns the keyword offChangelog 2.1.316

The effort levels themselves are explained in our guide to maxEffortLevel.

If your goal is a cost ceiling

Turning off one keyword is a narrow fix. If you want to stop anyone raising effort, a cap is the lever the docs give you.

The model config docs list reasons the rainbow may not appear: CLAUDE_CODE_EFFORT_LEVEL set below xhigh, your own maxEffortLevel below xhigh, or an organization limit. So a cap below xhigh already stops the word from raising a turn to xhigh. That is our reading of the docs' list, and we haven't tested it.

Set the cap in managed settings and the whole team gets it. Fast mode is a different trade-off, covered in Claude Code fast mode.

Also in 2.1.316: subagent effort

The same release added CLAUDE_CODE_SUBAGENT_EFFORT. The changelog says it sets "the effort level subagents run at when nothing else names one, instead of inheriting the session's". It is a different variable with its own use. For how subagents work, start with Claude Code subagents.

Limits and what we could not check

  • Not run by us. We had no terminal for this page. Everything comes from Anthropic's docs and changelog, read on 2026-11-01.
  • Docs lag the changelog. CLAUDE_CODE_DISABLE_ULTRATHINK was absent from the env-vars page when we read it.
  • Unknown after disabling. The docs say other phrases such as "think hard" pass through as ordinary text. They don't say what happens to ultrathink itself once it is off.
  • Version drift. Claude Code ships often. Confirm with claude --version.

We track small Claude Code changes like this one in the newsletter.

FAQ

How do I turn off ultrathink in Claude Code?

Set CLAUDE_CODE_DISABLE_ULTRATHINK, in your shell or under the env key of a settings file, on Claude Code 2.1.316 or later. The changelog says it turns the keyword off. We use the value 1.

Does ultrathink change my effort setting for the whole session?

No. The docs say it requests deeper reasoning on that turn "without changing your session effort setting". Your /effort choice, saved level and maxEffortLevel cap stay as they were.

Do "think hard" or "think more" trigger it?

No. The docs say Claude Code passes phrases such as "think", "think hard" and "think more" through as ordinary prompt text and doesn't recognize them as keywords. Only ultrathink is the keyword.

Sources (checked 2026-11-01)

Related: Set maxEffortLevel · Managed settings · Claude Code subagents

The Claude moves worth stealing, by email

Workflows tested on real jobs, sent only when they are worth it. Free.