GPT-6 Sol (openai/gpt-6-sol) was listed in the Router One catalog on 2026-09-23, and every coding tool that accepts a custom OpenAI-compatible base URL can call it with one Router One key. Codex CLI reaches it over the Responses API; OpenCode, Cline, Kilo Code, Continue (no longer maintained per its README; final 2.x release 2026-06-19), Zed, Qwen Code and Crush reach it over Chat Completions; Goose sends a GPT-6 name to /v1/responses on its own. Claude Code is the exception: it only speaks the Anthropic Messages API, and Router One serves GPT ids on /v1/chat/completions and /v1/responses, never on /v1/messages — so a GPT-6 Sol request from Claude Code is rejected with HTTP 400 before any model runs.
This post is the tool-by-tool half of the GPT-6 Sol coverage: the model string each tool needs, where the base URL goes, which request path it produces, and the one number that matters in long agent sessions — the 272,000-token price line. The GPT-6 Sol API guide covers the API itself (curl, SDKs, endpoints, billing rules), and the GPT-6 Sol model page carries the live rate and tier boundaries.
What the catalog lists for GPT-6 Sol
As of the 2026-09-23 catalog read, openai/gpt-6-sol lists a 1,050,000-token context window, text and image input, and the chat, streaming, tool-calling and vision capability flags. As a GPT-family id it is served on POST /v1/chat/completions and natively on POST /v1/responses. It carries a whole-request price tier above 272,000 input tokens, so its model page shows two rate lines. The bare name gpt-6-sol is accepted as an alias of the full id.
Two things were not in the catalog on that date: GPT-6 Luna and any azure/gpt-6-sol channel id. As of the 2026-10-17 catalog, Router One lists azure/gpt-6-sol, a separately priced Azure channel product of the same base model with its own rates, and no plan tier lists azure/gpt-6-sol in the 2026-10-17 plan response; GPT-6 Luna is still not listed. As of the 2026-10-30 catalog, Router One lists GPT-6 Luna as openai/gpt-6-luna. On subscription plans, GPT-6 Sol is in the Premium models tier of Pro, Max and Ultra as of the 2026-10-06 plan response, so on a plan its calls draw that tier's shared allowance and calls beyond it bill the wallet. For the spec sheets side by side, see GPT-6 Sol vs GPT-6 Astra, GPT-6 Sol vs GPT-5.6 Sol and GPT-6 Sol vs Claude Sonnet 5.
Tool by tool: base URL, request path, model string
| Tool | Where the gateway goes | Request path for GPT-6 Sol | Model value | Note |
|---|---|---|---|---|
| Codex CLI | [model_providers.router] in ~/.codex/config.toml: base_url = "https://api.router.one/v1", wire_api = "responses" | /v1/responses | gpt-6-sol | The bare name Codex's own model list uses; config below |
| OpenCode | provider.router-one in opencode.json on @ai-sdk/openai-compatible, options.baseURL = /v1 URL | /v1/chat/completions † | router-one/openai/gpt-6-sol | List openai/gpt-6-sol under the provider's models |
| Cline, Kilo Code | API Provider "OpenAI Compatible" (Kilo Code: Providers → Custom provider → OpenAI Compatible), Base URL = /v1 URL | /v1/chat/completions † | openai/gpt-6-sol | Same three fields in both; Roo Code was shut down on 2026-05-15 (migration guide) |
| Cursor | Settings → Models → OpenAI API Key → Override OpenAI Base URL | Whichever path Cursor builds; both serve GPT-6 Sol † | openai/gpt-6-sol as a custom model | Unverified for GPT-6 Sol: Cursor's API-key docs (checked 2026-10-01) list only standard, non-reasoning OpenAI chat models |
| Continue | apiBase in ~/.continue/config.yaml, provider: openai | /v1/chat/completions with useResponsesApi: false † | openai/gpt-6-sol | The guide keeps the flag at false; no longer maintained per its README (final 2.x release 2026-06-19) |
| Zed | language_models.openai_compatible.router-one.api_url in settings.json | /v1/chat/completions † | openai/gpt-6-sol | max_tokens is the context window: 1050000 |
| Goose | OPENAI_HOST=https://api.router.one (host root, no /v1) | /v1/responses — Goose routes gpt-6 names there | GOOSE_MODEL=openai/gpt-6-sol | Set GOOSE_CONTEXT_LIMIT yourself |
| Qwen Code | OPENAI_BASE_URL in .qwen/.env | /v1/chat/completions † | OPENAI_MODEL=openai/gpt-6-sol | Or one modelProviders.openai entry |
| Crush | provider add router-one --type openai-compat --base-url https://api.router.one/v1 in crushrc | /v1/chat/completions † | router-one/openai/gpt-6-sol | --context-window must be a whole number |
| Claude Code | ANTHROPIC_BASE_URL=https://api.router.one | /v1/messages | Not possible | GPT ids are not served on Messages |
Every row except Claude Code ends on an endpoint that serves GPT-6 Sol, so the choice of tool does not change which model you can reach — it changes the request path, which in turn decides which Responses-only features are available. Each linked guide has the full setup for its tool; the sections below cover only what is specific to GPT-6 Sol.
† One limit comes from OpenAI, not from the tool: per OpenAI's GPT-6 Sol model page and GPT-6 guide (checked 2026-10-01), use the Responses API for function calling; Chat Completions supports function calling with GPT-6 Sol only when reasoning_effort is set to none. Coding agents send tools on most turns, so for agent work with GPT-6 Sol a tool whose row ends on /v1/responses — Codex CLI or Goose — follows OpenAI's guidance; on a Chat Completions row, OpenAI's rule allows function calls only with the reasoning effort set to none, so check whether the tool lets you set that before you rely on tool calls.
Codex CLI: one model line
Codex CLI speaks the Responses wire format, which Router One implements natively for GPT-family ids, so GPT-6 Sol is a one-line change from the config the Router One install script writes. This setup is for plan holders (Pro, Max, Ultra), where GPT-6 Sol counts against the Premium models allowance (as of the 2026-10-06 plan response). The full file, with the model line set to GPT-6 Sol:
# ~/.codex/config.toml
model = "gpt-6-sol"
model_provider = "router"
model_reasoning_effort = "high"
model_verbosity = "high"
web_search = "live"
[model_providers.router]
base_url = "https://api.router.one/v1"
env_key = "ROUTER_ONE_API_KEY"
env_key_instructions = "Create an API key at https://router.one/dashboard/api-keys and set the ROUTER_ONE_API_KEY environment variable."
name = "Router One"
wire_api = "responses"
export ROUTER_ONE_API_KEY=sk-your-router-one-key
codex
Four details specific to this model:
- Use the bare name.
gpt-6-solis the name Codex's own model picker uses, and Router One resolves it toopenai/gpt-6-sol. The Codex CLI 0.156.1 release notes (2026-09-23) add GPT-6 Sol to the model picker; on an older build, update withnpm install -g @openai/codexbefore relying on Codex's built-in defaults for this name. - Reasoning effort. The template sets
model_reasoning_effort = "high". OpenAI's GPT-6 Sol model page listsnone,low,medium(the default),high,xhighandmaxforreasoning.effort; Codex's configuration reference notes that the available levels depend on the model and the client, so stay within the levels the model page lists. - Review requests.
/reviewruns onreview_modelfromconfig.tomlwhen that is set, otherwise on the session model — here GPT-6 Sol. Requests forcodex-auto-reviewin Dashboard → Logs come from Auto-review, the reviewer agent that answers sandbox approval prompts whenapprovals_reviewer = "auto_review"(per the openai/codex source, rust-v0.159.3, checked 2026-10-01); that id is in the catalog but in no plan, so they bill to the wallet. The Codex and Responses API page explains it. - Same plan allowance. The install script writes
model = "gpt-5.6-sol". In the 2026-10-06 plan response, gpt-6-sol and gpt-5.6-sol are both in the Premium models tier of the Pro, Max and Ultra plans, so on a plan, switching this line keeps Codex's calls on the same shared allowance, and calls beyond it bill the wallet. Codex 0.156.1 and later may also propose that switch itself with a "Meet GPT-6 Sol" prompt at startup (per its bundled model list, re-checked against rust-v0.160.1 on 2026-10-06); to keep your current model, choose "Use existing model" in the prompt (accepting saves gpt-6-sol as your default model). If the current model is gpt-5.6-terra, a Mid-tier model, accepting moves Codex's calls to the Premium models allowance, which is smaller on every plan. The pricing page shows which ids each plan covers today.
Never add requires_openai_auth to this provider block: it makes Codex ignore env_key and open the OpenAI login flow instead.
The other tools in one block each
Every tool below takes the full catalog id openai/gpt-6-sol; where a tool prefixes its own provider id, the catalog id follows it unchanged.
OpenCode — add the model to the provider's models map and select it as router-one/openai/gpt-6-sol:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"router-one": {
"npm": "@ai-sdk/openai-compatible",
"name": "Router One",
"options": {
"baseURL": "https://api.router.one/v1",
"apiKey": "{env:ROUTER_ONE_API_KEY}"
},
"models": {
"openai/gpt-6-sol": { "name": "GPT-6 Sol (Router One)" }
}
}
},
"model": "router-one/openai/gpt-6-sol"
}
Cline, Kilo Code — in Cline, API Provider "OpenAI Compatible"; in Kilo Code 7.x, Providers → Custom provider with Provider API "OpenAI Compatible". Then Base URL https://api.router.one/v1, your key and model ID openai/gpt-6-sol. Both can fetch the catalog from the gateway once the URL and key are in place. Roo Code was shut down on 2026-05-15 and its final 3.54.0 build gets no further updates; the Roo Code migration guide moves the same three values to Cline, Zoo Code or Kilo Code.
Cursor — whether Cursor runs GPT-6 Sol on a custom key is unverified: its API-key docs (checked 2026-10-01) list only standard, non-reasoning OpenAI chat models. The setup to try is the override from the Cursor guide: Override OpenAI Base URL set to https://api.router.one/v1, your key, and openai/gpt-6-sol added as a custom model. Custom keys work only with chat models; Tab completion stays on Cursor's built-in models. If a chat turn does not appear in Dashboard → Logs, it did not run on your key.
Continue (no longer maintained per its README; final 2.x release 2026-06-19) — one models entry with provider: openai, model: openai/gpt-6-sol, apiBase: https://api.router.one/v1 and useResponsesApi: false, as in the Continue guide.
Zed — in the router-one provider block, add { "name": "openai/gpt-6-sol", "display_name": "GPT-6 Sol", "max_tokens": 1050000 } to available_models; the key goes in the Agent Panel settings or the ROUTER_ONE_API_KEY variable, never in settings.json.
Goose — GOOSE_PROVIDER=openai, OPENAI_HOST=https://api.router.one, GOOSE_MODEL=openai/gpt-6-sol. With the base path at its default, Goose sends names that look like gpt-5, gpt-6 or o-series models to /v1/responses, and openai/gpt-6-sol qualifies; the gateway serves that path natively for GPT-6 Sol, so nothing needs changing. Goose may not recognize the name for its own context default, so set GOOSE_CONTEXT_LIMIT explicitly (see the next section).
Qwen Code — OPENAI_API_KEY, OPENAI_BASE_URL=https://api.router.one/v1 and OPENAI_MODEL=openai/gpt-6-sol in .qwen/.env.
Crush — keep the provider block from the Crush guide and add the model with a whole-number window:
model add router-one/openai/gpt-6-sol --name "GPT-6 Sol (Router One)" --context-window 1050000
model large router-one/openai/gpt-6-sol
Context window numbers per tool
Several tools ask you for numbers the gateway does not send them. For GPT-6 Sol the catalog lists a 1,050,000-token context window; the model page shows the window rounded to "1.05M", and fields that need an integer take 1050000. The window counts input and output together — OpenAI's model page lists 922,000 tokens as the maximum input — so leave headroom rather than letting a tool fill the whole window with history.
| Tool | Setting | What it controls |
|---|---|---|
| Codex CLI | model_context_window | The window Codex assumes for the model |
| Zed | max_tokens per model | The context window Zed assumes for that model |
| Goose | GOOSE_CONTEXT_LIMIT | Goose's usage display and compaction; not what the gateway accepts |
| Crush | --context-window on model add | When Crush summarizes; without it Crush never summarizes |
These are client-side settings. A lower value only makes the tool compact or summarize earlier — which, for this model, is also the lever for the price line below.
The 272,000-token line in long agent sessions
A coding agent resends the system prompt, the tool definitions, the whole conversation and every tool result on each turn, so input grows with the session. For GPT-6 Sol, the total input of one request selects the price tier: exactly at 272,000 tokens the lower line still applies, and once a request is strictly above it, the higher line applies to the whole request — output included, not only the tokens past the threshold. Cache reads count toward that total. Monthly volume plays no part. The pricing methodology states the rule and the cost calculator applies it per request.
In practice, the late turns of a long session can each cost noticeably more than the early ones, with nothing changing in the tool. Three ways to keep that visible and bounded:
- Watch input tokens per request. Dashboard → Logs shows input tokens, cost and status for every turn; sort a session by time and the crossing point is obvious (per-request observability).
- Compact before the line. In Crush, a window above 200,000 is summarized when 20,000 tokens remain, so
--context-window 290000summarizes at about 270,000. In Goose, a lowerGOOSE_CONTEXT_LIMITcompacts earlier. Compaction is itself a model request, it replaces older turns with a summary, and a single large tool output can still push one request over the line — you trade context for cost. - Start a new session per task. A fresh session resets the resent history; it is the simplest way to stay in the lower tier.
One key per tool, each with a cap
Create a separate key for each tool — one for Codex CLI, one for Cursor, one for Cline — and give each a maxSpend cap. When a key reaches its cap, its next wallet-billed request gets HTTP 402, so that tool cannot charge your wallet past the number you chose, and your other keys keep working. Filtering Logs by key then answers "what did GPT-6 Sol cost in Codex CLI this week" without a spreadsheet (per-key cost tracking). Retryable upstream failures are absorbed by automatic fallback across the candidate routes for the same model, so a tool sees fewer transient errors mid-session.
The model page shows GPT-6 Sol's live rate beside the official list rate; across the catalog, pricing starts as low as 10% of official provider list prices (up to 90% off) on select models. Top up with a card or Alipay through one hosted checkout, or with USDT/USDC on six chains (Tron, BSC, Ethereum, Polygon, Base, Arbitrum). No US credit card required, and every tool above reaches the gateway from mainland China without a VPN.
Why Claude Code cannot run GPT-6 Sol
Claude Code sends every request to ANTHROPIC_BASE_URL plus /v1/messages, the Anthropic Messages API. On Router One that endpoint serves the currently listed Claude-family and DeepSeek ids; GPT ids are served on Chat Completions and Responses only. Setting ANTHROPIC_MODEL=gpt-6-sol therefore gets HTTP 400 invalid_request_error before any model is called, and the error message names the endpoints that do serve the id (error codes).
Two setups instead: keep Claude Code on a Claude id with the Claude Code setup, and run GPT-6 Sol with the same key in a client that sends it to /v1/responses — Goose, or Codex CLI on a Pro, Max or Ultra plan, where GPT-6 Sol counts against the Premium models allowance (as of the 2026-10-06 plan response); tools on the Chat Completions rows of the table fall under the † note above. OpenCode vs Claude Code vs Codex CLI compares the three terminal agents on one key, and Cline vs Cursor vs Claude Code does the same for the editor side.
FAQ
Can I use GPT-6 Sol in Claude Code through Router One? No. Claude Code only calls /v1/messages, and Router One serves GPT ids on /v1/chat/completions and /v1/responses, not on Messages. A request for gpt-6-sol from Claude Code returns HTTP 400 invalid_request_error before any model runs. For agent work with GPT-6 Sol, use a client that sends it to /v1/responses — Goose, or Codex CLI on a Pro, Max or Ultra plan, where GPT-6 Sol counts against the Premium models allowance (as of the 2026-10-06 plan response) — and keep Claude Code on a Claude or DeepSeek id; the Chat Completions rows of the table carry the † note.
Which model string do I put in Codex CLI?
gpt-6-sol, the bare name. It is the name Codex's own model list uses, and Router One resolves it to openai/gpt-6-sol. The rest of the config.toml stays as the Router One install script writes it: model_provider router, base_url https://api.router.one/v1, env_key ROUTER_ONE_API_KEY and wire_api responses. This model line is for plan holders (Pro, Max, Ultra), where GPT-6 Sol counts against the Premium models allowance (as of the 2026-10-06 plan response).
Is GPT-6 Luna in the Router One catalog? Not on 2026-09-23, when this guide was published. As of the 2026-10-30 catalog, Router One lists it as openai/gpt-6-luna; its model page at /models/gpt-6-luna carries the live rates. This guide covers GPT-6 Sol only; check the catalog again before switching, because ids are added and removed over time. For GPT-6 Luna itself, see the GPT-6 Luna API guide.
Do GPT-6 Sol calls count against my subscription plan? Yes, as of the 2026-10-06 plan response: GPT-6 Sol is in the Premium models tier of Pro, Max and Ultra, the same tier as GPT-5.6 Sol, the model in the Router One Codex install template. Each GPT-6 Sol request draws 1 request from that shared allowance, 2 when its total input is strictly above 272,000 tokens, and calls beyond the allowance bill the wallet per token. The /pricing page shows the plan model lists that apply today.
Why did requests late in a long agent session cost more? GPT-6 Sol carries a whole-request tier: once a single request's total input, cache reads included, is strictly above 272,000 tokens, the higher rate line applies to the whole request, output included. Agents resend the growing history on every turn, so late turns cross the line first. Start a new session per task (or, in tools such as Crush and Goose, let the tool summarize earlier), and watch input tokens per request in Dashboard → Logs.
Goose sent GPT-6 Sol to /v1/responses although I never changed the base path. Is that a problem? No. With the default base path, Goose sends gpt-5, gpt-6 and o-series names to /v1/responses and everything else to /v1/chat/completions. Router One serves /v1/responses natively for GPT-6 Sol, so both paths work; confirm the status of the first turn in Dashboard → Logs.
What context window should I enter for GPT-6 Sol? The catalog lists 1,050,000 tokens, so fields that need a whole number take 1050000. The window counts input and output together, and a lower value only makes the tool compact earlier, which also keeps long sessions below the 272,000-token price line.
Next steps
- Read the GPT-6 Sol API guide for curl and SDK calls, endpoints and the billing rules.
- For the newer GPT-6.1 Sol, which per OpenAI (checked 2026-10-01) takes tool calls only on the Responses API, read the GPT-6.1 Sol API guide.
- Compare the live spec sheets: GPT-6 Sol vs GPT-6 Astra, GPT-6 Sol vs GPT-5.6 Sol and GPT-6 Sol vs Claude Sonnet 5.
- Set up Codex CLI with the one-line install on Codex CLI in China, or pick another tool from all integration guides.