用 cc-router 接入 Claude Code:一份 settings.json 把多家订阅塞进 CLI

Claude Code 默认只走 Anthropic 官方 API,单订阅一旦打满就只能干瞪眼;想换成 DeepSeek、Kimi、GLM 又要手动改环境变量,每次切都要折腾。cc-router 干的就是把这些零散订阅聚合成一份「虚拟订阅」,在本地起一个 Anthropic 协议网关,Claude Code 一份 settings.json 就接管完毕 —— 不装证书、不进 Developer 菜单、不重启系统,整个过程十分钟以内。

项目地址: GitHub - finch-xu/cc-router官方主页入门文档下载客户端

cc-router 到 Claude Code 是怎么连起来的

cc-router 在本地起一个 Anthropic 协议代理(默认 127.0.0.1:23456),上游挂着 DeepSeek、Qwen、Kimi、GLM、Claude 官方等近 20 家厂商。它对外暴露三个虚拟模型槽位 —— model-opusmodel-sonnetmodel-haiku,每个槽位都可以挂多家厂商,按顺序 fallback 或者轮询调度。

Claude Code 这边其实什么都不用改,它原本就支持通过环境变量改写 base URL 和模型名,cc-router 正好接管这两个口子。

1
2
3
4
5
6
7
8
9
10
 claude CLI                cc-router (本地)              上游 provider
┌──────────┐ ┌─────────────────┐ ┌────────────────┐
│ HTTP │──────────▶ │ 127.0.0.1:23456 │────────▶ │ DeepSeek / Kimi│
│ Anthropic│ │ 三槽位虚拟模型 │ │ GLM / Qwen │
│ 协议 │ │ 顺序/轮询/Fallback│ │ Claude 官方 等 │
└──────────┘ └─────────────────┘ └────────────────┘
▲ │
│ └── 请求日志页实时可见
~/.claude/settings.json
注入 env 变量

和 Claude Desktop 接入方式的差别:

  • Claude Code 是 HTTP 直连本机环回,不用装自签 CA 证书 —— Desktop 那篇博文里大半篇幅的钥匙串/证书管理这里全部跳过
  • 配置位置是 ~/.claude/settings.jsonenv 字段,不是 Desktop 那种 Developer 菜单点点点
  • 三槽位走的是 model-opus / model-sonnet / model-haiku 这种 cc-router 自定义别名,不是 anthropic/claude-opus-4-7 这种带厂商前缀的真模型名

步骤一:下载并启动 cc-router

cc-router 是 Tauri 写的桌面应用,macOS / Windows / Linux 都有打包好的版本,直接到 GitHub Releaseshttps://ccrouter.app/download/ 下载对应平台的 .dmg.exe.AppImage.deb。装完打开 App,本地代理服务会自动起在 127.0.0.1:23456

如果 23456 端口被别的进程占了,cc-router 会自动 +1 往后递增(23457、23458……)。所以不要把 23456 硬编码到 settings.json 里,要回到 cc-router 设置页确认实际监听端口再复制 —— 这是踩坑率最高的一项。

cc-router 主界面


步骤二:在 App 里绑一家 provider 到虚拟槽位

cc-router 自己不卖 token,它是个调度器,你得把已有的厂商订阅挂上来。流程是「选厂商 → 选接入点 → 粘贴该厂商 API Key → 自动拉模型」,每加一家都要把它绑到某个虚拟槽位。

最小可用配置:至少把一家 provider 绑到 model-opus(比如 DeepSeek-V4-Pro 或 GLM-5.1)。如果你想让 sonnet / haiku 槽位也能用,再各绑一家就行;同一槽位也可以挂多家走 fallback。

调度模式选哪个:

  • Sequential:A 用完或失败才切 B,保留 prompt cache,适合「榨干小额订阅」
  • Round-robin:请求轮换,真正负载均衡,每个账号独立 cache

只有一家 provider 的时候这两个选哪个都一样,等你后续挂多家了再回来调。


步骤三:从 cc-router 复制 token 和 base URL

打开 cc-router → 设置代理服务,这一页有两个东西要抄:

  1. Base URLhttp://127.0.0.1:实际端口,注意是 http:// 不是 https://
  2. Token / API Key:cc-router 自己生成的一串字符串,Claude Code 用这个鉴权进 cc-router(不是任何上游厂商的原 key)

直接用页面上的复制按钮,避免手抄漏字符。token 一次性生成、不会自动轮换,如果你确认泄漏了再到这里重置。

复制 token 与 base URL

⚠️ 这个 token 等同于你所有挂在 cc-router 上的上游订阅的访问权。不要截图、不要 push 到 git、不要发到群里。


步骤四:写入 ~/.claude/settings.json

Claude Code 在启动时会读取 ~/.claude/settings.json,把里面 env 字段的所有键值对当成环境变量注入到自己进程。这是官方支持的扩展点,我们要做的就是把 cc-router 的 base URL 和 token 写进去。

文件位置三平台都是同一个:

  • macOS / Linux:~/.claude/settings.json
  • Windows:%USERPROFILE%\.claude\settings.json

如果文件不存在就新建,如果已存在就合并 env 字段(其它字段别动)。完整模板原样照抄自官方文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"env": {
"ANTHROPIC_BASE_URL": "http://127.0.0.1:23456",
"ANTHROPIC_AUTH_TOKEN": "这里填写cc-router设置里真实token",
"API_TIMEOUT_MS": "3000000",
"ANTHROPIC_MODEL": "model-opus",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "model-opus",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "model-sonnet",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "model-haiku",
"CLAUDE_CODE_SUBAGENT_MODEL": "model-opus",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
"CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK": "1",
"CLAUDE_CODE_ATTRIBUTION_HEADER": "0",
"CLAUDE_CODE_EFFORT_LEVEL": "max"
}
}

关键字段解释:

字段 作用
ANTHROPIC_BASE_URL 把 Claude Code 的请求改打到 cc-router 本地代理,端口别忘了换成实际监听端口
ANTHROPIC_AUTH_TOKEN 注意不是 ANTHROPIC_API_KEY —— 字段名写错最常见的 401 来源
API_TIMEOUT_MS 长 prompt 防超时,3000000ms(50 分钟)足够长 prompt 跑完不被掐
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 关掉 telemetry 等非必要请求,避免空跑消耗 token
ANTHROPIC_MODEL 默认模型,这里指向 model-opus(cc-router 的虚拟别名)
ANTHROPIC_DEFAULT_OPUS_MODEL / _SONNET_ / _HAIKU_ 三槽位别名,名字要和 cc-router 里的槽位名严格一致

步骤五:起 claude,发一条话验证

如果还没装 Claude Code:

1
curl -fsSL https://claude.ai/install.sh | bash

随便进一个目录,运行:

1
claude

进入对话后随便问一句,比如「写一段 Hello World 的 Python 代码」。

切回 cc-router 主界面,进请求日志页 —— 应该能看到刚刚那条请求的记录:哪个虚拟槽位、被路由到哪家上游 provider、消耗了多少 token、响应耗时多少。如果日志页没动静,说明请求根本没走到 cc-router,回去检查 ANTHROPIC_BASE_URL 的端口对不对。

cc-router 请求日志


排错速查

现象 原因 修法
401 Unauthorized token 写错 / 用了 ANTHROPIC_API_KEY 字段 字段名必须是 ANTHROPIC_AUTH_TOKEN,回 cc-router 重新复制 token
connection refused 端口对不上 回 cc-router 设置页看实际监听端口(可能被自动 +1)
model not found settings.json 里模型名拼错 与 cc-router 槽位名严格一致:model-opus / model-sonnet / model-haiku
请求日志页没记录 claude 没读到 settings.json 完整退出 claude 进程再重开;确认文件路径是 ~/.claude/settings.json 且 JSON 合法
某次 5xx / 429 上游 provider 限流或挂了 同槽位多挂一家,开 Sequential 或 Round-robin,cc-router 自动 fallback

安全提醒

  • cc-router 的 token 是聚合密钥 —— 一旦泄漏,攻击者就能消耗你所有挂上来的上游订阅,比单家 API Key 后果严重得多
  • HTTP 监听仅限本机环回 —— 不要把 23456 端口暴露公网。跨机器调用请用 cc-router 自带的 HTTPS 模式 + 自签 CA(具体方式见下方相关阅读)
  • 各厂商 ToS 自己遵守 —— cc-router 只是透明代理,不替你解除任何 provider 端的限制;高频跨账号轮询有被限速或封号风险

相关阅读

参考链接