Repository navigation
Releases: farion1231/cc-switch
Release list
CC Switch v4.0.9
CC Switch v4.0.9
4.0 正式版的第五个修复版本
重新梳理了添加供应商的整个流程:表单按填写顺序排列,地址和 Key 之后就是模型列表;点「获取模型列表」后弹窗自动打开,每个模型的上下文窗口、是否支持推理和图片输入都已经查好,勾选后点「应用」就连同参数一起加进列表,同一个弹窗里取消勾选就能移除;字段说明收进「?」,提示会按应用当前是直连、路由还是聚合来显示。另外修复了 Codex 新建线程和自动化在部分上游报错、整个线程无法继续的问题:经路由转成 Chat 协议的 DeepSeek、OpenCode Zen 等报 400,xAI 原生 Responses 报 422。WSL2 里的 Claude Desktop 等连不上本机回环的客户端,现在可以在「设置 → 本地路由」填一个「连接地址」。4.0 完整的更新内容请见 v4.0 发布说明。
重新梳理的供应商添加流程
这一版把添加和编辑供应商的表单从头到尾理了一遍,主要是 Claude Code、Codex 和聚合三种布局。以前模型列表收在高级选项里,排在它所决定的默认模型后面;获取到的模型只能在列表下方逐个添加,加完还要逐个核对自动填好的参数;几乎每个字段下面都有一段灰字,有些提示和你实际所处的模式对不上。现在按填写顺序走一遍:
1. 地址、Key 和上游格式。 先选预设或填地址和 Key。选上游格式时,提示按应用当前的模式显示:应用处在直连模式时,如果选的格式需要转换,格式下面会提示这张卡正在直连使用、改成这种格式保存后请求会失败,或者这种格式要先切到路由或聚合才能用。Claude Code 的上游格式选 OpenAI Chat 或 Responses 时,不再显示用不上的认证字段。
2. 模型列表:获取、挑选、自动填参数。 Codex 的模型列表从高级选项里挪了出来,紧跟在地址和 Key 后面,和聚合布局一样叫「模型列表」。Claude Code 聚合、Codex、OpenCode 和 MiniMax Code 的模型列表现在这样添加模型:
- 点模型列表上的「获取模型列表」。
- 获取成功后「选择模型」弹窗自动打开。每个模型旁边已经显示好上下文窗口,以及是否支持推理和图片输入,数值来自同地址的预设,其次按供应商地址查 models.dev,再其次查模型厂商自己的条目。
- 勾选想要的模型,点「应用」。新模型追加到列表末尾,参数按弹窗里显示的值直接填好,不再弹「已补全……的上下文等参数,请核对」的提示。
同一个弹窗也负责删除:勾选表示「在列表里」,已配置的模型默认勾选,取消勾选后点「应用」就会从列表移除,点「取消」什么都不改。留下的模型保持原来的顺序和设置。已配置但供应商这次没返回的模型,单独列在「不在供应商列表中」一组,也能一并清理。弹窗支持搜索、全选 / 全不选、只看已选,并显示已选数量;获取过一次后按钮变成「选择模型」,再点不会重新获取,需要时在弹窗里点「重新获取」。
3. 默认模型:列表第一行。 Codex 有模型列表时,第一行就是默认模型,不再单独有一个默认模型输入框;改名或删掉第一行,默认模型跟着变。列表原本为空时,添加模型会自动把当前的默认模型放在第一行,默认模型不会因为加了列表而变掉。没有配置模型列表的卡仍然保留默认模型输入框:这类卡用的是 Codex 自带的 /model 菜单,加上列表后菜单里只会剩下列表里的模型。聚合模型列表也去掉了每行的 ★ 和「设为默认模型」,规则同样是第一行即默认。
4. 子代理(Codex,新增)。 Codex 表单新增「子代理模型」和「子代理推理强度」,对应 config.toml 里 [agents] 下的 default_subagent_model 和 default_subagent_reasoning_effort。留空就删掉对应的键,子代理沿用主代理的设置;切换供应商时这两项跟着换,[agents] 下的其他设置不动。填的模型不在模型列表里时,表单会提示并可以一键加入:不在列表里的模型,Codex 拿不到它的上下文窗口,经路由转成 Chat / Anthropic 协议时还会被换成默认模型。聚合模式下不写这两项,子代理跟随主模型,以免主代理换到另一家的模型后,子代理又被送回默认供应商。
5. 高级选项。 「完整 URL」开关只对端点路径不标准的网关有用,挪进了高级选项;已经打开它的卡,编辑时高级选项会自动展开。User-Agent 和请求覆盖合成一块,统一注明只在路由和聚合模式下生效。
贯穿整个表单:说明收进「?」。 字段是什么、什么时候用,放在字段名后面的「?」里;页面上只留需要你注意的后果,比如改了模型列表要重启 Codex、最大输出超过实际上限会报 400。托管账号的卡(Codex、xAI 登录和 Copilot)上,后端本来就不读的字段不再显示;旧版残留字段的提示缩成一句话;Claude Desktop 的模型模式说明改成一句话:供应商提供原生 Claude 模型时用直连,DeepSeek、Kimi 等第三方模型用模型映射。
新增
「设置 → 本地路由」新增「连接地址」。 CC Switch 写进客户端配置的代理地址(包括 Claude Desktop 的网关地址)以前总是按监听地址推导,监听 0.0.0.0 时写的是 127.0.0.1。WSL2(NAT 模式)里的 Claude Desktop 会话访问不到 Windows 的本机回环,所以一直连不上,把监听地址改成 0.0.0.0 也没用。现在把监听地址设为 0.0.0.0,再在「连接地址」里填 WSL 能访问到的 Windows 地址,写给客户端的代理地址就会改用它。保存后会直接改写正在走路由的客户端,不用重启路由服务。这个设置只保存在本机,不会随云同步带到其他设备。
新增预设: SoruxGPT、IKunCode、RunToken、BotCF、YYLX、TokenFlux、OpenModel。
修复
- Codex 新建线程或跑自动化时,DeepSeek 等上游报 400,整个线程用不了。 Codex 桌面版新建线程时会往历史里插入一条没有对应工具调用的工具结果(create_thread 回执)。经路由把 Responses 转成 Chat 协议时,这类结果以前被当成
role=tool消息发出去,DeepSeek、OpenCode Zen 这类严格的 Chat 上游会拒绝这个线程里的每一次请求。现在这类找不到对应调用的工具结果会改成一条带标记的用户消息,里面的图片照常作为图片发送;有对应调用的工具结果和以前完全一样。 - Codex 用 xAI 原生 Responses 时报 422,线程无法恢复。 Codex 桌面版插入的回执(新建线程、自动化更新、心跳、跨线程消息)没有
call_id,xAI 会以「缺少call_id」拒绝整个请求,而回执一直留在历史里,所以这个线程之后都发不出去。现在只在发往 xAI 时,把这类回执改写成带同样标记的用户消息,保留文字和图片;有call_id的条目和其他上游都不受影响。 - Claude Code 的上游格式选 OpenAI Chat 或 Responses 时,路由发出的是
x-api-key。 以前请求头只看 Key 的变量名,用ANTHROPIC_API_KEY的卡会发x-api-key,OpenAI 格式的上游不认。现在 OpenAI 格式一律用Authorization: Bearer,Anthropic 格式仍按变量名决定。 - Claude Code 聚合模式只用默认供应商的兼容开关。 选到其他供应商的模型时,可能发出那家不支持的功能而报错。现在按开关的性质合并所有成员的设置:关闭实验性 beta、Artifact、自动模式服务器这类,只要有一家关就关;工具搜索、始终启用 effort、细粒度工具流式这类,所有成员都开才开。额外请求体、思考和窗口相关的开关仍然跟随默认供应商。
- 启动时界面语言不对,打开设置页后才变回来。 首屏语言读的是浏览器缓存,缓存为空或过期时(比如清过 WebView 数据、把
~/.cc-switch复制到新电脑)会先显示系统语言。现在启动时会读取保存的语言设置并立即应用。 - macOS 上连不上局域网里的 API 地址。 CC Switch 现在会向 macOS 申请「本地网络」权限。第一次连接局域网地址时系统会弹出授权,这次请求可能仍然失败,点「允许」后重试即可。如果以前点过拒绝,需要到「系统设置 → 隐私与安全性 → 本地网络」里打开 CC Switch。
- 打开供应商编辑面板时页面闪一下。 编辑面板以前先打开一个加载页再换成内容;现在等内容准备好再打开,保留和新增面板一样的淡入效果。
其他: Flatpak 构建文档修正了 --bundles 参数的写法,并说明没有签名私钥时怎么跳过更新包。
升级说明
数据库结构没有变化,仍然是 20。新增预设只影响新添加的供应商。
致谢
感谢 @NeeYoonc(Codex 线程里找不到对应调用的工具结果不再导致 Chat 上游报 400)、@allenxu09(本地路由的「连接地址」)、@chivopic(macOS 本地网络权限)、@NestorRay(打开编辑面板时的闪烁)、@zydo(Flatpak 构建文档)的贡献。
感谢 @loulanyue 更早提交了同一问题的修复,感谢 @OriyukiAkari 实测确认 xAI 原生 Responses 也有这个问题。感谢 @Z-Eternal、@xulimeng2022、@flame916、@hej56230-commits、@Soliton1912、@gggjjto、@KinJ、@xue-ding-e 报告问题、提供复现信息和帮忙验证。
完整的技术细节请见 CHANGELOG。
CC Switch v4.0.8
CC Switch v4.0.8
4.0 正式版的第四个修复版本
只装了 Codex 桌面版、没有单独装 Codex 命令行的用户,现在也能用 Codex 聚合模式了。官方模型列表读不到时,提示会写明原因,问题解决后提示也会自己消失。添加和编辑供应商时,「获取模型列表」会带上你配置的请求头,需要额外请求头的网关不会再拒绝。「设置 → 数据」新增「打开日志」按钮。深色模式的文字调暗了一些,不再那么刺眼。4.0 完整的更新内容请见 v4.0 发布说明。
新增
「设置 → 数据 → 应用诊断日志」新增「打开日志」按钮。 点击后会在系统的文件管理器里选中 cc-switch.log;日志文件还没生成时打开日志所在的文件夹。报告问题时可以直接把它附上,不用再去找隐藏的配置目录。
修复
- 只装了 Codex 桌面版时,聚合页提示「读取不到 Codex 模型列表」,聚合模式用不了。 联网获取官方列表失败时,CC Switch 会改用 Codex 命令行自带的模型列表,但以前只在系统路径里找
codex命令。只装桌面版的用户没有这个命令,所以一直失败。现在找不到时会再去用 Codex 桌面版自带的命令行:macOS 上找「应用程序」里的 ChatGPT.app 和改名前的 Codex.app,两个都在时用 ChatGPT.app,避免旧的 Codex.app 给出过时的模型列表;Windows 上找桌面版安装目录里最新的一个版本。单独安装的 Codex 命令行仍然优先。 - 官方模型列表读不到时,提示看不出原因,问题解决后提示也不会消失。 以前所有原因都显示成同一句「读取不到 Codex 模型列表」。现在提示下面会列出具体原因,并告诉你怎么处理:Codex 没有可用的 ChatGPT 登录、登录超过 8 天没有刷新、登录信息不完整、读不到 Codex 版本、联网获取失败、返回的数据不完整;Codex 自带的列表则分为找不到 Codex 命令行、命令行没能输出列表、列表里没有能用的模型。联网失败和命令行失败的详细信息会写进日志。另外,以前换用备用列表后,即使官方列表后来恢复了(比如过期的登录被 Codex 自动刷新),提示也要等你下次手动切换才会消失;现在 CC Switch 会自动换回官方列表,提示随之消失。
- 「获取模型列表」不带你配置的请求头,需要额外请求头的网关会拒绝。 比如 Cloudflare AI Gateway 要求
cf-aig-authorization请求头。现在 OpenCode 供应商会带上它配置的请求头;Claude Code、Codex 和 Grok Build 供应商会带上「Header 覆盖」里填的请求头,格式不对或留空时照常获取。在 Codex 和 Grok Build 的表单里修改「Header 覆盖」后,已经获取的模型列表会清空,避免选到当前身份用不了的模型。 - 深色模式的文字太亮,看久了刺眼。 三档文字颜色都接近纯白,满屏表格和标签时显得很冲,主次也分不清。现在三档都调暗了一些,次要文字在卡片和选中背景上仍然保持足够的对比度。浅色模式没有变化。
其他:
- v4.0.7 发布说明里「压缩 Codex 历史会话」一节补充了怎么打开、什么时候压缩、怎么继续旧会话、CC Switch 里怎么显示和需要注意的地方。
- 英文和日文的额度显示说明、英文、日文和繁体中文的备份提示,改用界面上实际显示的名称。
升级说明
数据库结构没有变化,仍然是 20。
致谢
感谢 @SailingLoong(OpenCode 获取模型列表时带上请求头)、@ggbdpq(Claude Code、Codex 获取模型列表时带上「Header 覆盖」)的贡献。
感谢 @xovow、@YX-bobi、@cydebbb 报告问题和提出建议。
完整的技术细节请见 CHANGELOG。
CC Switch v4.0.7
CC Switch v4.0.7
4.0 正式版的第三个修复版本
同一个 OpenAI 账号下的 Plus 和 Team 工作区,在 4.0 里切不过去,这个版本修好了。额度可以改回 3.x 那样显示「已用」,在「设置 → 通用 → 外观」里切换。Codex 的历史会话可以在 CC Switch 里打开压缩,会话管理和用量统计也能读取压缩后的会话。直连和路由互相切换后,CC Switch 也会提示重启 Codex;Windows 上第一次能看到这条提示。用量统计这次修了几处算错的地方,包括 Claude 1 小时缓存写入的价格和部分中转站的缓存命中。4.0 完整的更新内容请见 v4.0 发布说明。
新增
可以压缩 Codex 的历史会话。 Codex 会把每个会话完整记录在 ~/.codex/sessions 下,用得多的话这个目录会涨到几十 GB。Codex 自己有一个还在开发中的压缩功能,默认关闭;CC Switch 这次加了开关,并且能读取压缩后的会话。
- 怎么打开: 在「设置 → 应用配置 → Codex」打开「压缩 Codex 历史会话」,旁边会显示
sessions和archived_sessions两个目录当前一共占多少空间。这个开关直接改 Codex 的config.toml:打开时写入[features]下的local_thread_store_compression = true,关闭时删掉这一行,CC Switch 不另外保存这个设置。 - 压缩什么时候发生: 打开后不会马上压缩。Codex 每次启动时会在后台把 7 天以上没动过的会话文件压成同名的
.jsonl.zst,再删掉原文件。实测压缩后大约只占原来的六分之一。 - 继续旧会话: 照常在 Codex 里继续就行,Codex 会先把这个会话解压回原来的格式。
- 在 CC Switch 里: 压缩过的会话照常出现在会话列表里,可以查看和删除,用量照常统计,压缩前后也不会重复计算。为了在会话很多时也能很快打开列表,CC Switch 只读压缩文件的开头,所以这些会话不显示最后一条回复的预览,最后活跃时间取文件的修改时间。
- 需要注意: 需要较新版本的 Codex,改完要重启 Codex 才生效。这是 Codex 还在开发中的功能,打开后 Codex 每次启动都会显示一条提示。关闭开关后不再压缩新的会话,已经压缩的会话保持原样,只有在 Codex 里继续时才会被解压。其他直接读取
.jsonl会话文件的工具可能读不到压缩后的会话。
即使不打开这个开关,Codex 的后台服务也可能自己压缩会话。以前 CC Switch 只认未压缩的会话文件,这些会话会从会话列表里消失,用量也不会导入,现在都能正常读取。
额度可以显示「已用」。 4.0 把各档额度都改成了「剩余 x%」,有人习惯 3.x 的「已用 x%」,也有人希望和 Codex 自己的写法一致,所以做成了设置。在「设置 → 通用 → 外观 → 额度显示」选「剩余」(默认)或「已用」,供应商卡片、授权中心和托盘都会跟着变。只有各档的百分比会换,余额、Codex Credits 和重置次数始终显示剩余,用完的档位仍然显示「已用完」。颜色和「快用完」提醒仍然按剩余算,已用 94% 和剩余 6% 一样是橙色。展开后的进度条长度跟着显示的数字走,已用 30% 就画 30%。
直连和路由互相切换后,也会提示重启 Codex。 已经打开的 Codex 还在用启动时读到的模型列表。以前只在聚合模式下检查,直连和路由互相切换后,即使模型列表变了也不会提示。现在三种模式都会检查。关掉提示后如果模型列表又变了,提示会再次出现。
Windows 上也能看到重启 Codex 的提示了。 以前判断 Codex 有没有在运行,靠读系统进程列表,这个方法在 Windows 上用不了,模型列表和账号的提示都不会出现,重启按钮也总是说后台服务没在运行。现在 Windows 上按 Codex 后台服务自己记录的进程号判断它是否在运行,只在确认它在运行时提供重启按钮。CC Switch 在 Windows 上看不到 Codex 桌面版和编辑器插件,所以只要模型列表或登录账号和你上次关掉提示时不一样,就会提示「切换前就开着的 Codex 可能还在用之前的账号或模型列表」;这些客户端没开着的话,直接关掉提示就行。刚升级时不会弹出这条提示。
从应用页菜单打开「配置目录」时,设置页会滚到这个应用的条目,并让它的边框闪两下。滚动途中你自己滚动或点击,会马上停止;系统开启了减少动态效果时直接跳过去。
修复
- 同一个 OpenAI 账号下的 Plus 和 Team 工作区,在 Codex 里切不过去。 4.0 只按用户来认 Codex 的官方登录,同一个人的不同工作区被当成「已经登录了这个账号」,
auth.json不会改写,也不会提示重启。暂存登录信息时也按用户记,同一个人的几个工作区只剩一份。现在按「用户 + 工作区」来认,和 Codex 自己判断账号有没有变的方式一致。升级后会自动整理暂存的登录信息,被合并掉的工作区会从官方卡片里找回来;已经登出的账号不会被恢复。 - Codex 供应商的地址写在
config.toml顶层时,编辑保存会把地址删掉。 这类配置在编辑器里请求地址显示为空,保存后地址被删除,路由报「Codex Provider 缺少 base_url 配置」;直连模式下切过去还会走到 OpenAI 官方地址。现在会把顶层地址整理到[model_providers.custom]里,编辑器能显示,保存也会保留。表单也不再生成这种写法。 - Windows 用户名里有中文等非 ASCII 字符时,在「应用」页升级工具失败,提示「系统找不到指定的路径」。Claude Code 供应商卡片上的「打开终端」也会读不到临时配置,Claude Code 不报错,直接用默认配置启动;项目目录带中文时也一样。原因是 CC Switch 生成的批处理文件按 UTF-8 写入,
cmd.exe却按控制台代码页读。升级脚本现在会先切换到 UTF-8,这一步只在它自己的隐藏窗口里生效;「打开终端」不切换代码页(那会改掉你自己终端的设置),改为不把这些路径直接写进批处理文件。 - Codex 在官方供应商下继续旧的第三方会话时,报错提示让你重启。 Codex 继续会话时会沿用会话创建时的供应商,第三方会话会一直指向本地路由,重启 Codex 也没用。现在报错会说明这是旧的第三方会话,需要新开会话;只有确实是 Codex 没有重新读取配置时,才提示重启。
- Claude 的 1 小时缓存写入按 5 分钟的价格计费。 1 小时缓存写入的单价是输入价的 2 倍,5 分钟的是 1.25 倍,以前一律按 5 分钟算,少算了不少。现在代理日志和 Claude Code 会话导入都会分开计价。
- 部分 OpenAI 兼容中转站的缓存命中显示为 0。 有的中转站把
cache_read_input_tokens固定写成 0,真实命中数放在prompt_cache_hit_tokens里,以前读到 0 就不往下找了,缓存命中显示为 0,未命中的输入也被多算。现在遇到 0 会接着看下一个字段。Claude Code 经路由转 OpenAI Chat 格式、Codex 和 Grok Build 使用 Chat 格式的上游时都按这个规则读。 - Codex 会话导入的用量里没有缓存写入。 GPT-5.6 和 GPT-6 的缓存写入被按普通输入计价,现在会单独记录。
- Claude Sonnet 5.5 和 Haiku 5.5 的费用记为 0。 内置定价表补上了这两个模型。
- 用量统计「Claude」页里,同一个供应商在 Claude Code 和 Claude Desktop 里都配置过时,会出现两行一样的记录,切换应用后还会留下旧的行。
- OpenCode 和 MiniMax Code 的额外选项,编辑其中一项后,其他没动过的值类型会变。 比如字符串
"123"、"false"被存成数字或布尔值。现在没改过的值保持原样,改名时也不能改成已有的名字。 - OpenClaw 打开或关闭「发送 User-Agent」时,其他自定义请求头全被删掉。 现在只改 User-Agent 这一项。
- Pi 和 MiniMax Code 的「火山 Agent Plan」预设用的是 Coding Plan 的地址,Agent Plan 的 Key 用不了。现在改用 Agent Plan 自己的地址,另外新增「火山 Coding Plan」预设。
其他:
- 中文版聚合模式指南和三语用户手册补充了两个 Codex 常见问题:子 agent 换到另一家供应商后读不到任务,以及官方 5 小时额度用完后
/model被锁定在 Luna Reserve,暂时把第三方供应商设为默认可以绕开。 - 「统一 Codex 会话历史」的说明改为只针对 Codex CLI:Codex 桌面版更新后已经能显示所有供应商的会话,只用桌面版的话不需要打开。
升级说明
数据库结构没有变化,仍然是 20。
Claude 的缓存写入费用升级后会变高。 用 1 小时缓存时(Claude Code 主会话通常就是),新记录的缓存写入按正确的价格计算,每天的费用会比升级前高一截。这是以前少算了,不是涨价;升级前的记录不会重算。
Claude Sonnet 5.5 和 Haiku 5.5 以前记为 0 的费用,会在启动时按新价格补算。Haiku 5.5 只按 10 万 token 以内的价格计算,更长的提示词会少算。
已经添加过的「火山 Agent Plan」供应商(Pi、MiniMax Code)不会自动修改,请把请求地址里的 /api/coding/v3 改成 /api/plan/v3,或者删掉后用新预设重新添加。
致谢
感谢 @ggbdpq(中转站缓存命中显示为 0、OpenCode 额外选项类型被改、直连和路由切换后的重启提示)、@Chaoqi31(报告并修复 Claude 1 小时缓存写入计价、Codex 会话导入缓存写入)、@Yanxcyan(Claude Sonnet 5.5 / Haiku 5.5 定价、火山 Agent Plan 预设)、@hulkbig(报告并修复 OpenClaw 自定义请求头被删)、@Railgun-wiki(报告并修复用量统计重复行)、@funkpopo(设置页滚到应用配置条目)的贡献。
感谢 @yleo888、@harvey500、@friendlzw、@burningimlam、@JinLin-Yu、@winter-maple、@SamPheng、@cjmarklll、@LeenixP、@EMnian 报告问题和提出建议。
完整的技术细节请见 CHANGELOG。
CC Switch v4.0.6
CC Switch v4.0.6
4.0 正式版的第二个修复版本
供应商页的页头多了搜索按钮,还能按请求地址查找。Skills 检查到更新后可以一键全部更新,确认前会列出要更新的 Skill。额度数字的绿、橙、红三色回来了,剩余不足 20% 就会变色提醒。Codex 聚合模式下,主 agent 和子 agent 用不同供应商时子 agent 读不到任务,现在可以打开新开关改用经典子 agent 工具。这个版本还修复了 Claude Code 经路由转 OpenAI Chat 格式时最后一段回复丢失、Codex 聚合模式下官方模型消失、托盘看不到火山等 5 小时额度等问题。4.0 完整的更新内容请见 v4.0 发布说明。
新增
供应商页加了搜索按钮。 以前只能按 ⌘F / Ctrl+F 打开搜索,很多人不知道有这个功能。现在「添加供应商」旁边有搜索按钮,除了名称、备注和官网,也能按请求地址查找。关掉搜索框后列表会恢复完整,不会再停在筛选结果上。不需要这个按钮的话,可以在「设置 → 通用 → 侧栏与页头」关掉「显示供应商搜索」,快捷键照样能用。
Skills 一键更新全部。 以前要先检查更新,再把列表筛到「可更新」,再到筛选栏里找「全部更新」。现在检查到更新后,「检查更新」按钮会直接变成「全部更新(N 个)」,确认框会列出每个要更新的 Skill 和它的来源仓库。确认后对话框马上关闭,按钮上显示更新进度。重新检查放到了「…」菜单里。
额度数字的颜色回来了。 4.0 把额度文字都改成了灰色,额度充足还是快用完很难一眼看出来。现在恢复 3.x 的绿、橙、红三色,只给数字上色,档位名称和「剩余」两个字仍是灰色。剩余不足 20% 就会变色提醒(以前是 10%),托盘里的「快用完」也按 20% 算。
Codex 聚合模式可以让子 agent 用经典工具。 Codex 新版的子 agent 工具会把主 agent 交代的任务交给主 agent 所在的服务商加密,子 agent 换到另一家供应商就解不开,只能报错或拿到空任务。在「设置 → 应用配置 → Codex」打开「聚合模式下子 agent 用经典工具」后,聚合里的所有模型改用 Codex 经典的子 agent 工具,任务以明文传递;代价是没有 followup_task、interrupt_agent 等新版功能。开关默认关闭,只影响聚合模式,改完要重启 Codex。开关关闭时遇到这种情况,CC Switch 会直接返回错误说明原因并提示这个开关,不再让子 agent 带着空任务运行,也不再让 Codex 反复重试。
Codex 切换账号后会提示重启后台服务。 Codex 的后台服务不一定会重新读取登录信息,切换账号后可能还在用切换前的账号。以前只有聚合模式下模型列表变了才会提示重启,现在直连、路由、聚合三种模式下切换了账号都会提示,点按钮确认后才会重启后台服务;用 Codex 桌面版或编辑器插件时,提示完全退出后重新打开。
CC Switch 有新版本时,侧栏「设置」上的提示点改成绿色,点「设置」会直接打开「关于」页。「应用」上的工具更新提示点保持原样。
修复
- Claude Code 经路由转换到 OpenAI Chat 格式的供应商时,最后一段回复整段丢失。 有的上游在结束时不发送结束原因,或者发完结束原因后又补了一段内容,转换后的最后一段文字或工具调用没有正确结束,Claude Code 会丢掉这段内容,还会触发重试。
- Codex 聚合模式下,带有网页搜索记录的会话压缩上下文时报 502。 压缩时 CC Switch 会删掉请求里的工具定义,但历史记录里还有网页搜索、函数调用这些工具调用,部分上游会直接拒绝这样的请求。现在压缩时保留工具定义,并要求模型这一轮不调用工具。
- Codex 聚合模式下,官方账号设为默认后,
/model里只剩第三方模型。 CC Switch 按 PATH 里codex命令的版本去拉官方模型列表,官方对 0.140 及更早的版本只返回隐藏的模型。只用 Codex 桌面版的用户 PATH 里常常留着旧版命令行,官方模型就全被隐藏了。现在按本机实际在用的最新版本去拉(命令行、桌面版、编辑器插件都算)。如果拉到的列表里没有可显示的模型,会改用 CC Switch 自带的列表,并提示升级 Codex。 - Codex 用路由转 Chat 格式的第三方供应商或 GitHub Copilot 时,模型目录会跟着官方条目的改动变化。 以前 CC Switch 照着 Codex 本地缓存的官方 gpt-5.5 条目生成这类模型的目录,官方每次改这个条目(比如设为隐藏、换成新的工具形态)都会带到第三方模型上;缓存还写明 GPT-5.5 将在 10 月 14 日下线,下线后每次切换都要额外启动一次 Codex 命令行。现在一律使用 CC Switch 自带的模板。
- 删除托管的 ChatGPT 账号或全部登出后,绑定这个账号的 Codex 供应商无法切换。 这些供应商还指着已删除的账号。现在删除或登出时会一起解除绑定,供应商改为跟随 Codex 自己的登录。供应商会随云同步,所以只解除本机账号的绑定,其他设备上的账号绑定不受影响。
- 用 npm 安装的 Claude Code,在 macOS、Linux 上通过「应用」页升级后无法运行。 上一版修好了 npm 12 下的安装,但升级时调用的
claude update仍会被 npm 12 拦下安装脚本,同时提示升级成功。现在升级时也允许安装脚本运行。Windows 和 WSL 的升级路径这次没有改。 - Skills 导入对话框关不掉。 打开过「发现」页的话,导入时要等「发现」列表从 GitHub 全部重新下载完,网络慢时对话框会一直卡住,无法取消或关闭。
- 托盘里火山、智谱、MiniMax 等有三档额度的供应商,看不到 5 小时额度。 托盘只显示剩余最少的两档,5 小时额度重置最勤、通常剩得最多,几乎总被省掉。现在和 3.x 一样显示全部档位。
- 浅色模式下,「应用」页「显示」列的开关分不清开和关。 打开时是深灰、关闭时是中灰,现在改用和其他开关一样的颜色。
其他:
- 新增中文版聚合模式指南,用户手册补充了获取模型列表、models.dev 补全参数和手动填写的区别。
- 三语用户手册更新了 Linux 应用级窗口按钮的设置路径。
升级说明
数据库结构没有变化,仍然是 20。
Codex 经路由使用 Chat 格式第三方供应商或 GitHub Copilot 的会话,升级后继续之前的会话时会自动压缩一次上下文。
致谢
感谢 @SailingLoong(Claude Code 经路由时最后一段回复丢失)、@ggbdpq(聚合模式压缩上下文报 502)、@Komikawayi(Codex 切换账号后的重启提示)、@CacinieP(npm 12 下升级 Claude Code)、@SaladDay(报告并最早修复删除账号后绑定悬空)、@ljie-PI(Codex GitHub Copilot 供应商的后续整理)、@Lingbou(发布流程检查 Linux 安装包)、@Railgun-wiki(用户手册更新)的贡献。
感谢 @zjyzhj、@Camsyn、@Tison6、@fpga-go、@j1406493495、@RichardZhengkay、@spancerxing、@HansYeoh 报告问题和提出建议。
完整的技术细节请见 CHANGELOG。
CC Switch v4.0.5
CC Switch v4.0.5
4.0 正式版的第一个修复版本
Codex 现在可以用 GitHub Copilot 账号了。用量统计的「全部」热力图不再只显示最近一年,可以一直往前看到第一天的记录。这个版本还修复了 Claude Code 经 Responses 协议映射到 GPT 时子代理总被派去 worktree、Codex 聚合模式下 GLM 等模型在 /model 里消失的问题,Linux 的 deb、rpm 安装包也能应用内更新了。4.0 完整的更新内容请见 v4.0 发布说明。
Linux deb、rpm 用户请手动安装这一版。 已经装好的 deb、rpm 版本还带着旧的安装类型标记,应用内更新到这一版仍会提示权限不足。手动下载安装一次 4.0.5 之后,以后就能正常自动更新。
新增
Codex 可以用 GitHub Copilot 账号。 在 Codex 添加供应商时选「GitHub Copilot」预设,在「授权中心」登录 GitHub 账号即可;Claude Code 已经登录过的 Copilot 账号可以直接用。需要开启 Codex 的路由。Copilot 上不同模型支持的协议不一样,本地路由会按模型自动选择 Responses 或 Chat Completions,也可以在编辑器的「上游格式」里手动指定。不同账号等级的上下文窗口不同,预设默认取较保守的值,点「获取模型列表」会按你账号的实际窗口和推理档位填好模型目录。
「全部」热力图可以看完整历史。 以前时间范围选「全部」时,热力图只显示最近 53 周。现在默认仍是最近 53 周,点「显示更多」会每 53 周一段往前排,一直到有记录的第一天;每段标出日期范围、Token 数、请求数和花费,各段的颜色深浅可以直接对比。
修复
- Claude Code 经 Responses 协议映射到 GPT 时,子代理总被派去 worktree。 Claude Code 调用子代理时,「隔离方式」和「模型」是可选参数,但 Responses 协议在没有明确说明时会把可选参数当成必填,模型每次都会填上。结果子代理被派到 worktree 里运行,不在 git 仓库里就直接失败,或者子代理自己配置的模型被覆盖。现在转换时会明确声明这些参数可选。用 Responses 协议的供应商和 ChatGPT 账号都受影响,现在都修好了。
- Codex 聚合模式下,GLM 等模型在
/model里看不到。 CC Switch 生成模型目录时会以官方的 gpt-5.5 条目为模板,官方把这个条目设为隐藏后,聚合里的第三方模型也跟着全被隐藏了,聚合计数却还在算它们。 - Codex 的模力方舟预设在
/model里只有一个模型。 预设没有带模型目录,Codex 只列出默认模型。现在 5 个模型都会列出来,并带上上下文窗口、图片输入和推理档位。已经添加的模力方舟供应商不会自动更新,需要重新从预设添加一次。 - Linux 上用 deb、rpm 安装的版本,应用内更新提示权限不足。 以前更新器认不出 deb、rpm 安装,按 AppImage 的方式往
/usr/bin里写文件。现在 deb、rpm 有了各自的更新包。已经装好的版本要先手动装一次这一版,见上方的提示。 - Linux Wayland 下,标题栏的最小化、最大化、关闭按钮点了没反应。 第一次打开窗口时,或者从托盘重新打开窗口后,按钮上会盖着一层看不见的区域。
- Windows 用 MSI 升级后,任务栏上固定的图标在重启电脑后变成空白。 快捷方式以前指向一个每次升级都会被删掉的图标缓存,现在直接用程序本身的图标。之前固定的图标在这次升级后可能还会变白一次,取消固定再重新固定一次就好,以后升级不会再出现。
- 用 npm 12 安装 Claude Code 后无法运行,Windows 上提示程序不兼容。 npm 12 默认不运行 Claude Code 的安装脚本,却照样提示安装成功,留下的只是一个占位文件。现在「应用」页的安装、升级,以及可以复制的安装命令都会允许这个安装脚本运行。
- 没开路由时,Grok Build 的用量要等 10 分钟才出现在用量统计里,现在 1 分钟左右。
其他:
- 用户手册和 README 更新到 4.0 的界面。
升级说明
数据库结构没有变化,仍然是 20。
Linux deb、rpm 用户请手动安装这一版,之后就能正常自动更新。
Windows 用户:如果升级后任务栏上固定的图标变成空白,取消固定再重新固定一次即可。
致谢
感谢 @ljie-PI(Codex 接入 GitHub Copilot,与 @ump45nose 共同完成)、@SailingLoong(子代理不再被派去 worktree)、@cenglin123(聚合模式下 GLM 模型消失)、@lcgash(模力方舟模型目录)、@Lingbou(Linux deb、rpm 自动更新)、@Railgun-wiki(Wayland 标题栏按钮)、@Besty0728(Windows 任务栏图标)、@funkpopo(npm 12 安装 Claude Code,以及模力方舟预设的审查)的贡献。
感谢 @Timetraps-x、@ggbdpq、@c2519352073-star、@yukitakasama、@liuziyuan、@Suaig 为同样的问题提交了修复或实现。
感谢 @WK-Apollo、@caoguanjie、@kirkchinese、@ZMKC404、@sunwayking、@Vistonz、@van23qf、@echoescheng、@xlht4106、@YueZhang2019、@hueifeng、@jingzhang94 报告问题和提出建议。
完整的技术细节请见 CHANGELOG。
CC Switch v4.0.4
CC Switch v4.0
正式版(4.0.4):全新界面,全新聚合模式,更稳的配置切换
这是 v4.0 的首个正式版,应用内会自动更新。它包含 4.0 预览版的全部内容,以及预览期间 4.0.1 到 4.0.4 的修复和新增。
这是 CC Switch 迄今规模最大的一次更新。这次更新,我们重新梳理了 CC Switch 最核心的体验:如何接入模型、如何切换供应商,以及如何管理越来越多的 AI 编程工具。
界面从侧边栏到托盘全部重新设计,应用、配置、用量和会话都有了清楚的位置。新推出的聚合模式可以把多家供应商的模型放进 Claude Code 或 Codex 的同一个模型列表,在客户端里随手切换。用量统计页面也重新设计了:每一次请求的 Token 用量、花费和输出速度都有记录;时间范围选「全部」,还能用热力图看过去一年每天的用量。会话管理也从头重写,AI 每一轮做了什么、改了什么、哪一步失败了,都一目了然。重写了配置写入的底层机制:切换供应商时,由全量重写改为关键字段替换,大幅降低复杂度的同时避免了一系列配置丢失问题。MCP 服务器现在也能同步到 Pi 了,一份 MCP 配置可以同时用在 8 个 AI 编程工具里。
从 3.x 升级? 切换供应商的方式、数据库版本和几个设置都有变化,建议先看一下下方的「升级须知」。
全新界面
新界面采用侧边栏布局和橙色主题。应用切换,以及 MCP、Skills、提示词、会话、授权中心、用量统计这些全局功能,都可以从侧边栏直接进入。
- 模式一目了然:每个应用页的顶部是「直连 / 路由 / 聚合」三个标签。点标签只切换查看的内容,不会改动配置;真正切换模式的按钮会写明会发生什么,回到直连只需一步,还能撤销
- 工具有了自己的家:新的「应用」页集中显示每个 AI 编程工具的版本、安装位置和来源,支持安装、升级和批量升级
- 更简洁的添加供应商面板:搜索、选预设,填表单。搜索支持中文名和域名;同一家的不同套餐和地区合并成一行,Claude 的预设合并后行数明显减少。取消了所有预设供应商的高亮推荐
- 额度显示剩余量:卡片上直接写「5 小时剩余 94%」「余额 8.99 CNY」,每一档后面还会显示重置倒计时,比如「⏱ 2h30m」。平时用灰色,不抢眼;百分比额度低于 10% 时加粗提醒,余额用完时才变红;点击额度会重新查询,并显示查询结果。Codex 订阅显示剩余重置次数和过期时间,ChatGPT 订阅还会显示 Codex Credits 余额,并按 API 价折算成美元
- 托盘按应用重新组织:每行显示「名称 · 模式 · 供应商 · 额度」,子菜单里只列出当前能切换的供应商。只有真正需要你处理时,托盘图标才显示提醒点
- 设置按用途分组:通用、应用配置、本地路由、网络、数据、关于。本地路由的服务状态、监听地址和故障转移参数都集中在一处
- 编辑不再是弹窗:供应商、MCP 和提示词都在内容区打开整页编辑,侧栏照常可用。有未保存的修改时,点侧栏、按 ⌘, 或从托盘切走都会先问一句
老用户第一次打开新版时,会看到一次简短的说明,告诉你常用功能搬到了哪里。之后每次更新,首次打开还会弹出一份更新摘要;想再看,可以在「设置 → 关于」里点「近期更新」。
聚合:一个模型列表,多家供应商
以前想用另一家供应商的模型,得先回到 CC Switch 切换供应商,再回到客户端继续工作。
现在开启聚合模式,把几家供应商添加进来,它们的模型会同时出现在 Claude Code 或 Codex 的模型选择器里。选哪个模型,请求就发给哪一家,不用离开客户端。
- 随时添加和移除:在供应商卡片上点「添加」或「移除」。再选一家作为默认供应商,没有指定聚合模型的请求都交给它
- 一眼认出模型:每个模型名后面都标着来自哪家供应商,比如「Kimi K3(Kimi For Coding)」;说明里还会写出上游真实的模型 ID 和上下文窗口,比如
kimi-k3 · 256K - 精简的配置表单:在「聚合」页添加或编辑供应商时,连接信息和模型列表放在同一页,只需要填这些;在「直连」「路由」页用的是完整表单
- Codex 混用不报错:把官方账号设为默认,官方模型和第三方模型会并列显示。在不同供应商的模型之间来回切换,上下文压缩和推理状态都能接上
- 同一会话里换模型:可以在一个会话中途换用其他模型。注意每次切换后,新模型都要重新建立提示词缓存,切换后的第一轮费用会明显高一些
- 重启提醒:Codex 的模型列表变化后会提示重启,Codex CLI 可以在横幅里一键重启后台服务;Claude Code 的聚合模型改动立即生效,不用重启
聚合需要手动开启,目前支持 Claude Code 和 Codex。Claude Code 的聚合模型列表需要 Claude Code 2.1.243 或更新版本。它按你选的模型分发请求,不提供故障转移。
| 模式 | 请求怎么走 | 适合什么情况 |
|---|---|---|
| 直连 | 客户端直接连供应商 | 日常使用 |
| 路由 | 经本地路由转发给一家供应商,可以转换协议、设置故障转移 | 协议不兼容,或者需要故障转移 |
| 聚合 | 经本地路由,按模型分发给多家供应商 | 在一个会话里混用多家模型 |
致敬 opencodex
聚合模式大量学习和参考了 opencodex。给模型 ID 加上供应商前缀,让多家模型同时出现在 Claude Code 和 Codex 的选择器里;让 Codex 在第三方模型上也能做上下文压缩;检测后台服务是否还在用旧的模型列表,并提醒重启。这些思路都来自 opencodex 的探索。感谢 opencodex 的作者(@lidge-jun)和贡献者们把这些成果开源出来,向他们的开源精神致以崇高的敬意!
如果你想要一个专注于「任意模型接入 Codex 和 Claude Code」的工具,非常推荐试试 opencodex!
用量统计
用量页重新设计了指标、趋势图、请求日志,以及供应商、模型、定价四张统计表,都支持分页。新增「全部」时间范围,用 53 周热力图显示每天的用量。大范围统计时,窗口不再卡顿。
- 输出速度改为只按生成时间计算,去掉了首字等待。即使没开路由,从 Claude Code、Codex 会话日志导入的请求也能显示估算速度,用「≈」标记
- 模型表格加上成功率和速度两列。「平均成本」列去掉了,悬停在成本上可以看到
- 供应商和模型表格计入缓存 token,各行加起来和顶部的总 token 数对得上
- 没开路由时从会话日志导入的用量,供应商显示为「Claude Code · 会话日志」这样的名字,悬停会说明为什么分不出具体供应商
- 写入用量记录改到单独的线程,硬盘慢时也不会拖慢路由服务
切换供应商,你的配置原封不动
这是这次更新里最重要的底层变化,适用于 Claude Code、Codex、Gemini CLI、Grok Build 和 Claude Desktop。
CC Switch 发布于 2025 年 8 月,那个时候 API 的生态远没有现在成熟,各家官方和第三方供应商之间的 API 格式往往差距非常大,所以在最初设计的时候,切换供应商选择了全量覆盖。但这个选择带来了一系列的问题和复杂度。随着生态的成熟,现在是时候重构了。
以前:切换供应商时,会用这家存下的快照重写整个配置文件。你在 settings.json 里加的 hooks、插件、权限设置,在 config.toml 里加的 MCP 服务器,要么在切换时丢失,要么被收进某一家供应商的快照,切到别家就没了。
现在:切换只替换地址、凭据、模型、协议这几项,以及这家供应商自己的开关。其他内容原样保留:
- TOML 和
.env文件里,没改到的行连同注释、顺序,逐字节保持不变 - JSON 文件里,其他每个键的值和顺序都保持不变
- 共享设置本来就留在配置文件里,所以「通用配置片段」功能也就不需要了
编辑器底部会预览切换后配置文件的样子。在这里直接改的全局设置会写进配置文件,保存前还会检查文件是否被别的程序改过。
新的写入机制同时带来几层保护:
- 配置文件格式有误时停止写入,原文件保持不动
- 写入前先检查外部改动,不会覆盖其他程序刚保存的内容
- 同时改多个文件时先记下意图,即使中途意外退出,下次启动也会自动收尾,不会停在只改了一半的状态
- 每个文件第一次由新版写入前,原样备份一份
- 含密钥的配置文件只允许本人读写
开启或关闭路由,也不再依赖「备份、还原」整份配置。Codex 切到第三方供应商时被覆盖的 ChatGPT 登录会暂存在本机,切回官方账号时自动还原。
会话管理:每一次 AI 编程,都看得清清楚楚
AI 编程工具会把每次会话完整地记在本机,但原始记录是成千上万行 JSON,几乎没法直接读。这一版我们从头重写了会话管理,让会话记录尽可能地易读,同时添加了用量和消耗金额统计。
- 九个客户端,同一种读法:Claude Code、Codex、Gemini CLI、Grok Build、OpenCode、OpenClaw、Hermes、Pi、MiniMax Code 的记录都解析成结构化内容,正文、思考、工具调用、工具结果和图片各自呈现
- 一轮工作,一行摘要:AI 的一长串操作折叠成一行,比如「执行过程 · 44 步 · 27 个命令 · 改了 2 个文件 · 1 个失败 · 27m45s」。失败的命令标成红色,展开就能看到参数、输出和退出码;连续读文件、搜索这类步骤会合并成「查看了 N 个文件、搜索 N 次」
- 对话目录:右侧列出你的每一次提问,以及这一轮用了多少步、得出了什么结论。有失败步骤的轮次带红点,点一下就跳过去
- 三种视图:「全部」看完整过程,「对话」只看你和 AI 说了什么,「改动」只看改了哪些文件
- 会话全貌一眼可见:顶部显示项目目录、起止时间、提问次数、工具调用次数、模型、总 Token 数,以及按 API 价格算的费用
- 会话内查找:命中的内容即使藏在折叠的工具输出里,也会自动展开定位;长会话里输入也不卡
- 从阅读到继续工作:一键在你常用的终端(比如 Ghostty)里恢复会话,也可以复制恢复命令;还支持导出 Markdown、复制单轮或整段对话
- 列表更好找:按项目或时间分组,搜索标题、目录、首末消息或会话 ID,支持批量删除
- 支持 OpenCode 2.x 和 Gemini CLI 新版 JSONL 格式的会话,Hermes 会话也能正常打开了
会话阅读页的重做由 @Owlbay 主导完成,感谢 Owlbay 投入的大量心血。
MCP 同步到 Pi
Pi 1.0 内置了 MCP,配置格式和 Claude Code 相同。现在在 MCP 页面给 Pi 打开同步,你已有的 MCP 服务器就能在 Pi 里直接用。加上 Claude Code、Codex、Gemini CLI、Grok Build、OpenCode、Hermes、MiniMax Code,一份 MCP 配置可以同时管理 8 个 AI 编程工具。
- 只写连接相关的字段:超时、工具暴露、OAuth 这些 Pi 自己的设置原样保留
- 关掉同步不会删条目:只是在 Pi 里标成停用,再打开时这些设置都还在
- 不支持的配置会直接提示:Pi 不支持的 SSE 传输、名称里带特殊字符的服务器不会写进文件
Pi 的 MCP 同步由 @Owlbay 和 @LystranG 完成。
更多改进
- Claude Code 快捷开关:新增「关闭 auto mode 服务端检查」。Claude Code 2.1.281 起,经过第三方网关或本地路由时,每个会话都会先提示一次「不符合条件」,勾选后直接用本机检查,不再提示;新建第三方供应商时默认勾上,官方端点不要勾。每个快捷开关后面都加了「?」,说明它做什么、是全局设置还是跟着供应商切换
- MCP:可以一次粘贴多个服务器配置,JSON、TOML、Codex 和 OpenCode 格式都能识别。某个应用写入失败时可以单独重试,一个服务器出错也不会影响其他服务器
- Skills:「已安装」和「发现」合并成一页,可以一键全部更新,同步方式可选自动、仅符号链接、仅复制;已安装列表的表头加了全选框
- 提示词:八个应用的提示词在同一页管理,支持复制到其他应用、导入已有文件、删除后撤销
- 授权中心:账号、重新登录入口和剩余额度一目了然
- 备份一目了然:「备份与恢复」里新增可展开的「其他备份」,列出
~/.cc-switch下每类备份的路径、大小和数量,可以打开所在位置,也可以整类删除,删除前会说明会失去什么 - 模型参数自动补全:选中拉取到的模型时,会从预设和 models.dev 补上上下文窗口、输出上限、推理档位和输入类型,不覆盖你已经填过的值
- Claude Desktop:使用模型映射时,本地路由服务会自动启动,用完自动停止
- OpenCode:支持 OpenCode 2.0 的新版供应商配置,新旧格式都能读写,格式有误会指出具体字段;可以选择思考档位,已知支持推理的模型会自动标记,档位由 OpenCode 自己生成;
opencode.jsonc里的注释和格式在同步时会保留,支持 2.x 的用量统计 - MiniMax Code:可以在「应用」页安装和升级,新建供应商时可以自己填供应商 key
- 预设与定价:新增 Command Code、OpenCode Zen(Claude Code、Codex,和 OpenCode Go 合成一行)、模力方舟(Claude Code、Codex、Pi、OpenCode、OpenClaw)预设,更新 Claude Opus 5.5、GPT-6 Sol / Luna、MiMo V2.6 等模型的定价;已有的预设都有了正式图标
- 日志更好排查:切换供应商和进出路由、聚合时,日志会写明从哪切到哪、结果如何
- 项目切换器默认隐藏:大多数用户用不到「项目」,新安装时主页和托盘不再显示项目切换器,需要时在设置里打开;已经在用的不受影响
升级须知
配置的归属变了。 共享设置直接留在客户端配置文件里,「通用配置片段」功能已经移除。在客户端里临时选的模型或推理强度,切到别家再切回来时,会恢复成供应商设定的值。想固定下来,在供应商编辑器里保存即可。
有些修复需要切换一次才生效。 Codex 模型目录和会话分组的修复,要等 CC Switch 下一次写入 Codex 配置时才会应用,升级后切换一次供应商即可。已有的 MCP 配置重新同步一次,就能清掉旧的 type 字段。
切换后记得按提示重启。 Codex、Gemini CLI、Grok Build 切换模型后需要重启,Codex 的聚合列表变化后也需要重启;Claude Code 的聚合模型改动不需要重启。
数据库结构升到了 20。 升级前的数据库会自动备份在 ~/.cc-switch/backups/(db_backup_ 开头);之后再装回 3.x 会提示「数据库版本过新」。
已有的卡片保持原样。 预设更新只影响新建的供应商,比如已有的 Claude 供应商不会自动勾上「关闭 auto mode 服务端检查」,需要的话在编辑器里勾选。新定价只回补之前按 $0 记录的请求,其余历史费用不会重算。
Claude Code 的聚合模式需要 2.1.243 或更新版本。 聚合的模型通过 Claude Code 新增的 modelPicker 设置列进 /model,更早的版本会忽略它,/model 里就看不到聚合的模型。用 claude --version 查看版本,claude update 升级。
几个设置移除了。 供应商成本倍率(中转站价格本身已经包含倍率,再乘一次只会算错);连通性检查的高级设置(现在使用内置默认值);Claude 的「Teammates」和「最大强度」两个快捷开关(每个 Claude Code 会话现在都自带团队功能;最大强度会把所有会话锁在最贵的档位,需要时在会话里用 /effort max)。已经写在配置里的变量不会被删除。
修复
- 用 ChatGPT 账号的 Claude Code 对话报 400 中断。 官方 Codex 后端在思考记录里多了一个字段,下一轮请求就被拒收。现在已经出错的对话会自动恢复
- Claude Code 映射到 GPT、Grok 后,关了思考仍然全力推理。 现在关闭思考时推理强度降到 low,目标模型不支持的档位会自动调整,GPT-5.x pro 用
/effort low不再报 400 - macOS 上用
⌘Q、Dock「退出」或注销退出后,客户端仍然指向已经停止的本地路由 - Codex 官方路由的回复迟迟不显示,用量记为 0
- Codex 模型目录里的 GPT 模型丢失官方提示词、工具能力和推理档位
- Codex 0.158 起,MCP 配置里的
type字段导致报错,甚至无法启动 - MiniMax 工具调用参数解析失败;部分模型的思考内容混在正文里显示
- 部分上游在流式响应里混用 LF 和 CRLF 换行,工具调用丢失
- 上游拒绝请求,却被报成「输出达到上限」;现在如实报告为上游错误并带上原因
- Claude Desktop 用 OpenCode Go 报
400 MissingSessionID,本地路由会自动补上会话标识 - 导入 Skill 时勾选的其他应用实际收不到;同步 Skills 时误删 OpenClaw 目录下的同名文件夹
- 新增或导入提示词时,可能清空你手写的提示词文件
- WSL 下的 Codex 拖慢启动和会话扫描
- 时间 MCP 预设一启动就退出,改用
uvx mcp-server-time(已添加的服务器需手动把命令改成uvx、参数改成mcp-server-time) - 部分 CLI 升级时额外装出一份 npm 副本
- 清理旧日志后,数据库文件没有缩小
- 设置里「保存并重启服务」没有真正重启服务
- macOS 上应用内更新或更改配置目录后重启,新窗口被压在其他应用后面(这次升级的重启仍由旧版执行,从下一次更新起生效)
- Grok Build 的「获取 API Key」打开官网首页;Hermes、OpenClaw 的小米 MiMo 预设默认用了不支持图片的模型
相对 4.0.0 预览版的变化
已经装过 4.0.0 到 4.0.3 预览版的用户,这一节列出预览期间的改动,上面的正文已经包含这些内容。
新增:Claude Code「关闭 auto mode 服务端检查」快捷开关和每个开关的说明;MCP 同步到 Pi 1.0;MCP 和提示词整页编辑、离开前提醒保存;「其他备份」总览;Codex Credits 余额;OpenCode 2.0 新版供应商配置和思考档位;用量模型表格的成功率和速度列;OpenCode Zen、模力方舟预设;已安装 Skill 全选;切换日志;更新后显示更新摘要。
修复:ChatGPT 账号对话报 400;关了思考仍全力推理;Claude Code 聚合模式下 /model 顶部是四行同一个模型;导入 Skill 勾选的应用收不到;其他工具改过 Codex 模型目录设置后,模型映射和聚合模型不生效;Gemini CLI 会话读不到;WSL 下的 Codex 拖慢扫描;上游错误被报成输出达到上限;Claude Desktop 用 OpenCode Go 报 400;流式工具调用丢失;用量表格没算缓存 token;写用量拖慢路由;时间 MCP 预设启动即退出;Codex 用量同步可能卡死;以及侧边栏动画、分隔线、推理等级多选撑宽、时间范围选择器边框、图标...
CC Switch v4.0.3
CC Switch v4.0.3
4.0 预览版的第三个修复版本
这个版本修复了 Claude Code 映射到 GPT、Grok 后关了思考仍然全力推理,以及导入 Skill 时勾选的其他应用实际收不到的问题,Claude Desktop 也能正常用 OpenCode Go 了。Claude Code 的快捷开关新增「关闭 auto mode 服务端检查」,每个开关都配了说明。MCP 和提示词改成整页编辑,离开前会提醒保存;「备份与恢复」里能看到所有备份占了多少空间;ChatGPT 订阅会显示 Codex Credits 余额。预设新增 OpenCode Zen 和模力方舟。4.0 完整的更新内容请见 v4.0 发布说明。
预览版不会自动更新。 应用内更新只跟随正式版,已经装了 4.0.0 到 4.0.2 的话,请在本页手动下载 4.0.3 安装。
新增
Claude Code 快捷开关:关闭 auto mode 服务端检查。 Claude Code 2.1.281 起,auto mode 会先请求官方的服务端检查,经过第三方网关或本地路由时检查不了,每个会话都会先停下来提示一次「不符合条件」。现在 Claude 供应商编辑器里多了「关闭 auto mode 服务端检查」,勾选后直接用本机检查,不再提示。新建第三方供应商时默认勾上,官方和云厂商的供应商不勾,官方端点也不要勾。另外,以前供应商配置里写的 CLAUDE_CODE_AUTO_MODE_SERVER 切换时不会写进 settings.json,现在会跟着供应商切换。
每个快捷开关都有说明。 Claude 配置编辑器上方的每个快捷开关后面都加了「?」,用一句话说明它做什么、什么时候用,以及是全局设置还是跟着供应商切换。
MCP 和提示词改成整页编辑,离开前提醒保存。 编辑 MCP 服务器和提示词不再是弹窗,而是在内容区打开整页,侧栏和窗口拖动区域照常可用;供应商编辑页也不再限制宽度,跟着窗口变宽。有未保存的修改时,点侧栏、按 ⌘, 或从托盘切走都会先问一句;返回、取消和 Esc 照旧直接关闭。
「备份与恢复」里能看到所有备份。 以前这里只列数据库备份,~/.cc-switch 下其他备份一直在悄悄变大,Codex 会话迁移的备份就可能有好几 GB。现在数据库列表下方有一个可以展开的「其他备份」,列出 Skill 卸载备份、Codex 会话迁移备份、配置文件首次写入备份、Hermes 和 OpenClaw 的配置备份、旧版本遗留文件等,每项显示路径、大小和数量,可以在文件管理器里打开,也可以整类删除。删除前会说明删掉会失去什么,比如删了 Codex 会话统一迁移备份,关闭那个开关时就不能再「恢复备份」。
显示 ChatGPT 订阅的 Codex Credits 余额。 有 Credits 余额时,展开的额度详情和「授权中心」里会多一行「Credits」,显示余额和按 API 价折算的美元数(1 Credit 约 0.04 美元)。Credits 只在额度用完后才扣,所以供应商卡片平时不显示,等某个额度用完才会出现。
OpenCode 2.0 的新版供应商配置。 OpenCode 2.0 支持在 providers 里写新格式的供应商,以前 CC Switch 只认旧的 provider,新格式的供应商看不到,写入也落在 OpenCode 不读的地方。现在两种格式都能读写,新格式的供应商在 JSON 编辑器里编辑,保存时会保留注释,格式有误会指出具体哪个字段。
用量统计的模型标签页加上成功率和速度。 和供应商标签页一样,模型统计现在也有成功率和速度两列;「平均成本」列去掉了,鼠标悬停在成本上可以看到。
其他:
- 已安装 Skill 列表的表头加了全选框,作用于当前搜索和筛选出来的这些行。
- 切换供应商和进出路由、聚合模式时,日志里会写明从哪切到哪、结果如何,排查「点了切换没反应」更方便。
- 新增预设:OpenCode Zen(Claude Code、Codex,和 OpenCode Go 合成一行)、模力方舟(Claude Code、Codex、Pi、OpenCode、OpenClaw)。
修复
- Claude Code 映射到 GPT、Grok 后,关了思考仍然全力推理。 Claude Code 关闭思考时仍会带上
high的推理强度,转换成 OpenAI 格式后上游照样全力推理。现在关闭思考时推理强度降到low;目标模型不支持的档位也会自动调到它能接受的档位,比如 GPT-5.x pro 不接受low,以前用/effort low会直接报 400。Fable、Opus 5.5 这类没法关思考的模型,映射之后也会保持思考。 - 导入 Skill 时勾选的其他应用,实际收不到这个 Skill。 以前只记下了勾选状态,界面显示已启用,对应应用的 Skills 目录里却没有文件。现在导入时会直接复制过去;复制失败的应用不会标成已启用,并在导入结果里列出来。
- Claude Desktop 用 OpenCode Go 时报
400 MissingSessionID。 OpenCode Go 要求每个请求带会话标识,Claude Desktop 不带。现在发往 OpenCode 的请求缺少会话标识时,本地路由会自动补上,同一段对话始终用同一个标识。 - 部分上游的流式响应里工具调用丢失。 有的上游在流式响应里混用 LF 和 CRLF 换行,以前会切错事件,Claude Code 收不到 OpenAI Chat 上游的工具调用。
- 用量统计的供应商和模型表格没算缓存 token。 以前表格只加了新输入和输出,缓存命中率高时,各行加起来只有顶部总数的一小部分。现在和顶部的总 token 数对得上。
- 没开路由时导入的用量,供应商名显示成英文。 以前显示「Claude (Session)」这样的英文占位名,现在显示「Claude Code · 会话日志」,悬停会说明为什么分不出具体供应商;请求日志和请求详情里旁边已经写了应用,就只显示「会话日志」。
- 硬盘慢时,写用量记录会拖慢路由服务。 写入用量记录改到单独的线程,不再卡住同时进来的其他请求。
- macOS 上用量页切换标签时图表和图标抖动。
- Hermes、OpenClaw 的小米 MiMo 预设默认用了不支持图片的模型,现在和其他应用一样默认
mimo-v2.6-pro。 - OpenCode Go 预设的「获取 API Key」链接打开后显示推荐活动已结束的提示,现在改为不带推荐码的链接。
体验改进
- 去掉了 Claude 的「Teammates」和「最大强度」两个快捷开关。 现在每个 Claude Code 会话都自带团队功能,Teammates 开关只剩分屏显示的作用;最大强度开关会把每个会话都锁在最贵的档位,
/effort也会失效。需要时可以在会话里用/effort max。已经写在配置里的这两个变量不会被删掉。
升级说明
数据库结构没有变化,仍然是 20,装回 4.0.2 没有问题。
预设的改动只影响新添加的供应商。 已有的 Claude 供应商不会自动加上「关闭 auto mode 服务端检查」,需要的话在编辑器里勾选;已有的 Hermes、OpenClaw MiMo 供应商也不会改模型。
致谢
感谢 @SailingLoong(auto mode 设置跟着供应商切换)、@Owlbay(整页编辑和未保存提醒、MiMo 预设)、@DEAN-Cherry(OpenCode 2.0 新版供应商配置)、@lcgash(模力方舟预设)、@allenxu09(切换日志、Skill 全选、用量页抖动)、@Chris-Xie369(OpenCode Go 会话标识)、@ggbdpq(用量写入不再卡住路由)、@fisHarly0(混合换行的流式响应)、@minc-nice-100(Windows 测试隔离)的贡献,感谢 @shangchaovo、@gsmchen、@winter-maple、@guangzh3n、@AltCtrlFn、@R-Tsubasa、@Lingbou、@Enough1122、@IAld010 报告问题和提出建议。
完整的技术细节请见 CHANGELOG。
CC Switch v4.0.2
CC Switch v4.0.2
4.0 预览版的第二个修复版本
这个版本修复了用 ChatGPT 账号的 Claude Code 对话报 400 中断、Codex 的聚合模型不显示等问题。Claude Code 聚合模式下的 /model 列表只列聚合的模型,改了模型也不用再重启 Claude Code。MCP 服务器也可以同步到 Pi 1.0 了。从这一版起,更新后第一次打开会弹出一个简短的更新摘要。4.0 完整的更新内容请见 v4.0 发布说明。
预览版不会自动更新。 应用内更新只跟随正式版,已经装了 4.0.0 或 4.0.1 的话,请在本页手动下载 4.0.2 安装。
新增
MCP 服务器可以同步到 Pi 1.0 了。 Pi 1.0 内置了 MCP,配置格式和 Claude Code 相同,现在 MCP 页面里可以给 Pi 打开同步了。CC Switch 只写连接相关的字段,超时、工具暴露、OAuth 这些 Pi 自己的设置原样保留。关掉同步不会删掉条目,只是在 Pi 里标成停用,再打开时这些设置都还在。Pi 不支持的配置(SSE 传输、名称里有特殊字符)会直接提示,不会写进文件。
更新后显示简短的更新摘要。 升级后第一次打开 CC Switch,会弹出一个窗口,用几句话列出上次打开以来每个版本的主要变化,点「详情」可以看到完整说明。之后想再看,可以在「设置 → 关于」里点「近期更新」。
修复
- Claude Code 聚合模式下,
/model最上面是四行同一个模型。 以前开启聚合模式后,Claude Code 的模型列表顶部会出现四行一样的模型(对应 Opus、Sonnet、Haiku、Fable 四个档位),后面才是聚合的模型。现在列表里只有「Default」和聚合的模型,每行写着模型名和上下文窗口。退出聚合模式时这份列表会一起删掉,Claude Code 回到它自己的默认列表。如果你在settings.json里手动写过modelPicker,切换供应商或模式时会被覆盖。这需要 Claude Code 2.1.243 或更新的版本,见下方升级说明。 - 用 ChatGPT 账号的 Claude Code 对话报 400 中断。 10 月 3 日起,官方 Codex 后端在思考记录里多加了一个字段,下次请求时又拒收这个字段,所以通过 ChatGPT 账号(Codex OAuth)使用 Claude Code 时,对话的下一轮就会报
400 Unknown parameter: 'input[N].status'。现在回放思考记录时只保留必要的字段,已经出错的对话也会自动恢复,不需要任何操作。 - 其他工具改过 Codex 的模型目录设置后,CC Switch 的模型映射和聚合模型不生效。 其他同类工具(或旧版本的 CC Switch)会在
config.toml里写一个model_catalog_json,让 Codex 去读它们的模型目录。以前 CC Switch 遇到这一项就不动它,结果自己生成的模型目录不起作用,直连模式下连提示都没有。现在每次切换都会重写这一项:用到模型映射或聚合模式时指向 CC Switch 生成的模型目录,用不到时直接去掉,不管原来是谁写的。如果你确实要让某个供应商用自己的模型目录,请写在这个供应商的配置里。旧版本保存供应商时,可能把这一项误存进了供应商自己的配置;遇到这种情况,聚合模式的提示里会有「改用 CC Switch 的模型目录」按钮,点一下就清掉。 - 时间 MCP 预设(time)一启动就退出。 预设用的 npm 包其实不存在,现在改用官方发布的
uvx mcp-server-time。之前已经用这个预设添加的服务器不会自动更新,需要手动把命令改成uvx、参数改成mcp-server-time。 - Codex 模型目录里推理等级选多了,会把这一行撑宽。 现在各行始终和表头对齐。连续选中的等级会缩写成「low → max」这样的形式,鼠标悬停可以看到完整列表和默认等级。
- 用量统计的时间范围选择器:选中的起止时间框里不再多出一圈灰色边框,和上方的快捷选项也拉开了间距。
体验改进
- 改了 Claude Code 的聚合模型,不用再重启。 增删聚合的供应商或模型、换默认模型、改上下文窗口,正在运行的 Claude Code 都会马上生效,原来那些「请重启 Claude Code」的提示也去掉了。Codex 只在启动时读取模型目录,仍然需要重启。
- 供应商表单跟着你所在的标签页走。 在「聚合」标签页里添加或编辑供应商,用的是简化表单;从「直连」或「路由」标签页打开,用的是完整表单。原来那个手动切换表单的链接去掉了,用简化表单时标题会标出「(聚合模式)」。
- Codex 完整表单里,获取的模型可以直接挑进模型映射表。 点「获取模型列表」之后,模型映射这一栏会出现和聚合表单一样的可搜索列表,勾选的模型直接变成新的一行,上下文窗口和推理等级也会自动填好。旁边的添加按钮改名叫「手动添加」,用来补列表里没有的模型。
- 自带底色的供应商图标铺满图标框。 88API、Qiniu 这类自带底色的图标,以前在边框里缩成一个小方块,现在会铺满整个图标框。透明底的图标也稍微放大了一些,几个四周留白太多的图标做了裁剪。
升级说明
Claude Code 的聚合模式需要 2.1.243 或更新的版本。 聚合的模型现在通过 Claude Code 2.1.243 新增的 modelPicker 设置列进 /model。更早的版本会忽略这项设置,/model 里就看不到聚合的模型,只能用默认模型,或者用 /model <模型 ID> 手动指定。可以在终端里运行 claude --version 查看当前版本,用 claude update 升级。
数据库版本升到了 20,新增了一列记录 Pi 的同步开关,升级时不会往 Pi 写任何东西。4.0.2 打开过数据库之后,再装回 4.0.1、4.0.0 或 3.x 会提示「数据库版本过新」。升级前的数据库会自动备份在 ~/.cc-switch/backups/ 里(db_backup_ 开头)。
致谢
感谢 @parkavenue9639 和 @ggbdpq(ChatGPT 账号 400 的修复)、@Owlbay 和 @LystranG(Pi 的 MCP 同步,以及 Owlbay 的时间 MCP 预设修复)、@allenxu09(用量统计的时间范围选择器)的贡献,感谢 @killServer0 报告时间 MCP 预设的问题。
完整的技术细节请见 CHANGELOG。
CC Switch v4.0.1
CC Switch v4.0.1
4.0 预览版的第一个修复版本
感谢大家对 4.0 预览版的试用和反馈。这个版本修复了 Gemini CLI 会话读不到、WSL 下 Codex 启动变慢等问题,也让 OpenCode 能用上思考档位。4.0 完整的更新内容请见 v4.0 发布说明。
预览版不会自动更新。 应用内更新只跟随正式版,已经装了 4.0.0 的话,请在本页手动下载 4.0.1 安装。
新增
OpenCode 可以选择思考档位了。 OpenCode 只会给标记为「支持推理」的模型提供思考档位(Ctrl+T),而 CC Switch 写入的自定义供应商以前从不带这个标记,所以通过 CC Switch 添加的模型一直选不了档位。现在,预设和获取到的模型只要已知支持推理(以预设或 models.dev 为准),就会自动标记,档位由 OpenCode 自己生成,跟随 OpenCode 的版本更新。
「跳过 Claude Code 初次安装确认」有了说明。 点开这一项的帮助图标,可以看到开关具体做了什么:在 ~/.claude.json 里写入或删除 hasCompletedOnboarding。
修复
- 会话管理读不到 Gemini CLI 的会话。 新版 Gemini CLI 把会话记录改成了 JSONL 格式,并会在恢复会话时把旧文件迁移过去,导致会话页看不到 Gemini 会话,用量同步也导入不到数据。现在完整支持新格式;旧文件和迁移后的新文件同时存在时只显示一份,删除时一起删掉。会话标题也会跳过 CLI 自动注入的上下文和斜杠命令。
- WSL 下的 Codex 拖慢启动和会话扫描。 Codex 配置目录放在 WSL 里时,Windows 无法给其中的 SQLite 数据库加锁,每次都要等 5 秒超时。历史迁移因此每次启动都重来一遍,扫描会话也会卡住。现在会跳过这类数据库,会话标题改从会话索引读取。
- 上游拒绝请求,却被报成「输出达到上限」。 有些 Responses 上游(比如 ChatGPT Codex 后端拒绝某个工具定义时)会在不处理请求的情况下返回「输出 token 达到上限」,用量全是 0,Claude Code 就提示了一个根本没碰到的上限。现在这种情况会如实报告为上游错误,并带上拒绝原因。
- Codex 用量同步可能卡死。 一个无关的异常之后,同步带父会话的 Codex 记录时可能卡住不动,现在已修复。
- Grok Build 的「获取 API Key」打开的是官网首页。 现在和其他应用一样,打开预设提供的注册页面。
体验改进
- 侧边栏收起和展开更流畅。 动画改由合成层绘制,跟随屏幕刷新率,不再受限于 WebView 主线程的 60 帧。中途反向点击会从当前位置接着走。
- 侧边栏底部分隔线和上方的分隔线样式统一,选中「用量统计」时不再贴着线。
- 重置次数的下拉箭头单独占一行时,和上一行的倒计时时钟对齐。
构建与发布
macOS 两个架构改为并行编译,公证失败重试时不必从头编译;任何一个平台缺少更新签名时,构建会直接失败,不会再发布一个缺了某个平台的更新清单。
致谢
感谢 @allenxu09(Gemini CLI 会话、侧边栏动画与分隔线)和 @parkavenue9639(上游拒绝的错误报告)的贡献,感谢 @juntaosun 第一时间报告 Gemini CLI 会话的问题。
完整的技术细节请见 CHANGELOG。
CC Switch v4.0.0
CC Switch v4.0
全新界面,全新聚合模式,更稳的配置切换
这是 CC Switch 迄今规模最大的一次更新。这次更新,我们重新梳理了 CC Switch 最核心的体验:如何接入模型、如何切换供应商,以及如何管理越来越多的 AI 编程工具。
界面从侧边栏到托盘全部重新设计,应用、配置、用量和会话都有了清楚的位置。新推出的聚合模式可以把多家供应商的模型放进 Claude Code 或 Codex 的同一个模型列表,在客户端里随手切换。会话管理也从头重写,AI 每一轮做了什么、改了什么、哪一步失败了,都一目了然。重写了配置写入的底层机制:切换供应商时,由全量重写改为关键字段替换,大幅降低复杂度的同时避免了一系列配置丢失问题。
全新界面
新界面采用侧边栏布局和橙色主题。应用切换,以及 MCP、Skills、提示词、会话、授权中心、用量统计这些全局功能,都可以从侧边栏直接进入。
- 模式一目了然:每个应用页的顶部是「直连 / 路由 / 聚合」三个标签。点标签只切换查看的内容,不会改动配置;真正切换模式的按钮会写明会发生什么,回到直连只需一步,还能撤销
- 工具有了自己的家:新的「应用」页集中显示每个 AI 编程工具的版本、安装位置和来源,支持安装、升级和批量升级
- 更简洁的添加供应商面板:搜索、选预设,填表单。搜索支持中文名和域名;同一家的不同套餐和地区合并成一行,Claude 的 96 个预设现在只占 73 行。取消了所有预设供应商的高亮推荐
- 额度显示剩余量:卡片上直接写「5 小时剩余 94%」「余额 8.99 CNY」,每一档后面还会显示重置倒计时,比如「⏱ 2h30m」。平时用灰色,不抢眼;百分比额度低于 10% 时加粗提醒,余额用完时才变红;点击额度会重新查询,并显示查询结果。Codex 订阅显示剩余重置次数和过期时间
- 托盘按应用重新组织:每行显示「名称 · 模式 · 供应商 · 额度」,子菜单里只列出当前能切换的供应商。只有真正需要你处理时,托盘图标才显示提醒点
- 设置按用途分组:通用、应用配置、本地路由、网络、数据、关于。本地路由的服务状态、监听地址和故障转移参数都集中在一处
老用户第一次打开新版时,会看到一次简短的说明,告诉你常用功能搬到了哪里。
聚合:一个模型列表,多家供应商
以前想用另一家供应商的模型,得先回到 CC Switch 切换供应商,再回到客户端继续工作。
现在开启聚合模式,把几家供应商添加进来,它们的模型会同时出现在 Claude Code 或 Codex 的模型选择器里。选哪个模型,请求就发给哪一家,不用离开客户端。
- 随时添加和移除:在供应商卡片上点「添加」或「移除」。再选一家作为默认供应商,没有指定聚合模型的请求都交给它
- 一眼认出模型:每个模型名后面都标着来自哪家供应商,比如「Kimi K3(Kimi For Coding)」;说明里还会写出上游真实的模型 ID 和上下文窗口,比如
kimi-k3 · 256K - 精简的配置表单:连接信息和模型列表放在同一页,聚合时只需要填这些
- Codex 混用不报错:把官方账号设为默认,官方模型和第三方模型会并列显示。在不同供应商的模型之间来回切换,上下文压缩和推理状态都能接上
- 同一会话里换模型:可以在一个会话中途换用其他模型。注意每次切换后,新模型都要重新建立提示词缓存,切换后的第一轮费用会明显高一些
- 重启提醒:模型列表变化后会提示重启客户端,Codex CLI 可以在横幅里一键重启后台服务
聚合需要手动开启,目前支持 Claude Code 和 Codex。它按你选的模型分发请求,不提供故障转移。
| 模式 | 请求怎么走 | 适合什么情况 |
|---|---|---|
| 直连 | 客户端直接连供应商 | 日常使用 |
| 路由 | 经本地路由转发给一家供应商,可以转换协议、设置故障转移 | 协议不兼容,或者需要故障转移 |
| 聚合 | 经本地路由,按模型分发给多家供应商 | 在一个会话里混用多家模型 |
致敬 opencodex
聚合模式大量学习和参考了 opencodex。给模型 ID 加上供应商前缀,让多家模型同时出现在 Claude Code 和 Codex 的选择器里;让 Codex 在第三方模型上也能做上下文压缩;检测后台服务是否还在用旧的模型列表,并提醒重启。这些思路都来自 opencodex 的探索。感谢 opencodex 的作者(@lidge-jun)和贡献者们把这些成果开源出来,向他们的开源精神致以崇高的敬意!
如果你想要一个专注于「任意模型接入 Codex 和 Claude Code」的工具,非常推荐试试 opencodex!
会话管理:每一次 AI 编程,都看得清清楚楚
AI 编程工具会把每次会话完整地记在本机,但原始记录是成千上万行 JSON,几乎没法直接读。这一版我们从头重写了会话管理,让会话记录尽可能地易读,同时添加了用量和消耗金额统计。
- 九个客户端,同一种读法:Claude Code、Codex、Gemini CLI、Grok Build、OpenCode、OpenClaw、Hermes、Pi、MiniMax Code 的记录都解析成结构化内容,正文、思考、工具调用、工具结果和图片各自呈现
- 一轮工作,一行摘要:AI 的一长串操作折叠成一行,比如「执行过程 · 44 步 · 27 个命令 · 改了 2 个文件 · 1 个失败 · 27m45s」。失败的命令标成红色,展开就能看到参数、输出和退出码;连续读文件、搜索这类步骤会合并成「查看了 N 个文件、搜索 N 次」
- 对话目录:右侧列出你的每一次提问,以及这一轮用了多少步、得出了什么结论。有失败步骤的轮次带红点,点一下就跳过去
- 三种视图:「全部」看完整过程,「对话」只看你和 AI 说了什么,「改动」只看改了哪些文件
- 会话全貌一眼可见:顶部显示项目目录、起止时间、提问次数、工具调用次数、模型、总 Token 数,以及按 API 价格算的费用
- 会话内查找:命中的内容即使藏在折叠的工具输出里,也会自动展开定位;长会话里输入也不卡
- 从阅读到继续工作:一键在你常用的终端(比如 Ghostty)里恢复会话,也可以复制恢复命令;还支持导出 Markdown、复制单轮或整段对话
- 列表更好找:按项目或时间分组,搜索标题、目录、首末消息或会话 ID,支持批量删除
- 支持 OpenCode 2.x 的会话,Hermes 会话也能正常打开了
会话阅读页的重做由 @Owlbay 主导完成,感谢 Owlbay 投入的大量心血。
切换供应商,你的配置原封不动
这是这次更新里最重要的底层变化,适用于 Claude Code、Codex、Gemini CLI、Grok Build 和 Claude Desktop。
CC Switch 发布于 2025 年 8 月,那个时候 API 的生态远没有现在成熟,各家官方和第三方供应商之间的 API 格式往往差距非常大,所以在最初设计的时候,切换供应商选择了全量覆盖。但这个选择带来了一系列的问题和复杂度。随着生态的成熟,现在是时候重构了。
以前:切换供应商时,会用这家存下的快照重写整个配置文件。你在 settings.json 里加的 hooks、插件、权限设置,在 config.toml 里加的 MCP 服务器,要么在切换时丢失,要么被收进某一家供应商的快照,切到别家就没了。
现在:切换只替换地址、凭据、模型、协议这几项,以及这家供应商自己的开关。其他内容原样保留:
- TOML 和
.env文件里,没改到的行连同注释、顺序,逐字节保持不变 - JSON 文件里,其他每个键的值和顺序都保持不变
- 共享设置本来就留在配置文件里,所以「通用配置片段」功能也就不需要了
编辑器底部会预览切换后配置文件的样子。在这里直接改的全局设置会写进配置文件,保存前还会检查文件是否被别的程序改过。
新的写入机制同时带来几层保护:
- 配置文件格式有误时停止写入,原文件保持不动
- 写入前先检查外部改动,不会覆盖其他程序刚保存的内容
- 同时改多个文件时先记下意图,即使中途意外退出,下次启动也会自动收尾,不会停在只改了一半的状态
- 每个文件第一次由新版写入前,原样备份一份
- 含密钥的配置文件只允许本人读写
开启或关闭路由,也不再依赖「备份、还原」整份配置。Codex 切到第三方供应商时被覆盖的 ChatGPT 登录会暂存在本机,切回官方账号时自动还原。
用量统计
用量页重新设计了指标、趋势图、请求日志,以及供应商、模型、定价四张统计表,都支持分页。新增「全部」时间范围,用 53 周热力图显示每天的用量。大范围统计时,窗口不再卡顿。
输出速度改为只按生成时间计算,去掉了首字等待。即使没开路由,从 Claude Code、Codex 会话日志导入的请求也能显示估算速度,用「≈」标记。
更多改进
- MCP:可以一次粘贴多个服务器配置,JSON、TOML、Codex 和 OpenCode 格式都能识别。某个应用写入失败时可以单独重试,一个服务器出错也不会影响其他服务器
- Skills:「已安装」和「发现」合并成一页,可以一键全部更新,同步方式可选自动、仅符号链接、仅复制
- 提示词:八个应用的提示词在同一页管理,支持复制到其他应用、导入已有文件、删除后撤销
- 授权中心:账号、重新登录入口和剩余额度一目了然
- 模型参数自动补全:选中拉取到的模型时,会从预设和 models.dev 补上上下文窗口、输出上限、推理档位和输入类型,不覆盖你已经填过的值
- Claude Desktop:使用模型映射时,本地路由服务会自动启动,用完自动停止
- OpenCode:
opencode.jsonc里的注释和格式在同步时会保留,支持 2.x 的用量统计 - MiniMax Code:可以在「应用」页安装和升级,新建供应商时可以自己填供应商 key
- 预设与定价:新增 Command Code 预设,更新 Claude Opus 5.5、GPT-6 Sol / Luna、MiMo V2.6 等模型的定价;全部 756 个预设都有了正式图标
修复
- macOS 上用
⌘Q、Dock「退出」或注销退出后,客户端仍然指向已经停止的本地路由 - Codex 官方路由的回复迟迟不显示,用量记为 0
- Codex 模型目录里的 GPT 模型丢失官方提示词、工具能力和推理档位
- MiniMax 工具调用参数解析失败;部分模型的思考内容混在正文里显示
- Codex 0.158 起,MCP 配置里的
type字段导致报错,甚至无法启动 - 新增或导入提示词时,可能清空你手写的提示词文件
- 同步 Skills 时误删 OpenClaw 目录下的同名文件夹
- 部分 CLI 升级时额外装出一份 npm 副本
- 清理旧日志后,数据库文件没有缩小
- 设置里「保存并重启服务」没有真正重启服务
升级须知
配置的归属变了。 共享设置直接留在客户端配置文件里,「通用配置片段」功能已经移除。在客户端里临时选的模型或推理强度,切到别家再切回来时,会恢复成供应商设定的值。想固定下来,在供应商编辑器里保存即可。
有些修复需要切换一次才生效。 Codex 模型目录和会话分组的修复,要等 CC Switch 下一次写入 Codex 配置时才会应用,升级后切换一次供应商即可。已有的 MCP 配置重新同步一次,就能清掉旧的 type 字段。
切换后记得按提示重启。 Codex、Gemini CLI、Grok Build 切换模型后需要重启,聚合列表变化后也需要重启客户端。
已有的卡片保持原样。 预设更新只影响新建的供应商;新定价只回补之前按 $0 记录的请求,其余历史费用不会重算。
两个设置移除了。 供应商成本倍率(中转站价格本身已经包含倍率,再乘一次只会算错),以及连通性检查的高级设置(现在使用内置默认值)。
致谢
感谢这一版的贡献者:
@Owlbay(会话阅读页重做、用量页热力图与性能)、@qyinter(大量 UI/UX 打磨)、@funkpopo、@allenxu09、@ISuuuu、@SailingLoong、@ggbdpq、@tingfeng347、@Hexc01、@zhengkaics、@DEAN-Cherry、@7ten7、@2doright、@RemindZ、@M3chD09、@Richard-Zhang1019、@YuxuZhou-CN、@Eureka0w0v0、@Ne1ther、@h6rime、@bigben446、@szupzj18、@AnxForever
感谢 @PnutCN、@Aaron-WealthTech、@parkavenue9639、@RuriLothlorien、@Ming-Sir-69 详细的问题报告和排查,帮我们准确定位了问题。
特别感谢 opencodex 项目,聚合模式的许多设计都受益于它的开源探索。
也感谢每一位提交 issue、帮忙复现问题的用户。完整的技术细节请见 CHANGELOG。