Codex CLI always starts with gpt-5.4 model even though different model is specified in config.toml

Open 💬 1 comment Opened Jul 13, 2026 by steven-ppcd

What version of Codex CLI is running?

codex-cli 0.144.1

What subscription do you have?

Enterprise

Which model were you using?

_No response_

What platform is your computer?

Darwin 24.6.0 arm64 arm

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

_No response_

Codex doctor report

Codex Doctor v0.144.1 · macos-aarch64

Environment
  ✓ system       en-JP
      os                       Mac OS 15.7.4 [64-bit]
      OS language              en-JP
      LANG                     en_US.UTF-8
      VISUAL                   not set
      EDITOR                   not set
  ✓ runtime      standalone (unix, package /Users/cm119318/.codex/packages/standalone/releases/0.144.1-aarch64-apple-darwin, bin /Users/cm119318/.codex/packages/standalone/releases/0.144.1-aarch64-apple-darwin/bin, resources /Users/cm119318/.codex/packages/standalone/releases/0.144.1-aarch64-apple-darwin/codex-resources, path /Users/cm119318/.codex/packages/standalone/releases/0.144.1-aarch64-apple-darwin/codex-path)
      version                  0.144.1
      install method           standalone (unix, package /Users/cm119318/.codex/packages/standalone/releases/0.144.1-aarch64-apple-darwin, bin /Users/cm119318/.codex/packages/standalone/releases/0.144.1-aarch64-apple-darwin/bin, resources /Users/cm119318/.codex/packages/standalone/releases/0.144.1-aarch64-apple-darwin/codex-resources, path /Users/cm119318/.codex/packages/standalone/releases/0.144.1-aarch64-apple-darwin/codex-path)
      commit                   unknown
      executable               ~/.local/bin/codex
  ✓ install      consistent
      context                  standalone (unix, package /Users/cm119318/.codex/packages/standalone/releases/0.144.1-aarch64-apple-darwin, bin /Users/cm119318/.codex/packages/standalone/releases/0.144.1-aarch64-apple-darwin/bin, resources /Users/cm119318/.codex/packages/standalone/releases/0.144.1-aarch64-apple-darwin/codex-resources, path /Users/cm119318/.codex/packages/standalone/releases/0.144.1-aarch64-apple-darwin/codex-path)
      managed by               npm: no · bun: no · pnpm: no · package root —
      PATH entries (1)         ~/.local/bin/codex
  ✓ search       file exists (bundled, `/Users/cm119318/.codex/packages/standalone/releases/0.144.1-aarch64-apple-darwin/codex-path/rg`)
      search command           ~/.codex/packages/standa…le-darwin/codex-path/rg
      search provider          bundled
      search command readiness file exists
  ✓ git          git version 2.52.0
      selected git             /opt/homebrew/bin/git
      version                  git version 2.52.0
      exec path                /opt/homebrew/opt/git/libexec/git-core
      repo detected            false
      PATH entries (2)         /opt/homebrew/bin/git
                               /usr/bin/git
  ✓ terminal     Ghostty 1.3.1
      terminal                 Ghostty
      TERM_PROGRAM             ghostty
      terminal version         1.3.1
      stdin is terminal        true
      stdout is terminal       false
      stderr is terminal       true
      terminal size            239x54
      color output             disabled (stdout is not a terminal)
      COLORTERM                truecolor
      TERMINFO                 /Applications/Ghostty.ap…ents/Resources/terminfo (dir)
      effective locale         en_US.UTF-8
  ✓ title        default · project debug1
      title source             default
      title items              activity, project-name
      activity item            true
      project source           cwd
      project value            debug1
  ✓ state        databases healthy
      CODEX_HOME               ~/.codex (dir)
      log dir                  ~/.codex/log (missing)
      sqlite home              ~/.codex (dir)
      state DB                 ~/.codex/state_5.sqlite (file) · integrity ok
      log DB                   ~/.codex/logs_2.sqlite (file) · integrity ok
      goals DB                 ~/.codex/goals_1.sqlite (file) · integrity ok
      memories DB              ~/.codex/memories_1.sqlite (file) · integrity ok
      active rollouts          0 files · 0 B (avg 0 B)
      archived rollouts        0 files · 0 B (avg 0 B)
      standalone release cache 1 entries in /Users/cm119318/.codex/packages/standalone/releases
  ✓ threads      rollout files and state DB thread inventory agree
      default model provider   openai
      rollout DB active files  0
      rollout DB archived files 0
      rollout DB scan errors   0
      rollout DB malformed file names 0
      rollout DB scan cap reached false
      rollout DB rows          0
      rollout DB active rows   0
      rollout DB archived rows 0
      rollout DB missing active rows 0
      rollout DB missing archived rows 0
      rollout DB stale rows    0
      rollout DB archive mismatches 0
      rollout DB duplicate rollout thread ids 0
      rollout DB duplicate DB paths 0
      rollout DB model providers none
      rollout DB sources       none

Configuration
  ✓ config       loaded
      model                    gpt-5.4 · openai
      cwd                      ~/stuff/debug1
      config.toml              ~/.codex/config.toml
      config.toml parse        ok
      MCP servers              0
      feature flags            34 enabled · 1 overridden (full list with --all)
      overrides                fast_mode
  ✓ auth         auth is configured
      auth storage mode        Keyring
      auth file                ~/.codex/auth.json
      stored auth mode         chatgpt
      stored API key           false
      stored ChatGPT tokens    true
      stored agent identity    false
  ✓ mcp          no MCP servers configured
  ✓ sandbox      restricted fs + restricted network · approval OnRequest
      approval policy          OnRequest
      filesystem sandbox       restricted
      network sandbox          restricted
      linux helper             none
      execve wrapper helper    ~/.codex/tmp/arg0/codex-…SR/codex-execve-wrapper

Updates
  ✓ updates      update configuration is locally consistent
      startup update check     true
      update action            standalone installer
      version cache            ~/.codex/version.json
      cached latest version    0.144.1
      last checked at          2026-07-13 03:26 UTC
      latest version           0.144.1
      latest version status    current version is not older

Connectivity
  ✓ network      no proxy env vars
      proxy env vars           none
  ✓ websocket    connected (HTTP 101 Switching Protocols) · 15s timeout
      model provider           openai
      provider name            OpenAI
      wire API                 responses
      supports websockets      true
      proxy env vars           none
      connect timeout          15000 ms
      auth mode                chatgpt
      endpoint                 wss://chatgpt.com/backend-api/<redacted>
      DNS                      2 IPv4, 0 IPv6, first IPv4
      handshake result         HTTP 101 Switching Protocols
      reasoning header         false
      models etag present      true
      server model present     false
  ✓ reachability active provider endpoints are reachable over HTTP
      reachability mode        ChatGPT auth
      ChatGPT base URL         https://chatgpt.com/backend-api/ reachable (HTTP 404)

Background Server
  ○ app-server   not running (ephemeral mode)
      daemon state dir         ~/.codex/app-server-daemon
      settings                 ~/.codex/app-server-daemon/settings.json (missing)
      pid file                 ~/.codex/app-server-daemon/app-server.pid (missing)
      update-loop pid file     ~/.codex/app-server-daem…/app-server-updater.pid (missing)
      control socket           ~/.codex/app-server-cont…app-server-control.sock
      status                   not running
      mode                     ephemeral

─────────────────────────────────────────────────────────────
17 ok · 1 idle · 0 warn · 0 fail ok

--summary compact output           --all expand truncated lists
--json redacted report

What issue are you seeing?

Even though I have set model = "gpt-5.6-sol" in ~/.codex/config.toml, new Codex CLI sessions always default to model gpt-5.4.

I can switch to gpt-5.6-sol using /model, but this should be the default in the first place.

/model command output:

Select Model and Effort
  Access legacy models by running codex -m <model_name> or in your config.toml

  1. gpt-5.6-sol (default)  Latest frontier agentic coding model.
  2. gpt-5.6-terra          Balanced agentic coding model for everyday work.
  3. gpt-5.6-luna           Fast and affordable agentic coding model.
  4. gpt-5.5                Frontier model for complex coding, research, and real-world work.
› 5. gpt-5.4 (current)      Strong model for everyday coding.
  6. gpt-5.4-mini           Small, fast, and cost-efficient model for simpler coding tasks.

What steps can reproduce the bug?

  1. Set model = "gpt-5.6-sol" in ~/.codex/config.toml
  2. Launch Codex CLI with codex
  3. The initial model is gpt-5.4 instead of gpt-5.6-sol:
╭──────────────────────────────────────────────╮
│ >_ OpenAI Codex (v0.144.1)                   │
│                                              │
│ model:     gpt-5.4 medium   /model to change │
│ directory: ~/stuff/debug1                    │
╰──────────────────────────────────────────────╯

What is the expected behavior?

The initial model should be gpt-5.6-sol.

Additional information

I deleted ~/.codex and reinstalled Codex CLI using the macOS install script, but the problem still occurs.

This is my config.toml:

model = "gpt-5.6-sol"
model_reasoning_effort = "medium"

[projects."/Users/cm119318/stuff/debug1"]
trust_level = "trusted"

[tui.model_availability_nux]
"gpt-5.6-sol" = 4

codex doctor shows

Configuration
  ✓ config       loaded
      model                    gpt-5.4 · openai
      cwd                      ~/stuff/debug1
      config.toml              ~/.codex/config.toml
      config.toml parse        ok
      MCP servers              0
      feature flags            34 enabled · 1 overridden (full list with --all)
      overrides                fast_mode

I'm using Codex CLI on a work laptop on the company VPN. I'm on ChatGPT Enterprise plan.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗