Set how hard the agent thinks
Effort is the reasoning dial: how long the agent is willing to think before it
answers. Set it with the button under the composer, or with /effort.
Why you would use it
Mechanical edits do not need the model's deepest pass and you pay for it in time
and tokens. Debugging does. The dial is per tab, so a tab kept for reviews can
sit on high while another sits on low.
How to use it
Tap the effort button (
#effortpick) in the row under the composer, right of the model. It shows the value, orauto.The menu opens as a list of efforts, headed
effort for claude · now: high, with a green tick on the one in use andin useat the head of its note. Tap another.
Or type /effort and the menu becomes the same list of efforts as soon as the
word is finished — no space needed — filtering as you type. It works at the end
of a message already written too: picking an effort there sets it and takes
/effort out of the draft, leaving the message. Send /effort on its own to see
the current value, or /effort high to set it directly.
What you see
- The button's label is the value itself, dimmed and reading
autowhen unset. - The tooltip is
Effort: high, orEffort: let the agent decidewhen nothing is set. - On an opencode model with no effort variants the button is disabled and its
tooltip is
This model has no effort variants. /effortwith no argument answers with a toast:effort: high, oreffort: default.- With nothing set the tick is on
auto. Unlike the model, no agent reports an effort back, so the tick only ever follows what you set.
Options and settings
| Agent | Values |
|---|---|
| claude | low (quick, mechanical work), medium (routine), high (debugging and design), xhigh (hardest calls), max (no ceiling), default (auto — let the CLI decide) |
| codex | minimal (template work), low (mechanical), medium (routine), high (reviews and debugging), xhigh (adversarial second opinions), default (auto — let the CLI decide) |
| opencode | The variants the server reports for the model this tab runs, plus default (auto — let the agent decide) |
On opencode, effort is a per-model variant applied as model/variant.
Limits and known gaps
- On claude, effort is a session flag, so changing it restarts the agent process. The next start resumes the same vendor session, so nothing is lost.
- On codex, effort rides on
turn/startand lands on the next message with no restart. - On opencode, choosing a variant the model does not have is refused before it is
sent:
model <id> does not support effort xhigh; supported: auto, low, high. If opencode itself rejects it, the error gains; choose auto or another effort supported by this model. - On opencode, a model with no variants disables the button, with the tooltip
This model has no effort variants. - A change made mid-turn applies from the next turn.
- The button is disabled with no tab open.
- Changing the model can change which efforts exist, which is why the model button sits to the left of this one.
Related
- switch-the-model — the button to its left
- slash-menu — the menu both controls open
- the-three-agents — which agents restart to apply a flag
- new-tab-command — the
/newthat copies this tab's effort - status-bar — where a restarted agent reports itself