github farion1231/cc-switch v3.20.2
CC Switch v3.20.2

2 hours ago

CC Switch v3.20.2

这一版仍以 Codex 为主线,但形态从上一版的「一次重设计」变成「一波兼容性修复」:Grok 终于能经 xAI 原生 Responses API 在 Codex 路由下跑通——xAI 拒收的工具 schema、Codex 拒收的整数浮点、多智能体注入的邮箱消息、xAI 不认识的 Codex 角色型号,四道坎逐一拆掉;围绕它的一族「一因一果」修复:Grok OAuth 卡不再被 v3.20.1 的切换闸误拦、接管不再把 Codex 卡在登录屏、GPT-6 走 Codex OAuth 不再报「需要更新 Codex」、Claude Code 在 Codex OAuth 上恢复并行工具调用、内置图片生成走通本地路由、四个 catalog 缺陷(旧版 Codex 拒载、DeepSeek 下 MCP 工具全隐身、视觉型号被判纯文本、Kimi 工具 schema 400)关闭,智谱 GLM 预设改指官方 Responses 端点。用量侧,Codex resume 后统计停摆与代理每轮打断前缀缓存两条硬修复落地。预设阵营新增腾讯云 Token Plan、QwenCloud、AICodeWith 与两家赞助商 9527CODE、SoleAPI,定价表补入七个新模型并做了一轮九月调价。本版不含数据库迁移。

English → | 日本語版 →


重点内容:你现在可以

  • 在 Codex 里经 xAI 原生 Responses 跑 Grok#6917,修复 #6815):xAI 拒收的 Codex Desktop 工具 schema 被折叠、Grok 回传的整数浮点被改写、多智能体子任务的 agent_message 被翻译成普通消息、gpt-5.6-sol 一类角色型号被映射到你配置的 Grok 模型——子智能体不再 422,工具调用不再被拒。
  • 正常切换 Grok OAuth 卡、正常接管:v3.20.1 的无密钥安全闸误拦了代理注入令牌的 OAuth 卡;接管在直接切换删除 auth.json 之后不再把 Codex 困在登录屏。
  • 用 GPT-6 走 Codex OAuth 接管#7132):自报的 Codex 客户端版本升到 0.153.4,不再被 ChatGPT 后端以「需要更新 Codex」拒绝。
  • 让 Claude Code 在 Codex OAuth 上并行调用工具#7024,修复 #5719):parallel_tool_calls 默认改为 true,每轮不再只允许一个工具调用。
  • 在 Codex 路由下使用内置图片生成与编辑#7036,修复 #5429#6745):/images/generations/images/edits 两条路由经本地代理透传,用量按 token 记账。
  • 在 DeepSeek 原生预设下看到 MCP 工具#6653,修复 #6647):catalog 不再声明 DeepSeek 不支持的 tool_search,MCP 工具直接列出。
  • Codex 桌面端经本地代理接 Kimi/Moonshot 不再必现 400#6863,修复 #6867):带兄弟关键字的 $ref 只对 Moonshot 域名改写成 allOf,其他供应商的 schema 逐字节不变。
  • 让智谱 GLM 在 Codex 直连#6957,修复 #6944):预设改指官方 Responses 端点 /api/v1、默认 glm-5.3,存量卡需重新导入。
  • resume 之后用量继续累计#6905,修复 #6904):回退过的线程再 resume 时写入的双 UUID rollout 文件不再被永久搁置,积压用量自动回填到原日期。
  • 在 OpenAI 格式上游重新命中前缀缓存#6941,修复 #6789):Claude Code 每轮注入的中途 system 消息不再被合并到对话开头,DeepSeek、GLM、Kimi 一类端点的缓存命中率不再从 99% 掉到 20%。
  • 一键添加新供应商:腾讯云 Token Plan(六应用,#7011)、QwenCloud(七应用,#6214)、AICodeWith(八应用)、赞助商 9527CODE 与 SoleAPI(九应用);Pi 补齐腾讯 TokenHub / Token Plan(#7159)与 PPIO(#6870)。
  • 看到 Fable 5.1 / Mythos 5.1、GPT-6 Astra、GLM-5.3、Gemini 3.8 Flash 的真实成本:此前这些请求按 $0 记账;Sonnet 5 按 Anthropic 转正口径改回 $2/$10。
  • 再次看到 Hermes 的升级按钮:最新版本改读 GitHub Releases,不再永远停在 PyPI 的 0.19.0。

使用攻略

  • 添加供应商:新增预设的导入入口,以及「预设改动只影响新建供应商」的含义。
  • 请求路由:Grok 经 xAI 原生 Responses、Codex 图片端点透传都走这条路径。
  • 用量统计:定价表回填与 resume 积压用量的记账口径。

Warning

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

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

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

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


概览

v3.20.1 之后的开发依旧由 Codex 领衔,但这一次是一波兼容性修复而不是一次重设计。最长的一条线是 Grok:xAI 的原生 Responses API 在几处与 Codex 的假设相左——它在采样前就拒收 Codex Desktop 的工具 schema、Grok 回传的 JSON 整数带小数点而 Codex 的解析器拒收、Codex 多智能体模式注入的 agent_message 邮箱项 xAI 无法反序列化、Codex 自己的角色型号(如 gpt-5.6-sol)xAI 直接 404。本版把这四道坎在同一个原生 Responses 闸门后逐一拆掉,Grok 终于能在 Codex 路由下完整工作,包括子智能体。

围绕它是一族「一因一果」的修复:v3.20.1 引入的无密钥安全闸误拦了代理注入令牌的 Grok OAuth 卡;直接切换删掉 auth.json 之后再开接管,Codex 会被过时的 requires_openai_auth = true 困在登录屏;GPT-6 走 Codex OAuth 接管被后端以客户端版本过旧拒绝;Claude Code 在 Codex OAuth 上被强制串行调用工具;内置图片生成在本地路由下 404;四个 catalog 缺陷——旧版 Codex 拒载 catalog、DeepSeek 预设下 MCP 工具全部隐身、DeepSeek 视觉型号被判纯文本、Kimi 工具 schema 必现 400——各自关闭;智谱 GLM 预设从 Chat 端点改指官方 Responses 端点。用量侧两条硬修复:Codex resume 之后统计静默停摆,以及代理把 Claude Code 每轮注入的中途 system 消息合并到开头、打断上游前缀缓存。

预设库新增腾讯云 Token Plan、QwenCloud、AICodeWith 与赞助商 9527CODE、SoleAPI,Pi 补齐腾讯与 PPIO;定价表补入七个新模型行并按各厂商九月官方价页做了一轮调价。本版不改数据库 schema。

发布日期:2026-09-07

更新规模:52 commits | 71 files changed | +10,483 / -573 lines


新功能

新增预设

腾讯云 Token Plan(六产品 × 六应用,#7011)、QwenCloud(三计划 × 七应用,#6214)、AICodeWith(八应用)与两家赞助商 9527CODE、SoleAPI(九应用)加入预设库;Pi 补齐腾讯 TokenHub / Token Plan(#7159)与 PPIO(#6870)。存量供应商不受影响;需要重新导入的情形见升级提醒。

七个新模型的定价行

Claude Fable 5.1 与 Mythos 5.1:$10/$50 每百万,缓存读 $0.25、缓存写 $12.50(#7051,修复 #7050)——此前没有行,这些请求一律按 $0 入账,因为前缀规则只找更长的带日期 id、无法回落到 claude-fable-5;GLM-5.3:$1.40/$4.40,缓存读 $0.26,与 Z.ai 官方价一致(#6591);GLM-5.3 Flash:$0.15/$0.50,缓存读 $0.03(#7163);GPT-6 Astra:$10/$50,缓存读 $1、缓存写 $12.50,low/medium/high/xhigh 后缀回落到基础行(#7162);Gemini 3.8 Flash:$0.75/$3.75,缓存读 $0.075,无缓存写费(#7164);Qwen3.8 Flash:$0.15/$0.47,1M 窗口内不分档,缓存读/写 $0.016/$0.20。全部只是 seed 行、不改 schema;存量安装下次启动即拿到,启动时的成本回填会把这些 id 此前按 $0 记录的历史行补上价格。


变更

2026 年 9 月定价刷新

Sonnet 5 改回 $2/$10——Anthropic 价页现已注明介绍价即标准价、9 月 1 日涨到 $3/$15 的计划不再执行——并带一条守卫修复:仍是 seed 值 3/15/0.30/3.75 的安装被纠正,用户自定义过的行不动(#7051)。GPT-5.6 Sol、裸名 gpt-5.6 及其五个档位后缀行同步从 $5/$30(缓存读 $0.50、写 $6.25)降到促销价 $4/$20(缓存读 $0.40、写 $5),至少持续到 2026-11-21。Gemini 3.6 Flash 从 $1.50/$7.50/$0.15 降到与 3.8 Flash 相同的介绍价 $0.75/$3.75/$0.075,至 2026-12-31。MiniMax M2、M2.1、M2.5 统一为官方按量价 $0.30/$1.20,缓存读 $0.03、缓存写 $0.375——后者此前记为零。每项调价都是 seed 加一条按旧值守卫的修复条目,追加在既有链条之后,老数据库会逐级经过中间价位。


修复

Grok 经 xAI 原生 Responses API 在 Codex 路由下跑通

一组贡献者提交关闭了原生 Responses 通往 xAI 路径上四个互相独立的故障。xAI 在采样前就拒收 Codex Desktop 的内置工具 schema,于是请求路径上折叠根级 oneOf/anyOf 函数参数(#6815),各分支的 required 取交集而不是并集,压平后的 oneOf 不会强求所选分支没有的字段。Grok 回传的 JSON 整数带小数点,Codex 的解析器拒收为整数,于是已完成 function_call 参数里的整数浮点被改写(恰好 2^64 现在直接拒绝而不是静默改写差一)。Codex 多智能体模式注入的 agent_message 邮箱项 xAI 无法反序列化,每个子任务在任何工具运行前就 422,于是这些项被改写成普通 user 消息、加密内容压平为文本。xAI 对 Codex 的角色型号(如 gpt-5.6-sol)直接 404,于是未知的请求模型被映射到供应商配置的模型(catalog 里的 grok-4.5 一类与任何 grok 前缀 id 原样放行),且映射先于清洗执行,落到 grok-4.5 上的子智能体也会被剥掉不支持的采样字段。全部逻辑收在一个原生 Responses 闸门后的独立模块里,便于在上游覆盖同样场景之前 rebase 或 cherry-pick。grok-4.5 的 xAI 预设现在声明 low/medium/high/xhigh:2026-08-30 实测该端点接受这四档、对 max 报 HTTP 400,而 Codex 不会把目录外的档位夹回范围。(#6917

切换到 Grok OAuth 的 Codex 卡不再被拒绝

v3.20.1 的 config-only 切换重构把无密钥安全闸推广到所有写入路径,误伤了代理托管的 OAuth 卡(xAI Grok OAuth):它们本来就无密钥——本地代理逐请求注入真实令牌——但预设快照继承了 0.149 之前模板的 requires_openai_auth = true,安全闸把它当作「会回落到官方登录」而拒绝切换。修的是快照而不是给闸门开例外:对代理注入的 OAuth 供应商(xAI OAuth 与 GitHub Copilot;Codex OAuth 刻意排除,官方登录就是它的凭据)在活跃自定义表上把该标志强制为 false,挂在共享的有效供应商构建器里,预检、普通写入与代理备份/接管投影看到同一形状,Codex 0.149 无需读 auth.json 即判定为未鉴权。预设源头现在就输出 false,存量卡在下一次切换时自愈。

接管不再把 Codex 困在登录屏

「非接管切换时保留官方登录」关闭(默认)时,直接切换到第三方供应商会删除 ~/.codex/auth.json;此后再开启代理接管,config.toml 从存量卡重建,而卡上仍带 0.149 之前的 requires_openai_auth = true,于是 Codex ≥ 0.149 即使已有代理占位 bearer token 也停在登录屏——接管中执行 codex logout 后热切换也踩同一个坑。接管写入器现在按 Codex 自己会观察到的登录状态戳记活跃自定义表的标志,与直接切换的计划对齐:先按 Codex 的规则解析鉴权模式(显式 auth_mode 优先,其次个人访问令牌、Bedrock API 密钥、Bedrock 访问密钥、OPENAI_API_KEY、ChatGPT)再核对凭据,紧邻过期 API 密钥的 Bedrock 凭据永远不会被抬举为 OpenAI 登录;先判定凭据存储再碰 auth.json——keyring 与 auto 存储无法从磁盘判定、保留卡上原值,ephemeral 存储一律视为未登录,只有 file 存储才读文件,文件缺失、不可读或损坏都视为未登录且不再让接管写入失败。代理注入的 OAuth 卡无论磁盘上是什么都保持中和后的 false;官方透传与托管官方分支不动。

重复的托管 ChatGPT 账号会被拒绝

普通托管账号登录若 ChatGPT workspace 稳定用户身份(id_token 的 subject)同时匹配已有账号,会以本地化提示拒绝而不是新建第二行。检查在存储锁内执行,并发完成的登录无法漏进重复;刷新锁现在只在定向重鉴权时获取,被拒的添加不会留下锁条目。同一 workspace 的不同用户仍可并存。(#7061

GPT-6 走 Codex OAuth 接管不再被拒为「需要更新 Codex」

Claude 转 Codex OAuth 路由上的 gpt-6-astra 请求自报 Codex 0.144.1,低于该模型 0.153.0 的最低客户端版本,ChatGPT 后端回 HTTP 400。自报版本升为 0.153.4,originator 与版本常量在生成与模型发现之间共享——后者此前发的是 cc-switch 自己的包版本与 originator。(#7132,关联 #7129

Claude Code 在 Codex OAuth 上恢复并行工具调用

来自 Anthropic 的请求没有显式给值时,Codex OAuth 请求把 parallel_tool_calls 默认为 false,迫使 Claude Code 每轮只能调用一个工具。默认改为 true(与 codex-rs 一致),Anthropic 的 tool_choice.disable_parallel_tool_use 映射为 Responses 侧的反值,显式串行仍被保留。接力自 #5722。(#7024,修复 #5719

Codex 内置图片生成在路由下可用

Codex 的 ImageGen 工具调用旧版 OpenAI Images API,而本地代理只注册了 Responses、Chat Completions、Compact 与 Alpha Search 路由,/v1/images/generations 返回空 404。generations 的别名(裸路径、/v1/v1/v1/codex/v1)现在作为与 Alpha Search 共用的 Codex 独立透传转发,Alpha Search 的完整 URL 改写被泛化为从完整的 Responses/Compact/Chat URL 推导兄弟 Images URL(已有 Images URL 原样保留,不透明的完整 URL 关闭失败),响应里的输入/输出 token 经 Codex 用量解析器记账。后续一笔补上 /images/edits——ImageGen 一旦引用已有图片(显式路径或最近生成的 N 张)就切换到它,此前仍打到空路由;两条路由共享一张后缀表,把任一条配成完整 URL 的供应商都能推导出另一条。(#7036,修复 #5429#6745

旧版 Codex 重新能加载 catalog

Codex 0.144.5 到 0.148.0-alpha.15 把 supports_parallel_tool_calls 声明为 catalog 必填字段,而上游 2026-08-14 已把它从模型信息里删除——新版刷新的 models_cache.json 没有该字段,从它克隆出的 ProxyChat catalog 被同机的旧版 Codex 以「missing field」拒载。该字段加入必填回填清单、从内置 gpt-5.5 模板取值(true);已有值绝不覆盖,新版对多余键视而不见。用真实二进制验证:旧 catalog 被 0.147.0 与 0.148.0-alpha.15 拒绝,新 catalog 在两者与 0.148.0 上都能加载。(#6666,修复 #6661#6709

DeepSeek 原生预设下 MCP 工具重新可见

内置的官方 catalog 为 deepseek-v4-pro 与 deepseek-v4-flash 声明了 supports_search_tool = true,而 Codex 用这个标志决定是否把 MCP 工具延迟到 tool_search 之后——DeepSeek 的 Responses API 根本不提供 tool_search,于是所有 MCP 工具被藏起来、一个都调不到。两个模型现在声明 false,Codex 直接列出 MCP 工具;托管 web search 由供应商能力门控而不是这个标志,不受影响,DeepSeek 服务端的联网搜索也照常工作。(#6653,修复 #6647

DeepSeek 镜像 catalog 里的视觉型号不再被判纯文本

内置 DeepSeek catalog 里没有的型号会克隆旗舰条目、继承它的纯文本输入模态,deepseek-v4-flash-vision-exp 一类视觉型号因此失去图片输入。未匹配的型号现在与非厂商路径一样经注册表解析模态、失败即放行;用户显式设置的模态仍优先,匹配到的型号逐字保留厂商声明。另外 glm-5.3 加入已确认纯文本清单,其 [1M] 变体被识别、glm-5.3v 不受波及(#6851)。(#6750,修复 #6725

Codex 桌面端经本地代理接 Kimi/Moonshot 不再因工具 schema 必现 400

Moonshot 的 Chat Completions 校验器(api.moonshot.cnapi.moonshot.ai 与 Kimi For Coding 端点 api.kimi.com)拒收带兄弟关键字的 $ref,而 Codex Desktop 的内置工具 schema 正是这种形状——经本地代理路由到 Kimi 的每一轮桌面请求都失败。解析出的上游域名是 Moonshot/Kimi 时,Responses 转 Chat 之后每个带兄弟键的 $ref 被移入 allOf、兄弟键留在原位;遍历只进入 schema 值的关键字,改写幂等。其他供应商的工具 schema 逐字节不变,Codex 转 Anthropic 路径不动——Moonshot 的 Anthropic 兼容端点接受原始形状。(#6863,修复 #6867

智谱 GLM 的 Codex 预设改指官方 Responses 端点

智谱每个站点文档写明三个 Base URL——Anthropic /api/anthropic、Chat /api/coding/paas/v4、Responses /api/v1——并警告用错端点无法消耗 Coding Plan 额度;Codex 直连说的是 Responses,而 400 unknown variant custom 正来自 Chat 端点那个严格的旧网关。「Zhipu GLM」与「Zhipu GLM (en)」预设改为 /api/v1 上的原生 Responses(shell 命令式编辑、不发 freeform apply_patch),并镜像官方模型列表:glm-5.3(1M 窗口,low/high/max,默认 max),国内站另有 glm-5-turbo;glm-5.2 与 none 档被删。一条域名回退让「保存时还是 Chat 格式、但 Base URL 已是原生 Responses」的行无需重存即拿到 Responses catalog(Chat 端点路径排除在外);厂商域名按 DNS 标签边界匹配,z.ai 不再误捕 xyz.aibigmodel.cnz.aiglm 前缀加入 Codex 托管 web search 的拒绝清单。(#6957,修复 #6944

Codex resume 之后用量不再停摆

线程被回退(revert)时,Codex 会新建一个带两个 UUID 的替换 rollout 文件(rollout-<ts>-<threadId>_<rolloutId>.jsonl),此后该线程的每次 resume 都追加到它;文件的根元数据保留原线程 id,而导入器的一致性校验只拿它对比文件名末尾的 UUID——这类文件被永久搁置,用户 resume 该线程起用量就静默停止累计(现场复现:152 条未导入的 token 计数事件,搁置警告每 60 秒一轮重复)。校验现在也接受与双段文件名前置 UUID 匹配的元数据 id;单 UUID 文件名维持严格校验,从未回退过的普通会话从来不受影响。这类文件存入的会话 id 改为前置的逻辑线程 id——会话列表以它为键——而不是末尾的 rollout id;末尾 id 继续充当 request id 前缀,避免同一线程多个分段的去重键碰撞。(#6905,修复 #6904

前缀缓存不再每轮被打断

Anthropic 转 OpenAI 的转换把所有 system 消息合并到对话开头,而 Claude Code 每轮都把 <total_tokens> 元数据作为一条中途 system 消息注入——合并让前缀每轮都变,上游的 radix 前缀缓存形同虚设。顶层 system 块仍合并为一条开头的 system 消息(跨轮字节稳定),消息列表里的 system 消息现在留在原位、不合并不重排。报告者在 DeepSeek、GLM、Kimi 一类 OpenAI 格式端点上实测,命中率曾因此从 99% 掉到 20%。(#6941,修复 #6789

Hermes「最新版本」改读 GitHub Releases

工具面板此前问的是 PyPI,而上游 0.19.0(2026-07-20)之后就停止在那里发布、只走 GitHub Releases——用户看到的「最新 0.19.0」永远不变、常常低于已装版本,升级按钮从不出现。PyPI 从来不是 cc-switch 安装或升级 Hermes 的渠道(官方安装脚本与 hermes update 都走 git),探测现在先查 GitHub Releases,仅在 GitHub 不可达或限流时回退 PyPI。语义化版本从发布名(Hermes Agent v0.21.0 (v2026.8.31))解析,因为 tag 是日历版本;两条路径都拒绝日历数字,2026.8.31 永远不会被报成一个永久的「有更新」;本地版本已领先时隐藏 PyPI 回退值;两个探测都加 15 秒超时,不再沿用共享客户端的 600 秒——那曾在 api.github.com 挂起时卡住 Hermes 卡片与刷新/全部升级按钮。(关联 #6475#6618#7033;取代 #6621

接管模式下 Claude Code 的模型菜单出现 Opus 5 与 Sonnet 5

接管写给 Claude Code 的稳定角色别名从 claude-opus-4-8/claude-sonnet-4-6 换成 claude-opus-5/claude-sonnet-5,与早已迁移的 Claude Desktop 默认路由和预设默认值对齐。opus-5 加入自适应思考分类器,在模型映射之前按客户端别名运行的 Bedrock 思考优化器继续发自适应思考而不是已被移除的 budget_tokens。路由不受影响——代理按角色关键字映射客户端别名——别名在代理下次启动时自动改写。(#5882,修复 #5876

PPIO、JieKou 与 Novita 的 Claude 预设能「获取模型」了

三家都在一个路径下提供 Anthropic 兼容 API、却把 OpenAI 兼容的模型列表挂在 /openai/v1,从 Base URL 推导的每个候选都 404,模型发现从未成功过。三张预设现在各钉一条显式的模型列表地址,表单在获取时按卡片的 Base URL 反查取用——仍在预设默认地址上的存量卡无需任何改动即生效;JieKou 一条把错误行为锁死的测试被删除。(#6870 及后续)

杂项修复

  • Claude 会话列表不再出现幽灵「journal」会话:Claude Code 的 workflow 功能把 journal.jsonl 写进会话目录,扫描器只排除了 agent-* 文件,每个 journal 都被解析成一条标题为「journal」的空会话。(#6043,修复 #6042
  • 检查更新失败时显示真实原因:更新插件以纯字符串拒绝,instanceof Error 判断永远不成立,真正的失败原因(网络错误、限流、清单畸形)被通用兜底文案替换、还停在一个无人读取的状态里;恢复出的信息现在直达失败提示。(#6482
  • 代理地址脱敏不再因多字节字符崩溃:代理 URL 解析失败时的回退分支在第 20 字节硬切,多字节 UTF-8 字符跨过该偏移就 panic——往全局代理地址里粘一段中文即可触发;切点现在对齐字符边界。(#6908
  • Pi 的重复键错误与折叠标签显示文案而不是原始 key:Pi 后端的重复键错误映射到的翻译键在四种语言里都不存在,思考映射折叠按钮的无障碍标签同样缺失;两者补齐 zh/en/ja/zh-TW 并由语言覆盖测试锁定。(#6768
  • 屏幕阅读器能读出纯图标控件的名称:仅图标的返回按钮、顶栏本地路由开关、项目切换弹层、Claude JSON 编辑器与已有 Skills 的导入复选框现在都带程序化名称,尽量复用既有文案,另加两条短标签。(#7049,修复 #7048
  • 用量趋势图 Token 轴改用本地化紧凑格式:刻度此前固定为「数值/1000 加 k」,大数据日显示成 1500k;现在按语言环境的紧凑记法(1.5M)显示,轴宽相应调整。(#7016
  • 定价来源下拉框放得下本地化文案:用量成本设置表里的定价模型来源选择器只留约 70 px 给标签,英文与日文需要约 107 px;已加宽并与相邻输入框对齐高度。(#6980

升级提醒

本版不含数据库迁移

schema 版本保持 18,不产生迁移备份。

预设改动只影响新建的供应商

存量卡片保存的是创建时的快照。本版涉及:智谱 GLM 预设(存量智谱 Codex 卡仍指向 Chat 端点、直连依旧失败——重新导入预设即可拿到 /api/v1)、腾讯 Pi 预设的思考控制(重新导入才有真正生效的「off」与修正后的 Kimi 档位)、grok-4.5 的 xhigh 档、以及腾讯预设里 minimax-m2.5 的移除。PPIO、JieKou 与 Novita 的模型列表地址是例外:表单按卡片的 Base URL 反查预设,仍在默认地址上的存量卡无需改动。

Codex catalog 类修复在下一次切换供应商时生效

catalog 文件在切换时重新生成:DeepSeek 的 MCP 可见性(#6653)、supports_parallel_tool_calls 回填(#6666)、视觉模态(#6750)与 glm-5.3 纯文本条目(#6851)都属此类。在受影响的卡上切走再切回一次即可。

Codex OAuth 接管现在自报 Codex 0.153.4

无需配置。若你绕过 cc-switch 直接使用 Codex CLI,GPT-6 需要你本机的 Codex ≥ 0.153.0。

认证中心里已存在的 ChatGPT 账号不能再重复添加

同一用户、同一 workspace 再次添加会被拒绝,请改用该账号行上的「重新登录」。同一 workspace 的不同用户仍可并存。

Grok OAuth 卡在下一次切换时自愈

requires_openai_auth 标志会被回填为 false,无需重新添加。

接管写入时 requires_openai_auth 按 Codex 的凭据存储覆盖

活跃第三方表上的该标志现在在每次接管写入时按 Codex 会观察到的登录状态覆盖:file 存储(默认)跟随 auth.json 是否持有官方登录;ephemeral 存储下 Codex 每次启动都是未登录,标志写为 false;keyring 与 auto 存储无法从磁盘读出登录状态,卡上原值保持不动。

被 resume 停摆的用量会在下一次扫描时补入

补入的条目按实际发生日期入账,那几天的看板总数可能跳升。回退过的线程从现在起会话 id 记录正确;此前按 rollout id 写入的行不做改写。

定价

Sonnet 5 的守卫只纠正仍是 seed 值 3/15/0.30/3.75 的行;自定义过的 Sonnet 5 行不动,历史 Sonnet 5 费用不会重算——费用在记录时冻结,回填只补按 $0 记录的行(Fable 5.1、GLM-5.3、GLM-5.3 Flash、GPT-6 Astra 与 Gemini 3.8 Flash 的历史因此被补价)。MiniMax M2 系列新增此前为零的缓存写价格,这部分费用往后会上升。GPT-5.6 的促销价(至少到 2026-11-21)与 Gemini 3.6/3.8 Flash 的介绍价(到 2026-12-31,之后 $1.50/$7.50/$0.15)都有到期日,而定价表表达不了日期,后续版本会重新 seed。

经 Codex 路由的图片生成按 token 计数、暂无内置定价

图片模型还没有定价行,在补上之前其费用显示为 $0。

Hermes 版本探测降级时显示「未知」

GitHub 不可达且 PyPI 回退值低于你已安装的版本时,显示「未知」而不是误导性的「最新 0.19.0」。

中途 system 消息现在原位转发

发往 OpenAI 格式上游的中途 system 消息不再被合并到开头,这正是前缀缓存命中恢复的原因,也与 Claude Code 原生发送的形状一致。两点连带影响:升级后第一轮请求的前缀字节会变化,缓存一次性重冷后即恢复;而要求 system 消息必须全部位于开头的严格后端(#1881 里 Nvidia、Qwen 一类端点,报 System message must be at the beginning)在中途 system 消息出现时会重新 400——原来的合并逻辑正是为它们引入的,前缀稳定与严格后端校验在同一个全局行为里无法兼得。如果你的上游属于后者,请在 issue 里反馈。


风险提示

沿用的提示

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 不对因使用这些功能而导致的任何账号限制、警告或服务暂停承担责任。


致谢

本版 52 个提交里有 36 个来自 26 位外部贡献者。

代码贡献

  • 感谢 @loocor:Grok 经 xAI 原生 Responses 的整条主线(#6917)——工具 schema 折叠与整数浮点改写、agent_message 邮箱项改写、子智能体未知型号映射、闸门收敛与 CI 清理,六个提交。
  • 感谢 @szupzj18:三条 Codex catalog 修复——DeepSeek 的 MCP 可见性(#6653)、supports_parallel_tool_calls 回填(#6666)与未知型号的输入模态(#6750);Moonshot $ref 兄弟键的修法他也更早在 #6627 尝试过。
  • 感谢 @yovinchen:GPT-6 Astra、GLM-5.3 Flash 与 Gemini 3.8 Flash 三条定价(#7162#7163#7164)。
  • 感谢 @thisTom:Codex 图片生成端点透传(#7036)与用量趋势图的紧凑轴标签(#7016);同一透传 @Komikawayi 更早在 #5484 提出过修法。
  • 感谢 @zmq1121:腾讯云 Token Plan 六产品×六应用的预设(#7011),端点与思考开关全部真实密钥实测。
  • 感谢 @2691176649-cloud:Pi 的腾讯 TokenHub / Token Plan 八条预设与思考控制声明(#7159)。
  • 感谢 @SaladDay:重复托管账号的拒绝(#7061),拆自他自己报告的 #7055
  • 感谢 @RemindZ:Codex OAuth 客户端身份对齐 GPT-6(#7132),首次投稿。
  • 感谢 @liqimore@li-keli:Codex OAuth 并行工具调用(#7024,接力自 #5722@li-keli 同时是 #5719 的报告者)。
  • 感谢 @czhmartinez:Moonshot/Kimi 的 $ref 兄弟键改写(#6863);同一问题 @jacker-son#5125)与 loulanyue(#6869)也各自提出过修法。
  • 感谢 loulanyue:智谱 GLM 预设改指官方 Responses 端点(#6957)。
  • 感谢 @htyvista:中途 system 消息原位保留、前缀缓存修复(#6941,修复 #6789)。
  • 感谢 @3351163616:Codex resume 后用量停摆的修复(#6905),自报自修 #6904
  • 感谢 @Eureka0w0v0:Fable 5.1 / Mythos 5.1 定价与 Sonnet 5 改回标准价(#7051),自报自修 #7050,首次投稿。
  • 感谢 @nightcityblade:接管别名升级到 Opus 5 / Sonnet 5(#5882)。
  • 感谢 @hu-miao:PPIO 扩展到 Pi 与 Claude 预设的模型列表地址(#6870),自报自修 #6868
  • 感谢 @arichyx:GLM-5.3 定价(#6591)。
  • 感谢 @teddyli18000:glm-5.3 纯文本标记(#6851),首次投稿。
  • 感谢 @jintonglu6688:无障碍名称补齐(#7049),自报自修 #7048,首次投稿。
  • 感谢 @SailingLoong:检查更新失败显示真实原因(#6482),首次投稿;Hermes 版本源的问题也由他在 #6621 率先提出修法。
  • 感谢 @nasymonk:幽灵「journal」会话(#6043),自报自修 #6042
  • 感谢 @xu-kai-quan:代理地址脱敏的多字节 panic(#6908)。
  • 感谢 @ntdatt812:Pi 缺失的两条翻译键(#6768)。
  • 感谢 @Chang-Yo:定价来源下拉框宽度(#6980)。
  • 感谢 @wanwan-doudou:测试隔离 LOCALAPPDATA#6078),自报自修 #6077
  • 感谢 @why19970628:README 目录树的翻译路径修正(#6100)。

问题反馈


下载与安装

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

系统要求

系统 最低版本 架构
Windows Windows 10 及以上 x64 / ARM64
macOS macOS 12 (Monterey) 及以上 Intel (x64) / Apple Silicon (arm64)
Linux 见下表 x64 / ARM64

Windows

文件 说明
CC-Switch-v3.20.2-Windows.msi 推荐 - MSI 安装包,支持自动更新
CC-Switch-v3.20.2-Windows-Portable.zip 便携版,解压即用,不写入注册表

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

macOS

文件 说明
CC-Switch-v3.20.2-macOS.dmg 推荐 - DMG 安装包,拖入 Applications 即可
CC-Switch-v3.20.2-macOS.zip 解压后拖入 Applications,Universal Binary
CC-Switch-v3.20.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.20.2-Linux-x86_64.AppImage / .deb / .rpm
  • CC-Switch-v3.20.2-Linux-arm64.AppImage / .deb / .rpm
发行版 推荐格式 安装方式
Ubuntu / Debian / Linux Mint / Pop!_OS .deb sudo dpkg -i CC-Switch-*.debsudo apt install ./CC-Switch-*.deb
Fedora / RHEL / CentOS / Rocky Linux .rpm sudo rpm -i CC-Switch-*.rpmsudo dnf install ./CC-Switch-*.rpm
openSUSE .rpm sudo zypper install ./CC-Switch-*.rpm
Arch Linux / Manjaro .AppImage 添加执行权限后直接运行,或使用 AUR
其他发行版 / 不确定 .AppImage chmod +x CC-Switch-*.AppImage && ./CC-Switch-*.AppImage

Don't miss a new cc-switch release

NewReleases is sending notifications on new releases.