Blog · November 10, 2026 · 7 min read · by Vilva Athiban P B

Claude Code ultrathink Explained: It Now Runs the Turn at xhigh Effort, How It Differs From /effort, What It Costs in Time, and What to Do While It Runs

ultrathink is the one word in a Claude Code prompt that changes how the model works rather than what it works on. It used to be a thinking-budget keyword. Since v2.1.311 it is an effort switch: type it and, in the common case, the turn runs at xhigh. Here is what the changelog and the model configuration docs, both read on 10 November 2026, actually say, how it compares with /effort, when it is worth the wait, and what to do while a max-effort turn runs.

What changed in v2.1.311

The changelog entry for v2.1.311 (26 October 2026) has two lines about the keyword. The first: “Changed ultrathink in 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”. The second: “Changed the ultrathink rainbow to appear only where the keyword can raise effort, and not when the word is quoted or part of a file path”.

The scope is narrower than “ultrathink now means xhigh”: the interactive terminal, those four models, Anthropic’s API. The model configuration docs still describe the keyword in its general form: “Include ultrathink anywhere in your prompt to request deeper reasoning on that turn without changing your session effort setting. Claude Code recognizes the keyword and adds an in-context instruction. The effort level sent to the API is unchanged.” Phrases such as “think hard” are passed through as ordinary prompt text. So outside the v2.1.311 case, on a third-party provider or an older model, the in-context instruction is still what the docs promise, and your effort level stays where it was.

Historically ultrathink was a thinking-budget keyword. The docs now say that on models with adaptive reasoning “the effort level is the primary control for how much thinking happens”, and that Fable models, Sonnet 5 and later, Haiku 5.5 and Opus 4.7 and later always use adaptive reasoning. Once thinking is governed by effort, a keyword that asks for more thinking has to become an effort change, which is what v2.1.311 made it.

xhigh, max and /effort

The docs list five effort levels for Fable 5.1 and the 5.5 models: low, medium, high, xhigh and max. The defaults matter for reading the keyword: Opus 5.5, Sonnet 5.5 and Haiku 5.5 default to medium, and every other model that supports effort defaults to high (Opus 4.7 to xhigh). On a 5.5 model, then, ultrathink is a two-step jump for one turn. The docs describe xhigh as “Deeper reasoning at higher token spend” and max as the level for “Hard problems you want Claude to work through without you, such as finding security vulnerabilities”, with a warning that max “may show diminishing returns and is prone to overthinking, so test before adopting it broadly”. The keyword does not reach max; only /effort max does, and that level is applied to the current session only unless it comes from the CLAUDE_CODE_EFFORT_LEVEL environment variable.

# One turn at xhigh (v2.1.311+, interactive, Opus/Sonnet/Haiku 5.5 or Fable 5.1 on Anthropic's API)
> ultrathink: the retry loop in src/queue/worker.ts double-processes jobs after a timeout. Find out why and fix it.

# The persistent alternative
/effort xhigh      # Enter saves it for this model; press s in the slider to apply to this session only
/effort max        # session only, deepest level
/effort auto       # clear your saved level for the active model

The difference is persistence and timing. /effort is a session setting: a level you confirm with Enter is saved per model under modelSettings and applies in later sessions. The keyword is a one-turn request that leaves your setting alone. On timing, the interactive-mode docs say that after /effort “the next message you send runs at the new level”, and that to start it in the turn Claude is already working on you queue a message while Claude is running tool calls. The changelog says the keyword, typed while Claude is working, raises the rest of that turn. Either way, if you want the fix to be reasoned at xhigh, send the keyword before the model commits to an approach, not after it has written half the diff.

A mid-session effort change is not free everywhere: the prompt caching docs say that on most models each effort level has its own cache, so a change recomputes the whole request and Claude Code asks you to confirm, while on Opus 5.5, Sonnet 5.5, Haiku 5.5 and Fable 5.1 with an API key or a Claude subscription the cache stays intact. v2.1.311 also fixed /effort “not warning about a prompt cache miss in plan mode when the plan model differs from the session model”. Our effort levels guide covers the slider, the settings keys and the organization caps in more depth.

The rainbow is a yes/no answer

Claude Code highlights ultrathink in the prompt box. After v2.1.311 that highlight appears only where the keyword can raise effort, so it doubles as a check: no rainbow, no effort change. If you are quoting the word, or it is inside a path like docs/ultrathink.md, it stays plain and the turn runs at your normal level.

When it is worth it, and when it is waste

The docs’ own table is the best guide: low for quick exchanges you review as you go, medium for scoped day-to-day work, high where verification matters or edge cases are likely, xhigh for deeper reasoning at higher spend. The keyword earns its cost when a single turn has to hold a lot at once:

  • Hard debugging: a race, a flaky test, a bug that crosses three files and only appears under load.
  • Architecture decisions: a migration plan, a boundary between services, anything where the first answer is usually the wrong one.
  • Large refactors: renames and moves that must stay consistent across a codebase, where a missed call site costs more than the extra thinking.

It is waste on a one-line edit, a rename, a “what does this function do”, or a chatty back-and-forth where you will correct the answer anyway. You pay in two currencies: more thinking tokens, which the docs say are billed even when collapsed, and more wall-clock time before the first edit lands. Keep the keyword for turns you would otherwise re-run.

Type it, then step away

An xhigh turn on a real problem is the kind of turn you should not watch. The reasoning is collapsed by default, and the useful moment is the end: the summary, or a permission prompt halfway through that stalls everything until you answer. The honest workflow is to write a precise prompt, add the keyword, and go do something else. The gap between “done” and “you noticed” is where that time leaks, especially on a turn you asked to take longer. AI Done Now watches for that moment on your Mac: it notifies you the instant Claude Code finishes or needs you, so the max-effort turn you paid for gets read while it is still fresh. Our notifications guide covers the built-in hooks and where they fall short.

FAQ

Does ultrathink change my saved effort level?

No. The docs describe it as a one-turn request that leaves the session setting alone, and the v2.1.311 change runs that turn at xhigh without touching what /effort saved.

Does it work on Bedrock, Vertex or an LLM gateway?

The v2.1.311 entry names Anthropic’s API and four models. Outside that, the docs still describe the keyword as an in-context instruction with the API effort level unchanged, so expect the older behaviour.

Is ultrathink the same as max effort?

No. The keyword runs the turn at xhigh. max is a separate, deeper level you set with /effort max, and the docs warn it can overthink.

What does the /code-review change in v2.1.311 have to do with this?

The same release “Changed /code-review to tell Claude to put the effort level first and use max only when asked”, which is the same policy applied to reviews: pick the level deliberately, reserve max for an explicit request.

Keep reading

Desk Exercises for Programmers: 15 Moves to Do While Your AI Agent Codes

7 min read

Exercise While Coding: Turn Claude Code Wait Time Into Micro-Workouts

7 min read

Claude Code Notch Notifications on Mac: See When Claude Is Done Without Watching the Terminal

7 min read

Claude Code Tips and Tricks: 12 Ways to Use Claude Code Effectively

8 min read

Claude Code Multiple Sessions: How to Run Agents in Parallel Without Losing Track

6 min read

A Claude Code Workflow That Doesn't Involve Watching the Terminal

5 min read

Claude Code Hooks: A Practical Guide to Automating Your Agent Workflow

7 min read

Claude Code Auto Mode: Fewer Permission Prompts Without Living Dangerously

7 min read

Claude Code Subagents: How to Delegate Work to Specialized Agents

7 min read

Claude Code Context Management: Treat the Context Window Like a Budget

6 min read

Per-Subagent Model Selection: Route the Grunt Work Down, Keep the Judgment Up Top

7 min read

Skills and Plugins: How to Teach Claude Code Your Way of Working

7 min read

Claude Code Background Tasks: Run Long Commands Without Blocking Your Session

6 min read

Codex CLI Notifications: How to Get a Ding When Codex Is Done or Needs Input

7 min read

Cursor Notification When Done: Every Way to Get Notified When Cursor Finishes

6 min read

Claude Code Notifications: How to Get Notified When Claude Code Finishes or Needs Your Input

6 min read

Want to Be Notified When Claude Responds? How Claude Notifications Work on Web, Desktop, and Mobile

5 min read

Claude Code Notification Scripts: Copy-Paste Recipes for Every Platform

6 min read

Get a Ding the Moment Codex Needs Your Response

6 min read

Get Notified the Moment Claude Code Is Waiting for Your Input

6 min read

“Notifications Are Turned Off for Claude” — Here Is the Fix

6 min read

Codex Sound When Done: Make Codex CLI Play a Sound When It Finishes

6 min read

terminal-notifier + Claude Code: Native macOS Alerts When Your Agent Finishes

6 min read

Gemini CLI Notifications: How to Get a Sound or Alert When Gemini Finishes

6 min read

Get Claude Code Notifications on Your Phone

6 min read

Claude Code Remote Control, Explained

7 min read

preferredNotifChannel: Claude Code's Built-In Notification Setting

6 min read

Claude Code Notifications in tmux and Over SSH

7 min read

Claude Code Effort Levels: Why Your Setting Keeps Getting Ignored

8 min read

Codex vs Claude Code Notifications: How Each One Tells You It Is Done

8 min read

Claude Code Notifications Not Working: A Diagnostic Checklist

10 min read

Claude Code Notifications Inside Your Editor's Terminal

7 min read

CLAUDE_CODE_DISABLE_BACKGROUND_TASKS Explained

7 min read

CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP Explained

8 min read

Cursor Alerts Explained: Every Alert Cursor Raises, and How to Control Them

7 min read

Claude Code Environment Variables: The Groups That Actually Matter

10 min read

Claude Code Notifications on WSL and Windows

9 min read

Claude Code Checkpoints and /rewind

8 min read

Claude Remote Control: How It Works, Turning It Off, and Auto Mode

7 min read

Claude Code /loop: Poll a Deploy, Babysit a PR, and Get Told When It's Done

8 min read

Setting Up NotchFit With OpenAI Codex CLI: Hooks, $notchfit-plan, and the Daily Flow

7 min read

Claude Mods Explained: What the New Plugin Layer Can Do, and How to Turn On 'You Should Know'

9 min read

NotchFit vs Mac Break Reminder Apps: A Clock or a Signal From Your Coding Agent?

8 min read

Claude Code Headless Mode: Running claude -p in Scripts and CI, and the Three Signals That It Finished

10 min read

Building a Movement Habit at a Desk: Use the Agent Run as the Cue, One Set as the Unit, and Streaks Carefully

8 min read

Claude Code MCP Servers Explained: Adding Servers, Choosing a Scope, Handling Secrets, and Why Long Tool Calls Go to the Background

10 min read

/notchfit:plan Explained: How Claude Code or Codex Writes a Weekly Workout Plan the Notch Can Actually Run

8 min read

Claude Code Spinner Verbs Explained: What “Pondering” and “Brewing” Mean, How to Change Them, and Why You Should Stop Watching the Spinner

7 min read

Why NotchFit's Done and Permission Alerts Wait Until Your Set Ends, When That Costs You, and How to Turn the Workout Off

7 min read

How to Resume a Claude Code Session: --continue vs --resume, Naming Sessions, the Session Picker, Branching, and What Comes Back

9 min read

NotchFit on a Mac Without a Notch: How Pill Mode Works on Mac mini, iMac, Mac Studio and a MacBook With the Lid Closed

6 min read

How to Run a Claude Code Session in the Background: /background, claude --bg, Agent View, and Getting Back to It

9 min read

What a Notch App Can See: NotchFit's Local-First Design, What the Claude Code and Codex Hooks Send, and What Stays on Your Mac

7 min read

Why Codex CLI Asks for Permission Every Time, and How to Tune the Sandbox and Approval Policy Without Going Full Access

8 min read

What to Do While Claude Code or Codex Works: A Simple Protocol for the Two-to-Twenty-Minute Gap in Every Agent Run

7 min read

Is It Possible to Get a Notification When Claude Code or Codex Hits a Reset? Yes for Claude Code: the quota_auto_resume Hooks, Explained

8 min read

What a MacBook Notch App Can Actually Do: The Five Kinds of Notch Utility, Their Trade-offs, and Where NotchFit Fits

7 min read

How to Make MCP Servers Not Take Up as Much Context in Claude Code: Tool Search, alwaysLoad, Scopes and Output Caps

8 min read

The notchfit Command Line: Drive Your Workout, Read Status as JSON, Validate Plans and Test the Notch Without Leaving the Terminal

7 min read

How to Audit MCP Tool Calls Made by Claude Code: A Five-Minute Hook Audit Log, OpenTelemetry Tool Events, and the Transcript for Investigations

9 min read

Exercise Snacks: What the Research Actually Says About One-Minute Vigorous Breaks, What It Does Not, and How NotchFit's Agent-Run Sets Compare

8 min read

How Long Until a Claude Code MCP Tool Call Times Out? The Four Timers (Startup, Two-Minute Backgrounding, Idle, Wall-Clock), Their Defaults, and Which One to Change

8 min read

Sitting Too Long as a Developer: The Posture Problems Coding Agents Made Worse, What the Research Says About Breaking Up Sitting, and How NotchFit Turns an Agent Run Into the Break

8 min read

Claude Code .mcp.json Explained: Where Project-Scoped MCP Servers Are Read From, What Happens in Subfolders and Monorepos, and Why a Committed Server Shows Pending Approval

8 min read

Standing Desk Exercises for Developers: Why Standing Still Is Not the Goal, Eight Movements That Fit a Thirty-Second Agent Run, and How NotchFit Cues Them From the Notch

8 min read

The claude mcp Command Reference: add Syntax by Transport, What --scope local, project and user Actually Mean, add-json and add-from-claude-desktop, list, get, remove, login and serve

9 min read

Your First Week With NotchFit: Install and Simulate, Run Real Tasks, Write a Smaller Plan Than You Want, Tune the Alerts, Survive the First Skipped Day, and Decide What Stays

8 min read

How to Stop a Running Claude Code Task: Esc vs Ctrl+C, Background Tasks, Subagents, and Disconnecting Remote Control

8 min read

Pomodoro vs Agent-Driven Breaks: Timing Movement to Claude Code and Codex Runs Instead of a Timer

7 min read

Claude Desktop MCP Configuration: claude_desktop_config.json, Logs, Extensions, and the Difference From Claude Code

9 min read

The 20-20-20 Rule for Developers: Eye Strain, the Evidence, and Agent Runs as the Cue

8 min read

Claude Agent SDK + MCP Servers: mcpServers, allowedTools, Status Checks and Auth

9 min read

Discreet Desk Exercises for an Open-Plan Office While Claude Code Runs

7 min read

claude remote-control Server Mode: Run Claude Code as a Session Server

9 min read

Wrist and Forearm Stretches for Developers: A 60-Second Routine for Every Claude Code Run

7 min read

Claude Remote Control vs Claude Code on the Web: Which to Use and How They Differ

9 min read

Neck and Shoulder Stretches for Developers: A 90-Second Routine Between Agent Runs

7 min read

What Happens When You Step Away From a Claude Code Session: Prompt Cache Expiry, Idle Compaction, and When to Come Back

8 min read

Hip Flexor and Lower Back Stretches for Developers: A Two-Minute Standing Routine Between Agent Runs

7 min read

Claude Code's Monitor Tool: Watch Logs, CI Runs and PRs (Even a WebSocket) and Let Claude React While You Keep Working

7 min read

Hunched Over the Keyboard? Upper-Back (Thoracic) Stretches for Developers: A Two-Minute Seated Routine Between Agent Runs

6 min read

Claude Code Ultrareview: The 15–25 Minute Cloud Review, What to Do While It Runs, and How the Findings Come Back

8 min read

Why Your Legs Go Dead After a Long Claude Code Session: A Two-Minute Standing Calf, Glute and Hamstring Routine Between Agent Runs

7 min read

claude --teleport: Pull a Cloud Session Into Your Terminal, Start One With --cloud, Send Follow-Ups From the CLI, and the Requirements That Trip People Up

8 min read

Rounded Shoulders From Typing? A Two-Minute Chest Opener, Chair Twist and Wall Press Desk Routine for Developers Between Agent Runs

7 min read

Best Break Reminder Apps for Mac in 2026: Time Out, Stretchly, BreakTimer, LookAway and NotchFit Compared

7 min read

Claude Code 2.1.319: denyInsteadOfPrompting, MCP Background Tasks and What Changes for Unattended Runs and Notifications

8 min read

Drink Water and Stand Up Cues for Developers: Use Claude Code Agent Runs as Hydration and Standing Reminders

7 min read

Claude Code 2.1.323: Code Mode, Progress Heartbeat, Auto-Mode Fallback and 1M Context — What Changed for Unattended Runs

9 min read

Notch Media Controls on a Mac: What the MacBook Notch Can and Cannot Do, Dynamic Island-Style Apps vs NotchFit

7 min read