CC Switch v3.16.2
在 v3.16.1 的 Codex 稳定性补丁之后,这一版主要拓宽了数据的可携带性与用量观测能力——新增 S3 兼容云同步、OpenCode 会话用量同步、官方订阅额度模板——并继续加固 Codex 通过 Chat Completions 路由第三方供应商的稳健性,同时修复了一批 Windows / macOS 平台问题,新增 CherryIN、ZenMux 供应商,并全面刷新了三语用户手册。
使用攻略
这一版新增了云同步的 S3 后端和更多用量统计来源,如果你想用上,可以先看这些文档:
- 设置:在设置页配置云同步(WebDAV / S3 兼容存储),用于在多台设备间备份和恢复供应商、MCP、提示词、技能等配置。
- 用量统计:了解用量看板的数据来源(代理日志、Codex / Gemini / OpenCode 会话同步)与统计口径。
Warning
唯一官方渠道声明(请务必阅读)
CC Switch 是完全免费、开源的桌面应用,不会向用户收取任何费用。请仅通过下列官方渠道获取本软件:
| 类别 | 唯一官方 |
|---|---|
| 官网 | ccswitch.io |
| 源码 | github.com/farion1231/cc-switch |
| 下载 | GitHub Releases |
| 作者 | @farion1231 |
| 举报山寨 | GitHub Issues |
任何向你收费、要求充值、或索取登录凭据的"CC Switch"网站或客户端均为假冒。如果你被诱导支付了费用,请立即停止操作并通过 GitHub Issues 反馈。
概览
CC Switch v3.16.2 是 v3.16.1 之后的一版维护更新。在上一版集中处理 Codex 官方鉴权与本地路由接管的安全问题之后,这一版把重心放在两件事上:一是拓宽数据的可携带性和用量观测——新增 S3 兼容云同步(WebDAV 之外的第二套云备份后端)、OpenCode 会话用量同步,以及面向官方订阅的额度统计模板;二是继续打磨 Codex 通过 Chat Completions 路由第三方供应商时暴露出来的边角问题——流式截断判定、空 tools 下的 tool_choice、自定义工具元数据、推理 token 统计、文件 / 音频附件转换等。
此外,本版还修复了一批本地代理的稳健性问题(临时端口解析、接管占位符还原死循环、Anthropic system 消息归一化、上游 413 文案、Claude Desktop 的 [1m] 模型路由),处理了若干 Windows / macOS 平台体验问题,并新增 CherryIN、ZenMux 两个供应商,同时全面刷新了三语用户手册。
发布日期:2026-06-07
更新规模:41 commits | 132 files changed | +11,116 / -1,636 lines
重点内容
- S3 兼容云同步:在 WebDAV 之外新增 S3 兼容对象存储作为第二套云备份后端,内置 AWS S3、MinIO、Cloudflare R2、阿里云 OSS、腾讯云 COS、华为 OBS 等一键预设。
- 更多用量统计来源:新增 OpenCode 会话用量同步,以及面向 Claude / Codex / Gemini 官方订阅的额度统计模板(显式开关、默认关闭)。
- Codex Chat Completions 路由继续加固:修复流式截断误判、空 tools 下
tool_choice被拒、自定义工具元数据丢失、推理 token 统计缺失,并支持文件 / 音频附件转换与/v1/models探活端点。 - 本地代理更稳:修复临时端口(port 0)解析、接管占位符还原死循环、Anthropic
system消息归一化、上游 413 文案,以及 Claude Desktop 1M 上下文模型路由。 - 平台与供应商:修复 Windows 托盘 / 任务栏图标、子目录技能更新、macOS 输入自动大写等问题,并新增 CherryIN、ZenMux 供应商。
新功能
S3 兼容云同步
云同步现在支持 S3 兼容对象存储作为 WebDAV 之外的第二套后端,签名采用自实现的 AWS Signature V4,以兼容尽可能多的服务。设置页提供 AWS S3、MinIO、Cloudflare R2、阿里云 OSS、腾讯云 COS、华为 OBS 以及自定义 endpoint 的一键预设,支持连接测试、手动上传 / 下载,以及在配置变更时自动同步(providers、endpoint、MCP、提示词、技能、设置、代理等配置表,不含用量日志这类高频写入数据)。开启 S3 同步会停用正在运行的 WebDAV 同步,反之亦然(#1351)。
OpenCode 会话用量同步
新增 OpenCode 作为用量统计来源,从 OpenCode 本地 SQLite 数据库读取每条消息的 token、成本和模型数据并导入用量记录,并提供独立的「OpenCode」应用筛选页签和「OpenCode Session」数据来源标签。数据库路径会遵循 OPENCODE_DB 和 XDG_DATA_HOME(在所有平台默认 ~/.local/share/opencode),只导入已完成的消息,并在判断新鲜度时把 WAL 文件一并计入,避免刚写入的会话被跳过(#3215)。
官方订阅额度模板
由于部分用户担心发起用量查询的 IP 和发起应用内请求的不一致导致封号风险,因此为 Claude / Codex / Gemini 官方供应商新增一个显式、可选的「官方订阅」用量模板,通过 CLI / OAuth 凭据查询套餐额度,替代此前对官方供应商的隐式自动查询。该模板默认关闭,需要在用量脚本弹窗里开启,并可配置刷新间隔。使用此功能建议开启代理的 TUN 模式。
文本模型图片回退整流器
新增一个代理整流器:当路由到的模型仅支持文本(显式声明,或由内置的模型名启发式判定),或上游拒绝图片输入时,会把 Anthropic 图片块替换为 [Unsupported Image] 占位标记,避免对话被中断。设置页提供该回退功能的开关,并单独提供一个开关控制启发式检测(可关闭以避免误判多模态模型)。
ZenMux Token Plan 供应商
新增 ZenMux 作为 Token Plan 类的 Coding Plan 供应商,可在用量脚本弹窗里手动填写 API key 和 base URL,并以美元口径富展示已用 / 额度(#2709)。
CherryIN 预设
新增 CherryIN 聚合网关作为快捷配置预设,覆盖全部 7 个受管应用——Claude Code / Claude Desktop / OpenClaw / Hermes 使用 Anthropic 格式端点(open.cherryin.net),OpenCode 使用 @ai-sdk/anthropic(/v1),Codex 使用 OpenAI 兼容端点,Gemini CLI 使用 Gemini 兼容端点,附带官方品牌图标,位置紧挨 AiHubMix(#3643)。
Codex CLI 模型探活端点 /v1/models
本地代理现在会响应 Codex CLI 启动时探测的 GET /v1/models,返回 CC Switch 托管的 Codex 模型目录。同时加入了过期目录守卫:解析 live 的 config.toml,仅当 model_catalog_json 仍指向 CC Switch 持有的目录文件时才提供,避免把上一个供应商遗留的目录暴露给 Codex(#3818)。
Codex Chat 文件与音频附件
Codex 的 Responses→Chat 转换现在会把 input_file(携带 file_id 或内联 file_data)和 input_audio 内容部分映射为 Chat Completions 的对应形态,并补发此前会被丢弃的顶层 input_* 项,让文件和音频附件能够送达只支持 Chat 的 Codex 上游。
变更
用量看板 Hero 重新设计
把用量看板的 Hero 区与汇总卡片重排为更紧凑的布局,将真实 token 总量、请求数和成本合并到顶部一行展示(#3426)。
SSSAiCode 端点刷新
把 SSSAiCode 预设的官网、注册和 API base URL 更新到 sssaicodeapi.com 域名,并刷新其端点候选节点(默认 node-hk.sssaicodeapi.com,另含 node-hk.sssaiapi.com 和 node-cf.sssaicodeapi.com),覆盖全部 7 个应用预设。
修复
Codex Chat 流式截断判定
当 Chat Completions 上游在没有 finish_reason 或 [DONE] 的情况下结束流时,CC Switch 不再把它当作正常完成:只有流真正结束才正常收尾;已产出部分内容时发出 incomplete(max_output_tokens)响应;完全没有产出时发出失败的 stream_truncated 事件。晚到的推理内容也会回填到仍在进行的流式工具调用上。
Codex Chat 空 tools 下的 tool_choice
Responses→Chat 转换现在会在最终 tools 数组缺失或为空(包括所有工具被过滤掉)时一并丢弃 tool_choice 和 parallel_tool_calls,避免严格的 OpenAI 兼容上游(vLLM、企业网关)以"When using tool_choice, tools must be set."报 503/400(#3640)。
Codex 自定义工具元数据保留
自定义 Codex 工具(如自由格式的 apply_patch 工具)现在会把完整的原始定义——包括 format 和 grammar 元数据——以紧凑、顺序稳定的 JSON 块嵌入生成的 Chat 函数描述中,而不是替换成通用占位符,从而在 Chat Completions 上游上仍可正常使用(#3644)。
Codex Chat 用量缺少 reasoning_tokens
Chat→Responses 的用量转换现在总会包含 output_tokens_details.reasoning_tokens(默认 0),即使供应商省略 completion_tokens_details 或返回非对象也是如此,满足 Codex CLI 的严格要求,避免反复的响应解析失败和重试(#3514)。
Codex 自定义工具 / 搜索工具的跨轮推理
Codex Chat 历史里的跨轮推理缓存现在覆盖完整的工具调用集合(function_call、custom_tool_call、tool_search_call)及其输出,而不再仅限普通函数调用,因此 apply_patch 和工具搜索调用在通过 previous_response_id 恢复时能保留各自的 reasoning_content。
临时端口(port 0)解析
当代理被配置为监听 0 端口(由系统分配)时,接管流程现在会先启动代理以拿到真实端口,再写入 live 配置和数据库,避免客户端 URL 指向无效的 :0 地址;若还没解析出具体端口,Claude Desktop 的网关 URL 会被直接拒绝。
代理占位符备份 / 恢复死循环
如果上一次停止代理时未能还原原始 live 配置、把代理占位符遗留在了 live 中,再次接管时不会再用代理配置覆盖掉正常备份,恢复时也不会把占位符写回 live:两条路径都会识别占位符状态并以当前供应商为真相来源重建 live,修复了代理开关变成空操作、客户端被钉死在本地代理地址的问题(#3689)。
代理接管期间误拦截供应商切换
在本地路由接管期间,现在只有显式归类为官方的供应商会被禁止切换,而不会再把端点存在 meta 里、或字段尚未填写的自定义供应商一并禁用。被禁用的「启用」按钮现在以更轻量的提示气泡替代原先的红色「已拦截」标记。
localhost 监听地址归一化
保存代理时如果监听地址填的是 localhost,现在会先归一化为 127.0.0.1 再持久化,避免绑定不一致(#3016)。
Anthropic system 消息归一化
对 Anthropic 格式的供应商,messages 数组里的 system 角色条目现在会被折叠并合并到顶层 system 字段(保留原顺序以及已有的顶层 system),避免严格上游拒绝非首位的 system 消息;OpenAI Chat 路由不受影响(#3775)。
Claude Desktop 1M 上下文模型路由
Claude Desktop 在 1M 上下文 beta 激活时会给模型名追加 [1m] 标记(如 claude-opus-4-8[1m])。代理现在会在路由匹配前先剥掉该后缀,让精确、别名、旧名和角色关键词匹配都能正确命中,修复了对话中途切换到 1M 模型时的 route_unknown(HTTP 400)失败;诊断用的 route_unknown 错误里仍保留原始模型名。
Codex 413 错误文案
当 Codex 上游网关以 HTTP 413 拒绝过大的请求体时,代理现在返回专门的提示,说明这是供应商服务端的请求体大小限制(而非 CC Switch 本地限制),并给出可操作的恢复步骤(运行 /compact、移除大段日志或内联图片,或请供应商调高限制),不再原样回显上游的 HTML 错误页。
代理面板错误详情
切换代理接管失败时,代理面板的提示现在会带上后端返回的具体错误详情,而不是只显示一句笼统的失败信息(#3656)。
Copilot 无限空白检测阈值
把流式无限空白的中断阈值从 20 调高到 500 个连续空白字符,避免参数里含深层缩进代码(Python、YAML、Rust、Markdown)的正常工具调用被误判中断,同时仍能捕获真正的 Copilot 无限空白 bug(#2647)。
订阅档位托盘渲染
通过统一的档位到标签映射,修复官方订阅档位在托盘和额度展示上的渲染问题:Claude / Codex 不再漏掉 7 天窗口,Gemini Pro / Flash / Flash-Lite 档位不再泄露原始机器名,多窗口套餐(如 Opus + Sonnet)现在按最差利用率展示而非取第一个匹配。
Claude 流式 input_tokens 虚高
部分 Anthropic 兼容的流式供应商(如 Qwen、MiniMax)会在 message_start 里把完整上下文当作 input_tokens 上报,重复计入了已经单独统计的缓存部分,导致显示的缓存命中率被人为拉低。现在解析器会优先采用 message_delta 中更小的正 input_tokens,并采用同一 usage 块里配套的缓存计数;原生 Claude 和 OpenRouter 转换路径不变。
智谱配额查询端点路由
智谱 Coding Plan 的配额查询此前被硬编码到 api.z.ai,导致使用大陆预设(open.bigmodel.cn)的用户在国际端点不可达时查不到用量。现在配额请求会路由到与用户所配 base URL 匹配的主机(#3702)。
MiniMax 余额接口与定价
适配 MiniMax Coding Plan 配额的新余额接口(新接口返回剩余百分比字段,而非旧解析器依赖、会导致档位为空、托盘不再显示用量的用量计数),过滤掉非编程模型(如视频),兼容无周限额的套餐,并为 MiniMax M3 模型补充了默认定价(#3518)。
GLM Coding Plan 端点与模型拉取
把智谱 / Z.AI 的 GLM Coding Plan 预设修正到 /api/coding/paas/v4 端点(覆盖 Codex、OpenCode、OpenClaw、Hermes),并让模型列表探测对已经以 /v{N} 版本段结尾的 base URL 改为先查 {base}/models(保留 /v1/models 作为兜底),让「拉取模型」按钮不再在带版本号的端点上 404(#3524)。
Codex 模型目录路径可移植性
Codex 现在只把相对文件名 cc-switch-model-catalog.json 写入 config.toml,而不是绝对路径(Codex CLI 会从配置目录解析它),修复了在 WSL 和符号链接环境下绝对路径无法转换、导致模型目录失效的问题(#3614)。
APINebula 的 OpenCode SDK
APINebula 的 OpenCode 预设现在加载 @ai-sdk/openai-compatible 而非 @ai-sdk/openai,让请求使用该中转期望的 OpenAI Chat Completions 格式,而不是只支持 chat-completions 的上游会失败的 Responses API。
Windows 退出后托盘图标残留
在 Windows 上退出 CC Switch 可能会留下一个失效的托盘图标,直到鼠标划过才消失。现在应用会在退出前显式移除托盘图标,让它随进程结束干净消失(#3797)。
Windows 任务栏图标
在运行时显式设置 Windows AppUserModelID,并给安装器生成的桌面和开始菜单快捷方式写入相同的 ID 和产品图标,让 CC Switch 在任务栏上显示正确图标并正确归组(#3457)。
Windows 子目录技能的更新检查
在 Windows 上扫描已安装技能时,把反斜杠路径分隔符归一化为正斜杠,让嵌套在子目录里的技能(如 skills/my-skill)能被更新检查匹配到,而不是被静默跳过(#3430)。
macOS 输入自动大写
为共享的文本 Input 组件关闭自动完成、自动纠错、自动大写和拼写检查,让 macOS 不再对配置字段里输入的首字母自动大写或自动纠正(#3626)。
Codex VS Code 会话预览
从 VS Code 发起的 Codex 请求,其会话预览在注入请求前存在 markdown 标题时,可能显示选区或打开文件的内容而非真实提示。现在后端标题和前端预览都会匹配最后一个「## My request for Codex:」标题(IDE 把真实请求作为最后一节注入),让预览反映用户的提示(#3593)。
中文界面 VS Code 文案
把简体和繁体中文里「应用到 Claude Code 插件」的描述改为正确书写「VS Code」而非「Vscode」,与英文、日文文案对齐(#3228)。
文档
用户手册刷新
刷新了 README 各语言版本以及 en / zh / ja 用户手册,使其反映全部 7 个受管应用(在介绍和总览文案里补上 Claude Desktop 与 Hermes),把 OpenCode 配置路径修正为 ~/.config/opencode/(opencode.json),补充了 Hermes 配置文件说明,把语言文档更新为四种语言,订正各应用 MCP / 提示词 / 技能的支持情况,说明导出现在会生成带时间戳、含用量日志的 SQL 备份,并补充了定价模型 ID 匹配规则(#3411)。
Codex 官方认证保留指南
新增中 / 英 / 日三语指南,说明如何在把模型流量切到第三方 API 的同时,保留 Codex 官方远程操作和官方插件的可用性,并从 v3.16.1 release notes 链接到该指南。
README 链接与赞助商标记
把各语言 README 里的 Release Notes 链接更新到 v3.16.1,并修复 README_ZH 赞助商区块里损坏的弯引号字符,让其 HTML 属性能正确渲染(#3772)。
升级提醒
S3 与 WebDAV 云同步互斥
云同步同一时间只会运行一套后端。开启 S3 自动同步会停用正在运行的 WebDAV 自动同步,反之亦然。如果你之前用的是 WebDAV,切到 S3 前请确认两端数据已对齐,避免误以为旧后端仍在备份。
修改模型映射后仍需重启 Codex
Codex 在启动时读取 model_catalog_json。即使本版已把模型目录改写为相对路径并新增了 /v1/models 探活端点,只要你修改了模型映射表,仍然需要重启 Codex 才能让 /model 菜单刷新。
风险提示
本版本继续沿用此前版本对反向代理类功能的风险提示。
Codex OAuth 反向代理:使用 ChatGPT 订阅的 Codex OAuth 反代可能违反 OpenAI 服务条款,详情见 v3.13.0 release notes。
Codex 第三方供应商 Chat 路由:通过 CC Switch 本地代理把 Codex 请求转换并转发到第三方供应商时,各供应商对计费、合规与数据留存的约束不同,请在使用前阅读目标供应商的服务条款。
Claude Desktop 第三方供应商代理切换:通过 CC Switch 内置代理网关把 Claude Desktop 的请求转到第三方供应商时,同样需要遵守目标供应商的计费、合规与数据留存约束。
用户启用上述功能即表示自行承担相关风险。CC Switch 不对因使用这些功能而导致的任何账号限制、警告或服务暂停承担责任。
致谢
感谢以下贡献者在 v3.16.2 中提交的功能与修复:
- #1351:新增 S3 兼容云存储同步,感谢 @keithyt06。
- #3215:新增 OpenCode 会话用量同步,感谢 @nothingness0db。
- #2709:新增 ZenMux Token Plan 供应商,感谢 @Eter365。
- #3643:新增 CherryIN 预设供应商,感谢 @zhibisora。
- #3818:新增 Codex CLI 探活用的
GET /v1/models端点,感谢 @CSberlin。 - #3426:用量看板 Hero 重新设计,感谢 @allenxu09。
- #3640:空 tools 时丢弃
tool_choice,感谢 @Postroggy。 - #3644:Chat 路由保留 Codex 自定义工具元数据,感谢 @LanternCX。
- #3514:Chat→Responses 始终包含
reasoning_tokens,感谢 @yeeyzy。 - #3689:live 已是代理占位符时跳过备份 / 恢复,感谢 @YongmaoLuo。
- #3016:归一化 localhost 监听地址,感谢 @Alexlangl。
- #3775:规范化 Anthropic
system消息,感谢 @Dearli666。 - #3656:改进代理面板错误信息展示,感谢 @lzcndm。
- #2647:调高无限空白检测阈值 20 → 500,感谢 @NiuBlibing。
- #3702:智谱配额查询按所配 base URL 路由,感谢 @YongmaoLuo。
- #3518:适配 MiniMax 余额查询新接口与默认定价,感谢 @LaoYueHanNi。
- #3524:修复智谱 Coding Plan 预设与带版本号端点的模型探测,感谢 @makoMakoGo。
- #3614:模型目录改用相对文件名,感谢 @steponeerror。
- #3797:修复 Windows 退出后托盘图标残留,感谢 @iAJue。
- #3457:修复 Windows 任务栏图标,感谢 @ZhangNanNan1018。
- #3430:归一化 Windows 路径分隔符以匹配子目录技能更新,感谢 @Ninthless。
- #3626:关闭 macOS 输入框自动大写,感谢 @ZHLHZHU。
- #3593:修复 Codex VS Code 会话预览,感谢 @xwil1。
- #3228:对齐中文界面 VS Code 文案,感谢 @Games55k。
- #3411:刷新用户手册以反映当前应用支持,感谢 @makoMakoGo。
- #3772:修复 README release note 链接与赞助商标记,感谢 @null-easy。
也感谢所有在 v3.16.1 发布后反馈 Codex Chat 路由、本地代理接管、用量统计和平台兼容性问题的用户,很多补丁都来自这些真实使用场景里的复现线索。
下载与安装
访问 Releases 下载对应版本。
系统要求
| 系统 | 最低版本 | 架构 |
|---|---|---|
| Windows | Windows 10 及以上 | x64 |
| macOS | macOS 12 (Monterey) 及以上 | Intel (x64) / Apple Silicon (arm64) |
| Linux | 见下表 | x64 / ARM64 |
Windows
| 文件 | 说明 |
|---|---|
CC-Switch-v3.16.2-Windows.msi
| 推荐 - MSI 安装包,支持自动更新 |
CC-Switch-v3.16.2-Windows-Portable.zip
| 便携版,解压即用,不写入注册表 |
macOS
| 文件 | 说明 |
|---|---|
CC-Switch-v3.16.2-macOS.dmg
| 推荐 - DMG 安装包,拖入 Applications 即可 |
CC-Switch-v3.16.2-macOS.zip
| 解压后拖入 Applications,Universal Binary |
CC-Switch-v3.16.2-macOS.tar.gz
| 用于 Homebrew 安装和自动更新 |
Homebrew 安装:
brew install --cask cc-switch更新:
brew upgrade --cask cc-switchLinux
Linux 资产同时提供 x86_64 和 ARM64(aarch64)两种架构。资产文件名中包含架构标识,请按你机器的 uname -m 输出选择对应版本:
CC-Switch-v3.16.2-Linux-x86_64.AppImage/.deb/.rpmCC-Switch-v3.16.2-Linux-arm64.AppImage/.deb/.rpm
| 发行版 | 推荐格式 | 安装方式 |
|---|---|---|
| Ubuntu / Debian / Linux Mint / Pop!_OS | .deb
| sudo dpkg -i CC-Switch-*.deb 或 sudo apt install ./CC-Switch-*.deb
|
| Fedora / RHEL / CentOS / Rocky Linux | .rpm
| sudo rpm -i CC-Switch-*.rpm 或 sudo dnf install ./CC-Switch-*.rpm
|
| openSUSE | .rpm
| sudo zypper install ./CC-Switch-*.rpm
|
| Arch Linux / Manjaro | .AppImage
| 添加执行权限后直接运行,或使用 AUR |
| 其他发行版 / 不确定 | .AppImage
| chmod +x CC-Switch-*.AppImage && ./CC-Switch-*.AppImage
|