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:
- Web (claude.ai): Supports all five levels (
low/medium/high/xhigh/max) - API: Supports all five levels (
low/medium/high/xhigh/max) - Claude Code CLI: Supports all five levels, plus Ultracode mode (
xhigh- automatic multi-agent workflow orchestration)
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:
maxis the deepest pure reasoning level. It can suffer from diminishing returns and lead to overthinking. It simply gives the model more tokens to reason through a single response; it does not add orchestration capabilities.ultracodeis valuable because it adds orchestration rather than deeper single-response reasoning. Its reasoning depth is the same asxhigh, but Claude Code can autonomously start a multi-agent workflow. The extra capability is coordination, not intelligence.
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.