cd /news/ai-tools/how-to-change-reasoning-effort-in-co… · home topics ai-tools article
[ARTICLE · art-128358] src=dev.to ↗ pub= topic=ai-tools verified=true sentiment=· neutral

How to change reasoning effort in Codex CLI: model_reasoning_effort values and one-off overrides

A developer has documented how to control reasoning effort in OpenAI's Codex CLI through the model_reasoning_effort configuration key, which accepts five levels: minimal, low, medium, high, and xhigh. The guide covers setting the value permanently in ~/.codex/config.toml, overriding it for a single run with the -c flag, switching mid-session via the /model command, and bundling settings into reusable profiles. It also notes that plan_mode_reasoning_effort and agents.default_subagent_reasoning_effort apply effort settings only to plan mode or spawned subagents, and warns that values unsupported by the active model may not take effect.

by read3 min views1 publishedSep 13, 2026

Originally published at https://aicoding-guide.com.

Codex feels slow, or it overthinks a trivial fix. The knob for that is reasoning effort, the Codex counterpart of extended thinking in Claude Code, controlled by the model_reasoning_effort key.

In short: set model_reasoning_effort = "high" (or another value) in ~/.codex/config.toml to change it permanently, use the -c flag for a single run, or /model during a session. The five levels are minimal, low, medium, high, and xhigh.

Key point

What you will learn

  • The five values and when each fits
  • Four ways to change effort: permanently, for one run, mid-session, and per profile
  • The keys that change effort only for plan mode or subagents

The configuration reference defines model_reasoning_effort as a string with the values minimal | low | medium | high | xhigh. The reference does not state a default, and it may depend on the model, so none is given here.

Value Suited to
minimal one-line questions, formatting fixes, anything with little to reason about
low small bug fixes, simple refactors
medium everyday feature work and investigation
high multi-file design changes, bugs with no obvious cause
xhigh hard algorithms, reviews of large changes where mistakes are costly

Higher effort means slower responses and more tokens. Keeping everyday work around medium and raising it only for hard tasks is the easiest routine.

Glossary

Reasoning effort: how much the model reasons internally before answering. It is separate from how much of the reasoning summary is displayed; hiding the display is covered in Hiding reasoning in Codex output.

One line in ~/.codex/config.toml:

model = "gpt-5.5"
model_reasoning_effort = "high"

In a trusted project you can put it in the repository's .codex/config.toml to affect only that project; project settings outrank user settings.

To change effort for a single invocation without touching the file, use -c (--config). Values are parsed as TOML, so wrap the string in double quotes and wrap the whole thing in single quotes to keep the shell from eating them.

codex -c model_reasoning_effort='"high"' "Find out why this test fails and fix it"

The same form works with codex exec from scripts. According to the docs, a value that cannot be parsed as TOML is treated as a string, so a missing pair of quotes often still works, but quoting makes the intent explicit.

Run /model in a session to switch. The official command list describes it as choosing the active model "and reasoning effort, when available". Raise it before a hard investigation and drop it afterwards.

Rather than typing the override every time you review code, bundle the settings in a profile. Profiles live in $CODEX_HOME (default ~/.codex) as <name>.config.toml and are selected with --profile <name>.

model_reasoning_effort = "xhigh"
approval_policy = "on-request"
codex --profile deep-review

Keep only the differences in the profile and shared settings in the base config.toml. Profiles as a whole are covered in the hub article Configuring Codex with config.toml.

The configuration reference also lists keys that apply only in specific situations.

Key Applies to
plan_mode_reasoning_effort overrides effort in plan mode only
agents.default_subagent_reasoning_effort default effort for spawned subagents

If you want deep planning but ordinary implementation, add plan_mode_reasoning_effort = "high" and leave model_reasoning_effort alone.

If nothing changes, check the model

A value outside what the model supports may not take effect. If /model shows no reasoning effort choices for the current model, that model does not expose effort. When speed and quality do not change after editing the setting, confirm the model first.

model_reasoning_effort, with values minimal, low, medium, high, xhigh ~/.codex/config.toml; one run: -c model_reasoning_effort='"high"'; mid-session: /model <name>.config.toml profile and select it with --profile plan_mode_reasoning_effort; subagents have agents.default_subagent_reasoning_effort

── more in #ai-tools 4 stories · sorted by recency
── more on @codex cli 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/how-to-change-reason…] indexed:0 read:3min 2026-09-13 ·