It is Monday morning. You open Codex, choose a current model and assume the migration is finished. Then the overnight task, a teammate's custom agent or a project setting still names gpt-5.4.

That is the awkward part of the August 31 change. The visible model picker is only one place a model can be selected.

As of August 31, 2026, OpenAI says GPT-5.4 and GPT-5.4 mini retire from Codex for users signed in with ChatGPT. The recommended replacements are specific:

| Retiring Codex model | OpenAI's replacement | | --- | --- | | gpt-5.4 | gpt-5.6-terra | | gpt-5.4-mini | gpt-5.6-luna |

The OpenAI API and Codex sessions authenticated with an API key are not affected by this particular retirement. Before changing anything, identify which authentication route the workflow actually uses.

The five places worth checking

OpenAI's current Codex model guide names the hidden surfaces directly: workspace defaults, saved model settings, managed configurations, custom agents and scheduled tasks. The same guide also calls out scripts, configuration files and explicit codex exec --model commands that can preserve an old reference.

For a small team, the cleanest audit is to give each location an owner instead of asking everyone to “check Codex.”

1. Workspace defaults

Start with the default model for new work. A workspace administrator may have selected a model centrally even when individual users normally choose their own.

Record the old value before replacing it. If the workspace intentionally used GPT-5.4 for everyday work, the documented successor is Terra. If it used GPT-5.4 mini for narrow, repeatable jobs, the documented successor is Luna.

Do not silently move every old reference to the flagship model. The retirement notice gives a one-to-one mapping for a reason.

2. Saved model settings

A model choice can survive in a saved project, reusable task or other remembered setup. These are easy to miss because a newly opened thread can look correct while an older workflow still carries its own selection.

Open the settings for the work that actually matters this week. Look for the literal IDs gpt-5.4 and gpt-5.4-mini, replace them with the mapped model, then open a fresh thread and confirm the selected model.

In an interactive CLI session, OpenAI documents /model as the switcher and /status as the way to verify the active choice. A one-off manual switch proves that session, not every saved setting around it.

3. Managed configuration and local config.toml

The ChatGPT desktop app, Codex CLI and IDE extension share the Codex config.toml. OpenAI's configuration reference says user-level configuration lives in ~/.codex/config.toml, with trusted projects able to add a project-scoped .codex/config.toml override.

A current local default can be as simple as:

model = "gpt-5.6-terra"

or, for the former mini workload:

model = "gpt-5.6-luna"

Teams with centrally managed settings should check the managed layer too. A higher-priority workspace or organization rule can make a local edit look ineffective even when the file itself is valid.

4. Custom agents

Custom agents and subagent definitions may pin a model because their jobs were designed around a speed, cost or reasoning tradeoff. Review those assignments individually.

Terra is OpenAI's pragmatic all-rounder for everyday work. Luna is positioned for clear, repeatable and higher-volume tasks. That makes the mapping useful as a starting point, not a promise that every agent will behave identically after the swap.

Run one familiar task after the change. Check the output, tool use, approval path and elapsed time against the old result. A migration is not finished merely because the model ID is accepted.

5. Scheduled tasks, scripts and explicit commands

Scheduled work is the easiest place for a stale choice to hide because nobody is looking at the composer when it starts. Review recurring reports, overnight checks, dependency jobs and other unattended runs.

Then search scripts and copied commands for explicit flags such as:

codex -m gpt-5.4
codex exec --model gpt-5.4-mini "..."

OpenAI's developer-command guide documents both --model and the -m alias. An explicit command-line choice takes precedence over a default, so changing only config.toml does not update the command itself.

Replace the ID, then manually run the smallest safe version of an important scheduled workflow. Confirm the active model and the expected output before leaving the next unattended run to discover the change for you.

Do not assume a universal fallback

OpenAI tells users to replace these references. Its retirement notice does not document one universal fallback for every workspace setting, agent, script or scheduled task.

That means the useful question is not “Will Codex probably pick something else?” It is “Which model did this workflow intend to use, and did we verify the replacement?”

Keep the authentication distinction visible too. A ChatGPT-signed-in Codex workflow is in scope for the August 31 retirement. An API request or API-key-authenticated Codex session is not affected by this specific event, even though those routes still need their own model-lifecycle checks.

A ten-minute exit check

Before calling the migration done, write down five answers:

  1. Which workspace default now applies to new work?
  2. Which saved projects or tasks held an explicit old model?
  3. Which managed or local configuration files changed?
  4. Which custom agents were tested on Terra or Luna?
  5. Which scheduled tasks and scripted --model commands were run once by hand?

If the team also uses ChatGPT Work and Codex under the same plan, keep model availability separate from the usage budget. The five-seat credits guide explains that subscription, included usage and optional credits are three different budget layers.

The August 31 change is not a reason to redesign every workflow. It is a reason to find every place that quietly names the old one.