Skip to content
AstroPaper
Go back

How to Choose the Right Effort Level in Claude

Edit page

Five Effort Levels

Claude Code CLI has five effort levels—one more than the web interface. Enter /effort in the CLI to open an interactive slider. The levels run from left to right:

The CLI also includes Ultracode (xhigh + workflows), which is not available on the web. It enables Claude Code to automatically use multi-agent workflows.

How to use it:

# Open the interactive slider (use the arrow keys to choose)
/effort

# Set a level directly
/effort xhigh

# Restore the model default
/effort auto

# Set a level at startup (this session only)
claude --effort low

When you enter /effort in the CLI, an interactive slider appears with six options: five effort levels plus Ultracode:

Faster ←──────────────────────────────→ Smarter

  low     medium     high     xhigh     max     ultracode
   ○        ◐         ●        ◉        ⬤      xhigh + workflows

Effort controls adaptive reasoning: it lets the model decide whether to think more deeply based on the complexity of the task. Lower effort is faster and cheaper, while higher effort gives the model more room for deeper reasoning.

The complete set of levels supported by Fable 5.1: low, medium, high, xhigh, and max.

Here is how the available options differ by platform:

Configuration examples:

/effort           # Open the interactive slider
/effort xhigh     # Set xhigh directly
/effort max       # Deepest reasoning (current session only)
/effort ultracode # xhigh + dynamic workflows
/effort auto      # Restore the model default

low, medium, high, and xhigh persist across sessions and are remembered separately for each model. max applies only to the current session.

What Is Ultracode?

Ultracode is a Claude Code setting, not a model effort level. It sends the model an effort level of xhigh and allows Claude to orchestrate dynamic workflows for substantive tasks.

It uses xhigh rather than max because the two options are designed for different purposes:

Put simply, max is “one person thinking as hard as possible,” while ultracode is “a team working together, with each person thinking carefully.” For complex engineering tasks, the latter is usually more effective.

How Should You Choose?

Based on the official documentation and practical use cases, the six options have these roles:

low ○ — Fast and economical

Use it for short, well-defined, speed-sensitive tasks that do not require much reasoning—for example, simple formatting, boilerplate generation, small sub-agent tasks, or renaming a variable.

medium ◐ — Control costs

In cost-sensitive situations, you can trade some intelligence for lower token consumption. It works well for everyday coding that is not particularly complex, simple file operations, and changes whose requirements are already clear.

high ● — The everyday default

This is a balance between token consumption and intelligence, and it is the default for most models. Everyday complex coding, bug fixes, code reviews, and normal reasoning tasks are all good fits. You usually do not need to adjust it.

xhigh ◉ — Deep reasoning

It provides deeper reasoning at a higher token cost. Use it for complex architecture design, cross-module refactoring, difficult debugging, and problems that require multiple reasoning steps. If high does not seem to have fully understood the problem, move up one level.

max ⬤ — Maximum reasoning (use sparingly)

This is the deepest reasoning level, with no token budget limit. It can improve performance on very difficult problems, but it can also cause overthinking and has clear diminishing returns. Use it occasionally for the hardest problems, not as your default. The official recommendation is to try xhigh first and move to max only if it is not enough.

ultracode ◉ + workflows — Multi-agent collaboration

It is not more intelligent; it adds orchestration capabilities. Claude can automatically break down a complex task and start multiple sub-agents working in parallel. It is suited to large-scale refactoring, multi-file feature development, and tasks that need a complete “investigate → plan → execute → verify” workflow.

The practical recommendation is to keep high as your default, move to xhigh when you encounter a difficult problem, and use max temporarily only for the most stubborn single-point problems. If the task itself is large and has many steps, ultracode is more suitable than max. For a single task that occasionally needs deeper reasoning without changing your global setting, you can also add the keyword ultrathink to your prompt. It asks Claude to think more deeply for that one turn.

What Is ultrathink, and How Do You Use It?

ultrathink does not correspond to an effort level. It is a prompt keyword, not a setting or a command. When Claude Code recognizes it, it injects an instruction into the context asking the model to reason more deeply for that turn. However, the effort parameter sent to the API does not change, and your session’s saved effort level is not affected.

/effort changes the API parameter—it determines how much reasoning budget the model receives. ultrathink changes the context instruction—it asks the model to think more carefully within the existing budget. One is a hard resource allocation; the other is a soft prompting signal. Press Ctrl+O to enable verbose mode and see the gray italic thinking content. If ultrathink takes effect, the thinking section for that turn will be noticeably longer and more detailed, with more reasoning steps.

Only the keyword ultrathink is recognized. “Think hard,” “think harder,” and “think more” are ordinary text and do not trigger any special behavior in Claude Code.

You can put it anywhere in a prompt:

ultrathink Why does this race condition only appear under high load? Find the root cause, then propose a fix without adding a global lock.
Analyze the security risks in this authentication module ultrathink
ultrathink refactor this auth module to handle refresh token rotation

After that turn is complete, Claude automatically returns to your previous effort level. You do not need to switch it back manually. Its role is clear: keep high for everyday work, add ultrathink to an individual prompt when a particularly stubborn problem needs more thought, and then continue as usual.


Edit page
Share this post:

Previous Post
Adding new posts in AstroPaper theme
Next Post
Reading Notes: Skills Improvements in Deep Agents