CodexHowSupport Us

Reasoning Effort Is Published for Every Model

The mistake

Believing that only GPT-5.3 Codex accepts a reasoning-effort setting — and therefore either avoiding the parameter on every other model, or switching to the Codex model purely to get it. This site taught that belief until October. It was wrong.

Why this happened

Every current model page states its effort levels, but not in the same sentence. GPT-5.3 Codex's page says it "supports low, medium, high, and xhigh reasoning effort settings"; most others say "Reasoning.effort supports: none, low, medium (default), high and xhigh." This site's scraper recognized only the first shape, recorded null for every other model, and the pages rendered that null as "not published." A Wayback Machine snapshot of the GPT-5.5 page from before this site launched already lists its levels. The scraper now fails loudly when it meets an effort sentence it can't parse, rather than reporting the model as silent.

Why it matters

Effort is one of the biggest levers on a Codex bill — reasoning tokens bill as output — and every model offers it. The real differences are in the details. GPT-6 Astra and GPT-6.1 Sol reject none; GPT-6 Sol and Luna and the GPT-5.6 models accept it. Only the GPT-5.6 and GPT-6 families accept max. And defaults differ: the GPT-5.4 family defaults to none, so an unconfigured request there does no reasoning at all, while most newer models default to medium and GPT-5.5 Pro defaults to high.

The fix

Set effort explicitly on every model, especially when migrating — a default that silently changes from none to medium changes behavior and cost at once. Check the level you send is one the target model accepts; if a request to GPT-6 Astra or GPT-6.1 Sol fails on none, send low (see the Astra error page). In the Codex CLI, /model sets the model and effort together.

Checking what a request actually used

The effort you send is in your own request logs; the cost it produced is in the response. output_tokens_details.reasoning_tokens counts the reasoning you paid for, so comparing it before and after a migration is the quickest way to catch a default that changed underneath you — prompts that produced no reasoning tokens on the old model and a steady stream of them on the new one mean the new model's default has taken over.

See also

Reasoning effort levels and defaults by model lists every model's exact set, and the dossier corrections explain how this mistake happened four times over.

Verified 2026-10-28 against CodexHow facts module (src/data/facts/) — see /about/#accuracy.