Skip to content
Sign Up Free
Codex

What do review_model and reasoning_effort mean in Codex CLI?

Understand review_model, model_reasoning_effort, /review, /model, and how these settings affect cost and quality in Codex CLI. Includes examples and fixes.

Short answer

review_model selects the model for /review; when unset, Codex uses the current session model. model_reasoning_effort adjusts the reasoning effort of models that support it through the Responses API.

More effort can help with difficult work, but does not guarantee a correct answer or a lower total cost. It is not a temperature or response-length setting.

Field relationships

FieldRole
modelDefault model for ordinary work
review_modelModel used for review workflows such as /review
model_reasoning_effortReasoning strength for the main model
/modelIn-session entry point for model or reasoning changes
/reviewEntry point for asking Codex to review current changes

Choose effort for the task

Use these as starting points, then judge the result against the task’s acceptance criteria:

TaskStarting pointWhat to check
A small, well-defined edit or a short explanationlow, when supportedCorrectness and response time.
A routine feature or a bug with a clear reproductionmedium, when supportedTests, completeness, and unnecessary changes.
A difficult diagnosis, cross-module change, or detailed reviewhigh; try a higher supported level if neededMissed constraints, false findings, and total time to a usable result.

Available levels depend on the model, Codex version, and provider. Check the choices in /model and the selected model’s reference before using levels such as xhigh or max. Support for one model does not imply support for another. Higher effort can increase reasoning tokens and latency; retries, context size, tool calls, and pricing also affect the total bill.

Configuration example

Set persistent defaults in config.toml under CODEX_HOME, or ~/.codex/config.toml when it is unset. Keep these keys at the top level, before any TOML tables, and retain your provider and authentication configuration:

model = "gpt-6-astra"
review_model = "gpt-6-astra"
model_reasoning_effort = "high"

Configuration parameters

ParameterPurpose and locationDefaults and examples
modelRoot; the full Model ID from the model plaza.Example: gpt-6-astra; replace as needed.
review_modelRoot; the model used by /review.Optional; defaults to the current session model.
model_reasoning_effortRoot; the model’s reasoning effort.Example: high; supported levels and defaults depend on the model.

Do not put model or reasoning settings inside [projects."<path>"]. Project-specific models can use root keys in a trusted project’s .codex/config.toml; provider and authentication settings remain in user config. Current named profiles use NAME.config.toml under CODEX_HOME, selected with codex --profile NAME, not legacy [profiles.NAME] tables or the root profile selector.

File defaults and session settings

At startup, CLI flags and -c overrides take precedence over trusted project configuration, the selected profile, and user defaults. In current Codex versions, --profile NAME loads NAME.config.toml from CODEX_HOME. Older versions used a different profile format.

For one launch, override only the effort:

Terminal window
codex -c 'model_reasoning_effort="medium"'

During a session, use /model to select the active model and an available effort level. Editing the file does not guarantee that a running session changes immediately; start a new session to check saved defaults. Plan mode can use plan_mode_reasoning_effort or its own preset, so verify it separately.

Verify the effective setting

  1. Run codex --version, then start a new session from the intended project directory.
  2. Use /model to check the selected effort and /status to confirm the active model and session configuration. If values differ from the file, inspect /debug-config when available, plus launch flags, the selected profile, and project configuration.
  3. Compare the same representative task at two supported levels in separate sessions. Review the diff, tests, completion time, and BetterToken usage records. Keep the setting that meets your quality target; lower effort is not a guarantee of lower total cost.

Common mistakes

  • Thinking review_model replaces the main model for all tasks.
  • Treating reasoning effort as a temperature setting.
  • Using a model ID unsupported by the current provider.
  • Using the highest reasoning effort for every task.
  • Looking only at model names without checking actual usage and result quality.

About BetterToken

Copy the exact Model ID from the model plaza.

References