{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreih7iqgeppwwdcx4cj7a4tnck3zw4gg2whyy5zy7i7avaq3n4pgne4",
    "uri": "at://did:plc:ws6dhxzqnqxu5aqxt4kd27oc/app.bsky.feed.post/3mjnvm6va5ah2"
  },
  "coverImage": {
    "$type": "blob",
    "ref": {
      "$link": "bafkreigyfa574ryccgw2gb5v7lrfnm4kbrjwop57inygicsldf2okh6f4u"
    },
    "mimeType": "image/jpeg",
    "size": 72299
  },
  "description": "A new reasoning tier sits between high and max, and Claude Code now defaults to it for every plan.",
  "path": "/claude-opus-4-7-xhigh-effort-level-explained/",
  "publishedAt": "2026-04-17T02:41:40.000Z",
  "site": "https://allthings.how",
  "tags": [
    "task budgets"
  ],
  "textContent": "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.\n\n**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.\n\n* * *\n\n### Where xhigh fits in the effort ladder\n\nOpus 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.\n\nUnlike 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.\n\nEffort| Best for\n---|---\n`low`| Quick follow-ups, chat, one-line edits\n`medium`| Routine refactors, single-file changes, test generation\n`high`| Multi-file edits, debugging, writing non-trivial functions\n`xhigh`| Design decisions, tricky cross-module refactors, gnarly bugs\n`max`| The hardest problem of the week, slow and expensive\n\nAnthropic's own guidance is to start with `xhigh` for coding and agentic workloads, and to use at least `high` for most intelligence-sensitive tasks.\n\n* * *\n\n### Setting xhigh in Claude Code\n\nThe `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.\n\n**Step 1:** Update Claude Code to the 2.1.x release or newer and confirm the version.\n\n\n    claude update\n    claude --version\n\n\n**Step 2:** Start a new session on Opus 4.7 at `xhigh` by passing both flags on the command line.\n\n\n    claude --model claude-opus-4-7 --effort xhigh\n\n\n**Step 3:** Inside an existing session, use the slash commands. Both stick across restarts.\n\n\n    /model opus\n    /effort xhigh\n\n\nRunning `/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.\n\n* * *\n\n### The new default behavior\n\nOn 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.\n\nTo revert to the previous behavior, set `/effort high` explicitly. The choice sticks across sessions, so you only need to do it once.\n\n⚠️\n\nToken usage roughly doubles when moving from high to xhigh on long agentic runs. Combined with Opus 4.7's new tokenizer, which can map the same text to 1.0–1.35x more tokens, real-world spend per task can climb even at unchanged per-token pricing. Anthropic raised subscription rate limits and reset the 5-hour and weekly windows at launch to compensate.\n\n* * *\n\n### Using xhigh from the API\n\nOn 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.\n\n\n    response = client.messages.create(\n        model=\"claude-opus-4-7\",\n        max_tokens=64000,\n        thinking={\"type\": \"adaptive\"},\n        output_config={\"effort\": \"xhigh\"},\n        messages=[\n            {\"role\": \"user\", \"content\": \"Refactor this module to remove the circular import.\"}\n        ],\n    )\n\n\nA few API-side rules matter when you move to `xhigh`:\n\n  * Extended thinking budgets are gone. Sending `thinking: {\"type\": \"enabled\", \"budget_tokens\": N}` returns a 400 error. Adaptive thinking is the only thinking-on mode.\n  * Sampling parameters are gone. Setting `temperature`, `top_p`, or `top_k` to any non-default value also returns a 400. Omit them.\n  * Thinking content is omitted from responses by default. Set `display: \"summarized\"` on the thinking object if you want visible progress during long reasoning passes.\n  * Claude Managed Agents handles effort automatically, so these knobs only apply to the raw Messages API.\n\n\n\nIf 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.\n\n* * *\n\n### When to pick xhigh over high or max\n\nTreat `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.\n\nReserve `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.\n\nDrop 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.\n\n* * *\n\n### Verifying xhigh is active\n\nInside 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.\n\nOn 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.\n\nPrompts 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.",
  "title": "Claude Opus 4.7 xhigh Effort Level Explained",
  "updatedAt": "2026-04-17T02:41:41.560Z"
}