Verboo Code: how to set the model's reasoning level with /effort
Back to the blog
Articleverboo codetutorialagente de programaçãodev toolshow to

Verboo Code: how to set the model's reasoning level with /effort

MafraOctober 14, 20265 min read

Renaming a variable doesn't need two minutes of thinking. Finding the race condition that only shows up in production does. Verboo Code's /effort controls exactly that: it sets how much the model reasons before answering, using the levels the active model actually offers. This guide covers the commands, where the level is saved and why it sometimes seems not to stick.

What does /effort do in Verboo Code?

It picks the reasoning level (effort) the CLI requests from the model on every call. With no argument, it opens a picker with the levels available for the current model:

/effort

The list is not fixed. Verboo Code reads the levels the router advertises for each model in /models, so one model may offer low and high while another offers low, medium and high. In the picker, Enter confirms and Esc cancels. The first option is always Auto, described as "Use the default effort level for your model".

Verboo Code /effort flowchart: see the model's levels with /effort, pin a level with /effort high, check it with /effort current, or go back to the model default with /effort auto
See, pin, check. Plus the branch back to the model default. Verified in the v0.15.37 source on 2026-10-14.

Which commands does /effort accept?

Five forms, all read straight from src/commands/effort/effort.tsx:

CommandWhat it does
/effortOpens the picker with the active model's levels
/effort highPins the level and saves it for future sessions
/effort current or /effort statusShows the level that applies right now
/effort auto or /effort unsetClears the saved level and lets the model decide
/effort helpShows usage: /effort [level|auto]

Level names are case-insensitive: /effort HIGH and /effort high do the same thing. When you pin a level, the CLI replies Set effort level to high: followed by the level description.

Which level should I use for each task?

Start on automatic and raise it only when answers come back shallow. The descriptions below are the ones the CLI itself shows in the picker:

LevelCLI descriptionGood for
lowQuick, straightforward implementation with minimal overheadRenames, formatting, one-line fixes, quick questions about the code
mediumBalanced approach with standard implementation and testingSmall features, new tests, local refactors
highComprehensive implementation with extensive testing and documentationHard bugs, changes across many files, architecture design
maxMaximum reasoning for the most complex tasksThe problem that already beat high, when the model offers this level

More reasoning makes each answer slower. So it pays to lower the level in sessions full of small edits and raise it only for the hard part, instead of leaving everything at the top.

Where is the level saved?

In ~/.verboo/settings.json, under the effortLevel key. It's the user settings file, so it applies to every project:

{
  "effortLevel": "high"
}

If you use VERBOO_CONFIG_DIR to point to another config folder, the file lives there. /effort auto removes the key and replies Effort level set to auto.

Why does /effort seem not to stick?

Almost always it's the CLAUDE_CODE_EFFORT_LEVEL environment variable. It beats any choice made in the session. When it's set to a different value, /effort still saves your choice, but warns that the variable keeps control of this session. The full order, strongest first:

OrderSourceScope
1CLAUDE_CODE_EFFORT_LEVELEvery process started with it. auto or unset forces automatic
2/effort <level> inside the sessionThe current session, and saved for the next ones
3--effort <level> flagOnly the session opened with it, not saved
4effortLevel in settings.jsonLoaded at the start of each session
5AutoThe default the router reports for the model

To check and clear the variable in your shell:

echo $CLAUDE_CODE_EFFORT_LEVEL
unset CLAUDE_CODE_EFFORT_LEVEL

Then reopen the CLI and run /effort current. On automatic, the reply is Effort level: auto (currently high), with the model's default level in parentheses. With a pinned level, it's Current effort level: high followed by the description.

What if I switch models?

The saved level is checked against the active model before each call. If the new model doesn't have that level, its default applies. So after a /model, run /effort current to see what's in effect. If you ask for a level the model doesn't have, the CLI refuses and lists the available ones:

Invalid reasoning level: max. Available for <model>: low, high, auto

On a model without reasoning control, the reply is Reasoning is not supported for <model>. The level names in the example are illustrative; the real ones show up in the message.

How do I set effort in a script or CI?

Use the flag per run, or the variable for the whole process:

verboo --effort low -p "update the CHANGELOG with the commits since the last tag"

CLAUDE_CODE_EFFORT_LEVEL=high verboo -p "find out why the integration test fails intermittently"

The --effort flag accepts low, medium, high and max and rejects anything else up front. It applies only to that run and doesn't touch settings.json, which is the right behavior for a pipeline: each job declares what it needs.

How does this fit with the other commands?

  • /plan pairs well with high: high reasoning while planning, a lower level while executing.
  • /context shows what's filling the window, another common cause of weak answers.
  • /compact summarizes the conversation when it gets too long.

On Verboo Code tokens are unlimited, so raising /effort costs response time, not money: create your account at verboo.ai, open the CLI in your repo and run /effort high on the next bug that fights back.

Enjoyed this article?
Share knowledge with your network.
// Read also

Related articles