Claude Code 2.1.267 caps effort level across providers

A new maxEffortLevel setting in Claude Code 2.1.267, released September 9, lets admins set a ceiling on how hard Claude works on a request. The cap applies on every provider, including Bedrock, Vertex and Foundry. Users can still pick a lower level.
The release notes on GitHub say the key can sit at the top level of settings or per model under modelSettings. Most of the rest of the release fixes prompt-cache breaks. It also closes a few managed-settings policies that failed open.
What the effort dial controls
In Anthropic’s explainer, effort controls how much work Claude does on a request overall: how long the model thinks, how many files it reads, how much it verifies, and how far it pushes through a multi-step task before checking in. At higher effort it reads files, runs tests and double-checks before coming back. At lower effort it would rather ask you for more context than spend tokens working something out on its own.
Claude Code has five effort levels (low, medium, high, xhigh and max), set with /effort. The chosen level is saved per model under modelSettings in user settings, so switching to another model and back keeps each model’s level. The new cap can be set per model in the same block, so a team can limit one model and leave another alone.
When effort sources disagree, an explicit choice wins first: the CLAUDE_CODE_EFFORT_LEVEL environment variable, the --effort flag or /effort. The saved setting comes next, then the model’s default. maxEffortLevel sits outside that order. The release notes describe it as a cap on the level itself, with lower choices still open to the user.
Where a cap bites
Defaults differ by model. Opus 5.5, Sonnet 5.5 and Haiku 5.5 default to medium. Fable 5.1, Fable 5, Opus 5, Sonnet 5 and Opus 4.8 default to high. Opus 4.7 defaults to xhigh, and Opus 4.6 and Sonnet 4.6, which have no xhigh, default to high. Of these, a cap at high would sit below the default only on Opus 4.7.
Level names are also calibrated per model, so “high” isn’t the same amount of thinking on every model. When a user picks a level a model doesn’t support, Claude Code uses the highest supported level below it: xhigh runs as high on Opus 4.6. A single top-level cap can therefore mean different amounts of thinking on different models. The per-model form sets each one separately.
Anthropic says Opus 5.5 at medium matches or beats Opus 5 at high on its coding and knowledge-work evaluations. At the same level, Opus 5.5 also tends to think more per turn than Opus 5, most of all at xhigh and max. Anthropic gives that as the reason its default dropped to medium. The docs call max “prone to overthinking”, with diminishing returns, and advise testing it before adopting it broadly.
One fix in this release touches the same dial. The effort: frontmatter on custom commands, skills and subagents was ignored on models whose default effort is still pinned (Opus 4.7, Opus 4.8 and Fable 5). It now takes effect.
The prompt-cache fixes
The prompt cache reuses the processed beginning of a request (the system prompt plus tool definitions) only while that prefix stays identical. The longest stretch of this release fixes cases where Claude Code changed that prefix mid-conversation without needing to:
- switching models with
/modelre-sent every tool definition. Commit and PR attribution text now arrives as a conversation note that updates when you change models; - in sessions without ToolSearch, MCP and plugin tools added mid-session went into the tool list. Supported models now receive them as deferred definitions;
- a background worker forked from a conversation added EnterWorktree to the conversation’s tool block;
- resumed sessions rewrote the inline tool set when an MCP connector reconnected at a different moment than before. They also re-rendered tool descriptions instead of replaying the recorded ones when the first turn ran a tool, and rewrote earlier MCP tool announcements before their connectors reconnected;
- a print-mode (
-p) conversation resumed interactively changed its system prompt prefix.
Several of these also cost the model its own reasoning. Extended thinking was dropped when a claude.ai connector’s tools changed between a session and its resume. Earlier reasoning also went missing when an MCP server re-sent, or a built-in tool re-rendered, a tool the model already had. The same happened when a tool vanished mid-conversation because an MCP server disconnected or Claude Code was upgraded. A related break for resumed subagents was already patched in 2.1.265. In this release, subagents and sessions started with --system-prompt or --append-system-prompt record the system prompt and tool definitions once instead of re-rendering them.
--system-prompt-snapshot off does the opposite on purpose. It renders the system prompt fresh on every request instead of reusing the conversation’s recorded prompt, for iterating on the prompt text.
Policies that failed open
The managed settings allowedHttpHookUrls, httpHookAllowedEnvVars and allowedChannelPlugins admitted everything when they couldn’t be read. In 2.1.267 an unreadable policy admits nothing. A second fix closes a path trick: on macOS and Linux, a marketplace entry path containing a backslash could bypass the containment check for fetched marketplaces.
Other enterprise fixes:
- Cowork scheduled tasks in the cloud failed at startup for organizations whose managed settings require sandboxing.
- In auto mode, Workflow
agent()calls with large output schemas were refused instead of being checked by the safety classifier. - Under a host app such as Claude Desktop, expired AWS or Google Cloud credentials retried ten times with a generic “request failed” before the re-authenticate error appeared.
When an upstream uses forward_user_identity and returns a 429, the gateway now passes it as-is to the developer whose email was forwarded. It no longer fails over to the next upstream, so the proxy’s per-user limits hold. On self-hosted runners, --use-anthropic-git-proxy is now reported to the server at registration, and each session that still clones through the legacy git proxy prints a warning.
Resumes, VS Code, Tag
- When a session’s transcript exceeds 5 MB, resuming it no longer drops parallel tool calls and their hook output.
- Resuming via
-p --resumeafter/compactno longer inserts a spurious “Continue from where you left off.” turn. - The usage-limit warning stops flickering when different models or modes report different limit windows.
- Artifact publishes interrupted mid-upload retry once when Claude Code can tell the upload never completed. When a page file isn’t valid UTF-8, the error now names the line and column.
- In VS Code, the extension host no longer hangs at 100% CPU on a transcript with a cyclic parent link. Accepting edits works on files with CRLF line endings, @-mentions keep paths with spaces, and pasting a screenshot on WSL2 attaches the image instead of inserting raw bytes.
- In Claude Code on the web, GitHub Enterprise Server tokens refresh automatically. In organizations without the Claude GitHub App,
ghcalls use your connected account. - In Claude Tag, Claude says when the organization has run out of usage credits instead of replying that the API rejected the request as invalid.
The longest-running sessions get a fix too. claude remote-control used to exit and drop every attached session when its server credential expired, about 30 days after start. The host now re-registers and keeps going.
Up next
Claude’s commerce agents ship as code, writes stay staged
Clone the repo, add a key, run one command, and a demo storefront comes up with a Claude shopping agent behind it. Anthropic’s commerce blueprint is Apache 2.0, and nothing in it charges a card or edits a live listing.
Related stories
- Claude Code 2.1.268 makes /cost match gateway rates
- Claude Code opens network hosts one command at a time
- Claude Code 2.1.312 stops overwriting big CLAUDE.md files
- Claude Code 2.1.311 compacts past 200K instead of stopping
- Claude Code 2.1.310 brings Monitor to Bedrock and Vertex
- Claude Code 2.1.307 moves API code to version 2026-10-21
Comments
No comments yet. Be the first.
Join the conversation
Sign in to leave a comment. It appears after moderation.

