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, Roo Code, Kilo Code, Continue, 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, a 128,000-token output limit, 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.
Three things are not in the catalog on that date: GPT-6 Luna, any azure/gpt-6-sol channel id, and a subscription quota for GPT-6 Sol — no Pro, Max or Ultra tier lists it in the 2026-09-23 plan response, so its calls are billed per token from 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, Roo Code, 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 all three |
| 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 | Covers chat and Agent models only; paid Cursor plans only |
| 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 |
| 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.
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. 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 configuration reference and model picker use, 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.
review_modelinconfig.tomlsets the model/reviewuses. If Logs show requests forcodex-auto-review, that is Codex's review line; the id is in the catalog, and the Codex and Responses API page explains it. - Wallet, not plan quota. The install script writes
model = "gpt-5.6-sol", which is in the Premium models tier of the Pro, Max and Ultra plans. GPT-6 Sol is in no plan tier as of 2026-09-23, so on a plan, switching this line moves Codex's calls from plan quota to wallet billing. 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, Roo Code, Kilo Code — API Provider "OpenAI Compatible", Base URL https://api.router.one/v1, your key, Model ID openai/gpt-6-sol. Kilo Code can also fetch the catalog from the gateway once the URL and key are in place.
Cursor — enable Override OpenAI Base URL, set it to https://api.router.one/v1, paste the key, click Verify, and add openai/gpt-6-sol as a custom model. The key covers the chat and Agent models you pick; Tab autocomplete, Auto and Cursor's own Composer models stay on Cursor's side. If a chat turn does not appear in Dashboard → Logs, it did not run on your key.
Continue — 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 and output numbers per tool
Several tools ask you for numbers the gateway does not send them. For GPT-6 Sol the catalog values are a 1,050,000-token context window and a 128,000-token output limit; 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 request gets HTTP 402, so that tool cannot spend past the number you chose, and your other keys keep working. Filtering Logs by key then answers "what did GPT-6 Sol cost in Cursor 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 working setups instead: keep Claude Code on a Claude id with the Claude Code setup, and run GPT-6 Sol in Codex CLI or OpenCode with the same key. 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. Use Codex CLI, OpenCode, Cline or another tool from the table for GPT-6 Sol, and keep Claude Code on a Claude or DeepSeek id.
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.
Codex offers GPT-6 Luna in its model picker. Does that work through Router One? Not as of 2026-09-23: gpt-6-luna is not in the Router One catalog, so a request for it is rejected. Pick an id that /models lists, and check the catalog again before switching, because ids are added and removed over time.
Do GPT-6 Sol calls count against my subscription plan? Not as of the 2026-09-23 plan response: no Pro, Max or Ultra tier lists GPT-6 Sol, so its calls are billed per token from the wallet. GPT-5.6 Sol, the model in the Router One Codex install template, is in the Premium models tier of all three plans. 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 path and 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, and the output limit is 128,000. 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.
- 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.