cc-switch

AI

cc-switch release notes.

Latest v3.19.2 · by cc-switchWebsitefarion1231/cc-switch

Release activity

Release activity — 13 releases across 13 days since Apr 23, 2026. Each cell is one day; darker means more releases that day. Nothing is recorded before Apr 23, 2026. Older weeks are hidden at this screen width.
MayJunJulAug
SundayNo releases on May 3, 2026No releases on May 10, 2026No releases on May 17, 2026No releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 20261 release on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 2026
MondayNo releases on May 4, 2026No releases on May 11, 2026No releases on May 18, 2026No releases on May 25, 20261 release on Jun 1, 20261 release on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 20261 release on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026No releases on Aug 17, 2026
TuesdayNo releases on May 5, 2026No releases on May 12, 2026No releases on May 19, 2026No releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 20261 release on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026
WednesdayNo releases on May 6, 2026No releases on May 13, 2026No releases on May 20, 2026No releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 20261 release on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026No releases on Aug 12, 2026
ThursdayNo releases on May 7, 2026No releases on May 14, 2026No releases on May 21, 2026No releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 20261 release on Jul 30, 20261 release on Aug 6, 2026No releases on Aug 13, 2026
FridayNo releases on May 8, 2026No releases on May 15, 2026No releases on May 22, 20261 release on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 20261 release on Jul 31, 2026No releases on Aug 7, 2026No releases on Aug 14, 2026
SaturdayNo releases on May 9, 20261 release on May 16, 2026No releases on May 23, 2026No releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 20261 release on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026

13 releases since Apr 23, 2026

Changelog

v3.19.2Latest

CC Switch v3.19.2

Added 4
  • Added search functionality to MCP, prompt, and Skills management panels
  • Added three-state toggle buttons for MCP and Skills application lists to batch enable or disable all items for a specific application
  • Added per-account ChatGPT subscription usage display in the authentication center
  • Added built-in pricing for Qwen3.8 Max at $2 per million tokens input, $6 output, and $0.25/$2.50 for cache reads and writes
Changed 5
  • Modified Claude Code integration to rewrite ANTHROPIC_AUTH_TOKEN placeholder to eliminate confirmation prompts when entering Copilot-managed sessions
  • Updated OMO configuration handling to detect and write to unified omo.jsonc or omo.json configuration files and merge opencode models from runtime reporting
  • Optimized backup export to use batch INSERT statements and sync recovery to use single transaction, reducing import time for large databases from 36.3 to 11.1 seconds
  • Removed NekoCode and Unity2.ai partner presets from all applications, README, and language files
  • Reordered Qiniu preset in the preset list
Fixed 8
  • Fixed Codex usage calculation that was overcounting by up to 6-8 times when counter interleaving occurred in session logs, now using per-event delta and full token signature deduplication validated against 1,900 real session files
  • Fixed OMO model selector to merge models actually reported by opencode models command
  • Fixed tool calls with missing function names from third-party Chat gateways to report explicit errors with structured logging instead of silently discarding them
  • Fixed Hermes prompt writing to target ~/.hermes/SOUL.md which is actually loaded instead of AGENTS.md which is never read
  • Fixed installation of Skills from repositories with same-named empty shell directories like ast-grep
  • Fixed nested Skill README links in skills.sh to prevent 404 errors
  • Fixed MCP toggle from per-row write pattern to atomic single-column UPDATE to prevent lost updates when two applications switch simultaneously
  • Fixed Skill update to reconfirm record existence and unchanged installation count before persisting, preventing slow update tasks from reviving deleted Skills
Security 2
  • Added size limits to usage script runtime, Grok session logs, Codex directory files, and proxy buffered response bodies to prevent unbounded reads
  • Enhanced deep link import confirmation dialog to display two previously collected but unshown credential fields

CC Switch v3.19.2

这一版的主线是把数字算对、把边界扎紧:Codex 用量统计修掉一个会把交错计数器文件多算数倍的缺陷——升级后新数据即刻正确,历史虚高可用一次手动重建回正(见「升级提醒」);一轮六项安全加固把用量脚本、会话日志、目录文件与代理缓冲响应体的无界读取全部封顶。日常顺手的部分也补齐了:MCP / 提示词 / Skills 面板可以搜索,MCP 与 Skills 还能按应用一键批量开关;认证中心逐账号显示 ChatGPT 订阅用量;OMO 用户拿回可用的集成。两条写盘路径批量化之后,大数据库的备份导入、自动同步与用量重导入不再动辄卡住。本版没有数据库迁移

English → | 日本語版 →


重点内容:你现在可以
  • 拿到正确的 Codex 用量数字:真实日志里存在计数器交错的文件——同一份快照被网关换着限额桶反复重播,或两个累计计数器交替出现——旧算法会把它们当成新增量,现场文件实测有 6 到 8 倍虚高。修复经近 1,900 份真实会话文件回放验证,与独立重算的理想值偏差 0.001%。历史数据不会被自动改写,回正方法见升级提醒
  • 在 MCP、提示词、Skills 面板里直接搜索:三个面板都有了搜索框;MCP 与 Skills 列表上的应用徽章还变成了三态开关,一键把某个应用在整张列表上批量启用或停用(#5954#5935 都是用户之声)。
  • 让新版 Claude Code 直接进入 Copilot 接管的会话:新版 Claude Code 对不认识的 API key 会弹确认框、且默认选中「No (recommended)」,此前接管写入的占位符正好撞上它,用户看到的是一个未登录的会话。现在改写 ANTHROPIC_AUTH_TOKEN 占位符,零弹窗直接进入。
  • 继续用 CC Switch 管理 OMO:OMO 4.19.3 起配置统一进 ~/.omo/omo.jsonc,旧文件不再被读取,此前的供应商切换看似成功、实则全部落空。现在检测到统一配置文件(omo.jsoncomo.json)就写进它的 "[opencode]" 分区。OMO 表单的模型选择器还会合并 opencode models 实际报告的运行时模型。
  • 在认证中心看到每个 ChatGPT 账号的订阅用量:多账号场景下不再需要逐个切换查看。
  • 在大数据库上不再动辄卡住:备份导出改为批量 INSERT、同步恢复改为单事务——此前每行一次 fsync 正是自动同步周期性卡顿的元凶;Codex 用量全量重导入在真实语料上从 36.3 秒降到 11.1 秒(macOS),Windows 收益更大。
  • 看到被网关吞掉的工具调用,而不是被静默晾在原地:第三方 Chat 网关返回缺函数名的工具调用时,转换层此前把它们丢掉还报「本轮完成」,Codex 于是无声地结束了循环。现在这种情况会明确报错,且丢弃点带结构化日志,#4341 这类问题终于可以从真实流量里诊断。
  • 让 Hermes 提示词真正生效:写入 Hermes 实际加载的 ~/.hermes/SOUL.md,而不是它从不读取的 AGENTS.md
  • 装上此前装不了的 Skill:ast-grep 这类带同名空壳目录的仓库能装了;skills.sh 嵌套 Skill 的 README 链接不再 404(存量记录需重装一次恢复,见升级提醒)。

使用攻略

本版的改动集中在用量统计与扩展管理面板上,建议结合以下文档了解:

  • 用量统计:用量看板的数据来源与统计口径,理解交错计数器多算是怎么发生的、什么情况下需要手动重建。
  • MCP 管理Skills 管理:新的搜索与批量开关所在的两个面板。

[!WARNING]

唯一官方渠道声明(请务必阅读)

CC Switch 是完全免费、开源的桌面应用,不会向用户收取任何费用。请仅通过下列官方渠道获取本软件:

类别唯一官方
官网ccswitch.io
源码github.com/farion1231/cc-switch
下载GitHub Releases
作者@farion1231
举报山寨GitHub Issues

任何向你收费、要求充值、或索取登录凭据的"CC Switch"网站或客户端均为假冒。如果你被诱导支付了费用,请立即停止操作并通过 GitHub Issues 反馈。


概览

CC Switch v3.19.2 是一次以正确性为主的维护版本,主线有三条。第一条是把数字算对:Codex 会话导入器在计数器交错的文件上会把用量多算数倍(#3011),本版换用「优先取每轮增量、按完整签名识别重播」的算法,并以近 1,900 份真实会话文件的回放验证收口;备份与用量导入两条写盘路径同时批量化,大数据库导入卡顿显著缓解(#2100 或将受益)。

第二条是把边界扎紧:一轮外部贡献的安全加固把用量脚本运行时、Grok 会话日志、Codex 目录文件与代理缓冲响应体的无界读取全部封顶,深链导入确认框补上两个此前收集却不显示的凭据字段。第三条是把日常顺手的东西补齐:MCP / 提示词 / Skills 三个面板的搜索、MCP 与 Skills 的批量应用开关、认证中心的逐账号订阅用量,以及 OMO 的统一配置与运行时模型两项适配。此外还有 Copilot 登录、Hermes 提示词、Skill 安装等七个具体故障修复。本版没有数据库 schema 迁移(版本号保持 v16),升级轻量。

发布日期:2026-08-06

更新规模:24 commits | 109 files changed | +12,340 / -1,897 lines


新功能
管理面板:搜索与批量应用开关

MCP、提示词、Skills 三个面板都有了共享的搜索框——按 Esc 清空,且只在有内容时拦截全局返回快捷键,不影响你平时的操作习惯。MCP 与 Skills 列表顶部的应用计数徽章变成了三态开关按钮:一键把某个应用在整张列表上批量启用或停用,逐条点开关的日子结束了(#5954#5935)。

批量操作刻意串行执行而不是并发——每个应用的 live 配置是单个文件,并发写会互相覆盖;失败的条目会被收集起来一次性报告。批量开关作用于整张列表而不是搜索过滤后的子集,避免「以为只开了过滤结果、实际状态不明」的歧义。

底层还顺手修掉两个数据层的老问题:MCP 开关从「读整行、改内存、写整行」改为单列原子 UPDATE,两个应用几乎同时切换时不再互相丢失更新;Skill 更新落库前会重新确认记录仍然存在、安装代数未变,慢速更新任务不再可能复活一个刚被卸载的 Skill。搜索索引是显式白名单——环境变量与请求头永远不进可搜索文本。

认证中心:逐账号订阅用量

设置 → 认证中心现在给每个 ChatGPT(Codex OAuth)账号内联显示订阅用量,复用供应商卡片页脚已有的查询——按账号去重、缓存五分钟、挂载时拉取一次不轮询。多账号用户不用再逐个切换查看余量。(#4887

OMO 模型选择器合并运行时模型

OMO 表单的模型选择器此前只有静态列表;现在还会运行 opencode models,把本机安装的 OpenCode 实际报告的模型合并进来。这个辅助进程被刻意关进沙箱:禁用项目级配置发现、工作目录钉死在 OpenCode 配置目录——打开一个表单绝不会执行某个项目的 .opencode/ 插件;整个过程限时 20 秒,超时后杀掉完整进程树(macOS / Linux 用进程组,Windows 用 taskkill /T,WSL 在发行版内部用 timeout)。任何失败都回落到静态列表并弹提示。(#5522

Qwen3.8 Max 内置定价

qwen3.8-max 按官方牌价播种:每百万 token 输入 $2 / 输出 $6,缓存读取 $0.25,缓存写入 $2.50(输入价的 125%,官方显式上下文缓存费率)。按「不存在才插入」播种,你自己改过的价格不受影响。(#6053


变更
预设清单维护

NekoCode 与 Unity2.ai 的合作伙伴预设从所有应用、README 与语言文件中移除;七牛预设的排序调整。


修复
Codex 用量在计数器交错时被多算(最高数倍)

会话导入器此前从单一高水位线对累计值求差——一份文件里只有一个单调计数器时这是对的,但真实日志里存在两种交错形态:网关把同一份未变化的快照换着限额桶反复重播,以及两个真正不同的累计计数器交替出现。旧算法在这两种形态上都会把重播或交替当成新增量,现场文件实测有 6 到 8 倍虚高。

现在导入器优先读取每个事件显式携带的「本轮用量」,并按完整 token 签名识别重播。去重刻意收窄:一份快照只与同一来源自己的上一份签名紧邻的前一个 token 事件比对——不与其它来源的旧签名比对,因为合法的计数器重置会重现旧数值,扫全表会把它误吞。只有累计值的旧格式回退到单一全局基线,语义与从前一致。

修复用近 1,900 份、共 1.7 GB 的真实会话文件回放验证:与独立重算的理想值偏差 0.001%,残余差异全部是旧算法把计数器重置截断吞掉、新算法合法救回的请求。历史数据刻意不改写——回正方法见「升级提醒」。(#3011#3015

被丢弃的工具调用不再伪装成「本轮完成」

第三方 Chat 网关偶尔会返回缺函数名的工具调用,Chat → Responses 转换层此前把它们静默丢弃、还照样报告本轮 completed——Codex 看到一个「成功但无事可做」的回合,就安静地结束了智能体循环,一个本可诊断的上游故障变成了无声停摆。

现在,当一轮里的工具调用全部被丢弃、没有任何可用项时,流式路径发出 response.failed,非流式路径报转换错误;判定挂在 status == "completed" 上,finish_reason: length 的截断保持自己的 incomplete 语义不受影响。三个丢弃点都会记录结构化、不含内容的日志字段——是否有 call id、参数字节数、结束原因——#4341 这类问题终于可以从真实流量里诊断。含有效工具调用的回合、纯文本回合与截断回合行为不变。

OMO 的配置写进了它不再读取的文件

OMO 4.19.3 把配置统一进 ~/.omo/omo.jsonc(其次 omo.json),迁移时会把旧的按应用文件改名挪走。此后 CC Switch——只认识旧路径——一直在写一个不在 OMO 配置链上的文件,供应商切换看似成功、实则全部落空(#5945)。

现在检测到统一配置文件就把 OpenCode 配置写进 OMO 的 "[opencode]" 分区——并且只写在这里,因为 OMO 对根层 schema 严格校验,任何未知根键都会让它丢弃整份文件。写入把文档当 JSON5 对待:注释、键序与行尾原样保留,内容没变化就不落盘;每次写出前还会把结果重新解析、与预期做语义比对——如果序列化会损坏文档,写入被拒绝、原文件原样保留,绝不落盘一份坏文件(已知触发场景见「升级提醒」)。同一改动还把所有受管应用在 Windows 上的原子写入换成 ReplaceFileW,堵上了旧「先删后改名」序列里目标文件短暂不存在的窗口。

Copilot 接管在新版 Claude Code 上进不了登录态

新版 Claude Code 对不认识的 API key 会弹确认框、默认选中「No (recommended)」——Copilot 接管此前写入的 ANTHROPIC_API_KEY 占位符正好撞上它:按推荐走,key 被忽略,用户面对的是一个未登录的会话。接管现在改写 ANTHROPIC_AUTH_TOKEN 占位符,零弹窗直接进入;在供应商表单高级区显式选择了 ANTHROPIC_API_KEY 字段的供应商保持旧行为。Copilot 转发路径还补上了其它路径早就有的 [1M] 上下文标记剥离,claude-*[1M] 形态的模型 ID 不再原样发给 GitHub 的 API。(#5832

Hermes 提示词写错了文件名

Hermes 从 ~/.hermes/ 加载的身份文件是 SOUL.md,从不在那里找 AGENTS.md——后者是项目级上下文,从工作目录向上发现。CC Switch 的提示词管理从加入 Hermes 支持那天起写的就是 ~/.hermes/AGENTS.md,启用 Hermes 提示词产出的是一个死文件。现在读写 ~/.hermes/SOUL.md,既有的回填机制照常生效:你自己写过的 SOUL.md 会先导入数据库再被替换。(#5777

带同名空壳目录的 Skill 仓库装不上

安装 ast-grep 官方 Skill 报「缺少 SKILL.md」:这个仓库在根下有一个与 Skill 同名的空壳目录,真正的 Skill 嵌套在更深处,而解析器返回了第一个名字匹配的目录。源目录解析现在以 SKILL.md 本身为锚点——没有它的目录绝不会被选中——顺带修好了同类仓库上「更新检查永远报有更新」的幻影提示。(#4141

skills.sh 嵌套 Skill 的 README 链接 404

skills.sh 的发现流程只报告 Skill 的末级目录名;安装时能解析出真实的嵌套目录,但入库的 README 链接仍按目录名猜测构建,点开就是 404。链接现在从安装器实际解析出的目录生成。修复只作用于安装链路——旧版本写入的记录要重装一次才能恢复,见「升级提醒」。(#6111

全部应用启用时头部按钮被裁掉

所有应用页签、项目切换器与接管开关同时显示时,头部溢出,「添加供应商」按钮被裁掉。主要操作现在固定在不收缩的区块里,应用切换器变成宽度感知:放不下的应用折叠进「更多」弹出层,当前应用始终可见。

路由状态动画在后台空耗 GPU

路由状态指示器的脉冲动画在窗口失焦时照常运行,为一个纯装饰效果持续占用 GPU。现在窗口焦点通过 data 属性与 CSS 控制心跳——失焦时动画冻结在完整不透明度,系统的「减少动态效果」偏好则完全禁用它。数据轮询不受影响,暂停的只是装饰。(#5767


安全加固
无界读取全部封顶,确认框不再隐藏字段

一轮六项的外部贡献加固(#5919):

  • 用量脚本限资源限时:用量脚本可以经深链或同步的数据库到达本机,此前跑在没有任何限制的 JS 运行时上,一句 while(true) 就能把后端线程永远挂死。现在运行时强制 5 秒中断、16 MiB 内存与 256 KiB 栈上限。
  • Grok 会话日志读取设界:跳过超过 50 MiB 的文件,目录递归限深 16 层且不再跟随符号链接——~/.grok/sessions 下的一个符号链接环此前能造成栈溢出。
  • Codex 模型目录路径收紧model_catalog_json 此前只看文件名就信任任意绝对路径;现在必须解析到 Codex 配置目录之内——canonicalize 之后复查一遍,符号链接逃不出去——单次读取上限 32 MiB。
  • 代理缓冲响应体封顶:会被完整收集的响应体——非流式响应、错误响应与需要整体校验的路径——上限 128 MiB,并且在分块到达时即时累计、越限立即断开连接,而不是先收完再比较;流式路径(透传与流式转换)本就不整体缓冲,不设总量上限。
  • 解压预算前置:解压配额加在解码器读取侧,gzip、deflate、zstd、brotli 全覆盖,压缩炸弹无法不受控地膨胀;越限响应映射为独立的 502,不会被误判为可重试的网络错误。
  • 深链确认框补上两个字段:供应商导入确认框此前会解析并持久化 usageAccessTokenusageUserId,却从不显示它们;现在两个字段都在批准前展示,令牌照常脱敏。

性能
备份:导出批量化,恢复单事务

两个方向各有一个独立的成本。导出侧此前每行数据一条 INSERT,导入大备份时 SQLite 要逐条解析、准备、销毁数万条语句;现在按 200 行 / 1 MB 一批生成多行 INSERT,语句数少两个数量级,备份文件本身也缩小约 4 倍。恢复侧,每次 WebDAV / S3 同步导入后要把保留在本地的表逐行写回,此前每一行都是一个隐式事务——每行付一次完整的日志写入与 fsync,正是大库自动同步周期性卡住应用的元凶;现在整个恢复在单个事务内完成。

旧格式的单行备份照常导入,新格式也在所有随应用分发的 SQLite 支持范围内,跨版本双向兼容。#2100 报告的跨机导入卡死很可能因此缓解——欢迎在该 issue 反馈实测结果。(#6122

Codex 用量全量重导入提速约 3 倍,Windows 收益更大

全量重导入——导入 v16 之前的 SQL 备份、跨机恢复后游标不匹配、或手动重建时触发——在大语料上会把一个 CPU 核心跑满数分钟:每个 token 事件各自构成一个自动提交事务,每行付一次完整的日志创建 / fsync / 删除循环;每个归档文件还要跑一条用不上索引的游标继承查询。

现在事件按 1,000 条一批提交,批间释放连接锁,界面查询得以插队;游标在与最后一批相同的事务里推进,崩溃永远不会让游标领先于数据;游标与模型定价每趟预载一次,热点语句预编译缓存。1,920 份 / 1.7 GB 的真实语料在 macOS(release 构建)上从 36.3 秒降到 11.1 秒;Windows 上每行 fsync 开销约数毫秒,绝对收益大一个数量级。改动前后回放同一语料验证等价:82,000 行导入结果在所有导出列上逐字节一致,导入 / 跳过计数完全相同。


升级提醒
本版没有数据库迁移

v3.19.2 不含 schema 迁移(版本号保持 v16),不会触发升级前备份,升级即用。

Codex 历史用量虚高需手动重建一次

交错计数器修复只保证今后正确:历史行刻意不改写,也没有自动重建。如果你的看板里 Codex 数字高得离谱、且会话文件带交错形态,升级后到 用量页 → Codex 用量维护 → 「重建 Codex 用量」 手动重建一次即可——重建前会自动备份数据库;已删除的会话日志对应的历史无法重新导入。本版的导入提速让这次重建比以往快约 3 倍。

大多数安装不受影响:不含交错形态的数据上,新旧算法的差异在千分之一以内。

嵌套 Skill 的存量记录需要重装一次

通过 skills.sh 安装、README 链接 404 的存量 Skill,卸载后重装即可恢复正确链接;原地「更新」不会重写它。

升级后的首次同步会整体重传一次备份文件

备份 dump 的格式变了,而同步协议把它当作整体哈希的不透明工件,所以升级后第一次 WebDAV / S3 同步会完整重传一次 db.sql——一次性、无害。

Copilot 占位符在下次接管写入时生效

AUTH_TOKEN 占位符在接管下一次重写 live 配置时生效——切换供应商或重启接管即可。在供应商表单高级区显式选过 ANTHROPIC_API_KEY 字段的供应商不受影响,你的选择原样保留。

OMO 统一配置按文件存在性检测

判定依据是文件是否存在、而不是 OMO 版本:~/.omo/omo.jsonc(或 omo.json)存在时就地编辑它;两者都不存在时照旧写传统的 OpenCode 层文件。已知限制:如果统一配置文件里含块注释/* … */),写入会报错拒绝以保护文档——行注释(//)不受影响。在上游 JSON5 写入器修复之前,切换供应商前请先移除块注释。

批量开关作用于整张列表

管理面板的批量应用开关作用于全部条目,而不是搜索过滤后的子集。

代理缓冲响应体上限 128 MiB

需要完整缓冲的代理响应——非流式响应与错误响应——超过 128 MiB 时以 502 失败,不再转发;透传的流式响应不受影响。正常的 LLM 响应最多也只有几 MB,这个上限只会在上游异常时触发;这类失败会终止请求,不触发向下一个地址的故障转移。


风险提示
沿用的提示

xAI Grok OAuth 登录:复用官方 Grok CLI 的公开 OAuth 客户端身份,使用可能导致账号被限制或封禁——详见 v3.18.0 release notes

Codex OAuth 反向代理:使用 ChatGPT 订阅的 Codex OAuth 反代可能违反 OpenAI 服务条款,详情见 v3.13.0 release notes

SuperGrok 配额查询:供应商卡片的配额展示依赖 grok.com 的非公开计费端点,xAI 调整接口后可能失效——详见 v3.19.0 release notes

第三方供应商路由:通过 CC Switch 本地代理把 Codex、Claude Desktop 或 Grok Build 的请求转换并转发到第三方供应商时,各供应商对计费、合规与数据留存的约束不同,请在使用前阅读目标供应商的服务条款。

用户启用上述功能即表示自行承担相关风险。CC Switch 不对因使用这些功能而导致的任何账号限制、警告或服务暂停承担责任。


致谢

这一版 24 个提交里有 13 个 PR 来自外部贡献者——9 位贡献者,覆盖了从用量头条修复到安全加固的几乎每一条主线。

代码贡献
  • #5854:Codex 交错计数器用量修复——本版头条,感谢 @MJYKIM99。作者自带真实文件证据、按评审意见三轮打磨到全量回放逐位收敛;也感谢 @ayanamislover 用自己的交错文件独立回放,与我们的验证互证。
  • #5919#6122#6119:六项安全加固、备份性能改造与 skills.sh README 修复,感谢 @zayokami——本版的「安全加固」与「性能」两个章节大半出自这三份工作。
  • #6011#5522#5767:OMO 统一配置适配、运行时模型发现与路由状态动画的 GPU 修复,感谢 @allenxu09。
  • #5967:管理面板搜索与批量开关,并顺手修掉数据层两个并发老问题,感谢 @YUZHEthefool——他还在 #6119 中协作把修复收敛到最小形态。
  • #4887:认证中心逐账号订阅用量,感谢 @SaladDay。
  • #5832:Copilot 接管兼容新版 Claude Code,感谢 @Suaig。
  • #5779:Hermes 提示词文件名修复,感谢 @mmm-05610——从报告 #5777 到提交修复一人完成。
  • #4153:Skill 源目录以 SKILL.md 为锚点解析,感谢 @makoMakoGo。
  • #6053:Qwen3.8 Max 内置定价,感谢 @mhy1227。
问题反馈
  • 感谢 @KeShih 在 #3011 中精确指出「total_token_usage 非单调 / 重放被当作新增量」——本版头条修复的问题定义直接来自这条报告,他还在 #3015 中先行提出了修复思路。
  • 感谢 @Syuryuuki 报告 OMO 统一配置未适配(#5945)、@abcfy2 报告 ast-grep Skill 无法安装(#4141)、@mortalBibo 报告 skills.sh 嵌套 Skill 链接 404(#6111)。
  • 感谢 @kith13(#5954)与 @Getianyu1998(#5935)——管理面板的搜索与批量开关正是从这两条建议来的。

下载与安装

访问 Releases 下载对应版本,或从官网 ccswitch.io 获取(下载经 Cloudflare 边缘节点分发,不依赖 GitHub 可达)。

系统要求
系统最低版本架构
WindowsWindows 10 及以上x64 / ARM64
macOSmacOS 12 (Monterey) 及以上Intel (x64) / Apple Silicon (arm64)
Linux见下表x64 / ARM64
Windows
文件说明
CC-Switch-v3.19.2-Windows.msi推荐 - MSI 安装包,支持自动更新
CC-Switch-v3.19.2-Windows-Portable.zip便携版,解压即用,不写入注册表

Windows ARM64 设备请选择文件名中带 arm64 标识的对应制品。

macOS
文件说明
CC-Switch-v3.19.2-macOS.dmg推荐 - DMG 安装包,拖入 Applications 即可
CC-Switch-v3.19.2-macOS.zip解压后拖入 Applications,Universal Binary
CC-Switch-v3.19.2-macOS.tar.gz用于 Homebrew 安装和自动更新

Homebrew 安装:

brew install --cask cc-switch

更新:

brew upgrade --cask cc-switch
Linux

Linux 资产同时提供 x86_64ARM64aarch64)两种架构。资产文件名中包含架构标识,请按你机器的 uname -m 输出选择对应版本:

  • CC-Switch-v3.19.2-Linux-x86_64.AppImage / .deb / .rpm
  • CC-Switch-v3.19.2-Linux-arm64.AppImage / .deb / .rpm
发行版推荐格式安装方式
Ubuntu / Debian / Linux Mint / Pop!_OS.debsudo dpkg -i CC-Switch-*.debsudo apt install ./CC-Switch-*.deb
Fedora / RHEL / CentOS / Rocky Linux.rpmsudo rpm -i CC-Switch-*.rpmsudo dnf install ./CC-Switch-*.rpm
openSUSE.rpmsudo zypper install ./CC-Switch-*.rpm
Arch Linux / Manjaro.AppImage添加执行权限后直接运行,或使用 AUR
其他发行版 / 不确定.AppImagechmod +x CC-Switch-*.AppImage && ./CC-Switch-*.AppImage
View originalPermalink
How v3.19.2 went
v3.19.1

CC Switch v3.19.1

Added 3
  • Support direct connection for DeepSeek, Volcano Ark Coding Plan, and Tencent Hunyuan in Codex without requiring local routing
  • Official vendor model catalog mirroring mechanism for DeepSeek that preserves freeform apply_patch tool and GPT-5 prompt framework
  • Tencent Hunyuan TokenHub Codex preset with native Responses API support
Changed 3
  • DeepSeek and Volcano Ark Coding Plan presets changed from Chat format to native Responses API format
  • Removed routing requirement indicators and prompts for DeepSeek, Volcano Ark, and Tencent Hunyuan suppliers
  • Deep link import confirmation demasking is now more strict with less truncation
Fixed 7
  • Claude Desktop usage statistics counted twice since v3.18.0 are now corrected automatically
  • Switching back to official Codex endpoint no longer causes 401 error with missing login interface
  • Grok Build updates from settings page now work without os error 2
  • Grok Build proxy interception no longer results in 404 error and now properly tracks usage
  • Added pricing for eight models previously recorded at $0: gpt-5.3-codex-spark, gemini-3.5-flash-lite, kimi-k2.7-code-highspeed, glm-5-turbo, glm-5v-turbo, qwen3.6-flash, claude-opus-4-6, and claude-sonnet-4-6
  • Corrected 39 interface text language issues across multiple languages
  • Fixed missing Traditional Chinese translations in About page tool management section
Removed 2
  • Removed 3,166 lines of unused code with no callers
  • Removed four unused npm dependencies

CC Switch v3.19.1

这一版的主线是把上一版的尾巴收干净:三家国产 Codex 网关经确认原生支持 Responses API,不用再开本地路由接管——DeepSeek 与火山方舟 Coding Plan 的预设从走本地路由改为直连,新加入的腾讯混元 TokenHub 一上来就是直连;四个能在日常里撞上的故障被修掉——Claude Desktop 用量自 v3.18.0 起被算了两遍(升级后历史数字会自动回正,但有 30 天窗口,见「升级提醒」)、切回官方 Codex 会卡在 401 且看不到登录界面、从设置页升级 Grok Build 只报一句 os error 2、Grok Build 开启接管后直接 404。另有 8 个此前一直按 $0 记账的模型补上内置定价,39 个界面文案的语言问题被修正。本版没有数据库迁移,并且是本项目第一个删除量超过新增量的版本。

English → | 日本語版 →


重点内容:你现在可以
  • 让 DeepSeek、火山方舟 Coding Plan、腾讯混元在 Codex 里直连:三家的官方 Codex 文档都已确认端点原生提供 Responses API。DeepSeek 与火山方舟 Coding Plan 的既有预设从 Chat 格式改为原生格式,供应商卡片上的「需要路由」标记与切换时的提示随之消失,请求不再经过本地代理的协议转换;腾讯混元 TokenHub 是本版新增的预设,从一开始就是原生格式。注意 DeepSeek V4 Pro 暂时还不能直连——厂商侧尚未开通它的 Codex 集成,直连请用 V4 Flash(预设默认),详见升级提醒
  • 让 DeepSeek 用上 DeepSeek 自己发布的模型目录:新的「官方厂商目录镜像」机制把厂商公布的 models.json 原样下发给该厂商自己的端点,freeform apply_patch 与配套的 GPT-5 提示词框架成套保留,不再被压成中性模板。判定只认域名、不认模型名——同一个模型在聚合站上未必实现同样的能力。
  • 拿到正确的 Claude Desktop 用量数字:自 v3.18.0 起,经本地网关的 Claude Desktop 流量在看板里被记了两遍——一遍来自代理、一遍来自会话日志导入,token、费用与请求数约翻倍。本版修好后,明细行还在的日子会自动回到正确数字,不需要重建
  • 切回官方 Codex 之后能正常登录:此前从第三方供应商切回内置的官方 Codex 条目时,第三方的 key 会留在 ~/.codex/auth.json 里,Codex 拿着它去请求官方端点,稳定 401——又因为文件存在,它不会退回自己的登录界面,在应用里没有出路。
  • 从设置页把 Grok Build 升上去grok update 自 0.2.112 起改为内部调用 npm 完成分发,而图形界面启动的应用看不到 node,升级只会报一句 Error: No such file or directory (os error 2)
  • 给 Grok Build 开启接管而不是撞上 404:API 格式被手动改成 OpenAI Chat 或 Anthropic 的 Grok Build 供应商,开启接管后请求会打到一个代理没有注册的路由上,直接 404,且没有故障转移、没有用量记录。同时,Grok Build 的每次请求此前都被当成新会话,缓存键注入与按会话聚合都失效了。
  • 看到 8 个此前一直按 $0 记账的模型的真实成本gpt-5.3-codex-sparkgemini-3.5-flash-litekimi-k2.7-code-highspeedglm-5-turboglm-5v-turboqwen3.6-flash,以及不带日期后缀的 claude-opus-4-6 / claude-sonnet-4-6
  • 在繁体中文界面里看懂「关于」页的工具管理:30 个只补了简中 / 英文 / 日文的文案漏了繁体中文,因为 i18next 会静默回落英文,这块面板自 v3.16.0 起一直是半英文的。另有 9 个文案在所有语言下都显示简体中文。
  • 在官方订阅与 DeepSeek 之间来回切,而不是二选一auth.jsonconfig.toml 都是单槽文件,Codex 自己存不下第二份凭据。厂商的一键脚本会把这份配置改造成自己专用的,而 CC Switch 是按供应商整段快照与还原——这也是它和官方脚本最实际的区别,详见下文对照

使用攻略

本版的改动集中在 Codex 的连接方式与用量统计口径上,建议结合以下文档了解:

  • 本地路由:哪些供应商需要开启接管、接管做了什么。本版之后 DeepSeek、火山方舟 Coding Plan 与腾讯混元都不再需要它。
  • 用量统计:用量看板的数据来源与统计口径,理解 Claude Desktop 双算是怎么发生的、修复后为什么部分历史日期无法回正。
  • 在 Codex 中用 DeepSeek 这类 Chat 格式 API:这篇攻略讲的是本地路由如何把 Responses 转换成 Chat Completions,已针对本版更新。开头新增了一节判定:用预设新建的 DeepSeek 走直连不需要路由,但升级前保存的供应商、以及要用 deepseek-v4-pro 时仍然需要;机制部分对 Kimi、智谱 GLM、SiliconFlow 等仍是 Chat 形态的供应商完全适用。

[!WARNING]

唯一官方渠道声明(请务必阅读)

CC Switch 是完全免费、开源的桌面应用,不会向用户收取任何费用。请仅通过下列官方渠道获取本软件:

类别唯一官方
官网ccswitch.io
源码github.com/farion1231/cc-switch
下载GitHub Releases
作者@farion1231
举报山寨GitHub Issues

任何向你收费、要求充值、或索取登录凭据的"CC Switch"网站或客户端均为假冒。如果你被诱导支付了费用,请立即停止操作并通过 GitHub Issues 反馈。


概览

CC Switch v3.19.1 是一次维护性发布,主线有三条。第一条是国产 Codex 网关集体转向原生 Responses:DeepSeek 直连 api.deepseek.com,并带来一个可复用的机制——把厂商自己发布的模型目录原样镜像下发,让 freeform apply_patch 与配套的 GPT-5 提示词框架保持自洽,而不是被折叠成中性模板;火山方舟的 Coding Plan 端点 /api/coding/v3 在官方文档确认后跟进;腾讯混元的 TokenHub 作为新预设加入。三者都不再需要开启本地路由接管。

第二条是四个现场可见的故障修复:Claude Desktop 的用量自 v3.18.0 起被记两遍(#5938);切回内置官方 Codex 供应商会留下第三方的 auth.json,导致 401 且看不到登录界面;grok update 在图形界面下只报 os error 2;Grok Build 的代理接管在非 Responses 后端上 404,且每次请求都被当作新会话(#5677)。第三条是减重:3,166 行已无任何调用方的代码与 4 个未使用的 npm 依赖被删除——本版是本项目第一个删除量超过新增量的版本。此外,深链导入确认框的脱敏更严、截断更少,8 个此前按 $0 记账的模型补上定价,4 个内置定价与厂商牌价重新对齐。本版没有数据库 schema 迁移(版本号保持 v16),升级轻量。

发布日期:2026-07-31

更新规模:12 commits | 71 files changed | +2,324 / -3,680 lines


新功能
官方厂商模型目录镜像(DeepSeek 首发)

Codex 从一个目录文件读取模型能力,而 CC Switch 此前对所有供应商都用中性模板生成这个目录——对聚合站这是对的,但会剥掉厂商自家集成所依赖的能力。现在,凡是随应用内置了官方目录的厂商,直接镜像下发它自己的那一份。

DeepSeek 是第一家:内置文件带着 deepseek-v4-flashdeepseek-v4-pro 两个条目,保留 apply_patch_tool_type: "freeform"web_search_tool_type: "text"supports_search_tool: true、low / high / max 三档思考强度,以及 base_instructionsmodel_messages 里那份 17,644 字符的 GPT-5 提示词框架——这份框架必须与 freeform 工具注册一起走,因为框架本身就在指导模型使用 apply_patch,拆开任何一半都会不自洽。

判定条件刻意收得很窄:供应商必须落在原生 Responses 档并且 base_urldeepseek.com 上。只认域名、不认模型品牌——同一个模型在转售它的聚合站上未必实现同样的能力,按品牌授予等于把能力凭空发给了没有实现它的服务。供应商自己在目录里写死的条目仍然优先;遇到不认识的模型 ID 会克隆旗舰条目,但保留它自己的名称。其它所有档位生成的目录与改动前逐字节一致。

腾讯混元(TokenHub)Codex 预设

Codex 的预设选择器里新增「Tencent Hunyuan」,归入「开源官方」分类,位于百炼与阶跃之间。选中即写好 https://tokenhub.tencentmaas.com/v1wire_api = "responses" 与 TokenHub 强制要求的 disable_response_storage = true;声明 hy3hy3-preview 两个模型,上下文窗口 256K(而不是接受 Codex 的 128K 默认值),并标记为纯文本——Codex 不会再把 view_image 的图片载荷发给读不了图的模型。

因为是原生 Responses 供应商,Codex 直连网关、无需本地路由;生成的目录走中性原生模板,会固定 shell_type = "shell_command" 并去掉原生网关拒收的 freeform apply_patch 注册。地址管理器与测速里从一开始就有两个候选:主域名与官方备用的 .cn 域名;区域独立的国际站刻意排除在外,因为 API Key 不跨站通用。

注意 API Key 需要是开通了 Hy3 权限的 TokenHub key,Coding Plan 与 Token Plan 的订阅 key 在这个端点上用不了。

8 个此前按 $0 记账的模型补上内置定价

gpt-5.3-codex-sparkgemini-3.5-flash-litekimi-k2.7-code-highspeed(按 Kimi 的 Turbo 惯例,取 kimi-k2.7-code 基准价的 2 倍)、glm-5-turboglm-5v-turboqwen3.6-flash 在内置定价表里根本没有行,前缀回退也够不着,因此每一次请求都被记成零成本。

另外两行 —— 不带日期后缀的 claude-opus-4-6claude-sonnet-4-6 —— 补的是一个更隐蔽的缺口:模型 ID 解析只会剥掉日期后缀、从不补上,所以一条带着无日期 ID 的日志谁也匹配不到。八行全部按「不存在才插入」播种,你改过的价格不受影响。

Grok Build 加入故障转移页签与环境变量冲突检测

设置页的故障转移在 Claude Code、Codex、Gemini 之外新增第四个 Grok Build 页签。启动时的环境变量冲突横幅也开始检测 XAI_API_KEYGROK_DEFAULT_MODEL——这两个变量会静默盖掉你在应用里选的供应商。检测区分了精确名与前缀,所以 CC Switch 自己用的 GROK_BIN_DIRGROK_HOME 不会被误报。


变更
DeepSeek 与火山方舟 Coding Plan 改为直连 Codex,不再需要本地路由

两家的预设此前都标记为 OpenAI Chat 格式,因此都是「需要接管」的:供应商卡片带着「需要路由」标记,未开代理就切换会弹提示,每个请求都要走 Codex → 本地代理 → Responses 转 Chat → 上游这条链路。

现在两家的官方 Codex 集成文档都已确认端点提供 Responses API——DeepSeek 的 api.deepseek.com 与火山方舟的 /api/coding/v3——两个预设随之声明为原生 Responses,标记与提示消失,Codex 直连网关。两家写出的 config.toml 都没有变化(本来就是 wire_api = "responses"),变的是目录生成档位;DeepSeek 另外把上下文窗口从 1,000,000 对齐到厂商自己的 1,048,576。

BytePlus 国际站刻意保持 Chat 路由不变,等国际站文档单独核实后再说。火山预设里还留了一条值得知道的计费注记:按量计费的 /api/v3 端点绝不能加进这个预设的备用地址——它单独计费,不走套餐额度。

目录的显示名与上下文窗口改为「显式才生效」

这两个字段此前带着本地默认值——模型 ID 与 128,000 的窗口——并且在厂商值有机会参与之前就应用了,镜像目录里 1M 的窗口会被 128K 覆盖掉。现在它们是可选的,回退挪到条目构造那一层,于是「留空」才真正等于「沿用厂商声明的值」。显式写了这两个字段的供应商,以及所有非镜像档位,生成的目录与之前完全一致。


用 CC Switch 接入,和直接跑官方脚本有什么不同

DeepSeek 官方提供了一条 Codex 一键接入脚本,它能用、会备份、也带恢复菜单。如果你这台机器就打算专心用 DeepSeek,跑官方脚本没有任何问题。 CC Switch 解决的是另一个场景:你要在多个供应商之间来回切。

换供应商时,登录态与配置整套换,不用自己备份

~/.codex/auth.json~/.codex/config.toml 都是单槽文件——Codex 本身没有多凭据存储,一份配置只能对应一个供应商。CC Switch 在你切走某个供应商时,把这一对文件的内容整段快照进那个供应商的记录里;切回来时再整段写回。所以「ChatGPT 订阅 → DeepSeek → 切回订阅」通常不需要重新 codex login,第三方之间来回切则完全无需手工动作。手工做同一件事,你得在每次切换前后各拷贝一次这两个文件,漏一次,被覆盖的 OAuth 凭据就只能重新登录找回。

官方脚本的取舍不同:它把 config.toml 改造成 DeepSeek 专用配置——顶层写死 preferred_auth_method = "apikey"forced_login_method = "api",把认证方式固定为 API Key,并且删除 config.toml 里已有的 [profiles.*](Codex 自带的多供应商切换机制)。你的 ChatGPT 登录凭据本身没有被删,auth.json 原封不动;但在这份配置下用不上,想回订阅需要跑脚本的恢复菜单整体回滚——回滚会连带丢掉安装之后你对 config.toml 的任何手改。脚本本身也只能在 flash 与 pro 之间切换,没有「换到第三个供应商」这一档。

换供应商之后,codex resume 里的旧会话还在

Codex 的续聊列表按会话里记录的 model_provider 分抽屉。CC Switch 创建的所有第三方 Codex 供应商——不管是 DeepSeek、Kimi 还是聚合站——都写同一个标识 custom,所以在它们之间怎么换,codex resume 一直能看到全部历史。CC Switch 首次启动时还会做一次性迁移,把已知的按厂商分桶的旧会话(官方脚本写入的 deepseek 也在其中)折进这个共享桶,原文件先备份到 ~/.cc-switch/backups/

这里有一条明确边界:这个迁移只在 CC Switch 首次启动时跑一次。如果你先装了 CC Switch、之后才去跑官方脚本,那批带 deepseek 标识的会话不会再被折进来,它们会留在自己的抽屉里。另外,你手写的、不在已知名单里的供应商标识,CC Switch 刻意不去改动它。

官方订阅的会话,在 CC Switch 里本来就和第三方混排

CC Switch 的会话管理面板直接扫描会话目录、不读 model_provider,所以官方订阅期间产生的 Codex 会话一直和第三方会话在同一个列表里,可搜索、可续聊、可删除——不需要开任何开关

如果你还希望 Codex 自己的 codex resume 列表也把官方与第三方合并,那是另一件事:设置 → 通用 → Codex 应用增强 → 「统一 Codex 会话历史」,默认关闭。开启后只影响新会话;已有的官方会话要一并迁入,需要在开启确认框里再勾选「同时迁入现有官方会话历史」(同样默认不勾)。这两项都是既有功能、不是本版新增,边界场景见《统一 Codex 会话历史》攻略

两个共同前提,先说清楚免得你事后困惑:

一、以 CC Switch 指向的 Codex 目录为准。 默认是 ~/.codex,可在设置里改。CC Switch 不读 CODEX_HOME 环境变量——如果你用这个变量把 Codex 指到别处,那边的会话它看不见,供应商切换也会写进 CLI 没在用的目录里。要换目录请用 CC Switch 自己的「配置文件目录」设置。

二、出现在同一个列表里,不等于一定能续聊。 Codex 的推理内容(encrypted_content)只有产生它的后端能解密,跨供应商继续一段旧会话可能失败——这是上游的设计,不是 CC Switch 能绕过的。


修复
Claude Desktop 的用量被算了两遍

经本地网关的 Claude Desktop 流量在用量看板里落两次——一次是代理行,一次是会话记录导入行——于是它的 token、费用与请求数大约翻倍。

这是 v3.18.0 引入的回归:代理侧的去重 ID 对除 claude 之外的所有应用都带上作用域前缀,写成 session:{应用}:{供应商}:{消息ID},这就把 claude-desktop 放进了独立命名空间;而会话导入器仍然以裸的 session:{消息ID} 形态、app_type = 'claude' 写同一条 Claude 消息。三道去重防线因此同时失守:让代理行吸收已有会话行的主键收敛、写入侧的指纹探测、读取侧的过滤器——后两者都在用严格相等比较应用类型。

现在两个应用重新共用裸命名空间,两处比较则按单向规则放宽:claude 的会话行可以被 claude-desktop 的代理行吸收,反过来不成立。由于读取侧的过滤器也正是日报聚合所使用的那一个,已经入库的重复行会停止被计入,不改写、不删除任何一行——这条自愈有保留期限制,见「升级提醒」。对 Codex、Gemini、OpenCode 而言放宽后的比较退化为原来的精确匹配,额度检查仍使用严格匹配。(#5938#5951

切回官方 Codex 供应商会卡在 401、看不到登录界面

在 Codex API Key 保留开关关闭时(默认如此),切换到第三方供应商会把对方的 key 写进 ~/.codex/auth.json。之后再切到内置的官方供应商——它存的凭据是空的——会走「只写配置」这条分支,于是 config.toml 被替换,而第三方的 OPENAI_API_KEY 原样留在盘上。Codex 随后拿着这把外来的 key 去请求官方端点,稳定 401;又因为 auth.json 存在,它不会退回自己的登录界面,在应用里找不到出路。

现在,成功切到官方 Codex 供应商之后,如果 auth.json 里只有一个 OPENAI_API_KEY、旁边没有任何一等凭据,这个文件会被删除——OAuth 令牌、个人访问令牌、agent 身份、Bedrock key 中的任何一个都标志着这是一份真实凭据,会被完整保留;而 auth_modelast_refresh、账号 ID 这类纯元数据不再能「挡住」一把过期的 key。

选择删除文件而不是写入 {}:空对象会被 Codex 判定为没有令牌的 ChatGPT 模式并在启动时报错,而文件缺失才等价于未登录、直接进登录流程。清理只在旧供应商已成功回填进数据库之后执行,所以被删掉的 key 并没有丢——它存进了那个供应商的记录里,再次选中它就会回来。同一处改动还放宽了 live 配置读取:清理之后的状态(没有 auth.json、有 config.toml)不再被报成「Codex 未安装」。

从设置页升级 Grok Build 只报一句 os error 2

在设置 → 关于里升级 Grok Build 会失败于 Error: No such file or directory (os error 2),没有任何其它信息。

根因是探测与执行两条路径的不对称:探测走登录 shell,会读取用户的 rc 文件,因此看得见 nvm、Homebrew、Volta;而生命周期脚本跑在非登录 shell 下,继承的是图形界面应用启动时那份很窄的 PATH。这本来无所谓,因为锚定命令都用绝对路径调用目标程序——但 grok 0.2.112 把自更新改到了 npm 分发上,grok update 内部会调起 npm viewnpm i -g,而 npm 自己又要通过 shebang 解析 node。内层调用返回 ENOENT,grok 就把它原样抛成了那句 os error 2

现在 macOS 与 Linux 上的生命周期命令会把登录 shell 的真实 PATH 并到继承的那份前面,读取方式是执行 /usr/bin/env 而不是回显变量——因为 fish 把 PATH 存成列表,回显会得到空格分隔的片段。原生安装的 Grok 还给升级链追加了官方 xAI 安装脚本作为兜底,刻意不用 npm i -g:npm 与主路径共享同样两种失败模式(没有 node、镜像源缺包),会一起失败;官方安装脚本是唯一不依赖 node 的路径,落点相同,并且会把 CLI 自己的 installer 设置改回 internal,顺带治好被早期 npm 兜底切到 npm 分发上的用户。

Grok Build 开启接管后 404,且每次请求都像新会话

在 API 格式被改成 OpenAI Chat 或 Anthropic 的 Grok Build 供应商上开启接管,会立刻得到 404,没有故障转移也没有用量记录——接管改写了地址与 key,却没有动后端字段,于是 CLI 把请求发到了代理没有注册的路由上。现在接管会同时把后端固定为 Responses;针对具体供应商降级到 Chat Completions 的动作仍然发生在转发层,而这个被强制的值会随整份 live 配置的备份在代理停止时还原。

另一个问题是代理的会话识别此前只认 Codex 与 OpenAI 客户端,因此 Grok Build 的每一轮都会生成一个新的会话 ID 并标记为「非客户端提供」,这同时压掉了缓存键注入与看板里的按会话聚合。现在会读取 Grok 自己的头——先会话所属的对话 ID,再会话 ID,忽略每请求变化的那个——并使用独立前缀,避免与 Codex 的记录撞车。(#5677

9 个界面文案在所有语言下都显示简体中文

有 9 个字符串无论界面语言是什么都显示简体中文,英文与日文界面同样如此。每个调用点都用了「内联默认值」的写法、默认值是中文字面量,但对应的键在四个语言文件里一个都没有——而 i18next 会先走完语言链才考虑内联默认值,于是英文回退根本没有机会生效,中文字面量在所有语言下都赢了。

受影响的文案覆盖 Grok Build 供应商表单的必填校验提示、应用尚未接管时的故障转移悬停提示、另一个应用持有接管时停止 Claude Desktop 路由的警告及其原因说明、供应商标识读取失败提示、Codex 通用配置为空的错误、路由服务的停止与停止失败两个提示,以及用量表格里给「有 token 但算出来是零成本」的请求打的「未定价」标签。9 个键现在在简中、英文、日文、繁中里都有了。(#5960

繁体中文的「关于」页工具管理回落成英文

界面语言设为繁体中文时,「关于」页的工具管理区块显示英文——版本行、安装与更新按钮、结果提示、安装冲突诊断,以及整个升级确认弹窗。这块面板由三次改动逐步建成,每次都只补了简中、英文、日文;而 i18next 的策略是回落英文而不是报错,于是 30 个缺失的键在测试里完全不可见。这个缺口自 v3.16.0 起一直带到 v3.19.0。

30 个文案现在全部译好,安装提示也与其它语言对齐;新增的语言测试要求每一个工具管理文案在四种语言下都存在、且插值变量一致,这类漂移以后会在测试里失败而不是发出去。(#5943

内置定价与厂商牌价脱节

成本在写入日志时就按内置定价表冻结,所以一个过期的播种价会静默地把之后每一次请求都算错。本版修正四行:deepseek-chatdeepseek-reasoner 现在是 V4 Flash 的旧称别名,每百万 token $0.14 输入 / $0.28 输出、缓存读 $0.0028(原为 $0.27/$1.10 与 $0.55/$2.19);minimax-m3 按官方标准档减半到 $0.30/$1.20;gpt-5.6-luna 按 OpenAI 2026-07-30 的降价下调 80% 到 $0.20/$1.20,gpt-5.6-terra 下调 20% 到 $2/$12,gpt-5.6-sol 刻意不动,该系列的缓存写入比例保持不变。

修复只在一行的四个价格列仍然全等于此前的内置值时才改写它,所以你自己改过的价格——或者由 models.dev 同步写入的价格——绝不会被动到。


安全加固
深链导入确认框:脱敏更严,截断更少

这是 v3.19.0 那轮 ccswitch:// 确认框加固的延续。配置预览改由一个共享模块统一构建,会递归地对嵌套 TOML 表与 JSON 对象里的密钥脱敏,一次修好两个方向相反的缺陷:Grok Build 的导入此前完全不渲染配置预览,而 Codex 的导入会把内嵌的 api_key 明文打印出来。

配置预览上 300 字符的截断被移除,完整内容现在渲染在可滚动的框里——补上了确认框最后一处可能隐藏「即将写入什么」的地方。脱敏本身在所有使用它的位置都更严了,包括 MCP 导入确认框:敏感键名匹配新增 AUTHORIZATIONCOOKIECREDENTIAL,以及精确匹配的 AUTHBEARER;脱敏后显示的明文前缀从 8 个字符缩到 4 个;长度不超过 8 个字符的值现在整体替换,而不是原样显示。

最后,前端的 Base64 解码器不再裁掉首尾空白——那有可能是 URL 解码把 + 变成的空格。这与 v3.19.0 修过的是同一类前后端解码口径分歧:确认框显示的是一回事,导入器写进去的是另一回事。


内部
删掉 3,166 行已无调用方的代码、14 个模块与 4 个依赖

一轮针对「没有任何调用方」的清理。后端删除了供应商图标推断表、一个占位的健康检查器、一套从未接线的 SSE 实现(含它自己的流式与非流式处理器)、两个未使用的代理会话类型,以及四个无引用的用量解析器与一个死的成本计算入口——线上计费路径、它的自动识别解析器与会话 ID 提取全部原封不动。22 处 #[allow(dead_code)] 抑制(正是它们让编译器一直没报警)随之删除。

前端删除 14 个无导入方的模块,包括已被面板改版取代的提示词表单弹窗与仓库管理器、一个重复的代理配置 hook、一个在项目历史上从未有过导入方的熔断器面板,以及三个 schema 文件;它们的文案在四种语言里同步删除。这些模块背后的 Tauri 命令刻意保留。另外删除 4 个未使用的 npm 依赖。两个会重新生成手工维护的图标索引的脚本被移除,索引文件头改为写明「刻意不支持自动重生成」。

配套的一处改动把代理状态与接管状态合并到单一的查询层——此前有第二套并行的 hook 覆盖同样的命令,但零调用方,它的查询键从来没有观察者,针对它们的失效调用全是空转。查询键字符串逐字未变,保留下来的 hook 维持原有的轮询行为。(#5916#5928


升级提醒
本版没有数据库迁移

v3.19.1 不含 schema 迁移(版本号保持 v16),不会触发升级前备份,升级即用。

Claude Desktop 双算的自愈有 30 天窗口(请读)

修复是在查询时抑制重复行,而不是改写或删除数据,所以明细行还在的每一天都会在下次启动后恢复正确总数,不需要任何重建操作。

但明细行超过 30 天会被聚合进日报并清理,而日报是按聚合当时生效的口径算一次就固定下来的。已经被没有此修复的版本聚合掉的日期,会永久保留虚高的数字。 这个回归自 v3.18.0(2026-07-21)进入,所以越早升级、能救回的历史区间越完整。

新定价对历史数据的两种不同影响

八个新补定价的模型会被回溯补算:启动时会给成本记为零的请求补上成本,因此这些模型的看板数字会上升。已经聚合并清理掉的明细行无法补算,保持为零。

四个改价的模型方向相反:补算只处理零成本行,所以已经记录的请求保持旧价,只有新请求按新价计费——同一个模型的历史花费与新增花费会不一致。两条路径都保护你自己的定价:修复只改仍是原内置值的行,而 ~/.cc-switch/model-pricing.json 里的手工改价、models.dev 同步值与删除墓碑会在播种与修复之后重放,始终优先。

预设变更只影响新建供应商

已经保存的 DeepSeek 或火山方舟 Coding Plan 供应商保持它存的 API 格式,仍然需要本地路由,也仍用旧目录。想用直连,请从预设重新创建供应商,或在供应商表单的高级区把 API 格式改为原生 Responses。

不过,已经是原生 Responses、且地址在 deepseek.com 上的供应商,下次切换时就会自动用上镜像的官方目录,不需要重新保存——因为判定读的是 live 配置。

DeepSeek V4 Pro 暂时还不能直连

预设里仍然列着 deepseek-v4-pro,厂商自己发布的目录也带着它,但 DeepSeek 侧针对 pro 的 Codex 集成尚未开通,官方给出的时间是 2026 年 8 月初。在那之前,直连模式下选 pro 会在上游报错——请用 deepseek-v4-flash,它也是预设的默认模型。

如果你现在就要用 pro,把这个供应商的 API 格式改回「OpenAI Chat」并开启本地路由接管即可。这正是 v3.19.1 之前 DeepSeek 一直走的那条路:本地代理会把 Codex 发出的 Responses 请求转换成 Chat Completions,pro 在这条路上不受影响。

DeepSeek 官方目录的两个前提

镜像的目录声明了 Codex 客户端最低版本 0.144.0,CC Switch 自己不做校验——它携带的 freeform apply_patch 注册需要这个版本或更新。另外,生成的目录文件会涨到约 75 KB(两个镜像模型),因为每个条目都带着完整的提示词框架文本。

直连之后,用量的归属会从供应商名变成 Codex (Session)

DeepSeek、火山方舟 Coding Plan 与腾讯混元不再需要接管,它们的流量可以完全绕过本地代理,代理侧的逐请求记录因此看不到它们。

用量本身不会丢,也仍然分得清——Codex 的会话日志导入照常记录,只是这条路径不携带供应商身份:所有没走本地代理的 Codex 用量会一起归入名为 Codex (Session) 的条目,官方订阅的消耗也在这一行里。也就是说,DeepSeek 从走路由改为直连之后,它的用量会从「DeepSeek」这个名字下移到 Codex (Session)

要区分它们,看模型:每条用量记录都带着自己的模型 ID,用量面板的「模型统计」按模型逐行列出——deepseek-v4-flashhy3ark-code-latest 与官方订阅的 GPT 系列各归各行,费用与 token 都是分开的。只有当你需要的正是按供应商这个维度(比如同一个模型在多家聚合站之间比价),才需要继续用本地路由接管——这条路会记录真实的供应商名。

Codex 残留凭据清理的两个前提

清理只在「切入的供应商带有显式的官方分类」「切出的供应商已成功回填」时执行。手工创建、没有标记官方分类的条目,或者回填失败的那次切换,残留仍会留在盘上。

Grok Build 开启接管会改写后端字段

在 Grok Build 供应商上开启接管,现在会把 live 配置里的后端字段改写为 Responses。数据库里存的供应商记录不受影响,代理停止时 live 文件会从备份整体还原。

工具安装与升级的 PATH 变化(仅 macOS / Linux)

设置 → 关于里触发的每一次工具安装与升级,现在都会把登录 shell 的 PATH 并到继承的那份前面,因此生命周期脚本按名称解析到的程序有可能与之前不同;每次操作还会多启动一个 shell 来读取这份 PATH,这会执行你的交互式启动文件。Windows 不受影响。

使用 grok 0.2.112 及以上版本的用户可能会看到两份安装记录——原生的那份,加上 grok update 自己创建的全局 npm 包;它们由上游保持同步,版本号一致。

环境变量冲突检测的匹配口径变了

Claude Code、Codex、Gemini 的检测从「包含」收紧为「前缀」,因此仅仅名字里含有应用名的变量——MY_ANTHROPIC_API_KEYOLD_GEMINI_API_KEY——不再被报为冲突。同时新增了 Grok Build 的检测。

深链导入确认框显示的密钥更少

脱敏后显示的明文前缀从 8 个字符缩到 4 个,长度不超过 8 个字符的值整体脱敏。这也影响 MCP 导入确认框。


风险提示
沿用的提示

xAI Grok OAuth 登录:复用官方 Grok CLI 的公开 OAuth 客户端身份,使用可能导致账号被限制或封禁——详见 v3.18.0 release notes

Codex OAuth 反向代理:使用 ChatGPT 订阅的 Codex OAuth 反代可能违反 OpenAI 服务条款,详情见 v3.13.0 release notes

SuperGrok 配额查询:供应商卡片的配额展示依赖 grok.com 的非公开计费端点,xAI 调整接口后可能失效——详见 v3.19.0 release notes

第三方供应商路由:通过 CC Switch 本地代理把 Codex、Claude Desktop 或 Grok Build 的请求转换并转发到第三方供应商时,各供应商对计费、合规与数据留存的约束不同,请在使用前阅读目标供应商的服务条款。

用户启用上述功能即表示自行承担相关风险。CC Switch 不对因使用这些功能而导致的任何账号限制、警告或服务暂停承担责任。


致谢

这一版的修复大半来自外部贡献者——六个 PR 里有五个不是我写的。

代码贡献
  • #5677:Grok Build 的代理接管与深链集成收尾——补齐后端字段、会话身份识别、故障转移页签与环境变量检测,并顺带修好了配置预览里的密钥泄漏,感谢 @YUZHEthefool。这是本版覆盖面最广的一份工作。
  • #5951:Claude Desktop 用量双算修复,感谢 @Komikawayi。定位到 v3.18.0 的哪一处改动让三道去重防线同时失守,是本版最需要耐心的一次排查。
  • #5916#5928:删除 3,166 行无调用方代码与重复的代理查询层,感谢 @SaladDay。
  • #5943:补齐繁体中文的工具管理文案,并新增防止语言漂移的测试,感谢 @yovinchen。
  • #5960:补齐 9 个在所有语言下都显示简体中文的文案,感谢 @mhy1227。
问题反馈

感谢 @Alaric-L 在 #5938 中报告 Claude Desktop 的每次请求都多出一条 session_log 来源的日志、导致 token 被统计两遍——这条反馈精确到了数据来源,本版最重要的用量修复直接由它定位。


下载与安装

访问 Releases 下载对应版本,或从官网 ccswitch.io 获取(下载经 Cloudflare 边缘节点分发,不依赖 GitHub 可达)。

系统要求
系统最低版本架构
WindowsWindows 10 及以上x64 / ARM64
macOSmacOS 12 (Monterey) 及以上Intel (x64) / Apple Silicon (arm64)
Linux见下表x64 / ARM64
Windows
文件说明
CC-Switch-v3.19.1-Windows.msi推荐 - MSI 安装包,支持自动更新
CC-Switch-v3.19.1-Windows-Portable.zip便携版,解压即用,不写入注册表

Windows ARM64 设备请选择文件名中带 arm64 标识的对应制品。

macOS
文件说明
CC-Switch-v3.19.1-macOS.dmg推荐 - DMG 安装包,拖入 Applications 即可
CC-Switch-v3.19.1-macOS.zip解压后拖入 Applications,Universal Binary
CC-Switch-v3.19.1-macOS.tar.gz用于 Homebrew 安装和自动更新

Homebrew 安装:

brew install --cask cc-switch

更新:

brew upgrade --cask cc-switch
Linux

Linux 资产同时提供 x86_64ARM64aarch64)两种架构。资产文件名中包含架构标识,请按你机器的 uname -m 输出选择对应版本:

  • CC-Switch-v3.19.1-Linux-x86_64.AppImage / .deb / .rpm
  • CC-Switch-v3.19.1-Linux-arm64.AppImage / .deb / .rpm
发行版推荐格式安装方式
Ubuntu / Debian / Linux Mint / Pop!_OS.debsudo dpkg -i CC-Switch-*.debsudo apt install ./CC-Switch-*.deb
Fedora / RHEL / CentOS / Rocky Linux.rpmsudo rpm -i CC-Switch-*.rpmsudo dnf install ./CC-Switch-*.rpm
openSUSE.rpmsudo zypper install ./CC-Switch-*.rpm
Arch Linux / Manjaro.AppImage添加执行权限后直接运行,或使用 AUR
其他发行版 / 不确定.AppImagechmod +x CC-Switch-*.AppImage && ./CC-Switch-*.AppImage
View originalPermalink
How v3.19.1 went
v3.19.0

CC Switch v3.19.0

Added 4
  • Add optional models.dev automatic pricing synchronization that refreshes selected model prices at startup with at most 6-hour intervals
  • Persist manual price changes and deletions to human-editable ~/.cc-switch/model-pricing.json so pricing survives database rebuilds
  • Import Grok CLI official OAuth mode usage from session logs and display in dashboard as Grok Build (Session) with cost calculation from CLI data or local pricing
  • Display SuperGrok subscription quota usage and reset time on official Grok Build supplier cards
Changed 5
  • Prioritize application updates through https://dl.ccswitch.io/latest.json Cloudflare R2 mirror with GitHub as fallback
  • Reuse parsed parent rollout timeline across fork points when importing Codex usage history to improve performance
  • Update default models to Claude Opus 5, GPT-5.6 Sol, and Gemini 3.6 Flash for new suppliers
  • Fix OpenClaw Kimi For Coding preset base URL
  • Change toolbar application switcher to icon-only display
Fixed 1
  • Stop serializing images from proxy tool results into tool text and restore them as native media on conversion bridges, reducing token consumption from approximately 9000x bloat to actual usage
Security 6
  • Tighten Skill installation from GitHub repository with zip-slip and path traversal protections and archive size limits
  • Close credential leakage in Gemini universal configuration and automatically clean up already-leaked keys on first startup after upgrade
  • Execute SQL backup imports under SQLite authorizer to block statements like ATTACH that access outside the import database
  • Prevent prototype pollution when merging universal configuration fragments
  • Use POSIX single-quote escaping for external terminal startup to prevent command injection via directory names
  • Display full ccswitch:// import payload with sensitive values masked and risk values highlighted, with usage scripts disabled by default

CC Switch v3.19.0

这一版的主线是让你更放心:一波集中式安全加固——Skill 安装、ccswitch:// 导入确认、SQL 备份导入、通用配置合并、终端启动全部收紧,其中两条需要你花一分钟确认——Gemini 通用配置的密钥泄漏已修复并在升级后自动清洗(需要你轮换密钥),ccswitch:// 的 MCP 导入确认框此前可能显示不出即将写入的命令(若你曾打开过来源不明的导入链接,建议核对一次),两条都见「升级提醒」;一个代理正确性大修——通过代理读图不再撑爆上下文(一张截图曾经吃掉 10 万+ token,两三张就能把 Codex 会话卡死在 400 上)。省心的部分同样实在:模型定价可以交给 models.dev 自动维护、Grok CLI 官方登录模式的用量与 SuperGrok 订阅余量终于进看板、应用内更新改走 dl.ccswitch.io 镜像——GitHub 访问不畅也能顺利升级。

English → | 日本語版 →


重点内容:你现在可以
  • 在代理下正常读图,不再撑爆上下文:Codex 的 view_image、返回图片的 MCP 工具,图片此前被序列化成工具文本、按纯文本计 token(约 9,000 倍膨胀);现在所有转换桥都把图片还原为原生格式再上送(文件与音频在两条 Chat 桥上一并支持)。真实测试里同一回放轮从 85k+ token 降到约 12k、缓存命中 99%。
  • 把模型定价交给 models.dev 自动维护:用量面板新增「models.dev 自动定价同步」(默认关闭)。开启后启动时自动刷新所选模型的价格(每 6 小时至多一次),可在完整目录里挑选要跟踪的模型,或让它自动包含各家最新的常用模型。手工改价与删价从本版起会记入 ~/.cc-switch/model-pricing.json,数据库重建也不丢。
  • 看到 Grok 官方模式的用量与订阅余量:Grok CLI 用官方 OAuth 登录时无法走本地代理,此前这部分消耗完全不可见;现在会从会话日志导入逐轮用量,看板里以「Grok Build (Session)」呈现。官方类 Grok Build 供应商卡片还会直接显示 SuperGrok 订阅的额度用量与重置时间。
  • 更放心地点开 ccswitch:// 导入链接:确认框现在完整展示命令、每个参数、URL 与环境变量(凭据类值脱敏显示),高亮标记值得多看一眼的值——shell 内联执行、改变加载行为的环境变量、内网 / 元数据地址;用量查询脚本会显示完整代码,且默认以禁用状态导入
  • 确认 Gemini 供应商里不再夹带别人的密钥:通用配置共享片段此前会把 GOOGLE_API_KEY 等凭据复制进每个使用它的 Gemini 供应商;本版关闭该路径,升级后首次启动自动执行一次性清洗。凡是进过共享 Gemini 片段的密钥都应视为已暴露,请先轮换再重填(见「升级提醒」)。
  • 在 GitHub 访问不畅时照常更新应用:应用内更新器优先查询 https://dl.ccswitch.io/latest.json(Cloudflare R2 镜像),GitHub 作为回落;minisign 签名校验不变,镜像本身不被信任。
  • 新建供应商时直接用上最新模型:预设默认模型升级为 Claude Opus 5、GPT-5.6 Sol 与 Gemini 3.6 Flash,配套定价同步入库;已创建的供应商保持原样。
  • 更快导入 fork 密集的 Codex 用量历史:父 rollout 文件只解析一次、跨全部 fork 点共享,fork 密集的历史重建明显提速,导入结果逐字节不变。

使用攻略

本版新能力主要落在用量面板与 ccswitch:// 深链导入上,建议结合以下文档了解:

  • 用量统计:用量看板的数据来源与统计口径。本版新增 models.dev 自动定价同步与 Grok 官方模式用量导入。
  • 深链导入(ccswitch://):导入确认框的字段说明与 usageEnabled 等参数的默认值(本版起用量脚本默认禁用导入,文档已同步修正)。
  • 安全策略(SECURITY.md):本版补齐了威胁模型与报告范围——哪些输入被视为不可信、哪些问题欢迎报告,一目了然。

[!WARNING]

唯一官方渠道声明(请务必阅读)

CC Switch 是完全免费、开源的桌面应用,不会向用户收取任何费用。请仅通过下列官方渠道获取本软件:

类别唯一官方
官网ccswitch.io
源码github.com/farion1231/cc-switch
下载GitHub Releases
作者@farion1231
举报山寨GitHub Issues

任何向你收费、要求充值、或索取登录凭据的"CC Switch"网站或客户端均为假冒。如果你被诱导支付了费用,请立即停止操作并通过 GitHub Issues 反馈。


概览

CC Switch v3.19.0 由一波安全加固与一个代理正确性大修领衔。安全侧(#5811 及后续独立修复):从 GitHub 仓库安装 Skill 加固了 zip-slip 与路径穿越并设归档上限;Gemini 通用配置的密钥泄漏被关闭,升级后首次启动自动执行一次性清洗,把已经泄漏进其它供应商配置的密钥清理干净;导入 SQL 备份改在 SQLite authorizer 下执行,ATTACH 等能触及导入库之外的语句一律拒绝;通用配置片段合并不再跟随 __proto__ 污染全局原型;外部终端启动改用 POSIX 单引号转义,目录名再也注入不了命令;ccswitch:// 导入确认框完整展示载荷(凭据类值脱敏显示)并标记风险值,用量脚本默认禁用导入。代理侧,工具结果里的图片不再被序列化成工具文本,而是在各转换桥还原为原生媒体上送(文件与音频在两条 Chat 桥上一并支持)——终结了「一张 113 KB 截图吃掉 10 万+ token、两三张图把 Codex 会话卡死在 400 上」的问题(#4465#5663)。

用量统计获得两块新能力:models.dev 自动定价同步(可选开启,#5734),配套把手工改价 / 删价持久化到人类可编辑的 ~/.cc-switch/model-pricing.json;以及 Grok CLI 官方 OAuth 模式的用量导入——这条流量无法走本地代理,此前完全不可见——外加供应商卡片上的 SuperGrok 订阅配额展示。围绕分发与体验:应用内更新优先走 dl.ccswitch.io 的 Cloudflare R2 镜像(GitHub 回落,签名校验不变);Codex 用量导入对 fork 会话重用已解析的父 rollout 时间线(#5626);预设默认模型升级为 Claude Opus 5、GPT-5.6 Sol 与 Gemini 3.6 Flash;OpenClaw 的 Kimi For Coding 预设修正了 base URL;工具栏应用切换器改为纯图标。本版没有数据库 schema 迁移,升级轻量。

发布日期:2026-07-30

更新规模:38 commits | 132 files changed | +14,926 / -1,415 lines


新功能
models.dev 自动定价同步

用量面板的定价区新增「models.dev 自动定价同步」卡片,默认关闭、需手动开启:开启时会有确认说明——CC Switch 将在启动时(每 6 小时至多一次)从 models.dev 刷新所选模型的价格,同名模型的内置价与手工价都会被覆盖。「选择模型」对话框提供完整的 models.dev 目录(可搜索筛选),另有「自动包含常用模型」选项,覆盖 Claude、GPT、Gemini、Grok、DeepSeek、Qwen、MiMo、LongCat、Kimi、MiniMax、GLM 各家最近发布的模型(每族至多 6 个,可单独排除)。卡片显示上次同步时间与错误,提供「立即同步」,还能打开或重载本地定价文件。

从本版起,手工改价与删价会同时记入数据库旁边的人类可编辑文件 ~/.cc-switch/model-pricing.json,每次启动重放——数据库重建后手工定价不再丢失,删掉的内置价也终于能删得掉(以墓碑记录,不再被重新播种)。注意该文件创建时为空、刻意不从既有定价表回填(否则内置价会被一并写成覆盖项、挡掉将来的内置价修正),升级前的改价仍只存在数据库里,重存一次即可入文件。同步真的改了价格时,会把从未算出成本(零或缺失)的历史用量行按新价补算——已有成本的行保持原值;拉取失败或离线绝不阻塞启动。models.dev 列表还过滤掉了非文本与已弃用的模型(音频 / 图像 / 视频 / embedding 等),手动选价对话框一并清爽了。(#5734

Grok 官方模式的用量,终于进看板

Grok CLI 用官方 OAuth 登录时无法经本地代理路由——Grok 以空配置作为模式开关,没有地方能把它指向 CC Switch——这部分消耗此前在用量看板里完全不可见。现在 CC Switch 会随常规会话日志同步,从 ~/.grok/sessions(含归档会话)的 updates.jsonl 里按 turn_completed 事件导入逐轮用量:成本优先采用 CLI 自己上报的精确数字,缺失时回落本地定价(内置定价表新增 grok-4.5-build,$2 输入 / $6 输出 / $0.30 缓存读,每百万 token)。导入行以上游逐轮 ID 为键,回卷会话不会造成重复计数;沉淀窗口加近期代理活动检查,确保同一流量在「路由 + 官方」混用时也不会算两次。看板里新行以「Grok Build (Session)」供应商名呈现,应用筛选器新增 Grok Build 选项,数据来源分栏新增「Grok Build Session」条目与专属图标,四语齐全。

供应商卡片上的 SuperGrok 订阅配额

类别为「官方」的 Grok Build 供应商,卡片上现在直接显示 SuperGrok 订阅用量——与 Claude Code / Codex / Gemini 的官方订阅页脚并列:CC Switch 读取 Grok CLI 自己的 OAuth 凭据(~/.grok/auth.json),查询 grok.com 计费端点获取额度窗口的已用百分比与重置时间;重置间隔可识别时标注为「周」或「月」,否则归入新的「Credits」档(托盘用量摘要中以 c 组呈现)。网络瞬断时保留上一次读数并重试,不清空页脚;令牌过期会提示重新 grok login。Claude Code、Claude Desktop 与 Codex 里的受管 xAI OAuth(SuperGrok)供应商也自动获得同款配额展示——数据来自绑定到该供应商的账号,用量脚本入口随之隐藏。注意 Grok Build 供应商的「官方」判定现在只看 category 字段,不再探测配置内容。

Claude Opus 5 内置定价

claude-opus-5 加入内置定价表:$5 输入 / $25 输出、$0.50 缓存读 / $6.25 缓存写(每百万 token),用量不再显示 $0。按「不存在才插入」播种,改过的价格不受影响(Opus 5 fast 模式走独立计费,刻意未入表)。

预设目录更新

A6API(同模型多上游自动择优的聚合平台)加入八个应用的赞助商预设;PackyCode 预设在支持备用端点的五类预设(Claude Code / Claude Desktop / Codex / Gemini CLI / Grok Build)上新增三个备用地址,可在地址管理器与测速里选择;AICoding 合作伙伴预设回归七个应用;赞助商排序与 README 重新对齐。


变更
预设默认模型升级:Claude Opus 5、GPT-5.6 Sol、Gemini 3.6 Flash

内置预设的默认模型全面来到当前一代:claude-opus-5 替换 claude-opus-4-8(三种命名形态全覆盖),gpt-5.6-sol 替换 gpt-5.5 与裸 gpt-5.6gemini-3.6-flash 替换 gemini-3.5-flash。同步更新了所有镜像位置——通用 / NewAPI 默认值、Codex 自定义 config.toml 模板、推荐列表、表单占位符与四语文案;gemini-3.6-flash 定价同步入库($1.50 / $7.50、缓存读 $0.15,每百万 token)。仍钉在 gemini-3.1-pro-preview 的 Code0 与七牛 Gemini 预设一并对齐到 3.6 Flash——这是有意的档位调整:3.6 没有 Pro 版,3.5 Pro 仍限合作测试。默认值只影响新建供应商,已保存的供应商维持创建时的模型;Claude Desktop 的 opus 路由现值前进到 claude-opus-5claude-opus-4-8 转入兼容别名槽,存量配置照常解析。

应用内更新改走 ccswitch.io 镜像

更新器现在优先查询 https://dl.ccswitch.io/latest.json——发布清单的 Cloudflare R2 镜像——GitHub Releases 作为回落,检查与下载更新不再依赖 GitHub 可达。镜像清单把各平台下载指向同一存储桶,而 minisign 签名保持不动:签名覆盖的是文件内容而非 URL,每个下载产物仍会对着内置公钥校验,镜像本身始终不被信任。发布由 release 门控的同步工作流负责,只有当 tag 确为 GitHub 的 releases/latest 时才改写根清单,镜像永远不会把用户往回推到旧版本。

Codex 用量导入:fork 会话提速

导入与重建 Codex 用量统计不再对同一个父 rollout 文件按 fork 点逐次重读:每个父 ~/.codex/sessions/*.jsonl 只解析一次,生成内存中的 token 时间线,由所有从它 fork 出的子会话共享,各子会话的截断点改为内存过滤。缓存以文件身份戳校验(修改时间、大小,加 Unix 的 device/inode 或 Windows 的卷序列号 + 文件 ID),被追加、轮转或替换的父文件会重读而不是拿到陈旧数据。提速幅度取决于 fork 密度:fork 密集的历史冗余解析大幅减少,fork 稀少的历史基本不变——两种情况下导入结果都逐字节一致。(#5626

工具栏应用切换器改为纯图标

切换器按钮不再在图标旁渲染文字标签——受管应用增至八个后,标签本来就几乎总是被溢出检测收起,于是移除了基于 ResizeObserver 的自动紧凑机制,始终只显示图标。应用名保留在悬停提示里,读屏器经 aria-label 照常可及。

赞助商域名与推荐链接刷新

多家赞助商迁移了域名,预设地址、备用端点、推荐链接与 README 行已同步(PackyCode → www.packyapi.ai、RightCode → www.rightapi.ai、ClaudeAPI → www.apito.ai、APINebula → apinebula.ai、AICodeMirror → .ai、AICoding → .inc、AIGoCode → .app),顺带移除了两个已失效的备用端点。已创建的供应商保留数据库里存的旧地址——想迁到新域名,手动改地址或从刷新后的预设重建即可。


修复
通过代理读图不再撑爆上下文

客户端经工具调用读取图片时——Codex 的 view_image,或任何返回图片的 MCP 工具——代理的协议转换会把整个图片块序列化进工具消息的文本里,上游按纯文本给 base64 计 token:约 9,000 倍的膨胀,一张 113 KB 的 PNG 折算 10 万+ prompt token;Codex 每轮重放全部历史,两三张截图就足以把会话顶出上下文窗口、卡死在反复的 400 上(#4465#5663)。

代理现在把媒体载荷从工具结果里提出来、按各桥的原生格式重新上送——图片全桥覆盖,文件与音频在目标协议支持处生效:两条 Chat 桥(Claude→Chat、Codex Responses→Chat)承载图片 / 文件 / 音频,工具消息里留下简短标记、媒体作为合成用户消息紧随工具批次之后;Claude→Responses 还原原生 input_image,Codex / GrokBuild→Anthropic 重建标准 Anthropic 图片块,Claude→Gemini 在 Gemini 3 上用多模态 functionResponse.parts(旧型号用 inlineData),只接受内联 base64 图片。检测覆盖有类型的 Responses 块、Anthropic source 块、MCP data+mimeType 结果与整串图片 data URL,可穿透数组与嵌套 content 包装(含 JSON 编码的工具输出);一旦判定输出含媒体,其中残留的 data URL 与裸 base64 会被折叠成占位——裸 base64 本身从不触发媒体判定,普通工具输出原样不动。不含媒体的工具结果在所有桥上保持与之前逐字节一致,prompt 缓存前缀不受影响;上送的媒体块刻意不带 cache_control 标记,GLM、Qwen 这类严格上游不会拒收。对 Kimi K3 的端到端实测:同一回放轮稳定在约 12k 输入 token、缓存命中 99%,此前每次重放要背 85k+ 的 base64 文本。

「不支持图片回退」现在能看到工具结果里的图

「不支持图片回退」设置会在供应商仅文本或上游拒图时用占位标记替换图片块,但它此前只能看到仍是结构化块的图片——已被打平成 base64 文本的工具结果图片对它不可见,仅文本上游直接失败、无从恢复。媒体清洗器现在在每条路径上对称地检测并剥离工具输出内的媒体,发送前剥离与被拒后重试两条路都能救回这类轮次;由于该检测现在也深入工具结果,一条回归测试钉住了反应式重试仍只对真正的模态拒绝触发——上下文超限的 400 不会被误当拒图去重试。

Grok Build 成本回填不再高估

补算缺失成本的例程此前只把 Codex 与 Gemini 视为「上报输入 token 已含缓存读」的供应商,而 Grok Build 同属该口径——被回填的 Grok Build 行按全量输入计价、缓存读又计一次,成本虚高。缓存含入式供应商集合现在只定义一处,由路由记录器、成本计算器与回填例程共享,三者不再可能各说各话。注意此前已被旧回填修过的行保持原值——回填只处理零成本行,从不改写已有正成本。

手工编辑的配置文件不再让应用崩溃或吞掉编辑

~/.codex/config.tomlmcp_servers 存在但不是表(比如 mcp_servers = "x")时,MCP 同步会在切换中途 panic——且发生在数据库与 live 配置都已写入之后,留下半套用的切换;非表值现在先告警再归一为空表,Codex 与 GrokBuild 写入器同步修复。内联表形态(合法 TOML)有镜像问题:MCP 删除静默无效而界面报成功、base_url 编辑写到 Codex 根本不读的层级——均已处理。根节点、providermcp 段是数组 / 标量的 opencode.json 不再 panic,这类文件会被报错拒绝而不是重建,你自己的 modeltheme 设置不会被抹掉。(#5811

代理转换扛得住畸形上游响应

上游网关的畸形数据此前可能直接干掉本地代理而不是产生错误:Anthropic SSE 流里非对象的 messagecontent_block、缓冲响应体是顶层 JSON 数组或标量(无视 stream: true 的网关就返回这种)都会命中 panic 的索引赋值;流现在以正常的失败事件收尾。畸形的 content_block 头还会被恢复为文本块——只把它净化成空对象虽止住 panic,却让后续内容全部被静默丢弃、模型看起来什么都没说——由于坏头之后的增量通常是完好的,常见情况现在能通传,替换发生时记一条警告。(#5811

OpenClaw 的 Kimi For Coding 地址修正

OpenClaw 预设此前指向通用平台端点 https://api.kimi.com/v1,而 Kimi For Coding 订阅走的不是它,coding 套餐的 key 用不了。地址修正为 https://api.kimi.com/coding/v1,表单占位符与默认值同步更新。从旧预设创建的供应商需手动改到新地址。


安全加固

本节九条里,有两件事需要你动手:轮换进过 Gemini 通用配置的密钥,以及核对曾经通过 ccswitch:// 导入的 MCP 条目——「升级提醒」里写明了怎么做。其余的升级即生效,不需要你操作。

如果你从不点开别人发来的 ccswitch:// 链接,也没用过共享的 Gemini 通用配置,那这九条对你的意义主要是「以后更不容易出事」;如果两条里有一条对得上,这一版值得优先升级

Gemini 通用配置不再泄漏密钥,升级后自动清洗

Gemini 通用配置提取器此前只从共享片段里剥掉 GEMINI_API_KEYGOOGLE_GEMINI_BASE_URL,其余 env 条目原样复制——而 GOOGLE_API_KEY 正是 Gemini 的一等凭据,某个账号的 key(连同其它长得像凭据的条目)会被深合并进每一个使用通用配置的 Gemini 供应商,并发往对方的 base URL——那可能是第三方中转。提取器现在跳过一切命中凭据模式的键(与 Claude 提取器同一套匹配器),前端片段校验器同步对齐,手工编辑也塞不回去。由于 Gemini 片段一旦存在就不再重提取,升级后首次启动还会执行一次性清洗:把已经泄漏的凭据从片段、从每个被合并到的供应商、从 ~/.gemini/.env 里清掉——按键名加值全等匹配,供应商自己的同名不同值 key 不受牵连——并保留 env 文件的排版与注释。清洗细节与注意事项见「升级提醒」。(#5811

Skill 仓库安装加固:路径穿越与归档上限

从 GitHub 仓库安装或浏览 Skill 此前可能写到目标目录之外:归档条目未经归一就拼上目标路径,带 .. 的 ZIP 能逃出解压目录(zip-slip);仓库坐标从未校验,../../../releases/download/v1/evil 这样的分支名能把下载重定向到任意 release 资产——而 Skill 仓库可经不可信的 ccswitch:// 深链添加且默认启用,打开 Skills 面板就足以触发下载。来自备份恢复、同步快照与「从应用导入」的 Skill directory 值同样未经校验就拼路径,卸载可能 remove_dir_all 到受管目录之外。所有落点现在都校验目录名,仓库 owner / 名称 / 分支在唯一下载汇聚点白名单化,解压设硬上限(10,000 条目、写入 512 MB、下载 128 MB、符号链接目标 4 KB,自指链接拒绝),新错误信息四语齐全。(#5811

深链导入确认框:看全内容,标记风险

ccswitch:// 的 MCP 导入确认框此前只渲染一行会被截断的 Command:argsurlenv 一概不显示——链接带上 command: "sh"args: ["-c", "curl …|sh"] 和一个 LD_PRELOAD 环境变量,显示出来只是一个人畜无害的 sh,确认后却被写进各应用的 live MCP 文件。确认框现在把命令、每个参数、URL 与环境变量逐行渲染,换行而非截断,不会有内容被裁掉看不见(键名含 TOKEN / KEY / SECRET / PASSWORD 的 env 值以前缀加星号脱敏显示);值得多看一眼的值会被高亮并汇总进警告块:带内联执行标志的 shell 解释器(含 bash -lccmd /C、PowerShell -Command 缩写等组合形态)、改变进程加载行为的环境变量(LD_*DYLD_*NODE_OPTIONSPYTHONPATHPATH、代理变量等)、指向回环 / 内网 / 云元数据地址的端点。标记纯属提示、从不拦截导入——本地 Ollama 端点是再正常不过的用法。供应商确认框获得同款处理;「将立即写入所有指定应用」的警告改为无条件显示,不再受链接可控字段的门控。

深链用量脚本:默认禁用导入,代码先看后用

经深链导入的用量查询脚本是每次查用量都会执行的 JavaScript,此前可能全程没见过代码就被启用:后端把「带了代码」当作「同意执行」,确认框只显示启用 / 禁用徽标、从不显示脚本体。脚本现在默认禁用——链接必须显式携带 usageEnabled=true 才请求启用——确认框以可滚动、完整换行的代码块显示解码后的全部脚本,并警告启用后将会执行。解码失败时回落显示原始载荷,畸形脚本不可能伪装成「没有脚本」。脚本代码照常存到供应商上,审阅后可在应用内手动开启。

URL-safe Base64 曾让确认框整块变空

上面两条修的是「确认框显示得不够」,这一条修的是「确认框可以什么都不显示」。后端接受四种 Base64 变体(含 RFC 4648 §5 的 URL-safe 字母表),而前端的 atob 只认标准字母表、解不开时原样返回输入而不报错——于是同一段载荷,后端解码成功并导入,前端拿到的是一坨解不开的字符。用量脚本与系统提示词因此显示成不透明的 Base64;MCP 配置最糟:JSON.parse 失败被组件吞掉,确认框渲染成「0 个服务器」加一张空列表,而后端照常把真实条目写进 live MCP 文件。把载荷里一个 / 换成 _ 就够了——确认框变空,导入功能完好,上面两条刚补上的完整展示随之一并失效。

前端解码器现在先归一 URL-safe 字母表再解码,确认框显示的永远与将要导入的一致;共享解码器首次有了单元测试,用例内含前置自检,确保样本真的落在 URL-safe 分支上而不是碰巧两种编码相同。

这条缺陷影响 v3.8.0 起的所有版本。若你曾通过 ccswitch:// 链接导入过 MCP 服务器,建议检查一次——见「升级提醒」。

SQL 导入拒绝触及导入库之外的语句

导入数据库备份此前只校验文件头注释,之后整段文本直接交给 execute_batch——精心构造的备份可以 ATTACH DATABASE 在用户可写的任意位置创建 SQLite 文件,且该副作用发生在导入自身的状态校验之前,导入整体失败文件也已落地;WebDAV / S3 同步快照走的是同一条代码路径。现在外部批次执行期间安装 SQLite authorizer(结束立即卸下,应用自身的 schema 维护不受影响):ATTACH / DETACHVACUUM、虚表创建(csvfile 这类文件后端模块能读写任意路径)以及一切 SQLite 报告为未知的动作一律拒绝——未来的新语句默认失败;PRAGMA 只放行导出器实际会写的 foreign_keysuser_version 两个。

通用配置片段的原型污染

应用、移除、比对通用配置片段的三个遍历器此前都会跟着 __proto__ 走进全局 Object.prototypeJSON.parse('{"__proto__":{…}}') 产出的是自有可枚举属性,合并会把攻击者指定的值写上全局原型——而 settings 表在同步时会被远端整表覆盖,恶意 WebDAV / S3 快照落地后,打开一次供应商表单就触发合并。三个遍历器现在一律跳过 __proto__constructorprototype;「已应用通用配置」的比对同时要求自有属性,顺带修掉一个可见怪象——{"__proto__":{}} 此前被判定为任何配置的子集。

终端启动的目录名命令注入

在外部终端恢复会话时,cd 行此前用双引号包裹工作目录、只转义反斜杠和双引号——双引号里 shell 照样展开 $(…)、反引号与 $VAR,而这个值是 CLI 会话历史里记录的真实项目路径,macOS 上目录名合法地可以包含这些字符。文件夹起了那样的名字,点「恢复」就会在你的终端里执行内嵌命令,全程无需任何被攻破的组件。三个拼 shell 行的启动器——Terminal.app、iTerm、kitty——改用 POSIX 单引号转义,任何内容都不展开(穿过 Terminal / iTerm 所需的 AppleScript 引号层同样安全);Ghostty、WezTerm / Kaku、Alacritty 本就把目录作为独立参数传递,原本安全。

GrokBuild 凭据解析不再替换或内联环境密钥

GrokBuild 凭据提取此前在配置指定的 env_key 变量未设置时回落到进程级 XAI_API_KEY——静默替换成另一个账号的 key、发往配置指向的任意 base URL;凭据现在只来自显式的内联 api_keyenv_key 精确命名的环境变量。深链导入不再把环境变量解析成明文 api_key;只带 env_key 名字的链接会被拒绝并提示手动添加——照单全收意味着请求时仍会解析受害者的环境密钥、送往链接声明的地址。顺带修复:base URL 解析与凭据解析解耦,此前凭据缺失连 base URL 一起清空,macOS(GUI 进程不继承 shell 环境)上界面显示的地址与实际使用的不一致、用量脚本的 {{baseUrl}} 展开为空。(#5811


文档
「在 Claude Code 中使用 GPT 模型」攻略补齐英日双语

此前仅有中文的本地路由攻略现已完整移植为英文与日文,端到端覆盖两条接入路径:第三方 OpenAI Responses 网关(API Key),以及 ChatGPT Plus/Pro 订阅经 Codex 设备码 OAuth 登录。两篇路由攻略同时改题为「用什么模型」而非「什么客户端对」——《在 Claude Code 中使用 GPT 模型》《在 Codex 中使用 Claude 模型》——所有交叉链接(含三语 v3.18.0 release notes)改为指向读者语言的版本。

用户手册:深链 usageEnabled 默认值修正

三语用户手册的深链参考此前声称 usageEnabled 默认为 true,实际默认 false、与导入器一致。手册现在写明正确默认值,并补充两个推论:导入前确认框会完整显示脚本代码;未显式 usageEnabled=true 时脚本以禁用状态导入,可稍后在应用内开启。

SECURITY.md:威胁模型与报告范围

SECURITY.md 补齐双语威胁模型与明确的范围内 / 范围外清单,报告按「谁控制这个输入」而非「值最终到了哪个 API」分诊:内置 WebView 渲染器声明为受信组件(附四条可独立验证的事实与失效触发条件);深链载荷、WebDAV / S3 恢复数据、导入文件、上游 API 响应、本地代理的入站请求全部列为不可信输入、欢迎报告。


升级提醒
本版没有数据库迁移

v3.19.0 不含 schema 迁移(版本号保持 v16),升级即用,无需等待数据重建。

Gemini 密钥一次性清洗(请读)

升级后首次启动会在常规配置提取前执行一次性的 Gemini 通用配置清洗。部分 Gemini 供应商随后可能提示缺少 API Key:条目按凭据型键名加值全等匹配删除,通常删掉的是经共享片段泄漏进来的其它供应商凭据(该供应商自己的原值在泄漏发生时已被覆盖、无法找回)——但你有意在多个 Gemini 供应商间复用的同值 key 也会被一并移除。无论哪种情况,请先轮换再重填:凡是进过共享 Gemini 片段的密钥都应视为已暴露。删除的键名与受影响的供应商 id(绝不含值)记录在 settings 表的 gemini_common_config_scrub_audit_v1 下,可据此逐一定位需要重新填写密钥的供应商。

曾用深链导入过 MCP?建议检查一次(请读)

本版之前,ccswitch:// 的 MCP 导入确认框可能显示不出即将写入的内容:参数与环境变量一概不渲染(command: "sh"args: ["-c", …] 显示成一个无害的 sh),若载荷用 URL-safe Base64 编码,则整个列表显示成「0 个服务器」——而后端两种情况都照常把条目写进各应用的 live MCP 文件。这两条缺陷影响 v3.8.0 起的所有版本,本版一并修复。

利用需要你亲自打开攻击者提供的链接并点「导入」,因此绝大多数用户不受影响。如果你确实从不完全信任的来源打开过 ccswitch:// MCP 导入链接,建议在 MCP 面板逐条核对,或直接检查 ~/.claude.jsonmcpServers(Codex 见 ~/.codex/config.tomlmcp_servers),确认没有你不认识的条目——MCP 服务器会在 CLI 下次启动时作为子进程执行。

深链用量脚本默认禁用

携带用量查询脚本的深链现在默认以禁用状态导入,除非链接显式携带 usageEnabled=true。依赖自动启用的链接(例如部分合作伙伴的一键配置链接)会导入脚本但不开启用量查询——审阅代码后在供应商编辑器里手动开启即可。应用内手工配置的用量脚本不受影响。

新默认模型只影响新建供应商

已保存的供应商维持创建时的模型 ID,想用新模型需手动编辑。Claude Desktop 的 opus 路由现值前进到 claude-opus-5claude-opus-4-8 移入兼容别名槽,存量配置照常解析。

定价播种与本地定价文件

新定价行(claude-opus-5gemini-3.6-flashgrok-4.5-build)在下次启动按「不存在才插入」追加——播种绝不覆盖你改过的价格~/.cc-switch/model-pricing.json 创建时为空,只记录本版之后的手工改价与删价——更早的改价不会迁入,想让它们扛住数据库重建,重存一次即可。models.dev 自动同步保持关闭直到你手动开启;一旦开启,它是唯一会覆盖同名价格(内置与手工皆然)的路径。

GrokBuild 隐式环境变量回落已移除

依赖隐式 XAI_API_KEY 环境回落的 GrokBuild 供应商,现在需要显式的 api_key 或正确命名的 env_key

Grok 官方模式用量有意延迟

官方模式的 Grok 用量会延迟约十分钟加一个同步周期出现——事件先沉淀、再与代理记录的行核对防止双计;若路由流量与官方流量在窗口内交替,部分官方轮会被跳过而不是冒险重复计数。被旧成本回填高估过的 Grok Build 行保持原值——回填只处理零成本行,从不修订已有正成本。

更新镜像自下个版本起生效

更新器端点列表内置在应用二进制里,现有安装在升级到含本改动的版本之前仍然只查 GitHub;此后优先 dl.ccswitch.io 镜像、GitHub 回落。

赞助商域名迁移不改存量供应商

已创建的供应商保留数据库中存储的旧地址,仍指向旧域名。想迁到新域名,手动修改供应商地址,或从刷新后的预设重新创建。


风险提示
SuperGrok 配额查询(本版新增)

供应商卡片的 SuperGrok 配额展示会读取 Grok CLI 自己的 OAuth 凭据(~/.grok/auth.json)并查询 grok.com 的计费端点——该端点并非公开文档化接口,其响应解析基于对现有格式的观察,xAI 调整接口后此功能可能失效(届时卡片降级为不显示配额,其余功能不受影响)。CC Switch 不会存储或修改这些凭据。

沿用的提示

xAI Grok OAuth 登录:复用官方 Grok CLI 的公开 OAuth 客户端身份,使用可能导致账号被限制或封禁——详见 v3.18.0 release notes

Codex OAuth 反向代理:使用 ChatGPT 订阅的 Codex OAuth 反代可能违反 OpenAI 服务条款,详情见 v3.13.0 release notes

第三方供应商路由:通过 CC Switch 本地代理把 Codex、Claude Desktop 或 Grok Build 的请求转换并转发到第三方供应商时,各供应商对计费、合规与数据留存的约束不同,请在使用前阅读目标供应商的服务条款。

用户启用上述功能即表示自行承担相关风险。CC Switch 不对因使用这些功能而导致的任何账号限制、警告或服务暂停承担责任。


致谢

这一版的安全加固几乎全部来自外部——一个 PR,加上收到的安全报告。

代码贡献
  • #5811:Skill 安装的 zip-slip 与仓库坐标穿越、Gemini 通用配置密钥泄漏与一次性清洗、GrokBuild 凭据解析、多处 panic 路径修复,感谢 @zayokami。这是本版单个来源里覆盖面最广的一份工作。
  • #5734:models.dev 自动定价同步,感谢 @YUZHEthefool。
  • #5626:Codex fork 会话用量导入提速,感谢 @ayanamislover(与 @SaladDay 共同署名)。
安全报告

本版「安全加固」里的四条修复来自私下发来的安全报告。感谢 23pds(SlowMist 慢雾)与 zues devil——逐条归属如下:

  • 深链导入确认框只显示一行会被截断的 Command:——argsurlenv 一概不渲染,sh -cLD_PRELOAD 的载荷在界面上看起来只是一个 sh。这是本版影响面最大的一条。(23pds,SlowMist)
  • 导入 SQL 备份未受约束——ATTACH DATABASE 能在用户可写的任意位置创建文件,且副作用发生在导入自身的校验之前。(zues devil)
  • 外部终端启动的目录名命令注入——cd 行用双引号包裹,$(…) 照常展开,而这个值是会话历史里记录的真实项目路径。(zues devil 与 23pds 各自独立报告,分别指向内置启动器与自定义模板两条路径)
  • 通用配置片段合并的原型污染——三个遍历器都会跟着 __proto__ 走进全局 Object.prototype。(23pds,SlowMist)

报告同时促使我们补齐了 SECURITY.md 的威胁模型与报告范围——在此之前,这个项目只写了怎么报告,没写什么算漏洞。

其余两条深链修复(用量脚本默认禁用、URL-safe Base64 绕过)是在审查上述修复本身时发现的,不在原始报告内。

问题反馈

感谢在 #4465#5663 中反馈代理读图撑爆上下文的用户——本版最重要的代理修复来自这些真实场景的复现线索。


下载与安装

访问 Releases 下载对应版本,或从官网 ccswitch.io 获取(本版起下载经 Cloudflare 边缘节点分发,不再依赖 GitHub 可达)。

系统要求
系统最低版本架构
WindowsWindows 10 及以上x64 / ARM64
macOSmacOS 12 (Monterey) 及以上Intel (x64) / Apple Silicon (arm64)
Linux见下表x64 / ARM64
Windows
文件说明
CC-Switch-v3.19.0-Windows.msi推荐 - MSI 安装包,支持自动更新
CC-Switch-v3.19.0-Windows-Portable.zip便携版,解压即用,不写入注册表

Windows ARM64 设备请选择文件名中带 arm64 标识的对应制品。

macOS
文件说明
CC-Switch-v3.19.0-macOS.dmg推荐 - DMG 安装包,拖入 Applications 即可
CC-Switch-v3.19.0-macOS.zip解压后拖入 Applications,Universal Binary
CC-Switch-v3.19.0-macOS.tar.gz用于 Homebrew 安装和自动更新

Homebrew 安装:

brew install --cask cc-switch

更新:

brew upgrade --cask cc-switch
Linux

Linux 资产同时提供 x86_64ARM64aarch64)两种架构。资产文件名中包含架构标识,请按你机器的 uname -m 输出选择对应版本:

  • CC-Switch-v3.19.0-Linux-x86_64.AppImage / .deb / .rpm
  • CC-Switch-v3.19.0-Linux-arm64.AppImage / .deb / .rpm
发行版推荐格式安装方式
Ubuntu / Debian / Linux Mint / Pop!_OS.debsudo dpkg -i CC-Switch-*.debsudo apt install ./CC-Switch-*.deb
Fedora / RHEL / CentOS / Rocky Linux.rpmsudo rpm -i CC-Switch-*.rpmsudo dnf install ./CC-Switch-*.rpm
openSUSE.rpmsudo zypper install ./CC-Switch-*.rpm
Arch Linux / Manjaro.AppImage添加执行权限后直接运行,或使用 AUR
其他发行版 / 不确定.AppImagechmod +x CC-Switch-*.AppImage && ./CC-Switch-*.AppImage
View originalPermalink
How v3.19.0 went
v3.18.0

CC Switch v3.18.0

Added 8
  • Support for managing Grok Build as the eighth managed application with vendor switching, MCP server and Skills synchronization, session management, and usage statistics
  • xAI Grok account OAuth login via device code in Settings → OAuth Authorization Center with multi-account support and no API Key required
  • Ability to use Grok in Claude Code, Claude Desktop, and Codex with OAuth authentication or xAI API Key integration
  • Native xAI (Grok) preset for Codex with direct connection to api.x.ai and compatibility layer for codex 0.142+
  • Manual rebuild button for Codex usage statistics on the usage dashboard
  • Local routing guide for using GPT models in Claude Code and Claude models in Codex
  • Support for Kimi K3 model with 1M context in Codex, Hermes, OpenClaw, and OpenCode presets with built-in pricing synchronization
  • Grok Build deep linking support via ccswitch:// protocol for vendor preset imports
Changed 5
  • Diagnostic logs now persist across restarts with 20 MB × 4 rotation and comprehensive redaction of URL credentials, request/response bodies, and sensitive headers
  • Interface crashes are now captured by error boundaries with error details written to disk instead of leaving blank screen
  • Usage records on proxy side made idempotent to prevent duplication during response replays
  • Tool schema normalized to object type in Codex conversion layer
  • System language now determines initial tray icon language on first launch
Fixed 6
  • Codex usage double-counting issue from v3.17.0 fixed at parser level with automatic usage rebuild on upgrade
  • Codex 0.144.5+ startup failure due to model directory parsing by auto-generating missing required fields
  • Windows vendor switching no longer displays black console window or causes UI freezing
  • Inference content hanging across reasoning turns in Responses↔Chat bridge
  • Parallel tool call ID loss and reordering issues in streaming responses
  • Tool schema being null causing upstream rejection in Codex conversion layer

CC Switch v3.18.0

这一版你可以做两件全新的事:把 xAI 的 Grok CLI(Grok Build)交给 CC Switch 管理——它成为第八个受管应用,供应商一键切换、MCP / Skills 同步、代理接管与用量统计一应俱全;以及把 Grok 接进 Claude Code、Claude Desktop 和 Codex——既可以直接用 xAI Grok 账号登录(设备码授权、无需 API Key,跑你的 Grok 订阅,Codex 侧自带严格网关兼容层,codex 0.142+ 也能跑通),也可以用 xAI API Key 接入(Codex 有原生 Responses 直连预设,Claude Code 可走本地路由)。同样重要的是一波修复:v3.17.0 引入的 Codex 用量双计已修,升级后自动重建数据,看板数字恢复真实;codex 0.144.5+ 因模型目录无法启动的问题已修;Windows 上切换供应商不再闪黑窗、不再卡住界面。诊断日志也从「每次启动清空」变为跨重启持久保留、按大小轮转、全面脱敏,界面崩溃会落盘留证而不再只剩一片白屏。

English → | 日本語版 →


重点内容:你现在可以
  • 管理 Grok Build(xAI 的 Grok CLI):像管理 Claude Code / Codex 一样添加、导入、一键切换 Grok Build 的供应商;MCP 服务器与 Skills 双向同步、提示词首启自动导入、会话管理与用量看板全覆盖;还可以走本地代理接管,获得独立的路由、failover 与计费。
  • 把 Grok 接进 Claude Code / Claude Desktop / Codex——账号登录与 API Key 双路径:订阅用户在「设置 → OAuth 授权中心」用设备码完成 xAI 账号登录(支持多账号),三个客户端直接跑你的 Grok 订阅、全程无需 API Key;按量付费用户则用 xAI API Key 接入——Codex 有现成的「xAI (Grok)」预设原生直连 api.x.ai,Claude Code 可按本版新攻略走本地路由接入。默认模型均为 grok-4.5
  • 把 Codex 的用量数字修回真实值:v3.17.0 的 fork / 子代理双计问题已在解析器层根治;升级后首次启动自动备份并重建 Codex 用量,用量页里也新增了手动「重建 Codex 用量」按钮。注意首次启动时历史记录是逐渐修复的——看板数字先变少、再随后台重导逐步回填,属预期行为(见「升级提醒」)。
  • 放心升级 codex CLI:codex 0.144.5 起严格解析模型目录导致的「无法启动」已修复,生成目录会自动补齐解析器必需字段。
  • 在 Windows 上顺滑切换:切换供应商 / 开关接管不再闪过黑色控制台窗口,也不再卡住界面约 2 秒(卡顿修复对全平台生效)。
  • 更放心地排查与分享日志:诊断日志跨重启保留(20 MB × 4 轮转)、所有出口统一脱敏——URL 凭据、请求响应体、敏感请求头都不会再落盘;界面崩溃有错误卡片和重载按钮,错误详情写入磁盘。
  • 多轮重推理、并行工具调用不再翻车:Responses↔Chat 桥修复了推理内容错挂、并行工具调用 ID 丢失 / 乱序、工具 schema 为 null 被严格上游整单拒绝三类问题。
  • 用上 Kimi K3:Codex / Hermes / OpenClaw / OpenCode 的 Kimi 开放平台预设加入 K3(1M 上下文),内置定价同步入库,用量不再显示 $0。

使用攻略

本版新能力主要落在供应商预设、「设置 → OAuth 授权中心」与用量看板里,建议结合以下文档了解:


[!WARNING]

唯一官方渠道声明(请务必阅读)

CC Switch 是完全免费、开源的桌面应用,不会向用户收取任何费用。请仅通过下列官方渠道获取本软件:

类别唯一官方
官网ccswitch.io
源码github.com/farion1231/cc-switch
下载GitHub Releases
作者@farion1231
举报山寨GitHub Issues

任何向你收费、要求充值、或索取登录凭据的"CC Switch"网站或客户端均为假冒。如果你被诱导支付了费用,请立即停止操作并通过 GitHub Issues 反馈。


概览

CC Switch v3.18.0 的两条主线都围绕 xAI Grok。第一条是 Grok Build 加入受管应用:xAI 的 Grok CLI(live 配置 ~/.grok/config.toml)成为与 Claude Code、Claude Desktop、Codex、Gemini CLI、OpenCode、OpenClaw、Hermes 并列的第八个受管应用——供应商添加 / 导入 / 一键切换、MCP 与 Skills 双向同步、深链导入、独立预设列表,以及带专属路由命名空间的代理接管;配套的「Grok 官方」条目支持官方登录态识别与导入,CC Switch 绝不触碰官方凭据。第二条是 xAI Grok 账号 OAuth 登录:设备码授权替代 API Key,本地代理逐请求注入访问令牌,Claude Code / Claude Desktop 侧完成 Anthropic Messages → xAI Responses 转换;Codex 侧则提供受管 OAuth 预设并自带兼容层——codex 0.142+ 发出的 ChatGPT 后端私有形态(namespace 工具声明、私有字段)会被确定性地展平与剥离,严格解析的 xAI 网关不再返回 422;API Key 用户则另有一条「xAI (Grok)」原生 Responses 直连预设,不经任何转换。

围绕正确性,本版集中修复了 v3.17.0 的 Codex 用量双计:fork / 子代理日志开头对父线程历史的重放不再被当作新用量导入(解析器改为只认显式父身份 + 令牌签名对齐),升级后自动执行一次性用量重建(schema v16),用量页新增手动重建按钮;代理侧用量记录改为幂等(同一响应重放不再堆叠重复行),大量会话导入时用量页不再卡死。Codex 转换层另有四处修复:工具 schema 归一为 object 类型、推理内容跨轮前向附挂、流式并行工具调用保 ID 保序、生成的模型目录补齐 codex 0.144.5+ 必需字段。诊断体系也走向成熟:日志跨重启持久、按大小轮转、所有出口脱敏,界面崩溃被错误边界捕获并落盘。此外还有 Kimi K3 预设与定价、OpenClaw 预设成本修正、SudoCode.us 回归、托盘首启语言跟随系统等一批改进。

发布日期:2026-07-21

更新规模:52 commits | 217 files changed | +21,452 / -6,285 lines


新功能
Grok Build:第八个受管应用

xAI 的 Grok CLI(Grok Build,live 配置 ~/.grok/config.toml)现在是 CC Switch 的一等公民:供应商添加 / 导入 / 一键切换(切换后提示重启 Grok Build 生效)、应用显隐与配置目录覆盖设置、会话管理与用量看板覆盖、提示词首启自动导入、ccswitch:// 深链导入供应商,以及本地代理接管——拥有专属的 /grokbuild/v1/responses 路由命名空间、独立的 failover 队列与按应用代理设置;转发复用 Codex 的 Responses 通路,但绝不与 Codex 共享供应商命名空间或熔断状态。

MCP 服务器与 Grok 的 [mcp_servers] 表双向同步,方言差异已被抹平:Grok 靠 command / url 推断传输类型且用 headers 字段,导出时会剥掉显式 type 并把 http_headers 重命名为 headers,导入时反向推断回来。Skills 也获得 Grok Build 启用开关。

预设方面刻意没有借用 Codex 列表(早期版本曾把国产直连供应商和 Codex 默认模型漏进 Grok 表单),而是独立整理了一份:只收录真正承载 Grok 模型的聚合与中转站,默认模型归一为 grok-4.5(命名空间路由站为 x-ai/grok-4.5)。工具面板安装 Grok 优先走 xAI 官方安装器(x.ai/cli/install.sh / install.ps1),npm 包 @xai-official/grok 作为兜底;被确认是原生安装的走 grok update 自更新,npm 安装保持 npm 锚定更新——自更新门控在「确定检测为原生」上,绝不会误伤另一种安装。四语界面文案同步就位。(#5453

Grok 官方登录:识别、导入与保护

新增「Grok 官方」供应商条目,对应 Grok CLI 自带的 xAI OAuth 登录:选中它会隐藏连接字段并写入一个空的 ~/.grok/config.toml,CC Switch 从不存储、也从不触碰官方凭据。live 配置的读取、备份与官方态写入改用仅语法级的 TOML 校验,官方登录态(空配置)可以正常往返;Grok 处于官方登录态时「从 live 导入」会得到「已设 Grok 官方为当前」而不是报错,与 Codex 行为一致。官方态识别刻意只接线到手动导入命令——启动时的自动导入器仍会拒绝官方态配置,所以你删掉的「Grok 官方」条目绝不会在下次启动时复活。对官方登录配置的代理接管会被自动跳过,手动路径给出明确拒绝,与现有「不代理官方供应商」的策略一致。

用 xAI Grok 账号登录:Claude Code 与 Claude Desktop

Claude Code 与 Claude Desktop 新增「xAI (Grok)」预设,用 OAuth 设备码登录代替 API Key:请求经本地代理完成 Anthropic Messages → xAI Responses API 转换并逐请求注入访问令牌,各档默认模型都是 grok-4.5(Claude Desktop 预设把 claude-* 形式的角色 ID 映射到上游 grok-4.5,以通过 Desktop 的第三方模型校验)。

「设置 → OAuth 授权中心」新增 xAI 区块:设备码登录(用户码带复制按钮、验证链接、等待 / 取消 / 重试)、多账号与默认账号选择、按账号移除、重授权徽标——刷新令牌被吊销的账号会以「已过期」状态保留可见而不是消失,授权状态每 15 秒自动刷新,服务端吊销会自己浮现出来。

集成边界是钉死的:无论表单里的端点 / 格式字段怎么改,上游始终是 https://api.x.ai/v1/responses(Responses 格式);OAuth 端点经 OIDC 发现解析,但强制校验为 https 的 auth.x.ai;刷新令牌存于 ~/.cc-switch/xai_oauth_auth.json(Unix 上 0600;访问令牌只存内存);OAuth 错误响应体绝不进入错误信息或日志。grok-4.5 定价($2 输入 / $6 输出 / $0.50 缓存读,每百万 token)同步入库,用量不再记 $0,存量数据库下次启动自动补行。四语文案同步。使用前请阅读「风险提示」中的客户端身份披露。

不用 OAuth、只有按量付费的 xAI API Key?同样能接进 Claude Code:xAI 的 API 端点就是标准 Responses 协议,把它当作一个普通的 Responses 供应商添加——自定义供应商填 https://api.x.ai/v1 与 API Key、上游格式选 Responses,经本地路由完成 Anthropic Messages ↔ Responses 转换,与〈在 Claude Code 中使用 GPT 模型〉攻略是同一套玩法。Codex 侧则有现成的 API Key 预设,见下一节。

Codex 直连 xAI:OAuth 受管与 API Key 原生双预设

Codex 获得两条直连 xAI 的路——有 Grok 订阅走 OAuth 受管,有 API Key 走原生直连:

  • 「xAI (Grok) OAuth」受管预设:让 Codex 跑在 Grok 订阅上。表单隐藏密钥 / 端点 / 格式字段、显示账号选择器,「获取模型」用已登录账号发起;供应商被钉死为原生 Responses,base URL 与逐请求令牌由代理强制执行——改了也会被忽略,受管路由无法被重定向。由于 codex 0.142+ 会发出 ChatGPT 后端私有的请求形态(type:"namespace" 工具声明会让 xAI 严格解析器直接 422,另有 prompt_cache_retentionsafety_identifierexternal_web_accessadditional_tools 载体字段和 grok-4.5 不支持的采样参数),OAuth 路由在原生透传上加了一层兼容层:namespace 工具被展平为顶层 function 工具(与 Chat 路径同款 sha256 截断命名)、响应侧流式与非流式都还原回 namespace 形态,不支持的字段被剥除——全部是确定性的字段删除 / 结构提升,绝无语义改写,prompt 缓存前缀保持稳定。兼容层只门控在 xAI OAuth 供应商类型上,任何其它供应商的流量都不受影响。
  • 「xAI (Grok)」API Key 预设:直连 api.x.ai/v1 的原生 Responses,自带 500K 上下文的 grok-4.5 目录条目。该预设不会应用上述 xAI 专属兼容转换——codex 0.142+ 的 API Key 用户仍可能撞上 xAI 的严格解析器,OAuth 预设才是完全兼容的路径。

xAI OAuth 的令牌失败被归为不可重试错误,failover 绝不会把你的对话悄悄挪到另一个 Grok 账号上。

界面崩溃捕获:错误落盘与重载页

React 错误边界现在包住整个界面(包括数据库恢复界面):渲染进程崩溃时显示「界面出错了」卡片和重载按钮,而不是一片白屏;全局 error / unhandledrejection 处理器把渲染端错误持久化到磁盘——此前一次 JS 崩溃在盘上零证据。前端写出的所有日志经过两层脱敏:结构化序列化器按敏感属性名(tokens / apiKeys / credentials 等变体归一匹配,整值含嵌套对象一起隐藏)与值形态(令牌前缀、PEM 头、高熵不透明串)脱敏,再经唯一文本出口的有序正则链覆盖 URL 查询值与凭据、认证头与 scheme、命名密钥容器(双重编码的 JSON 也覆盖)。字符串形态到达的 JSON 会被重新解析后做结构化脱敏;超大结构化输入整体丢弃而非截断——截断的 JSON 串会退化到较弱的文本正则,可能泄漏。设置里的开关文案也改为名副其实:「应用诊断日志」(cc-switch.log)与代理的「记录请求用量」(统计数据库,本来就不是文本日志)。四语同步。

「重建 Codex 用量」维护按钮

用量看板的维护区新增「重建 Codex 用量」:备份数据库后,只清除 codex_session 来源的明细行、对应的 _codex_session 日汇总与 Codex 同步游标,然后用修正后的解析器从头重导所有 rollout 文件——这是被下述双计 bug 污染的数据库的恢复路径,也是父日志恢复后延迟 fork 文件的重试路径。手动重建在备份写不出时会硬失败(自动迁移版只告警,因为在升级后因备份目录不可写而卡死启动是更糟的结局);整个「备份 → 重置 → 重导」序列持有会话同步锁,60 秒后台同步无法与清除交错;完成时保证恰好发出一次前端刷新通知——包括重导为零行或失败的路径——看板绝不会停留在重置前的数字上。游标清理按路径形态匹配(sessions / archived_sessions 段下的 rollout-{uuid} 文件名),旧 CODEX_HOME 下记录的游标也能清到。四语同步。

会话导入可观测性:延迟文件与疑似重复

会话同步结果现在报告 filesScanneddeferredFiles——父日志缺失或父标记冲突的 fork rollout 会被搁置且不写游标,等后续同步或手动重建重试,而不是靠猜导入——以及 suspectedDuplicates:插入后逐行探测是否已存在同指纹行(走 idx_request_logs_dedup_lookup_expr 表达式索引),每次命中记一条警告。双计 bug 未来若复发,会在日志里自己喊出来,而不是无声地吹大总数。

Kimi K3 预设与定价

Codex / Hermes / OpenClaw / OpenCode 的 Kimi 开放平台预设加入 Kimi K3(1M 上下文窗口),追加在 K2.7 Code 之后,现有默认模型行为不变。内置定价表新增 kimi-k3(官方牌价 $3 输入 / $15 输出 / $0.30 缓存读,每百万 token)与裸 k3 别名——Kimi For Coding 订阅上报的模型短 id 是 k3,否则匹配不到任何定价行(与现有 hunyuan-hy3 / hy3 同款先例)。存量数据库下次启动自动补齐两行,不碰用户改过的定价。

SudoCode.us 回归,与 SudoCode.chat 并存

两家恰好同名「SudoCode」的无关公司现在是两个独立预设:赞助商更名为「SudoCode.chat」,此前被原位替换掉的「SudoCode.us」带着原有端点、模型与图标回归,Hermes slug 也做了区分,两者可在累加式的 ~/.hermes/config.yaml 中共存。算上新的 Grok Build 预设列表,SudoCode.chat 覆盖七个应用、SudoCode.us 覆盖全部八个。


变更
诊断日志:跨重启持久、按大小轮转、绝不记录密钥

cc-switch.log 不再在每次启动时被清空——过去能解释崩溃的日志,等应用重开时已经没了——改为 20 MB 轮转、保留 4 个归档(上限约 100 MB,对比过去单文件可膨胀到 1 GB);此前无上限的 crash.log 改为 5 MB 轮转、保留 2 个归档,检查 / 轮转 / 追加序列在同一把锁下,并发 panic 不会丢归档。

日志持久化让明文密钥成为真实的暴露面(用户会把日志附到公开 issue 里),所以同一批改动里把后端所有日志出口都做了清洗:上游 URL 只记剥掉 userinfo / query / fragment 的形式(没有已知密钥可替换时只记 origin,因为凭据可能嵌在路径里);请求与响应体一律不记——换成字节数、短哈希或安全分类(sse / html / json-like / binary-or-encoded 等),排查转换问题的信号还在、内容没了;响应头走白名单(名单外只记名字);正在使用的密钥值(API Key、访问令牌)会从任何携带它的 URL 里被替换掉;MCP 自定义字段值一律省略。日志插件注册提前(更新器 / 启动期故障可诊断),持久化的日志级别在数据库打开后立即生效、故障时收敛到 Info,「启用诊断日志」开关现在也管前端发起的日志写入。升级前的旧日志文件不会被追溯清洗——见「升级提醒」。

预设选择器:赞助商分组,其余按名称排序

预设选择器的默认顺序改为四层:官方最前,其次首要合作伙伴,然后是赞助商预设(与 README 赞助商表同序,预设文件已物理重排对齐),最后所有其余预设按显示名字母序排列,不再按文件序。命中多层的条目只落在最早一层,不会重复出现。

预设「获取 API Key」链接更新

RunAPI、ClaudeCN、ZetaAPI、APINebula 预设的密钥申请链接更新为各家当前的注册 / 推荐页(ClaudeCN 同时迁移了域名:claudecn.top → claudecn.ai)。推荐标签仅限这些链接与 README——官网链接和 API 端点保持不动。


修复
Codex fork / 子代理不再把重放的父历史当新用量(v3.17.0 双计根治)

修复 v3.17.0 的用量膨胀:fork 一个 Codex 任务或以复制模式派生子代理时,父对话的 token 历史被当作新用量重复计入——有用户报告单日用量跳涨数十亿 token、父子行字节级相同、空 fork 背着从未消耗过的用量。fork / 子代理的 rollout 文件开头会重放父线程历史,旧解析器靠启发式找接管边界(第一个 thread_settings_applied 事件、对象形态的 subagent 来源标记):父线程自己的设置变更出现在重放里时边界落得太早,而当前字符串形态的来源标记则完全识别不到,整段父历史被原样导入。新解析器只认显式父身份——子方 session_meta 上的 forked_from_idsource.subagent.thread_spawn.parent_thread_id,两者冲突时搁置该文件——线程身份锚定到 rollout 文件名 UUID,加载父 rollout 自己的 fork 前 token 计数序列,用令牌签名对齐剥掉子方的重放前缀:重放事件只用于恢复累计基线,绝不插行。不带重放历史的子代理日志现在按真实用量计入,反方向的漏计(真实子代理消耗被当作疑似重放跳过)同步修复。(#5335#5433#5381

代理用量记录改为幂等:响应级稳定键

终态用量事件不带消息 id 时(经本地代理的 Codex /responses 流量是常态),去重键此前回退到随机 UUID——同一上游响应的每次重试 / 重放都造一个新键,INSERT OR REPLACE 每次都堆一行新的;有用户的数据库里同一用量组合出现了 2,078 次。解析器现在从响应信封本身取键——Codex response.completed 事件的 response.id(丢弃 response.created 的 id)、Chat Completions 的 chatcmpl id、Gemini 的 responseId——并按 session:{app_type}:{provider_id}:{id} 作用域化:failover 时同一响应打到不同供应商仍按供应商各记一次、互不碰撞(Claude 保持裸 session:{id} 形态,代理行继续与会话日志导入合流)。完全没有信封 id 时,兜底从响应的用量语义做确定性 SHA-256——相同重放必须撞进同一个键,去重才成立——最终写库也从无条件 REPLACE 改为去重窗口内的「不存在才插入」。(#5496

大量会话导入时用量页不再卡死

导入大批会话时打开用量页可能整个卡住:每插入一行就发一次刷新通知,每次通知让前端重跑全部约 10 个用量查询,这些查询又与正在逐行解析几十 MB rollout 文件的导入器争抢唯一数据库连接——在被重复行吹大的数据库上三者互相放大。现在会话同步改为每轮完成只通知一次;所有会话导入器串行在单飞锁后(手动「立即同步」排队等待运行中的一轮,而不是与之竞争);阻塞式解析挪到专用阻塞线程,不再饿死驱动界面命令的异步运行时;60 秒后台节拍错过就跳过,不再突发补跑。

codex 0.144.5+ 不再因 CC Switch 生成的模型目录无法启动

codex ≥ 0.144.5 严格解析外部模型目录,条目缺 supports_reasoning_summaries 时整个文件被拒——Codex CLI 和桌面端都起不来,删掉生成目录也没用,因为任何一次供应商保存都会按同样方式重新生成。根因是 CC Switch 从机器共享的 models_cache.json 克隆目录模板,而它的字段集取决于最后写它的那个 codex 进程——共存的旧版 codex 一直在用缺字段的形态重写缓存。生成目录现在会从内置静态模板回填解析器必需字段,且只在缺失时回填(动态值永远优先);「缺失即解析器默认值」的可选能力字段刻意不回填,语义必须保留。

Windows:切换供应商不再闪黑窗、不再卡死

Windows 上切换供应商或开关接管会闪过一个控制台窗口、界面卡住约 2 秒。三个原因、三处修复:codex debug models --bundled 探测经 cmd.exe 启动 codex.cmd,GUI 子系统应用里这会弹出自己的控制台——子进程现在带 CREATE_NO_WINDOW 创建;模型目录模板此前每次切换都重新生成——现在首次成功加载后进程级缓存(失败保持可重试,坏的首次探测不会毒化缓存),Codex CLI 每次应用运行至多启动一次;switch_provider 此前是跑在主线程上的同步命令——现在异步化、真实工作在阻塞线程上,仍由按应用切换锁串行。卡顿修复对全平台生效,闪窗修复是 Windows 专属。

工具 schema 为 null / 缺失 / 联合类型不再被严格上游整单拒绝

Codex 内置工具(如 codex_app__automation_update)声明 parameters: null(或 type: null),DeepSeek 这类严格的 OpenAI 兼容上游会对整个请求返回 400,经代理路由的工具会话直接被杀。Responses→Chat 桥现在把每个工具的 parameters 归一为 type:"object" schema:null 或缺失(含嵌套形态的缺失)变为 {"type":"object","properties":{}},非 object 的 type(含 type: null)原位纠正为 "object",顶层 oneOf 联合 schema 补根 type:"object"、分支原样保留。同样的 object 类型保证扩展到了 Codex→Anthropic 工具路径的 input_schema。已有的 properties / required 绝不丢弃。(#4706#5315,修复 #4705、#4783)

推理模型在多轮 Codex Chat 对话中保住思考

推理模型(如 kimi-k2-thinking)走代理的 Responses→Chat 桥时,多轮历史会弄坏思考内容:每轮的 reasoning 条目被粘到上一条助手消息的尾巴上,紧随的助手轮反而没有 reasoning_content——模型会肉眼可见地中途断片。Responses 语义里推理位于它所属消息之前,桥现在把推理前向附挂到其后的助手消息或工具调用上;真正的尾部推理只在确凿的尾部(输入结束,或用户消息这样的轮次边界——此前在这里会被静默丢弃)向后附挂,并追加到已内嵌的推理之后;悬挂中的推理在边界处必被消费,绝不会跨过用户轮泄漏进后面的助手消息。(#5508

流式并行工具调用保住 ID 与顺序

Chat→Responses 流式桥的两个 bug 会弄坏「身份分散在多个 chunk」的上游发来的并行工具调用:携带空 id 的续传增量会覆盖真实 call_id(Codex 客户端看到 call_id:"",工具结果对不上调用);工具调用各自就绪就立即发出,名字先到的靠后索引能插到靠前索引前面——并行调用被重排。现在空 id 一律忽略;发射经过连续索引闸门,严格按 Chat index 顺序放行,未识别的靠前索引没就绪就等待;流中途绝不合成假 call id(只在流终结时作为最后手段,且防御性跳过无名调用、稀疏索引照常发出)。(#5310

受管 OAuth 供应商可靠地标记为「需本地路由」

「需路由」徽标与切换时警告此前由供应商的 API 格式推导,对受管 OAuth 供应商(Copilot、Codex OAuth、xAI)这是错误信号——它们的凭据由代理注入、与上游格式无关,原生格式的受管供应商拿不到警告、不开接管就静默失败。路由需求现在由唯一共享谓词决定:官方供应商永不需要路由,受管 OAuth 供应商恒需要,格式规则只适用于其余情况。切换时的门槛也按应用查对了就绪信号:多数应用查按应用接管状态(旧门槛只看全局代理运行标志,漏掉「代理在跑但当前应用没被接管」),Claude Desktop 继续看代理进程本身——后端接管状态没有 Claude Desktop 字段,统一按应用查会让 Desktop 永远弹警告。Claude Desktop 供应商表单对所有受管 OAuth 类型强制代理模式并锁定模型映射开关,不再只对 xAI。四语同步。

Node 装在 nvm / fnm / mise 里时工具更新可用

锚定的 npm 更新与修复命令按绝对路径调 npm,但 npm 启动器靠 #!/usr/bin/env node shebang 从 PATH 找 node——GUI 启动的应用只继承系统 PATH,不含版本管理器目录,nvm / fnm / mise 安装的工具更新静默失败。现在每个锚定 npm 调用都把 npm 自己的同级 bin 目录前置到 PATH,npm 与它的 shebang 解析到同一个 Node;Codex 自修复(卸载 + 重装)路径同样覆盖。

删除的默认 Skill 仓库不再复活

默认 Skill 仓库此前每次启动被「补齐缺失默认项」逻辑重新播种,删掉的默认仓库下次启动又静默回来。播种改为按数据库一次性,用设置标志记录;升级时已有仓库的数据库直接置标志、不再补种,现有选择不受影响。(#5356

托盘首启语言跟随系统

设置里还没选过语言时,托盘菜单被硬编码为简体中文——英文 / 日文 / 繁中系统上主界面正确跟随系统语言、托盘却不一致,直到用户手动切一次语言。托盘现在按与前端相同的优先级从系统 locale 推导首启语言(含 zh-TW / zh-HK / zh-Hant → 繁体中文);显式选择的语言永远优先,locale 读不到时照旧回落中文。(#4355

导入失败显示真实错误并刷新列表

每次「从 live 配置导入」失败都弹一个空错误提示,因为 Tauri 的 invoke 以后端错误字符串拒绝,而处理器从它上面读 .message。现在显示后端真实报错(带本地化的通用兜底),失败时也会刷新供应商列表——报错前已提交的副作用立即可见。

OpenClaw 预设模型成本修正为官方牌价

15 个 OpenClaw 预设条目的成本值单位错误或未换汇——cost 字段是美元每百万 token,例如 glm-5.1 记成 0.001/0.001(低估约 1000 倍,用量成本近乎 0),deepseek-v4-pro 则带着未换算的人民币值(高估)。所有条目改为官方牌价 $/M;订阅套餐与免费档端点也刻意展示牌价,套餐用户能看到自己用量的标准价值。今后从预设新建的供应商拿到修正值;已创建的供应商保持创建时的配置。

界面小修一组
  • AiHubMix 图标:Codex 应用的 AiHubMix 预设此前缺品牌图标字段、渲染成通用图标,现与其它应用一致。
  • 两个缺失文案键补齐:Codex「因使用 Anthropic Messages 格式需要路由」提示里的原因片段此前在非中文界面显示中文(proxyReasonAnthropicMessages 不存在于任何语言文件);供应商表单的密钥状态加载标签自 4 月起只有硬编码默认值。两者已在 zh / en / ja / zh-TW 全部补齐。

文档
Codex ↔ Claude 双向路由攻略

两篇新攻略把「Codex 客户端用 Claude 模型」「Claude Code 客户端用 Responses 供应商」补成了双向:

  • 在 Codex 中使用 Claude 模型(中 / 英 / 日三语,含截图):配合 v3.17.0 的原生 Anthropic Messages 上游,把 Codex 接到 Claude 系 /v1/messages 网关;v3.17.0 的 release notes 已回链本攻略。
  • 在 Claude Code 中使用 GPT 模型(中文,含截图):用 Responses 协议的供应商(网关 API Key,或 ChatGPT 订阅的 Codex 服务)驱动 Claude Code——Claude Code 始终对本地 /v1/messages 路由说 Anthropic Messages,由代理把每个请求转换成上游的 Responses 协议。
README 赞助商更新

SubRouter 加入四语 README 赞助商表;置顶的 Kimi 赞助文案更新到 K3、横幅改由 Moonshot CDN 提供;RunAPI 权益文案刷新,赞助商行序与应用内预设顺序对齐。


升级提醒
数据库自动迁移与 Codex 用量一次性重建

从 v3.17.0 升级会连续执行三次 schema 迁移(v13 → v16):v14 重建 proxy_config 表以纳入 Grok Build(现有按应用代理设置全部保留,并新增 grokbuild 行);v15 给 MCP 服务器表与 Skills 表加 Grok Build 启用列;v16 触发一次性的 Codex 用量自动重建——数据库先备份到 backups/ 下,codex_session 数据与游标被重置,随后正常的启动同步用修正后的解析器重导全部数据。典型数据量只需数秒;实测最重的数据集(1,801 个 rollout 文件 / 1.5 GB)约 65 秒。之后的启动照旧增量。若有回退旧版本的习惯,建议先自行备份 ~/.cc-switch/cc-switch.db

首次启动时请留意:历史记录的修复是逐渐完成的——重建随启动同步在后台进行,这段时间里用量看板的 Codex 历史数字会先清零、再逐步回填,属预期行为,不是数据丢失。重建完成后的总数通常会比升级前更小:被双计吹大的那部分被挤掉了,剩下的才是真实用量。

重建的边界
  • 重建从 rollout JSONL 文件重新计算用量,源日志已被删除的历史无法重建
  • 父 rollout 缺失的 fork 文件会被搁置并报告,而不是靠猜导入;恢复父日志后运行「重建 Codex 用量」可补导。
  • 历史上代理来源的重复行会永久保留——迁移只重建会话来源的数据,不存在针对过往代理膨胀的清理逻辑;幂等记录只保证从此不再产生新重复。
旧日志文件不会被追溯脱敏

诊断日志从本版起不再在启动时清空、跨重启持久保留(运行日志轮转上限约 100 MB,另有约 15 MB 崩溃日志)。早期版本写下的日志文件不会被追溯清洗,可能含有 API Key、令牌或带凭据的 URL——公开分享前请先检查升级前的旧日志。

Grok Build 安装走官方安装脚本

安装或重装 Grok Build 现在优先使用 xAI 官方安装器,安装时会外联获取 x.ai/cli/install.sh(Windows 为 install.ps1),npm 作为兜底;已有的 npm 安装继续经 npm 更新。

内置定价自动补行

新定价行(grok-4.5kimi-k3k3)在下次启动时按「不存在才插入」自动追加;用户编辑过的定价行绝不被覆盖。


风险提示
xAI Grok OAuth 登录(本版新增,请阅读)

本版的 xAI Grok OAuth 集成复用官方 Grok CLI 注册的公开 OAuth 客户端身份与权限范围client_id b1a00492-073a-47ea-816f-4c329264a828,scope 含 grok-cli:access),而不是 CC Switch 自己注册的应用身份。xAI 可能不支持这种用法,使用可能导致账号被限制或封禁——风险自担。该功能完全可选:不添加 xAI 供应商,一切照旧。首次登录会创建 ~/.cc-switch/xai_oauth_auth.json(仅存刷新令牌,Unix 上权限 0600;访问令牌只存内存),并经你配置的出站代理访问 auth.x.aiapi.x.ai,无本地回调端口。

沿用的反向代理类提示

Codex OAuth 反向代理:使用 ChatGPT 订阅的 Codex OAuth 反代可能违反 OpenAI 服务条款,详情见 v3.13.0 release notes

第三方供应商路由:通过 CC Switch 本地代理把 Codex、Claude Desktop 或 Grok Build 的请求转换并转发到第三方供应商时,各供应商对计费、合规与数据留存的约束不同,请在使用前阅读目标供应商的服务条款。

用户启用上述功能即表示自行承担相关风险。CC Switch 不对因使用这些功能而导致的任何账号限制、警告或服务暂停承担责任。


致谢

感谢以下贡献者在 v3.18.0 中提交的功能与修复:

  • #5453:Grok Build 一等公民支持(第八个受管应用的主体实现),感谢 @YUZHEthefool。
  • #5508:Responses→Chat 桥推理内容前向附挂,感谢 @ka79376046。
  • #5310:流式并行工具调用保 ID 保序,感谢 @SaladDay。
  • #5315:Codex 工具 parameters 归一为 object schema,感谢 @Komikawayi。
  • #4706:严格 OpenAI 兼容上游的工具类型归一,感谢 @Ryan2128。
  • #5356:删除的默认 Skill 仓库不再复活,感谢 @allenxu09。
  • #4355:托盘首启语言跟随系统 locale,感谢 @LaiYueTing。
  • #5138:后端 CI 扩展到 Linux / Windows / macOS 三平台,感谢 @zayokami。

也感谢所有反馈 Codex 用量异常、codex 新版启动失败与工具调用问题的用户——本版最重要的几个修复都来自这些真实场景里的复现线索。


下载与安装

访问 Releases 下载对应版本。

系统要求
系统最低版本架构
WindowsWindows 10 及以上x64 / ARM64
macOSmacOS 12 (Monterey) 及以上Intel (x64) / Apple Silicon (arm64)
Linux见下表x64 / ARM64
Windows
文件说明
CC-Switch-v3.18.0-Windows.msi推荐 - MSI 安装包,支持自动更新
CC-Switch-v3.18.0-Windows-Portable.zip便携版,解压即用,不写入注册表

Windows ARM64 设备请选择文件名中带 arm64 标识的对应制品。

macOS
文件说明
CC-Switch-v3.18.0-macOS.dmg推荐 - DMG 安装包,拖入 Applications 即可
CC-Switch-v3.18.0-macOS.zip解压后拖入 Applications,Universal Binary
CC-Switch-v3.18.0-macOS.tar.gz用于 Homebrew 安装和自动更新

Homebrew 安装:

brew install --cask cc-switch

更新:

brew upgrade --cask cc-switch
Linux

Linux 资产同时提供 x86_64ARM64aarch64)两种架构。资产文件名中包含架构标识,请按你机器的 uname -m 输出选择对应版本:

  • CC-Switch-v3.18.0-Linux-x86_64.AppImage / .deb / .rpm
  • CC-Switch-v3.18.0-Linux-arm64.AppImage / .deb / .rpm
发行版推荐格式安装方式
Ubuntu / Debian / Linux Mint / Pop!_OS.debsudo dpkg -i CC-Switch-*.debsudo apt install ./CC-Switch-*.deb
Fedora / RHEL / CentOS / Rocky Linux.rpmsudo rpm -i CC-Switch-*.rpmsudo dnf install ./CC-Switch-*.rpm
openSUSE.rpmsudo zypper install ./CC-Switch-*.rpm
Arch Linux / Manjaro.AppImage添加执行权限后直接运行,或使用 AUR
其他发行版 / 不确定.AppImagechmod +x CC-Switch-*.AppImage && ./CC-Switch-*.AppImage
View originalPermalink
How v3.18.0 went
v3.17.0

CC Switch v3.17.0

Added 6
  • Project snapshot feature to save and switch between multiple configurations of vendors, MCP, Skills, and memory files with one click from the home page or system tray
  • Official ChatGPT subscription accounts in Codex can now route through local proxy for unified routing and usage statistics without storing credentials
  • Native Anthropic Messages upstream format support in Codex to enable direct use of Claude models in enterprises that disable Claude Code but allow Claude API
  • GPT-5.6 context window injection of 372K tokens when Claude Code runs through Codex
  • Sol, Terra, and Luna pricing tiers for GPT-5.6 with 1.25x cache write fee rate
  • Automatic project switching closes proxy interception to avoid state conflicts between snapshots and routing
Changed 5
  • Upstream failures in proxy bridge now trigger failover instead of returning empty responses
  • Reasoning content, tool results, and system role now transfer losslessly across Responses and Anthropic protocol bridges
  • Default models in presets upgraded to GPT-5.6 family
  • OpenAI Official internal provider option auto-restores when adding a new vendor if previously deleted
  • Codex config.toml merged configuration moved to backend to preserve comments and key order
Fixed 6
  • Cache write tokens no longer double-billed as both input and cache creation cost
  • MCP servers deleted in the application no longer reappear when switching vendors
  • MCP configuration file parsing errors no longer clear the entire file, preferring to report errors instead
  • Kimi For Coding 256K context window now properly takes effect with correct model alias routing and window injection
  • Prompt cache breakpoint injection enhanced so long conversations no longer incur full cost on each turn
  • Client identity corrected to prevent gpt-5.6-luna models from incorrectly reporting 404 errors

CC Switch v3.17.0

这一版带来一个盼了很久的能力:「项目」一键切换——把当前的供应商、MCP、Skills、记忆文件整套保存为命名快照,在标题栏或托盘里一键换成另一套,切换时还会自动把你离开的项目当前状态存回去。Codex 侧同样收获颇丰:官方 ChatGPT 订阅账号现在也能走本地代理路由,享受与第三方供应商相同的路由与用量统计;GPT-5.6 全家的上下文窗口与 Sol / Terra / Luna 三档定价一步到位;还新增了原生 Anthropic Messages 上游格式——所在企业禁用了 Claude Code、但没有禁用 Claude API?现在可以在 Codex 里直接用上 Claude 系列模型。此外是一大波正确性修复:上游失败不再变成「空回复」、缓存写入不再被双重计费、删掉的 MCP 服务器不再复活、Kimi For Coding 的 256K 窗口终于真正生效。

English → | 日本語版 →


使用攻略

本版的新能力主要落在主页顶部的项目切换器、Codex 供应商表单与用量看板里,建议结合以下文档了解:

  • 在 Codex 里使用 Kimi(本地路由攻略):本版新增的分步攻略。较新的 Codex CLI 走 OpenAI Responses 协议,而 Kimi 开放平台与 Kimi For Coding 暴露的是 Chat Completions 端点,直连通常 404;攻略讲解如何用内置的 Kimi / Kimi For Coding 预设配合本地路由完成协议转换。
  • Codex 官方登录保留:了解 CC Switch 如何在切换第三方供应商时保留你的官方 ChatGPT 登录。本版在此基础上更进一步——官方账号本身也可以走代理路由(见下方「新功能」)。
  • 用量统计:了解用量看板的数据来源与统计口径。本版修正了缓存写入计费、补齐了 Codex 子代理会话统计,并新增 GPT-5.6 与混元 Hy3 定价。

[!WARNING]

唯一官方渠道声明(请务必阅读)

CC Switch 是完全免费、开源的桌面应用,不会向用户收取任何费用。请仅通过下列官方渠道获取本软件:

类别唯一官方
官网ccswitch.io
源码github.com/farion1231/cc-switch
下载GitHub Releases
作者@farion1231
举报山寨GitHub Issues

任何向你收费、要求充值、或索取登录凭据的"CC Switch"网站或客户端均为假冒。如果你被诱导支付了费用,请立即停止操作并通过 GitHub Issues 反馈。


概览

CC Switch v3.17.0 是 v3.16.5 之后的一个功能大版本,核心是**「项目」**:你可以把 Claude Code / Claude Desktop / Codex 当前的供应商、MCP、Skills、记忆文件状态保存为命名快照——比如编程目录一套「开发」、写作绘图目录一套「创作」——在主页顶部的切换器或托盘的「项目」子菜单里一键整套切换——切换前会自动把你正要离开的项目状态存回去,所以项目里保存的永远是你上次离开时的样子。第二条主线是 Codex:官方 ChatGPT 订阅账号现在也能走本地代理路由接管(不需要 API Key,Codex 自己的登录凭据原样透传,绝不覆盖你的官方登录);配合修正后的客户端身份,gpt-5.6-luna 这类最新订阅模型不再误报 404;GPT-5.6 的 372K 上下文窗口注入、Sol / Terra / Luna 三档定价(含 1.25 倍缓存写入费率)与预设默认模型同步就位;Codex 上游格式还新增了原生 Anthropic Messages 协议——它瞄准一个很现实的场景:不少企业禁用了 Claude Code 客户端、但并没有禁用 Claude API,这些用户现在可以让 Codex 直连 Claude API(或任何只提供 /v1/messages 的网关),在 Codex 里照常使用 Claude 系列模型。

围绕日常使用的正确性,本版做了三波集中修复。代理桥:上游在 2xx 里返回的语义失败不再被转成空回复,而是触发 failover;推理内容、工具结果、system 角色跨 Responses↔Anthropic 桥无损往返;提示缓存断点注入更充分,长对话不再每轮全价重发。用量计费:缓存写入 token 此前被同时按输入价和缓存创建价双重计费,现已修正(数据库升级到 schema v13 以保证历史数据口径不乱);用量与配额查询遇到网络瞬时失败会自动重试、不再把失败体当真实数据缓存。Codex config.toml:在应用里删掉的 MCP 服务器不再随供应商切换复活;live 文件解析失败时同步宁可报错也不再清空整个文件;「使用通用配置」的合并挪到后端执行,注释与键序不再被打乱。另有 Kimi For Coding 256K 窗口真正生效、Codex 子代理与免费版配额统计补齐、智谱团队套餐配额查询、OpenCode 表单增强与一批预设更新。

发布日期:2026-07-13

更新规模:69 commits | 172 files changed | +21,067 / -2,464 lines


重点内容
  • 「项目」一键切换:把供应商、MCP、Skills、记忆文件整套保存为命名快照(比如编程一套、写作绘图一套),从主页顶部或托盘一键切换;切换时自动保存离开项目的当前状态。覆盖 Claude Code、Claude Desktop、Codex 三个作用域,互不干扰。
  • Codex 官方账号也能走代理路由:ChatGPT 订阅登录的 Codex 会话可通过本地代理路由,获得与第三方供应商一致的路由与用量统计;官方登录凭据绝不被覆盖或存储。
  • GPT-5.6 全面就位:Claude Code 走 Codex 接管时自动注入 372K 上下文窗口;Sol / Terra / Luna 三档定价入库(缓存写入按 1.25 倍输入价计费);相关预设默认模型升级到 gpt-5.6 家族;修正客户端身份后 gpt-5.6-luna 不再误报 404。
  • 在 Codex 里使用 Claude 系列模型(原生 Anthropic Messages 上游):不少企业禁用了 Claude Code 客户端、但没有禁用 Claude API——现在把 Codex 供应商的上游格式选为 anthropic,即可直连 Claude API 或任何只提供 /v1/messages 的网关,本地代理完成 Responses↔Anthropic 双向转换,自带标准 5 分钟提示缓存注入。
  • 代理桥正确性修复:上游失败 fail-closed 触发 failover 而非空回复;推理 / 工具结果 / system 角色跨桥无损;缓存写入不再双重计费;断点注入更充分。
  • Codex config.toml 加固:删掉的 MCP 服务器不再复活;解析失败时 MCP 同步宁可报错也不清空文件;通用配置合并保留注释与键序。
  • Kimi For Coding 256K 真正生效:此前的 262144 压缩窗口从未实际生效(被 Claude Code 的 200K 默认钳回),本版补齐模型别名路由与窗口注入;存量供应商需重新套用预设(见「升级提醒」)。

新功能
「项目」:整套配置的命名快照与一键切换

这是本版的头号功能。你可以把当前的供应商、MCP、Skills、记忆文件状态保存为一个命名「项目」,之后在主页顶部的项目切换器或托盘的「项目」子菜单里一键整套切换,不必再逐项手动勾选。

举个典型场景:你有一个目录用来编程、另一个目录用来写作或绘图。编程时要的是一套供应商,配上文件系统 / GitHub 这类 MCP、代码审查 Skills 和写着工程约定的记忆文件;写作或绘图时往往换另一家供应商、另一组 MCP 和完全不同的提示词。以前在两件事之间来回,意味着切供应商、逐个开关 MCP 和 Skills、再改记忆文件;现在把两套状态分别存成「开发」和「绘图」两个项目,换目录干活时在 CC Switch 里点一下,整套配置随之就位。

项目功能覆盖 Claude Code、Claude Desktop 与 Codex 三个作用域(Claude Desktop 由 CC Switch 管理的维度只有供应商,因此其快照只含供应商、应用时不动其它维度)。

几个值得了解的设计:

  • 项目是全局实体、按作用域切换:同一个项目在 Claude Code / Claude Desktop / Codex 三侧各自记录自己的当前项目与快照槽位,在 Codex 页签切换项目绝不会动到 Claude 的配置。
  • 切换即自动保存:切换项目前,会先把你正要离开的项目在当前作用域下的状态自动存回去——所以项目里保存的永远是你上次离开它时的样子,不需要(也没有)手动「更新快照」按钮。
  • 应用是尽力而为的:套用快照复用现有的切换原语(先切供应商,再做 MCP / Skills 的最小差异开关,最后启用记忆文件);快照里引用的某项如果已被删除,只会告警跳过,不会整体回滚。
  • 自动关闭代理接管:套用项目前会先关闭该作用域内各应用的代理接管,避免快照状态和路由状态打架。

不用项目功能的用户可以在「设置 → 主页显示」里关闭「显示项目切换」,只隐藏主页入口,托盘子菜单与项目数据不受影响。底层由新的 profiles 表支撑(数据库自动迁移,无需手动操作),四语界面文案同步就位。

Codex 官方 ChatGPT 账号的代理路由接管

用 ChatGPT 订阅(OAuth 或 API-key 登录)的 Codex 会话,现在也可以走 CC Switch 的本地代理路由了——官方账号流量获得与第三方供应商一致的路由、格式转换与用量统计。在供应商面板或托盘里选择内置的「OpenAI Official」条目进行接管即可(如果你此前删掉过它,添加供应商时会自动恢复);路由中的卡片徽标显示「官方账号路由中」。

实现上刻意做到零凭据存储:不向 auth.json 写任何占位密钥,而是往 config.toml 投影一个指向本地代理的专用 model_provider,Codex 把自己的 ChatGPT 授权头原样发给代理、代理原样透传给官方端点——codex-official 这一行的凭据永远是空的。官方登录本身绝不被覆盖:接管时 OAuth / API-key 材料会保留进备份;官方端返回的 401 / 403 被视为不可重试错误,failover 绝不会把你的对话悄悄挪到另一个账号上。相应地,「切换时保留 Codex 官方登录」这个设置项的文案已更新——路由接管场景下官方登录总是被保留,该开关现在只管不走路由的第三方直切。

GPT-5.6:上下文窗口、预设默认与三档定价

围绕 GPT-5.6 家族做了三件事:

  • 372K 上下文窗口注入:Claude Code 经代理接管路由到 ChatGPT Codex(Codex OAuth)后端时,自动往生效的 settings.json 注入 CLAUDE_CODE_MAX_CONTEXT_TOKENSCLAUDE_CODE_AUTO_COMPACT_WINDOW(均为 372000),让 Claude Code 不再按默认 200K 窗口过早自动压缩、也不再撑爆上游。注入门控严格:只有当所有已配置的模型键都指向 gpt-5.6 家族时才注入(gpt-5.5 的目录窗口在 272K / 372K 间摇摆,故意不继承);你手动设置的值永远优先;切走时按镜像条件剥离,程序默认永远不会固化进你的供应商配置。
  • 预设默认模型升级:Claude Code 与 Claude Desktop 的 Codex OAuth 预设默认路由升级到 gpt-5.6 家族(haiku → gpt-5.6-luna,主模型 / sonnet / opus → gpt-5.6),自定义 Codex config.toml 模板的默认模型同步跟进。
  • Sol / Terra / Luna 三档定价:用量看板按官方价目为三档入库——Sol 5 / 30 / 0.50、Terra 2.50 / 15 / 0.25、Luna 1 / 6 / 0.10(美元每百万 token,输入 / 输出 / 缓存读)。与 5.5 及更早版本不同,5.6 家族的提示缓存写入按 1.25 倍输入价计费(Sol 6.25 / Terra 3.125 / Luna 1.25),已按此入库并自动修复此前按 0 计的存量行;裸 gpt-5.6 及各 effort 后缀变体按 Sol 价对齐。
在 Codex 里使用 Claude 系列模型:原生 Anthropic Messages 上游

这个功能来自一个很现实的诉求:不少企业出于合规策略禁用了 Claude Code 客户端,但并没有禁用 Claude API。对这些用户来说,模型本身是可用的,缺的只是一个被允许的客户端——现在 Codex 可以补上这个位置。在 Codex 供应商的上游格式选择器里选新增的 anthropic,即可直连 Claude API 或任何只提供原生 Anthropic Messages 协议(/v1/messages)的网关,本地代理完成 Responses↔Anthropic 的请求、响应与流式双向转换,你在 Codex 里照常对话、照常用工具,背后跑的是 Claude 系列模型。表单配套提供:认证字段选择器(ANTHROPIC_AUTH_TOKENAuthorization: Bearer,默认;或 ANTHROPIC_API_KEYx-api-key)、可选的 Claude Code 客户端伪装开关(默认关闭)、以及按供应商的最大输出 token 覆盖(Codex 不发 model_max_output_tokens,不设置时回退到保守的 8192,可能截断长回复或重思考回复)。转换桥自动注入标准 5 分钟提示缓存标记(系统提示、工具与历史走缓存而非每轮全价重发),支持 [1m] 长上下文标记并补发对应 beta 头,截断的流会如实上报为未完成而不是伪装成功。(#5071

Codex 供应商表单新增「默认模型」输入框

config.toml 顶层的 model 键现在是表单里的一个可编辑字段:新模型(如 gpt-5.6)发布后,你可以直接把现有供应商指过去,不必等预设更新(预设只影响新添加的供应商)。字段与 TOML 编辑器双向同步,候选列表来自模型映射目录与供应商 /models 端点的并集,值不在目录里时提供一键「加入映射」。显式填写的值永远优先于映射第一行的隐式回填;模型名与 base_url 写入时做了 TOML 转义,杜绝 /models 返回的远端数据注入伪造配置行的可能。

通用配置切换自动同步扩展到 Codex

v3.16.5 给 Claude 加的「切走时自动把 live 配置里的共享偏好回写到通用配置」现在覆盖 Codex 了:切走一个启用了通用配置的 Codex 供应商时,会先从它的 live config.toml 重新提取可共享部分更新到通用配置,再带给下一个供应商——你直接在运行中的 Codex 配置里改的偏好不再在切换时丢失,删掉的键也不会被悄悄注回。提取器会严格剥离供应商专属与注入内容(model / model_provider / base_url / wire_api、整个 [model_providers] 表、MCP 投影、API key 兜底字段、模型目录指针与注入的 web_search 哨兵),密钥永远不会进入共享片段。所有失败仅告警、绝不阻断切换。

Claude 子代理模型配置

Claude 供应商表单新增「子代理」模型行,写入 CLAUDE_CODE_SUBAGENT_MODEL,让 Claude Code 派生的子代理跑在你指定的(通常更便宜或更快的)模型上。支持 [1M] 标记;由于子代理模型不会出现在 /model 菜单里,该行显示「不在 /model 中展示」占位而没有显示名字段。代理接管路径与模型映射器已同步支持:请求模型与配置的子代理模型一致时原样放行,不再被折叠到默认模型;该键也被排除在共享通用配置之外,不会跨供应商泄漏。(#4830

回退模型字段的 1M 上下文复选框

Claude 表单的回退模型字段(ANTHROPIC_MODEL)现在带上了 Sonnet / Opus / Fable 各档早已有的 1M 复选框:回退模型背后是 1M 窗口时可以如实声明,不再被静默当作 200K。勾选即在模型 id 后追加 [1M] 标记,取消即剥离。(#5124,修复 #3679)

智谱团队套餐配额查询

智谱的团队套餐(团队版 Coding Plan)走同一个配额端点但需要 ?type=2 与两个额外请求头(bigmodel-organization / bigmodel-project),个人版查询够不到。用量脚本弹窗新增「Zhipu GLM Team(智谱团队)」模板,填入 API Key + 组织 ID + 项目 ID 即可查询团队配额;三项缺一会明确提示补全。四语文案同步。(#5128

OpenCode 表单:请求头与模型 Token 上限编辑器

OpenCode 供应商表单补上了两块此前只能手改 JSON 的配置:Headers 编辑器(供应商级 options.headers,如 OpenRouter 排行榜要求的 HTTP-Referer / X-Title,支持增删行、大小写不敏感去重)与按模型 Token 上限model.limit.context / model.limit.output 数字输入,清空即移除)。「额外选项」块改为可折叠区,已有内容时自动展开;顺带修复了旧占位符过滤会误删真实以 option- 开头的选项键的问题。(#2907

新增模型定价:腾讯混元 Hy3

为 2026-07-06 发布的腾讯混元 Hy3(256K 上下文)入库定价(按发布日牌价 CNY 1 / 4 / 0.25 每百万 token 折算),hunyuan-hy3hy3 两个 id 都能命中,其用量不再显示 $0。注意 Hy3 实际是按输入长度分档计费,当前单价表按最低档入库,长上下文请求会低估成本,待官方计费页明确后再修正。


变更
Codex Chat 路由注入 prompt_cache_key,提升缓存命中

Codex 经本地路由转换到 Chat Completions 上游时,现在会按供应商感知地注入 prompt_cache_key:Kimi Coding 与 OpenAI 官方端点自动启用、Kimi 预设显式开启,未知的 OpenAI 兼容网关保持关闭以避免严格 schema 网关报 400。键值只取显式客户端值或真实的客户端会话 ID,绝不生成随机 UUID(那会让每个请求落到不同缓存桶、适得其反)。高级选项里提供自动 / 启用 / 禁用三态覆盖。

Codex 图片能力自动推断,去掉手动开关

生成的 Codex 模型目录现在只把 CC Switch 确认过的精确文本-only 名录内的模型声明为 input_modalities = ["text"];GPT、别名、新后缀变体和一切未知模型一律 fail-open 到 ["text", "image"]——修复了 GPT 系模型在 Codex IDE 扩展里被误报「不支持图片」的问题。整流器的「纯文本模型预检」开关继续只管代理侧的主动请求改写,不影响目录声明;目录反向导入也会把可推断的能力坍缩掉,未来名录修正或模型升级多模态时自动生效。

上下文窗口参数钉进预设,不再作为表单字段

Codex(ChatGPT / GPT-5.6)与 Kimi For Coding 预设不再在表单里展示「最大上下文 Tokens」「自动压缩窗口」两个输入框,数值直接钉死在预设 env 里(Codex 372000 / 372000,Kimi For Coding 262144 / 262144)——绝大多数用户从不需要碰这两个数字。两个键刻意保留在 env 里:显式钉住能让本地压缩触发点免疫远端实验性配置的下调。极少数想改数字的用户仍可在供应商的 JSON 编辑器里直接编辑这两个键。

供应商连通性配置简化

移除了过时的按供应商 testConfig 覆盖(超时、重试次数、降级延迟阈值):轻量的 base_url 探测现在始终使用全局连通性检查配置,自动 failover 仍完全由代理超时与熔断器的独立设置驱动。设置界面与接口命名也从「模型测试」术语统一迁移到「连通性检查」。

通用(多应用)供应商添加后自动同步

通过「添加供应商」弹窗添加通用(多应用)供应商后,现在会立即推送到各 live 目标配置,不再需要手动再点一次同步。同步失败不阻塞添加——供应商已保存但同步失败时给出非阻断的警告提示。(#2811

预设更新
  • LongCat-2.0:美团 LongCat 预设全线(Claude Code / Claude Desktop / Codex / Hermes / OpenClaw / OpenCode)从已退役的 LongCat-Flash-Chat / LongCat-2.0-Preview 升级到 LongCat-2.0,声明真实的 1M(1048576)上下文窗口。LongCat-2.0 是纯文本模型,代理的媒体清洗白名单已同步收录——粘贴进会话的图片会被替换为不支持标记而不是被上游硬拒。(#4838
  • SudoCode:原 sudocode.us 预设原位替换为 sudocode.chat 的新赞助商 SudoCode,覆盖六个客户端(Claude 系直连 Anthropic 透传,Codex / OpenCode / OpenClaw / Hermes 默认 gpt-5.6-sol)。
  • 火山 / 豆包 / BytePlus 官网链接:撤销了 v3.16.5 把这三个预设 websiteUrl 改为产品主页的改动,恢复为带归因参数的活动 / 邀请链接(这是有意为之的设计)。
  • Code0.ai:邀请链接更新为新的 agent 注册链接;API 端点不变。
  • 删除重复的 OpenAI Compatible 预设:OpenCode 与 OpenClaw 预设列表里的 OpenAI Compatible 自定义模板条目被移除——内置的 custom 供应商流程本就提供相同的起点,选择器里不再出现两个指向同一处的入口。存量供应商不受影响。

修复
Codex OAuth 客户端身份对齐:修复最新 ChatGPT 模型 404

用官方 Codex OAuth 账号经本地代理接管路由时,最新的订阅模型(如 gpt-5.6-luna)此前会返回误导性的 404 Model not found——明明账号有权限。根因是 ChatGPT 的 Codex 后端按 originator + version 头做模型分组路由,而 cc-switch 此前自报 originator: cc-switch 且不带版本号,被路由到一个 luna 尚未部署的分组。现在接管请求发送与真实 Codex CLI 一致的 originator: codex_cli_rs + version: 0.144.1,满足 luna 的最低客户端版本要求,经真实后端 A/B 实测确认修复。

Responses 上游失败不再变成空回复

代理把 Anthropic 格式客户端(Claude Code / Claude Desktop)桥接到 OpenAI Responses 上游时,上游藏在 HTTP 2xx 体里的语义失败(status:"failed" 对象、error 信封、首个输出前的 response.failed SSE 事件)此前会被转换成一个悄无声息的空回合。现在这些失败在重试循环内就被识别为真实错误,failover 能够换一个供应商重试;干净结束但内容不完整的流会如实标记为截断而非完成;无视 stream:true 直接返回整个 JSON 文档的网关也能被识别并展开为完整的流式生命周期;客户端历史本身格式错误时立即报错,不再拿着必败的请求把每个供应商都重试一遍。

跨 Responses/Anthropic 桥保留推理、工具结果与 system 角色

多轮工具循环里跨 Responses↔Anthropic 桥的内容不再丢失或损坏:加密的推理(reasoning)条目无损往返(往返失败会导致下一轮请求被上游拒绝的问题同步消除);流式转换器支持官方的推理事件词汇表并在网关跳过增量时从终结事件恢复工具参数;结构化工具结果的 is_error 标志、图片与 PDF 文档在两个方向都完整保留,不再被压平成一个 JSON 字符串;历史里的 system / developer 消息被正确提升为 Anthropic system,不再被静默降级成用户发言。计费上,上游请求成功但后续转换失败时用量照记,不再漏账。

缓存写入 token 不再双重计费

Codex / Gemini 类供应商上报的 input_tokens 同时包含缓存读与缓存写,而成本计算此前只减掉了缓存读——缓存写入 token 被按输入价和缓存创建价计了两次费。现在两者都会先行扣除,并且缓存写入数字在跨格式转换(Chat↔Responses↔Anthropic)时不再丢失。为了让历史数据口径不乱,数据库新增一列记录每行 input_tokens 的存储语义(schema v12→v13 自动迁移):旧行按旧口径回算、新行按新口径,Claude 类行不受影响。

更强的提示缓存断点注入

在注入 Anthropic cache_control 断点的代理路径上(Codex 接管桥与 Bedrock 原生优化器),注入器现在会更充分地使用四个断点预算:除了工具尾、系统尾与最新可缓存消息外,预算有余时再给较早的用户消息加一个锚点,让稳定前缀保持在 Anthropic 20 块回看窗口内——长的、工具密集的对话能持续命中提示缓存,而不是每轮把系统提示、工具与历史全价重发。调用方自带的断点被原样保留(绝不删除、重排或改写);注入的标记一律使用标准 5 分钟 TTL。

Kimi For Coding 的 256K 上下文窗口真正生效

Kimi For Coding 预设在 3.16.4 加的 CLAUDE_CODE_AUTO_COMPACT_WINDOW=262144 其实从未生效:Claude Code 对不认识的模型 id 按 200K 窗口封顶,且压缩窗口取 min(模型窗口, 设定值),262144 被钳回 200K。本版补齐了缺失的两环——预设同时钉上 CLAUDE_CODE_MAX_CONTEXT_TOKENS,并把各档模型显式路由到端点的 kimi-for-coding 别名(claude- 前缀 id 会让 Claude Code 无视这两个窗口参数,非 Claude 别名才是解锁大窗口的关键)。已保存的供应商在切换时也会自动注入这两个窗口默认值,但别名路由只存在于预设里——旧预设存下来的供应商实际仍是 200K,需要重新套用一次预设(见「升级提醒」)。

删除的 Codex MCP 服务器不再复活

MCP 服务器的权威数据在数据库里,Codex live config.toml 中的 [mcp_servers] 只是每次写入后重新同步的投影——但切走供应商时这份投影会被固化进供应商快照,导致你在应用里删掉的服务器在下次激活该供应商时死而复生,且逐条对账永远清不掉这个孤儿。现在切走时会把 [mcp_servers](含旧式 [mcp.servers])从存储快照中剥离,已被污染的快照在下次切走时自愈。一个可见的副作用:手写在 Codex 供应商配置里的 [mcp_servers.*] 段会在首次切走时被剥出快照——今后请通过 MCP 管理器定义 Codex 的 MCP 服务器(见「升级提醒」)。

MCP 同步更健壮:解析失败不清空文件、按应用报错

两处修复。其一,向 Codex 写入单个 MCP 服务器时,如果现有 config.toml 解析失败,旧逻辑会退到空文档再整体写回——整个文件被清空、只剩那一个 MCP 条目;现在直接返回校验错误并保持文件原样。其二,「从应用导入」此前把每个导入器的错误吞成 0,坏掉的 Codex 配置只会显示「导入了 0 个服务器」;现在逐应用尽力导入、失败时报出具体是哪个应用出了问题。切换与保存时的投影也改为只针对目标应用,一个应用的 live 文件解析失败不再连坐阻塞其它应用、也不再把已经成功的切换误报为失败。

Codex 通用配置合并保留注释与键序

Codex 供应商表单里勾选 / 取消「应用通用配置」此前走前端 TOML 实现整篇重排(解析 → 合并 → 序列化):注释被丢弃、键被重排、还会凭空多出 [model_providers] 这类空表头——就是「config.toml 老被重排」的元凶。现在合并走后端命令、与写 live 配置共用同一套合并语义,手写格式在编辑期合并中完整幸存;针对异步化引入的快速切换竞态也加了双重守卫(操作序号 + 配置基线核对),先发后至的旧结果不会覆盖新状态。

受管 Claude 接管只注入单个 auth 占位符

从第三方端点切到 Codex 受管供应商时,~/.claude/settings.json 里会同时写入 ANTHROPIC_API_KEYANTHROPIC_AUTH_TOKEN 两个占位符,导致 Claude Code 每次启动都警告「Both ANTHROPIC_AUTH_TOKEN and ANTHROPIC_API_KEY set」。现在只注入一个:Codex 受管走 ANTHROPIC_AUTH_TOKEN、Copilot 走 ANTHROPIC_API_KEY,其余 token 键一律清除。注意:升级后如果 live 配置已带着双键,由于「配置未变则跳过重写」的短路逻辑,警告可能仍在——把 Claude 路由开关关再开一次(或切换一次供应商)即可触发重写(见「升级提醒」)。(#5095,修复 #4919)

用量与配额查询:瞬时失败可自动重试、不再毒化缓存

用量与配额查询频繁出现手动刷新也清不掉的「查询失败」,根因是所有传输层失败(包括读响应体中途超时)都被折叠成了「成功但结果为失败」——前端的自动重试从不触发,失败体还被当作真实数据缓存。现在传输失败如实返回错误:react-query 自动重试生效,HTTP 429 与 5xx 一样按瞬时失败处理,保留的上次成功数据按 10 分钟窗口正常过期,失败状态下页脚保留重试入口与真实错误信息。(修复 #3820

Codex 子代理会话用量计入本地统计

Codex 子代理(spawned agent)会话的 token 用量此前完全没进本地统计:子代理日志里携带的是父线程的 session_id,多个子代理的记录互相碰撞、被当作重复丢弃。现在解析器按每个文件自己的 thread_id 建立唯一身份,并识别子代理日志开头对父线程历史的重放、只用它恢复累计基线而不重复计费;归档日志也按文件名继承同步游标,重新解析只导入新增部分。(#5187

Codex 免费版 30 天配额窗口正常显示

Codex 免费账号按 30 天滚动窗口计量(而非付费版的周窗口),但前端白名单和托盘分组都不认识 30_day 这个档位——免费账号唯一的档位被过滤掉后,配额页脚整个空白、托盘也不显示任何配额。现在 30 天档位在页脚和托盘都正常渲染,四语标签同步。(#4886,修复 #3651)

用量看板刷新间隔持久化

用量看板的自动刷新间隔此前是组件内状态,每次重启都重置回 30 秒。现在通过新的应用设置持久化,改动乐观生效、保存失败自动回滚。(#5057

Fable 档模型键不再泄漏进通用配置

Fable 是 v3.16.3 加入的第四个 Claude 模型映射档,但它的 ANTHROPIC_DEFAULT_FABLE_MODEL(_NAME) 两个键漏在了供应商专属排除名单之外——某个供应商的 Fable 模型钉选可能泄漏进共享通用配置、再被注入到其它供应商。现已与 haiku / sonnet / opus 三档一样剥离,并顺带补全了 Fable 档的代理接管支持(接管时写入稳定的角色别名、切走时清理陈旧值)。(#5206,修复 #4272)

工具 schema 缺省 type 兜底与无分类供应商的 API Key 输入框

两个供应商侧修复:客户端发来的工具如果 input_schema 缺顶层 type(或干脆是空 {}),代理转换后会被严格网关拒绝,现在根 schema 自动补 type: "object"(只补根、不动嵌套子 schema);历史导入或手工构建的无分类供应商在编辑时看不到 Claude API Key 输入框的问题也已修复——现在只要不是官方 / 云厂商类供应商就显示该字段。(#5069

GLM 5.2 纯文本模型的图片请求兜底

本地代理接管火山 Coding Plan 跑 GLM 5.2 时,请求里的图片块不再产生一个无法恢复的 400:文本-only 名录精确收录 glm-5.2(刻意不用前缀匹配,未来的多模态 glm-5.2v 不受牵连),预防路径在请求到达前剥离图片;网关那句不含 image 字样的报错(Model only support text input)也被反应路径的自证短语名录识别,触发媒体兜底。(修复 #5025

会话与 live 配置同步小修一组
  • 显示重命名的 Codex 会话标题:在 Codex 里重命名过的会话,会话管理器现在显示新标题而不是回退到首条消息文本;并发写入时的读取也不再立即失败。(#4927
  • OpenCode / OpenClaw / Hermes 的 live 编辑在启动时同步入库:直接改 live 配置文件(换 base URL、加模型)此前在首次导入后就再也不会被拾取;现在每次启动时对比 live 与库存,差异即更新,全程非致命。(#4712#5098
  • OpenCode 会话恢复命令更新:会话管理器展示与复制的恢复命令从过时的 opencode session resume <id> 更正为当前 CLI 的 opencode -s <id>。(#2359
  • 官方供应商跳过连通性探测:连通性检查不再对官方类供应商推导出一个无凭据必失败的第一方端点探测(例如裸打 chatgpt.com/backend-api/codex),批量检查直接跳过、单独解析明确报错。

文档
Codex + Kimi 本地路由攻略

新增分步攻略(中 / 英 / 日三语,含界面截图),讲解如何借助 CC Switch 的本地路由在 Codex CLI 里使用 Kimi:较新的 Codex CLI 走 OpenAI Responses 协议,而 Kimi 开放平台(按量付费,kimi-k2.7-code)与 Kimi For Coding(会员制,kimi-for-coding)暴露的都是 Chat Completions 端点,直连通常在 /responses 上 404。攻略覆盖从内置预设添加供应商到四步协议转换链的完整流程。

README 赞助商更新

开源 AI 基建项目 new-api 加入四语 README 的赞助商表。


升级提醒
Kimi For Coding 供应商需重新套用预设

如果你在用 Kimi For Coding 预设创建的供应商,请重新从预设选择一次并保存:256K 窗口的关键——把各档模型路由到 kimi-for-coding 别名——只存在于新版预设里,旧预设存下来的供应商即使升级后实际仍按 200K 窗口过早压缩。

手写的 Codex [mcp_servers.*] 会被剥出快照

为了根治「删掉的 MCP 服务器复活」,切走 Codex 供应商时会把 [mcp_servers] 段从存储快照中剥离。如果你有直接手写在某个 Codex 供应商配置里的 MCP 服务器,它会在首次切走该供应商时从快照消失——请改用 MCP 管理器(MCP 页签)定义 Codex 的 MCP 服务器,那里的条目才是权威数据、会被自动投影到 live 配置。

双 auth 键警告可能需要手动触发一次重写

如果升级后 Claude Code 仍提示「Both ANTHROPIC_AUTH_TOKEN and ANTHROPIC_API_KEY set」,这是因为 live 配置未变时接管逻辑会短路跳过重写。把 Claude 的路由开关关掉再打开一次(或切换一次供应商)即可写入修正后的单占位符配置,警告随之消失。

数据库自动迁移

首次启动 v3.17.0 时数据库会自动从 schema v11 迁移到 v13(新增项目表与用量语义列),无需任何手动操作。如果你有回退到旧版本的习惯,建议先备份 ~/.cc-switch/cc-switch.db


风险提示

本版本继续沿用此前版本对反向代理类功能的风险提示。

Codex OAuth 反向代理:使用 ChatGPT 订阅的 Codex OAuth 反代可能违反 OpenAI 服务条款,详情见 v3.13.0 release notes。本版新增的「官方 ChatGPT 账号代理路由接管」同样属于此类用法,请知悉相同的风险。

Codex 第三方供应商 Chat 路由:通过 CC Switch 本地代理把 Codex 请求转换并转发到第三方供应商时,各供应商对计费、合规与数据留存的约束不同,请在使用前阅读目标供应商的服务条款。

Claude Desktop 第三方供应商代理切换:通过 CC Switch 内置代理网关把 Claude Desktop 的请求转到第三方供应商时,同样需要遵守目标供应商的计费、合规与数据留存约束。

用户启用上述功能即表示自行承担相关风险。CC Switch 不对因使用这些功能而导致的任何账号限制、警告或服务暂停承担责任。


致谢

感谢以下贡献者在 v3.17.0 中提交的功能与修复:

  • #5071:新增原生 Anthropic Messages 协议作为 Codex 上游,感谢 @yeeyzy。
  • #4830:新增 Claude 子代理模型配置,感谢 @AkimioJR。
  • #5124:给回退模型字段加上 1M 复选框,感谢 @salarkhannn。
  • #5128:新增智谱团队套餐配额查询,感谢 @zhanxin-xu。
  • #2907:OpenCode 表单新增请求头与 Token 上限编辑器,感谢 @git1677967754。
  • #2811:通用供应商添加后自动同步,感谢 @hubutui。
  • #4838:LongCat 预设升级到 LongCat-2.0,感谢 @solthx。
  • #5095:受管 Claude 接管只注入单个 auth 占位符,感谢 @fengshao1227。
  • #5187:Codex 子代理会话用量计入统计,感谢 @starmiaoa。
  • #4886:修复 Codex 免费版 30 天配额窗口不显示,感谢 @SaladDay。
  • #5057#4927#2359:刷新间隔持久化、重命名会话标题显示与 OpenCode 恢复命令修正,感谢 @makoMakoGo。
  • #5206:Fable 模型键排除出通用配置,感谢 @fzh365。
  • #5069:工具 schema 缺省 type 兜底与 API Key 输入框恢复,感谢 @Komikawayi。
  • #4712#5098:OpenCode / OpenClaw / Hermes live 配置启动同步,感谢 @allenxu09。

也感谢所有反馈 Codex 官方路由、缓存计费、MCP 同步与配额查询问题的用户——本版相当一部分修复来自这些真实使用场景里的复现线索。


下载与安装

访问 Releases 下载对应版本。

系统要求
系统最低版本架构
WindowsWindows 10 及以上x64 / ARM64
macOSmacOS 12 (Monterey) 及以上Intel (x64) / Apple Silicon (arm64)
Linux见下表x64 / ARM64
Windows
文件说明
CC-Switch-v3.17.0-Windows.msi推荐 - MSI 安装包,支持自动更新
CC-Switch-v3.17.0-Windows-Portable.zip便携版,解压即用,不写入注册表

Windows ARM64 设备请选择文件名中带 arm64 标识的对应制品。

macOS
文件说明
CC-Switch-v3.17.0-macOS.dmg推荐 - DMG 安装包,拖入 Applications 即可
CC-Switch-v3.17.0-macOS.zip解压后拖入 Applications,Universal Binary
CC-Switch-v3.17.0-macOS.tar.gz用于 Homebrew 安装和自动更新

Homebrew 安装:

brew install --cask cc-switch

更新:

brew upgrade --cask cc-switch
Linux

Linux 资产同时提供 x86_64ARM64aarch64)两种架构。资产文件名中包含架构标识,请按你机器的 uname -m 输出选择对应版本:

  • CC-Switch-v3.17.0-Linux-x86_64.AppImage / .deb / .rpm
  • CC-Switch-v3.17.0-Linux-arm64.AppImage / .deb / .rpm
发行版推荐格式安装方式
Ubuntu / Debian / Linux Mint / Pop!_OS.debsudo dpkg -i CC-Switch-*.debsudo apt install ./CC-Switch-*.deb
Fedora / RHEL / CentOS / Rocky Linux.rpmsudo rpm -i CC-Switch-*.rpmsudo dnf install ./CC-Switch-*.rpm
openSUSE.rpmsudo zypper install ./CC-Switch-*.rpm
Arch Linux / Manjaro.AppImage添加执行权限后直接运行,或使用 AUR
其他发行版 / 不确定.AppImagechmod +x CC-Switch-*.AppImage && ./CC-Switch-*.AppImage
View originalPermalink
How v3.17.0 went
v3.16.5

CC Switch v3.16.5

Added 6
  • Generate Codex model catalog for native Responses suppliers including Xiaomi MiMo, Volcano DouBao, Qwen3-Coder, Meituan LongCat, and MiniMax to display custom models and enable built-in tools
  • Auto-disable web_search tool for suppliers that do not natively support it (MiMo, LongCat, MiniMax, Qwen3-Coder) to prevent 400 errors
  • Add two-level grouped session view with supplier and project directory hierarchy
  • Add Claude Sonnet 5 model pricing at $3/$15 per million tokens for input/output with corresponding cache rates
  • Add supplier presets for Qiniu, FennoAI, ZetaAPI, TeamoRouter, NekoCode, Code0.ai, and Amux
  • Add environment variable CC_SWITCH_GDK_BACKEND to switch between Wayland and X11 backends for Linux display issues
Changed 3
  • Auto-sync and propagate universal configuration when switching suppliers so plugins, environment variables, theme, and hooks added in the application are preserved
  • Upgrade default Sonnet model to claude-sonnet-5 across presets
  • Decouple Codex model mapping from local routing toggle so native suppliers generate catalog without requiring local routing enabled
Fixed 6
  • Fix credential persistence in usage script by treating credentials as explicit overrides only
  • Fix universal configuration fragments to exclude all sensitive keys
  • Fix Hermes Windows configuration directory compatibility
  • Fix Windows Codex npm shadow command
  • Fix long dropdown scrolling behavior
  • Fix date picker layout in narrow windows

CC Switch v3.16.5

这一版的重头戏是让原生 Responses 格式的国产模型供应商真正适配到位——为小米 MiMo、火山豆包、千问 Qwen3-Coder、美团 LongCat、MiniMax 等具备原生 Responses 端点的供应商生成 Codex 模型目录,让 Codex 桌面能看到这些模型、内置工具也能正常工作,并对少数拒收 web_search 的国产网关自动禁用该工具、避免请求被硬性拒绝。另有两处重要改进:切换供应商时,你在应用内新增的插件、环境变量等会自动回写到通用配置并带给下一个供应商;Linux(Wayland + NVIDIA)上「标题栏能点、页面点不动、缩放黑屏」的问题,现在也能用一个环境变量开关自救。本版还带来 Claude Sonnet 5 定价与默认档升级、两级分组的会话视图,以及一批凭据安全与平台兼容修复。

English → | 日本語版 →


使用攻略

本版的新能力主要落在 Codex 供应商表单、会话面板与用量 / 通用配置里,建议结合以下文档了解:

  • Codex 桌面看不到自定义模型?:本版重做了原生直连时的模型目录生成——当 Codex 供应商使用原生 Responses(openai_responses)直连时,CC Switch 会生成 ~/.codex/cc-switch-model-catalog.json,让 Codex 桌面能显示配置的自定义模型、工具也可用。若你此前配过原生 Codex 供应商,请重新保存一次以生成新目录(详见下方「升级提醒」)。
  • 用量统计:了解用量看板的数据来源与统计口径。本版新增了 Claude Sonnet 5 定价,并修复了用量脚本凭据被当作「显式覆盖」持久化的问题。
  • 设置:Codex 上游格式选择器与本地路由开关、Claude 通用配置(现更名为「应用通用配置」并支持切换时自动同步)都在供应商表单的高级选项里。

[!WARNING]

唯一官方渠道声明(请务必阅读)

CC Switch 是完全免费、开源的桌面应用,不会向用户收取任何费用。请仅通过下列官方渠道获取本软件:

类别唯一官方
官网ccswitch.io
源码github.com/farion1231/cc-switch
下载GitHub Releases
作者@farion1231
举报山寨GitHub Issues

任何向你收费、要求充值、或索取登录凭据的"CC Switch"网站或客户端均为假冒。如果你被诱导支付了费用,请立即停止操作并通过 GitHub Issues 反馈。


概览

CC Switch v3.16.5 是 v3.16.4 之后的一版维护更新,核心是把国产模型供应商的 Codex 原生直连做通。v3.16.4 已经把千问 / 百炼、小米 MiMo、火山豆包、美团 LongCat、MiniMax 等供应商切到了原生 Responses 端点,本版进一步为它们生成 Codex 所需的模型目录~/.codex/cc-switch-model-catalog.json),让 Codex 桌面真正能看到这些自定义模型、内置工具也能正常调用,并把模型映射从「本地路由」开关里彻底解耦。针对少数第一方模型不支持 OpenAI 内置 web_search 的国产网关(MiMo、LongCat、MiniMax、Qwen3-Coder),本版还会自动禁用该工具,避免 Codex 默认带上它触发硬 400。

围绕日常使用体验,本版让 Claude 的通用配置在切换供应商时自动同步并传递——你在应用内新增的插件、环境变量、主题等会先回写到通用配置、再带给下一个供应商,不会在切换时丢失;给 Linux(Wayland + NVIDIA)上点击失灵 / 黑屏的用户加了一个可自救的环境变量开关;补上 Claude Sonnet 5 定价并把默认 Sonnet 档升级到它;带来「供应商 → 项目目录」两级分组的会话视图;并修了一串凭据安全(通用配置片段剥离全部密钥、用量脚本凭据仅作显式覆盖)、平台兼容(Hermes Windows 配置目录、Windows Codex npm 影子命令)与界面(长下拉滚动、窄窗口日期选择器)的问题。此外也新增了若干供应商预设,开箱即可选用。

发布日期:2026-07-01

更新规模:36 commits | 93 files changed | +5,678 / -2,804 lines


重点内容
  • 让国产模型供应商的 Codex 原生直连真正可用:为小米 MiMo、火山豆包、千问 Qwen3-Coder、美团 LongCat、MiniMax 等国产供应商生成 Codex 模型目录(~/.codex/cc-switch-model-catalog.json),让 Codex 桌面能看到这些模型、内置工具可用;并对拒收 web_search 的国产网关(MiMo、LongCat、MiniMax、Qwen3-Coder)自动禁用该工具、避免硬 400。存量原生供应商需重存一次以生成新目录。
  • 通用配置切换时自动同步并传递:切走一个启用了通用配置的 Claude 供应商时,你在应用内新增的插件、环境变量、主题、hooks 会先自动回写到通用配置,再带给下一个供应商——不再在切换时被覆盖丢失。
  • Linux Wayland 点击失灵 / 黑屏的自救开关:遇到 Wayland + NVIDIA 上「标题栏能点、页面点不动、缩放黑屏」时,用 CC_SWITCH_GDK_BACKEND=wayland 启动即可切回原生 Wayland(平铺式合成器上遇到反向问题可设为 x11)。
  • Claude Sonnet 5:新增 Sonnet 5 定价,并把各预设的默认 Sonnet 档升级到 claude-sonnet-5
  • 会话分类视图与分组管理:会话面板新增「供应商 → 项目目录」两级分组视图,分组头支持三态复选框一键批量选择。
  • 新增供应商预设:新增七牛云、FennoAI、ZetaAPI、TeamoRouter、NekoCode、Code0.ai、Amux 等供应商预设,覆盖各受管应用,开箱即可选用。

新功能
国产模型供应商的 Codex 原生直连(生成模型目录)

本版把国产供应商的 Codex 原生直连做通了。继 v3.16.4 把小米 MiMo、火山豆包、千问 Qwen3-Coder、美团 LongCat、MiniMax 等供应商切换到原生 Responses(apiFormat: "openai_responses")之后,本版推翻了当时「原生直连就删掉模型目录」的做法:这些供应商不经过本地代理直连时,CC Switch 会为它们生成 ~/.codex/cc-switch-model-catalog.json,让 Codex 桌面真正显示这些自定义模型、内置工具也能用——不会触发像 MiMo 这类原生网关会拒绝的 freeform apply_patchtype=custom)工具(编辑回退到 shell_command)。目录生成按 apiFormat 判定、与「本地路由」开关解耦,因此一个原生供应商无需开启本地路由映射也会持久化目录;而 openai_chat 格式仍保持既有的 Responses↔Chat 代理转换不变。由于 Codex 解析器要求每个条目都带 base_instructions,原生模板携带一个中性默认值、由各厂商官方文案覆盖(MiMo、MiniMax)。存量原生供应商需重新保存一次以生成有效目录(无需数据库迁移)。

配套地,对少数第一方模型不支持 OpenAI 内置 web_search 工具的国产网关(MiMo、LongCat、MiniMax、Qwen3-Coder),本版会在切换时自动禁用该工具,避免 Codex 默认带上它、被网关以硬 400 拒绝(详见下方「修复」)。

会话分类视图与分组管理

会话管理面板在原有平铺列表之外新增了分组视图,通过工具栏的 List / ListTree 选择器切换,视图模式与展开状态都持久化到 localStorage。分组构建「供应商 → 项目目录」两级层级:按项目目录名归组,缺少项目目录的会话落入「未知目录」桶。两级都是可折叠区块,并提供「全部折叠」按钮;在批量模式下,每个分组头会出现一个三态复选框,可一键选中 / 取消该组内全部可选会话,并显示已选 / 可选计数徽标。四语(zh / en / ja / zh-TW)文案已同步。该改动完全在前端,不涉及后端命令或数据访问层。(#4776

Claude Sonnet 5 模型定价

schema.rs 里按 Anthropic list 价新增 claude-sonnet-5 定价行——输入 / 输出 $3 / $15 每百万 token、缓存读写 $0.30 / $3.75,与 Sonnet 4.6 一致。介绍期 $2 / $10 促销(有效期至 2026-08-31)刻意不入表,让记账反映稳态 list 价而非临时折扣。该行在应用下次启动时通过 ensure_model_pricing_seeded 应用,无需 SCHEMA_VERSION 变更。

新增供应商预设

本版新增了一批供应商预设,选中后填入自己的 API Key 即可使用:

  • 七牛云(Qiniu):覆盖全部 7 个受管应用(含 Gemini),中转原生 Claude / GPT / Gemini。
  • FennoAI / ZetaAPI / TeamoRouter / NekoCode:各覆盖 6 个应用(Claude、Claude Desktop、Codex、OpenCode、OpenClaw、Hermes)。
  • Code0.ai:覆盖全部 7 个应用(含 Gemini)。
  • Amux:覆盖 6 个应用。

各预设的端点与默认模型已按对应应用配好——Claude 类走 Anthropic 兼容主机直连、Codex 走原生 Responses、其余走 OpenAI 兼容 /v1


变更
切换供应商时自动同步并传递通用配置

这是本版一个很实用的改动:切走一个启用了通用配置的 Claude 供应商时,服务会先从它的 live settings.json重新提取可共享部分、更新到通用配置,再带给下一个供应商,而不再只是单向写入。这样一来,你在运行中的应用里直接新增的插件(enabledPlugins)、hooks、环境变量(env)、主题(theme)等共享配置就不会在切换时被静默丢失,而是自动跟着走到下一个供应商;删除也会同步(移除的键不会被再次注入)。该同步严格限定在启用了通用配置的 Claude 供应商,被显式清空时会跳过,且所有失败都是非致命(仅告警)、永不阻断切换。

Codex 模型映射与「本地路由」开关解耦

Codex 供应商表单向 Claude Code 对齐——模型映射目录现在独立于路由接管,因为原生 Responses 供应商(MiMo、豆包、MiniMax)需要它来做无代理直连,而 Chat 供应商无论如何都走代理。「需要本地路由」开关被移除(它没有后端字段,只是门控目录 / 推理的持久化,等价于「映射是否填了」)。模型映射现在对非官方供应商始终显示、非空即持久化,而推理能力的显示 / 持久化改由 Chat 格式门控。四语(zh / en / ja / zh-TW)文案随之重写。顺带修复了 useCodexConfigState 在加载已存供应商时丢掉 supportsParallelToolCalls / inputModalities / baseInstructions 的问题(会在编辑时静默丢失并行工具、图像输入与官方 base instructions)。

默认 Sonnet 档升级到 Claude Sonnet 5

把各供应商预设里的默认 Sonnet 档从 claude-sonnet-4-6 升级到 claude-sonnet-5(覆盖 claude / claude-desktop / hermes / openclaw / opencode 预设与通用 NEWAPI_DEFAULT_MODELS),涉及 ANTHROPIC_MODEL / ANTHROPIC_DEFAULT_SONNET_MODEL / ANTHROPIC_DEFAULT_OPUS_MODEL 等键及其带前缀变体。Claude Desktop 的默认路由 sonnet route_id 也一并迁移到 claude-sonnet-5。非 Anthropic 的 pin(gpt / gemini / glm / sonnet-4-5)保持不变。

豆包带日期 model id 与定价归一化

豆包(DouBaoSeed)预设的 model id 切换到带日期的 doubao-seed-2-1-pro-260628(覆盖各应用),因为火山方舟会以 404 拒绝裸名 doubao-seed-2-1-pro、只接受完整带日期 id。由于真实用量现在带日期后缀,strip_model_date_suffix 扩展为也能剥掉火山的 6 位 YYMMDD 形式(并校验月 01-12、日 01-31 以免误伤 -123456 这类非日期版本后缀),从而归一化命中定价表里的裸名 seed 行、修复豆包模型显示 $0 成本的问题。

###「写入通用配置」更名为「应用通用配置」

原标签「写入通用配置」在数据流向上有歧义(读起来像「把当前配置写进通用配置」),而实际行为相反——是把已存的通用配置片段合并进本供应商配置。复选框在四语(zh / en / ja / zh-TW)里更名为「应用通用配置」,包括所有提示 / 攻略 / 说明引用,日文用户手册与 README_JA.md 也一并同步。(#4829

其它预设与资源调整
  • OpenClaw 豆包上下文对齐 262144:OpenClaw 的 DouBaoSeed 预设此前硬编码 128000,而 Codex 侧同模型用 262144,导致 OpenClaw 用户窗口偏小;已对齐并加了跨预设一致性测试防止再次漂移。
  • 火山 / 豆包 / BytePlus 官网链接订正:这三个预设的「访问官网」链接被误设成了控制台 / 注册链接,已恢复为干净的产品主页。
  • 过大的供应商图标降采样到 256px:一批捆绑图标此前远大于其 ~32px 的实际渲染尺寸,降采样后显著减小体积、无代码 / 文件名 / 导入改动(如 ZetaAPI 940KB→40KB、relaxcode 1.16MB→42KB),并删除了从未被引用的 1.4MB dds.svg 孤儿。

修复
对拒收 web_search 的原生 Codex 网关禁用该工具

一些原生 /responses 网关的第一方模型不具备 OpenAI 内置的 web_search 工具,会以「tool type 'web_search' is not supported」拒绝,而 Codex 默认就会带上该工具,导致硬 400。CC Switch 现在会为这些厂商写入顶层 TOML 行 web_search = "disabled"。作用域是一份黑名单(默认开启):仅命中 base_url 主机(xiaomimimo.comlongcat.chatminimax.iominimaxi.com)或模型品牌前缀(mimolongcatminimaxqwen3-coder)的供应商会被禁用,因此中转真 GPT、豆包、通用 Qwen 及任何未知供应商都保持 Codex 默认。其中 qwen3-coder 前缀只压制原生 qwen3-coder-plus(百炼 / DashScope 对 coder 系标记内置工具不支持),共享同一主机的通用 Qwen 保持开启;匹配走模型轴(会剥掉聚合器的 vendor/ 路径段),因此也能兜住硅基流动这类中转拒收厂商模型的情形。选黑名单而非模糊的「是不是 GPT」白名单,是因为误让 web_search 保持开启会以硬 400 失败;同时用归属哨兵保证 CC Switch 只会移除由它自己写入的 disabled 值,因此存量供应商无需重存、切回也会重新启用。此外顺带把 LongCat-2.0-Preview 预设的上下文窗口从 131072(128K)订正为真实的 1048576(1M)。

通用配置片段剥离全部凭据类键

extract_claude_common_config 此前只脱敏 ANTHROPIC_API_KEYANTHROPIC_AUTH_TOKEN,但 Claude 供应商合法地携带其它凭据(OPENROUTER_API_KEYGOOGLE_API_KEY,可能还有 OpenAI / Gemini / AWS Bedrock / Vertex 密钥),这些可能泄漏进共享片段、再被注入到其它供应商。提取现在会按模式匹配并剥掉任何凭据形态的环境变量键(*_API_KEY / *_AUTH_TOKEN / *secret* / *token* 等),同时保留 MAX_OUTPUT_TOKENS 这类合法可共享的复数 *_TOKENS 值。手动「提取」与一次性自动提取路径的同一泄漏也一并堵上。

用量脚本凭据仅作显式覆盖持久化

供应商用量脚本存有可选的 api_key / base_url 字段用于查询配额时覆盖 live 凭据,但它们此前会静默镜像供应商自身的凭据——因此复制供应商或修改主 API key / base URL 后,用量脚本仍 pin 在旧端点旧 key,配额查询一直打向陈旧目标。现在 ProviderService 在持久化前会归一化:若脚本的 api_keybase_url 与供应商解析出的用量凭据相同(或为空)就清为 None,让查询回退到 live 配置;真正不同的覆盖才保留(token_plan 类脚本不动)。deeplink 导入路径也加了对应的归一化,前端在更新时会失效相关缓存键让首页用修正后的配置重新查询。(#4654

Hermes 配置目录在 Windows 上正确解析

CC Switch 此前硬编码 ~/.hermes 作为 Hermes 配置目录,但 Hermes 自身是按 HERMES_HOME 环境变量、再退到平台默认(Windows 上 %LOCALAPPDATA%\hermes)解析的。在 Windows 上这意味着 CC Switch 把供应商配置写到了 Hermes 根本不读的路径,导致供应商切换无效。get_hermes_dir() 现在镜像 Hermes 自己的解析顺序——显式覆盖、HERMES_HOME(原样取用、不做 ~ 展开)、平台默认——从而重新尊重被 #3470 丢掉的 HERMES_HOME(Hermes 的 Windows 安装器把它作为重定位安装的首要机制)。(#4680,参见 #3178、#3470)

Linux Wayland:允许覆盖 AppImage 强制的 GDK_BACKEND=x11

AppImage 的 GTK 启动钩子无条件导出 GDK_BACKEND=x11 以规避一个历史上的原生 Wayland 崩溃。在较新的 Wayland + NVIDIA 环境上,这个被强制的 XWayland 会让 WebKitGTK 网页内容收不到指针事件(标题栏可点、页面却死了)、并在缩放时黑屏,而既有的 WEBKIT_DISABLE_* 缓解不起作用,因为根因是被强制的窗口后端而非渲染。main.rs 现在会在 GTK 初始化前读取一个可选的 CC_SWITCH_GDK_BACKEND 逃生开关(AppImage 的启动钩子从不改动它):不设保持现状(零回归)。遇到上述问题时,用它切回原生 Wayland 启动即可:

CC_SWITCH_GDK_BACKEND=wayland ./CC-Switch-*.AppImage

该覆盖是通用的——若你在平铺式 Wayland 合成器上遇到的是反向的输入问题,则改设为 CC_SWITCH_GDK_BACKEND=x11。(#4351,修复 #4350)

Claude Desktop / OpenClaw / Hermes 表单显示「获取 API Key」链接

API key 输入框下的「获取 API Key」链接与合作推广块此前只对 claude / codex / gemini / opencode 生效。Claude Desktop 渲染的是不显示它的裸输入框,而 OpenClaw / Hermes 则被两处遗漏挡住(白名单只列了那四个 appId、供应商分类解析只认那四类预设 id 模式)。现在 Claude Desktop 改用共享的 ApiKeySection,白名单与分类解析都补上了 claude-desktop / openclaw / hermes;此外 Hermes / OpenClaw 表单不再让「官方」分类禁用 key 输入(这两个应用没有只走 OAuth 的官方供应商,如 Hermes 的 Nous Research 虽是官方但仍需用户自填 key)。

去重 Windows 上的 Codex npm 影子命令

在 Windows 上,npm 会把一个工具装成三个同名兄弟文件——codex.cmdcodex.exe 和一个无扩展名的 Unix shim codex——而 CC Switch 此前把三者都列为候选,导致无法直接执行的无扩展名 shim 被当作多余 / 失败候选去探测。现在仅当相邻没有可执行的 .cmd / .exe 兄弟时才追加无扩展名路径,路径解析也会优先选可执行的 .cmd / .exe,从而把版本探测与启动锚定到真正可运行的 Windows shim 上。(#4782

长下拉列表的滚动边界

SelectContent 弹层此前用 overflow-hidden 且没有高度上限,因此选项很多的下拉(如长模型 / 供应商列表)会渲染得比视口还高、把溢出项裁掉且无法触及。现在它设了 max-h-[min(24rem,var(--radix-select-content-available-height))]overflow-y-auto,把内容限制在 24rem 或 Radix 计算出的可用高度内并允许纵向滚动。(#4798

日期范围选择器的日历在窄弹层里保持可见

自定义日期范围选择器此前按视口宽度(Tailwind sm: 640px 断点)切换两列布局(日期字段 | 日历),但弹层被夹在 100vw - 2rem 且锚定到触发器,实际可用宽度比视口窄。在窄窗口上,两列布局可能在弹层只放得下一列时被激活,把日历列挤出右边界裁掉(月份头与 7 列里的 4 列被切掉且无法触及)。现在布局改用 CSS 容器查询按弹层自身的行内尺寸切换,因此只有当弹层本身窄时才收成一列,让日历在任意窗口宽度下都完整可见。(#4860


文档
CC_SWITCH_GDK_BACKEND 逃生开关文档

为可选的 CC_SWITCH_GDK_BACKEND 环境变量新增了 FAQ 条目,覆盖全部四种 README 语言与 zh / en / ja 用户手册的排障页,说明 Wayland + NVIDIA 用户如何在网页内容「点击失灵 + 缩放黑屏」时切回原生 Wayland,以及平铺式 Wayland 用户如何设为 x11 处理反向输入问题。

Kimi 海外 README 指向 platform.kimi.ai

英语、德语、日语 README 的 Kimi K2.7 Code 合作段落的横幅与内联行动号召改指 https://platform.kimi.ai?aff=cc-switch(保留推荐标签),四语 README 也都新增了一行指向 https://www.kimi.com/code/?aff=cc-switch 的 Kimi For Coding 订阅推广。


升级提醒
原生 Codex 供应商需重存一次

本版重做了原生 Responses 直连的模型目录生成。如果你此前配过使用原生 Responses(openai_responses)的 Codex 供应商,请重新从预设选择或打开该供应商并保存一次,以生成新的 ~/.codex/cc-switch-model-catalog.json——这样 Codex 桌面才能显示自定义模型、工具才可用。此过程无需数据库迁移,也不影响走 openai_chat 格式的供应商。

web_search 黑名单是默认行为

对小米 MiMo、美团 LongCat、MiniMax、千问 Qwen3-Coder 这些已知拒收 web_search 的原生网关,本版会在切换时自动写入 web_search = "disabled"。中转真 GPT、豆包、通用 Qwen 及未知供应商不受影响、保持 Codex 默认。该开关由 CC Switch 用归属哨兵管理,切回到未命中黑名单的供应商会自动恢复,无需手动干预。

默认 Sonnet 档变化

新从预设创建的 Claude 类供应商,其默认 Sonnet 档现在指向 claude-sonnet-5。已配置好的存量供应商不受影响、配置保持原样;如需改用 Sonnet 5,可重新从预设选择一次并保存。


风险提示

本版本继续沿用此前版本对反向代理类功能的风险提示。

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.5 中提交的功能与修复:

  • #4776:新增会话分类视图与分组管理,感谢 @alkaid616。
  • #4829:把「写入通用配置」更名为「应用通用配置」,感谢 @arichyx。
  • #4654:让用量脚本凭据仅作显式覆盖持久化,感谢 @yyhhyyyyyy。
  • #4680:修复 Windows 上 Hermes 供应商配置不生效,感谢 @thisTom。
  • #4782:去重 Windows 上的 Codex npm 影子命令,感谢 @justjavac。
  • #4798:修复长下拉列表无法滚动,感谢 @xwil1。
  • #4351:允许通过 CC_SWITCH_GDK_BACKEND 覆盖 AppImage 强制的 GDK_BACKEND=x11,感谢 @BoneLiu。
  • #4860:让日期范围选择器的日历在窄弹层里保持可见,感谢 @SaladDay。

也感谢所有在 v3.16.4 发布后反馈 Codex 原生直连、通用配置、凭据复用与平台兼容性问题的用户,很多补丁都来自这些真实使用场景里的复现线索。


下载与安装

访问 Releases 下载对应版本。

系统要求
系统最低版本架构
WindowsWindows 10 及以上x64 / ARM64
macOSmacOS 12 (Monterey) 及以上Intel (x64) / Apple Silicon (arm64)
Linux见下表x64 / ARM64
Windows
文件说明
CC-Switch-v3.16.5-Windows.msi推荐 - MSI 安装包,支持自动更新
CC-Switch-v3.16.5-Windows-Portable.zip便携版,解压即用,不写入注册表

Windows ARM64 设备请选择文件名中带 arm64 标识的对应制品。

macOS
文件说明
CC-Switch-v3.16.5-macOS.dmg推荐 - DMG 安装包,拖入 Applications 即可
CC-Switch-v3.16.5-macOS.zip解压后拖入 Applications,Universal Binary
CC-Switch-v3.16.5-macOS.tar.gz用于 Homebrew 安装和自动更新

Homebrew 安装:

brew install --cask cc-switch

更新:

brew upgrade --cask cc-switch
Linux

Linux 资产同时提供 x86_64ARM64aarch64)两种架构。资产文件名中包含架构标识,请按你机器的 uname -m 输出选择对应版本:

  • CC-Switch-v3.16.5-Linux-x86_64.AppImage / .deb / .rpm
  • CC-Switch-v3.16.5-Linux-arm64.AppImage / .deb / .rpm
发行版推荐格式安装方式
Ubuntu / Debian / Linux Mint / Pop!_OS.debsudo dpkg -i CC-Switch-*.debsudo apt install ./CC-Switch-*.deb
Fedora / RHEL / CentOS / Rocky Linux.rpmsudo rpm -i CC-Switch-*.rpmsudo dnf install ./CC-Switch-*.rpm
openSUSE.rpmsudo zypper install ./CC-Switch-*.rpm
Arch Linux / Manjaro.AppImage添加执行权限后直接运行,或使用 AUR
其他发行版 / 不确定.AppImagechmod +x CC-Switch-*.AppImage && ./CC-Switch-*.AppImage
View originalPermalink
How v3.16.5 went
v3.16.4

CC Switch v3.16.4

Added 9
  • Local proxy request override capability allowing custom headers and request body overrides with protection against unsafe header modifications
  • In-app recovery screen for database schema version mismatches with one-click application upgrade option
  • Native Windows ARM64 build support
  • Volcengine Ark Coding and Agent Plan usage query with independent AK/SK input
  • Model pricing import from models.dev with full-text search
  • Live end time toggle for custom date ranges in usage tracking
Changed 4
  • Domestic Codex suppliers now use native Responses endpoints instead of Responses-to-Chat format conversion
  • Upstream format selector decoupled from local routing toggle in Codex configuration
  • CTok renamed to ETok
  • Kimi brand refresh with prime-partner heart badge for official preset
Fixed 4
  • zstd request and error response body decompression
  • Tool calling issues with OAuth module proxy bypass
  • Model pricing backfill now uses original model aliases instead of exact SQL string matching for immediate cost attribution
  • Release matrix changed to per-platform execution to prevent unrelated task cancellation on individual failures

🎉 CC Switch 跻身 GitHub 全球 Star 排行榜前 100! 感谢每一位用户、贡献者与 Star —— 是你们让它走到这里。🙏

继 v3.16.3 把「用量计费做准」之后,这一版把重心放在打磨 Codex 代理链路与丰富用量 / 定价工具上——国产供应商原生 Responses 迁移、上游格式选择器与模型映射解耦、zstd 请求 / 错误体解压,以及一批工具调用与 OAuth 走代理的修复;同时新增本地代理请求覆盖、数据库版本过新时的应用内恢复屏、原生 Windows ARM64 构建,并带来一波预设与品牌更新(SubRouter、OpenCode Go、CTok→ETok 改名、Kimi 品牌刷新与 prime-partner 徽标)。

English → | 日本語版 →


使用攻略

本版以打磨与扩展为主,新增的能力主要落在用量面板与供应商表单的高级选项里,建议结合以下文档了解:

  • Codex 桌面看不到自定义模型?:不少用户反馈在 Codex 桌面应用里看不到配置的第三方 / 自定义模型。这是 Codex 桌面应用上游自身的门控行为(按官方登录状态放行模型选择器),并非 CC Switch 的本地配置问题,本版(v3.16.4)未对此做改动;文档里说明了原因,以及可用的缓解办法(保留官方登录 + 路由接管)。
  • 用量统计:了解用量看板的数据来源与统计口径。本版新增了从 models.dev 批量导入模型定价、火山方舟 Coding / Agent Plan 的 AK/SK 用量查询,以及自定义日期范围的「实时结束时间」。
  • 设置:本地代理请求覆盖(自定义请求头 / 请求体)、Codex 上游格式选择器与本地路由开关等都在供应商表单的高级选项里。

[!WARNING]

唯一官方渠道声明(请务必阅读)

CC Switch 是完全免费、开源的桌面应用,不会向用户收取任何费用。请仅通过下列官方渠道获取本软件:

类别唯一官方
官网ccswitch.io
源码github.com/farion1231/cc-switch
下载GitHub Releases
作者@farion1231
举报山寨GitHub Issues

任何向你收费、要求充值、或索取登录凭据的"CC Switch"网站或客户端均为假冒。如果你被诱导支付了费用,请立即停止操作并通过 GitHub Issues 反馈。


概览

CC Switch v3.16.4 是 v3.16.3 之后的一版维护更新。这一版围绕 Codex 代理链路做了一轮收紧——为多家具备原生 OpenAI Responses 端点的国产供应商切换到原生格式(省去 Responses→Chat 的路由接管转换)、把「上游格式」从「本地路由」开关里独立出来、补上 zstd 请求与错误响应体的解压,并修了一串工具调用与「OAuth 模块绕过全局代理」的问题。

与此同时,本版还丰富了用量与定价工具(从 models.dev 导入定价、火山方舟 Coding / Agent Plan 的 AK/SK 用量查询、自定义日期范围的实时结束时间、GLM-5.2 与豆包 Seed 2.1 定价),新增了一批代理与韧性能力(自定义请求头 / 请求体覆盖、数据库版本过新时的应用内恢复屏、原生 Windows ARM64 构建),并带来一波预设与品牌更新(SubRouter 与 OpenCode Go 订阅、CTok→ETok 改名、Kimi 品牌刷新与 prime-partner 徽标、Kimi K2.7 Code 赞助横幅)。

发布日期:2026-06-27

更新规模:53 commits | 126 files changed | +8,149 / -1,016 lines


重点内容
  • 国产 Codex 供应商走原生 Responses:千问 / 百炼、小米 MiMo、火山豆包、美团 LongCat、MiniMax(国内 / 国际)现在直连各自的原生 Responses 端点,不再经过 Responses→Chat 的格式转换接管,链路更短、更稳。
  • 本地代理请求覆盖:供应商可配置自定义请求头与请求体覆盖,由本地代理在转发时应用,并对受保护的安全请求头做了拦截校验。
  • 数据库版本过新的应用内恢复屏:当 SQLite 版本比当前应用支持的更新时,不再死在「重试只会再次失败」的原生弹窗里,而是引导到一个可一键升级应用的恢复界面。
  • 更丰富的用量 / 定价工具:从 models.dev 批量导入模型定价、火山方舟 Coding / Agent Plan 的 AK/SK 用量查询、自定义日期范围的「实时结束时间」,以及 GLM-5.2 与豆包 Seed 2.1 的定价。
  • 新预设与品牌更新:新增 SubRouter 与 OpenCode Go 订阅预设,CTok 改名为 ETok,刷新 Kimi 品牌标识并为官方 Kimi 预设加上 prime-partner 心形徽标。
  • 原生 Windows ARM64 构建:发布产物新增原生 ARM64 版本,ARM 架构的 Windows 设备不再依赖 x64 模拟。

新功能
数据库版本过新时的应用内恢复屏

当 SQLite 的 user_version 比当前应用支持的 SCHEMA_VERSION 更新时(例如降级回旧版、或被第三方客户端写过该文件),启动过去会死在一个原生的「重试 / 退出」弹窗里——而「重试」只会再次失败。现在应用会引导到一个专门的恢复界面:有可用更新时提供一键「升级应用」按钮(下载 + 安装 + 重启,带进度条),没有可用更新时则提示即便是最新版也读不了这个数据库。该「版本过新」检查在任何写库动作之前进行,因此应用永远不会对一个读不懂的数据库执行 DDL;恢复模式下的原生关闭会干净退出(此时托盘尚未创建)。(#4575

本地代理请求覆盖(自定义请求头与请求体)

供应商配置现在可以定义自定义请求头与请求体覆盖,由本地代理在转发时应用,并通过 Claude 与 Codex 供应商表单里的新字段暴露。输入会经过校验,其中包含一份受保护的请求头名单,用于阻止覆盖安全敏感的请求头。(#4589

火山方舟 Coding / Agent Plan 用量查询

用量面板现在可以查询火山方舟(Volcengine Ark)的 Coding Plan 与 Agent Plan 配额。由于方舟控制面 OpenAPI(open.volcengineapi.com)要求的是账号级 AccessKey 签名、而非推理 API key,用量脚本新增了独立的 AK/SK 输入区,并配有一个直达火山 IAM 密钥管理控制台(https://console.volcengine.com/iam/keymanage)的可点击链接;代理实现了火山签名 V4(一个 AWS SigV4 变体:固定的 canonical header 顺序、HMAC-SHA256 算法、ark 服务 scope)。它会先探测 GetAFPUsage(Agent Plan 的 5 小时 / 周 / 月配额)自动判定套餐,失败再回退到 GetCodingPlanUsage,从 Level 字段解析窗口标签(并对 ResetTimestamp <= 0 做守卫),同时在用量页脚、托盘菜单与四种语言里补上了 monthly 档标签。

从 models.dev 导入模型定价

「添加定价」面板新增了一个「从 models.dev 导入」按钮:拉取 https://models.dev/api.json,支持全文搜索整个目录,并通过与手动录入相同的 update_model_pricing 路径导入所选条目。导入的 model id 会按后端的 clean_model_id_for_pricing 规则归一化(剥供应商前缀、转小写、截断 : 后缀、把 @ 映射为 -、丢掉 [1m] 标记),让落库的行真正能匹配成本归因查询。配套修复让「按范围回填零成本」改用 Rust 端按原始 model 别名(路由前缀、:free 变体、日期后缀)匹配,而不再用精确 SQL 字符串匹配,从而新定价的别名行能立刻被计价、而不必等下次启动回填(修复 #4017)。(#4079

原生 Windows ARM64 构建

发布产物现在包含原生的 Windows ARM64 制品,ARM 架构的 Windows 设备可以拿到对应的原生构建,不必再依赖 x64 模拟。发布矩阵也改为各平台独立运行(关闭 fail-fast),因此某个任务缺少密钥而失败(例如 fork 里的 macOS 签名)不会再把尚未完成的同级任务一并取消。(#3950

自定义日期范围的实时结束时间

自定义日期范围选择器新增了一个「结束时间跟随当前时间」勾选框;开启后结束时间变为只读并自动跟随此刻,因此用量数据始终反映从所选起点到当下的实时消耗。这在 Coding Plan 的 5 小时配额窗口里尤其有用。liveEndTime 已纳入 React Query 的缓存键,因此一个实时范围和一个端点相同的固定范围不会再共用同一个陈旧缓存项。(#4438

会话详情头显示源文件名

会话详情头现在会在项目目录旁显示会话日志的文件名(悬停看完整路径、可点击复制),方便用户直接从界面定位并打开底层的 JSONL 文件。对于像 ~70 字符的 Codex rollout 这类没有空格的长文件名,会截断到 max-w-[200px],避免在窄窗口里溢出到操作按钮区。(#4113

导入按钮的未托管 Skill 提示

顶栏的 Skills 导入按钮现在会在本地存在未托管的 Skill 可导入时显示一个绿点与提示,让你一眼看出磁盘上的 Skill 还没被纳管。该扫描在挂载时执行一次,并在多次导航间共享(30s staleTime + keepPreviousData),避免重复磁盘 IO。

OpenCode Go 订阅预设

新增 OpenCode Go(opencode.ai/zen/go)预设,覆盖 Claude、Codex 与 OpenCode,使用可直接粘贴的纯 API key(无 OAuth)。Codex 预设走 openai_chat 转换并带 GLM / Kimi / DeepSeek / MiMo 模型目录(且不带静态 codexChatReasoning,按每个模型推断能力),OpenCode 则通过 @ai-sdk/openai-compatible 指向 /zen/go/v1。四个 OpenCode Go 预设——Claude、Claude Desktop、Codex、OpenCode——都带上了推荐链接与应用内推广文案;推广横幅现在仅凭 partnerPromotionKey 即可展示(不再绑定 isPartner),因此一个预设可以展示推荐推广却不获得金色付费合作伙伴星标(这也顺带让既有的 MiniMax 推广重新显示出来)。

Prime-Partner 预设徽标与排序

第一方 Moonshot Kimi 预设(Kimi / Kimi For Coding / Kimi K2.7 Code)现在被标记为 prime partner:不再显示金色星标,而是渲染一颗实心金色心形(无徽标边框),并在默认(Original)排序里浮到官方分类预设之后、其余之前。分组用三路 partition 实现,每组保持内部顺序,且一个同时被标为 prime-partner 的官方预设只会留在官方组里。

GLM-5.2 与豆包 Seed 2.1 定价

种子模型定价现在包含 GLM-5.2(#4385)与豆包 Seed 2.1 Pro / Turbo,让这些模型的用量被正确计价、而不是记成零成本。豆包价格采用火山官方 list 价(按约 7.14 的汇率折算);cache_creation 保持为 0,因为豆包按时间而非按 token 写入计费缓存存储,既有的 2.0 行也保留以供历史记账。

Kimi For Coding 自动压缩窗口

Kimi For Coding 预设现在把 CLAUDE_CODE_AUTO_COMPACT_WINDOW 默认设为 262144,与 Kimi 官方文档一致,并通过 templateValues 暴露,方便用户为将来的模型或性能调优自定义该值。(#4401

SubRouter 合作伙伴供应商

新增 SubRouter(subrouter.ai,一个让一把 key 访问多模型多供应商的 AI 中转聚合商)作为预设,覆盖全部 7 个受管应用——Anthropic 格式端点用于 Claude Code / Claude Desktop / OpenClaw / Hermes,OpenAI 兼容的 /v1 端点(gpt-5.5)用于 Codex 与 OpenCode,Gemini 兼容的 /v1beta 端点(gemini-3.5-flash)用于 Gemini CLI——带上自有品牌图标、金色合作伙伴星标、四语推广文案,以及预填为 API key 注册地址的推荐注册链接(?aff=l3ri)。(#4522


变更
国产 Codex 供应商走原生 Responses API

多家国产供应商(千问 / DashScope 百炼、小米 MiMo、火山豆包、美团 LongCat、MiniMax 国内 / 国际)现在暴露了原生的 OpenAI Responses 端点,因此它们的 Codex 预设切换到 apiFormat: "openai_responses",直连上游而不再经过 Responses→Chat 的路由接管转换。丢掉不再需要的 codexChatReasoningmodelCatalog 也让「本地路由映射」开关默认保持未勾选。SiliconFlow 托管的 MiniMax 仍保持 openai_chat,因为那是第三方端点、并非 MiniMax 自家 base_url。其余仍走 chat 的供应商也刷新了过期的 model id(GLM 5.1→5.2、StepFun 3.5-flash-2603→3.7-flash、Ling 2.5-1T→2.6-1T)。

上游格式选择器与模型映射开关解耦

Codex 供应商表单此前把 Chat 格式转换与路由接管(模型映射)绑在同一个开关上,导致一个提供原生 Responses API 的供应商无法在不强制 Chat Completions 转换的情况下使用模型映射。现在「上游格式」(Chat Completions / Responses)成了一个独立、始终可见的选择器,而本地路由开关只负责控制高级子区(模型映射目录,以及格式为 Chat 时的推理能力)。它的初始状态由已保存目录是否存在派生,不新增持久化字段;codexConfig 的四语(zh / en / ja / zh-TW)文案也随之重写。

豆包 Seed 2.1 Pro 预设

DouBaoSeed 预设现在在全部 6 个客户端(claude、claude-desktop、codex、opencode、openclaw、hermes)指向 doubao-seed-2-1-pro(替换 doubao-seed-2-0-code-preview-latest),展示名更新为「Doubao Seed 2.1 Pro」,并把 OpenClaw 的成本字段从 0.002 / 0.006 订正为 0.84 / 4.2 美元每百万 token 以匹配新模型。

CTok 改名为 ETok

随着厂商对域名、端点与商标的更名,所有面向用户的品牌从 CTok 迁移到 ETok(ctok.aietok.aiapi.ctok.aiapi.etok.ai,以及内部 id、展示名、图标和 README 合作伙伴横幅),覆盖每一个客户端预设。Codex 历史迁移白名单里仍保留 ctok 作为旧 id、与新 etok 并存,以保证改名后存量用户的本地会话历史仍被正确分桶。

Kimi 预设命名统一

OpenCode 与 OpenClaw 此前被标为「Kimi K2.7 Code」的 Kimi 预设,更名为与其它应用一致的「Kimi」(OpenCode 的供应商展示名也一并更名);模型标签仍保留「Kimi K2.7 Code」,因为它描述的是实际模型。

JSON 编辑器暗色模式

用量脚本弹窗、供应商表单与通用供应商表单里的 CodeMirror JsonEditor 现在会通过 useDarkMode() 跟随应用主题,切换到 oneDark 编辑器主题,而不再在应用其余部分已是暗色时仍停留在亮色。(#4556

更紧凑的「添加供应商」标题与底部提示

「添加供应商」对话框把标题到页签、页签到卡片的纵向间距从 24px 收到 12px,并新增一个始终可见的固定底部提示,引导用户在选好预设后填写下方字段。FullScreenPanel 新增可选的 contentClassName 属性,让内边距覆盖只作用于此面板、不影响其它共用它的面板。

主题自适应的 Kimi 标识

内联的 Kimi 占位标记替换为厂商刷新后的标识。K 字形使用 currentColor,因此会跟随主题文字色(亮色模式深、暗色模式白),而品牌点缀色固定为新的 #1783FF,元数据回退色也相应对齐。

移除 Fable 5 Verified 纪念横幅

设置「关于」页不再显示 3.16.3 为标明特别构建而加在应用名旁的 Fable 5 Verified 纪念横幅;横幅图片及其标记被移除,「关于」面板回到标准的版本徽标布局。


修复
Copilot / Codex OAuth 请求现在遵循全局代理

CopilotAuthManagerCodexOAuthManager 在构造时写死了 Client::new(),导致它们的认证流程(换 token、拉 /models 列表、判定 model vendor、device-code 与 OAuth 刷新请求)无视配置的全局代理、直连目标服务。在 Copilot 上,直连会让 /models 返回 0 个 Claude 模型,使 live 模型解析失效,上游以 400 model_not_supported 拒绝请求。现在两个 manager 都改为每次请求从共享客户端现取(crate::proxy::http_client::get()),从而遵循全局代理 URL 并支持运行时热更新。修复 #2016#2931。(#4583

压缩请求体与错误体的解压

Codex Desktop 在对 Codex 后端认证时会发送 zstd 压缩的请求体,这会破坏本地代理路由,因为处理器直接用 serde_json 解析原始压缩字节。代理现在会在 JSON 解析前对请求体解压(gzip / br / deflate,外加新增的 zstd 支持,包括 gzip, zstd 这类堆叠编码),覆盖三个 Codex 处理器,并剥掉过期的 content-encoding / content-length / transfer-encoding 请求头让转发器重新生成。上游非 2xx 的错误体也以同样方式解压,因此压缩过的限流与鉴权细节不再被丢弃、对客户端隐藏。修复 #3764#3696。(#3817

DeepSeek 端点 thinking: disabled 的 400 错误

DeepSeek 的 Anthropic 兼容端点会拒绝 thinking.type=disabled 与 effort 参数共存的请求、返回 HTTP 400,这会破坏 Claude Code 2.1.166+ 那些硬编码 thinking: disabled 的子 agent(Workflow / Dynamic Workflow)。代理现在不是去覆盖客户端的意图,而是对官方 DeepSeek 端点剥掉冲突的 output_config.effort / reasoning_effort 参数,因为子 agent 本就不需要展示推理。(#4239

回滚 Anthropic system 消息上提

回滚了 #3775 把 Anthropic 兼容供应商的 role=system 消息从 messages[] 上提到顶层 system 字段的改动。DeepSeek 端点本就原生接受内联的 system 消息,而该重写改变了请求前缀;保持消息原位能保留 prompt 前缀,避免一处疑似的缓存命中率回退(参见 #4297)。来自 #3775 的、不相关的 Windows 测试修复以及 tool-thinking-history 归一化都保留。

Chat 工具调用缺函数名

一些上游会在流式工具调用增量里发送空的或缺失的函数名,过去这会产生无效的 Codex Chat 输出项(或一个 unknown_tool 回退)。现在累积的工具调用状态不会再被空增量覆盖,而那些始终没拿到 call_id 与有效名字的工具调用会在最终化阶段被跳过,覆盖流式、非流式与旧版 function_call 三条路径。(#4159

恢复 Codex 缓存的工具调用字段

当 Codex 发起一个引用 previous_response_id 的后续 Chat 请求时,它的 function_call 项可能只携带 call_id。历史增强此前只回填 reasoning / reasoning_content,留空了函数的 nameargumentsstatus 等字段;现在它会从历史里恢复全部缓存的工具调用字段,让该调用能为 Chat 上游正确重建。(#4160

config.toml 里重复的 Codex base_url 条目

把 Codex 的 base_url 写入 config.toml 时此前每个区段只替换或移除一个匹配的赋值,因此一个已经含多行 base_url 的区段会留下多余项、累积重复。setCodexBaseUrl 现在会折叠目标区段或顶层的所有匹配(替换第一处、移除其余),TOML 的 base_url 正则也处理了转义引号。(#4316

历史迁移探测 CODEX_SQLITE_HOME 的状态库

Codex 会话历史迁移此前只扫描 ~/.codex/state_5.sqliteconfig.tomlsqlite_home 位置,因此当 Codex 的 SQLite 状态通过 CODEX_SQLITE_HOME 环境变量被重定位时,状态库从未被扫描、其 threads 仍留在旧的供应商分桶里。第三方与统一会话两套迁移共用的 codex_state_db_paths 辅助函数现在会回退到 CODEX_SQLITE_HOMEconfig 里的 sqlite_home 仍优先)。

供应商终端尊重用户 shell

在 macOS / Linux 上启动供应商终端时此前硬编码了 bash,导致 zsh / fish 用户的 rc 文件不会加载。启动器现在会从 $SHELL 检测用户默认 shell(macOS 回退 /bin/zsh、Linux 回退 /bin/bash)并以干净启动的 flag exec 进去,而启动脚本本身改走 POSIX sh 以保证可移植性(例如 fish,以及 /bin/sh 可能不存在的 NixOS)。(#4140,修复 #1546

Claude MCP 路径尊重自定义配置目录

当配置了自定义的 Claude 配置目录时,MCP server 的读写现在会解析到该目录下的 MCP 文件、而非默认位置,让 MCP 状态按 profile 隔离。此前对旧文件的「访问即拷贝」迁移被移除,改为直接解析覆盖路径。(#3431

搜索后预设结果可点击

在「添加供应商」预设选择器里搜索后,结果一度无法点击或选中。那个与输入打架、会吃掉首字符(如「gateway」→「ateway」)的 requestAnimationFrame select() 被移除,开箱即点路径的输入自动聚焦被恢复,当搜索框已打开时按 Ctrl/Cmd+F 也接上了重新聚焦。供应商列表的打字守卫也被收窄到 Ctrl/Cmd+F 分支,从而 Escape 仍能关闭搜索面板。(#4315

Skills 浏览与供应商卡片显示修复

修复了若干显示与交互问题:浏览 skills.sh 时仓库管理操作保持可用,仓库返回空结果时刷新也保持可用;供应商卡片上过长的供应商名与网站 URL 现在会截断而非溢出;OMO 模型变体下拉会截断所选标签并配全文提示;Select 菜单项会在当前选中项上显示对勾。(#4323

切换设置页签时重置滚动

在设置对话框里切换页签会保留上一个页签的滚动位置,有时会停在新页签的中途;现在每当激活页签变化时,滚动容器都会重置到顶部。(#4165


文档
Kimi 置顶赞助横幅

全部四种 README 语言(en / zh / ja / de)顶部的置顶赞助横幅现在换成了 Kimi K2.7 Code,取代此前的 MiniMax M2.7 横幅。文案反映 K2.7 Code 发布(一个面向编程的 agentic 模型,思考 token 用量较 K2.6 降低约 30%),横幅改由仓库内资源(assets/partners/banners/kimi-banner-en.png / kimi-banner-zh.png)提供、不再走 Moonshot CDN,并附一个指向 aff=cc-switch Moonshot 控制台的可点击行动号召。

Codex 统一会话历史攻略

新增三语(zh / en / ja)攻略,讲清统一 Codex 会话历史开关的开启迁移(启用时)与按账本还原(禁用时)到底做了什么、为什么会话数据从不会真正删除(只改标记 + 自动备份),以及如何核对文件是真在磁盘上、还是只是被归到了另一个供应商抽屉里。它包含一张针对常见「我的会话不见了」误解的症状对照表,以及 macOS / Linux / Windows 的磁盘核对命令,并作为首项链入 v3.16.3 的「使用攻略」release notes。

简化 Homebrew 安装说明

安装指南不再要求用户在 brew install --cask cc-switch 之前先运行 brew tap farion1231/ccswitch;这个已废弃的 tap 步骤已从 en / ja / zh 用户手册里移除,cask 现在可直接安装。(#4319

Star-History 全球排名徽标

在全部四种 README 语言里、既有的 Trendshift 徽标旁新增了一个 star-history 全球排名徽标,并带亮 / 暗主题变体。

火山方舟 Coding Plan 活动链接

ByteDance / 火山方舟赞助条目里的「中国大陆地区的开发者请点击这里」链接现在指向火山的 ai618 活动页,取代此前的 codingplan 推荐 URL,覆盖全部四种 README 语言。

CCSub 赞助横幅矢量资源

把低分辨率的 ccsub.jpg 赞助 logo 替换为矢量的 ccsub.svg,并从 2046x648 letterbox 到 2046x850(约 2.406:1),使其与其它赞助表横幅匹配、以相同的 62px 高度渲染。全部四种 README 语言都指向新资源。


升级提醒
国产 Codex 供应商原生 Responses 迁移

本版把多家具备原生 Responses 端点的国产供应商(千问 / 百炼、小米 MiMo、火山豆包、美团 LongCat、MiniMax 国内 / 国际)的 Codex 预设切换为 openai_responses 并移除了 modelCatalog。已经基于这些预设配置过的存量供应商不受影响、配置保持原样;如果你希望改用原生 Responses(省去格式转换接管),可以重新从预设选择一次并保存。SiliconFlow 托管的 MiniMax 仍走 openai_chat,不在此次迁移之列。

数据库版本过新的恢复

如果你曾用更高版本的 CC Switch 打开过数据库、再切回旧版,旧版启动时会进入新的「数据库版本过新」恢复屏,并引导你升级到能读懂该数据库的版本。这是预期行为——升级到最新版即可恢复正常。


风险提示

本版本继续沿用此前版本对反向代理类功能的风险提示。

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.4 中提交的功能与修复:

  • #3817:转发前解压请求体并支持 zstd,感谢 @chenx-dust。
  • #4583:修复 Copilot / Codex OAuth 模块绕过全局代理导致 Claude 模型 400,感谢 @zymouse。
  • #4589:新增本地代理请求覆盖(自定义请求头与请求体),感谢 @mfzzf。
  • #4575:新增数据库版本过新时的应用内恢复屏,感谢 @SaladDay。
  • #4556:为多处 JsonEditor 接入暗色模式,感谢 @TanKimzeg。
  • #4438:新增自定义日期范围的实时结束时间,感谢 @arichyx。
  • #3950:新增 Windows ARM64 发布支持,感谢 @MOON-DREAM-STARS。
  • #4401:为 Kimi For Coding 预设添加 CLAUDE_CODE_AUTO_COMPACT_WINDOW,感谢 @cyijun。
  • #4323:修复 Skills 管理与模型配置的交互展示,感谢 @thisTom。
  • #3431:对齐自定义配置目录的 Claude MCP 路径,感谢 @makoMakoGo。
  • #4159:跳过缺函数名的 Chat 工具调用,感谢 @hueifeng。
  • #4385:新增 glm-5.2 定价,感谢 @arichyx。
  • #4079:支持从 models.dev 导入模型定价,感谢 @kingcanfish。
  • #4315:修复搜索预设后结果无法点击选中,感谢 @RuixeWolf。
  • #4316:防止重复的 Codex base_url 条目,感谢 @jeffwcx。
  • #4140:让供应商终端尊重用户 shell,感谢 @zkforge。
  • #4113:在会话详情头显示源文件名,感谢 @xu-song。
  • #4160:恢复 Codex 缓存的工具调用字段,感谢 @chen-985211。
  • #4239:DeepSeek 端点 thinking:disabled 时剥掉 effort 参数,感谢 @maskshell。
  • #4165:切换设置页签时重置滚动,感谢 @Muleizhang。
  • #4319:移除已废弃的 Homebrew tap 步骤,感谢 @tianpeng-dev。
  • #4522:新增 SubRouter 供应商预设,感谢 @abingyyds。

也感谢所有在 v3.16.3 发布后反馈 Codex 代理链路、用量计费、本地代理稳健性与平台兼容性问题的用户,很多补丁都来自这些真实使用场景里的复现线索。


下载与安装

访问 Releases 下载对应版本。

系统要求
系统最低版本架构
WindowsWindows 10 及以上x64 / ARM64
macOSmacOS 12 (Monterey) 及以上Intel (x64) / Apple Silicon (arm64)
Linux见下表x64 / ARM64
Windows
文件说明
CC-Switch-v3.16.4-Windows.msi推荐 - MSI 安装包,支持自动更新
CC-Switch-v3.16.4-Windows-Portable.zip便携版,解压即用,不写入注册表

Windows ARM64 设备请选择文件名中带 arm64 标识的对应制品。

macOS
文件说明
CC-Switch-v3.16.4-macOS.dmg推荐 - DMG 安装包,拖入 Applications 即可
CC-Switch-v3.16.4-macOS.zip解压后拖入 Applications,Universal Binary
CC-Switch-v3.16.4-macOS.tar.gz用于 Homebrew 安装和自动更新

Homebrew 安装:

brew install --cask cc-switch

更新:

brew upgrade --cask cc-switch
Linux

Linux 资产同时提供 x86_64ARM64aarch64)两种架构。资产文件名中包含架构标识,请按你机器的 uname -m 输出选择对应版本:

  • CC-Switch-v3.16.4-Linux-x86_64.AppImage / .deb / .rpm
  • CC-Switch-v3.16.4-Linux-arm64.AppImage / .deb / .rpm
发行版推荐格式安装方式
Ubuntu / Debian / Linux Mint / Pop!_OS.debsudo dpkg -i CC-Switch-*.debsudo apt install ./CC-Switch-*.deb
Fedora / RHEL / CentOS / Rocky Linux.rpmsudo rpm -i CC-Switch-*.rpmsudo dnf install ./CC-Switch-*.rpm
openSUSE.rpmsudo zypper install ./CC-Switch-*.rpm
Arch Linux / Manjaro.AppImage添加执行权限后直接运行,或使用 AUR
其他发行版 / 不确定.AppImagechmod +x CC-Switch-*.AppImage && ./CC-Switch-*.AppImage
View originalPermalink
How v3.16.4 went
v3.16.3

CC Switch v3.16.3

Added 9
  • Custom User-Agent override for suppliers with format validation and preset UA list, applied consistently to request forwarding, connectivity detection, and model listing
  • Codex unified session history toggle allowing official and third-party sessions to share the same resume history bucket with optional migration and account-based restoration
  • Global supplier and model filters in usage dashboard top bar affecting summary, trend chart, request logs, and statistics pages
  • Model pricing seed refresh adding 9 new models including Claude Fable 5 and correcting 28 existing prices across vendors
  • Claude Fable 5 model tier with fallback chain on Claude Code and Claude Desktop proxy paths
  • Unity2.ai partner supplier preset covering 7 managed applications with registration links
Changed 5
  • Usage billing now charged on actual upstream model rather than upstream alias in route interception
  • Fixed cache token double-counting in format conversion paths between Chat, Responses, and Gemini to Anthropic
  • Claude Code Workflow sub-agent usage now included in local statistics with pricing basis persisted via schema v11
  • Usage dashboard redesign with supplier and model filters, brand icon toolbar for applications, and quota query with failure retry and last-success result persistence
  • Supplier configuration experience with Codex form consolidated to advanced options and preset search and sorting
Fixed 5
  • Corrected SSE response aggregation for incorrectly labeled Content-Type responses
  • Fixed Codex responses text model image normalization
  • Fixed Codex OAuth credential and interception residue recovery
  • Fixed Hermes configuration duplicate YAML key handling
  • Fixed application update hang in restart state and Codex upgrade installation corruption

🎉 CC Switch 突破 100,000 Star! 感谢每一位用户、贡献者与 Star —— 是你们让它走到这里。🙏

💎 本版由 Claude Fable 5 模型协助开发——它帮忙梳理清楚了多处关键且容易出错的逻辑:路由接管时按真实上游模型计费的归因链、格式转换路径上缓存 token 的计量与去重、应用内更新的重启死锁,以及 Codex 统一会话历史的迁移 / 还原不变量。这也是本版在「关于」页新增 Fable 5 Verified 标识的由来。

在 v3.16.2 拓宽数据可携带性与用量观测之后,这一版把重心放在「让用量计费真正准确」——按真实上游模型计费、修正格式转换路径上的缓存双算、把 Claude Code Workflow 子 agent 的用量纳入统计(schema v11),并对用量看板做了一轮改版(全局供应商 / 模型筛选、品牌图标工具栏、更稳的额度查询);同时加固了一批本地代理与平台问题,新增自定义 User-Agent 覆盖、Codex 统一会话历史开关与 Claude Fable 5 档位。

English → | 日本語版 →


使用攻略

本版新增了 Codex 统一会话历史 开关——它涉及会话的迁移 / 还原,操作不当时容易让人误以为"会话丢了",强烈建议先读这篇攻略;用量统计的口径和看板这一版也做了较多调整,一并附上:

  • Codex 统一会话历史:功能介绍与使用攻略:讲清"统一 / 迁移 / 还原"到底改了什么、为什么数据不会真正丢失,以及看不到会话时如何自查与精确还原。用过这个开关、或担心会话丢失,请务必先读。
  • 用量统计:了解用量看板的数据来源(代理日志、会话同步)与统计口径,本版新增了全局的供应商 / 模型筛选,并把路由接管的真实计价模型展示了出来。
  • 设置:自定义 User-Agent 覆盖、Codex 统一会话历史等开关都在供应商表单的高级选项与设置页里。

[!WARNING]

唯一官方渠道声明(请务必阅读)

CC Switch 是完全免费、开源的桌面应用,不会向用户收取任何费用。请仅通过下列官方渠道获取本软件:

类别唯一官方
官网ccswitch.io
源码github.com/farion1231/cc-switch
下载GitHub Releases
作者@farion1231
举报山寨GitHub Issues

任何向你收费、要求充值、或索取登录凭据的"CC Switch"网站或客户端均为假冒。如果你被诱导支付了费用,请立即停止操作并通过 GitHub Issues 反馈。


概览

CC Switch v3.16.3 是 v3.16.2 之后的一版维护更新。在上一版集中拓宽数据可携带性与用量观测之后,这一版把重心放在「让用量计费真正准确」这件事上——按真实上游模型计费而非上游回显、修正格式转换(Chat / Responses / Gemini 转 Anthropic)路径上的缓存 token 双算、把 Claude Code Workflow 子 agent 的用量纳入本地统计,并以 schema v11 持久化每条记录实际使用的定价依据;用量看板也随之做了一轮改版,新增全局的供应商 / 模型筛选、品牌图标工具栏,以及更稳的额度查询(失败重试 + 保留上次成功结果)。

此外,本版还加固了一批本地代理的稳健性问题(错标 Content-Type 的 SSE 响应聚合、Codex /responses 文本模型图像整流、Codex OAuth 凭据与接管残留的恢复、Hermes 配置重复 YAML 键),重做了供应商配置体验(自定义 User-Agent 覆盖、Codex 表单统一进高级选项、预设搜索与排序、Claude Fable 5 档位),新增 Codex 统一会话历史开关,并修复了应用内更新卡死、Codex 升级损坏安装、macOS 重复终端窗口等问题。

发布日期:2026-06-14

更新规模:59 commits | 130 files changed | +10,223 / -4,232 lines


重点内容
  • 用量计费更准:路由接管的流量现在按真实上游模型计费(而非上游回显的别名),格式转换路径不再把缓存 token 重复计入 input,Claude Code Workflow 子 agent 的用量也纳入了统计——以 schema v11 持久化定价依据。
  • 用量看板改版:供应商 / 模型筛选从请求日志表提升为全局筛选,应用筛选改用品牌图标,额度查询加入失败重试与「保留上次成功结果」,单次网络抖动不再让卡片变红。
  • 自定义 User-Agent 覆盖:供应商可设置自定义 UA,并在转发、连通性检测、模型列表三处一致生效,绕过按 UA 白名单放行的 Coding Plan 上游(借此恢复了 Codex「Kimi For Coding」预设)。
  • Codex 统一会话历史:新增可选开关,让官方 Codex 会话与第三方会话共享同一份 resume 历史桶,附带可选的存量迁移与按账本精确还原。
  • 代理与平台加固:错标 SSE 响应聚合、Codex 图像整流、接管残留恢复、Hermes YAML 去重;应用内更新不再卡在「重启中」,Codex 升级不再把安装弄坏。

新功能
自定义 User-Agent 覆盖

供应商配置现在可以设置自定义 User-Agent,并由代理在请求转发、连通性检测和模型列表(GET /v1/models)三条路径上一致应用,因此按 UA 白名单放行的 Coding Plan 上游不会再出现「检测失败 / 模型列表 403、但代理本身却能正常工作」的不一致。Claude 和 Codex 表单都在高级选项里暴露该字段,配有精选的 UA 预设下拉(Claude Code / Kilo Code 等能通过 UA 白名单的家族)和实时、非阻塞的格式校验;切换到官方预设时会丢弃残留的自定义 UA,避免悄悄改动请求头(#3671)。

Codex 统一会话历史

新增一个可选开关(设置 → Codex 应用增强),让官方 Codex 会话与 CC Switch 的第三方会话共享同一份 resume 历史桶,resume 选择器不再把两者互相隐藏。开启后,live 的 config.toml 会把官方运行路由到一个镜像内建 OpenAI 供应商的共享 custom model_provider(auth.json 不动)。默认只对未来会话生效;开启弹窗提供一个勾选项,可把已有官方会话迁入共享桶(含逐代备份),关闭弹窗则提供按备份账本精确还原——只回退备份中记录为 openai 的会话,开启期间新建的会话永不被改动。

用量看板全局供应商 / 模型筛选

供应商和模型筛选从请求日志表内部提升到了顶栏,对 Hero 汇总、趋势图、请求日志和两个统计页签全局生效,可以把整个看板按某个来源和模型缩小范围。来源按展示名精确匹配(因此像「Claude (Session)」这样的会话占位行也可选),模型按有效计价模型匹配,模型下拉会随所选来源级联,且两个列表只列出当前时间范围内有数据的选项。

模型定价种子刷新

seed_model_pricing 做了一次全量核价:新增 9 个模型的定价(含 Claude Fable 5、Grok 4.3、Mistral Medium 3.5 / Small 4、Qwen 3.7 Max/Plus 等),并按各厂商官方 list 价订正了 28 处既有价格(GLM、Grok、MiMo、Doubao、Kimi、MiniMax、Mistral、Qwen),让用量成本估算更准确。每处改动都同时更新种子(影响全新安装)并向 repair_current_model_pricing 加一条旧→新守卫(修复存量数据库,且不覆盖用户手改过的行)。

Claude Fable 5 模型档位

供应商表单现在在 Claude Code 和 Claude Desktop 两条代理路径上都暴露 claude-fable-5 作为第四个模型映射档位,回落链为 fable → opus → default,与官方降级一致,并为 Claude Desktop 1.12603.1+ 的校验器放行了 fable- 前缀。四语回落提示也做了澄清:在第三方端点上把某一档留空,会原样透传该档的字面模型名并 404(#3980#4026#4049)。

Unity2.ai 合作伙伴供应商

新增 Unity2.ai(一个 AI API 中转合作伙伴)作为预设,覆盖全部 7 个受管应用(Claude Code、Codex、Gemini、OpenCode、OpenClaw、Claude Desktop、Hermes),每个预设都带上推广注册链接,并在四种语言里补充了合作伙伴推广文案。Codex 使用裸 base URL(该网关在根路径暴露 /responses),OpenCode / OpenClaw / Hermes 使用 /v1 chat-completions 端点并以 gpt-5.5 为预设模型。

Kimi K2.7 Code 模型

新增 kimi-k2.7-code 模型(输入 $0.95 / 输出 $4.00 / 缓存读取 $0.19,每百万 token,256K 上下文),并把全部 6 个官方 Moonshot Kimi 预设(Claude Code、Codex、Claude Desktop、Hermes、OpenCode、OpenClaw)指向它,OpenCode / OpenClaw 预设更名为「Kimi K2.7 Code」。定价种子通过启动时的幂等插入路径生效,存量用户无需迁移即可获得新价。

恢复 Codex「Kimi For Coding」预设

重新加入 Codex「Kimi For Coding」预设(openai_chatkimi-for-coding、256K 上下文),默认开启思考模式。此前它被移除是因为该编程端点会以 403 拒绝 Codex 默认的 codex-cli User-Agent;现在借助代理接管 + 自定义 User-Agent 覆盖(设为 claude-cli/* 等白名单 UA)即可正常使用。

请求详情的计价模型审计

请求详情面板现在会在「请求的模型」「计价模型」与响应模型不一致时把它们都显示出来,让路由接管产生的账单可以直接在用量界面里核对。

预设供应商搜索与排序

预设供应商选择器现在是一个可搜索、可排序的列表,配有内联搜索框(点放大镜图标切换,按 ESC 或点击外部收起)。按钮改为响应式网格、尺寸统一并显示默认图标,搜索只匹配供应商的展示名 / 原始名,因此 URL 片段和共享的分类标签不会再产生噪声匹配(#3975#4183)。

Claude Mythos 5 定价

在内置模型 / 定价表里登记 claude-mythos-5 模型(输入 $10 / 输出 $50,每百万 token;缓存读取 $1.00、缓存写入 $12.50),让用量统计能正确计价并展示(#4077)。

Fable 5 Verified 标识

设置「关于」页现在会在应用名与版本旁展示 Fable 5 Verified 标识,标明这是一个特别构建,版本徽标也居中到了应用名下方。


变更
Claude Desktop 用量折叠进 Claude

看板不再展示独立的「Claude Desktop」分桶——它一直只能显示一个不完整的数字(Desktop 聊天用量根本不经过代理,而其 Code 页签的会话只是内嵌的 Claude Code 运行时写进共享的 ~/.claude/projects 目录)。Desktop 的代理流量现在在展示上折叠进 claude,但记账层仍按它自己的 app_type 记录以便路由接管计费审计,真实值可在请求详情面板看到。

轻量化供应商健康检查

供应商健康检查不再发送真实的流式模型请求(很多第三方供应商会以 401/403/WAF 拦截,造成误报不可用),改为对供应商 base_url 做一次轻量的 HTTP 可达性探测:任何 HTTP 响应都视为可达,只有 DNS / 连接 / TLS / 超时才算失败。官方供应商(使用 OAuth、base_url 故意为空、没有可靠的可达性目标)会隐藏连通性按钮,原先「发送真实请求」的确认弹窗以及测试模型 / 提示词字段都被移除,降级延迟阈值设为 6s、超时 8s。该可达性检查永不重置熔断器——可达不等于可用(403 的 host 可达,但对真实流量是坏的),失败转移仍只由真实代理流量驱动。

Codex 高级选项区整合

Codex 供应商表单现在把本地路由、模型映射、推理覆盖和自定义 User-Agent 折叠进一个可展开的高级选项区,与 Claude 表单一致(设置了 UA 或开启本地路由时自动展开)。自定义 User-Agent 现在对原生 Responses 供应商也可配置,此前它只有在开启 openai_chat 路由时才能触及。

用量工具栏与布局刷新

应用筛选改用品牌图标(经 ProviderIcon,「全部」用网格图标)渲染,取代在窄窗口下换行难看的文字页签;用量 Hero 也会显示所选应用的品牌图标,并把 Codex 的主题色从翠绿改为中性灰,贴合 OpenAI 的单色品牌。点击循环切换的刷新按钮改成了带本地化「关闭」标签的下拉选择,顶栏控件也压缩并对齐成统一的宽度分组,过长的日期范围标签做了截断处理。

关于面板加载更快

设置「关于」面板现在渐进式加载:应用版本徽标在解析完成的瞬间就显示,不再等待工具探测;每张工具卡片在自己的版本检测完成时立即更新(探测并发执行而非串行);探测结果在应用会话期内缓存并带 10 分钟 TTL,因此再次打开「关于」页签会复用缓存值、并在后台对过期项重新校验,而不是每次都把 6 个工具全部重探一遍。

火山方舟 Coding Plan 推广更新

把火山方舟(Volcengine Ark)预设在全部 6 个应用里更新到新的 Coding Plan 邀请链接(替换旧的 Agent Plan / 活动链接),并在四种语言里刷新了合作伙伴推广文案(两个月 75% 折扣 + 邀请码 6J6FV5N2),把产品名从 Agent Plan 订正为 Coding Plan。

MiniMax 降为普通供应商

移除 MiniMax 的金色合作伙伴星标和 API key 推广横幅(从所有预设里删掉 isPartner 标志),它继续作为常规 cn_official 供应商保留图标与主题。推广文案保持休眠状态,必要时一行即可重新启用合作关系。

移除 LemonData、SudoCode 降级

彻底移除 LemonData 供应商预设(连同其推广文案、图标和赞助商条目),并把 SudoCode 从合作伙伴降为常规 third_party 供应商(去掉 isPartner 标志和推广文案,保留图标)。

AtlasCloud Codex GLM 5.1 上下文窗口

为 AtlasCloud Codex 预设里的 zai-org/glm-5.1 模型声明 200,000 token 的上下文窗口,与其他 GLM 5.1 预设条目对齐。


修复
路由接管流量按真实上游模型计费

当请求被路由到了不同的上游(env 模型映射、Claude Desktop 路由、Copilot 归一化、Codex chat 覆盖)时,代理过去会按上游回显的模型来归因和计价,把 kimi / glm 的 token 记成、并按 claude-* 计价,成本被高估约 5–25 倍。现在转发器会捕获真实的出站模型,按「上游回显 → 出站模型 → 客户端别名」的顺序归因,并在每行持久化实际使用的定价依据(schema v11),该依据会贯穿成本回填和 30 天 rollup 裁剪;Claude Desktop 流量现在也记在它自己的 app_type 下,使其定价覆盖能正确生效。

格式转换路径的用量计量

审计并修复了代理各条格式转换路径(Chat、Responses、Gemini 转 Anthropic)上的 token / 缓存计量。代理现在会记录实际返回的模型,注入 stream_options.include_usage 让 OpenAI 兼容上游在流式时吐出 usage,在 Claude←OpenAI 路径上把 cache_readcache_creation 从 input 中排除以阻止缓存 token 双计费,扣减 Gemini 的缓存提示 token,仍记录完全命中缓存的请求,并跳过过去会虚增请求数的合成全零 usage(#2774)。

应用内更新不再卡死

从应用内安装更新时不再卡在「重启中」界面——过去会出现新版已装好、却必须手动强制退出的情况。下载—安装—重启整条链路现在完全在后端执行(新增 install_update_and_restart 命令),按平台决定安装顺序,并在重新执行前先销毁单实例锁,而不再依赖旧 WebView 在应用包已被替换之后继续跑 JS;退出请求也做了分类,让重启请求落到 Tauri 默认流程,而不是在窗口状态插件的互斥锁上死锁(#4069#4074)。

Codex 升级不再损坏安装

从设置「关于」页升级 Codex 不再让它抛出「Missing optional dependency @openai/codex-…」错误。升级链此前会先跑 codex update,而它在 npm 安装下其实是一次裸的重装、即便对应平台的二进制没装上也会报告成功;现在 Codex 已从「优先 self-update」路径里移除,并由一个 runnable 检测触发「卸载 + 重装」自愈(仅限 npm 管理的安装),这是唯一能真正补回缺失平台二进制的修复。

接管时保留 Codex OAuth 凭据

为 Codex 供应商开启代理接管时不再剥掉 ANTHROPIC_AUTH_TOKEN 占位符——此前这会在热切换、全新安装、以及被旧版本已剥过的 live 配置上破坏 Claude Code 的登录。现在对受管(非 Copilot)的 Codex 供应商无条件注入该占位符,包括只有 URL 的供应商;GitHub Copilot 的行为(仅 API_KEY)不变(#3789#3784)。

跨配置目录切换的接管残留恢复

在代理接管激活时更改配置目录后重启应用,不再把 Claude / Codex / Gemini 留在指向已失效的本地代理上。现在旧实例会在重启前先还原被接管的 live 文件,首次运行的导入会拒绝把接管占位符当作供应商持久化,SSOT 还原也会在写回前校验当前供应商的配置里不含占位符(#4076)。

格式转换兜底里错标的 SSE 响应聚合

经 Claude / Codex 格式转换的请求,当 MaaS 网关把一个 stream:false 的请求强制流式、并以非 SSE 的 Content-Type 返回 SSE 响应体时,不再以一句晦涩的 422「Failed to parse upstream response」失败。代理现在会在解析失败时嗅探 SSE、把分片聚合成单个 JSON 再跑既有转换器,让客户端仍能拿到有效的非流式响应;剩余的解析失败会附带 content-type、编码和响应体片段等诊断信息,deflate 解码也改为先尝试 zlib 再尝试裸流(#2234)。

Hermes 配置重复 YAML 键

Hermes 配置写入不再累积重复的顶层键(如 mcp_servers),那会导致「Failed to parse Hermes config as YAML: duplicate entry with key」错误。区段替换现在会从剩余文本里清除所有过期副本,而不是退化成追加;去重保护层同时处理 LF 和 CRLF 行尾;修复时保留最后(最新)的那份副本,与 Hermes 自身基于 PyYAML 的「后者胜」语义一致(#3267#3633#2973#2529#3310#3762)。

用量查询韧性与错误清晰度

用量卡片不再因为单次瞬时抖动就变红:查询现在会重试一次,并在网络 / 超时 / 5xx 这类瞬时失败下继续展示上次成功的结果最多 10 分钟;而确定性失败(鉴权、空 key、未知供应商、4xx)会立即暴露并清空快照,避免凭据变更后陈旧额度又冒出来。原生余额 / Coding Plan / 订阅查询的超时从 10s 提高到 15s 以适配跨境慢端点,Coding Plan 也会返回明确的「API key is empty」/「Unknown coding plan provider」错误,而不是一句空白的失败。

用量脚本供应商凭据解析

自定义 JS 脚本的用量查询此前只靠猜测 env 字段来解析 {{apiKey}} / {{baseUrl}},因此凭据存放在别处的应用(如 Codex 的 auth.OPENAI_API_KEYconfig.toml 里的 base_url)总是拿到空值、即便供应商已完整配置也会失败。脚本查询及其测试 / 预览现在复用与原生余额路径相同的按应用凭据解析器,脚本里显式填写的非空值仍然优先(#1479)。

Claude Code Workflow 子 agent 用量统计

本地(无代理)的会话日志用量统计此前漏掉了 Claude Code Workflow 子 agent 的流量,整体用量被低估约 4.1%(集中在 workflow / subagent 的会话记录里)。扫描器现在会深入更深一层的 subagents/workflows/wf_*/ 记录目录,解析器也不再丢弃那些缺少 stop_reason、但已经产生 input / 缓存 token 成本的 assistant 消息;去重逻辑不变,因此不会重复计数。

Codex /responses 文本模型图像整流

携带图片、且被路由到只支持文本的 OpenAI-chat 模型(如 DeepSeek deepseek-v4-flash)的 Codex /responses 请求,不再以 HTTP 400「unknown variant image_url」失败。媒体整流器现在也覆盖 Codex 适配器,会扫描 responses 的 input 里的 input_image 块,从而既能为已知的纯文本模型主动剥掉图片,也能在上游报「不支持图片」时把图片替换后重试。

智谱 Coding Plan 配额窗口误标

智谱 Coding Plan 视图不再在每个周周期的最后几个小时把 5 小时窗口和周窗口标反。两个窗口现在按显式的 unit 字段分类(3 = 5 小时、6 = 周),而不再靠按重置时间升序排序——后者恰好在用户最常查周额度的时候把两者标反;当字段缺失时仍回退到旧的重置时间启发式(#3036)。

macOS 重复供应商终端窗口

在 macOS 上启动供应商终端时不再在命令会话旁多开一个空窗口;Terminal.app 在冷启动时改用 launch(而非 activate),Ghostty 使用初始命令,从而只打开单个会话,并在 AppleScript 路径失败时保留回退方案(#4156)。

Claude Desktop 模型映射占位符

Claude Desktop 模型映射表单此前在「菜单展示名」和「请求模型」两列用了不一致的示例品牌(DeepSeek vs Kimi),暗示一个展示名会映射到不相关的模型。现在两个占位符都由每行的角色派生,从而保持品牌一致,轻量的 Haiku 档使用 flash 示例。

弹层被全屏面板遮挡

像供应商预设搜索这样的弹层和提示气泡不再渲染到全屏面板后面、看起来点了没反应;它们的 z-index 被提到全屏遮罩之上,同时仍低于模态对话框。

ToggleRow 图标被挤压

开关行的图标在配上长描述时不再被压缩或变形,让图标在多行文字旁保持固定大小。


文档
Release Notes 贡献者致谢恢复

恢复了 v3.16.1 与 v3.16.2 release notes 在三种语言里的贡献者致谢。


升级提醒
定价库 schema v11 自动迁移

本版给 proxy_request_logs 新增了 pricing_model 列、并按 request_model + pricing_model 重建了 rollup,启动时自动迁移、无需手动操作。历史行的成本在写入时已冻结、不会重算(app_type="claude" 的行混合了原生与转换两类来源);只有真实但当时未计价的接管行会保持零成本、待定价补齐后再回填。

模型映射新增第四档(Fable 5)

Claude Code 与 Claude Desktop 的模型映射现在是四档(Sonnet / Opus / Fable / Haiku)。老的三档供应商在重新打开并保存后会补上 claude-fable-5 档;该档留空表示继承 Sonnet。注意:在第三方端点上把任意一档留空,会原样透传该档的字面模型名并可能 404,请按需填写。

「Kimi For Coding」预设需要代理接管 + 白名单 UA

恢复的 Codex「Kimi For Coding」预设直接用默认的 codex-cli User-Agent 仍会被 403。要使用它,请开启代理接管,并在供应商高级选项里把自定义 User-Agent 设为白名单 UA(如 claude-cli/*)。

供应商健康检查语义变化

健康检查从「发送真实模型请求」改为「HTTP 可达性探测」。请注意可达 ≠ 可用:一个返回 403 的 host 是可达的,但对真实流量可能是坏的。失败转移的判定仍只由真实代理流量驱动,不受健康检查影响。


风险提示

本版本继续沿用此前版本对反向代理类功能的风险提示。

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.3 中提交的功能与修复:

  • #3789:接管时保留 Codex OAuth 凭据,感谢 @codeasier。
  • #2774:修复 Completions 转 Anthropic 时不记录实际返回模型、input token 计算错误,感谢 @LaoYueHanNi。
  • #4069:修复应用内更新后重启死锁,感谢 @thisTom。
  • #4156:修复 macOS 重复供应商终端窗口,感谢 @thisTom。
  • #3267:修复 Hermes 配置重复 YAML 键,感谢 @que3sui。
  • #1479:修复用量脚本供应商凭据解析,感谢 @pa001024。
  • #3975:新增预设供应商搜索与排序,感谢 @Nastem。
  • #4183:调整预设供应商按钮外观与搜索框位置,感谢 @WangJiati。
  • #4077:新增 claude-mythos-5 模型定价,感谢 @osscv。

也感谢所有在 v3.16.2 发布后反馈用量计费、本地代理稳健性、Codex 升级与平台兼容性问题的用户,很多补丁都来自这些真实使用场景里的复现线索。


下载与安装

访问 Releases 下载对应版本。

系统要求
系统最低版本架构
WindowsWindows 10 及以上x64
macOSmacOS 12 (Monterey) 及以上Intel (x64) / Apple Silicon (arm64)
Linux见下表x64 / ARM64
Windows
文件说明
CC-Switch-v3.16.3-Windows.msi推荐 - MSI 安装包,支持自动更新
CC-Switch-v3.16.3-Windows-Portable.zip便携版,解压即用,不写入注册表
macOS
文件说明
CC-Switch-v3.16.3-macOS.dmg推荐 - DMG 安装包,拖入 Applications 即可
CC-Switch-v3.16.3-macOS.zip解压后拖入 Applications,Universal Binary
CC-Switch-v3.16.3-macOS.tar.gz用于 Homebrew 安装和自动更新

Homebrew 安装:

brew install --cask cc-switch

更新:

brew upgrade --cask cc-switch
Linux

Linux 资产同时提供 x86_64ARM64aarch64)两种架构。资产文件名中包含架构标识,请按你机器的 uname -m 输出选择对应版本:

  • CC-Switch-v3.16.3-Linux-x86_64.AppImage / .deb / .rpm
  • CC-Switch-v3.16.3-Linux-arm64.AppImage / .deb / .rpm
发行版推荐格式安装方式
Ubuntu / Debian / Linux Mint / Pop!_OS.debsudo dpkg -i CC-Switch-*.debsudo apt install ./CC-Switch-*.deb
Fedora / RHEL / CentOS / Rocky Linux.rpmsudo rpm -i CC-Switch-*.rpmsudo dnf install ./CC-Switch-*.rpm
openSUSE.rpmsudo zypper install ./CC-Switch-*.rpm
Arch Linux / Manjaro.AppImage添加执行权限后直接运行,或使用 AUR
其他发行版 / 不确定.AppImagechmod +x CC-Switch-*.AppImage && ./CC-Switch-*.AppImage
View originalPermalink
How v3.16.3 went
v3.16.2

CC Switch v3.16.2

Added 8
  • Add S3-compatible cloud sync as a second backend alongside WebDAV, with preset configurations for AWS S3, MinIO, Cloudflare R2, Aliyun OSS, Tencent COS, and Huawei OBS
  • Add OpenCode session usage synchronization by reading token, cost, and model data from OpenCode local SQLite database
  • Add optional official subscription quota template for Claude, Codex, and Gemini to query usage through CLI or OAuth credentials
  • Add text-only model image fallback converter that replaces images with placeholder when model doesn't support images
  • Add ZenMux as a Token Plan Coding Plan vendor
  • Add CherryIN gateway as a quick configuration preset covering all 7 managed applications
  • Add Codex CLI model discovery endpoint GET /v1/models that returns CC Switch managed Codex model catalog
  • Support file and audio attachments in Codex Chat Completions conversion
Changed 2
  • Redesign usage dashboard Hero section with more compact layout merging total tokens, request count, and cost into top row
  • Update SSSAiCode preset official website, registration, and API base URLs to sssaicodeapi.com domain
Fixed 9
  • Fix Codex Chat stream truncation detection to properly handle streams ending without finish_reason or [DONE] marker
  • Remove tool_choice and parallel_tool_calls when tools array is missing or empty in Responses→Chat conversion
  • Preserve custom Codex tool metadata including format and grammar in generated Chat function descriptions
  • Include output_tokens_details.reasoning_tokens in Chat→Responses usage conversion even when supplier omits it
  • Fix temporary port (port 0) parsing in local proxy
  • Fix escaping placeholder restoration infinite loop in interception

CC Switch v3.16.2

在 v3.16.1 的 Codex 稳定性补丁之后,这一版主要拓宽了数据的可携带性与用量观测能力——新增 S3 兼容云同步、OpenCode 会话用量同步、官方订阅额度模板——并继续加固 Codex 通过 Chat Completions 路由第三方供应商的稳健性,同时修复了一批 Windows / macOS 平台问题,新增 CherryIN、ZenMux 供应商,并全面刷新了三语用户手册。

English → | 日本語版 →


使用攻略

这一版新增了云同步的 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_DBXDG_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.comnode-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_choiceparallel_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_callcustom_tool_calltool_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 下载对应版本。

系统要求
系统最低版本架构
WindowsWindows 10 及以上x64
macOSmacOS 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-switch
Linux

Linux 资产同时提供 x86_64ARM64aarch64)两种架构。资产文件名中包含架构标识,请按你机器的 uname -m 输出选择对应版本:

  • CC-Switch-v3.16.2-Linux-x86_64.AppImage / .deb / .rpm
  • CC-Switch-v3.16.2-Linux-arm64.AppImage / .deb / .rpm
发行版推荐格式安装方式
Ubuntu / Debian / Linux Mint / Pop!_OS.debsudo dpkg -i CC-Switch-*.debsudo apt install ./CC-Switch-*.deb
Fedora / RHEL / CentOS / Rocky Linux.rpmsudo rpm -i CC-Switch-*.rpmsudo dnf install ./CC-Switch-*.rpm
openSUSE.rpmsudo zypper install ./CC-Switch-*.rpm
Arch Linux / Manjaro.AppImage添加执行权限后直接运行,或使用 AUR
其他发行版 / 不确定.AppImagechmod +x CC-Switch-*.AppImage && ./CC-Switch-*.AppImage
View originalPermalink
How v3.16.2 went
v3.16.1

CC Switch v3.16.1

Added 2
  • Add optional official authentication preservation setting for Codex to retain ChatGPT/Codex OAuth login state when switching third-party suppliers
  • Add Codex DeepSeek routing guide in Chinese, English, and Japanese with supplier configuration and local routing instructions
Changed 4
  • Official authentication preservation setting defaults to opt-in disabled to maintain backward compatibility with previous behavior
  • Codex now prompts users to restart after successfully switching suppliers to apply model directory and configuration changes
  • Serialize supplier switching and local routing intake switch with per-app lock to prevent concurrent modification of live configuration and backups
  • Codex hot-switch now refreshes provider id, models, and display name in live configuration while maintaining local proxy address as base URL
Fixed 9
  • Fix Codex edit dialog mistakenly displaying live OAuth during local routing intake by showing database-stored supplier configuration instead
  • Fix Codex OAuth being cleared or overwritten during intake by detecting PROXY_MANAGED placeholder and preserving official authentication
  • Fix modelCatalog being emptied during live refill, supplier editing, switching, and intake closure by using database as source of truth
  • Fix third-party Codex suppliers using Chat Completions routing unable to fully restore tool_search, loaded MCP/connector namespace tools, and custom tools as Codex Responses format
  • Enhance Codex proxy error diagnostics to return JSON errors containing provider, model, endpoint, upstream HTTP status, cc_switch error codes, and normalized HTTP status
  • Fix Codex native balance and Coding Plan queries cross-app misuse of credentials by parsing supplier credentials per app

CC Switch v3.16.1

Codex 稳定性补丁:由于部分用户反映不希望改变配置文件的写入方式,因此为 Codex 增强模式添加开关并默认关闭。开启此开关后,你可以在使用第三方 API 的情况下继续使用 Codex 的手机远程操作、官方插件等功能;本版本也包含一系列稳定性修复。

English → | 日本語版 →


使用攻略

如果你希望在使用第三方 API 的时候解锁官方订阅才可以使用的远程操作 Codex、解锁官方插件,或希望在 Codex 中使用 DeepSeek / Kimi / GLM / MiniMax 等 Chat Completions 上游,建议先看这些文档:

  • 使用第三方 API 时保留 Codex 远程操作和官方插件:说明如何先完成官方登录,再开启 Codex 应用增强,让官方登录态留在 auth.json,同时把模型流量切到第三方 API。
  • 在 Codex 中使用 DeepSeek:本地路由实战攻略:从添加 Codex 供应商、开启本地路由,到验证请求转发的完整路径。
  • 添加 Codex 供应商:Chat Completions 路由与模型映射:覆盖「需要本地路由映射」、模型映射表与思考能力配置。
  • 本地代理服务本地路由:了解代理服务、接管 live 配置、以及相关风险提示。

[!WARNING]

唯一官方渠道声明(请务必阅读)

CC Switch 是完全免费、开源的桌面应用,不会向用户收取任何费用。请仅通过下列官方渠道获取本软件:

类别唯一官方
官网ccswitch.io
源码github.com/farion1231/cc-switch
下载GitHub Releases
作者@farion1231
举报山寨GitHub Issues

任何向你收费、要求充值、或索取登录凭据的"CC Switch"网站或客户端均为假冒。如果你被诱导支付了费用,请立即停止操作并通过 GitHub Issues 反馈。


概览

CC Switch v3.16.1 是 v3.16.0 之后的一版 Codex 稳定性补丁。v3.16.0 让第三方 Codex 供应商通过 Chat Completions 路由成为一等公民;这一版则主要处理真实使用中暴露出的几个高风险边角:官方 ChatGPT / Codex OAuth 登录态在第三方供应商切换或本地路由接管期间被覆盖,Codex 模型目录在 live 回填、热切换、关闭接管恢复或编辑当前供应商时被清空,以及 Codex 的 tool_search、插件 / 连接器命名空间、自定义工具在 Chat Completions 上游路径中没有完整恢复为 Responses 事件。

这版也加固了本地路由接管的所有权判断:切换供应商和开启 / 关闭接管现在按应用串行执行,判断 live 文件是否由代理接管时不再只看滞后的 enabled 或代理服务是否正在运行,而是结合备份和 live 中的代理占位符。这样可以避免刚开启接管、代理临时停止,或热切换时的普通 live 写入把代理托管配置覆盖掉。

发布日期:2026-06-01

更新规模:23 commits | 62 files changed | +5,603 / -1,113 lines


重点内容
  • Codex OAuth 与第三方供应商切换更安全:新增可选的官方认证保留设置;开启后,第三方供应商 token 写入 config.toml,官方 ChatGPT / Codex OAuth 登录继续留在 auth.json
  • Codex 模型目录不再被静默清空modelCatalog 以数据库为真相来源,live 回填、供应商切换、接管关闭恢复、编辑弹窗都会避免用丢失投影的 live 配置覆盖数据库。
  • Codex Chat 工具 / 插件路由恢复:Chat Completions 上游返回的 tool_search、已加载命名空间工具、自定义工具会重新映射回 Codex Responses 形态;流式自定义工具现在发出原生 response.custom_tool_call_input.* 事件。
  • 本地路由接管与热切换更稳:供应商切换和接管开关按 app 串行,热切换会刷新 Codex live 中的供应商显示信息,但 endpoint 仍保持指向本地代理。
  • 诊断与平台兼容性修复:Codex 代理错误返回更丰富上下文;Codex CLI 模型模板发现支持更多平台并提供 GPT-5.5 静态兜底;Windows 工具版本探测修复乱码与误判。

新功能
Codex 官方认证保留设置

新增一个可选设置,用于在切换第三方 Codex 供应商时保留官方 ChatGPT / Codex OAuth 登录态。开启后,CC Switch 会把第三方供应商的 API key 放进 Codex config.toml 的 provider-scoped experimental_bearer_token,而不是覆盖 auth.json 里的官方登录缓存。

由于部分用户不希望此功能改变配置文件的写入方式,因此该设置默认关闭,保持 v3.16.0 之前的兼容行为。需要同时使用官方 Codex 登录和第三方供应商的用户,可以在“设置 → Codex 应用增强”里手动开启。

Codex DeepSeek 路由指南

新增中 / 英 / 日三语的 Codex DeepSeek 路由指南,包含供应商路由要求、DeepSeek Codex 供应商表单配置,以及本地路由接管的截图说明。


变更
Codex 认证保留默认改为 opt-in

官方认证保留设置默认关闭。这样第三方 Codex 供应商切换继续沿用旧行为,避免已有用户在不知情的情况下改变 auth.json / config.toml 的写入方式。

Codex 切换供应商后提示重启

Codex 的模型目录与部分配置在客户端启动时加载。现在成功切换 Codex 供应商后,界面会提示用户重启 Codex,让模型目录和配置变化真正生效。

供应商切换与接管开关串行化

Codex / Claude / Gemini 的供应商切换与本地路由接管开关现在共享 per-app 锁,避免两个流程同时修改 live 配置和备份。判断 live 是否由代理接管时,也会优先看 live 备份与 PROXY_MANAGED 占位符,而不是只看代理服务是否正在运行。

Codex 热切换刷新显示信息

在本地路由接管期间热切换 Codex 供应商时,CC Switch 会刷新 live 配置中的 provider id、模型和显示名称,让 Codex 客户端菜单能跟随当前供应商;同时 base URL 仍保持本地代理地址,避免真实上游 endpoint 泄回 live 文件。


修复
Codex 接管期间编辑弹窗误显示 live OAuth

当 Codex 处于本地路由接管状态时,live auth.json / config.toml 已被代理临时改写。编辑当前供应商如果继续读取 live,就会把代理占位符或官方 OAuth 登录误显示成供应商配置。现在编辑弹窗会明确提示:此处显示的是数据库中存储的供应商配置,而不是代理托管的 live 文件;即使代理服务暂时停止,只要该 app 仍处于接管状态,也会按接管逻辑处理。

Codex OAuth 在接管期间被清空或覆盖

修复多条 preserve-mode 接管路径,它们此前可能清空或覆盖官方 ChatGPT / Codex OAuth auth.json。现在接管检测会识别 config.toml 里的 PROXY_MANAGED,清理流程只移除代理占位符 token,第三方供应商错误归类为 official 时也不会再走官方 auth 覆盖路径。供应商同步与切换会把 live 备份和占位符视为接管所有权信号,避免正常 live 写入覆盖刚接管或代理暂停时的代理配置。

Codex 模型目录数据丢失

修复 modelCatalog 在 live 回填、当前供应商编辑弹窗、供应商切换、关闭接管恢复等场景被清空的问题。快照备份会保留已有 model_catalog_json 指针;由供应商重建的备份会从数据库真相来源重新生成目录投影;编辑当前供应商时会优先使用数据库里的模型目录,而不是信任可能已经丢失投影的 live 反解结果。

同时,供应商切换现在会始终刷新生成的 Codex 模型目录 JSON(#3360,感谢 @Postroggy)。

Codex Chat 工具、插件和自定义工具恢复

修复第三方 Codex 供应商走 Chat Completions 路由时,tool_search、已加载的 MCP / connector 命名空间工具、自定义工具无法完整恢复为 Codex Responses 形态的问题。非流式与流式 Chat 响应现在都会根据原始 Responses 请求恢复正确的工具类型、namespace、call id 与参数;自定义工具流式输出会发出原生的 response.custom_tool_call_input.deltaresponse.custom_tool_call_input.done 事件。

Codex 代理错误诊断更完整

Codex 转发失败时,现在返回包含 provider、model、endpoint、上游 HTTP 状态、稳定 cc_switch_* 错误码和规范 HTTP 状态的 JSON 错误。这样排查「到底是哪个供应商、哪个 endpoint、哪种上游错误」会清楚很多。

Codex 原生余额 / Coding Plan 查询凭据

修复原生余额与 Coding Plan 查询时跨 app 错用凭据的问题。现在每个 app 会解析自己的供应商凭据,不再把其他应用面的认证假设带进查询流程(#3355,感谢 @SiskonEmilia)。

Codex CLI 发现与模型目录模板兜底

修复第三方 Codex 模型目录投影对 Codex CLI 发现路径过窄的问题。现在后端会在多平台常见安装位置寻找 Codex CLI,并在仍找不到模板时使用内置 GPT-5.5 模型目录模板兜底(#3382,感谢 @chofuhoyu)。

Claude Desktop 官方供应商添加失败

修复添加 Claude Desktop 官方供应商时报错的问题(#3405,感谢 @Eunknight)。

Kimi / Moonshot 工具思考历史规范化

把 Kimi / Moonshot 加入 Anthropic 兼容工具思考历史 normalizer。后续轮次现在能正确重放 reasoning 与 tool-call 上下文,避免因为历史消息形态不符合上游要求而失败(#3377,感谢 @Neon-Wang)。

Windows 工具版本探测

修复 Windows 上 .cmd / .bat 版本命令被错误加引号,以及本地化命令输出被解码成乱码的问题。此前这些问题会让可运行的工具显示为「已安装但无法运行」。


升级提醒
官方 OAuth 保留需要手动开启

如果你希望官方 ChatGPT / Codex OAuth 登录长期保留在 auth.json,同时又频繁切换第三方 Codex 供应商,请在设置中开启 Codex 官方认证保留。默认关闭是为了保持老用户的兼容行为。

修改模型映射后仍需重启 Codex

Codex 在启动时读取 model_catalog_json。因此即使 v3.16.1 已修复模型目录被清空的问题,只要你修改了模型映射表,仍然需要重启 Codex 才能让 /model 菜单刷新。

接管期间编辑的是存储配置,不是 live 文件

本地路由接管开启后,live auth.json / config.toml 会临时指向 CC Switch 代理。此时编辑供应商时看到的是数据库里保存的供应商配置,属于预期行为;关闭接管后,CC Switch 会按备份或数据库真相来源恢复 live 配置。


风险提示

本版本继续沿用此前版本对反向代理类功能的风险提示。

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.1 中提交修复:

  • #3360:Codex 供应商切换时始终更新模型目录 JSON,感谢 @Postroggy。
  • #3355:原生余额 / Coding Plan 查询按 app 解析凭据,感谢 @SiskonEmilia。
  • #3405:修复 Claude Desktop 官方供应商添加报错,感谢 @Eunknight。
  • #3382:Codex CLI 多平台发现与 GPT-5.5 模型模板兜底,感谢 @chofuhoyu。
  • #3377:Kimi / Moonshot 工具思考历史规范化,感谢 @Neon-Wang。

也感谢所有在 v3.16.0 发布后反馈 Codex OAuth、模型目录、本地路由接管和 Chat Completions 工具调用问题的用户。很多补丁都来自这些真实使用场景里的复现线索。


下载与安装

访问 Releases 下载对应版本。

系统要求
系统最低版本架构
WindowsWindows 10 及以上x64
macOSmacOS 12 (Monterey) 及以上Intel (x64) / Apple Silicon (arm64)
Linux见下表x64 / ARM64
Windows
文件说明
CC-Switch-v3.16.1-Windows.msi推荐 - MSI 安装包,支持自动更新
CC-Switch-v3.16.1-Windows-Portable.zip便携版,解压即用,不写入注册表
macOS
文件说明
CC-Switch-v3.16.1-macOS.dmg推荐 - DMG 安装包,拖入 Applications 即可
CC-Switch-v3.16.1-macOS.zip解压后拖入 Applications,Universal Binary
CC-Switch-v3.16.1-macOS.tar.gz用于 Homebrew 安装和自动更新

Homebrew 安装:

brew install --cask cc-switch

更新:

brew upgrade --cask cc-switch
Linux

Linux 资产同时提供 x86_64ARM64aarch64)两种架构。资产文件名中包含架构标识,请按你机器的 uname -m 输出选择对应版本:

  • CC-Switch-v3.16.1-Linux-x86_64.AppImage / .deb / .rpm
  • CC-Switch-v3.16.1-Linux-arm64.AppImage / .deb / .rpm
发行版推荐格式安装方式
Ubuntu / Debian / Linux Mint / Pop!_OS.debsudo dpkg -i CC-Switch-*.debsudo apt install ./CC-Switch-*.deb
Fedora / RHEL / CentOS / Rocky Linux.rpmsudo rpm -i CC-Switch-*.rpmsudo dnf install ./CC-Switch-*.rpm
openSUSE.rpmsudo zypper install ./CC-Switch-*.rpm
Arch Linux / Manjaro.AppImage添加执行权限后直接运行,或使用 AUR
其他发行版 / 不确定.AppImagechmod +x CC-Switch-*.AppImage && ./CC-Switch-*.AppImage
View originalPermalink
How v3.16.1 went
v3.16.0

CC Switch v3.16.0

Added 5
  • Enable Codex suppliers to use upstream services that only support OpenAI Chat Completions API, with conversion between Responses and Chat Completions formats while preserving reasoning content, inline think blocks, streaming reasoning summaries, tool calls, and response continuation state
  • Add 22 Codex third-party supplier presets with Chat Completions routing and explicit model directories including DeepSeek, Zhipu GLM, Kimi, MiniMax, StepFun, Baidu Qianfan, Bailian, ModelScope, Longcat, BaiLing, Xiaomi MiMo, Volcano Agentplan, BytePlus, Doubao Seed, SiliconFlow, Novita AI, and Nvidia
  • Add Codex model mapping table in supplier form showing model directory with display names and context windows, projecting to ~/.codex/cc-switch-model-catalog.json
  • Add managed CLI tool lifecycle management in About tab of Settings for Claude, Codex, Gemini, OpenCode, OpenClaw, and Hermes tools, supporting silent installation, updates, conflict diagnosis, and WSL handling
  • Add automatic reasoning ability detection for Codex Chat suppliers
Changed 7
  • Unify third-party Codex suppliers to use stable custom model-provider bucket with one-time migration to rewrite historical JSONL sessions and state_5.sqlite thread table
  • Update default Claude Opus model to version 4.8 and default GPT models to version 5.5
  • Add new supplier presets including APIKEY.FUN, APINebula, AtlasCloud, SudoCode, Xiaomi MiMo Token Plan, and Claude Desktop official preset
  • Refresh partner links and default models across application
  • Stream Check now uses Chat-format request bodies for Codex Chat suppliers hitting /chat/completions instead of /v1/responses
  • Update URL fallback sequence in Stream Check to align with production CodexAdapter behavior
  • Usage dashboard now updates in real-time on log writes
Fixed 9
  • Fix OAuth login state, user-selected directory models, and custom provider IDs being overwritten during live reads and switching
  • Restore tool calls before tool outputs in bounded Codex Chat history cache
  • Fix Codex Chat reasoning, caching, and usage edge cases
  • Fix DeepSeek Anthropic tool thinking history
  • Fix Claude-compatible empty tool_calls streams
  • Fix managed account authentication takeover

CC Switch v3.16.0 —— 谨以纪念此版本开发期间死去的5个 Claude Max 订阅

为 Codex 增加 Chat Completions -> Response 格式转换(你可以在 Codex 里使用 DeepSeek, Kimi, GLM 了!)、Codex 供应商身份与历史统一、应用管理面板全方位增强、合作伙伴预设扩张、默认模型 / 定价矩阵升级到 GPT-5.5 与 Claude Opus 4.8、代理与格式转换鲁棒性强化

English → | 日本語版 →


[!WARNING]

唯一官方渠道声明(请务必阅读)

CC Switch 是完全免费、开源的桌面应用,不会向用户收取任何费用。最近发现多个山寨网站冒用 CC Switch 名义诱导用户付费、收集账号信息,部分已造成实际经济损失。请仅通过下列官方渠道获取本软件:

类别唯一官方
官网ccswitch.io
源码github.com/farion1231/cc-switch
下载GitHub Releases
作者@farion1231
举报山寨GitHub Issues

任何向你收费、要求充值、或索取登录凭据的"CC Switch"网站或客户端均为假冒。如果你被诱导支付了费用,请立即停止操作并通过 GitHub Issues 反馈,让我们能尽快下线相关山寨站点。


使用攻略

本版本最主打的两块能力是 Codex 第三方供应商 Chat Completions 路由应用内受管 CLI 工具管理。如果你想让 DeepSeek、Kimi、MiniMax 这类只支持 OpenAI Chat 协议的供应商在 Codex 里直接可用,或者想在应用内一站式安装 / 升级 CLI 工具,建议先读这两篇:


概览

CC Switch v3.16.0 自 v3.15.0 以来的开发核心,是把第三方 Codex 供应商通过 Chat Completions 路由升级为一等公民。Codex 原生只认 OpenAI Responses API 与 GPT 系列模型,本版本让 CC Switch 的本地代理把 Codex 发出的 Responses 请求转换为上游的 Chat Completions,再把 JSON 与 SSE 流式响应重建回 Responses 形态,沿途保留 reasoning_content / 内联 <think> 块 / 流式推理摘要 / 工具调用 / previous_response_id 续接状态,并把错误信封规范化、在 Stream Check 中正确探测 Chat 格式供应商。配套上货 22 个带显式模型目录的 Chat 路由预设(DeepSeek、智谱 GLM、Kimi、MiniMax、StepFun、百度千帆、百炼、ModelScope、Longcat、百灵、小米 MiMo、火山 Agentplan、BytePlus、豆包 Seed、SiliconFlow、Novita AI、Nvidia 等)。

Codex 第三方供应商的身份与历史这一版被统一并加固:所有第三方供应商现在归并到稳定的 custom model-provider 桶,并提供一次性设备迁移来改写历史 JSONL 会话与 state_5.sqlite 线程表(原文件备份在 ~/.cc-switch/backups/ 下),避免因供应商 id 变化导致过往会话"凭空消失";同时修复了 live 读取 / 切换过程中 OAuth 登录态、用户选中的目录模型、用户自定义 provider id 被覆盖的问题。

本版本还新增了应用内受管 CLI 工具生命周期:设置页的「关于」Tab 升级为 Claude / Codex / Gemini / OpenCode / OpenClaw / Hermes 的工具管理面板,支持静默安装 / 更新、全部升级、冲突诊断、按安装来源锚定的升级,以及对 WSL 的处理和"已安装但跑不起来"状态的可见化。

供应商生态与模型矩阵同步刷新:新增 APIKEY.FUN、APINebula、AtlasCloud、SudoCode、小米 MiMo Token Plan、Claude Desktop 官方预设;跨应用刷新合作伙伴链接与默认模型 / 定价;默认 Claude Opus 模型线升级到 4.8,适用处的 GPT 默认升级到 5.5。此外还在用量可观测性、繁体中文本地化、文档、以及代理 / 格式转换的鲁棒性上做了大量打磨与修复。

发布日期:2026-05-29

更新规模:101 commits | 221 files changed | +27,063 / -3,052 lines


重点内容
  • Codex Chat Completions 路由:Codex 供应商现在可以由仅支持 OpenAI Chat Completions 的上游提供服务。CC Switch 把 Codex 的 Responses 请求转成 Chat Completions、把 JSON 与 SSE 响应重建回 Responses 形态、保留 reasoning / <think> / 工具调用状态、规范化错误信封,并在 Stream Check 中正确探测 Chat 格式供应商
  • Codex 第三方供应商身份与历史统一并更安全:第三方 Codex 供应商现在共用稳定的 custom model-provider 桶,配一次性迁移改写历史 JSONL 会话与 state_5.sqlite 线程,并修复 live 读取 / 切换时 OAuth 登录态、用户选中的目录模型、用户自定义 provider id 的保留
  • 受管 CLI 工具管理:「关于」页升级为 Claude / Codex / Gemini / OpenCode / OpenClaw / Hermes 的工具管理面板,含安装 / 更新动作、全部升级、冲突诊断、按来源锚定的升级、WSL 处理,以及"已安装但跑不起来"状态可见化
  • 供应商生态与模型矩阵刷新:新增 APIKEY.FUN、APINebula、AtlasCloud、SudoCode、小米 MiMo Token Plan、Claude Desktop 官方预设;跨应用刷新合作伙伴链接与默认模型 / 定价;默认 Claude Opus 升级到 4.8、适用处 GPT 默认升级到 5.5
  • 用量与文档打磨:用量看板在日志写入时即时响应更新,修复自定义用量脚本摘要与 subagent 会话日志计费,繁体中文 UI 本地化落地,新增德文 README 与扩充后的 Claude Desktop / Codex Chat / 工具管理手册
  • 代理与转换硬化:修复 Codex Chat 推理 / 缓存 / usage 边角情况、DeepSeek Anthropic 工具思考历史、Claude 兼容的空 tool_calls 流、受管账号接管鉴权、MiMo 推理输出、Gemini Native 工具调用重放,以及多条易 panic 的代理路径

新功能
Codex Chat Completions 路由

Codex 供应商现在可以由只会说 OpenAI Chat Completions API 的上游提供服务。CC Switch 的本地代理把 Codex 发出的 Responses 请求转换为 Chat Completions,并把 Chat 响应(JSON 与 SSE 两种)重建回 Responses 形态,沿途保留 reasoning_content、内联 <think> 块、流式推理摘要、工具调用,以及 previous_response_id 续接。一个有界的 Codex Chat 历史缓存会在工具输出之前恢复对应的工具调用。

💡 特别感谢 @EldenPdx 的 PR #2804:本功能的 Chat ↔ Responses 格式转换实现参考了他在该 PR 中的实现。

22 个带 Chat 路由的 Codex 第三方供应商预设

为主流中国开源模型启用了 Chat Completions 路由并带显式模型目录——DeepSeek、智谱 GLM(+ 英文站)、Kimi、MiniMax(+ 英文站)、StepFun(+ 英文站)、百度千帆 Coding Plan、百炼(Bailian)、ModelScope、Longcat、百灵(BaiLing)、小米 MiMo(+ Token Plan)、火山 Agentplan、BytePlus、豆包 Seed、SiliconFlow(+ 英文站)、Novita AI、Nvidia。每个预设都声明了自己的上下文窗口,便于 UI 给模型映射行确定尺寸。

Codex 模型映射表

Codex 供应商表单现在提供模型目录(每行:模型 + 显示名 + 上下文窗口),它是上游模型列表的唯一真相来源,并投影到 ~/.codex/cc-switch-model-catalog.json

Stream Check 支持 Codex Chat 供应商

Stream Check 现在对 Chat 格式的 Codex 供应商改用 Chat 形态的请求体打 /chat/completions,而不是 /v1/responses;并把 URL 回退顺序与生产环境的 CodexAdapter 对齐(仅 origin 的 base URL 先打 /v1/<endpoint>),这样裸路径上的非 404 错误不会再把一个正常工作的供应商误判为不可用。

Codex Chat 思考能力(Reasoning)自适应

当 Codex 供应商走 Chat Completions 路由时,CC Switch 现在会自动识别上游的推理接口——依据是供应商的名称、base URL 和模型名——并注入正确的思考参数(thinking:{type}enable_thinkingreasoning_split、顶层 reasoning_effort,或 OpenRouter 的原生 reasoning:{effort} 对象),无需手动配置。聚合 / 托管平台(OpenRouter、SiliconFlow)按平台优先匹配,因为同一个模型在不同平台上可能暴露不同的推理控制。只暴露"思考开 / 关"开关的供应商(Kimi、GLM、Qwen、MiniMax、MiMo、SiliconFlow)会丢弃 effort 等级而不是透传一个不支持的字段——因此在 Codex 里调节这类供应商的思考等级不会有任何效果——而有真实 effort 档位的供应商(DeepSeek、OpenRouter,以及 StepFun 仅 step-3.5-flash-2603)则会把等级透传上去。OpenRouter 特别使用原生 reasoning:{effort} 对象,把 max 钳到 xhigh(它的枚举里没有 max),并显式转发 effort:"none" 以便关闭推理。

Codex Goal Mode 与远程压缩控制

Codex 配置编辑现在为第三方供应商暴露一个 Goal Mode 开关和一个远程压缩(Remote Compaction)开关;新建的 Codex 模板默认 disable_response_storage = true,同时仍允许显式开启 goal 支持。

小米 MiMo Token Plan 预设

新增小米 MiMo Token Plan 预设,规格与官方文档对齐(#2803,感谢 @BlueOcean223)。

Claude Desktop 官方预设

新增一个 Claude Desktop 官方预设,用于恢复原生 Claude Desktop 登录,并附带本地化的 Claude Desktop 使用指南(中 / 英 / 日)。

受管 CLI 工具生命周期

为受管 CLI 工具新增静默安装 / 更新命令、最新版本检查、单工具与批量动作、全部升级,以及跨 PATH、Homebrew、npm、pnpm、bun、volta、fnm、nvm、scoop、WinGet、Windows 原生路径和 WSL 的多安装诊断。

按来源感知的工具诊断

设置 / 关于 页面现在可以诊断冲突的工具安装、为每条路径展示具体的安装来源与版本,并生成由后端规划、锚定到真实安装来源的升级命令。

实时用量刷新

后端现在在代理日志、会话日志同步或汇总写入用量数据时发出 usage-log-recorded 事件;用量看板监听该事件并立即让查询失效,而不是等到下一个轮询周期(#3027,感谢 @in30mn1a)。

繁体中文本地化

新增 zh-TW UI 本地化与一个设置语言选项(#3093,感谢 @LaiYueTing)。

德文 README

新增 README_DE.md 并从现有 README 的语言切换器中链接到它(#2994,感谢 @flitzrrr)。

新合作伙伴预设

跨各受支持的应用面新增 APIKEY.FUN、APINebula、AtlasCloud、SudoCode 合作伙伴预设,含合作伙伴文案、图标与 README 条目。


变更
Codex 第三方供应商统一进 "custom" 历史桶

Codex 按 model_provider 过滤可恢复历史,因此在供应商专属 id 之间切换会让过去的会话看起来"消失"了。所有第三方供应商现在归并到单一稳定的 custom 桶(保留 openai / ollama 这类预留的内置 id),并配一次性设备迁移:改写历史 JSONL 会话与 state_5.sqlite 线程表,原文件备份到 ~/.cc-switch/backups/codex-history-provider-migration-v1/

Codex 供应商表单简化

从 Codex 表单中移除了 API Format 选择器(wire_api 永远是 responses,该选择器会误导用户以为能改协议);模型映射表现在是唯一真相来源,不再有隐藏的默认条目;表单注明改动目录后需要重启 Codex,因为 model_catalog_json 在启动时加载。表单只保留「需要本地路由映射」开关。

Codex 本地路由开关提示重写

把「关 / 开」两段提示从"场景描述"改写为"动作指引"(什么时候该开),并在中 / 英 / 日三语同步。

Codex Live 配置保留

Codex live 配置读取不再强制改写用户的 model_provider 字段;供应商作用域的 experimental_bearer_token 处理现在会在第三方供应商之间切换时保留 OAuth 登录态。

工具安装 / 升级策略

受管工具安装现在优先使用官方原生安装器(在有的情况下),适当时回退到包管理器,对兼容工具先跑 self-update,把升级锚定到检测到的安装来源,并在工作进行中锁定重复的批量动作。

「关于」页升级为工具管理

设置的「关于」页现在呈现已安装 / 最新版本、安装与更新动作、冲突诊断、WSL shell 偏好,以及对损坏或跑不起来工具更清晰的状态。

默认模型与定价刷新

默认 Claude Opus 模型升级到 4.8,适用处把基于 GPT 的预设与模板迁到 GPT-5.5,刷新定价种子,把 Claude Desktop 模型映射与 Claude Code 的三角色档位对齐,并重命名 OpenCode 的 Go 预设以去掉一个陈旧的模型后缀。

合作伙伴链接刷新

更新了胜算云推荐链接、Atlas Cloud 的 UTM 链接,以及跨各 README 语言版本与供应商元数据中的合作伙伴文案。

Homebrew 官方 Cask 安装

由于 CC Switch 已进入 Homebrew 官方仓库,安装简化为 brew install --cask cc-switch;各 README 中移除了对私有 tap 的要求。

共享前端工具

用一个共享的 deepClone helper 替换 JSON stringify / parse 的深拷贝写法,并抽取了一个共享的 useTauriEvent hook(#3140,感谢 @ChongBiaoZhang)。


修复
Codex Chat 错误响应转换为 Responses 信封

Codex Chat → Responses 桥接此前会原样透传上游错误体,导致 Codex 客户端无法识别 MiniMax 的 base_resp、裸 OpenAI Chat 错误,或纯文本 / HTML 错误页。现在错误会被规整为标准的 {error: {message, type, code, param}} 信封并保留原始 HTTP 状态码;非 JSON 体会被包裹并在 UTF-8 字符边界截断到 1KB。同时修复了一个既存的 append-vs-insert bug,它会在重写后的 JSON 体上产生重复的 Content-Type 头。

Codex 流中段 system 消息折叠

MiniMax 的 OpenAI 兼容端点会严格拒绝任何非首位的 system 消息(错误 2013)。现在所有 system 片段会被折叠为单条首位消息(按原顺序拼接),对宽松后端也是无损的。

Codex 模型目录重启后被清空

编辑当前激活的 Codex 供应商会触发一次省略了 modelCatalog 的 live 读取,于是随后的保存会静默销毁用户配置的模型映射。Live 读取现在会反向解析磁盘上的目录投影,往返出与保存路径写入的相同形状。

Codex 模型目录无限渲染循环

打断了目录表格与其父状态之间的双向同步环路——它在添加或编辑条目时会导致 UI 严重抖动。

Codex Chat 保留用户选中的目录模型

客户端从目录里选中的模型(例如通过 /model)不再被 config.toml 的默认模型覆盖。

Codex Chat 推理与缓存稳定性

在 Codex 省略或改写 previous_response_id 时恢复一个唯一的 call-id 回退;停止从 previous_response_id 派生缓存身份;并在工具转换中对可解析的 JSON 字符串载荷做规范化,以便前缀缓存稳定复用。

Codex Chat 流式 usage 恢复

Responses → Chat 转换现在会在请求为流式时注入 stream_options.include_usage(并入客户端提供的任何 stream_options),这样 Kimi、MiniMax 这类 OpenAI 兼容上游会重新吐出尾部的 usage 块。此前它们在 Codex Chat 路径上的流式 token / 成本 / 缓存统计都被记成了零。

Codex Chat 工具调用推理回填

Kimi / Moonshot、DeepSeek 这类思考模型会拒绝携带 tool_callsreasoning_content 为空的 assistant 消息。当跨轮历史恢复未命中时(代理重启、call_id 含糊,或某轮上游没有推理),现在会在最后一遍补回一个占位 reasoning_content——真实的尾部推理仍会优先附上——这样请求不再因 reasoning_content is missing in assistant tool call message 而失败。

受管账号 Claude 接管鉴权

受管账号供应商(GitHub Copilot / Codex OAuth)在接管 Claude live 配置时,现在会丢弃 token 环境变量键、只写入 ANTHROPIC_API_KEY 占位符,并带一个出站守卫拒绝把 PROXY_MANAGED 占位符发往上游。

接管期间的 Claude Desktop profile 同步

代理接管时现在会同步 Claude Desktop 的 profile 数据,模型路由与 Claude Code 的三角色档位对齐,并修正了 Cowork egress profile(#3157、#3172,感谢 @MelorTang、@JGSphaela)。

受管账号接管的模型字段

本地路由现在在受管账号上从目标供应商取接管模型字段,而不是携带陈旧的模型值。

DeepSeek Anthropic 工具思考历史

规范化了 DeepSeek Anthropic 兼容的工具思考历史,让后续轮次能够重放推理 / 工具调用上下文而不产生畸形消息(#3203,感谢 @Q3yp)。

Claude 兼容流中的空工具调用

修复了一个 Claude 兼容流式边角情况:空的 tool_calls 数组会重置块状态并破坏流式响应(#2915,感谢 @zhizhuowq)。

Claude Code 代理路径的 MiMo 推理

在 Claude Code 代理路径上新增 MiMo 的 reasoning_content 支持(#2990,感谢 @zhangyapu1)。

Gemini Native 工具调用鲁棒性

修复了长多轮会话中合成工具调用 ID 的 functionResponse.name 解析(422)与 thought_signature 重放(400)问题(#2814,感谢 @Tiancrimson)。

会话日志 subagent token 计费

collect_jsonl_files() 现在会扫描此前被漏掉的 subagent JSONL 日志,使 subagent 的 token 用量被计入会话成本(仅会话日志模式)(#2821,感谢 @LaoYueHanNi)。

用量看板 / 同步稳定性

修复了非 ASCII 模型名导致的 Codex 用量同步 panic、自定义用量脚本摘要,以及用量汇总后缺失实时刷新的问题(#3027、#3129,感谢 @in30mn1a、@hanhan3344)。

智谱 Coding Plan 配额档位排序

当 5 小时桶利用率为 0% 时,智谱 API 会省略 nextResetTime;旧的 i64::MAX 哨兵会把这类条目排到最后,导致周窗口错误地占用五小时槽位。现在档位排序会让缺失的 nextResetTime 映射到五小时桶,使智谱 Coding Plan 的托盘与用量配额显示保持正确。

技能按 key 安装

从 skills.sh 搜索结果安装时现在使用唯一 key 而不是目录名,使共享目录名的技能能安装到正确的那个(#2784,感谢 @zhaomoran);同时修复了一处技能同步的复制回退(#2791,感谢 @rogerdigital)。

用量价格输入精度

把价格输入步长降到 0.0001,使 DeepSeek 缓存读取这类不足一分的成本也能录入(#2793,关闭 #2503,感谢 @rogerdigital)。

Ghostty 干净窗口启动

Ghostty 现在打开单个干净窗口,而不是克隆已有标签页;其他终端则通过 open -na 打开新窗口(#2801,关闭 #2798,感谢 @luw2007)。

工具版本与更新可靠性

版本探测不再掩盖跑不起来的安装;预发布工具在版本检查中被正确处理;批量更新逐工具执行;安装 / 更新按钮在预检期间保持锁定;锚定升级分支强制使用绝对路径;WSL 安装器路径在需要时使用原生 Unix 安装器。

Codex mise 检测

修复了 Codex 的 mise 环境检测(#2822,感谢 @iambinlin)。

Codex 归档会话

Codex 的归档会话现在会被纳入会话发现(#2861,感谢 @nanmen2)。

Codex Chat 空工具参数

在 Codex Chat 转换中,空的工具调用参数载荷会被强制为 {},使上游与客户端收到合法 JSON。

Claude 供应商 deeplink 导入

通过 deeplink 导入 Claude 供应商时现在会保留自定义环境字段(#2928,感谢 @doutuifei)。

OMO 推荐模型

把 OMO 推荐模型与上游默认值同步,并改进了「填入推荐」的反馈。

胜算云模型 ID 加前缀以正确路由

胜算云(ShengSuanYun)预设现在带上了上游网关要求的厂商前缀——anthropic/…google/…openai/…(如 anthropic/claude-sonnet-4.6google/gemini-3.1-pro-preview)——覆盖 Claude Code、Claude Desktop、Codex、Gemini、OpenCode、OpenClaw 各预设,含 Claude Code 路由环境变量(ANTHROPIC_MODEL / ANTHROPIC_DEFAULT_{HAIKU,SONNET,OPUS}_MODEL),使它们解析到合法的上游模型而不是路由失败。

ClaudeAPI 重新启用模型测试

把 ClaudeAPI 预设(Claude Code 与 Claude Desktop)从 third_party 重新归类为 aggregator,使其模型测试按钮不再被第三方 Claude 门禁禁用;合作伙伴金星不受影响,因为它由 isPartner 而非 category 驱动。

关于页版本检查

版本检查现在能处理预发布工具版本,不会再误判更新状态。

App 切换器文本裁切

移除了一个会裁切 App 切换器文本的固定宽度约束(#3161,感谢 @loocor)。

useEffect 竞态条件

App.tsx 的 effects 加了 active-flag 模式以防卸载时的监听器泄漏,并守卫了把 undefined 语言存进 localStorage 的情况(#2827,感谢 @Zylo206)。


移除
LionCC 赞助商与预设

跨各 README、供应商配置与 locale 移除了 LionCC 赞助商条目与 LionCCAPI 预设(图标资源保留)。

AICoding 合作伙伴条目

从 README 赞助商列表、供应商预设与 i18n 元数据中移除了 AICoding 合作伙伴。

Kimi For Coding 的 Codex 预设

从 Codex 预设目录中移除了 Kimi For Coding 预设。

CLI 卸载命令提示

从工具管理 UI 中去掉了生成的 CLI 卸载命令提示,同时保留冲突诊断的可见性。


文档
Codex Chat 供应商支持

在 changelog 与用户手册中记录了 Chat Completions 路由、供应商支持、推理自适应识别,以及本地路由指引。

设置手册刷新

更新了设置文档,覆盖新的受管工具生命周期与 Hermes 安装器行为。

Claude Desktop 指南

新增了本地化的 Claude Desktop 指南页与截图,覆盖供应商设置、导入、模型映射,以及本地路由上下文。

安装文档

更新了安装文档与 README,推荐官方 Homebrew cask,并跨各语言刷新了 v3.15.0 发布说明里关于山寨站点的警告措辞。


⚠️ 升级提醒
Codex 第三方供应商历史一次性迁移

升级后首次启动会对 Codex 历史执行一次性迁移:把第三方供应商归并到 custom 桶,并改写历史 JSONL 会话与 state_5.sqlite 线程表。原文件会备份到 ~/.cc-switch/backups/codex-history-provider-migration-v1/。这一步是为了修复"切换供应商后过往会话消失"的问题——迁移后历史能正常恢复。

Codex 改动模型目录需重启

Codex 在启动时加载 model_catalog_json,因此在 CC Switch 里改动模型映射表后,需要重启 Codex 才能让新目录生效。

Chat 路由供应商的思考等级可能无效

对只暴露"思考开 / 关"开关的供应商(Kimi、GLM、Qwen、MiniMax、MiMo、SiliconFlow),在 Codex 里调节思考等级(model_reasoning_effort 的 low / medium / high)不会有任何效果——CC Switch 不会把不被支持的 effort 字段透传给它们。只有具备真实 effort 档位的供应商(DeepSeek、OpenRouter,以及 StepFun 仅 step-3.5-flash-2603)调节等级才真正生效。

默认模型升级到 Opus 4.8 / GPT-5.5

默认 Claude Opus 模型线升级到 4.8,适用处的 GPT 默认升级到 5.5。如果你依赖某个固定的旧默认模型,升级后请检查相关预设 / 模板的模型字段是否符合预期。


⚠️ 风险提示

本版本在涉及反向代理类功能上沿用 v3.12.3 / v3.13.0 / v3.15.0 提出的风险提示。

GitHub Copilot 反向代理:使用 Copilot 的反代路径可能违反 GitHub / Microsoft 服务条款。详情见 v3.12.3 release notes

Codex OAuth 反向代理:使用 ChatGPT 订阅的 Codex OAuth 反代可能违反 OpenAI 服务条款,详情见 v3.13.0 release notes

Codex 第三方供应商 Chat 路由:通过 CC Switch 本地代理把 Codex 请求转换并转发到第三方供应商时,各供应商对计费、合规与数据留存的约束各不相同,请在使用前阅读目标供应商的服务条款。

Claude Desktop 第三方供应商代理切换:通过 CC Switch 内置代理网关把 Claude Desktop 的请求转到第三方供应商时,第三方供应商对计费、合规与数据留存的约束各不相同,请在使用前阅读目标供应商的服务条款。

用户启用上述功能即表示自行承担所有风险。CC Switch 不对因使用这些功能而导致的任何账号限制、警告或服务暂停承担责任。


下载与安装

访问 Releases 下载对应版本。

系统要求
系统最低版本架构
WindowsWindows 10 及以上x64
macOSmacOS 12 (Monterey) 及以上Intel (x64) / Apple Silicon (arm64)
Linux见下表x64 / ARM64
Windows
文件说明
CC-Switch-v3.16.0-Windows.msi推荐 - MSI 安装包,支持自动更新
CC-Switch-v3.16.0-Windows-Portable.zip便携版,解压即用,不写入注册表
macOS
文件说明
CC-Switch-v3.16.0-macOS.dmg推荐 - DMG 安装包,拖入 Applications 即可
CC-Switch-v3.16.0-macOS.zip解压后拖入 Applications,Universal Binary
CC-Switch-v3.16.0-macOS.tar.gz用于 Homebrew 安装和自动更新

macOS 版本已通过 Apple 代码签名和公证,可直接安装使用。

Homebrew(macOS)

🎉 CC Switch 现已收录至 Homebrew 官方 cask 仓库,无需添加第三方 tap!

brew install --cask cc-switch

更新:

brew upgrade --cask cc-switch
Linux

Linux 资产同时提供 x86_64ARM64aarch64)两种架构。资产文件名中包含架构标识,请按你机器的 uname -m 输出选择对应版本:

  • CC-Switch-v3.16.0-Linux-x86_64.AppImage / .deb / .rpm
  • CC-Switch-v3.16.0-Linux-arm64.AppImage / .deb / .rpm
发行版推荐格式安装方式
Ubuntu / Debian / Linux Mint / Pop!_OS.debsudo dpkg -i CC-Switch-*.debsudo apt install ./CC-Switch-*.deb
Fedora / RHEL / CentOS / Rocky Linux.rpmsudo rpm -i CC-Switch-*.rpmsudo dnf install ./CC-Switch-*.rpm
openSUSE.rpmsudo zypper install ./CC-Switch-*.rpm
Arch Linux / Manjaro.AppImage添加执行权限后直接运行,或使用 AUR
其他发行版 / 不确定.AppImagechmod +x CC-Switch-*.AppImage && ./CC-Switch-*.AppImage
View originalPermalink
How v3.16.0 went
v3.15.0

CC Switch v3.15.0

Added 11
  • Claude Desktop becomes a first-class managed surface with third-party provider switching via in-app proxy gateway
  • Role-based model mapping with sonnet, opus, and haiku roles plus supports1m long-context flag
  • Copilot and Codex OAuth provider reuse capability
  • 44 provider presets translated from Claude Code catalog into Claude Desktop surface
  • Redesigned Claude Code import flow for Claude Desktop
  • App-switcher differentiation between Claude Code and Claude Desktop
Changed 4
  • Claude Code model mapping is now role-based replacing the legacy [1M] suffix
  • 20 Claude Desktop presets now default to direct mode instead of proxy mode
  • Pooled HTTPS connection reuse for non-Anthropic backends to reduce per-request latency
  • DouBao Seed promoted to partner status
Fixed 5
  • Missing or malformed upstream usage in OpenAI Responses API parsing no longer crashes the VSCode Claude Code extension
  • Cache-cost semantics and pricing warning issues resolved
  • Anthropic to OpenAI tool_choice mapping corrected
  • Vertex AI full URLs are no longer truncated
  • Gemini request models are now extracted from the URI path

CC Switch v3.15.0

Claude Desktop becomes a first-class managed surface with third-party provider switching via proxy gateway, role-based model mapping, major reverse-proxy hardening, Codex OAuth live model discovery, and a filter-driven usage dashboard Hero card

中文版 → | 日本語版 →


[!WARNING]

Only Official Channels (Please Read)

CC Switch is a fully free and open-source desktop app, and we do not charge users any fees. Multiple imposter websites have recently been spotted impersonating CC Switch to solicit payments and harvest account credentials, with some users already reporting financial losses. Please only obtain the software through the official channels listed below:

ChannelOnly Official
Websiteccswitch.io
Sourcegithub.com/farion1231/cc-switch
DownloadsGitHub Releases
Author@farion1231
Report an ImposterGitHub Issues

Any "CC Switch" website or client that asks you for payment, top-ups, or login credentials is fake. If you have been tricked into paying, stop the transaction immediately and file a report through GitHub Issues so we can take down the imposter site as quickly as possible.


Claude Desktop Guide

The headline feature in this release is the first-class Claude Desktop management panel. If you already have many providers configured for Claude Code, start here:

Use CC Switch to configure, manage, and switch Claude Desktop providers in one place

The guide walks through one-click import from Claude Code, adding Claude Desktop-specific providers, direct mode vs. model-mapping mode, showing the hidden local-routing toggle, and returning to Claude Desktop's official sign-in mode.


Overview

CC Switch v3.15.0 is a major release following the v3.14.x line, centered on promoting Claude Desktop to a first-class managed surface. It ships third-party provider switching through the in-app proxy gateway, role-based model mapping (sonnet / opus / haiku) with a supports1m long-context flag, Copilot/Codex OAuth provider reuse, a redesigned Claude Code import flow, app-switcher differentiation between "Claude Code" and "Claude Desktop", and 44 provider presets translated from the Claude Code catalog into the new Claude Desktop surface.

Around proxy reliability, this release performs a systematic hardening pass: P0–P3 patches across routing / lifecycle / retry / failover / rectifier paths; pooled HTTPS connection reuse for non-Anthropic backends to cut per-request latency; cache hit-rate improvements for Codex and OpenAI Responses (emit prompt_cache_key only when a real client-provided session identity exists, canonicalize JSON keys in outgoing request bodies plus tool_call arguments and tool_result content, and thread session_id into the usage logger); correct Anthropic ↔ OpenAI tool_choice mapping; Vertex AI full URLs are no longer truncated; Gemini request models are now extracted from the URI path; takeover detection is tightened; and IPv6 listen addresses are supported. ChatGPT Codex OAuth providers no longer depend on hardcoded model lists — CC Switch now fetches a live model list from the ChatGPT backend on demand.

Claude Code's model mapping is now role-based (sonnet / opus / haiku) with display names and a new supports1m boolean flag, replacing the legacy [1M] suffix and decoupling routing decisions from raw model IDs. The usage dashboard adds a filter-driven Hero card that exposes cache-normalized real total tokens and cache hit rate, updated live as the active date range / provider / model filters change; paired with a fix for cache-cost semantics and the noisy pricing warning storm that fired on every request. Robustness improvements in the OpenAI Responses API usage parsing path mean missing or malformed upstream usage no longer crashes the VSCode Claude Code extension with a null output.

The provider ecosystem expands further: new BytePlus, Volcengine Agentplan, ClaudeAPI, ClaudeCN, RunAPI, RelaxyCode, PatewayAI, and Baidu Qianfan Coding Plan partner presets; DouBao Seed is promoted to partner status; and provider cards now surface a "routing support" badge so users can tell at a glance which providers can be served through Local Routing. This release also fixes a long tail of issues across Codex sessions, OAuth, Claude Desktop forms, Linux segfaults, terminal fallbacks, and ships several GitHub Actions dependency bumps.

Release date: 2026-05-16

Stats: 127 commits | 211 files changed | +17,980 insertions | -2,748 deletions


Highlights
  • Claude Desktop Becomes a First-Class Managed Surface: Third-party provider switching through the in-app proxy gateway, role-based model mapping (sonnet / opus / haiku) with a supports1m long-context flag, Copilot/Codex OAuth provider reuse, and 44 provider presets translated from the Claude Code catalog. Note: 20 Claude Desktop presets now default to direct mode instead of proxy mode — verify connectivity after upgrade if you previously relied on proxy routing.
  • Major Reverse-Proxy Hardening: P0–P3 lifecycle / retry / failover / rectifier patches; pooled HTTPS reuse for non-Anthropic backends; Codex / Responses cache hit-rate improvements; correct Anthropic ↔ OpenAI tool_choice mapping; Vertex AI URL preservation; Gemini path-based model extraction; refined takeover detection; IPv6 listen address support.
  • Provider Ecosystem Expansion: New BytePlus, Volcengine Agentplan, ClaudeAPI, ClaudeCN, RunAPI, RelaxyCode, PatewayAI, and Baidu Qianfan Coding Plan partner presets; DouBao Seed promoted to partner status; routing-support badges on provider cards.
  • Role-Based Model Mapping with 1M Flag: Role-based sonnet / opus / haiku routing with display names and a supports1m flag replaces the legacy [1M] suffix.
  • Codex OAuth Live Model Discovery: ChatGPT Codex providers fetch the live model list from the ChatGPT backend on demand.
  • Usage Dashboard Filter-Driven Hero: Surfaces cache-normalized real total tokens and cache hit rate, updated live as date / provider / model filters change.
  • DeepSeek Tool Calls + Zero-Usage Final Delta: DeepSeek tool calls now return reasoning_content alongside tool_calls (#2543, thanks @bling-yshs); the final message_delta always includes a usage block (even when zero) so strict Anthropic clients no longer crash on null (#2485, thanks @Myoontyee).
  • OpenAI Responses API Usage Parsing Robustness: Missing or malformed upstream usage no longer crashes the VSCode Claude Code extension (#2422, thanks @magucas).

Added
Claude Desktop Third-Party Provider Switching via Proxy Gateway

CC Switch now treats Claude Desktop as a first-class managed surface alongside Claude Code / Codex / Gemini / OpenCode / OpenClaw / Hermes.

  • New dedicated Claude Desktop panel that brokers third-party providers to Claude Desktop through CC Switch's in-app proxy gateway
  • Routing-support badge on cards for providers that need Local Routing
  • Role-based model route mapping locked to sonnet / opus / haiku
  • Copilot / Codex OAuth providers can be reused in the Claude Desktop panel
  • Redesigned Claude Code settings import flow
  • App switcher visually distinguishes "Claude Code" from "Claude Desktop", and the app visibility settings use the "Claude Code" label
  • 44 Claude Desktop provider presets translated from the Claude Code preset catalog
Routing Support Badges on Provider Cards

Provider cards in both the Claude Code and Codex panels now show a routing-support badge so users can tell at a glance which providers can be served through Local Routing.

Codex OAuth Live Model List

ChatGPT Codex providers no longer rely on a hardcoded model selection — CC Switch fetches a live model list from the ChatGPT backend on demand.

Role-Based Model Mapping with 1M Flag

Claude Code model mapping is now role-based (sonnet / opus / haiku) with display names and a supports1m boolean flag, replacing the legacy [1M] suffix and decoupling routing from raw model IDs.

Filter-Driven Usage Hero

The usage dashboard's Hero summary is now filter-driven, updating live as the active date range / provider / model filters change; it surfaces cache-normalized real total tokens and cache hit rate so the Hero figures line up with the detail list below.

Provider Form "Save Anyway" Prompt

Softened provider form input validation by turning non-blocking input issues into a "save anyway" prompt, so a harmless field issue no longer blocks saving (#2307, thanks @allenxln).

Universal Provider Duplicate Action

Added a "duplicate" button for universal providers from the provider list (#2416, thanks @hubutui).

Persisted Tauri Window State

Window position and size now persist across launches (#2377, thanks @BillSaul).

Tray Icon Tooltip

The system tray icon now surfaces a status tooltip on hover (#2417, thanks @Coconut-Fish).

Warp Terminal Session Launch

Added support for launching Warp and executing a saved session inside it (#2466, thanks @tisonkun).

DeepSeek reasoning_content for Tool Calls

DeepSeek tool-call responses now return reasoning_content and tool_calls together, so callers can render both (#2543, thanks @bling-yshs).

Baidu Qianfan Coding Plan (Claude Code)

Added a Baidu Qianfan Coding Plan preset (#2322, thanks @jimmyzhuu).

Compshare Coding Plan Preset (Cross-App)

The Compshare Coding Plan preset now lands across claude / codex / hermes / openclaw.

Partner Provider Presets

Added BytePlus, Volcengine Agentplan, ClaudeAPI, ClaudeCN, RunAPI, RelaxyCode, and PatewayAI partner presets; promoted DouBao Seed to partner status (refreshed endpoint and links).

44 Claude Desktop Provider Presets

Translated 44 provider presets from the Claude Code preset catalog into the new Claude Desktop panel.


Changed
20 Claude Desktop Presets Default to Direct Mode

20 Claude Desktop presets now ship in direct mode instead of routing through the proxy by default, reducing setup friction for users who don't need proxy-specific compatibility shims. If you previously relied on proxy routing for these presets, verify connectivity after upgrading.

Claude Desktop Operational Notes

Switching a Claude Desktop provider writes CC Switch's managed 3P profile and requires restarting Claude Desktop to take effect; proxy-mode providers require CC Switch's Local Routing to stay running while in use.

Failover / Local Routing Guardrails

Failover controls now require the target app's Local Routing takeover to be enabled before they can be turned on; stopping only the proxy service is blocked while any app still depends on takeover state, preventing the "proxy stopped but the app still thinks takeover is running" inconsistency.

Usage Accounting Semantics Changed

Usage summaries now report cache-normalized real total tokens and cache hit rate. Historical token and cost figures may shift after deduplication and pricing recalculation — the new numbers are more accurate but will not equal the values reported in earlier versions.

Provider Preset Rendering Order

Preset lists now render in the author-defined array order, with partners prioritized first, replacing the previous implicit sort.

Model Mapping Hint Copy Simplified

modelMappingOffHint was rewritten as action-oriented copy across zh / en / ja.

CC Switch Brand Surface Unified to ccswitch.io

All in-app and README "official website" references now point at ccswitch.io as the sole official site; the release notes template also surfaces ccswitch.io.

Theme Switch Simplified

Removed the circular reveal animation during theme switches; theme changes are now an instant cross-fade.

Claude Code App Switcher Differentiation

The app switcher visually distinguishes "Claude Code" from "Claude Desktop", and the app visibility settings use the "Claude Code" label.

CI: Claude Review Upgraded to Opus 4.7

The Claude review GitHub Action is upgraded to Opus 4.7; the prompt is tuned to reduce nitpick noise; a new @claude review-only Code Action is added; PR head SHA is pinned for checkout; the --max-turns 5 limit is removed.

GitHub Actions Dependency Bumps
  • actions/checkout 4 → 6 (#2517)
  • pnpm/action-setup 5 → 6 (#2518)
  • softprops/action-gh-release 2 → 3 (#2519)
  • actions/stale 9 → 10 (#2520)
DeepSeek Presets Switched to V4

DeepSeek presets now ship V4 (flash / pro) with refreshed pricing seeds.

Codex 1M Context Toggle Hidden in Edit Form

The 1M context-window toggle is no longer surfaced in the Codex provider edit form, reducing the density of knobs that have no effect in current Codex deployments.

OpenClaudeCode Migrated to MicuAPI Domain

The OpenClaudeCode preset is migrated to the MicuAPI domain; Micu API links are refreshed to micuapi.ai.

CrazyRouter Endpoints Switched to cn Subdomain

CrazyRouter preset endpoints now use the cn subdomain.

RelaxyCode Custom Icon

The RelaxyCode preset icon is switched to a custom relaxcode.png asset.

Kimi For Coding Doc URL

The Kimi For Coding website URL is updated to the /code/docs/ path.

SiliconFlow International Site Shows USD

The SiliconFlow international site now correctly shows USD for balance display (it previously displayed CNY incorrectly).


Fixed
OpenAI Responses API Usage Parsing Robustness

Hardened build_anthropic_usage_from_responses() and the Responses → Anthropic SSE translator so a missing or malformed upstream usage no longer produces "usage": null in message_delta. This unblocks strict Anthropic clients (notably the VSCode Claude Code extension) that crashed with Cannot read properties of null (reading 'output_tokens') against providers such as Codex OAuth and DashScope's compatible-mode/v1/responses endpoint. Added OpenAI field-name fallbacks (prompt_tokens / completion_tokens), null / empty / partial object handling, and preserved cache token fields even when input/output tokens are missing (#2422, thanks @magucas).

Proxy Reliability Patches (P0–P3)

Multiple rounds of routing / lifecycle / retry / rectifier patches across the request-forwarder paths; extracted a shared handle_rectifier_retry_failure helper and a shared auth_header_value helper.

Proxy: Pooled HTTPS Connection Reuse for Non-Anthropic Backends

Non-Anthropic backends now reuse pooled HTTPS connections instead of opening a fresh TLS session per request, materially reducing per-request latency.

Proxy: Forward Client's Actual HTTP Method

The proxy no longer hard-codes POST — it forwards the client's actual HTTP method, so non-POST upstream endpoints (e.g. GET /v1/models) now work correctly.

Proxy: Per-Attempt Counters and max_retries Wiring

Client-request counters are moved out of the per-attempt loop; AppProxyConfig.max_retries is now correctly wired into the request forwarder.

Proxy: Failover Decision Refinements

Refined retryable vs. unretryable error classification in the request forwarder.

Proxy: Takeover Detection Tightening

Takeover detection is tightened; disabling takeover uses fallback restore, so leftover state no longer strands a provider.

Proxy: Anthropic ↔ OpenAI tool_choice Mapping

During format conversion, Anthropic's tool_choice is now correctly mapped to the OpenAI Chat nested form.

Proxy: Gemini Request Model Extracted from URI Path

Gemini request models are now extracted from the URI path (instead of the body), so transformed traffic reports the right model name.

Proxy: Auth Header Error Handling

get_auth_headers now returns Result instead of panicking on bad credentials.

Proxy: IPv6 Listen Address Validation

The Proxy panel now accepts IPv6 listen addresses.

Proxy: Codex / Responses Cache Hit Rate

Improved cache hit rate for Codex and OpenAI Responses requests by stabilizing cache key derivation: emit prompt_cache_key only when the client actually carries a session identity, so unrelated conversations no longer collapse onto a single key; canonicalize (sort) JSON keys in outgoing request bodies and in tool_call arguments / tool_result content for byte-identical prefix-cache reuse; thread session_id into the usage logger for request correlation.

Proxy: JSON Schema Underscore Fields Preserved

Private-parameter filtering now preserves underscore-prefixed field names inside JSON Schema name maps (properties, patternProperties, definitions, $defs), so user-defined schema keys like _id and _meta pass through the filter intact.

Proxy: Read Tool Empty Pages

Drop empty pages from Read tool inputs so providers no longer reject the request (#2472, thanks @Kwensiu).

Proxy: Per-Request Hot-Path Trim

Trimmed per-request hot-path work and database wait time.

Proxy: Real Provider Model Names Under Takeover

Under takeover, the Claude Code menu now exposes the real provider model names instead of a stale alias.

Proxy: Zero Usage in Final message_delta

The final message_delta event now always includes a usage block (even when zero) so strict Anthropic clients no longer crash on null (#2485, thanks @Myoontyee).

Proxy: Streaming message_delta Deduplication

Deduplicated message_delta events that some upstreams emit twice (#2366, thanks @codeasier).

Proxy: Scoped reasoning_content Preserved for Tool Calls

Tool-call paths now correctly preserve the scoped reasoning_content field during transformation; Kimi / Moonshot's OpenAI Chat compatibility path keeps the field while generic OpenAI-compatible requests stay free of it (#2367, thanks @codeasier).

Proxy: Vertex AI Full URL Preserved

Full Vertex AI URLs are no longer truncated during proxy forwarding (#2415, thanks @xpfo-go).

Proxy: Leading Billing Header Stripped from System Content

Some upstreams prepend a billing-header chunk to the system message; this content is now stripped (#2350).

Proxy: Claude Auth Strategy Derived from ANTHROPIC_* Env Var

The Claude auth strategy is now derived from the actual ANTHROPIC_* env variable name rather than an opaque heuristic.

Third-Party Claude Providers: Disable Model Test

Model probing is disabled for third-party Claude gateways that don't implement /v1/models consistently.

Model-Fetch: /models for Anthropic-Compatible Subpath Providers

/models discovery now works for Anthropic-compatible subpath providers.

Copilot: Claude Model IDs Resolved Against Live /models

Copilot-backed providers now resolve Claude model IDs against the live /models list to avoid stale ID mismatches.

Codex: Session Title No Longer Pulls in environment_context

Codex session title extraction no longer pulls in the environment_context noise (#2439, thanks @eclipsehx).

Codex: Subagent Sessions Hidden

Codex subagent sessions are now hidden from the main session list (#2445, thanks @LanternCX).

Codex Startup Live Import Duplication

Fixed a duplicate-import bug in the Codex startup live-import path (#2590, thanks @DhruvShankpal).

Codex Provider Switch No Longer Disturbs History

Switching the active Codex provider no longer changes existing session history (#2349, thanks @SaladDay).

Codex Usage Log Wording

Corrected a misleading log message for Codex session usage (#2473, thanks @tisonkun).

Claude: Persist max Effort via Env

max effort now correctly persists across restart via the env variable (#2493, thanks @makoMakoGo).

Claude Desktop: Model Route Matching Without [1M] Suffix

Route matching no longer requires the legacy [1M] suffix.

Claude Desktop: Provider Form Input Focus Loss

Fixed an input in the Claude Desktop provider form that lost focus while being edited.

Claude Desktop: Spurious Proxy-Stopped Status Alert

Removed an alert that fired spuriously when the proxy was intentionally stopped.

Claude Desktop: Empty Toolbar Capsule Hidden

The empty toolbar capsule is now hidden when Claude Desktop is the active app.

UI: Monitor Badge Icon Centering

Centered the Monitor badge icon in the app switcher.

Linux: Theme Selection Segfault

Prevented a segfault triggered by selecting a theme on Linux (#2502, thanks @definfo).

Terminal: iTerm Fallback on Cold Launch

Prevented iTerm from being selected as a fallback on cold launch when it isn't actually installed (#2448, thanks @hulkbig).

Config: JSON Keys Sorted Alphabetically

Config writes now sort JSON keys alphabetically for deterministic output (#2469, thanks @fuleinist).

"Import Existing" Made Side-Effect Free

The "import existing" action is now side-effect free (#2429, thanks @xwil1).

Coding Plan: Zhipu Weekly Tier Named by Reset Time

Corrected the Zhipu weekly tier name to match the actual reset time (#2420, thanks @TuYv).

DashScope: Usage Parsing Robustness

Hardened DashScope usage parsing so a malformed payload no longer crashes the VSCode Claude Code extension (#2425, thanks @magucas).

Usage: Deduplicate Proxy and Session-Log Sources

Deduplicated usage records sourced from both the proxy and session logs.

Usage: Cache Cost Semantics + Pricing Warn Storm

Corrected cache-cost semantics and silenced the noisy pricing warning that fired on every request.

CI: Frontend Formatting + Linux Clippy Restored

Restored frontend formatting and Linux clippy checks in CI.

Proxy Test Helper Clippy Warning

Fixed a clippy warning in the proxy test helper.


Removed
Hermes Agent Usage Tracking Integration

Removed the Hermes Agent usage tracking integration originally planned for this cycle — upstream behavior changes made the integration impractical to maintain. The integration was never enabled in any released version; the "zero-cost rendering" bug discovered during its development was fixed before the integration was rolled back.

Theme Switch Circular Reveal Animation

Removed the circular reveal animation used during theme switches — it stuttered on slower compositors and added little visible value.

DDSHub Partner Integration

Removed DDSHub as a partner preset and dropped the cross-link blurbs from the READMEs.


Docs
README Sponsor Refresh (zh / en / ja)

Added BytePlus, ClaudeCN, RunAPI, and PatewayAI sponsor entries; cross-linked BytePlus and Volcengine entries; refreshed the CrazyRouter $2 credit claim flow, the Compshare blurb, the Right Code blurb, and other sponsor logos and listings; flattened the LionCC logo onto a white background; switched the Chinese README's sponsor logo to the Volcengine artwork; added Hermes Agent to the README subtitles.

Release Notes Template

The release notes template now surfaces ccswitch.io.

Brand Surface

Documented ccswitch.io as the sole official website across READMEs and in-app references.


⚠️ Upgrade Notes
20 Claude Desktop Presets Default to Direct Mode

These 20 presets previously routed through the proxy by default and now default to direct mode. If you were using one of these presets pre-upgrade and depended on the proxy path for connectivity (for example because the proxy applies a special rectifier or transformation layer), verify connectivity after upgrading; you can manually switch them back to proxy mode from the CC Switch panel if needed.

Claude Desktop Operational Constraints

Switching a Claude Desktop provider requires restarting Claude Desktop to take effect; proxy-mode providers require CC Switch's Local Routing to stay running while in use — quitting CC Switch or stopping Local Routing will cut off any proxy-mode Claude Desktop providers.

Failover Requires Takeover Enabled

Before enabling Failover, make sure the target app's Local Routing takeover is enabled, otherwise the Failover control will refuse to start; stopping the proxy service while any app still depends on takeover state is blocked, so you need to disable takeover at the app layer first before stopping the proxy.

Usage Figures May Diverge from History

Usage summaries now use cache-normalized real total tokens + cache hit rate. Historical token and cost figures may shift after deduplication and pricing recalculation — the new numbers are more accurate but will not equal what earlier versions reported.


⚠️ Risk Notice

This release inherits the risk notices originally introduced in v3.12.3 / v3.13.0 for reverse-proxy-style features.

GitHub Copilot Reverse Proxy: Using Copilot's reverse-proxy path may violate GitHub / Microsoft's terms of service. See the v3.12.3 release notes for details.

Codex OAuth Reverse Proxy: Using the Codex OAuth reverse proxy with a ChatGPT subscription may violate OpenAI's terms of service. See the v3.13.0 release notes for details.

Claude Desktop Third-Party Provider Switching via Proxy Gateway: Routing Claude Desktop traffic through CC Switch's in-app proxy gateway to a third-party provider exposes those requests to that provider's billing, compliance, and data-retention policies — read the target provider's terms of service before using.

By enabling these features, users accept all associated risks. CC Switch is not responsible for any account restrictions, warnings, or service suspensions that result from using these features.


Download & Installation

Visit Releases to download the appropriate version.

System Requirements
OSMinimum VersionArchitecture
WindowsWindows 10 or laterx64
macOSmacOS 12 (Monterey) or laterIntel (x64) / Apple Silicon (arm64)
LinuxSee table belowx64 / ARM64
Windows
FileDescription
CC-Switch-v3.15.0-Windows.msiRecommended - MSI installer, supports auto-update
CC-Switch-v3.15.0-Windows-Portable.zipPortable, extract and run, no registry writes
macOS
FileDescription
CC-Switch-v3.15.0-macOS.dmgRecommended - DMG installer, drag into Applications
CC-Switch-v3.15.0-macOS.zipExtract and drag into Applications, Universal Binary
CC-Switch-v3.15.0-macOS.tar.gzFor Homebrew installation and auto-update

macOS builds are Apple code-signed and notarized — install directly.

Homebrew (macOS)

🎉 CC Switch is now available in the official Homebrew cask repository — no need to add a custom tap!

brew install --cask cc-switch

Update:

brew upgrade --cask cc-switch
Linux

Linux artifacts are published for both x86_64 and ARM64 (aarch64). The architecture is included in the asset filename — pick the one matching your machine's uname -m output:

  • CC-Switch-v3.15.0-Linux-x86_64.AppImage / .deb / .rpm
  • CC-Switch-v3.15.0-Linux-arm64.AppImage / .deb / .rpm
DistributionRecommendedInstallation
Ubuntu / Debian / Linux Mint / Pop!_OS.debsudo dpkg -i CC-Switch-*.deb or sudo apt install ./CC-Switch-*.deb
Fedora / RHEL / CentOS / Rocky Linux.rpmsudo rpm -i CC-Switch-*.rpm or sudo dnf install ./CC-Switch-*.rpm
openSUSE.rpmsudo zypper install ./CC-Switch-*.rpm
Arch Linux / Manjaro.AppImageAdd execute permission and run, or use AUR
Other distros / not sure.AppImagechmod +x CC-Switch-*.AppImage && ./CC-Switch-*.AppImage
View originalPermalink
How v3.15.0 went
v3.14.1

CC Switch v3.14.1

Added 4
  • System tray submenus now show cached usage for the current Claude / Codex / Gemini provider with subscription quota summaries and usage-script summaries with color-coded utilization markers
  • Tray renders 5-hour plus weekly window usage for Chinese coding-plan providers using the same 🟢 h12% w80% two-window layout as official subscription badges
  • Creating a Claude provider whose ANTHROPIC_BASE_URL matches a known coding-plan host auto-injects meta.usage_script so the tray lights up without opening the Usage Script modal
  • New explicit FAST mode toggle for Codex OAuth-backed Claude providers that sends service_tier="priority" for lower latency
Changed 4
  • Tray-triggered usage refreshes are throttled, limited to visible apps, and synchronized back into React Query so the main window and tray share the same usage data
  • Existing usage_script values are preserved on update, never clobbering user customizations
  • Hardened the scroll-area viewport with width containment to fix horizontal overflow
  • Tightened app bottom and settings footer spacing
Fixed 7
  • Client-provided session IDs are now used as both prompt_cache_key and the Codex session header to avoid UUID-driven cache churn
  • Non-streaming Anthropic clients now receive proper JSON responses even when the ChatGPT Codex upstream forces OpenAI Responses SSE
  • Stream Check now builds probes with the same store: false, encrypted reasoning include, and provider FAST mode setting as production requests
  • Import dialog disables actions while pending and deduplicates results by ID
  • Model quick-set and one-click config now apply against the latest form state
  • Root-level SKILL.md repo installs are now stable
  • Session scanning reads .project_root metadata and passes the original project directory back into restore flows
Removed 2
  • In-app Hermes config health scanner and its warning banner are removed
  • Removed scan_hermes_config_health command, HermesHealthWarning type, and HermesWriteOutcome.warnings payload

CC Switch v3.14.1

Tray usage visibility, Codex OAuth stability fixes, Skills import/install reliability, and removal of the Hermes config health scanner

中文版 → | 日本語版 →


Overview

CC Switch v3.14.1 is a patch release following v3.14.0, focused on Codex OAuth reverse-proxy stability, tray usage visibility, Skills import / install reliability, Gemini session restore paths, and simplifying Hermes configuration health handling.

For the first time, the system tray surfaces cached usage for the current Claude / Codex / Gemini provider directly in its submenus — including subscription summaries and usage-script summaries with color-coded utilization markers. For Chinese coding-plan providers like Kimi / Zhipu / MiniMax, the tray additionally renders a 5-hour + weekly window layout in the 🟢 h12% w80% style (worst utilization drives the emoji), semantically identical to the official subscription badges. Creating a Claude provider whose ANTHROPIC_BASE_URL matches a known coding-plan host now auto-injects meta.usage_script so the tray lights up without opening the Usage Script modal.

Several Codex OAuth reverse-proxy stability issues are addressed this release: client-provided session IDs are now used as both prompt_cache_key and the Codex session header to avoid UUID-driven cache churn; non-streaming Anthropic clients receive proper JSON responses even when the ChatGPT Codex upstream forces OpenAI Responses SSE; and Stream Check now builds probes with the same store: false, encrypted reasoning include, and provider FAST mode setting as production requests, eliminating the "check fails but it actually works" mismatch. Paired with a new explicit FAST mode toggle, users can now opt into service_tier="priority" on Codex OAuth-backed Claude providers, trading latency against ChatGPT quota consumption on their own terms.

Additionally, the in-app Hermes config health scanner and its warning banner are removed (along with the scan_hermes_config_health command, HermesHealthWarning type, and HermesWriteOutcome.warnings payload), refocusing the Hermes surface on active provider display, switching defaults, memory editing, and launching the Hermes Web UI — deep configuration health is now Hermes's own responsibility.

Release Date: 2026-04-23

Update Scale: 13 commits | 48 files changed | +1,883 / -808 lines


Highlights
  • Tray Usage Visibility: Claude / Codex / Gemini tray submenus show cached usage for the current provider, including subscription and script-based summaries with color markers; refreshes are throttled, limited to visible apps, and synchronized back into React Query (#2184, thanks @TuYv)
  • Tray Coding-Plan Usage (Kimi / Zhipu / MiniMax): The tray renders 5-hour + weekly window usage using the 🟢 h12% w80% layout; Claude providers whose base URL matches a known host auto-inject meta.usage_script
  • Codex OAuth FAST Mode: New explicit FAST mode toggle for Codex OAuth-backed Claude providers; when enabled, converted Responses requests send service_tier="priority". Off by default (#2210, thanks @JesusDR01)
  • Codex OAuth Stability: Fixed reverse-proxy cache routing (#2218, thanks @majiayu000), Responses SSE aggregation (#2235, thanks @xpfo-go), and Stream Check parity with production (#2210, thanks @JesusDR01)
  • Hermes Config Health Scanner Removed: Refocuses the Hermes surface on provider management, memory editing, and launching the Web UI — no longer duplicates deep configuration health judgments
  • Skills Import / Install Reliability: Import dialog disables actions while pending and deduplicates results by ID (#2211, thanks @TuYv); model quick-set / one-click config applies against the latest form state (#2249, thanks @Coconut-Fish); root-level SKILL.md repo installs are stable (#2231, thanks @santugege)
  • Gemini Session Restore Paths: Session scanning reads .project_root metadata and passes the original project directory back into restore flows (#2240, thanks @tisonkun)
  • Session / Settings Layout Polish: Hardened the scroll-area viewport with width containment to fix horizontal overflow; tightened app bottom and settings footer spacing (#2201, thanks @Coconut-Fish)

Added
Tray Usage Visibility
  • System tray submenus now show cached usage for the current Claude / Codex / Gemini provider (#2184, thanks @TuYv)
  • Includes subscription quota summaries and usage-script summaries with color-coded utilization markers
  • Tray-triggered refreshes are throttled, limited to visible apps, and synchronized back into React Query so the main window and tray share the same usage data
Tray Coding-Plan Usage (Kimi / Zhipu / MiniMax)
  • The tray renders 5-hour + weekly window usage for Chinese coding-plan providers
  • Uses the same 🟢 h12% w80% two-window layout as official subscription badges (worst utilization drives the emoji color)
  • Creating a Claude provider whose ANTHROPIC_BASE_URL matches a known coding-plan host auto-injects meta.usage_script, so the tray lights up without opening the Usage Script modal
  • Existing usage_script values are preserved on update, never clobbering user customizations
Codex OAuth FAST Mode
  • New explicit FAST mode toggle for Codex OAuth-backed Claude providers (#2210, thanks @JesusDR01)
  • When enabled, converted Responses requests send service_tier="priority" for lower latency
  • Off by default to avoid unexpectedly increasing ChatGPT quota consumption

Changed
Session and Settings Layout Polish
  • Hardened the scroll-area viewport with width containment to fix horizontal overflow (#2201, thanks @Coconut-Fish)
  • Tightened app bottom and settings footer spacing so long session / settings views fit more cleanly

Removed
Hermes Config Health Scanner
  • Removed the in-app Hermes config health scanner and its warning banner
  • Removed the scan_hermes_config_health command, HermesHealthWarning type, and HermesWriteOutcome.warnings payload
  • The CC Switch Hermes surface now focuses on its core job: active provider display, default provider switching, memory editing, and launching the Hermes Web UI for deep configuration

Fixed
Codex OAuth Cache Routing
  • Use the client-provided session ID as both prompt_cache_key and the Codex session header, preserving explicit cache keys (#2218, thanks @majiayu000)
  • Stop generating UUIDs that caused cache-identity churn, stabilizing the ChatGPT Codex reverse-proxy cache identity
Codex OAuth Responses SSE Aggregation
  • Non-streaming Anthropic clients now receive proper JSON even when the ChatGPT Codex upstream forces OpenAI Responses SSE (#2235, thanks @xpfo-go)
  • CC Switch aggregates the upstream SSE events before running the non-streaming transform
Codex OAuth Stream Check Parity
  • Stream Check now builds Codex OAuth probe requests with the same store: false, encrypted reasoning include, and provider FAST mode setting as production proxy traffic (#2210, thanks @JesusDR01)
  • Eliminates the "check fails but it actually works" mismatch
Codex Model Extraction
  • Reading the model field from Codex config now uses TOML parsing instead of first-line regex matching (#2227, thanks @nmsn)
  • Multiline TOML is handled correctly
Model Quick-Set / One-Click Config
  • Model quick-set now applies against the latest provider form config (#2249, thanks @Coconut-Fish)
  • Fixes stale form state preventing one-click configuration from succeeding
Skills Import Duplicates
  • The Skills import dialog disables actions while import is pending (#2211, thanks @TuYv)
  • The installed-skills cache deduplicates imported results by ID, preventing double-clicks from adding duplicate installed entries (#2139)
Root-Level Skill Repos
  • Skill install and update flows now consistently resolve three source patterns: direct nested paths, install-name recursive search, and repository-root SKILL.md sources (#2231, thanks @santugege)
Gemini Session Restore Paths
  • Gemini session scanning now reads .project_root metadata (#2240, thanks @tisonkun)
  • Restore flows can pass the original project directory when available
Provider Hover Names
  • Provider icons now expose the provider name on hover for inline SVG, image URL, and fallback initials render paths (#2237, thanks @tisonkun)

Notes & Caveats
  • Hermes Health Scanner Removed: If you were relying on CC Switch to surface deep Hermes YAML configuration issues, switch to the "Launch Hermes Web UI" toolbar button and inspect them in Hermes's own panel. Day-to-day provider management, switching, memory editing, and MCP / Skills sync continue to be handled by CC Switch.
  • Codex OAuth FAST Mode Off by Default: Only turn it on if you accept potentially increased ChatGPT quota consumption in exchange for lower latency.
  • Tray Cached Usage: Refreshes are throttled and limited to the currently visible app to avoid unnecessary upstream API calls; values are synchronized into React Query so the main window and tray stay in sync.

Download & Installation

Visit Releases to download the appropriate version.

System Requirements
OSMinimum VersionArchitecture
WindowsWindows 10 or laterx64
macOSmacOS 12 (Monterey) or laterIntel (x64) / Apple Silicon (arm64)
LinuxSee table belowx64
Windows
FileDescription
CC-Switch-v3.14.1-Windows.msiRecommended - MSI installer, supports auto-update
CC-Switch-v3.14.1-Windows-Portable.zipPortable, extract and run, no registry writes
macOS
FileDescription
CC-Switch-v3.14.1-macOS.dmgRecommended - DMG installer, drag into Applications
CC-Switch-v3.14.1-macOS.zipExtract and drag into Applications, Universal Binary
CC-Switch-v3.14.1-macOS.tar.gzFor Homebrew installation and auto-update

macOS builds are Apple code-signed and notarized — install directly.

Homebrew (macOS)
brew tap farion1231/ccswitch
brew install --cask cc-switch

Update:

brew upgrade --cask cc-switch
Linux
DistributionRecommendedInstallation
Ubuntu / Debian / Linux Mint / Pop!_OS.debsudo dpkg -i CC-Switch-*.deb or sudo apt install ./CC-Switch-*.deb
Fedora / RHEL / CentOS / Rocky Linux.rpmsudo rpm -i CC-Switch-*.rpm or sudo dnf install ./CC-Switch-*.rpm
openSUSE.rpmsudo zypper install ./CC-Switch-*.rpm
Arch Linux / Manjaro.AppImageAdd execute permission and run, or use AUR
Other distros / not sure.AppImagechmod +x CC-Switch-*.AppImage && ./CC-Switch-*.AppImage
View originalPermalink
How v3.14.1 went
View all

Discussion

If you publish cc-switch, you can claim this product by proving you administer its repository.