“Auto” reasoning effort (dynamic tiering) for Codex CLI
What feature would you like to see?
Title: Feature request: “Auto” reasoning effort (dynamic tiering) for Codex CLI
Summary
Add an “Auto” mode for reasoning effort so Codex can dynamically choose the right reasoning tier (minimal/low/medium/high/xhigh) per turn or per task—similar to how ChatGPT “Auto” adapts effort based on complexity.
Today, I have to manually pick a fixed reasoning effort (via config or /model), but real work swings between:
- fast/light turns (quick edits, short answers, small diffs)
- heavy turns (debugging, architecture, multi-step refactors, repeated failing tests)
Auto would reduce friction and improve throughput while preserving the option to pin a specific tier.
Problem / Motivation
Manual reasoning tier selection is:
- extra cognitive overhead (I often guess wrong)
- inefficient (overthinking simple requests or underthinking hard ones)
- awkward for long-running/agentic workflows where difficulty changes over time
This becomes more important for background/long-running terminal workflows (e.g., servers/builds/migrations) where I want reliability without always forcing xhigh.
Proposed solution
1) New setting value
Allow:
- config:
model_reasoning_effort = "auto" - CLI:
--config model_reasoning_effort="auto"(and/or a dedicated flag) - UI:
/modelincludes “Auto” as a selectable reasoning option
2) Auto policy (suggested behavior)
Auto selects a tier based on signals like:
- user intent: “quick”, “just summarize”, “deep dive”, “debug this”, “root cause”, etc.
- task complexity: size of diff, number of files touched, tool-call count
- failure loops: escalate after N failed commands/tests or repeated errors
- time sensitivity: prefer lower tiers for interactive back-and-forth, higher tiers for “go work” tasks
A simple baseline policy could work well:
- default = medium
- drop to low/minimal for small, single-step turns
- escalate to high/xhigh when (a) tests fail repeatedly, (b) multi-file refactor, (c) ambiguous bug/trace investigation
- de-escalate after success/stability
3) Guardrails
To avoid surprising cost/latency:
- optional caps:
auto_min = "low",auto_max = "high"(defaults sensible) - always show current tier in status bar/logs: “Auto (currently: high)”
- one-command override/pin: “Pin current effort” or choose a fixed tier anytime
UX sketch
/model:- Reasoning: Auto | minimal | low | medium | high | xhigh
- If Auto selected, display the currently chosen tier next to it.
Related
- Existing request/discussion around setting reasoning effort
- Background terminal sessions request (#3968) — Auto reasoning would pair well with long-running/background workflows
Acceptance criteria
- “Auto” is selectable in CLI + IDE (and visible in status)
- Auto chooses different tiers in practice (with transparent logging)
- Users can cap min/max and pin a tier
- Docs updated + tests for config parsing and request payloads
Additional information
_No response_
9 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
I couldnt find any duplicates!!
Actually, the Codex team has said medium=auto
@jasonwei1002 Do you have any sources for this?
<img width="1174" height="214" alt="Image" src="https://github.com/user-attachments/assets/3090ec7c-bfc0-40cd-88b1-5076b3358388" />
Feature request: task-type routing + bounded reasoning effort
Goal:
Automatically choose reasoning effort by task type, WITH user-defined bounds.
Example policy:
Why:
In scientific/complex codebases we want fast/consistent code-edit turns (high), but deeper thinking for design/debug planning (xhigh). Manually switching is friction and error-prone.
Requirements:
Adding another user scenario here rather than opening a duplicate issue.
For day-to-day Codex use, the missing UX is not only an
autovalue in config, but making it easy for Codex to recognize when a specific turn should switch reasoning effort before answering.Concrete examples:
mediumor lower for latencyhigh/xhighA useful UX would be:
autoreasoning mode with user-configurable min/max boundsAuto -> high: multi-file debugging + failed test loop/effort highor natural-language override (answer this with high reasoning)This would reduce manual switching friction without forcing every session to run at the highest reasoning level.
I'd like to add a related use case: changing reasoning effort during an active Codex turn, or allowing Codex to adapt reasoning effort by phase within a turn.
The current fixed-per-turn model is limiting for long agentic workflows. A single request can move through very different phases, for example:
Ideally Codex would support one or both of these:
auto/policy mode that can change reasoning effort based on the type of work being done within the same turn, not only before the turn starts.This would reduce overthinking simple phases and underthinking complex phases inside the same long-running task, while still preserving manual controls for users who want to pin a specific reasoning level.
I would like to add one UX angle to this request.
Today there appears to be a partial workaround: do not explicitly set
modeland/ormodel_reasoning_effortinconfig.toml. When these are left unpinned, Codex can fall back to its default/model-selection behavior instead of always using a user-pinned model and reasoning effort.That helps somewhat because the user is no longer forcing every task through the same fixed configuration. However, this behavior is not very discoverable in the CLI:
/modelto choose a model/reasoning level persists that choice back to config, so a one-off selection can become the new default.The underlying problem is that task difficulty changes a lot within normal Codex usage. Some turns are simple edits or quick checks; others are debugging, architecture, long-running agentic work, or repeated failure analysis. A fixed reasoning setting is often either too expensive for simple turns or not enough for difficult turns.
An explicit Auto mode would make this behavior understandable and intentional: Codex could use cheaper/faster reasoning for straightforward tasks and higher reasoning for complex tasks, without requiring users to keep high reasoning enabled all the time just to handle occasional complex work.