All writing

Three Models, Three Jobs: My GPT-6 Codex Setup

September 29, 2026 update: I have since moved my main Codex default from GPT-6 Sol at medium to GPT-6.1 Sol at high. Why I moved my Codex default to GPT-6.1 Sol High explains the benchmark trade-off and how I updated the routing rules.

In July, I wrote about using Codex as a small model team: GPT-5.6 Sol at high for the main session, Terra at high for deep reasoning, and Luna at high for focused implementation. Today I moved that setup to GPT-6 and changed the effort defaults to match the jobs I actually want each role to do.

The new local default is GPT-6 Sol at medium. It plans, chooses what to delegate, and brings the pieces back together. The two specialist roles are GPT-6 Astra at high and GPT-6 Luna at high. That gives me one steady coordinator, one expensive judgment call I can invoke deliberately, and one focused worker for work with a clear shape.

My GPT-6 Codex roles
RoleModelEffortWhen I use it
Main sessionGPT-6 SolMediumPlanning, routing, and synthesis.
deep-reasonerGPT-6 AstraHighHard architecture, unclear bugs or race conditions, algorithms, and high-risk review.
fast-workerGPT-6 LunaHighScoped implementation, tests, formatting, and clear small changes. Mechanical stages can use low or medium.

High is a role choice, not a general default

The model guidance says to start with Sol at medium, Luna at high, and Astra at low. My Astra role is the deliberate exception: it is reserved for hard tasks where I want more analysis and checking, so that agent starts at high. The point is not to run every turn at high. A Sol subagent handles routine multi-file implementation at medium or high, depending on the care it needs; a tiny typo or obvious rename does not need a delegated agent at all.

For a mechanical stage I do delegate, I can set Luna to low or medium explicitly. The reusable role remains high, while the individual call reflects how much the step needs. My local instructions and role descriptions help route work toward those lanes. They are instructions for this setup, not a universal optimizer that automatically discovers the best model for every task.

The price ladder, in two different systems

The relative ladder is unusually clear. On the standard short-context API rate, Astra is five times Sol and Sol is twenty times Luna for both input and output. Codex credits follow those same ratios. The numbers below are per million tokens; API dollars are usage billing, while Codex credits are plan usage. They are separate systems, and neither table tells me the cost of a completed task.

GPT-6 Standard rates per 1M tokens
ModelAPI usage billingCodex plan credits
InputOutputInputOutput
GPT-6 Astra$10$502501,250
GPT-6 Sol$2$1050250
GPT-6 Luna$0.10$0.502.512.5

Rates checked in September 2026 against the OpenAI API pricing and Codex pricing pages. The API dollar figures are the standard short-context tier (up to 272K input context), excluding cached input; the Codex page lists credits without a separate short- or long-context rate. Prices and credit rates can change, and credits are not dollar prices.

More routing, less guessing

I am not claiming this is the optimal assignment, or that a price ratio predicts quality per task. I have not run a benchmark that would support either claim. This is a set of defaults meant to make decisions legible: spend more reasoning on the few tasks that need it, keep ordinary coordination at medium, and use Luna where the work is bounded and repeatable.

I still reserve xhigh for a genuinely hard single task. Ultra is for work that can be split into meaningful parallel pieces, where orchestration is worth the overhead. Max is not part of this setup. Most of the time, the useful decision is simpler: name what kind of work this is, choose the matching role if one is needed, and keep the model and effort explicit when delegating.