Skip to content
Router One
Back to Blog

GPT-6 Sol in Codex CLI, Cursor, Cline and OpenCode: Setup

PublishedByRouter One TeamHow we measure

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

ToolWhere the gateway goesRequest path for GPT-6 SolModel valueNote
Codex CLI[model_providers.router] in ~/.codex/config.toml: base_url = "https://api.router.one/v1", wire_api = "responses"/v1/responsesgpt-6-solThe bare name Codex's own model list uses; config below
OpenCodeprovider.router-one in opencode.json on @ai-sdk/openai-compatible, options.baseURL = /v1 URL/v1/chat/completionsrouter-one/openai/gpt-6-solList openai/gpt-6-sol under the provider's models
Cline, Roo Code, Kilo CodeAPI Provider "OpenAI Compatible" (Kilo Code: Providers → Custom provider → OpenAI Compatible), Base URL = /v1 URL/v1/chat/completionsopenai/gpt-6-solSame three fields in all three
CursorSettings → Models → OpenAI API Key → Override OpenAI Base URLWhichever path Cursor builds; both serve GPT-6 Solopenai/gpt-6-sol as a custom modelCovers chat and Agent models only; paid Cursor plans only
ContinueapiBase in ~/.continue/config.yaml, provider: openai/v1/chat/completions with useResponsesApi: falseopenai/gpt-6-solThe guide keeps the flag at false
Zedlanguage_models.openai_compatible.router-one.api_url in settings.json/v1/chat/completionsopenai/gpt-6-solmax_tokens is the context window: 1050000
GooseOPENAI_HOST=https://api.router.one (host root, no /v1)/v1/responses — Goose routes gpt-6 names thereGOOSE_MODEL=openai/gpt-6-solSet GOOSE_CONTEXT_LIMIT yourself
Qwen CodeOPENAI_BASE_URL in .qwen/.env/v1/chat/completionsOPENAI_MODEL=openai/gpt-6-solOr one modelProviders.openai entry
Crushprovider add router-one --type openai-compat --base-url https://api.router.one/v1 in crushrc/v1/chat/completionsrouter-one/openai/gpt-6-sol--context-window must be a whole number
Claude CodeANTHROPIC_BASE_URL=https://api.router.one/v1/messagesNot possibleGPT 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-sol is the name Codex's own configuration reference and model picker use, and Router One resolves it to openai/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 with npm install -g @openai/codex before 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 lists none, low, medium (the default), high, xhigh and max for reasoning.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_model in config.toml sets the model /review uses. If Logs show requests for codex-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.

GooseGOOSE_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 CodeOPENAI_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.

ToolSettingWhat it controls
Codex CLImodel_context_windowThe window Codex assumes for the model
Zedmax_tokens per modelThe context window Zed assumes for that model
GooseGOOSE_CONTEXT_LIMITGoose's usage display and compaction; not what the gateway accepts
Crush--context-window on model addWhen 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:

  1. 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).
  2. Compact before the line. In Crush, a window above 200,000 is summarized when 20,000 tokens remain, so --context-window 290000 summarizes at about 270,000. In Goose, a lower GOOSE_CONTEXT_LIMIT compacts 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.
  3. 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

Related canonical pages

This article belongs to the Codex CLI China cluster. These pages are the commercial page, setup docs, evidence source, and trust references.

Related reads