Claude Opus 4.7 ships with a fifth effort setting called xhigh, slotted between high and max. It gives the model more room to reason on hard problems without jumping straight to the slowest, most expensive tier. Claude Code raised its default to xhigh for Pro, Max, Teams, and Enterprise plans on release day, so many users are already running at the new level whether they set it themselves or not.
Quick answer: xhigh is a new middle gear between high and max that biases Opus 4.7 toward spending more adaptive-thinking tokens. Set it inside Claude Code with /effort xhigh, or pass --effort xhigh on the CLI.
Where xhigh fits in the effort ladder
Opus 4.6 exposed four public effort levels: low, medium, high, and max. With 4.7, xhigh fills the gap between the top two. The idea is straightforward. max is often overkill for tasks that still need more reasoning than high gives you. xhigh is that middle gear.
Unlike older extended-thinking budgets, which let callers cap reasoning tokens directly, Opus 4.7 uses adaptive thinking only. The model decides how many reasoning tokens to spend on a given turn, and the effort knob biases that decision. Lower levels stay fast and cheap. Higher levels let the model go deeper when the task actually needs it.
| Effort | Best for |
|---|---|
low | Quick follow-ups, chat, one-line edits |
medium | Routine refactors, single-file changes, test generation |
high | Multi-file edits, debugging, writing non-trivial functions |
xhigh | Design decisions, tricky cross-module refactors, gnarly bugs |
max | The hardest problem of the week, slow and expensive |
Anthropic's own guidance is to start with xhigh for coding and agentic workloads, and to use at least high for most intelligence-sensitive tasks.
Setting xhigh in Claude Code
The xhigh level first appeared in the Claude Code 2.1.x line, alongside the claude-opus-4-7 model ID. If your client is older, you will not see it in the picker.
Step 1: Update Claude Code to the 2.1.x release or newer and confirm the version.
claude update
claude --version
Step 2: Start a new session on Opus 4.7 at xhigh by passing both flags on the command line.
claude --model claude-opus-4-7 --effort xhigh
Step 3: Inside an existing session, use the slash commands. Both stick across restarts.
/model opus
/effort xhigh
Running /effort with no argument opens an interactive slider you can navigate with arrow keys. The session header redraws with the active model, the chosen effort level, and the current context window.
The new default behavior
On launch day, Claude Code raised its baseline effort to xhigh for every plan. If you ran claude update, you are already on the new default whether or not you touched /effort yourself.
To revert to the previous behavior, set /effort high explicitly. The choice sticks across sessions, so you only need to do it once.
Using xhigh from the API
On the Messages API, effort is set through the output_config object. Adaptive thinking is off by default on Opus 4.7, so you have to enable it explicitly when you want the model to reason before answering.
response = client.messages.create(
model="claude-opus-4-7",
max_tokens=64000,
thinking={"type": "adaptive"},
output_config={"effort": "xhigh"},
messages=[
{"role": "user", "content": "Refactor this module to remove the circular import."}
],
)
A few API-side rules matter when you move to xhigh:
- Extended thinking budgets are gone. Sending
thinking: {"type": "enabled", "budget_tokens": N}returns a 400 error. Adaptive thinking is the only thinking-on mode. - Sampling parameters are gone. Setting
temperature,top_p, ortop_kto any non-default value also returns a 400. Omit them. - Thinking content is omitted from responses by default. Set
display: "summarized"on the thinking object if you want visible progress during long reasoning passes. - Claude Managed Agents handles effort automatically, so these knobs only apply to the raw Messages API.
If you need a token ceiling that the model itself can see and pace against, pair xhigh with the new task budgets beta. Task budgets are advisory, not hard caps, and have a 20k-token minimum.
When to pick xhigh over high or max
Treat xhigh as the default for anything that was underbaked at high on Opus 4.6. Design decisions that span several files, concurrency bugs, non-obvious refactors, long-horizon agentic runs, and multi-step financial or legal analysis are the clearest wins. Early partner testing on Terminal-Bench and CursorBench showed Opus 4.7 at higher effort resolving tasks earlier Claude models could not crack.
Reserve max for the single hardest problem you will give the model that week. It is notably slower and more expensive, and for most production work the extra latency is not justified once xhigh is on the table.
Drop to high or below when latency matters more than depth, when you are streaming to end users who will feel the pre-output pause, or when you are running wide fan-out agent workloads where the token delta across thousands of calls actually shows up on the bill.
Verifying xhigh is active
Inside Claude Code, the session header prints the active model and effort level after each /model or /effort change. If xhigh appears in claude --help output under the --effort options, your client is new enough. If it is missing, re-run claude update and check claude --version is on the 2.1.x line.
On the API, the effort value you set echoes back in usage logs and, at xhigh, you should see reasoning token counts meaningfully above what the same prompt produced at high. If reasoning counts look identical to high, check that you are on claude-opus-4-7 and that adaptive thinking is explicitly enabled — it is off by default on this model.
Prompts and harnesses tuned for Opus 4.6 often need retuning at xhigh. Opus 4.7 follows instructions more literally, produces fewer tool calls by default, and calibrates response length to task complexity rather than defaulting to a fixed verbosity. Scaffolding that forced interim status messages or "double-check before returning" steps can usually be removed and re-baselined.