When adopting GPT-5.6 in Codex, the most important question is not simply, “Which model is strongest?” The better question is which model best fits the ambiguity of the task, the consequences of failure, acceptable latency, usage, and the amount of human correction likely to follow.
The GPT-5.6 family includes Sol, Terra, and Luna. OpenAI positions Sol for complex, open-ended work, Terra for everyday work, and Luna for clear, repeatable tasks. Codex also lets you configure reasoning effort independently of the selected model.
This guide covers the Codex CLI setup, explains the distinction between model choice and reasoning effort, defines a reproducible comparison protocol, and provides task-specific selection guidance. No raw benchmark runs were supplied with the brief, so measured results are not fabricated; hypotheses and measurement procedures are explicitly separated.
Understanding GPT-5.6 Sol, Terra, and Luna
Treating the three options as a simple quality ladder usually leads to unnecessary spending. In production engineering, consider not only how difficult a task appears, but also what happens if a mistake survives review.
Model | Official positioning | Good fit |
|---|---|---|
GPT-5.6 Sol | Flagship model | Ambiguous changes, unfamiliar repositories, architecture decisions |
GPT-5.6 Terra | Balanced capability, speed, and cost | Everyday implementation, investigation, and refactoring |
GPT-5.6 Luna | Fastest and lowest-cost option | Well-specified fixes, transformation, classification, and volume work |
This framing follows the Codex model guide. OpenAI recommends starting with Sol when you are unsure. For sustained development work, however, it is worth testing whether Terra can serve as the default, with escalation to Sol for ambiguous or high-risk tasks.
GPT-5.6 Sol
Sol is the flagship model in the GPT-5.6 family. It is suited to work where analysis and judgment materially affect the outcome: implementing an incompletely specified feature, weighing architectural constraints, or investigating a large and unfamiliar codebase.
Authentication migrations, data-integrity changes, and incidents spanning several system layers can create expensive rework when something is missed. In those situations, the value of reducing omissions may outweigh Sol’s additional usage cost.
GPT-5.6 Terra
Terra balances capability, speed, and usage. It is the natural first candidate for routine engineering work such as adding an endpoint, fixing an existing feature, writing tests, or completing a moderately scoped refactor.
OpenAI also describes Terra as a natural starting point for work previously assigned to GPT-5.5. For a team standard, one testable policy is to use Terra as the baseline, move clear mechanical work down to Luna, and escalate high-risk work to Sol.
GPT-5.6 Luna
Luna is the fastest and lowest-cost model in the GPT-5.6 family. It works best when the completion criteria are explicit and the output can be checked mechanically with tests, schemas, or deterministic tooling.
Examples include bulk type conversions, boilerplate generation, classification, structured summaries, and tightly specified fixes. Prompt length is not a reliable selection criterion, though. A short prompt can still describe an unclear production incident or a security-sensitive change, both of which may justify Terra or Sol.
Preparing Codex for GPT-5.6
Check the Codex CLI version
GPT-5.6 requires Codex CLI 0.144.0 or later. Check the installed version first:
codex --versionUnless you have a specific reason to pin the minimum release, updating to the latest stable version also brings in current model-catalog and CLI fixes.
Update Codex CLI
If Codex was installed globally with npm, update it with:
npm install -g @openai/codex@latest
codex --versionIf you installed it through another package manager, use the corresponding update procedure.
Confirm plan availability
According to the current OpenAI Help Center article, Codex availability is:
Plan | GPT-5.6 models available in Codex |
|---|---|
Free and Go | Terra |
Plus and Pro | Sol, Terra, and Luna |
Business and Enterprise | Sol, Terra, and Luna |
The rollout is gradual, so an eligible account may not see every option immediately. Administrators can also restrict model availability in managed workspaces.
Switching Codex to GPT-5.6
Select a model at launch
Use --model, or its -m alias, to select a model when starting Codex:
codex -m gpt-5.6-sol
codex -m gpt-5.6-terra
codex -m gpt-5.6-lunaThe same option works for non-interactive runs:
codex exec -m gpt-5.6-terra "Review the current changes"For comparative testing, putting the model ID directly in the command reduces ambiguity caused by different local configuration files.
Change the model during a session
In an interactive session, enter:
/modelChoose a model and reasoning level from the selector. Then verify the active configuration with:
/statusCodex supports changing the model in an existing session. For a controlled comparison, however, start a fresh session for every run. Previous conversation turns and tool results would otherwise introduce another variable.
Configure a default model
Personal defaults belong in ~/.codex/config.toml. A trusted repository can override them with .codex/config.toml inside the project.
model = "gpt-5.6-terra"
model_reasoning_effort = "medium"CLI flags take precedence over project and user configuration. A useful convention is to keep the routine default in configuration and use -m for one-off changes and benchmarks.
The current Codex rate card lists local-task availability for GPT-5.6 Sol, Terra, and Luna, while cloud tasks are marked unavailable for these models. The procedures in this article therefore target local Codex CLI sessions.
Choose the Model and Reasoning Effort Separately
Sol, Terra, and Luna are different models. Low, Medium, High, Extra High, and Max describe how much reasoning effort the selected model applies before and during its work.
Reasoning level | Typical use |
|---|---|
Low | Small changes with explicit completion criteria |
Medium | Routine implementation, investigation, and test writing |
High | Multi-file changes and difficult defects |
Extra High or above | Problems involving many constraints or tradeoffs |
Higher reasoning effort can improve results on complex work, but it generally takes longer and consumes more tokens. OpenAI recommends starting with the lowest effort that produces the required result, then increasing it when the work needs more planning, analysis, or checking.
Keep reasoning effort fixed when comparing models. A comparison between Sol Low and Terra High cannot show whether an observed difference came from the model or the reasoning budget. A cleaner process is to compare every model at Medium first, then tune reasoning effort within the selected model.
Compare Sol, Terra, and Luna Under Controlled Conditions
A useful engineering comparison should prioritize total completion time, including human correction, rather than model latency alone. A fast run that requires repeated review fixes may be more expensive for the team overall.
Test conditions
Hold the following conditions constant for every model:
- Start from the same repository and Git commit.
- Create a new session for every run.
- Use the exact same prompt.
- Set reasoning effort to Medium.
- Keep permissions, network access, and execution environment identical.
- Run the same tests and static-analysis tools.
- Fix every configuration value except the model ID.
To reduce the effect of chance, run each task more than once and retain every result. Examine failure modes and variance, not only averages.
Five representative tasks
1. Fix a single-file bug
Check whether the model finds the actual cause, avoids unrelated edits, and passes both regression and existing tests. The pre-test hypothesis is that Luna or Terra will be sufficient when the completion criteria are explicit.
2. Refactor across multiple files
Evaluate whether the model follows dependencies, updates callers, preserves public interfaces, and maintains existing behavior. Terra is the likely baseline for a moderate refactor; Sol may have an advantage when the impact is broad or the intended behavior is ambiguous.
3. Investigate an unfamiliar repository
Ask each model to explain the major components, data flow, critical configuration, and testing strategy. Score whether the explanation cites concrete files and code evidence. Sol is the first candidate for this open-ended investigation.
4. Generate tests
Look for boundary cases, failures, and regression conditions in addition to the happy path. The tests should validate requirements rather than merely reproduce the implementation. Terra is the general-purpose candidate, while Luna may be appropriate for mechanical additions to an established table-driven suite.
5. Review a design
Assess whether the response covers performance, operations, recovery, security, and migration. It should explain tradeoffs and justify a recommendation, not merely list concerns. Sol is the likely fit for high-value, ambiguous design decisions.
Metrics to record
Metric | How to evaluate it |
|---|---|
Requirement success | Acceptance criteria and test results |
Execution time | From prompt submission to completion |
Usage | Codex display or account usage page |
Tool activity | Number of searches, commands, and edits |
Change size | Files changed and diff lines |
Rework | Corrections required after human review |
Code quality | Unrelated edits, duplication, and added complexity |
Evidence quality | Whether claims are supported by code or tests |
On the official rate card, input, cached-input, and output credit rates for Sol, Terra, and Luna are approximately proportional to 1:0.5:0.2. The listed estimates for one local-task message are about 14, 7, and 3 credits respectively. Actual consumption depends on the task and context, so these figures should not be treated as fixed per-task prices.
Recommended Models by Task
The following matrix is a pre-benchmark decision guide. Update it with success rates, usage, and review effort measured in your own repositories.
Task | First choice | When to switch |
|---|---|---|
Small bug fix | Luna | Use Terra when the cause is unclear |
Everyday implementation | Terra | Use Sol when risk or ambiguity is high |
Test generation | Terra | Use Luna for fully mechanical cases |
Multi-file change | Terra | Use Sol when the impact is broad |
Unfamiliar repository investigation | Sol | Use Terra for a high-level overview only |
Design review | Sol | Use Terra when criteria and review lenses are fixed |
High-volume mechanical work | Luna | Use Terra when case-by-case judgment is required |
The deciding factor should be the cost of failure, not the apparent complexity alone. Use Luna when correctness can be defined and checked clearly, Terra for normal development, and Sol when requirements are ambiguous, the blast radius is broad, or an undetected mistake would be expensive.
Frequently Asked Questions
Why does GPT-5.6 not appear in Codex?
Check whether the CLI is older than 0.144.0, the plan is eligible, rollout has reached the account, the correct account is signed in, and a workspace administrator has not restricted the model. Free and Go plans currently receive Terra in Codex, not all three models.
Can I change models during a Codex session?
Yes. Use /model, then verify the result with /status. For comparative testing, start a fresh session so every run receives equivalent conversation context.
Is using Sol all the time the best option?
OpenAI recommends Sol as the starting point when you are unsure. For well-specified work, however, Terra or Luna may produce a better overall balance of latency and usage. Measure human review and correction time alongside model quality before standardizing on one option.
Conclusion
GPT-5.6 requires Codex CLI 0.144.0 or later. Select Sol, Terra, or Luna at launch with -m, or change the active model interactively with /model.
The practical default is Luna for clear and repeatable tasks, Terra for everyday development, and Sol for complex, ambiguous, or high-consequence work. Keep reasoning effort constant during model comparisons, and record requirement success, usage, review effort, and human rework—not latency alone.
The best model is not necessarily the most capable one in isolation. It is the model that reaches the required quality while minimizing the team’s total time to a correct, reviewed result.