一个 44 MB 的绿色 exe,左边一列列出十几个 AI 编程工具,右边是供应商卡片。点一下卡片左上角那个小图标,客户端配置文件里的三个键就换了值。
cc-switch 干的就是这件事。它自己不接模型,作用是给 Claude Code、Codex 这类命令行工具换供应商。这篇文章只查两件事:启用供应商时它改的是哪个文件,路由模式又在本地起了什么。
cc-switch 是干什么的
打开后左边是应用列表,右栏是当前应用的供应商卡片。侧栏一共 12 个应用入口,下面还有一排工具页。
应用入口 Claude Code / Claude Desktop / Codex / Gemini CLI / Grok Build
OpenCode / OpenClaw / Hermes / Pi / MiniMax Code
工具页 MCP / Skills / 提示词 / 会话 / 授权中心 / 用量统计 / 应用 / 设置
供应商这一层有三个模式,界面上用一段话解释了区别:
| 模式 | 界面原话 | 请求走哪 |
|---|---|---|
| 直连 | CC Switch 不经手任何请求,客户端直接连所选供应商 | 客户端 → 供应商 |
| 路由 | 请求经 CC Switch 转发,可热切换供应商,支持故障转移与格式转换 | 客户端 → 本地代理 → 供应商 |
| 聚合 | 多家供应商的模型同列在 /model,在客户端内即可切换 | 客户端 → 本地代理 → 多家 |
这个工具在焚.com 上的六维评分是 9.9,六项里有四项满分。
| 维度 | 权重 | 得分 |
|---|---|---|
| 热度动量 | 25% | 10.0 |
| 开发活跃 | 25% | 10.0 |
| 社区响应 | 15% | 9.3 |
| 文档质量 | 15% | 10.0 |
| 发布节奏 | 10% | 10.0 |
| 风险控制 | 10% | 10.0 |
147,011 星 9,700 fork 1,492 个未关闭 issue
73 个 release 291 位贡献者 仓库 101,480 KB
MIT 许可 建仓 2025-08-04
绿色版就两个文件,1.61 秒出界面
官方给了 msi 和 Portable.zip 两种。便携包解压完只有两个文件,不用装、不写注册表,放在 D 盘任意目录双击就行。
CC-Switch-v4.0.17-Windows-Portable.zip 17,322,841 字节
解压后
cc-switch.exe 44,319,232 字节
portable.ini 50 字节 (内容两行:注释 + portable=true)
从 Popen 到 WebView2 调试端口就绪 1.61 秒
页面标题 Claude Code 供应商切换器
页面地址 http://tauri.localhost/
它是 Tauri 写的,界面其实是本地网页,所以能用调试端口直接读 DOM。这个特性对写自动化的人有用,也说明它的 UI 层跟系统 API 之间只隔一层 IPC。
添加供应商:106 个预设分五组
点「添加供应商」,第一屏是一排分类标签加搜索框,可以按名字或网址找,比如 kimi、智谱、openrouter。表单藏在顶部的「自定义配置」里。底下按来源分组,一共 106 个预设。
预设总数 106
账号登录 4 Claude Official、Codex、GitHub Copilot、xAI Grok
模型厂商 16 DeepSeek、Kimi、MiniMax、千问AI平台、火山引擎、百度千帆…
第三方平台 75 OpenRouter 一类的中转
云服务商 7 Azure、AWS Bedrock 一类
本地 4 Ollama、LM Studio 一类
跨应用统一 2
自定义入口 第一屏顶部「自定义配置」
预设不是简单填个地址,它带了该供应商的模型映射和鉴权方式。这也是它比手写环境变量省事的地方:换供应商只要点一下,不用记每家是 ANTHROPIC_AUTH_TOKEN 还是 OPENAI_API_KEY。
按下启用,它改的是哪个文件
加完一个自定义供应商后,列表里会出现卡片。注意启用方式:点卡片左边那个方形图标,不是右边的播放三角(那个是连通性测试)。点对之后,%USERPROFILE%\.claude\settings.json 立刻被写出来。
文件 C:\Users\<用户名>\.claude\settings.json
大小 163 字节
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-wb2a-...cfe3",
"ANTHROPIC_BASE_URL": "http://127.0.0.1:7863/v1",
"CLAUDE_CODE_AUTO_MODE_SERVER": "0"
}
}
切换前后对比,变的是 ANTHROPIC_BASE_URL 和 ANTHROPIC_AUTH_TOKEN 两个值,第三个键 CLAUDE_CODE_AUTO_MODE_SERVER 一直是 0。整个文件是覆盖写,不是合并:如果原来的 settings.json 里有别的自定义键,切换后会被这份三键模板替掉。
切换到「实测中转」 ANTHROPIC_BASE_URL = https://api.example.com
切换到「本地 7863」 ANTHROPIC_BASE_URL = http://127.0.0.1:7863/v1
两次写入都是 163 字节,结构完全一致
这句话的意思是:它的备份机制(欢迎页提到会把原配置存成名为 default 的供应商)值得先确认一遍再用,否则你手写的 hooks、permissions 这些配置可能在第一次切换时消失。
路由模式:本地多一个 15721 端口
切到路由模式后,设置里的「本地路由」页会亮起来。服务默认监听 127.0.0.1:15721,界面上有三个计数:总请求数与成功率,外加活跃连接。
设置 → 本地路由
服务状态 运行中 · 已运行 0 分钟
监听地址 127.0.0.1
监听端口 15721
总请求数 0 成功率 0.0% 活跃连接 0
正在使用路由的应用 · 0
「没有应用在用路由。在应用页的『路由』或『聚合』页签里进入。」
最后那行是重点。切了模式标签,不等于应用已经走进路由。界面上明确写着「正在使用路由的应用 · 0」,客户端配置还没被改到这个代理上。
此时读 settings.json,ANTHROPIC_BASE_URL 仍然是供应商地址,没有变成 15721。所以「点一下路由模式,Claude Code 就自动走代理」这个动作,在 v4.0.17 上不成立,至少按界面上的这条路径不成立。
拿 Anthropic 格式敲代理,回来的是 502
为了看这个代理到底有没有在转发,直接对它发一个 Anthropic 格式的 /v1/messages 请求,带 x-api-key 和 anthropic-version 两个头。两次都返回 502,错误体是结构化的 JSON。
POST http://127.0.0.1:15721/v1/messages
{"model":"kimi-k2.8-preview","max_tokens":32,"messages":[...]}
上游是 https://api.example.com 时:
502 {"error":{"message":"请求转发失败: 上游请求失败:
client error (Connect): dns error: 不知道这样的主机。(os error 11001)",
"type":"proxy_error"}}
上游是 http://127.0.0.1:7863/v1 时:
502 upstream connect failed: 由于目标计算机积极拒绝,无法连接。(os error 10061)
第二条值得追一下。同一个地址用 curl 直连是通的:
curl http://127.0.0.1:7863/v1/models -H "Authorization: Bearer sk-..."
IPv4 -> 200
IPv6 -> 200
netstat -ano | findstr 7863
TCP 0.0.0.0:7863 LISTENING 6192
端口在听,两个协议栈都能连,代理却报「积极拒绝」。可能是它把 /v1 又拼了一次,也可能是连接目标被解析成了别的地址。这一条没有继续挖,所以结论只到「路由转发到本地 OpenAI 兼容端点,在 v4.0.17 上没跑通」为止。
副作用是能验证计量:用量统计页把这两次失败也记了下来。
用量统计(当天)
总成本 $0.00 总请求数 2
真实消耗 Tokens 0 缓存命中率 0.0%
请求日志
16:26:25 502 供应商 实测中转 模型 kimi-k2.8-preview
16:26:25 502 供应商 实测中转 模型 claude-sonnet-4-5
连 502 都按供应商和模型分开记,说明这个面板是真的在解请求,不只是转发字节。
什么时候值得装,什么时候别装
| 场景 | 结论 | 依据 |
|---|---|---|
| 手上有好几家中转,经常换 | 值得 | 106 个预设 + 一键改写 settings.json |
| 只想用一个官方账号 | 没必要 | 多一层面板,收益为零 |
| 想让它做协议转换 | 要谨慎 | 路由模式在本地端点上没跑通 |
| 配置里有自定义 hooks | 先备份 | 切换是覆盖写 163 字节模板 |
| 要在多台机器同步 | 不行 | 配置就写在用户目录里 |
测试环境是 Windows 10 22H2、cc-switch v4.0.17、便携版,只有一个 Claude Code 供应商被真实启用过。
- 未验证:Codex、Gemini CLI 等其余应用的配置文件写入路径。只测了 Claude Code 的 settings.json。
- 未验证:聚合模式的 /model 列表合并。
- 未验证:自动故障转移。界面上有这一栏,没有造两个上游去触发。
- 未验证:路由模式跑通后的实际效果,卡在上游连接这一环。
- 未验证:从旧版本升级时,原配置是否真的被存成 default 供应商。
另外它需要联网读供应商列表和检查版本,离线环境下只能看到已缓存的卡片。









