Field guide / 24 min
Plan Codex work by model, effort, and scope
Preserve session continuity, then choose GPT-6.1 Sol, Astra, or Luna without changing the permission boundary.
Model-aware planning is more than selecting the largest model. Keep the CLI that already holds the repository and conversation context, map each task to a role, select only an effort advertised by that model, and keep subagent orchestration separate from single-task depth. Codex configuration still resolves by scope, while model access can drift by release, account, sign-in method, plan, and rollout—and retired model IDs must be replaced before scripts depend on them.
Verified terminal sequence
- ›
/model - ›
/status - $
codex -p deep-review - $
codex -m gpt-6.1-sol -s workspace-write "<GOAL>" - $
codex exec -m gpt-6-astra -c 'model_reasoning_effort="low"' -s read-only --ephemeral "<GOAL>" - $
codex exec -m gpt-6-luna -c 'model_reasoning_effort="high"' -s read-only --ephemeral "<GOAL>"
Working principles
Continuity first
Keep the active Codex session for normal repository work. Switch CLI only for a concrete native workflow or independent review benefit that exceeds the cost of rebuilding context.
Roles before rankings
In the Codex CLI 0.163.0 catalog reviewed on 2026-10-21, GPT-6.1 Sol is the recommended workhorse for complex coding and agentic work, GPT-6 Astra is the strongest choice for the hardest end-to-end work, and GPT-6 Luna handles clear, repeatable, high-volume tasks. GPT-6 Sol is the previous-generation workhorse, and GPT-5.6 Sol, Terra, and Luna remain older options during the rollout. These are routing roles, not a timeless benchmark ranking.
Reasoning is not authority
Changing model, native effort, max, or ultra never upgrades sandbox, approval policy, writable roots, network access, or external-action authority, and choosing a model does not grant access to it. Preserve or narrow the active permission boundary.
Catalogs are account-scoped snapshots
Use /model and /status before launch. Availability, defaults, context limits, quotas, and supported effort vary by release, plan, sign-in method, workspace settings, and rollout, so a dated catalog is evidence—not entitlement.
Field procedure
- 01
Inspect live state before choosing
Run /model and /status in the active account. The 2026-10-21 review of Codex CLI 0.163.0 lists gpt-6.1-sol (the bundled default), gpt-6-astra, gpt-6-sol, gpt-6-luna, and the older gpt-5.6-sol, gpt-5.6-terra, and gpt-5.6-luna, but the picker shows only models available to your account and workspace. Accounts approved for the Daybreak cyber access program may also see gpt-daybreak-blue-latest; treat it as an access-program model, not a general default. Your live catalog is authoritative.
- 02
Match the task to a model role
Start with GPT-6.1 Sol for ambiguous architecture, hard debugging, security reasoning, and everyday edit-test-review work; the official guide positions it as near-Astra performance at lower cost. Choose GPT-6 Astra when a task needs the strongest capability across many steps and tools. Use GPT-6 Luna for clear extraction, classification, transformation, inventory, and other repeatable work where you already know what a good result looks like. Keep the current model when the expected gain is smaller than the context-switch cost.
- 03
Choose only supported native effort
The captured GPT-6.1 Sol, GPT-6 Astra, and GPT-6 Sol records support low, medium, high, xhigh, max, and ultra; GPT-6 Luna supports low through max but not ultra. Official starting points are the client default for GPT-6.1 Sol, high for Luna, and low for Astra (shown as Light in other clients). Use max for deeper single-task depth; ultra is provider-native subagent orchestration for work that splits into meaningful parallel parts, not a stronger synonym for max. Most tasks need neither. In the TUI, open /model, choose the model, then select More reasoning… to see the Max or Ultra options it supports.
- 04
Launch with explicit safe boundaries
For normal edits, run gpt-6.1-sol at its default effort with workspace-write. For read-only analysis of the hardest problems, start gpt-6-astra at model_reasoning_effort="low" and raise it only when the task needs more planning or checking; for read-only mechanical work, use gpt-6-luna at "high". Keep the TOML value quoted. In Codex, -p/--profile selects a profile—it never means print, prompt, or non-interactive execution; use codex exec for headless work.
- 05
Ask the Knowledge MCP for the dated catalog
In an MCP client, call worlds_list_cli_models with {"products":["codex"]}. Read the returned availability, supported_efforts, constraints, capture date, and source, then compare it with /model before executing a selector.
- 06
Generate an advisory work plan
Call worlds_plan_cli_work with {"task":"<GOAL>","current_cli":"codex","available_clis":["codex"],"workstreams":[{"id":"implementation","goal":"<GOAL>","execution_intent":"may-edit"}],"strategy":"continuity-first","risk_tolerance":"low","execution_environment":"local-workspace","orchestration_mode":"none","require_independent_review":false} only when edits are already authorized. Omit that intent for read-only work, which is the default. Treat assignments and commands as reviewable advice: the tool does not launch a CLI or grant permissions.
- 07
Replace retired model IDs
GPT-5.3-Codex-Spark (gpt-5.3-codex-spark) retired on 2026-09-14. With ChatGPT sign-in, gpt-5.4 and gpt-5.4-mini retired from Codex on 2026-08-31 (replace them with gpt-6-sol and gpt-6-luna where available), and gpt-5.5 retired on 2026-10-14 (replace it with gpt-6.1-sol where your plan includes it). API-key sessions follow API model availability and were not affected by the gpt-5.4 and gpt-5.5 Codex retirements. Search scripts, profile files, custom agents, and managed configuration for old IDs, switch to a model /model lists, and rerun verification.
- 08
Fallback without inventing access
If a named model or effort is unavailable, re-open /model, use a supported live choice or omit the explicit model override, and keep the existing sandbox and approval policy. Record the fallback and rerun the task-specific verification.
- 09
Persist only durable configuration
Personal defaults belong in user config, shared trusted-repository behavior in project config, specialized behavior in a separate profile file, and one-time model experiments on the command line.
PASS / FAIL
Acceptance checklist
- The active session was retained unless a concrete switch benefit was documented.
- The selected model exists in /model for this account.
- The selected native effort is supported by that exact model.
- max and ultra have not been treated as interchangeable.
- Model selection did not widen permissions.
- No script, profile, or custom agent still selects a retired model ID.
- MCP output was checked against the live catalog before launch.
- The command uses quoted TOML and the intended sandbox.
- Fallback and verification are explicit.
WATCH / REJECT
Failure patterns
- Treating GPT-6.1 Sol, Astra, or Luna as permanent account entitlements.
- Using ultra on Luna or using orchestration when the task is not independently decomposable.
- Assuming higher effort grants tools, network, or write access.
- Leaving gpt-5.5 or gpt-5.4 in scripts that run with ChatGPT sign-in.
- Using codex -p as if it were a print or prompt flag.
- Copying an MCP command without checking the local CLI and effective policy.
- Using the removed legacy profiles table.