Claude Code Ultrathink Deprecated? The Honest Answer After 2.1.311
Ultrathink was reported dead in January 2026, came back in 2.1.68, and since Claude Code 2.1.311 it runs a terminal turn at xhigh. What each effort level does, whether the default is max, how to set effort, and what it costs, checked against the official changelog and docs.

Is Claude Code ultrathink deprecated? Not anymore. As of Claude Code 2.1.311, released on October 26, 2026 (UTC), typing ultrathink in the terminal runs that turn at xhigh effort on Opus 5.5, Sonnet 5.5, Haiku 5.5 and Fable 5.1. The Claude Code ultrathink deprecated posts you keep seeing (“ultrathink no longer does anything”) describe what happened back in January 2026, and that changed in March. I checked everything below against the official changelog and the Claude Code docs on October 27, 2026. Anything that only comes from Reddit or third-party trackers is labeled as a community claim.
Short answer: what ultrathink does in October 2026
Is Claude Code ultrathink deprecated in October 2026? No. Here is the current behavior in four points.
ultrathinkworks again. It asks for deeper reasoning on one turn and doesn’t change your session effort.- In the interactive terminal on 2.1.311 or later, it can also raise that turn to
xhigh. You’ll know it worked because the word turns rainbow-colored. - The default effort is not
max. Opus 5.5, Sonnet 5.5 and Haiku 5.5 default tomedium, most other models default tohigh, and Opus 4.7 defaults toxhigh. maxsits one step abovexhigh. It only lasts for the current session unless you set it with an environment variable.
If you only remember one thing, remember that ultrathink now gets you xhigh for one turn. It doesn’t get you max.
Claude Code ultrathink deprecated or changed? The changelog line
These are the two lines from the 2.1.311 entry in the official Claude Code changelog. I copied them word for word.
- “Changed
ultrathinkin the interactive terminal to run its turn at xhigh effort on Opus 5.5, Sonnet 5.5, Haiku 5.5 and Fable 5.1 through Anthropic’s API; typed while Claude is working, it raises the rest of that turn” - “Changed the
ultrathinkrainbow to appear only where the keyword can raise effort, and not when the word is quoted or part of a file path”
Three conditions are written into that first line. You need the interactive terminal, one of those four models, and Anthropic’s API. If you also type the word while Claude is in the middle of a turn, the rest of that turn moves up to xhigh.
On npm, 2.1.311 was published at 19:47 UTC on October 26. The stable tag still pointed to 2.1.308 when I checked, so if you set autoUpdatesChannel to "stable", you probably don’t have this change yet. Run claude --version to check.

Where the “Claude Code ultrathink deprecated” story came from
Both sides of this argument are partly right, because ultrathink has changed several times. Here is the history as the changelog shows it.
| Date (UTC) | Version | What happened | Source |
|---|---|---|---|
| Mar 15, 2025 | 0.2.44 | “just say ‘think’ or ‘think harder’ or even ‘ultrathink'” for thinking mode | Official changelog |
| Dec 11, 2025 | 2.0.67 | “Thinking mode is now enabled by default for Opus 4.5” | Official changelog |
| Jan 15, 2026 | 2.1.8 | An in-app tip read “Ultrathink no longer does anything. Thinking budget is now max by default.” | Community claim |
| Mar 4, 2026 | 2.1.68 | “Re-introduced the “ultrathink” keyword to enable high effort for the next turn” | Official changelog |
| Apr 16, 2026 | 2.1.111 | “Added xhigh effort level for Opus 4.7, sitting between high and max“ | Official changelog |
| Oct 26, 2026 | 2.1.311 | ultrathink runs its turn at xhigh on four models | Official changelog |
I need to be clear about the January row. The official changelog has no entry for 2.1.8 at all. The tip text comes from an unofficial site that pulls strings out of the Claude Code bundle, and from Reddit threads with titles like “RIP to ultrathink”. I can’t confirm it from Anthropic’s own pages. What the official changelog does show is the word “Re-introduced” in 2.1.68. You only re-introduce something that was taken away, so the community story fits the official record.
So when a forum post says Claude Code ultrathink deprecated, it’s quoting January 2026. If someone tells you it was changed to xhigh, they’re quoting 2.1.311, and that’s the current behavior.

Claude Code effort levels explained, and is the default max?
Effort decides how much work Claude does on each step, including how much it thinks, how many files it reads and how much it checks. The Claude Code model configuration docs list these levels by model.
| Model | Levels available | Default effort |
|---|---|---|
| Opus 5.5, Sonnet 5.5, Haiku 5.5 | low, medium, high, xhigh, max | medium |
| Fable 5.1, Fable 5, Opus 5, Sonnet 5, Opus 4.8 | low, medium, high, xhigh, max | high |
| Opus 4.7 | low, medium, high, xhigh, max | xhigh |
| Opus 4.6, Sonnet 4.6 | low, medium, high, max | high |
If you pick a level the model doesn’t have, Claude Code drops to the closest level below it. The docs give the example that xhigh runs as high on Opus 4.6.
So no, the default isn’t max. The “thinking budget is now max by default” line is from January. Today the docs describe Opus 5.5 at medium this way: “In Anthropic’s testing, Opus 5.5 at medium matches or exceeds Opus 5 at high on coding and knowledge-work evaluations.”

Claude Code xhigh vs max
xhigh is the level ultrathink now gives you, and max is one step above it. The docs describe them differently.
xhigh: “Deeper reasoning at higher token spend. The default on Opus 4.7.”max: “Hard problems you want Claude to work through without you, such as finding security vulnerabilities.maxmay show diminishing returns and is prone to overthinking, so test before adopting it broadly.”
max also behaves differently when you save it. The docs say “Claude Code applies max to the current session only” unless you set it through CLAUDE_CODE_EFFORT_LEVEL. The effortLevel setting doesn’t accept max either. In 2.1.295 the changelog even fixed a bug where /model claimed a Max pick had been saved as your default.
In practice I use xhigh when a task is hard and I’m still around to check the result. I only use max when I’m leaving Claude alone on something long, and I turn it off afterwards.
How to set effort in Claude Code
These are all the places the docs list. Pick one.
/effortopens a slider./effort highsets a level directly,/effort autoclears your saved level, and/effort statusshows the level in effect.- In the
/modelpicker, use the left and right arrow keys to move the effort slider. - Press
Enterin either slider to save the level as your default. Presssto use it for this session only (v2.1.257 or later). - Launch with
claude --effort xhighto set it for one session. - Set the environment variable
CLAUDE_CODE_EFFORT_LEVELtolow,medium,high,xhigh,maxorauto. - In
settings.json, usemodelSettingsfor a per-model level, oreffortLevelas the default for models without one. - Skills and subagents can set
effortin their frontmatter.
This is the example from the settings reference. It keeps Opus 5.5 at high.
{
"modelSettings": {
"claude-opus-5-5": {
"effortLevel": "high"
}
}
}
The order matters. The environment variable, --effort and /effort win first, then your settings, then the model’s default. The environment variable beats --effort and /effort. A maxEffortLevel cap still applies on top of everything. One more catch: Opus 5.5 ignores a top-level effortLevel in your user settings, so save a level for it with /effort or /model instead.
Ultrathink isn’t rainbow? Check these first
If the word stays plain, the docs list these fixes.
- Type it outside quotes, brackets, file paths and commands, in a prompt that doesn’t start with
/. - Unset
CLAUDE_CODE_EFFORT_LEVELif it’s set belowxhigh, or raise yourmaxEffortLeveltoxhighor higher. - Switch to Opus 5.5, Sonnet 5.5, Haiku 5.5 or Fable 5.1 with
/model. - On Amazon Bedrock the word can’t raise a turn, so set the effort level directly.
Phrases like “think hard” or “think more” are not keywords. The docs say Claude Code passes them through as ordinary prompt text.
How much effort costs in usage and quota
Higher effort costs more, but Anthropic doesn’t publish a fixed multiplier per level. Here is what the official docs actually say.
- “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 are charged for all thinking tokens generated, even when collapsed or redacted.”
- On Opus 5.5, Sonnet 5.5, Haiku 5.5 and Fable, you can’t turn thinking off. Lowering effort is the way to spend less.
On a Pro or Max plan you don’t see a bill per token, but heavier effort fills your usage limit faster. Since 2.1.299, /usage warns you about max effort. The docs show a sample suggestion row that reads “Switch from max to high effort · /effort high”. If you keep hitting limits, that’s the first thing I’d try. My Claude Pro vs Max comparison covers how much room each plan gives you.
Which effort level for which task
The docs’ guide boils down to the chart below. My own rule is simple. I stay on the default and type ultrathink for the one hard turn instead of raising the whole session.

| Task | Level |
|---|---|
| Rename a variable, quick question | low |
| Everyday scoped work on Opus 5.5 | medium (default) |
| Fixing bugs in an existing codebase | high |
| A tricky refactor or design question you’ll review | xhigh, or one ultrathink turn |
| Long unattended work such as a security audit | max, for that session only |
ultracode is not an effort level. It’s a separate setting that lets Claude run dynamic workflows. --effort ultracode turns it on and also sets xhigh.
FAQ
So is Claude Code ultrathink deprecated or not?
No. It was effectively switched off in January 2026 according to community reports, brought back in 2.1.68, and since 2.1.311 it can raise a terminal turn to xhigh.
Does “think hard” still do anything?
It’s sent as normal text, so it may still nudge Claude to think more, but Claude Code doesn’t treat it as a keyword. Only ultrathink gets the special handling.
Does ultrathink work in claude -p or the VS Code extension?
The 2.1.311 change is written for the interactive terminal. In other places the keyword still adds its in-context instruction, but don’t count on the xhigh bump.
Is Codex’s reasoning setting the same thing?
It’s a similar idea, but the names and defaults differ. I compared the two tools in Claude Code vs Codex, and if you want more out of the terminal, my list of Claude Code mods is a good next stop.