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.
Claude Code guide: models and effort
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
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.
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.
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.
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.
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
| Claude Code | Codex CLI | Grok CLI | |
|---|---|---|---|
| Pick a model | Yes | Yes | Yes |
| Reasoning effort | Yes | Yes, per model | Yes, per model |
| Separate thinking budget | Yes | No | No |
| Where the level list comes from | The engine | The model catalog | The initialize handshake |
| Reports its context window | Yes | Yes, larger than usable | Yes, and it is accurate |
| Auto compaction | Yes | Yes | At 85 percent of the window |
Termdeck drives all three from one console, so the differences above stop being three separate habits to remember.
FAQ
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.
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.
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.
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.
Claude Code, Codex and Grok in one browser console