Skip to content
AI Primer
workflow

Sol-advisor routes Codex tasks across GPT-5.6 Sol, Luna, and Terra

Sol-advisor routes Codex tasks through GPT-5.6 Sol, Luna, and Terra, while users compare Luna Max as a lower-cost reasoning setting. Early reports say small routing tests need larger benchmarks.

7 min read
Sol-advisor routes Codex tasks across GPT-5.6 Sol, Luna, and Terra
Sol-advisor routes Codex tasks across GPT-5.6 Sol, Luna, and Terra

TL;DR

  • OpenAI cut GPT-5.6 Luna by 80% to $0.20 per 1M input tokens and $1.20 per 1M output tokens, cut Terra by 20% to $2/$12, and kept Sol pricing unchanged while adding Fast mode, according to OpenAI's announcement and sama's price list.
  • The Codex workflow meme became Luna Max: Max reasoning is off by default, and daniel_mac8's Max reasoning post claimed Luna Max lands around Sol Medium or Opus 5 Medium capability at one-sixth the cost.
  • Sol-advisor packages the routing pattern as a Codex plugin: Sol High orchestrates, Luna Max handles routine implementation, Terra Max handles harder implementation, and a fresh Sol reviewer checks the diff, as daniel_mac8's sol-advisor demo showed.
  • Early mixed-routing evidence stayed thin: all-Sol passed the same test faster and cheaper than a mixed Grok/Sol setup in kevinkern's routing test, while kevinkern's follow-up said he could not see an advantage yet.
  • Luna-as-subagent has a product boundary: pvncher's warning said Multi agents v2 requires proactive inter-agent communication that only Sol and Terra do well, and pvncher's Luna workaround pointed users toward thread orchestration instead.

The OpenAI efficiency writeup says GPT-5.6 Sol in Codex rewrote production kernels in Triton and Gluon, cutting end-to-end serving costs by 20%, and improved speculative decoding enough to raise token-generation efficiency by more than 15%. The sol-advisor README is stricter than the tweet: byte-for-byte role checks, routing metadata checks, a five-part spec, and a reviewer lane that returns ship, fix-first, or rethink. The OpenAI price post also says Free and Go users get Terra in Codex, while Plus, Pro, Business, and Enterprise users can choose Terra and Luna.

What shipped

OpenAI framed the update as a price-performance release rather than a new model release. The practical change for Codex users is credit accounting: subscription prices and quota budgets stay fixed, while Terra and Luna consume fewer credits.

  • Luna: the new API price is $0.20 per 1M input tokens and $1.20 per 1M output tokens in OpenAI's price post.
  • Terra: OpenAI's price post puts the new API price at $2 per 1M input tokens and $12 per 1M output tokens.
  • Sol: OpenAI's thread said Fast mode gives GPT-5.6 Sol up to 2.5x Standard speed at 2x the Standard price, with no intelligence change.
  • Subscriptions: WesRoth's subscription note said ChatGPT and Codex subscription prices and quota budgets remain unchanged, but Terra and Luna now consume fewer credits.
  • Auto-review: OpenAI said in its launch thread that auto-review in ChatGPT and Codex CLI moves from GPT-5.4 to GPT-5.6 Luna, with expected cost about 10x lower.

Artificial Analysis treated the move as a cost-axis shift, not a capability-axis shift. Artificial Analysis said Luna cost per task fell 80%, Terra fell 20%, and Terra remained behind Luna and Sol on its Pareto frontier.

Luna Max in Codex

The highest-signal Codex detail was buried in a settings menu: Max reasoning was off by default. After the cut, the cheap setting became a cheap high-effort setting.

Community usage reports clustered around mechanical implementation work:

  • Lint fixes, unit tests, and dependency updates were the Luna sweet spot in haydenbleasel's task list.
  • A Plus-plan comparison from Hangsiin claimed Luna's allowance on the $20 plan was close to Sol's allowance on the $200 Pro plan.
  • On r/OpenAI, a Luna Max post claimed Luna Max felt similar to Sol 5.6 Medium while barely moving the usage needle.
  • For coding against DeepSeek V4 Flash, HCSolakoglu's coding test said Luna produced less buggy code and hallucinated less, while DeepSeek remained far cheaper.

The pattern was volume work first, not frontier judgment first. That is why the first serious workflows put Sol above Luna rather than replacing Sol with Luna.

Sol-advisor

The sol-advisor repo turns the routing pattern into a Codex-native workflow. Its lanes are explicit:

  1. Orchestrator: GPT-5.6 Sol High handles requirements, architecture, decomposition, routing, and acceptance.
  2. Routine implementation: GPT-5.6 Luna Max handles mechanical, repeatable, fully specified work.
  3. Harder implementation: GPT-5.6 Terra Max handles context-heavy, higher-risk, or wider-blast-radius work.
  4. Final review: a fresh GPT-5.6 Sol High reviewer checks the actual diff and verification evidence.

The README's more useful detail is the guardrail system. Sol writes a five-part spec for each implementation: objective, file ownership, interfaces, constraints, and verification. The plugin then checks companion role files, native spawn metadata, model and effort pins, sandbox policy, and reviewer permissions before accepting the lane.

The reviewer is fresh-context Sol, not cross-vendor review. The sol-advisor README says that catches conversational assumptions, but it does not make the review independent of the GPT-5.6 family.

Threads versus subagents

Luna routing ran into a Codex product boundary. pvncher's Luna workaround said Luna is not Multi agents v2 compatible, which is required for native subagent use.

The distinction matters because the workaround changes the collaboration model:

  • Native subagents: pvncher said in the warning that Multi agents v2 requires proactive inter-agent communication, which only Sol and Terra do well.
  • Thread orchestration: pvncher's workaround said users can launch standalone Luna threads and wait for them.
  • CLI boundary: pvncher's CLI note said thread orchestration works in the app, not the CLI.
  • Delegation semantics: pvncher's follow-up described threads as pure delegation and subagents as collaboration.

Daniel's plugin found the same seam from the builder side. daniel_mac8's workaround said the practical route was a custom agent pinned to Luna Max, with Sol routing to that agent rather than spawning a Luna subagent.

Small routing tests

Kevin Kern tested a mixed Grok/Sol workflow against an all-Sol 5.6 Medium baseline. The screenshot's result was small but tidy:

  • Time to completion: 23m04s for mixed Grok/Sol, 12m36s for all-Sol.
  • Child calls: 10 for mixed Grok/Sol, 4 for all-Sol.
  • Review-driven fix passes: 3 for mixed Grok/Sol, 1 for all-Sol.
  • Estimated cost: $2.6011 for mixed Grok/Sol, $2.1827 for all-Sol.
  • Final result: PASS for both.

Kern kept the caveat attached. his follow-up said a few examples do not prove much, and another reply said he could not see an advantage yet.

That pushed the useful question from model selection into eval design. mattlam_'s reply called for thousands of tasks and cases, while cwolferesearch on agent evals explained why agent benchmarks carry more variance: they grade full trajectories, tool calls, environment state, tokens, latency, and final outcomes.

Harness economics

OpenAI's efficiency writeup gives the clean systems version: Codex and ChatGPT Work use a Rust agentic harness that controls context, tools, and repeated work. It says tool output is capped at 10,000 tokens by default, model-visible history is append-only to preserve prompt caching, and tools are presented in deterministic order.

Practitioners landed on the same axis from different angles:

  • RampLabs said its SWE-Bench comparison found DeepSeek V4 Flash ran at 3x Luna's cost per task, spent nearly 3x longer in the harness, and took more turns on every task.
  • aibuilderclub_ on tool output said one repo task used 38K tokens with plain grep and 11K with a structural index in front of it, with the same call sites found.
  • swyx argued that dollars per input and output token had already lost relevance next to dollars per task.
  • teortaxesTex's cache table warned that Luna's cache reads, long-context prices, and cache-write billing can bite in long agentic sessions with hundreds of tool calls.

The new price floor made routing exciting. The harness still decides how much of that floor survives contact with a real task.

Where Luna showed up

The cut propagated into tools almost immediately. code's update said GPT-5.6 Luna and Terra were available in Code, and opencode's post said Luna was available in OpenCode Go.

Simon Willison moved two projects in public. simonw's Datasette Agent post said he switched a Datasette Agent instance from Gemini 3.1 Flash-Lite to Luna because Luna was cheaper after the cut. The LLM 0.32rc2 release changed LLM's default model for users without a configured default from GPT-4o mini to GPT-5.6 Luna, while leaving commands to switch back to 4o mini or down to GPT-5 nano.

Further reading

Discussion across the web

Where this story is being discussed, in original context.

On X· 8 threads
TL;DR3 posts
What shipped8 posts
Luna Max in Codex3 posts
Sol-advisor3 posts
Threads versus subagents5 posts
Small routing tests6 posts
Harness economics5 posts
Where Luna showed up2 posts
·
Other sources· 1 post

llm 0.32rc2

Release: llm 0.32rc2 Hot on the heels of RC1, this fixes a dependency issue and also adds two neat new features: The default model for users who have not set their own default is now GPT-5.6 Luna. It was previously GPT-4o mini. Luna is a much better and more recent model, albeit slightly more expensive - $0.20 per million input tokens and $1.20 per million output tokens, compared to $0.15/$0.60 for 4o mini. You can switch back to 4o mini using llm models default gpt-4o-mini, or switch to GPT-5 nano, an even cheaper default model ($0.05/$0.40), using llm models default gpt-5-nano. #1576 New llm openai endpoint command for running prompts, chats and model listings against arbitrary OpenAI-compatible endpoints without first configuring a model. These calls are not logged. #1565 The llm openai endpoint command is really cool. I got frustrated at the lack of an obvious CLI tool for trying out prompts against arbitrary OpenAI Chat Completions imitation endpoints, so I decided to add that to LLM itself. You don't even have to install LLM to use this. Here's a uvx one-liner for running a prompt - with tools - against an LM Studio local model: uvx --pre llm openai endpoint http://127.0.0.1:1234/v1 \ T llm_version -T llm_time --td \ -m google/gemma-4-31b 'what is the current LLM version? And the time?' Output here. Tags: llm, uv, lm-studio

Share on X