Skip to content

Releases: farion1231/cc-switch

CC Switch v3.20.0

Choose a tag to compare

@github-actions github-actions released this 18 Aug 09:11

CC Switch v3.20.0

这一版由三条结构性主线撑起:Pi 成为第九个受管应用——供应商、提示词、Skills、会话浏览与用量统计一站接入;Codex 支持多个 ChatGPT 账号——认证中心随便登几个,每张官方卡各绑各的,切换永不串账;Claude Code 内置 WebSearch 在 GPT 路由下终于可用。紧急修复也有一条:v3.19.2 在 WSL 路径上已有配置无法更新或切换,受影响用户请直接升级本版。同一批 Windows 修复还包括版本检测大修(五个 issue 一次修)、启动闪屏与 MSI 注册表垃圾键。本版包含数据库迁移(v16 → v17),升级前自动备份,降级需还原备份。

English → | 日本語版 →


重点内容:你现在可以

  • 用 CC Switch 管理 Pi:第九个受管应用(#6064)。供应商表单是针对 Pi 原生 schema 的结构化编辑器,内置 58 个预设与 57 个模型的能力目录;提示词库、SYSTEM.md / APPEND_SYSTEM.md 编辑器、斜杠命令模板、Skills、会话浏览与安装升级一并接入。Pi 自己的登录、默认供应商与默认模型永远不被触碰。首启会导入 models.json 里已有的供应商,见升级提醒
  • 在看板里看到 Pi 的会话用量:逐模型的 token、成本、错误与中断轮次,独立的「Pi (Session)」来源与应用筛选;增量同步只解析文件新增部分(#6463)。
  • 添加 Codex 官方供应商时直接选择已授权的 ChatGPT 账号:认证中心登录任意多个账号,新建官方卡时下拉直选其一完成绑定;也可以照旧添加一张不绑定的空官方卡,跟随 Codex CLI 本地登录、读取本地的 access token。切换到绑定卡会写入该账号完整的令牌包——裸 codex CLI 也以该账号运行、且能自行续期。接管下的请求会校验账号一致性,绝不静默把账单记到另一个账号头上(#3879#6535)。
  • 在 GPT 路由下使用 Claude Code 的内置 WebSearch:搜索在上游执行、结果带引用返回、次数进用量;Codex 新客户端的 Alpha Search 端点也不再 404(#5681)。
  • 从 v3.19.2 的 WSL 故障中脱困:v3.19.2 在 \\wsl.localhost 路径上无法更新或切换已有配置(#6188),该版本内无任何绕过手段——请直接升级本版,并且 CI 从此在真实 WSL2 文件系统上跑测试(#6233)。
  • 让 Windows 版本检测和你的终端看到的一致:检测改为合并注册表 PATH(用户+机器)、扫描独立安装器目录、优先探测 PATH 默认项——应用内自更新后「未安装」、winget 装的 Claude Code 找不到、旧 npm shim 遮住新版本,五个 issue 一网打尽(#6284)。
  • 给每个模型声明它真实支持的思考档位:Codex 模型目录支持逐模型多选八个标准档位并指定默认值,各家预设按厂商文档预填了真实档位(#6228)。
  • 信任你的备份:SQL 备份逐值保真往返、截断文件导入前即被拒绝(#6146);备份文件原子发布、恢复先在暂存库整体校验、.db 恢复会把各应用 live 配置一并重建,所有同步/恢复路径严格串行(#6147)。
  • 在几百个模型里直接搜:所有应用的模型下拉都换成了可输入过滤的组合框,按模型 id 和厂商名都能匹配(#6285)。
  • 启动不再白/黑闪屏:主题在页面绘制前同步应用,Windows 上窗口加载完成前保持隐藏(#6252)。

使用攻略

本版改动集中在供应商管理与用量统计上,建议结合以下文档了解:

  • 添加供应商:Pi 与新预设的入口。
  • 用量统计:Pi 会话用量的来源与口径,以及 DeepSeek 调价对读数的影响。
  • 请求路由:WebSearch 桥接生效的路由场景。

Warning

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

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

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

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


概览

CC Switch v3.20.0 横跨了几乎每个子系统,主线有三条。第一条是接入面扩张:Pi 成为第九个受管应用,从供应商编辑到会话用量全链路接入,并带来本版唯一的数据库迁移(v16 → v17,Pi 用量去重账本);Codex 侧则补上了呼声已久的多 ChatGPT 账号管理,官方卡从此可以逐卡绑定账号,且刻意退出自动故障转移——重试永远不会把账单记到另一个账号。第二条是代理能力:Claude Code 内置 WebSearch 桥接到 OpenAI Responses 与 Codex OAuth 后端,Codex 的 Alpha Search 端点注册为语义透传,「GPT 路由下没有网页搜索」成为历史。

第三条是把 Windows 与数据可靠性欠的账还上:v3.19.2 的 WSL 写入回归热修(并新增真实 WSL2 CI 覆盖)、版本检测按注册表 PATH 大修、启动闪屏消除、MSI 自 v3.4.0 起写入的垃圾注册表键修正;备份/同步经外部贡献者审计后两波加固——SQL 逐值保真、原子发布、暂存校验、严格串行。此外还有 Codex 思考档位体系的整轮梳理(逐模型档位+各厂真实档位预填+聚合平台方言修正)、一轮供应商表单一致性打磨、macOS 中日文输入法修复,以及 DeepSeek V4 按厂商新牌价重定价。

发布日期:2026-08-18

更新规模:69 commits | 284 files changed | +53,108 / -6,678 lines


新功能

Pi 成为第九个受管应用

Pi 以累加模式接入(与 OpenCode、Hermes 同类):供应商的启用与否等于其键是否存在于 ~/.pi/agent/models.json,多个供应商共存。供应商表单是针对 Pi 原生 schema 的结构化编辑器——API 格式、逐模型的思考等级映射(Pi 的七个等级)、兼容键——内置 58 个预设(覆盖表单五种 API 格式中的四种)与一份人工复核过的 57 模型能力目录;原始 JSON 编辑器与「拉取模型」按钮兜底,既有节点里的未知字段原样保留。每次读改写都有内容版本校验,别的进程改过的文件会以冲突报错拒绝、绝不覆盖。

边界刻意划清并写进文档:CC Switch 绝不把 Pi 的内置供应商物化进 models.json、绝不读写 Pi 的 auth.json绝不defaultProvider / defaultModel——Pi 自己的登录与模型选择归 Pi。供应商之外:提示词库把选中的一条写入 Pi 全局 AGENTS.md(已有的不匹配内容先自动备份成库条目)、SYSTEM.md(替换 Pi 基础提示词)与 APPEND_SYSTEM.md 各有专属编辑器、~/.pi/agent/prompts/*.md 斜杠命令模板管理、Skills 按「存在即启用」规则接入(同名但非 CC Switch 所有的 Skill 拒绝覆盖或删除)、JSONL 会话浏览器,以及设置 → 关于里的 Pi 安装与升级。Pi 没有原生 MCP 注册表,因此刻意不参与 MCP 同步;也没有代理接管、故障转移与托盘存在——代理与故障转移命令现在对所有无本地网关的应用显式拒绝,而不是写下一堆死配置。(#6064

Pi 会话用量进入看板

新导入器读取 Pi 的会话文件,在独立的「Pi (Session)」来源下逐模型记录 token、成本、错误与中断轮次,带专属应用筛选。Pi 每条记录自带成本,为正时优先采用;缺失或全零则回退 CC Switch 的价格表。增量同步对每个文件的尾部做指纹,只解析新追加的字节;被改写或分叉的会话通过新的持久去重账本识别——session_usage_dedup 表,本版 v16 → v17 迁移的由来——该账本在明细行清理后仍存活,且保持设备本地(云同步排除、导入保留)。由于一个 Pi 会话可能混用 Anthropic 系与 OpenAI 系 API,含 Pi 的汇总带「缓存写不完整」的口径标注而非一个未加限定的数字。(#6463

Codex:多个 ChatGPT 账号,逐卡绑定

认证中心可以持有任意数量的 ChatGPT(Codex OAuth)登录。添加 Codex 官方供应商时,直接从已 OAuth 授权的账号里选一个完成绑定——不必先建卡再回头配置;也可以沿用旧方式添加一张不绑定账号的空官方卡,它跟随 Codex CLI 自己的登录、读取本地的 access token。官方卡数量不限,两种方式的卡可以共存,绑定与解绑保留卡的身份、端点与健康历史。切换到绑定卡会把该账号完整的令牌包写入 ~/.codex/auth.json——裸 codex CLI 也以该账号运行,且能在访问令牌过期后自行续期;CLI 轮转过的刷新令牌会在每次写入前被回采,重复切换绝不会用旧登录盖掉新登录。

账号选择器是带标签的下拉框,可直接跳转认证中心;账号状态加载失败时显示带重试的警告而不再冒充「未登录」,也不再在下次保存时静默解绑。登出与移除账号和供应商切换严格互斥;OAuth 请求超时从十分钟收紧到 30 秒;登出还会取消仍在网络往返中的设备登录——被放弃的登录流程无法再在后台悄悄完成并复活账号(#6506)。接管下的请求会对照绑定账号校验:仍以另一个 ChatGPT 账号认证的 Codex 会话会得到「请重启 Codex」的明确报错,而不是静默把账单记到错误账号。(#3879#6535#6506

Codex 模型目录:逐模型思考档位

Codex 供应商表单里的每个模型行现在可以声明其上游真实接受的思考档位——在八个标准档位(none 到 ultra)上多选,外加可选的默认档——生成的目录把它们带进 Codex 的选择器,不再继承基础模板的档位。未知值会被丢弃(笔误永远到不了 Codex),显式默认值会对照声明集校验,覆盖在原生 Responses 与 Chat 转换两条路径上都生效。代理转换层同时学会了 ultra:此前在路由供应商上选最深档会静默关闭扩展思考(Anthropic 路径)或丢掉 effort 参数,现在映射到上游合法的最深档。(#6228#6181

各厂预设按官方文档预填真实思考档位

预设现在带上各厂商实际文档化的档位——火山方舟 low/medium/high、DouBaoSeed minimal 到 high、混元 low/high、DeepSeek low/high/max、xAI Grok low/medium/high(无 none:思考关不掉)、智谱 GLM none/high 等——新建供应商的 Codex 选择器从此以事实起步;对智谱 GLM 来说,「关闭思考」终于能在 Codex 里选到。两个 Kimi 预设按 Moonshot 自家接入指南启用推理强度(顶层 reasoning_effort,只列网关接受的档位),Kimi For Coding 从一个模型扩到四个官方模型。百度千帆 Coding Plan 预设用平台文档化的 thinking 对象获得真实的思考开关。档位一律出自厂商文档或厂商自己的 Codex 目录,并收窄到真正行为有别的档——完全没有依据的模型保持不填。

Claude Code WebSearch 与 Codex Alpha Search 走通本地代理

两条此前在代理上走死胡同的网页搜索路径打通了。Claude Code 内置 WebSearch 工具桥接到 OpenAI Responses 与 Codex OAuth 后端:搜索在上游执行,结果以成对的 Anthropic 搜索块返回、引用保留并合并、搜索次数计入用量。max_uses 在 Responses API 支持处用 max_tool_calls 原生限额;Codex OAuth 后端拒绝该参数,仅在请求强制使用该工具时以流中截断本地限额,未强制却带 max_uses 的请求显式报错。Responses API 无法表达的约束(blocked_domains、非直连调用方、response_inclusion、未知工具版本)同样显式报错,绝不悄悄放宽搜索范围。桥接只覆盖 Responses 转换路径——Chat Completions 上游仍不支持托管 WebSearch。另外,Codex 独立的 Alpha Search 端点注册为语义透传,带完整的供应商选择、鉴权、模型映射、重试与日志流水线,新版 Codex 客户端的 404 就此终结。Claude-in-Codex 路由攻略已三语更新:「GPT 路由下没有网页搜索」在这些路径上不再成立。(#5681#5363#5378

百度千帆 Token Plan 预设

千帆 Token Plan(个人版)——2026 年 7 月起替代 Coding Plan 面向新购用户——获得 Claude Code、Claude Desktop、Codex、OpenCode、OpenClaw 与 Hermes 六个应用的预设,走 /tokenplan/personal 端点。Codex 预设带六模型目录(DeepSeek V4 Pro / V4 Flash / V4 Flash 0731、GLM 5.2/5.1、Kimi K2.6),是首个思考开关与推理强度选择器都真实可用的千帆预设。密钥必须用 Token Plan 订阅的专属 key,而不是通用的千帆应用 key;老的 Coding Plan 预设为存量订阅保留。

模型选择器全面支持模糊搜索

供应商表单里所有「选模型」下拉——Claude Code(含 Copilot)、Claude Desktop 映射行、Codex、Gemini CLI、OpenCode、Hermes、OpenClaw 与 Pi——都换成了可输入过滤的组合框,按模型 id 和厂商名都能匹配,顺手把四份内联重复组件合而为一。对着返回几百个模型的供应商尤其好用。(#6285#6353

其他新增

  • 接管开启确认动画:为当前应用打开路由接管时头部品牌区播放一次性彩带——应用启动、切换应用或系统偏好「减少动态效果」时绝不触发。同一改动补上一个真实缺口:接管开关在初始代理状态加载完成前置灰,对未知状态的点击不再可能把接管拨错方向。(#6209
  • Codex 表单 1M 上下文开关回归:上游 Codex 重新接受 model_context_window = 1000000,四月隐藏的开关(连同配套的自动压缩阈值输入)回来了,写的还是原来那两个 config.toml 字段。
  • 新预设:PPIO(厂商贡献)、JieKou AI(厂商贡献)、XycAi(合作伙伴)分别接入各自支持的应用。(#6239#6356

变更

Codex 官方账号卡退出自动故障转移

官方 ChatGPT 卡不再被加入、列出或经由故障转移队列重试,官方路由上的所有错误类别一律不可重试——对着另一个供应商重试会把入站的 ChatGPT 授权用到别的账号头上。内置官方卡的存量队列行在读取时过滤。官方卡判定也不再只看类别标签:存了真实 API key 或显式第三方上游的卡按普通供应商对待,保留直连路径与故障转移资格。(#3879#6535

Codex OAuth 配额显示逐卡可配置

绑定 ChatGPT 账号的卡获得与脚本类供应商相同的「配置用量查询」入口:配额页脚可以关闭、刷新间隔可改(此前硬编码五分钟且没有关闭开关),对话框的测试按钮查询的是绑定的账号而不是 CLI 恰好登录的账号,托盘也不再给账号绑定卡装饰全局订阅百分比。(#6537

#...

Read more

CC Switch v3.19.2

Choose a tag to compare

@github-actions github-actions released this 06 Aug 04:39

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 条一批提交,批...

Read more

CC Switch v3.19.1

Choose a tag to compare

@github-actions github-actions released this 31 Jul 14:53

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](https://github.com/f...

Read more

CC Switch v3.19.0

Choose a tag to compare

@github-actions github-actions released this 30 Jul 04:27

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"...

Read more

CC Switch v3.18.0

Choose a tag to compare

@github-actions github-actions released this 21 Jul 15:34

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 个归档,检查 / 轮转 / 追加序...

Read more

CC Switch v3.17.0

Choose a tag to compare

@github-actions github-actions released this 13 Jul 16:05

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、别名、新后缀变体和一切未知模型一律 fa...

Read more

CC Switch v3.16.5

Choose a tag to compare

@github-actions github-actions released this 01 Jul 16:17

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_BACKE...

Read more

CC Switch v3.16.4

Choose a tag to compare

@github-actions github-actions released this 27 Jun 05:14

🎉 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

压缩请求体与错误...

Read more

CC Switch v3.16.3

Choose a tag to compare

@github-actions github-actions released this 14 Jun 16:48

🎉 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 / Gem...

Read more

CC Switch v3.16.2

Choose a tag to compare

@github-actions github-actions released this 08 Jun 15:53
955ea26

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 标题时,可能显示选区或打开文件的内容而非真实...

Read more