Skip to content
Codex

Best Codex model: start with GPT-6.1 Sol

OpenAI shipped GPT-6.1 Sol on September 29 and now recommends it for complex coding in Codex. Here is when Astra or Luna is the better call, which reasoning effort to start at, and what each choice costs per task, taken from OpenAI's own docs.

Quick answer

Use GPT-6.1 Sol for most Codex work. It is OpenAI's recommended model for complex coding, with near-Astra performance at one fifth of Astra's token price. Escalate to GPT-6 Astra when a failed run costs more than the premium, and hand well-specified, repeatable tasks to GPT-6 Luna. Keep the default reasoning effort until a task proves it needs more.
Default pick
GPT-6.1 Sol · $2 / $10 per MTok
Hardest work
GPT-6 Astra · $10 / $50 per MTok
High volume
GPT-6 Luna · $0.10 / $0.50 per MTok
Set it
codex -m gpt-6.1-sol or /model
Heads-up
GPT-5.5 leaves Codex (ChatGPT sign-in) on October 14, 2026
Verified
September 30, 2026 against OpenAI's docs
01

Pick by task, not by leaderboard

OpenAI's model-selection guide doesn't name a single winner. It pairs each model with a reasoning effort and a kind of work, which makes it the most useful starting point available: it comes from the vendor, not from a synthetic leaderboard. The right-hand column is our reading of what each rung looks like inside a Codex session.

Model · effortOpenAI's descriptionIn a Codex session
Luna · LowFine-grained edits, well-scoped problem-solving, and simple data extractionRenames, lint fixes, small bugs with a clear repro
Luna · Extra highFinding current context across multiple apps, prioritizing work, and solving problems with clear constraintsTriage and well-specified tasks that still need some digging
GPT-6.1 Sol · MediumComplex technical work and coordinated deliverables you expect to reviseEveryday feature work and multi-file changes: the default
GPT-6.1 Sol · Extra highPolished deliverables, connected visual systems, and decisions built from conflicting evidenceTangled debugging and changes that cut across modules
Astra · LowConcise writing and content adaptation that preserve facts and nuancePR descriptions, changelogs and docs that must stay accurate
Astra · MediumAmbitious projects that need broad context, reliable interactions, and complete resultsLarge migrations where a partial result is useless
Astra · Extra highDemanding analysis and complex deliverables with exacting requirementsThe hardest problems, when a failed run costs more than the tokens

GPT-6.1 Sol: the default

Feature work, planning, ambiguous bugs and multi-file changes. OpenAI's recommended Codex model for complex coding, at $2 / $10 per MTok.

GPT-6 Astra: the escalation

When a failed or half-finished run costs more than a 5x token premium, or the task spans code, browsers and documents end to end.

GPT-6 Luna: the fan-out

Once you know what a good result looks like: extraction, classification, mechanical edits and parallel sub-tasks, at the lowest GPT-6 price.
02

The current Codex lineup

Codex recommends three GPT-6 models today. All three share a 1.05M-token context window (922K maximum input) and 128K maximum output, so capability, speed and price are what separate them. Prices are standard API rates per million tokens. Knowledge cutoffs are April 30, 2026 for Astra and 6.1 Sol, and May 18, 2026 for Luna.

ModelAPI idInput / outputCached inputReasoning effortRole
GPT-6.1 Solgpt-6.1-sol$2 / $10$0.10low to maxThe default for complex coding and agentic work
GPT-6 Astragpt-6-astra$10 / $50$1low to maxThe escalation for the hardest end-to-end tasks
GPT-6 Lunagpt-6-luna$0.10 / $0.50$0.01none to maxFocused, repeatable, high-volume tasks

GPT-6.1 Sol vs GPT-6 Sol: what changed

GPT-6.1 Sol shipped on September 29, 2026, and OpenAI's docs now point to it as the newer Sol. The base price did not move. What changes for a Codex user:

GPT-6.1 SolGPT-6 Sol
Input / output$2 / $10$2 / $10
Cached input$0.10 (5% of input)$0.20 (10% of input)
Reasoning effortlow to maxnone to max
Knowledge cutoffApril 30, 2026April 20, 2026
Tool callingResponses APIResponses, or Chat Completions with effort none
OpenAI's positioningNear-Astra performance for complex work at a lower costBuilt for complex coding and agentic workflows

The cached-input cut is the change you will feel. A long agent session resends a growing prompt prefix on every turn, and that repeated prefix is what caching discounts, so with a warm cache 6.1 Sol costs less per task than 6 Sol at the same list price. The calculator below shows by how much. One migration trap: if your config pins none or minimal, move it to low, because 6.1 Sol supports neither.

03

Which model Codex uses, and how to change it

If you never set a model, the Codex app, CLI and IDE extension pick a recommended one for you. To choose deliberately there are three levers, from the most temporary to the most permanent:

  1. 1

    For one session: /model

    In an interactive CLI session, /model switches the model or its reasoning effort; choose More reasoning… to reach Max or Ultra where the model supports them. The app and the IDE extension have the same control under the composer.
  2. 2

    For one run: --model

    Pass --model, or its -m alias, when you launch Codex. It works for non-interactive codex exec runs too.
    codex --model gpt-6.1-sol
    codex exec -m gpt-6-luna "Fix the lint errors in src/"
  3. 3

    As your default: config.toml

    The app, CLI and IDE extension share ~/.codex/config.toml. Set the model and a default reasoning effort there.
    # ~/.codex/config.toml
    model = "gpt-6.1-sol"
    model_reasoning_effort = "medium"

Profiles: one config per kind of task

Profiles let you keep a named configuration per task shape and pick one at launch. Since Codex 0.134.0, each profile is its own file next to config.toml; the old [profiles.name] tables inside config.toml are no longer read, so move them if you still have them.

# ~/.codex/fast.config.toml
model = "gpt-6-luna"
model_reasoning_effort = "high"

# ~/.codex/deep.config.toml
model = "gpt-6-astra"
model_reasoning_effort = "low"
codex exec --profile fast "Rename getUser to fetchUser across the repo"
codex --profile deep

The two starting efforts above are OpenAI's: High for Luna, Light (low) for Astra. Your base config.toml keeps GPT-6.1 Sol for everything else.

04

Reasoning effort: start at the default

Model choice is half the tuning. Reasoning effort is the other half: more effort buys more planning and checking per step, and costs time and tokens. OpenAI's advice for Codex is to start with the default and raise it only when a task needs deeper planning or analysis.

ModelReasoning effort values (API)OpenAI's suggested start
GPT-6.1 Sollow · medium · high · xhigh · maxYour client's default (medium in the API)
GPT-6 Astralow · medium · high · xhigh · maxLight, which is low in config
GPT-6 Lunanone · low · medium · high · xhigh · maxHigh

Max and Ultra are different tools

Max gives one agent more time to reason about a single task. Ultra splits a task across subagents that work in parallel, so it only pays off when the work divides into meaningful parts. In OpenAI's words, most tasks need neither. GPT-6.1 Sol reaches Ultra where your plan and settings allow it; GPT-6 Luna stops at Max.

Don't confuse either with Ultrafast, which is a speed mode rather than more reasoning: it runs GPT-6.1 Sol faster in Codex on the Pro $500 plan and on eligible Enterprise and Edu plans, and OpenAI lists its credit usage on its Speed page.

Effort levels don't map one-to-one across model generations. If you are moving from a GPT-5.x model, re-run a familiar task at a lower setting and adjust from there rather than carrying your old value across.

05

What a task costs on each model

Per-token prices only mean something once a task sits behind them. The calculator below applies OpenAI's standard API rates to one agent task. The presets are illustrative sizes for a multi-turn run, not measured averages, so put your own numbers in.

Preset
ModelPer taskPer monthVs GPT-6.1 Sol
GPT-6.1 Soldefault$0.88$87.751.0×
GPT-6 Sol$1.01$100.501.1×
GPT-6 Astra$5.03$502.505.7×
GPT-6 Luna$0.050$5.030.06×

Standard API list prices. The presets are illustrative sizes for a multi-turn agent run, not measured averages. Not modeled: cache writes (1.25× input), Batch and Flex (50% off), Fast mode (2×) and regional processing (+10%).

Two things the per-token view hides. First, cache pricing is not uniform: GPT-6.1 Sol bills cached input at 5% of its input price, Astra and Luna at 10%, so with a warm cache Astra costs more than 5x what 6.1 Sol does per task. Second, token price is not task price. OpenAI reports that in several evaluations Astra reached stronger results with substantially fewer output tokens, and a model that lands a change in one attempt beats a cheaper one that needs three. Measure on your own tasks before routing on price alone.

06

Choose per task, not per project

Every rule on this page ends in the same place: the right model is a property of the task, not of the repository. A rename and a data-layer migration in the same codebase want different models and different effort, and a single default set once per project quietly overpays on one while underpowering the other.

There are three ways to act on that, from lightest to heaviest:

Switch by hand

/model per session or -m per run. Free, and fine for one agent at a time. Easy to forget when you jump between tasks.

A profile per task shape

A fast, a default and a deep profile cover most work. You still decide at launch, and nothing records which task ran on which model.

The model on the task

When several agents work in parallel, each on its own git worktree, the model belongs on the task itself. That is how AIDEN works: every feature carries its own agent, branch and model, across Codex and Claude Code.

The same logic crosses vendors. Some tasks suit a Claude model better than any GPT-6 tier; the Claude side of this decision is in the best Claude model for coding, and mixing both on one codebase is covered in model routing for coding agents.

Pick the model per task, not per project.

AIDEN runs your Codex CLI next to Claude Code on one board. Each feature gets its own worktree, agent and model, so a cheap model can take the renames while a stronger one takes the feature. Free for one project, no credit card.

Download AIDEN free

Free to start · macOS 12+ · No credit card required

07

Retirements: what to change before October 14

OpenAI is clearing older models out of Codex. The dates below apply when you sign in with ChatGPT: the GPT-5.5 retirement does not apply to the OpenAI API, and the GPT-5.4 retirement does not affect Codex running on your own API key.

Model in your configStatus in Codex (ChatGPT sign-in)OpenAI's named replacement
gpt-5.5Retires October 14, 2026gpt-6-sol on Plus, Pro, Business, Enterprise and Edu; gpt-6-luna on Free and Go
gpt-5.3-codex-sparkRetired September 14, 2026Any available model
gpt-5.4, gpt-5.4-miniRetired August 31, 2026gpt-6-sol and gpt-6-luna
gpt-5.2, gpt-5.3-codexDeprecatedAny available model
gpt-5.6-sol, -terra, -lunaAvailable during the GPT-6 rolloutNo date on OpenAI's Codex models page

OpenAI's retirement notice names GPT-6 Sol as the paid-plan replacement for GPT-5.5, while its current recommendation for complex coding is GPT-6.1 Sol. If you are editing the config anyway and your account has 6.1 Sol, skip the intermediate step. The model name also hides outside config.toml: workspace defaults, saved model settings, custom agents, scheduled tasks and scripts that call codex exec -m. A quick search finds the local ones:

# user and project Codex config; add any folder with scripts that call codex exec
grep -rnE 'gpt-5\.[2-5]|codex-spark' ~/.codex .codex 2>/dev/null
08

What the benchmarks do and don't say

We have not found a vendor-published coding benchmark for GPT-6.1 Sol or GPT-6 Luna that we could verify, so this page does not invent one. The cross-vendor coding numbers available for GPT-6 come from Anthropic's Claude Opus 5.5 launch table, where the GPT-6 Astra figures are as reported by OpenAI:

ModelTerminal-Bench 4.0FrontierCode v1.1Input / output
Claude Opus 5.566.4% (xhigh effort)54.4%$4 / $20
GPT-6 Astra57.9% (high effort, reported by OpenAI)53.3%$10 / $50
Claude Fable 5.155.8%50.3%$10 / $50

Two readings, both hedged. Inside OpenAI's lineup, Astra is the capability ceiling and 6.1 Sol is described as close to it, which is the whole case for Sol as the default. Across vendors, a Claude model posts the highest agentic-coding scores in that table at a lower price than Astra. That is a reason to keep Claude Code within reach for some tasks, not a reason to pick one CLI forever; the longer comparison is in Claude vs GPT for coding. Vendor tables use different harnesses and effort settings, so treat them as a prompt to test on your own repository.

Sources

QUESTIONS

FAQ

Which model does Codex use by default?
If you don't set a model, the Codex app, CLI and IDE extension use a recommended model. OpenAI's current recommendation for complex coding and agentic work is GPT-6.1 Sol where your account has access, and GPT-6 Luna for focused, repeatable tasks. To pin one, add model = "gpt-6.1-sol" to ~/.codex/config.toml, pass --model when you launch Codex, or use /model inside a CLI session.
What is the best Codex model right now?
GPT-6.1 Sol for most work. OpenAI describes it as near-Astra performance for complex coding at one fifth of Astra's token price ($2 / $10 vs $10 / $50 per million input and output tokens). Use GPT-6 Astra when a task needs the strongest model and a failed run costs more than the premium, and GPT-6 Luna ($0.10 / $0.50) for well-specified, high-volume work.
GPT-6.1 Sol or GPT-6 Astra for coding?
Start with GPT-6.1 Sol and escalate. Astra costs 5x more per input and output token (10x more per cached input token), and OpenAI positions it for the hardest end-to-end work. OpenAI's own advice is to compare the two on the same task and keep the lighter one if it meets your bar. If cost and latency don't matter to you, OpenAI says you can default to Astra.
Is GPT-6.1 Sol better than GPT-6 Sol?
It is the newer Sol, and OpenAI's docs now point to it. The list price is the same ($2 / $10 per million tokens), cached input is half the price ($0.10 vs $0.20), and the knowledge cutoff moves from April 20, 2026 to April 30, 2026. It drops the none and minimal reasoning efforts, so configs pinned to either should move to low.
What reasoning effort should I use in Codex?
Start where OpenAI suggests: your client's default for GPT-6.1 Sol (medium in the API), High for Luna, and Light (low in config) for Astra. Raise effort only for tasks that need more planning or checking. Set a default with model_reasoning_effort in ~/.codex/config.toml, or change it per session with /model.
What is the difference between Max and Ultra in Codex?
Max gives a single agent more time to reason about one task. Ultra splits a task across subagents that work in parallel, so it only helps when the work divides into separate parts. OpenAI notes that most tasks need neither. GPT-6 Luna supports up to Max, not Ultra.
Why can't I select GPT-6.1 Sol in Codex?
The launch rollout covers Plus, Pro, Business, Enterprise and Edu in the Codex app and CLI. Enterprise and Edu workspaces keep it off until an administrator enables it, and Free and Go plans are not included at launch. GPT-6 Sol, the previous Sol, remains selectable in the meantime; on Free and Go, OpenAI points Codex users to GPT-6 Luna.
What happens to GPT-5.5 in Codex?
It retires from ChatGPT and from Codex with ChatGPT sign-in on October 14, 2026, on every plan. OpenAI's named replacements are GPT-6 Sol on Plus, Pro, Business, Enterprise and Edu, and GPT-6 Luna on Free and Go. The retirement does not apply to the OpenAI API.
How much does a Codex task cost on each model?
With an API key you pay per token. Per million tokens, GPT-6.1 Sol is $2 input, $0.10 cached input and $10 output; GPT-6 Astra is $10, $1 and $50; GPT-6 Luna is $0.10, $0.01 and $0.50. A prompt above 272K input tokens is billed at 2x input and 1.5x output for the whole request. The calculator on this page turns those rates into a per-task figure. With ChatGPT sign-in, Codex draws on your plan's usage and credits instead.
Can I use Codex and Claude Code models in the same project?
Yes. Both are CLIs that work on a local git checkout, so they can share a repository as long as each agent gets its own branch or worktree. AIDEN runs both on one board and lets you set the agent and model per feature, using your own Codex and Claude subscriptions.
CONTINUE

Keep reading

START BUILDING

Route each task to the model it needs.

AIDEN runs your existing Codex and Claude Code CLIs on one local-first board, with the model chosen per feature. Free for one project, no credit card.

MACOS 12+ · BRING YOUR OWN CLAUDE CODE OR CODEX · YOUR CODE STAYS LOCAL