Claude Code: How to Choose the Right Model and Effort Level
Anthropic published official guidance clarifying the difference between two settings Claude Code users frequently conflate: model selection and effort level. Model selection picks which frozen weights answer a request (Fable, Opus, Sonnet, Haiku); effort level controls how thoroughly those weights work a given turn, including how many files get read, how much gets verified, and how many steps run before checking back in. The guidance arrived amid growing developer complaints on Hacker News and Reddit in late June and early July about Claude Code getting "expensive," much of which traced back to Opus 4.8 defaulting to high effort. Anthropic's own comparison showed the same prompt at high versus lower effort produced roughly 7x more tokens for a modest accuracy gain.
Featured Video
A video we selected to help illustrate this changelog
Sources & Mentions
4 external resources covering this update
Two Separate Dials, One Common Mix-Up
Claude Code exposes two independent controls that shape both cost and output quality, and Anthropic's own documentation notes that developers routinely reach for the wrong one when a response disappoints. Model selection swaps out the underlying weights answering a prompt. Effort level controls how hard those weights work on the current turn β not just how long they "think," but how many files get opened, how much gets tested, and how many iterations happen before Claude hands control back.
The distinction matters because the two dials solve different failure modes. When Claude "didn't know enough" β it lacked the domain expertise or reasoning depth for a genuinely hard problem β a larger model (Opus or Fable) is the fix. When Claude "didn't try hard enough" β it skipped files, avoided running tests, or stopped short on a multi-step task β a higher effort level is the fix. Models cannot learn new information from a prompt; effort just tells an already-capable model how thoroughly to apply what it knows.
The Effort Ladder: Low to Ultracode
Claude Code's persistent effort levels are low, medium, high, and xhigh, configurable via the /effort command, the effortLevel setting in settings.json, or the CLAUDE_CODE_EFFORT_LEVEL environment variable. Two additional, session-only options sit above that ladder: max, which allocates the largest available reasoning budget, and ultracode, which pairs xhigh reasoning with automatic Dynamic Workflow orchestration for large, multi-agent tasks β structurally reducing the early-quitting and goal-drift failures that can still occur even at xhigh inside a single context window.
Default effort varies by plan: high on Team, Enterprise, and direct API access, and medium elsewhere, chosen to balance token cost against output quality for most everyday coding tasks.
Why This Landed Now
The timing follows weeks of community friction. Anthropic's own benchmarking showed the same prompt run at high effort consuming roughly 7 times the tokens of a lower setting for often-marginal quality gains β a number that resonated with the "Claude Code got expensive" narrative circulating on Hacker News and Reddit through late June. By publishing an explicit decision framework rather than leaving effort level as an obscure toggle, Anthropic is giving developers a direct lever to bring cost back under control without abandoning larger models entirely.