/model does not list GPT-5.6 models that are available via -m

Open 💬 5 comments Opened Jul 9, 2026 by ikhristich
💡 Likely answer: A maintainer (etraut-openai, contributor) responded on this thread — see the highlighted reply below.

What version of Codex CLI is running?

Codex CLI: v0.143.0

What subscription do you have?

Plus

Which model were you using?

gpt-5.6

What platform is your computer?

macOS

What terminal emulator and version are you using (if applicable)?

iTerm2

Codex doctor report

What issue are you seeing?

Description

The Codex CLI can successfully start GPT-5.6 models when they are specified with the -m flag, but the interactive /model picker does not display them.

This makes it appear that GPT-5.6 models are unavailable, even though they are fully usable.

Environment

  • Codex CLI: v0.143.0
  • macOS
  • ChatGPT Plus account
  • Logged in with ChatGPT account (not API key)

What steps can reproduce the bug?

Steps to reproduce

  1. Start Codex with any GPT-5.6 model:

codex -m gpt-5.6-sol

or

codex -m gpt-5.6-terra

or

codex -m gpt-5.6-luna

  1. Verify that the session starts successfully and the header displays, for example:

model: gpt-5.6-sol medium

  1. Run:

/model

Actual behavior

The model picker only shows:

  • gpt-5.5
  • gpt-5.4
  • gpt-5.4-mini

GPT-5.6 models are missing, even though the current session is already running on GPT-5.6.

What is the expected behavior?

Expected behavior

The /model picker should list every model available to the authenticated user, including:

  • gpt-5.6-sol
  • gpt-5.6-terra
  • gpt-5.6-luna

or at minimum display the currently active model.

Additional information

The same ChatGPT account has access to GPT-5.6 models in the Codex App.

The CLI can also successfully start GPT-5.6 models when they are explicitly specified using the -m option.

This appears to be a UI/model picker issue rather than an authorization or model availability problem.

View original on GitHub ↗

5 Comments

WigglyDon · 1 month ago

I also have this bug on fedora cli.

Trying to run any commands results in this error:

■ {"type":"error","status":400,"error":
{"type":"invalid_request_error","message":"The 'gpt-5.6-sol' model
requires a newer version of Codex. Please upgrade to the latest app or
CLI and try again."}}
StellarWarp · 1 month ago

Blocking ab.chatgpt.com and removing leveldb can be temporary solution, as it relates to filter policies obtained online.

On Windows you can add 127.0.0.1 ab.chatgpt.com to C:\Windows\System32\drivers\etc\hosts and delete ~\AppData\Local\Packages\OpenAI.Codex_<some hash>\LocalCache\Roaming\Codex\web\Codex\Default\Local Storage\leveldb

Menci · 1 month ago

The comment is sent by an agent, behalf of @Menci.

The ab.chatgpt.com block workaround upthread works but disables every Statsig gate (Browser Use, Computer Use, plugin catalog, etc.). Here's a more targeted patch that only defeats the picker whitelist.

Filter location (Codex/ChatGPT.app 26.707.31428, com.openai.codex):

webview/assets/app-initial~app-main~onboarding-page~...~k0ede4gb-C17KDkOa.js:

  • $v(e) — zod-parses use_hidden_models, available_models, default_model off the Statsig dynamic-config payload
  • ay() — reads eee('107580212').value
  • Jv({authMethod:e, availableModels:t, models:a, useHiddenModels:o}) — the picker filter:

``js
let l = o && e !== 'amazonBedrock';
a.forEach(n => { if (l ? t.has(n.model) : !n.hidden) { /* keep */ } });
``

Verify live (paste into DevTools console once you have one on the app):

Object.values(__STATSIG__.instances)[0].getDynamicConfig('107580212').value
// -> { use_hidden_models: true, default_model: 'gpt-5.4',
//      available_models: ['gpt-5.5','gpt-5.4','gpt-5.4-mini','gpt-5.3-codex','gpt-5.2'] }

For any non-ChatGPT-authed session (API-key, Azure, custom OpenAI-compatible) the whitelist branch runs and every hidden:false model that app-server model/list returned — gpt-5.6-{sol,terra,luna} included — gets stripped, even though the CLI running from the same bundle can invoke them fine.

One-byte shim (per-install; gets wiped by Sparkle):

ASAR=/Applications/ChatGPT.app/Contents/Resources/app.asar
OFF=$(grep -aboE 'use_hidden_models' "$ASAR" | head -1 | cut -d: -f1)
printf 'Z' | dd of="$ASAR" bs=1 seek=$((OFF+16)) count=1 conv=notrunc
codesign --force --deep --sign - /Applications/ChatGPT.app

Renames the string literal inside $v() so safeParse(e.use_hidden_models) misses and the field defaults to false. Length-preserving (asar header untouched), idempotent, reversible. Works because EnableEmbeddedAsarIntegrityValidation fuse is OFF on shipped builds.

Fix at the source — any one of these:

  1. In Jv/ive: skip the whitelist branch when authMethod !== 'chatgpt'. Custom API-key providers shouldn't be gated by a ChatGPT-account-scoped rollout list.
  2. In Jv/ive: union availableModels with models.filter(m => !m.hidden) before the t.has() check, so provider-returned visible models can never be dropped.
  3. Server-side: exclude non-ChatGPT-authed sessions from Statsig config 107580212 targeting.

Happy to help verify a fix if useful.

lashahub · 1 month ago

Possibly a separate cause, but I reproduced the same symptom on Linux with CLI 0.144.1.

~/.codex/models_cache.json showed client_version: 0.141.0 and no GPT-5.6 entries because older Codex/app-server processes were still running and overwriting the shared cache.

After stopping the stale processes and rebuilding the cache:

mv ~/.codex/models_cache.json ~/.codex/models_cache.json.old
codex debug models >/dev/null

it regenerated as 0.144.1 with Sol, Terra, and Luna marked visibility: list, and /model worked.

Affected users may want to compare codex --version with the cache’s client_version and check for old processes using:

ps -eo pid,lstart,args | grep '[c]odex'
etraut-openai contributor · 1 month ago

This may be because you have a stale (older) app server running locally, and the newly launched TUI is connecting to it. Make sure to terminate any local app server instances, then run the latest version of the CLI.