As of 26 October 2026, OpenAI's Codex models page features three models: GPT-6.1 Sol (gpt-6.1-sol) for most complex coding work, GPT-6 Astra (gpt-6-astra) for the hardest end-to-end tasks, and GPT-6 Luna (gpt-6-luna) for fast, focused, high-volume work. Switch with /model in the CLI or the model control below the composer in the app and IDE extension.
The lineup changes often, and several models retired from Codex in the last two months. This guide is based on OpenAI's Codex models page, read on 26 October 2026. It covers which model to pick, reasoning effort, speed modes, plan access and what to do if a model is missing.
Which models does Codex support right now?
| Model | ID | OpenAI's description | Best for |
|---|---|---|---|
| GPT-6 Astra | gpt-6-astra |
"Our most capable model for complex work across code, apps, and research" | The hardest multi-step work where quality matters more than usage |
| GPT-6.1 Sol | gpt-6.1-sol |
"Near-Astra performance for complex work at a lower cost than Astra" | Most complex coding and long-running agentic work |
| GPT-6 Luna | gpt-6-luna |
"Our most efficient model for focused, high-volume tasks" | Extraction, summaries, focused edits, subagents |
All three are listed for the desktop app, the Codex CLI and the IDE extension, and all three are available through the API. GPT-6 Sol (gpt-6-sol), the previous Sol, is still offered. GPT-5.6 Sol, GPT-5.6 Terra and GPT-5.6 Luna remain available during the rollout of the newer models.
In ChatGPT, the Sol and Luna models are available in Work and Codex, not in Chat.
To see the exact catalog your installed CLI knows about, run codex debug models, which prints it as JSON. Add --bundled to see only the catalog shipped with your binary.
Which Codex model should you use?
OpenAI's guidance, in short:
- Astra, for the hardest end-to-end work. Complete workflows across code, apps and research that need sustained reasoning and judgment.
- GPT-6.1 Sol, for repeated, long-running work. Use it for complex work when cost matters, and keep Astra for your most demanding tasks.
- Luna, for clear, repeatable tasks. High-volume work where you know what a good result looks like: extraction, classification, transformation and structured summaries.
OpenAI's model selection page pairs models with effort levels for common jobs:
| Setting | Suited to |
|---|---|
| Luna, Low | Fine-grained edits, well-scoped problem-solving, simple data extraction |
| Luna, Extra high | Finding context across several apps, solving problems with clear constraints |
| GPT-6.1 Sol, Medium | Complex technical work and deliverables you expect to revise |
| GPT-6.1 Sol, Extra high | Polished deliverables and decisions built from conflicting evidence |
| Astra, Low | Concise writing and content adaptation |
| Astra, Medium | Ambitious projects that need broad context and complete results |
| Astra, Extra high | Demanding analysis with exacting requirements |
The practical approach OpenAI recommends: experiment with the same inputs and "keep the lightest setting that meets your quality bar." A tip, not an OpenAI recommendation: try Sol for your main session and Luna for subagents, which you can set with agents.default_subagent_model in config.toml. The Codex subagents guide covers subagent settings.
How do you change the model in Codex?
In the CLI, type /model during a session, pick a model, then pick a reasoning effort. To choose at launch, use --model or its -m alias. It works for scripted runs too:
codex --model gpt-6.1-sol
codex exec -m gpt-6-luna "Summarize the open TODOs in this repo"
Run /status afterwards to confirm the active model.
As a default, set model in ~/.codex/config.toml. The desktop app, CLI and IDE extension share this file:
model = "gpt-6.1-sol"
model_reasoning_effort = "medium"
If you set no model, each client uses a recommended one. You can also set review_model to use a different model for /review, and keep per-job settings in profile files. The Codex config guide covers profiles and layers.
In the desktop app and IDE extension, use the model and reasoning control below the composer. In the app you start from Power presets; open Advanced to choose a specific model, effort or speed. The IDE extension and app also have /model and /reasoning slash commands.
In Codex cloud, you cannot change the default model.
What reasoning effort should you pick?
Reasoning effort controls how long the model thinks before acting. Higher effort can improve complex work but takes longer and uses more of your allowance.
- Light (called Low in the CLI): quick, well-scoped tasks.
- Medium: tasks that need more planning.
- High and Extra High: difficult work with several steps, sources or tradeoffs.
- Max: gives one task more reasoning time. For the hardest problems.
- Ultra: uses subagents to work on separate parts of a task in parallel.
OpenAI suggests starting with High for Luna and Light for Astra; for GPT-6.1 Sol, start with your client's default. Luna supports up to Max but not Ultra. Most tasks need neither Max nor Ultra. In the CLI, reach them with /model, a model, then More reasoning….
In config.toml, model_reasoning_effort takes values such as low, medium, high, xhigh, max or ultra, depending on the model. plan_mode_reasoning_effort sets a separate level for plan mode. Efforts don't map exactly between model generations, so retest a familiar task when you switch.
What are Fast and Ultrafast modes?
They trade more usage for speed. Figures below are from OpenAI's Speed page, as of October 2026.
| Mode | Models | Included plan usage | Purchased credits |
|---|---|---|---|
| Fast | GPT-6.1 Sol, GPT-6 Astra, GPT-6 Sol, GPT-6 Luna, where available | 2.5x the Standard rate | 2x |
| Ultrafast | GPT-6 Astra, GPT-6.1 Sol | 8x | 6x |
Toggle Fast mode with /fast in the CLI, or set service_tier = "fast" with [features].fast_mode = true in config.toml. Fast mode needs ChatGPT sign-in. Ultrafast is limited to Pro $500 and eligible Enterprise and Edu plans; OpenAI says Astra Ultrafast generates tokens up to 8x faster than Astra in Standard mode. With an API key, Codex uses API token pricing and these multipliers do not apply.
Which models are available on your plan?
From OpenAI's Codex pricing page, as of October 2026:
- Free and Go: GPT-6 Luna at Standard speed in the desktop app, subject to rollout.
- Plus and Pro: GPT-6.1 Sol and GPT-6 Luna are included (Pro includes everything in Plus). GPT-6.1 Sol's launch rollout also covers Business, Enterprise and Edu.
- Enterprise and Edu: GPT-6.1 Sol and Astra are off by default until an administrator enables them. In Enterprise workspaces, GPT-6 Sol and GPT-6 Luna also start off.
- API key: availability follows your API organization and project.
The model you pick also decides how far your allowance goes. OpenAI's estimates of local messages per five hours on Plus, as of October 2026, are 15 to 160 for GPT-6.1 Sol and 350 to 3,000 for Luna. These are ranges, not fixed limits. The Codex pricing guide covers plans and credits in detail.
Which Codex models are retired or deprecated?
If an old script or config suddenly fails, check it against this list from OpenAI's docs:
| Model | Status with ChatGPT sign-in | Replace with |
|---|---|---|
gpt-5.5 |
Retired 14 October 2026, noon PDT | gpt-6.1-sol on paid plans; gpt-6-luna on Free and Go |
gpt-5.3-codex-spark |
Retired 14 September 2026 | An available model |
gpt-5.4 |
Retired 31 August 2026 | gpt-6-sol |
gpt-5.4-mini |
Retired 31 August 2026 | gpt-6-luna |
gpt-5.2, gpt-5.3-codex |
Deprecated | An available model |
OpenAI says the GPT-5.5 and GPT-5.4 retirements do not affect the OpenAI API or Codex sessions signed in with an API key. OpenAI asks you to replace retired IDs in workspace defaults, saved settings, managed configs, custom agents, scheduled tasks and scripts that pass --model.
Can you use other models in Codex?
Yes, in three ways:
- A custom provider or gateway. Define it under
[model_providers.<id>]inconfig.toml. It must offer a compatible Responses API endpoint; current releases do not supportwire_api = "chat". - Amazon Bedrock. Codex has built-in Bedrock providers for OpenAI models served there.
- Local models.
--ossruns a local model through LM Studio or Ollama, andoss_providersets which one.
The Codex config guide shows provider setups.
Why can't you see or use a model?
- It isn't in
/model. The picker only shows models available to your account and workspace. Check your plan above. - You set it in config but it fails. Choosing a model in config does not grant access to it. Pick one your account can use.
- You're on Enterprise or Edu. Ask an administrator to enable the model; starting defaults are not permissions.
- It works in the CLI but not the app. The app and CLI can bundle different Codex versions. Compare
codex --versionwith the app's bundled version.
For other errors, see Codex not working.
Keep your setup portable across models
Models change often; the prompts and skills you have refined should not have to. Kipt keeps your prompts and Agent Skills as Markdown in a private GitHub repo you own, and installs every skill into Codex or Claude Code with npx skills add https://github.com/<you>/<repo>.git --all -g. The free SKILL.md generator turns a prompt into a skill in the browser.