Reasoning Depth
Claude can allocate more thinking time to hard problems. You control this allocation with three methods. What actually matters is understanding what controls reasoning and which model you're using—misconceptions about "think hard" keywords waste time.
Controlling Reasoning Effort
Three ways to allocate more thinking time:
/effortcommand - Set reasoning level during your sessiontext/effort high /effort maxLevels:
low,medium,high,xhigh,max. Works on models that support effort adjustment (Opus 4.7).Keyboard toggle -
Option+T(macOS) orAlt+T(Windows/Linux)Toggles thinking on/off for the current session (all models).
Environment variable - Set globally before starting Claude Code
bashexport CLAUDE_CODE_EFFORT_LEVEL=highValues:
low,medium,high,xhigh,max.
How Reasoning Works: Opus 4.7 vs Older Models
Opus 4.7 uses adaptive reasoning. It doesn't have a fixed thinking budget. Instead, the effort level you set controls how much the model thinks internally. At low effort, it responds quickly with minimal reasoning. At high or max effort, it reserves more thinking for challenging steps. You cannot override or increase MAX_THINKING_TOKENS on this model—the effort level is the only control.
Older models (Opus 4.6, Sonnet 4.6) use fixed-budget thinking. They have a hard limit on thinking tokens:
export MAX_THINKING_TOKENS=10000Setting MAX_THINKING_TOKENS=0 disables thinking. If you need to revert Opus 4.6 or Sonnet 4.6 to fixed budgets instead of adaptive, set:
export CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1What Does NOT Control Reasoning
Phrases like "think hard" do NOT allocate thinking tokens. Saying "think carefully" or "think more" in your prompt is interpreted as regular instruction text. It doesn't increase how much the model thinks internally. Many people try this first and assume it failed; it never actually worked.
The ultrathink keyword does not allocate tokens either. It's an in-context instruction that tells the model to be more thorough on that turn, but it does not increase the actual thinking budget. If thinking is disabled, ultrathink in your prompt won't enable it.
When to Use Extended Reasoning
- Complex architecture - Planning major system changes, evaluating trade-offs between approaches
- Intricate debugging - Understanding multi-layer interactions or race conditions
- Implementation planning - Breaking down a large feature into steps
- Codebase analysis - Understanding large or unfamiliar codebases before making changes
For straightforward coding tasks, normal effort is fine. The cost of extra reasoning isn't worth the marginal benefit if the problem is clear.
Related
- Prompting Techniques - Craft effective prompts
- Context Management - Manage working context
- Output Styles - Customize response format