快速开始
按客户端分节:Claude Code、Codex CLI、opencode、通用 OpenAI SDK。每段命令都可以直接复制运行,只需把示例 key 换成你自己的。
~/.claude、Codex 的 ~/.codex/config.toml、opencode 的 opencode.json),配置文件里的 provider 设置通常优先于环境变量:如果你之前配过,导出环境变量不会生效,得去那里改 base_url 与鉴权。具体字段名以各客户端自己 的文档为准 —— 它们的配置格式变得比我们快,我们不在这里复述一份会过期的字段表。0. 先建一个 API Key
登录后进入 令牌管理创建。Key 以 ak- 开头,只在创建时完整显示一次,之后只保留后 4 位。
建议在创建时就设好该 Key 的价格上限与允许模型:Key 级策略与账号级策略合并时更严的一方胜出,因此收紧 Key 不会被账号级设置放开。
cc-switch 一键导入 —— 本页只覆盖 macOS / Linux。1. Claude Code
Claude Code 走 anthropic 协议,打 POST /v1/messages。 base_url 是根地址,不带 /v1。
export ANTHROPIC_BASE_URL=https://api.akrouter.com export ANTHROPIC_AUTH_TOKEN=ak-xxxxxxxxxxxxxxxxxxxxxxxx claude
想常驻的话把两行 export 写进 ~/.zshrc 或 ~/.bashrc。 若你在 ~/.claude 的配置里已经写过 base_url 或 token,那份配置通常盖过环境变量 —— export 完没生效先去那里看一眼。
POST /v1/messages/count_tokens 估算上下文占用, 以决定何时压缩历史。这个端点我们实现了 —— 缺了它,Claude Code 会退化到本地粗估, 表现为上下文压缩时机不准。2. Codex CLI
Codex 走 openai_responses 协议,打 POST /v1/responses。 base_url 带 /v1(与 Claude Code 相反,别抄错)。
Codex 不能只靠环境变量接入:它按 ~/.codex/config.toml 里的 provider 定义决定打哪个 wire API,凭据单独读 ~/.codex/auth.json。 两个文件缺一不可。
# ~/.codex/config.toml
model_provider = "OpenAI"
model = "gpt-5.5"
disable_response_storage = true
[model_providers.OpenAI]
name = "OpenAI"
base_url = "https://api.akrouter.com/v1"
wire_api = "responses"
requires_openai_auth = false
http_headers = { "x-openai-actor-authorization" = "local-image-extension" }key 放在另一个文件 ~/.codex/auth.json 里,不是 config.toml:
{ "OPENAI_API_KEY": "ak-xxxxxxxxxxxxxxxxxxxxxxxx" }wire_api = "responses"—— 少了会退回chat/completions,Responses API 的 reasoning item 当场丢失,表现是「能用,但推理链断了」,不报错、难复现。requires_openai_auth = false—— 我们不是 OpenAI 官方登录,写 true 会走不存在的 OAuth 流程。- 那行
http_headers—— 缺了直接 502。
3. opencode
opencode 在 ~/.config/opencode/opencode.json(不存在就新建)里声明 provider。 走 Anthropic 协议用 @ai-sdk/anthropic,此时 baseURL 要带 /v1(这是 ai-sdk 的要求,和 Claude Code 那节的根地址不是一回事,别混)。
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"akrouter": {
"npm": "@ai-sdk/anthropic",
"name": "akrouter",
"options": {
"baseURL": "https://api.akrouter.com/v1",
"apiKey": "ak-xxxxxxxxxxxxxxxxxxxxxxxx"
},
"models": {
"claude-sonnet-5": { "name": "claude-sonnet-5" }
}
}
}
}npm 换成 @ai-sdk/openai-compatible、baseURL 换成 https://api.akrouter.com/v1。 不想把 key 写进会被提交的文件,可以把 apiKey 写成 {env:AKROUTER_API_KEY} 再从环境变量取。4. OpenAI SDK / 通用客户端
任何兼容 OpenAI 的 SDK 都走 POST /v1/chat/completions。
from openai import OpenAI
client = OpenAI(
base_url="https://api.akrouter.com/v1",
api_key="ak-xxxxxxxxxxxxxxxxxxxxxxxx",
)
resp = client.chat.completions.create(
model="gpt-5.5",
messages=[{"role": "user", "content": "hello"}],
stream=True,
)
for chunk in resp:
print(chunk.choices[0].delta.content or "", end="")import OpenAI from 'openai'
const client = new OpenAI({
baseURL: 'https://api.akrouter.com/v1',
apiKey: process.env.AKROUTER_API_KEY,
})
const stream = await client.chat.completions.create({
model: 'gpt-5.5',
messages: [{ role: 'user', content: 'hello' }],
stream: true,
})5. cc-switch(一键导入)
cc-switch 是一个跨平台的供应商切换器,统一托管 Claude Code / Codex 这些客户端的配置文件, 一键就能在多个供应商之间切换。装了它之后,下面的链接会直接唤起它并弹出导入确认框 —— 不用你手动改任何文件。按你要接的客户端选一个:
- 导入为 Claude Code 供应商 —— 走
anthropic协议,endpoint 是根地址https://api.akrouter.com。 - 导入为 Codex 供应商 —— 走 OpenAI 协议,endpoint 是
https://api.akrouter.com/v1,链接里还额外带上model=gpt-5.5(Codex 侧必需)。
ak-xxxxxxxxxxxxxxxxxxxxxxxx —— 导入后需要在 cc-switch 里把它换成你自己的。已登录的话更省事: 令牌管理 页里每个 Key 的接入指南都有同款一键导入,且会直接把真实 key 填进链接里,点了就能用。点了没反应 = 本机还没装 cc-switch。浏览器会拦截未知协议,这是正常的,先去装一下再回来点。
模型名
请求里填的是对外模型名(如 claude-sonnet-5), 不是某个商户的上游模型名。路由会在支持该模型的所有在架渠道里挑一条, 并在响应头回传实际选中的渠道。