model_reasoning_effort
unsetPublished Jul 15, 2026 · Verified against the official config docs
Sets how hard the model thinks before it acts. Values: minimal, low, medium, high, xhigh. Ships unset, so the model's own default applies. Raise it when Codex keeps missing the point on multi-file work; drop it when your usage limits drain too fast, because every step up means more reasoning tokens per turn. Plan mode gets its own knob, plan_mode_reasoning_effort, which overrides this during planning.
model_reasoning_effort rides on top of whatever model you run and tells it how much thinking to spend per turn. The official reference gives it one line: “Adjust reasoning effort for supported models (Responses API only; xhigh is model-dependent).” That’s the whole entry (most of what’s actually known about this key lives in the issue tracker).
Values
| Key | Values | Default |
|---|---|---|
model_reasoning_effort |
minimal, low, medium, high, xhigh |
unset (model’s own default) |
plan_mode_reasoning_effort |
none, minimal, low, medium, high, xhigh |
unset (plan mode’s built-in preset) |
The docs don’t publish what “unset” resolves to per model. If the number matters to you, set it explicitly:
# ~/.codex/config.toml
model_reasoning_effort = "high"
# plan mode keeps its own preset unless you override it
plan_mode_reasoning_effort = "xhigh"
When to change it
- Limits draining fast. The opening report in “Burning tokens very fast” (#14593) burned roughly 20% of a business account’s tokens in two hours running high reasoning effort in VS Code. Dropping to
mediumorlowis the first lever to pull. - Codex keeps whiffing on multi-file work. Go
high, then tryxhighif your model accepts it. - Quick edits. Renames, config tweaks, and one-file fixes run fine on
loworminimal. - Smart plans, cheap execution. Leave the main key alone and raise
plan_mode_reasoning_effort. Daniel Vaughan’s delegation-spectrum writeup pairs reasoning effort withapproval_policywhen dialing in autonomy: the more rope you hand Codex, the more thinking you want behind each move.
Gotchas
xhigh is model-dependent and the reference doesn’t list which models accept it, so expect to test.
Higher effort doesn’t always buy more thinking. #30364 tracks GPT-5.5 reasoning tokens clustering at exactly 516/1034/1552 per response, and a related report (#29353) describes xhigh runs short-circuiting at 516 reasoning tokens. #30364 is still open with no maintainer response, and #29353 was closed as not planned, so on GPT-5.5 treat this setting as a request the model can undercut.
The docs scope the key to the Responses API only; whether it silently no-ops on other providers is undocumented.
Related settings
modelpicks the model the effort applies to;xhighsupport depends on it.approval_policyis the other half of the autonomy dial in Vaughan’s pairing.- If you landed here because your quota vanished, see usage limit draining too fast.