CodexHowSupport Us

Codex CLI Defaults to Sol, Not the Codex Model

The mistake

Assuming that because a model is literally named for Codex — "optimized for agentic coding tasks in Codex or similar environments," in OpenAI's words — the Codex CLI must default to it. It doesn't, and it never has at any point this site has checked. Start the CLI with no model flag and read the banner: the model answering today is GPT-6.1 Sol, the successor to GPT-5.6 Sol as the default.

Why this happens

The naming points the wrong way twice. The tool is called Codex, so the Codex-named model feels like the real default. And the Sol models' unsuffixed aliases — gpt-5.6 routes to GPT-5.6 Sol — make the frontier model look like a generic fallback rather than a deliberate choice. Meanwhile the default itself changed this autumn without anything in a running setup announcing it: if you never pinned a model in config.toml, you moved from GPT-5.6 Sol to GPT-6.1 Sol with a CLI update.

Why it matters

The default and the Codex model differ on cost in a way that's easy to get backwards. GPT-6.1 Sol costs more than GPT-5.3 Codex per uncached input token, but less per cached input token and per output token — and it carries a much larger context window and a newer knowledge cutoff. Agentic sessions re-read cached context constantly and spend heavily on reasoning output, so the default is usually the cheaper of the two there — the opposite of what most people assume. And if you sign in with ChatGPT, the comparison is moot: GPT-5.3 Codex is deprecated there.

The fix

Check what you're actually running with /status before budgeting anything, and pin the model you want with model = "…" in config.toml, so a future default change doesn't move you silently. If you use an API key and want GPT-5.3 Codex's lower input rate for small-context work, select it explicitly with /model or -m — but it's deprecated on the API and shuts down on April 1, 2027, so plan the move off it at the same time.

How to confirm it on your machine

Start codex with no flags and read the model in the startup banner, then run /status inside the session; the two should agree. If they name something other than the current default, something is overriding it — a model line in config.toml, an active profile, or a -m in a wrapper script — and /debug-config prints which configuration layer set it. Scripted codex exec runs follow the same configuration unless the script passes -m itself.

See also

GPT-6.1 Sol vs GPT-5.3 Codex puts the two side by side, and Codex model retirements lists what ChatGPT sign-in no longer offers.

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