Claude Code guide: models and effort

Claude Code models, effort and thinking

Claude Code gives you three dials where the other two engines give you two. Model and reasoning effort behave as you would expect. The third, the thinking budget, is separate from effort and has to be set before the prompt rather than alongside it.

Anthropic

On Claude Code

Model

Picked per run. Use the ids the engine itself reports rather than a list you keep, because a hardcoded catalog goes stale the day a new model ships and then silently hides it.

Reasoning effort

Set per run alongside the model. Not every model has one: a model with no thinking dial reports an empty set of levels, which is a real answer meaning none rather than a missing one.

The thinking budget is separate

How much the model may think, and whether you are shown that thinking, is a distinct control from effort. It has to be sent before the prompt, not with it. Sent afterwards it is accepted and then ignored by every model call in the turn, which looks exactly like it worked.

Context window

Claude reports the window it is actually using, so a usage bar built on it does not need a correction factor. Codex is the one that needs adjusting.

Do not hardcode the catalog

The model list is worth reading live every time. A stored copy is the failure mode that hides a newly released model from the picker while everything appears to work.

Compare

Model and reasoning controls by engine

 Claude CodeCodex CLIGrok CLI
Pick a modelYesYesYes
Reasoning effortYesYes, per modelYes, per model
Separate thinking budgetYesNoNo
Where the level list comes fromThe engineThe model catalogThe initialize handshake
Reports its context windowYesYes, larger than usableYes, and it is accurate
Auto compactionYesYesAt 85 percent of the window

Termdeck drives all three from one console, so the differences above stop being three separate habits to remember.

FAQ

Claude Code models and effort, answered

What is the difference between reasoning effort and thinking budget?

Effort is how hard the model tries on a run. The thinking budget is how many tokens it may spend thinking, and whether that thinking is shown to you. They are separate controls and setting one does not set the other.

Why did my thinking setting not take effect?

The thinking budget has to be set before the prompt is sent. Sent after, it is accepted and then ignored for the rest of the turn, so nothing errors and nothing changes.

Do all Claude models support reasoning effort?

No. A model with no thinking dial reports an empty list of effort levels. That is a positive answer meaning the model has none, not a sign that the list failed to load.

Should I pin a model id in my tooling?

Read the list from the engine instead. A hardcoded catalog keeps working right up until a new model ships, at which point it hides the new model without any error to notice.