Skip to content

Releases: farion1231/cc-switch

CC Switch v4.0.22

Choose a tag to compare

@github-actions github-actions released this 30 Oct 03:51

CC Switch v4.0.22

本版本新增对 DeepSeek Harness 的支持,它是 CC Switch 管理的第 14 个应用:供应商一起写进它的 Web 和 Desktop 配置,MCP、Skills、提示词同步给它,会话可以浏览,「应用」页可以安装、升级、卸载;还可以在授权中心登录 DeepSeek 账号、查看余额,用量也会统计。Oh My Pi 的用量现在也会统计。「打开终端」可以勾选跳过权限确认、追加启动参数,Codex 卡片也能打开终端;WebDAV 配置可以清除;Skills 可以打开目录、在发现页查看文档;GitHub Copilot 的 Claude 模型改走原生接口,提示缓存命中率大幅提高。另外修复了 macOS 上连了 OAuth 远程 MCP 时切换 Claude 账号失败、开了全局代理时添加 Claude 账号报 403、Claude Desktop 新会话默认用 Fable、MiniMax 周额度用完后不显示、没在用的供应商余额不自动刷新、请求被转回路由自己导致内存暴涨、Gemini 工具调用报 400、xAI 拒绝 Codex 0.163 的请求、请求日志里存下整页报错把数据库撑大等问题。4.0 完整的更新内容请见 v4.0 发布说明。

English → | 日本語版 →


新增

DeepSeek Harness

DeepSeek Harness(命令是 dsh)现在是一个独立的应用,有自己的供应商、MCP、Skills、提示词和会话(#8795、#8986)。配置在 ~/.dsh,设了 DSH_HOME 时以它为准。

  • Web 和 Desktop 一起管理。 DeepSeek Harness 的网页版和桌面版各有一份配置(profile),CC Switch 把供应商和 MCP 同时写进两份,缺的那份会自动建好;已经初始化的 headless、acp 也一起写。侧栏只有一个 DeepSeek Harness,「已添加」标题旁注明 Web 和 Desktop 共用这份列表。某一份被手动改得和另一份不一样时,编辑会被拒绝并提示,不会覆盖你的改动。
  • 供应商可以同时添加。 和 OpenCode 一样是「添加」「移除」,多个供应商同时写进去,在 DeepSeek Harness 里选模型。支持 OpenAI Chat Completions、OpenAI Responses、Anthropic Messages 三种接口,预设来自 Pi 的目录。API Key 写进 DeepSeek Harness 自己的凭据文件 .credentials.yaml,配置里只放引用;配置里的其他插件设置原样保留,写入失败会回滚。
  • 模型编辑。 思考、图片输入用开关,上下文长度和最大输出单独填,和 Pi、Kimi Code 的模型行一样;DeepSeek Harness 还可以设置可选的思考档位和每个模型的接口兼容选项。OpenCode、MiniMax Code 的模型编辑也改成了这个样子。
  • DeepSeek 账号登录。 在授权中心的 DeepSeek Harness 组用浏览器登录 DeepSeek 账号,显示余额和赠金;Web 和 Desktop 共用这份登录,在任一处登录或退出,两边同时生效。添加供应商时选「DeepSeek 官方登录」会跳到授权中心。登录后,账号以一张官方卡显示在「已添加」最前面,账号下的模型由 DeepSeek Harness 自己提供,这张卡不能编辑,退出登录后自动消失。
  • MCP、Skills、提示词。 支持 stdio 和 Streamable HTTP 两种 MCP。
  • 会话和用量。 可以浏览 DeepSeek Harness 的会话(含思考过程和工具调用);恢复和删除会话请在 DeepSeek Harness 里操作。用量从会话记录导入,走 DeepSeek 账号的请求在用量页单独显示为「DeepSeek 账号(OAuth)」。
  • 「应用」页管理 DeepSeek Harness。 用 npm 安装、升级、卸载 @deepseek-ai/dsh,卸载不删你的数据。
  • DeepSeek Harness 不经过本地路由。

Oh My Pi 的用量统计

用量页现在会统计 Oh My Pi 的用量,有自己的应用分类(#9046、#8939)。子代理的用量、对话之外的模型调用也会算进去,首次导入会包括以前的子代理会话。Oh My Pi 和 Pi 用同一个会话目录时,各自只导入自己的会话。Pi 已导入的数据不用重新导入。

「打开终端」可以跳过权限确认、追加启动参数

「打开终端」对话框多了两项(#9008):

  • 跳过权限确认。 勾选后 Claude Code 和 Antigravity 以 --dangerously-skip-permissions 启动,Codex 以 --dangerously-bypass-approvals-and-sandbox 启动。默认不勾。
  • 附加参数(可选)。 填 --debug、--append-system-prompt "Be concise" 这类参数,接在启动命令后面。用空格分隔,含空格的值用引号括起来,最多 16 个。参数只作为参数传给程序,不会被当成命令执行。

两项都只用于这次打开的终端,不写进任何配置;终端打开成功后,CC Switch 会按应用记住你的选择。

Codex 卡片也能「打开终端」

以前 Codex 卡片上没有这个按钮。现在第三方卡片打开的终端只用这张卡:以 codex -c ... 启动,不改 config.toml,Key 通过环境变量传入,不出现在命令行里。当前供应商在 config.toml 里留下的设置会尽量改成不影响这张卡的值,改不了的(比如请求头、指定的 profile)会提示先切到这张卡再打开,避免当前供应商的 Key 被发到别处。当前使用中的卡直接启动 codex。

清除 WebDAV 配置

以前配好 WebDAV 同步后,只能关掉自动同步,地址、账号、密码一直留在本机(#8977)。现在 WebDAV 同步设置里有「清除配置」按钮,确认后从本机删除这些信息并停止自动同步;云端已上传的数据不会删除。

Skills:打开目录、复制名称、查看文档

  • 已安装的 Skill(#8993):⋯ 菜单里可以「打开目录」,在文件管理器里打开这个 Skill 的文件夹;点击 Skill 名称就能复制名称。原来的「复制目录名」去掉了。
  • 发现页(#9039):每一行多了「打开文档」按钮,安装前可以先看说明,没有文档时打开仓库主页。

改进

GitHub Copilot 的 Claude 模型提示缓存命中率大幅提高(#8908)。以前 Copilot 的 Claude 模型一律转成 Chat Completions 格式发送,会丢掉缓存标记,Claude Code 在对话中途插入的系统消息还会打断缓存。现在 Copilot 支持原生 Anthropic 接口的模型直接走原生接口,Copilot 企业版长会话的缓存命中率实测从约 35% 提高到约 95%。

添加、启用、停用、删除 Skill 仓库时,只重新读取这一个仓库(#8907、#1426),不再把所有仓库重新下载一遍。点刷新按钮仍会全部重新读取。

托盘和用量设置里也能看到绑了账号的 Claude 官方卡额度。 以前只有卡片上显示,托盘里没有,用量设置弹窗还显示成未启用。

Claude Desktop 的路由服务也接受 x-api-key 传令牌(#5123),令牌校验改成固定耗时的比较(#7488、#7482)。

Claude 配置目录在 WSL 里时,授权中心直接说明暂不支持 Claude 账号,「添加账号」「重新登录」不可用。以前会让你改用「打开终端」,但这时打开的是 Windows 里的 Claude Code,同样用不了。

MCP、Skills 列表悬停勾选框时不再同时弹出两个提示;问号帮助卡片改为显示在右边,不再挡住鼠标,长内容会换行、在卡片里滚动(#8593)。

从别处跳到授权中心的某一组时,页面其他部分不再跟着移动(#8964)。

OpenCode、OpenClaw、Hermes 的配置文件读不了时,供应商页会显示错误(#9044)。以前页面像从没配置过一样空着,添加供应商失败后才看到报错,还会留下一条多余的记录。

托管的 ChatGPT、xAI 账号登录过期时,提示改为「请在授权中心重新登录这个账号」。 以前提示运行一条并不存在的命令。

预设: 新增 OspreyAI、讯飞星火 Astron Coding Plan 的 Claude Code 预设(#9036);TokenFlux 改用新域名 tokenflux.com,tokenflux.dev 作为备用地址。

修复

  • macOS 上连了需要 OAuth 登录的远程 MCP 时,切换 Claude 账号报「Claude Code 的登录信息太大,无法写入钥匙串,没有切换」(#9002)。MCP 的登录信息和账号存在同一个钥匙串条目里,超过了一次写入的长度上限。现在超长时改用和 Claude Code 一样的写法。
  • 开了全局代理时,在授权中心添加 Claude 账号,浏览器登录成功后报 403(#9038)。换取令牌是 Claude Code 自己完成的,以前它没有用到全局代理。现在 CC Switch 运行 Claude Code 登录、查额度时会把全局代理传给它(SOCKS 代理 Claude Code 不支持,不传)。
  • Claude Desktop 新会话默认用 Fable,而且模型顺序每次启用配置都会变(#7491、#7457、#8973)。Claude Desktop 把模型列表里的第一个当默认模型,以前按字母顺序写。现在按界面上 Sonnet、Opus、Fable、Haiku 的顺序写,新会话默认用 Sonnet 档。
  • MiniMax 周额度用完后,卡片和托盘里不再显示周额度,5 小时额度刚重置时看起来像额度全满(#8124、#8123)。现在显示为红色的「已用完」和周额度重置倒计时。
  • 没在用的供应商设了自动查询间隔,余额也不刷新(#8342、#8335)。
  • 上游地址填成了路由自己的地址时,请求被无限转回路由,内存不断增长(#8598)。现在直接报配置错误。
  • Claude Code 经路由连 Gemini 时,工具调用后报 400:签名放错位置报「Unknown name thoughtSignature」(#6690);CC Switch 重启后或较早的轮次丢了签名,Gemini 3 以上拒绝请求(#6833);Vertex 上工具结果后面跟着文字时报「Requests ending with a model turn are not supported」(#8988)。
  • Claude Code 经路由转 OpenAI Responses 时,WebSearch 带屏蔽域名就直接报 400(#8979)。现在 API Key 接入的 Responses 上游会原样传过去;ChatGPT 官方登录的路由不支持屏蔽域名,仍会明确报错。
  • Codex 0.163 以上经路由连 xAI 时报 400(#8997、#8996)。
  • Codex 的 config.toml 里有 [[skills.config]] 这类数组表时,第三方供应商的地址被写进了这张表里(#9029、#9023)。
  • OpenCode 新格式(V2)的供应商「检测连通」报缺少 options.baseURL(#8969)。
  • 上游报错时,请求日志存下整页 HTML 报错,数据库和备份越来越大(#9010、#6706)。现在每条只存前 4096 个字符;已经存下的旧记录这次不清理。
  • Windows 上用 MyDockFinder 这类第三方任务栏时,点托盘图标没反应(#8729、#8565)。
  • Kimi Code 0.43.0 以前的版本在「应用」页升级后版本不变(#9032)。旧版本没有自动确认升级的选项,现在改用安装它的包管理器,或重新运行官方安装脚本。
  • 「应用」页里,程序文件在但运行不起来的应用,分在「已安装」组里却显示「未安装」。 现在显示为「无法运行」,并给出原因。
  • Antigravity 的 CLI 和 IDE 都装了时,在 IDE 里继续的旧会话用量不更新、会话打不开(#8941)。

升级说明

数据库版本从 23 升到 24,为 MCP 和 Skills 增加 DeepSeek Harness 的开关。升级前会自动备份数据库;升级后再退回旧版本,旧版本会提示数据库版本过新,打不开。

  • DeepSeek Harness 默认显示在侧栏,不用的话可以在「应用」页关掉「在侧栏显示 DeepSeek Harness」。

致谢

感谢 @funkpopo、@yang227、@Byzhazha、@YUZHEthefool(DeepSeek Harness 支持、账号登录与用量统计)、@shimenga、@allenxu09(Oh My Pi 用量统计;allenxu09 还做了第三方任务栏的托盘点击、Skill 仓库按需读取)、@linghaoSu(Copilot 原生接口)、@hekuanga(Gemini 签名位置)、@SailingLoong(Claude Desktop 模型顺序)、@John1Tang、@yukitakasama(Claude Desktop 令牌校验)、@cenglin123(MiniMax 周额度)、@deefery(xAI 请求)、@szupzj18(Codex 数组表)、@zayokami(请求日志报错截断)的贡献。funkpopo 还做了 Skills 打开目录、余额自动刷新、帮助提示、路由自环检测和授权中心跳转。

感谢 @MTpupil、@router0mail、@AceGain、@foxbye、@xzxiaoshan、@CYRickyArAr、@Justinckkk、@bzqCoding、@failedman-1、@leoXu-612、@xyzper、@TeaDrink666、@hedandan1989、@xthomaswang、@yeuxuan、@JasonDing1024、@didahapy-ux、@lbigdate、@reboom、@sojo-negai、@muchenkezhan 报告问题、提供复现信息和修复思路。

特别感谢以下贡献者:你们的 PR 发现并修复了真实的问题,只是同样的问题后来在主线上另行修好,PR 因此关闭。@HP-network、@jzcangshu、@HadesScience、@cc-claws。

完整的技术细节请见 CHANGELOG。

CC Switch v4.0.21

Choose a tag to compare

@github-actions github-actions released this 26 Oct 13:47

CC Switch v4.0.21

本版本为 Claude Code 增加了多个官方订阅账号的切换:在授权中心添加几个 Claude 账号,每张官方卡选一个,切到哪张卡,Claude Code 就用哪个号;想几个号同时用,从卡片上「打开终端」,那个终端固定用卡片上的号。登录走 Claude Code 官方的流程,令牌只留在本机的 Claude Code 里,CC Switch 不上传、不刷新、不登出。绑了账号的卡片和授权中心都会显示每个号的套餐和剩余额度。另外,「打开终端」挪到了卡片上,Codex 的模型列表可以拖动排序,轻量模式重启后保持。修复了托管 ChatGPT 账号重启后误报登录过期、Codex 经路由时请求发到了别的地址、Codex 的 MCP 配置里多出 timeout / autoApprove、npm 12 下 OpenCode 和 Grok Build 装不好、Kimi Code 用量的时间不对、Oh My Pi 的 models.yml 里有 &、*、! 时无法编辑等问题。4.0 完整的更新内容请见 v4.0 发布说明。

English → | 日本語版 →


新增

在多个 Claude 官方订阅账号之间切换

手上有不止一个 Claude 订阅(比如个人 Max 和公司 Team,或者多个 Pro 账号)时,以前只能在 Claude Code 里 /logout 再 /login,或者自己给每个号建配置目录。现在可以在 CC Switch 里管理多个号(#1928)。

图文用法和逐条的合规对照见 使用 CC Switch 切换多个 Claude 官方订阅以及合规问题。

安全与合规。 订阅账号交给工具管理,最要紧的是令牌安全、不违反 Anthropic 的条款。这个功能按 Claude Code 官方文档的做法实现,令牌始终只在你本机的 Claude Code 里:

  • 登录走官方流程。 添加账号时运行的是 Claude Code 自带的 claude auth login --claudeai,密码和授权都在 claude.ai 的官方页面完成。CC Switch 没有自己的 Claude 登录,也没有自己的 OAuth 客户端。Anthropic 的法律与合规页要求 Claude 账号的登录必须通过 Anthropic 自己的流程完成,并且明确不限制用户用自己的订阅登录未经修改的 Claude Code。
  • 多账号用的是官方推荐的方法。 每个号一个独立的配置目录,用 CLAUDE_CONFIG_DIR 区分,和 Claude Code 认证文档里「Log in with multiple accounts」一节的方法一样,CC Switch 只是替你建好目录、打开终端。
  • 令牌不离开本机。 令牌只存在 Claude Code 自己的位置(macOS 的钥匙串,Linux、Windows 的 .credentials.json),不上传,不随云同步,也不写进 CC Switch 的数据库。CC Switch 自己只记邮箱、组织、套餐这类账号资料和登录过期时间,不记令牌。
  • 不替你发请求。 CC Switch 没有服务器,不用订阅令牌调用模型;对话请求都由本机未经修改的 Claude Code 直接发给 Anthropic,用量计在你自己的账号上。查额度时在本机直接查 Anthropic 官方的额度接口,和 Claude Code 自己的 /usage 查的是同一份数据。
  • 不刷新、不登出、不改 Claude Code。 令牌一律由 Claude Code 自己刷新。删除账号只删 CC Switch 为它建的目录(macOS 上连同这个目录在钥匙串里的条目),不会让这个号在任何地方退出登录。CC Switch 不修改 Claude Code 的程序文件。
  • 只管你自己的账号。 不按额度自动轮换账号,也不提供把订阅共享给别人的功能。

切卡即切号会在本机 Claude Code 的存储位置之间移动登录(只按 Claude Code 自己的格式),官方文档没有专门讲到这种用法。只想用文档写明的方式的话,卡片保持「跟随 Claude Code 登录」,其他号只从卡片「打开终端」使用。

怎么用:

  • 添加账号。 在授权中心的 Claude 组点「添加账号」。浏览器会打开 claude.ai 的官方授权页,登录后账号自动出现在列表里。浏览器授权后回不到本机时,可以把地址栏里的地址或页面上的代码粘贴回来。每个号的目录互不干扰,会同步你在 ~/.claude 里的设置、MCP 和 CLAUDE.md(登录凭据和路由相关的设置除外)。
  • 给官方卡选账号。 Claude 官方卡的「登录方式」下拉和 Codex 官方卡一样:上面是已登录的账号,下面是「添加或管理 Claude 账号」(跳到授权中心)和「跟随 Claude Code 登录」。一个号建一张卡就行。
  • 切卡即切号。 切到选了账号的官方卡时,CC Switch 把这个号的登录放进 Claude Code 默认读取的位置,原来那个号放回它自己的目录。终端、IDE 插件、脚本里的 claude 都改用这个号,已经在运行的 Claude Code 也会立即跟着换,不用重启。切到选了账号的官方卡时,现在的登录如果还不在授权中心会先收进来。切换时持有 Claude Code 自己的锁;切换中途 CC Switch 意外退出的话,下次切换或启动时会自动补完或撤回。选「跟随 Claude Code 登录」的卡不碰登录,不添加账号的人不受影响。
  • 几个号同时用。 在选了账号的卡上「打开终端」,这个终端固定用卡片上的号,之后切换卡片不影响它。
  • 套餐和额度。 卡片副标题显示账号和套餐(如 Max 20x),登录需要更新时带一个提示;卡片底部默认显示这个号的剩余额度,授权中心里每个号也有一样的额度列。不在用的号令牌过期时,CC Switch 在它的目录里运行一次 Claude Code 自带的 claude -p /usage(每个号最多 10 分钟一次),由 Claude Code 自己刷新登录、查询额度,CC Switch 只读结果。/usage 不调用模型,不消耗对话额度。没选账号的官方卡也会显示当前登录的套餐。

几点注意:

  • 切号后正在用的 Remote Control 会断开;换号后第一条消息要重建提示缓存,会慢一点、多用一点额度。
  • 在设置里覆盖了 Claude 配置目录(包括指向 WSL)时,切卡不会切换登录,界面会提示改用「打开终端」。

Codex 的模型列表可以拖动排序

Codex 供应商表单里的模型列表,每行开头有拖动手柄,可以用鼠标或键盘调整顺序(#8870)。这个顺序就是 Codex 里 /model 菜单的顺序。第一行代表默认模型时,拖到第一行的模型成为新的默认模型。以前要删掉再加回来才能挪位置。

改进

「打开终端」挪到卡片上。 以前在 ⋯ 菜单里,现在是「编辑」左边的一个图标按钮。悬停提示是「以此供应商打开终端」,终端固定用这张卡时(填了自己的地址和 Key 的卡、选了 Claude 账号的官方卡)会写「(环境隔离)」。

授权中心每组的「添加账号」按钮固定在标题右边。 以前没有账号时按钮会挪到空白提示里,几组卡片的按钮高低不一。ChatGPT 的登录方式改成按钮旁边的一个小下拉。标题里的「删除全部账号」菜单去掉了,账号在各自那一行的菜单里删除。各个账号的额度条现在对齐,长度一致。

轻量模式重启后保持。 在轻量模式下退出 CC Switch,下次启动仍是轻量模式,不再弹出主界面。从 ccswitch:// 链接冷启动时照常打开主界面,好显示导入对话框。

Hermes 卡片显示「默认」,「设为默认」移到 ⋯ 菜单里。 Hermes 把添加的供应商都写进 config.yaml,当前那家只是默认值,和 OpenClaw、OpenCode、Kimi Code 一样。以前的电源图标「启用」按钮看起来像开关。

卡片变成「使用中」时,用量一栏不再左右挪动。

MCP 选了 SSE 时提示哪些应用不支持(#8882)。Codex 只支持 stdio 和 HTTP,会把 SSE 地址当作 HTTP 连接,服务端只支持 SSE 时连不上;Pi 和 Antigravity 保存时会报错。现在「写入到」下面会提前提示。

Claude Desktop 的上游地址填 githubcopilot.com 时,上游格式显示为「由路由按模型自动选择」(#8838),和选 GitHub Copilot 供应商时一样。

OpenCode 的 OMO、OMO Slim 卡片不再显示「检测连通」(#8842)。它们只是代理和模型的对应关系,没有地址可测,以前点了会报错。

土耳其语翻译补全(#8836)。

预设: DeepSeek 一律改用 Flash 模型;Kimi 官方预设加入 K3.1 Pro 和 K3.1 Pro HighSpeed,可以选 low / high / max 思考程度(#8867);OpenClaw 的 MiniMax M3.1 Flash 可以选 max;新增 ClinePass(#8885)、TeamoRouter Claude(#8266);Claude Desktop 的 OpenCode Go 改用官方文档的地址,额度也能查了(#8720、#8779)。

修复

  • 托管 ChatGPT 账号重启后显示「登录已过期」、不能切换,过一会儿又自己好了(#8901)。以前刷新登录时遇到任何 HTTP 403 都当成登录失效,网络错误也显示成过期。现在和 Codex CLI 一样,只有 401 或明确的令牌失效错误才算过期;一时的网络问题照常重试,额度保留上一次的结果。托盘切换后,主界面里查询失败的额度也会重新查询。
  • Codex 经本地路由时,请求发到了别的地址(#8849、#8848)。config.toml 里有多个供应商表、或上面有一行注释掉的旧地址时,以前取的是文本里第一个 base_url,会带着选中供应商的 Key 发到别处。现在按 model_provider 选中的那张表取地址。
  • Codex 远程压缩的用量有时漏记(#8879)。
  • Codex 的 MCP 配置里多出 timeout、autoApprove,Codex 桌面版报未知设置,--strict-config 拒绝加载(#8843)。这两个字段是别的客户端的,以前原样写进了 config.toml,手动删掉下次同步又会写回来。现在写给 Codex 时去掉,其他应用不受影响。
  • Codex 经中转连到多个 Azure 资源时,会话中途报 400「created under a different Azure OpenAI resource」,无法继续(#8877)。现在收到这个错误后重试一次,去掉历史记录的条目 ID。正常的请求不受影响。
  • ClinePass 这类把 Chat Completions 结果包在 data 里返回的上游,非流式请求报 422「No choices in response」(#5658)。
  • npm 12 下,「应用」页装的 OpenCode 在 Windows 上报「与你运行的 Windows 版本不兼容」,Grok Build 升级后仍在跑旧版本(#8863)。npm 12 默认不运行安装脚本,这两个包要靠它放置真正的程序。现在安装和升级时允许它们的安装脚本。
  • Windows 上 Hermes 在「应用」页显示成两处安装(#8839)。同一目录里遗留的 hermes.cmd 不再算一处安装。
  • Kimi Code 的用量,一整轮对话的请求时间都一样,按小时统计时挤在最后一小时(#8899)。现在按每次请求完成的时间记。已导入的记录在会话文件下次变化时会更正。
  • Oh My Pi 的 models.yml 里有 name: Search & Fetch 这类含 &、*、! 的值时,保存供应商时报「此 YAML 使用了 CC Switch 无法安全编辑的格式或语法」(#8897)。
  • ~/.gemini/.env 里写成 export GEMINI_API_KEY=... 时,导入后没有 Key,切回默认供应商还会把它从文件里删掉(#8862、#8861)。
  • 从启用了提示词的项目切到没有提示词的项目,原来的提示词没有停用。
  • 用量统计页展开或收起侧栏时,趋势图右边缘跳动(#8548)。

致谢

感谢 @L4XB(Codex 路由地址、Gemini export 写法)、@syxscott(Codex 远程压缩用量)、@jlxzl(Claude Desktop 的 OpenCode Go 地址)、@Railgun-wiki(Claude Desktop 的 Copilot 地址识别)、@VipCrazyMaster(OMO 卡片的连通检测)、@allenxu09(用量趋势图)、@alkank(土耳其语翻译)、@2867297362mjb-sketch(TeamoRouter 预设)、@zayokami(路由端到端测试)、@Ming-Sir-69(Windows 编译修复)、@SaladDay(issue 与 PR 模板、CI)的贡献。

感谢 @chunliang7258、@Lightly20110815、@Catcaca11j、@xovow、@Haoxuan1016、@karenepitaya、@lwdreamroom、@QingYunA、@bamboodew、@Little-TBS、@sojo-negai、@ppdragon2026、@smart-wcm、@oscarachiang 报告问题、提供复现信息和修复思路。

特别感谢 @octo-patch:你的 PR 发现并修复了真实的问题,只是同样的问题后来在主线上另行修好,PR 因此关闭。

完整的技术细节请见 CHANGELOG。

CC Switch v4.0.20

Choose a tag to compare

@github-actions github-actions released this 24 Oct 15:32

CC Switch v4.0.20

本版本新增对 Oh My Pi 的支持,它是 CC Switch 管理的第 13 个应用:多个供应商可以同时写进它的 models.yml,MCP、Skills、提示词同步给 Oh My Pi,会话可以浏览和恢复,「应用」页可以安装、升级、卸载 Oh My Pi。「应用」页分成「已安装」「未安装」两组,已安装的应用可以拖动排序,侧栏跟着这个顺序。Kimi 官方账号的卡片现在可以编辑模型、从 Kimi Code 里移除;托管的 ChatGPT 账号可以用浏览器登录。另外修复了 DeepSeek 余额用完后显示成「套餐已过期」、Kimi Code 子代理的用量没有统计、Skills 更新一直报 HTTP 429、Pi 的 API Key 写成环境变量引用时额度查询 401、Claude Code 会话标题显示成 <local-command-stdout>、Linux 上开启应用级窗口按钮后页头拖不动等问题。4.0 完整的更新内容请见 v4.0 发布说明。

English → | 日本語版 →


新增

Oh My Pi

Oh My Pi(命令是 omp)现在是一个独立的应用,有自己的供应商、MCP、Skills、提示词和会话(#6747、#8308)。配置在 ~/.omp/agent,用了命名 profile 时在 ~/.omp/profiles/<名称>/agent;也可以在设置里改成别的目录。

  • 供应商可以同时启用。 和 Pi 一样,卡片上是「启用」「移除」,多个供应商同时写进 models.yml,在 Oh My Pi 里选用。只改 CC Switch 写的那一条,文件里其他内容原样保留;用了 YAML 锚点、标签这类写法的条目不会被重写,会提示你手动修改。
  • 写入前按 Oh My Pi 的规则检查。 Oh My Pi 只要有一条供应商不合规,就会停用所有自定义供应商,所以填了它不接受的值,保存时会直接提示,不会写进去。只有旧版的 models.json、还没有 models.yml 时,会提示你先运行一次 omp,让它自己迁移,不会新建文件挤掉你原来的供应商。
  • 添加供应商。 表单和 Pi 共用,预设也来自 Pi 的目录;「获取模型列表」后在弹窗里勾选模型。「模型自动发现」(让 Oh My Pi 自己去接口查有哪些模型)和请求头、兼容选项一起放在「高级选项」里。API Key 可以写环境变量名,查询额度时 CC Switch 会按 Oh My Pi 的规则取出实际的值。
  • MCP、Skills、提示词。 MCP 写进 mcp.json,Skills 装进 Oh My Pi 自己的技能目录,提示词写进 AGENTS.md。Oh My Pi 还会从其他工具的目录里找 MCP 和技能,实际加载的可能比 CC Switch 里列出的多,MCP 和 Skills 页 Oh My Pi 一列的说明里有解释。
  • 会话。 可以浏览和恢复 Oh My Pi 的会话,预览里能显示项目里的图片。
  • 「应用」页管理 Oh My Pi。 用官方安装脚本安装(装了 Bun 就用 Bun,没装就下载官方的二进制),升级运行 omp update(用 Homebrew 装的仍然走 Homebrew),可以卸载。
  • Oh My Pi 不经过本地路由,也暂不统计用量。

托管 ChatGPT 账号可以用浏览器登录

在授权中心或 Codex 的供应商表单里添加托管 ChatGPT 账号时,可以在「登录方式」里选「浏览器登录」(#8288、#8284)。有些企业工作区关掉了设备代码登录,这些账号以前加不进来;重新登录也可以用浏览器。「设备代码登录」仍然可选。

改进

「应用」页分成「已安装」「未安装」两组。 每组标题带数量,没有应用的组不显示;刚打开、还在检测时先显示一整张表,检测完再分组,行不会一个个跳。Claude Desktop 没有命令可查,按是否装了 Desktop 来分组,行里照旧写是否已接入 CC Switch。

已安装的应用可以拖动排序。 鼠标移到某一行上,行首会出现拖动手柄,和供应商卡片排序一样。侧栏和默认打开的应用都跟着这个顺序;顺序只存在本机,不随云同步。

Kimi 官方账号的卡片可以编辑和移除。 以前官方卡片只能在授权中心管理,模型停在登录时的那一份。现在可以编辑卡片:连接和登录仍由授权中心管,这里只改模型,「获取模型列表」读取这个账号当前可用的官方模型,带上官方的上下文窗口、能力和思考档位。官方卡片也可以像其他 Kimi 供应商一样从 Kimi Code 里「移除」,卡片和登录都保留,再点「添加」就恢复;要删除,先移除,或者到授权中心删。

没有 Kimi Code 套餐的 Kimi 账号显示「未订阅」。 以前授权中心和官方卡片的额度一栏是空的,看起来像查询失败。

余额用完也显示金额。 余额为零或欠费时,供应商卡片和托盘以前只写「余额已用完」,看不出欠了多少,红字也和「额度查询失败」分不清。现在一律显示「余额 <金额>」,为零或负数时卡片上整行变红、托盘里变成橙色,和以前一样。

额度查询失败的中文提示改成「额度查询失败」(以前是「额度没查到」),供应商卡片、授权中心和托盘一起改。

Pi 获取模型列表后在弹窗里勾选。 以前只能逐行从下拉框里选,现在和 OpenCode、Codex、Kimi Code 一样弹出列表,勾选的模型自动加成一行,从预设或 models.dev 补上参数;取消勾选会删掉对应的行。逐行的下拉框还在。

Pi 的请求头和兼容选项收进「高级选项」。 默认收起,和 Claude Code、Codex 的表单一致;兼容选项的说明改成了白话。

Claude Code、Claude Desktop 选 GitHub Copilot 供应商时,上游格式显示为「由路由按模型自动选择」(#8196、#8195)。Copilot 的上游格式本来就按模型自动选,以前表单里还能手选,选了也不生效。

用量页明细页签的数量一次全显示。 以前「模型」页签要点开才有数量,切换应用时三个数量会消失再出现,页签栏跟着跳。

价格表新增 Kimi K3.1 Pro 和 K3.1 Pro HighSpeed。

土耳其语翻译补全(#8616)。

预设: 各家预设的模型更新到当前的最新型号,填上 Key 就能用。

修复

  • DeepSeek 余额为零或欠费时,卡片和托盘显示「套餐已过期」,余额数字不见了(#8812)。DeepSeek 返回的「是否可用」只表示余额够不够调用,余额一到零就变成否,Key 本身仍然有效。现在照常显示余额;Key 真的失效时,仍按认证失败提示。
  • Kimi Code 子代理的用量没有统计进来(#8792)。Kimi Code 把每个子代理的记录写在单独的文件里,以前只读了主代理的那份。现在每个子代理都会导入,按每次调用记账,不会和主代理的汇总重复计算。
  • Antigravity 子代理和 ACP 会话的用量记成未知模型(#8693)。现在从 agy 本地的对话数据库里找回模型(只读,不会等 agy 写完)。
  • Skills 安装或更新一直报 HTTP 429(#8813)。下载 GitHub 仓库压缩包时没带 User-Agent,GitHub 对这类请求限流更严,多人共用一个出口 IP 时更容易碰到。现在会带上 CC-Switch/<version>。
  • Pi 的 API Key 写成 $NAME、${NAME} 这类环境变量引用时,额度和余额查询报 401(#8822)。以前把引用原样当成 Key 发出去,现在按 Pi 的规则取出变量的值;变量没设置时,也不会再把引用当成 Key 发出去。!command 形式的 Key,CC Switch 仍然不会执行。取出的值只用于这次查询,不写回配置。
  • Claude Code 会话在会话管理里的标题显示成 <local-command-stdout>Set model to opus</local-command-stdout>(#8799、#8798)。会话一开头运行了 /model、/effort 这类本地命令时,标题会这样;最后运行了本地命令时,列表里显示的最后一条消息也是命令输出。现在会跳过这些记录。
  • Linux 上开启「启用应用级窗口按钮」后,页头拖不动窗口,窗口边缘也没有缩放光标(#8092、#8091)。
  • Codex 经 Chat 上游时,带图片的孤立工具结果里,占位文字说图片在「下一条消息」里,实际并没有这条消息(#8157)。现在改成说图片已经作为图片附上。

升级说明

数据库版本从 22 升到 23,为 MCP 增加 Oh My Pi 的开关。升级前会自动备份数据库;升级后再退回旧版本,旧版本会提示数据库版本过新,打不开。

  • Oh My Pi 默认显示在侧栏,不用的话可以在「应用」页关掉「在侧栏显示 Oh My Pi」。

致谢

感谢 @JackieJK、@allenxu09(Oh My Pi 支持)、@Llugaes(ChatGPT 账号浏览器登录)、@dsdbb520(Antigravity 子代理用量)、@L4XB(Claude Code 会话标题)、@vianrina(Linux 窗口拖动)、@Railgun-wiki(Copilot 上游格式)、@NeeYoonc(孤立工具结果的图片占位)、@alkank(土耳其语翻译)的贡献。

感谢 @CypressStar、@taylortaurus、@SoraStr、@Lain-in-coding、@TomMao23、@L-Molish、@taki-ohh 报告问题、提供复现信息和修复思路。

特别感谢以下贡献者:你们的 PR 发现并修复了真实的问题,只是同样的问题后来在主线上另行修好,PR 因此关闭。@yvzhou1111、@AkimioJR、@KirisameLonnet。

完整的技术细节请见 CHANGELOG。

CC Switch v4.0.19

Choose a tag to compare

@github-actions github-actions released this 23 Oct 12:49

CC Switch v4.0.19

本版本新增对 Kimi Code 的支持,它是 CC Switch 管理的第 12 个应用。**Kimi Code 的命令行版和桌面版共用同一份配置,所以 CC Switch 的支持对两者都适用。**Kimi Code 的多个供应商可以同时写进它的配置,在 CC Switch 里添加、移除、设为默认;MCP、Skills、提示词同步给 Kimi Code,会话可以浏览和恢复,用量从会话日志导入;「应用」页可以安装、升级、卸载 Kimi Code。Kimi 编程套餐也能在授权中心登录,可以添加多个账号,每个账号显示昵称和额度。用量统计页重新排了版:时间、应用、供应商和模型放在同一行,选中的指标同时决定趋势图和热力图,明细表改成带数量的页签,请求日志可以选每页条数。另外修复了聚合模式下从第三方 GPT 切到其他模型后 Codex 一直报 unsupported call: exec、在 Linux/WSL 上从终端启动时打开「关于」页整个应用卡死、给 Codex 选模型后图片输入被关掉、Claude Code 的 VS Code 扩展经 Responses 上游时显示 redacted_thinking 报错、macOS 上 Claude 订阅额度读错钥匙串条目、Antigravity 额度缺少 Gemini 一组、Hermes 装在 WSL 里时控制台在 Windows 上启动、按 Esc 一次关掉所有叠起来的面板等问题。4.0 完整的更新内容请见 v4.0 发布说明。

English → | 日本語版 →


新增

Kimi Code

Kimi Code(命令是 kimi)现在是一个独立的应用,有自己的供应商、MCP、Skills、提示词、会话和用量(#8687)。配置在 ~/.kimi-code/config.toml,设置了 KIMI_CODE_HOME 时用它指定的目录。

💡 命令行版和桌面版都适用。 Kimi Code 的命令行版和桌面版共用 ~/.kimi-code 里的同一份配置和登录,在 CC Switch 里添加的供应商、MCP、Skills、提示词和官方账号,两个版本都能直接用。

  • 供应商可以同时启用。 和 OpenCode 一样,多个供应商可以同时写进 Kimi Code 的配置,在 Kimi Code 里用 /model 选择。「可添加」的卡片点「添加」写进配置,不改默认模型;已添加的卡片可以「移除」,「设为默认」在卡片的更多菜单里。Kimi Code 正在用作默认模型或子代理模型的供应商不能移除,会提示你先在 Kimi Code 里换掉。只改 CC Switch 管的那些供应商和模型,其他配置原样保留。
  • 添加供应商。 预设和其他应用一样按「模型厂商」「第三方平台」「云服务商」「本地」分组,另有「账号登录」分组用来登录 Kimi 官方账号。「获取模型列表」后选中的模型会自动填上上下文窗口、思考和图片输入;每个模型一行,可以填显示名称(Kimi Code 的 /model 里显示它)。「始终思考」「按需加载工具」旁边有「?」说明;请求头挪进了「高级选项」。
  • MCP、Skills、提示词。 MCP 支持 stdio、HTTP 和 SSE;Skills 不会覆盖 Kimi Code 自己目录里的同名技能。
  • 会话和用量。 可以浏览和恢复 Kimi Code 的会话;用量从会话日志导入,包括输入、输出、缓存、首字时间和耗时。
  • 「应用」页管理 Kimi Code。 用官方安装程序安装,可以升级和卸载。
  • Kimi Code 不经过本地路由,也没有聚合模式。

Kimi 官方账号

在授权中心可以「登录 Kimi」(添加供应商里选「Kimi Code 官方登录」也会带你过去),选国内版或海外版,在浏览器里完成授权后自动添加官方模型(#8710、#8726)。

  • 多个账号。 第一个账号用 Kimi Code 自己的登录位置;之后添加的每个账号都有自己的凭据、供应商和模型,在 Kimi Code 的模型列表里显示为「Kimi 订阅 <昵称>」。在授权中心点「使用此账号」,或在卡片更多菜单里选「设为默认」,就把 Kimi Code 的默认模型换成这个号的。官方卡片不能在供应商页编辑或删除,要在授权中心管理。
  • 昵称和额度。 每个账号和官方卡片都显示昵称和额度。快过期的登录会在后台续期,和 Kimi Code 自己用同一把锁,不会和它抢;Windows 上只读取额度,不续期。
  • 重新登录和删除。 重新登录同一个号会更新原来的那一份,不会多出一个;删除单独添加的账号会一起删掉它的供应商、模型、凭据和卡片,正在使用时不能删。Kimi Code 自己登着的号只会从列表里移出,CC Switch 不会替它退出登录。
  • 在 Kimi Code 里已经登录的号会自动出现在授权中心。

改进

用量统计页重新排版(#8711)。

  • 页面右上角只留一个同步按钮(显示上次同步时间)和一个设置按钮,数据来源、显示和价格设置都在设置里。请求日志显示哪些列,改在请求日志页签右侧的「请求日志的列」菜单里选。
  • 时间、应用、供应商和模型放在同一行,供应商和模型合成一个两级菜单。
  • 概览里点选一个指标,趋势图和热力图就显示它;输入、输出、缓存读写四项 Token 可以展开成第二行。
  • 明细页签去掉了「设置」,剩下「请求日志」「供应商」「模型」三个,标签上带数量;表格按内容宽度排列,太宽时左右滚动,时间和应用两列固定在左边。
  • 请求日志可以选每页 10、20 或 50 条,默认 20 条,会记住你的选择。没有数据的格子显示「—」。

OpenCode、OpenClaw 的「设为默认」挪进更多菜单。 以前已添加卡片上的星形图标不好认,也看不出有没有选中。现在在卡片的更多菜单里,有多个模型的供应商可以从子菜单里选默认模型。OpenCode、OpenClaw、Hermes、Kimi Code 的默认供应商改用和「使用中」一样的蓝色标出。

Pi 的供应商标识始终显示。 用预设添加时也会显示并预填,可以修改;和别的 Pi 卡片重复时,输入框下方会提示,不能保存。以前要到保存时才报错。

MCP 服务器显示自定义的显示名称(#8692)。设置了显示名称的服务器,列表和删除确认框里都显示它,标识写在旁边。

会话页的项目分组标题整行都能点击展开和收起(#8709)。

预设: 新增 BuyToken、V-API。

修复

  • 聚合模式下从第三方 GPT 切到 DeepSeek、Kimi 等模型后,Codex 每一轮都报 unsupported call: exec(#8676)。第三方 GPT 和其他模型调用命令行工具的方式不同,以前切换时 Codex 不会先压缩历史,新模型照抄了历史里它不支持的调用。现在在这两类模型之间切换时,Codex 会先用原来的模型压缩一次;同一类模型之间切换照旧不压缩。
  • 在 Linux 或 WSL 上从终端启动 CC Switch,打开「设置 → 关于」整个应用卡死(#3241)。查询工具版本的命令占住了终端,被系统暂停。现在这个查询不再占用终端,最多等 10 秒。
  • 给 Codex 选了获取到的模型后,图片输入被关掉(#8682)。查到的资料说模型只支持文字时,以前会写成「只支持文字」,Codex 就拒绝图片,表单里也没有办法改回来。现在只在资料说支持图片时才填这一项,其他情况交给 Codex 默认的判断。
  • 选了中转站的某些模型后,填进来的是别家的参数(#8765)。以 DeepSeek-V4.1-Flash-1017 为例,models.dev 上没有 DeepSeek 自己的这个条目,以前会借用另一家托管的微调版本,填进去的是「只支持文字」和 262K 的上下文窗口,只有实际窗口的四分之一。现在查不到原厂条目时不再借用别家托管的条目,这几项留空。
  • Claude Code 的 VS Code 扩展经 OpenAI Responses 上游时,工具调用前显示 Unsupported content type: redacted_thinking(#8691)。只有加密内容的思考以前转成了扩展不认识的格式,现在改成和 Anthropic 一样的空思考块;发回上游的请求不变。只在最后才给出的思考摘要也会补上。
  • macOS 上 Claude 订阅额度查询失败(#8764、#8762)。钥匙串里有好几条同名条目时,可能读到一条只存了 MCP 登录信息的旧条目。现在先按当前用户的账号找,找不到可用的登录再回到原来的方式。
  • macOS 上 Antigravity 官方卡的额度只有 Claude/GPT,没有 Gemini。 Google 只把 Gemini 额度返回给较新版本的 agy,现在查询时会带上本机 agy 的版本。
  • Windows 上刷新 Antigravity 额度、获取模型列表时弹出黑色命令行窗口(#8700)。
  • Windows 上 Hermes 装在 WSL 里时,Web UI 未启动时点「打开终端并启动」,启动的是 Windows 上的 Hermes(#8689)。Hermes 配置目录指向 WSL 路径时,现在会在那个 WSL 发行版里运行 hermes dashboard。
  • Codex 请求带 session-id 或 thread-id 头时,路由认不出会话(#8718)。
  • 阿里云百炼、千问 Token Plan 的 Anthropic 地址获取不到模型列表(#8755)。
  • OpenCode Zen、Go 的供应商从 models.dev 补不全模型参数。 models.dev 换了这两家的地址,现在旧地址也能对上,deepseek-v4.1-flash 等模型又能自动填上参数。
  • 叠着打开好几个全屏面板时,按一次 Esc 全部关掉。 现在只关最上面那个。
  • 一个深链接还在导入时又来了第二个,第一个导入完成后会把第二个的确认框关掉(#8696)。
  • 用量页的「近 7 天」「近 14 天」「近 30 天」在夏令时切换前后多算或少算一天(#8719)。
  • 请求日志停在后几页时,总数变少后表格变空、回不去。 现在会退回最后一页。
  • 「应用」页没安装的工具下面多出一行英文的「not installed」。
  • 按下「高级选项」时文字跳动。

升级说明

数据库版本从 21 升到 22,为 MCP 和 Skills 增加 Kimi Code 的开关。升级前会自动备份数据库;升级后再退回旧版本,旧版本会提示数据库版本过新,打不开。

  • Kimi Code 默认显示在侧栏,不用的话可以在「应用」页关掉「在侧栏显示 Kimi Code」。

致谢

感谢 @funkpopo(Kimi Code 支持、Kimi 官方账号)、@94mashiro(用量统计页重新排版)、@AkimioJR(MCP 显示名称)、@minimote(会话分组标题)、@StrengW(Codex 会话请求头)、@clarkchen(百炼 Token Plan 模型列表)、@allenxu09(Claude 订阅钥匙串条目)的贡献。

感谢 @jelasin、@Yu-ZhL、@abing7k、@ligoweb、@scially、@Hades-Z、@haibara-brownie、@Tommie-P-xl、@ramonmi、@specetator、@ilov-vveu、@zjcadmin 报告问题、提供复现信息和修复思路。

特别感谢以下贡献者:你们的 PR 发现并修复了真实的问题,只是同样的问题后来在主线上另行修好,PR 因此关闭。@kuqitt、@GuanyuZ、@Amiyadesi、@cgheaven、@xu-song、@zhangyang-crazy-one、@m11y、@chen-985211、@1074854980、@xiaoshidefeng、@seth-shi、@Konsn666、@HyacinthHaru、@Komikawayi、@aofee、@yan9651688、@yulv706、@harrison-pan、@szupzj18、@yk4642d97f-boop、@czhmartinez、@ntdatt812、@YongmaoLuo、@moeacgx、@zichen0116、@John1Tang、@OriyukiAkari、@Piao-2024、@jintonglu6688、@hhhkkk666-dot、@mikkley、@SailingLoong、@fanxing-6、@songzhibin97、@kZime、@RoiexLee、@wangwenjier、@magicapple123、@jzcangshu、@lyfuci、@ggbdpq、@alfchao、@wrenfix、@NestorRay。

完整的技术细节请见 CHANGELOG。

CC Switch v4.0.18

Choose a tag to compare

@github-actions github-actions released this 21 Oct 16:16

CC Switch v4.0.18

本版本新增对 Antigravity CLI(agy)的支持,它是 CC Switch 管理的第 11 个应用。你可以为 agy 添加官方登录卡和第三方 API Key 卡。注意:Antigravity 的供应商只在从 CC Switch 卡片「使用此供应商打开终端」启动的 agy 里生效,在其他终端里直接运行 agy 不会用到它;MCP、Skills 和提示词同步给 agy,会话可以浏览和恢复,用量从会话日志导入;「应用」页可以安装、升级、卸载 agy。macOS 上,授权中心还能管理多个 Antigravity 账号:一键切换 agy 的登录,查看每个账号的额度,把官方卡绑定到某个账号。另外,Windows 上的应用内更新不会再因为文件被占用而重启电脑,MSI 安装时可以选择不创建桌面快捷方式;页头改为在应用名旁用小徽章显示实际的连接。还修复了 macOS 上并发请求多时路由因文件句柄耗尽而失败、从访达启动时「重启 Codex 守护进程」报 env: node、Claude Code 会话用 /cd 换目录后仍归在旧项目下、Windows 上打开终端后一直转圈直到关掉终端窗口、Codex 未使用的额度窗口显示倒计时、DeepSeek V4.1 Flash 没有计价等问题。4.0 完整的更新内容请见 v4.0 发布说明。

English → | 日本語版 →


新增

Antigravity CLI(agy)

Google 的 Antigravity CLI(命令是 agy)现在是一个独立的应用,有自己的供应商、MCP、Skills、提示词、会话和用量,和 Gemini CLI 分开管理(#8268、#2959)。

⚠️ Antigravity 的供应商必须从 CC Switch 以终端启动才生效。 和其他应用不同,CC Switch 不改 agy 自己的设置文件,所以 Antigravity 的卡片没有「切换」,也没有「使用中」。要用哪张卡,就点那张卡上的「使用此供应商打开终端」,在弹出的终端里运行的 agy 才会用这家供应商;在其他终端里直接运行 agy,用的仍是 agy 自己的 Google 登录和设置。(macOS 上在授权中心切换账号是例外:它改的是 agy 的全局登录,见下一节。)

  • 两种供应商卡。 官方登录卡用 agy 自己的 Google 登录,打开终端时用卡上选的模型启动 agy,只对这次会话生效;第三方卡填兼容 Gemini API 的地址和 Key,地址留空用 Google 默认的 API,Key 和地址只交给这个终端里的 agy,不写进 agy 的配置和 shell 启动文件(启动用的临时文件会自动删除)。模型列表来自 agy 自带的模型目录,填的是 agy 认得的显示名称。
  • MCP、Skills、提示词。 同步到 ~/.gemini/config,这是 agy 的全局定制目录,可能和同一台电脑上的 Antigravity IDE 共用。第三方卡启动的 agy 同样能用这些 MCP、Skills 和提示词。
  • 会话。 可以浏览 agy 和 Antigravity IDE 的会话,只显示你输入的内容,不显示 agy 自己附加的上下文;第三方卡启动的会话也能找到,并用同一张卡恢复。
  • 用量。 从会话日志导入(包括 Antigravity IDE 的会话),按每轮选择的模型记账,费用按价格表里对应模型的 API 价格估算。
  • 官方额度。 在官方卡上开启额度查询后,显示 Gemini 和 Claude/GPT 两组额度,每组有 5 小时和每周两个窗口;卡片上每组只显示剩得少的那个窗口,点开下拉可以看全部四个窗口和各自的重置时间。
  • 「应用」页管理 agy。 用官方安装脚本安装,用 agy update 升级(Homebrew 安装的也一样),可以卸载。
  • 深链接也可以导入 agy 的供应商、MCP 和提示词。

授权中心管理多个 Antigravity 账号(macOS)

agy 同时只能登录一个账号。现在授权中心多了 Antigravity 一组:点「用 Google 登录」或「添加账号」,在浏览器里添加账号,agy 里已经登录的账号也会自动收进来。

  • 切换。 在账号的菜单里选「切换 agy 到这个账号」,之后新开的 agy 都用这个号。原来登录的号会先收回授权中心,切走也不会丢。如果 agy 正在运行,会提醒你:已经打开的 agy 还用原来的号,而且可能把原来的号写回去,最好先退出。
  • 每个账号的额度。 每一行都显示自己的额度,不用切过去才能看。查额度只读额度,不调用模型。不能使用 Antigravity 的账号(比如有年龄限制的)会显示 Google 给出的原因,而不是一句看不懂的 403。
  • 把官方卡绑定到账号。 官方卡的表单里可以选一个账号:打开终端前会先把 agy 的登录切到这个号,已经是它就不再写入;卡片上显示的也是这个号的额度。不选就跟随 agy 当前的登录。卡片同步到另一台电脑后,那台电脑上也添加了这个号才能用,否则打开终端时会提示,不会用别的号启动。
  • 删除账号不会让 agy 退出登录。 CC Switch 只删掉自己保存的那一份。

改进

Windows 上的应用内更新不会再重启电脑(#8628、#8534)。应用内更新以不弹对话框的方式运行 MSI 安装包,以前只要安装目录里有文件还被占用,Windows Installer 就会不提示直接重启电脑。现在安装包本身禁止重启,从旧版本更新到这一版时也生效。

MSI 安装时可以不创建桌面快捷方式(#8601、#5667)。安装目录页多了「Create a desktop shortcut」选项,默认勾上;静默安装可以加 CREATEDESKTOPSHORTCUT=0 跳过。升级时保留现在的状态:你删掉的快捷方式不会被重新创建。桌面目录写不进去时也不会再让安装失败。

页头显示实际的连接(#8634)。实际连到哪里,从模式标签旁挪到应用名旁,用当前模式(直连、路由、聚合)的颜色画成一个小徽章;切到别的模式标签看时也一直显示,名称太长会截断,鼠标悬停可以看到全部。

精简界面上的说明文字(#8633)。供应商表单、OpenClaw、每日记忆、同步和整流器设置里,和旁边标签、标题重复的说明去掉了,补充说明挪进已有的帮助卡片;会影响结果的提示(费用、重启、同步、删除等)照常显示。

用量页的应用筛选只列「应用」页里显示的应用。 和会话管理一样:显示 Claude Desktop 时 Claude Code 也保留,当前选中的应用即使被隐藏也不会消失。

预设: 新增 DIT.ai、hao.ai。

修复

  • macOS 上并发请求多时路由失败(#8668)。从访达或登录项启动的应用,同时能打开的文件数只有 256 个。路由每个进行中的请求要占一个客户端连接和一个上游连接,并发一多就用完了:接不了新请求、连不上上游,连配置文件和数据库都打不开。现在启动时把这个上限调高到系统允许的值(最多 10240)。Linux 同样处理。
  • 从访达启动时,「重启 Codex 守护进程」报 env: node: No such file or directory(#8653)。从访达启动时 CC Switch 只有系统目录的 PATH,npm 安装的 codex 要靠 node 运行,node 装在别的目录时就找不到。现在运行这类命令时会先加上登录 shell 的 PATH,和安装、升级工具时一样。OpenCode 获取模型列表也受这个问题影响,一并修复。
  • Claude Code 会话里用 /cd 换了目录,会话管理里仍归在旧项目下(#8643、#6862)。复制的恢复命令也会先 cd 到旧目录,在那里 claude --resume 找不到这个会话。现在和 Claude Code 自己的规则一样,按最后一次换到的目录归类,进出 worktree 也一样。
  • Windows 上打开终端后,按钮一直转圈,直到关掉那个终端窗口(#6712)。现在终端打开后就会结束等待。
  • Codex 没用过的额度窗口也显示重置倒计时(#8631)。用量为 0 的窗口,Codex 返回的重置时间是「现在加一个窗口长度」,所以每次刷新倒计时都会跳回整个窗口(5 小时窗口跳回 5 小时)。现在用量为 0 的窗口不显示重置时间。
  • DeepSeek V4.1 Flash 的请求显示「未定价」、按 0 元计。 OpenCode Go、OpenRouter 和 Hermes 预设用的模型名是 deepseek-v4.1-flash,以前价格表里没有。现在按 DeepSeek Flash 的官方价格计算;已经记录的请求不会重新计价。
  • 手册里「官方额度用完后 Codex 锁住发送键」的绕开办法已失效,已更正(#7962)。4.0.16 起聚合模式会保留 ChatGPT 登录,把第三方设为聚合的默认供应商已经绕不开。现在的办法是:切到直连,确认「设置 → 应用配置 → Codex」里的「非接管切换时保留官方登录」是关闭的,切到一家第三方供应商后彻底重启 Codex;额度重置后再切回聚合。

升级说明

数据库版本从 20 升到 21,为 MCP 和 Skills 增加 Antigravity 的开关。升级前会自动备份数据库;升级后再退回旧版本,旧版本会提示数据库版本过新,打不开。

  • Antigravity 的供应商只在从卡片「使用此供应商打开终端」启动的 agy 里生效,在其他终端里直接运行 agy 不会用到它。
  • Antigravity 默认显示在「应用」页,不用的话可以在那里隐藏。
  • 在授权中心管理 Antigravity 账号目前只支持 macOS。其他平台不显示账号选择,官方卡跟随 agy 自己的登录;从 Mac 同步过来的绑定会被忽略。

致谢

感谢 @Owlbay、@peterLwk888、@ajia1206(Antigravity CLI 支持)、@YUZHEthefool(Windows 更新不再重启、可选桌面快捷方式)、@funkpopo(可选桌面快捷方式)、@SaladDay(页头连接徽章、精简说明文字)、@Dopetaiga(/cd 后的会话归类)、@cuiyf5516(Codex 未使用的额度窗口)、@umutcankurt(Windows 打开终端一直等待)的贡献。

感谢 @lm902、@zhufeizzz、@AisinGioroKiIoi、@WzLYVg387U、@mvdorofeev、@dw2286、@LeenixP 报告问题、提供复现信息和修复思路。

完整的技术细节请见 CHANGELOG。

CC Switch v4.0.17

Choose a tag to compare

@github-actions github-actions released this 20 Oct 14:27

CC Switch v4.0.17

本版本修复了 4.0.16 带来的两个问题,并改进了托盘快捷面板。轻量模式又能释放托盘面板占用的内存,Windows 上的 WebView2 进程能正常退出;Codex 进入路由时不会再还回一份早已过期的 ChatGPT 登录、卡在登录页。托盘面板在应用之间悬停时不再跳动,在高缩放和小屏幕的 Windows 上也能完整显示;额度条对齐了,并显示距重置还有多久,剩余余额标成绿色;Windows 上左键点托盘图标恢复为打开主界面。Hermes 的供应商标识和内置供应商重名时,表单会给出提醒。另外修复了 Windows 上退出后路由端口仍被占用、Codex 远程压缩的用量记成 0、同时勾选多个 MCP 服务器时有的丢失、只有地址的 MCP 服务器同步到 Hermes 和 OpenCode 后是空的、TOML 字符串里的弯引号被改掉、数据胶囊的 WebDAV 同步失败、macOS 把手输的 API Key 首字母改成大写、在便携版目录上安装 MSI 后仍被当成便携版等问题。4.0 完整的更新内容请见 v4.0 发布说明。

English → | 日本語版 →


改进

Hermes 的供应商标识和内置供应商重名时给出提醒。Hermes 遇到和内置供应商同名的标识(如 deepseek、openrouter)会改用内置那家,要它自己的环境变量 Key,这张卡的地址和 Key 都不生效;4.0.16 只修了 MiniMax 两个预设(#8538)。现在填的标识是 Hermes 内置供应商的标识时,输入框下方会提醒并建议改成 cc-switch-<标识>;已经添加、标识改不了的卡,会提示用别的标识重新添加。kimi 这类别名不受影响,也不会报。提醒不影响保存。

托盘面板的额度显示。各档额度的标签、进度条和重置时间排成整齐的三列,进度条起止对齐,也更长了;重置时间从具体日期改为「还剩多久」,例如「1天23小时后重置」。按量付费的剩余余额只把金额标成绿色,和供应商卡片一致;余额用完时仍显示警告色。

Windows 上左键点托盘图标恢复为打开主界面(#8572)。右键弹出设置里选的托盘样式(面板或菜单)。macOS 不变,左右键都弹出所选样式。

修复

  • 轻量模式下托盘面板一直占着内存(#8612)。4.0.16 起托盘面板默认开启,它是单独的一个窗口,第一次弹出后只隐藏不关闭,进入轻量模式后 Windows 上的 WebView2 进程也不会退出。现在轻量模式下面板一收起就释放,下次点托盘图标再重新打开。
  • Codex 进入路由后卡在 ChatGPT 登录页(#8573)。4.0.16 起,进入第三方路由时如果 auth.json 里没有登录,会还回最近收起的那份;这份登录可能是几个月前收起的、早已过期,Codex 桌面版拿着它反复刷新失败,每次进出路由又会被还回来。现在已过期的登录不再还回,仍留在暂存里,切回官方卡时照常还回。
  • 托盘面板悬停时来回跳动,Windows 高缩放下显示不全(#8572、#8595,#8549、#8553、#8564)。两栏高度改为以主面板为准,供应商多的列表在右栏里滚动,在应用之间悬停时行不会再挪到鼠标下面,只有一个应用时也不再留出大片空白。Windows 上按显示器的缩放比例换算尺寸,面板会收窄并限制在屏幕可用区域内,底部的「打开主窗口」和「退出」不会再被挤出去;挪到缩放不同的另一块屏幕后,第一次弹出也能正确显示。
  • Windows 上退出 CC Switch 后路由端口仍被占用,下次启动报 os error 10048(#8552)。CC Switch 打开的终端和命令行工具继承了监听端口,CC Switch 退出后端口仍被它们占着,下次启动只能回到直连,直到重启电脑或换端口。现在这些子进程不再继承监听端口。
  • Codex 远程压缩的用量记成 0(#8479)。Codex 0.153 起,远程压缩的用量写在另一种记录里,以前没有读取,这些请求都按 0 计。现在会正常计入;升级前已经扫描过的记录保持原样。
  • 同时勾选多个 MCP 服务器时,有的没写进配置文件(#8580)。几次勾选同时写同一个配置文件时会互相覆盖,界面显示已启用,配置文件里却没有。现在会依次写入。
  • 只有地址的 MCP 服务器同步到 Hermes 和 OpenCode 后是空的(#8579)。在 JSON 模式里粘贴或通过深链接导入、只写了 url 没写 type 的服务器,以前被当成本地命令,同步后 Hermes 里只有 enabled: true,OpenCode 里命令为空,界面却显示同步成功。现在和 Codex 一样,有地址、没有命令的按远程服务器处理。
  • TOML 字符串里的弯引号(含中文引号)被改成直引号(#8559)。为了兼容中文输入法,导入 MCP 和编辑 Codex 配置时会把弯引号转成直引号,以前连字符串里面的也一起转了,把 "don’t" 改成 "don't",有的合法配置还会被拒绝。现在只转换用作字符串边界的引号,字符串里面的保持原样,用中文输入法直接输入引号仍然可以。
  • 数据胶囊的 WebDAV 同步上传失败,返回 500(#8554)。现在同步清单改用通用的文件类型上传,内容不变,新旧版本可以互相读取。S3 同步不受影响。
  • macOS 上手输的 API Key 首字母被自动改成大写。 显示明文时,输入的 sk-… 可能被系统改成 Sk-… 保存下来,导致认证失败。现在这个输入框关闭了自动大写、自动更正和拼写检查。粘贴的 Key 不受影响。
  • 在便携版目录上安装 MSI 后,仍被当成便携版,只能手动下载更新(#8529,#3132)。现在安装时会删掉目录里残留的便携版标记 portable.ini,安装后可以在应用内更新。卸载时不会删除这个文件。

升级说明

数据库结构没有变化,仍然是 20。

  • Windows 上左键点托盘图标恢复为打开主界面(4.0.16 用面板样式时是弹出面板,菜单样式一直如此);右键弹出「设置 → 通用 → 托盘样式」里选的样式。
  • Codex 远程压缩的用量只从升级后读到的记录开始计入,升级前已经扫描过的不会补算。

致谢

感谢 @funkpopo(托盘面板的滚动与缩放)、@Chaoqi31(Codex 远程压缩用量)、@chonngyi(在便携版目录上安装 MSI)的贡献。

感谢 @SamPheng、@xinxinxiaoxin、@XinwangTao、@ramonmi、@Jdker22、@Geneslves、@Jinmoli、@nanfenggushi、@fereverlove、@hulkbig、@AngryBigCat、@QC2168 报告问题、提供复现信息和修复思路。

完整的技术细节请见 CHANGELOG。

CC Switch v4.0.16

Choose a tag to compare

@github-actions github-actions released this 19 Oct 10:46

CC Switch v4.0.16

本版本把托盘改为快捷面板,并修复了一批 Codex 与路由问题。现在点托盘图标会弹出面板,能看到各应用正在用的供应商、模式、额度和用量,也能直接搜索、切换供应商;想用原来的菜单,可以在「设置 → 通用 → 托盘样式」里换回。Codex 聚合模式下,会话在默认供应商和其他成员之间切换后不会再卡在原来那家反复压缩失败;Codex 走路由时,每次重启 CC Switch 都要重新登录 ChatGPT 的问题也已修复。Codex 经路由连 Chat 上游时,并行工具结果不再被中途插入的提示拆开、报 400;自己填的 GPT 上下文窗口对官方同名模型也生效了,4.0.13 加的 272K 封顶改为只限制借用原厂数据的窗口。上游是 5.5 模型时,Claude Code 路由和 Claude Desktop 路由模式都改用 5.5 的模型 ID。另外修复了智谱按量付费账号显示「额度没查到」、新建的火山套餐卡片额度直接报错、Windows 上认不出 fnm 管理的 Node 工具、空闲的卡片删不掉、编辑供应商时「获取 API Key」链接不见等问题,macOS 图标底色也改成了柔和的浅灰。OpenCode 的卡片现在可以设为 OpenCode 的默认模型。4.0 完整的更新内容请见 v4.0 发布说明。

English → | 日本語版 →


新增

托盘改为快捷面板(#8432)。在 macOS 和 Windows 上,点托盘图标现在会弹出快捷面板:「配置」页列出各应用正在用的供应商、当前模式(直连、路由、聚合用和主界面相同的颜色)和额度,可以搜索、切换供应商;「用量」页的趋势图跟随主界面选的币种和图表样式。macOS 上是系统毛玻璃,叠在深色窗口上也看得清;Windows 上是不透明卡片。想用原来的菜单,可以在「设置 → 通用 → 窗口与终端」的「托盘样式」里选「菜单」,立即生效,不用重启。Linux 仍是原生菜单,最上面多了一项「打开快捷面板」。

OpenCode 卡片可以设为默认模型(#8509)。OpenCode 启动时按 opencode.json 顶层的 model 选模型,以前 CC Switch 没法设置,只能手改文件。现在已添加的 OpenCode 卡片上有「设为默认」,选一个模型即可;只改顶层的 model,注释和 small_model 原样保留。

改进

MiniMax 官方预设默认用 MiniMax-M3.1-Flash(#8518)。Claude Code、Claude Desktop、Codex、Hermes、OpenCode、OpenClaw、Pi 都已更新,MiniMax-M3 仍可选择。

「获取 API Key」链接恢复为浅蓝色,不再带下划线。

侧栏「今日」恢复「今日」前缀,撤回 4.0.15 的改动。

价格更新:Kimi K3 补上缓存写入价(每百万 Token 3 美元,原来记成 0);Step 5 Preview 的缓存读取价按阶跃星辰 10 月 14 日的调价改为每百万 Token 0.70 元;新增 qwen3.7-flash、qwen3.6-27b、qwen3.8-omni-flash 的价格。这两项改价会自动更新到已有的价格表,手动改过的除外。

智谱的「获取 API Key」链接去掉了邀请码。

土耳其语:改进了 17 处界面用语(#8481)。

预设: 新增 AllTokens SI。

修复

  • Codex 聚合模式下,会话换到另一家供应商后一直报错(#8485)。会话在聚合的默认供应商和其他聚合成员之间换模型时,Codex 会先用原来那家压缩上下文;那家额度用完时压缩失败,之后每一轮都卡在同一处。现在聚合模式下第三方路由的模型和聚合成员用同一套压缩标识,不会再触发这次压缩,已经卡住的会话也能恢复。官方路由不受影响。
  • Codex 走路由时,每次重启 CC Switch 都要重新登录 ChatGPT(#8431)。Codex 桌面版 26.1013 起,继续会话需要登录 ChatGPT。关闭「非接管切换时保留官方登录」、直连供应商是第三方时,退出 CC Switch 会收起登录并删掉 auth.json,下次启动也没有还回去。现在退出 CC Switch 时一律保留登录,真正退出路由时仍按这个设置处理;进入或接上第三方路由时,如果 auth.json 里没有登录,会还回最近收起的那份,之前已经这样丢掉的登录也能找回。
  • Codex 经路由连 Chat 上游时,并行工具结果被中途的提示拆开,报 400「No tool output found」(#7190、#7569)。例如 Codex 看图片时插入的 image_resize_notice。现在这类提示不再打断工具结果,校验严格的 Chat 上游(如 DeepSeek)不再拒收。
  • 自己填的 GPT 上下文窗口对官方同名模型不生效(#8366、#8350)。现在按供应商或按模型填的窗口都会写进 Codex 的模型目录,自动压缩的阈值随之调整;没填时仍用官方默认值。Codex 经路由连 Gemini 时如果输入超长,现在会返回 Codex 认得的「上下文超长」错误,让 Codex 自己压缩。
  • 4.0.13 的 GPT 272K 封顶把真有 1.05M 窗口的平台也封了。 现在只有借用原厂数据的窗口才封顶到 272K:同一地址的预设、models.dev 按地址认出的供应商用它们自己的窗口,手填的窗口也照用;GPT 窗口超过 272K 时,Codex、Hermes、OpenClaw、OpenCode、Pi 的表单会在输入框下方提醒。OpenRouter、Vercel AI Gateway、Cloudflare AI Gateway、DigitalOcean 的预设恢复 1.05M。
  • 路由下上游是 5.5 模型时,Claude Code 仍当成 5 的模型(#8450)。现在 Opus、Sonnet 档的上游是 5.5 时,写给 Claude Code 的是 claude-opus-5-5 / claude-sonnet-5-5,Claude Code 显示正确的模型,输出上限也从 64K 变为 128K;子代理模型同样处理。
  • Claude Desktop 路由模式下,目标是 5.5 模型时请求被上游拒收(#8082)。以前发布给 Desktop 的模型名固定是 claude-opus-5 / claude-sonnet-5,Desktop 按 5 的参数构造请求,5.5 上游不接受;手改生成的配置又会被下次写入覆盖。现在目标是 5.5 时发布 5.5 的模型 ID;映射表本身不变,旧配置发来的请求仍指向原来的目标。
  • Claude Code 经 Codex OAuth 使用带次数上限的 WebSearch 时直接报错(#7936)。以前只有强制使用 WebSearch 时才放行,现在不强制也能用,次数上限通过提示约束,超出次数时这一轮响应会在返回时截断。
  • 智谱按量付费账号的卡片显示「额度没查到」(#8465)。智谱卡片默认查套餐额度,没有 Coding Plan 的账号会被当成出错。现在没有套餐时改为显示账户余额(团队套餐不回落)。
  • 新建的火山 Agent / Coding Plan 卡片一上来就显示「额度没查到」(#8494)。火山的套餐额度要用账号的 AccessKey ID 和 SecretAccessKey 查询,不是推理用的 API Key。现在用量设置里会预选火山,但填好 AccessKey 之前不启用查询;一键导入链接里明确写了启用的,照常启用。
  • Codex 官方卡的编辑器里,auth.json 显示的是旧登录。 以前显示的是旧版本存下的登录快照,Codex 换过令牌后就和 ~/.codex/auth.json 对不上;跟随当前登录的卡片则显示为空。现在未绑定托管账号的官方卡显示的是切换到这张卡后 auth.json 的内容;不动这个框直接保存,卡片原来的登录信息保持不变。切换时实际写入的文件一直是对的。
  • Windows 上用 fnm 管理 Node 时,认不出已安装的 Codex 等工具(#8484)。fnm 只在各个终端里临时加 PATH,CC Switch 找不到 node 和 npm,应用内安装也报「'npm' 不是内部或外部命令」。现在会把 fnm 默认 Node 版本的目录加到 PATH 末尾,原有的 PATH 仍然优先。
  • 空闲的供应商卡片删不掉,提示「无法删除当前正在使用的供应商」(#8506)。常见于带着旧版 Claude Desktop 映射卡升级后,数据库里旧的「当前」标记还指着它。现在只看实际在用的直连供应商和路由目标,和界面上禁用删除的规则一致。
  • 编辑供应商时「获取 API Key」链接不见了。 现在编辑时会按当前地址找到对应的预设,显示它的链接,和添加时一样。
  • macOS / Linux 上误报环境变量冲突。 以前会把 CC Switch 从启动它的程序继承来的环境变量也算进去(例如从 Claude Desktop 打开的终端里自带的 ANTHROPIC_BASE_URL),这些在应用里也删不掉。现在只检查 shell 配置文件里的定义,Windows 不变。
  • MiniMax Code 的部分用量记录模型显示为 unknown。 现在会从同一会话、同一时间的那条回复里找回模型名,能正常计价;已经导入的记录保持原样。
  • Hermes 里添加 MiniMax 官方供应商后请求发不出去(#8538)。供应商标识按直觉填成 minimax 时,和 Hermes 内置的 MiniMax 重名,Hermes 会改用内置那家、要求设置 MINIMAX_API_KEY。现在 MiniMax 预设会预填 cc-switch-minimax / cc-switch-minimax-en;之前已经用 minimax 添加的,请改用别的标识重新添加。MiniMax-M3.1-Flash 也标为支持图片输入。
  • 中文和日文下用量图的纵轴太宽。 「5000万」「2000亿」这样的刻度改写成「5千万」「2千亿」,用量页和托盘面板的纵轴按最宽的刻度自动调整宽度,短刻度不再留空,长金额不再被截掉。
  • macOS 图标的白底太亮(#8495)。4.0.15 的白色圆角方块改为浅灰,形状不变;Windows 和 Linux 图标不变。
  • 「关于」卡片的 Logo 模糊(#8470)。改用矢量图。

升级说明

数据库结构没有变化,仍然是 20。

  • 升级后点托盘图标会弹出快捷面板;想用原来的菜单,请到「设置 → 通用 → 托盘样式」里选「菜单」(macOS、Windows)。Windows 上左键点托盘图标以前是打开主界面,现在也弹出面板,主界面从面板底部的「打开主窗口」进入。
  • 已保存的 GPT 模型窗口不做迁移。4.0.13 之前保存、自动填成 1.05M 的 Codex GPT 模型,这个值现在会生效;打开表单时会看到提醒,如果实际只有 272K,请手动改小。

致谢

感谢 @Owlbay(托盘快捷面板)、@funkpopo(托盘快捷面板、GPT 上下文窗口)、@parkavenue9639(Codex OAuth 的 WebSearch)、@waynesguan(Claude Code 的 5.5 模型 ID)、@A0150315(被拆开的工具结果)、@SaladDay(MiniMax-M3.1-Flash、Hermes 的 MiniMax 预设)、@alkank(土耳其语)的贡献。

感谢 @ht6231997Byte、@mybolide、@xiaohe622516、@Jokyuzx、@XiaoXiangGuRen、@BlueMain、@guaifinition、@fengzhcai、@Alicexs、@samuelhe52、@futurelyf、@actforjason、@yyhhkya、@107295472 报告问题、提供复现信息和修复思路。

完整的技术细节请见 CHANGELOG。

CC Switch v4.0.15

Choose a tag to compare

@github-actions github-actions released this 17 Oct 15:40

CC Switch v4.0.15

本版本以修复为主:Windows 上更新后隐藏的应用、配置目录覆盖等设置会被重置为默认值的问题已修复;更新 Codex 时,--version 响应慢不会再把好好的 Codex 卸掉;macOS 应用图标改为白色圆角方块,macOS 26 不再把它塞进灰色底板。经路由的请求重新认得出 Claude Code 的会话,走 Codex OAuth 时的缓存键和 Claude Desktop 连 Gemini 时的签名回放都恢复正常;Codex 历史里有一条坏掉的工具调用时不再每轮都报错,DeepSeek 也不再拒收回放的工具历史。另外修复了 WebDAV/S3 慢速传输 300 秒被掐断、Windows 上「打开终端」找不到 claude、WSL 里的 Hermes 会话读不出、路由切换总是提示重启等问题。新增用量趋势图的柱形图 / 曲线面积图切换、Hermes 按模型声明图片输入,Claude Desktop 表单也能为 Copilot 等托管登录的供应商获取模型列表。4.0 完整的更新内容请见 v4.0 发布说明。

English → | 日本語版 →


新增

用量趋势图可以选柱形图或曲线面积图(#8406)。在用量页「设置」页签的「显示」区,「趋势图样式」可以选柱形图(默认)或曲线面积图,两种样式的指标、坐标轴、悬停提示和币种换算都一样。「显示」区的几项设置也重新排成了对齐的两列,汇率单独一行,放在币种下面。

Hermes 可以按模型声明支持图片输入(#8464)。Hermes 按每个模型的 supports_vision 判断能不能看图,没写的未知模型会被当成纯文本、图片被压成文字;以前表单里没有地方设置,手写的值保存后也会被冲掉。现在展开模型详情后有「支持图片输入」开关:打开写 supports_vision: true,关掉则删除这个键,交给 Hermes 自己判断。从模型列表选到已知支持图片的模型时会自动打开。

Claude Desktop 可以为托管登录的供应商获取模型列表(#8426)。GitHub Copilot、Codex OAuth、xAI OAuth 这类供应商以前在 Desktop 表单里没有「获取模型列表」按钮,现在有了,会按登录的账号拉取;还没登录时先提示登录。换了供应商类型或账号后,列表会清空重拉,不会混进别的账号的模型。

改进

路由下切换供应商,提示写明实际做了什么(#8347)。以前路由模式下切换,Codex、Gemini CLI、Grok Build 总会提示重启客户端。现在提示会说明是记住了供应商、改了路由目标、切换了路由,还是改了聚合默认供应商;只有客户端配置文件确实改了,才提示重启。

侧栏「今日」不再带「今日」前缀。 只选一项时也和选两项时一样只显示数值,完整说明在悬停提示里。

Claude Code 用量导入更快(#8224)。同一次导入里,查过的模型价格会复用,不再每条记录都查一遍;改了价格,下一次导入就会用上。

土耳其语:补齐了卸载和套餐额度相关的新文案(#8291)。

预设: 新增 EveryAPI、AllTokens。

修复

  • Windows 上每次更新后,隐藏的应用、配置目录覆盖等设置被重置为默认值(#8429)。以前直接覆盖写 settings.json,个别环境下新内容变短时,旧内容的尾巴没被截掉,下次启动整份解析失败;读取失败时又悄悄用了默认值,更新后弹出的更新摘要一保存,就把默认值写了回去。现在先写临时文件再替换;读取时会去掉 BOM,有尾巴时只读第一段 JSON,解析不了的字段单独丢掉、其余照常保留。没有完整读出的文件会先备份成 settings.json.broken-<时间>.bak,备份成功之前不会保存。
  • 更新 Codex 时,--version 响应慢会把好好的 Codex 卸掉。 以前更新前检测到 --version 超时或启动失败,就会先卸载再重装,重装一失败,Codex 就显示成未安装。现在只有 --version 真的运行并报错时才这样修复,其余情况照常升级。
  • macOS 26 把应用图标放进灰色底板并缩小(#8401)。macOS 应用图标现在自带白色圆角方块,macOS 26 和 15 显示一致;Windows 和 Linux 图标不变。
  • 经路由的请求认不出 Claude Code 的会话(#8235、#8234、#8418)。新版 Claude Code 把会话 ID 写成 JSON 放在 metadata.user_id 里,路由以前解析不了,同一个对话的每个请求都被当成新会话;Claude Desktop 的请求也没有读会话头。结果是走 Codex OAuth 时没有稳定的缓存键,Claude Desktop 经路由连 Gemini 时工具调用报错。现在两种格式都认得,Claude Desktop 也读会话头。
  • Codex 历史里有一条参数坏掉的工具调用时,之后每轮都被 Chat 上游拒收(#5197)。例如输出被截断、参数不是完整的 JSON。现在转换时把这条调用改写成普通文字,正常的历史一个字节都不改。
  • Codex 经路由连 DeepSeek 经常报 400(#8331)。回放工具历史时,工具调用和结果之间夹着的空消息、进度文字或思考内容会被拆成单独的消息,DeepSeek 不接受。现在只对 DeepSeek 模型把它们并回工具调用那条消息,其他上游不受影响。
  • Codex 聚合模式去掉了 x-codex-beta-features 请求头(#8435)。部分原生 Responses 网关需要这个头。现在发往原生 Responses 上游时保留它,身份相关的请求头仍然去掉。
  • Claude Desktop 原生供应商配模型映射时卡在死循环(#8441)。保存映射要求先开路由,开路由又要求已有映射。现在没填模型列表的原生供应商可以先进入路由,再在同一张卡上保存映射。
  • WebDAV / S3 同步慢速传输到 300 秒就被掐断(#8428)。慢速网络下,传输超过 300 秒的大 Skills 包会失败。现在总超时随文件大小放宽,下载另设 120 秒无数据超时,连接真卡住时仍会及时报错。
  • Windows 上卡片的「打开终端」报「'claude' 不是内部或外部命令」(#8446)。应用内更新自动重启后,或先打开 CC Switch 再安装 CLI 时,进程里缺少用户级 PATH,终端沿用了它。现在打开的终端会带上完整的用户和系统 PATH。
  • Windows 上读不出 WSL 里 Hermes 的会话(#8205)。Hermes 数据在 WSL 里时,改为在对应的发行版内只读读取数据库;需要发行版里有 python3(3.7 及以上)。其他路径不受影响。
  • 故障转移后,「路由中」标记还停在原来那家(#7998)。
  • Pi 子代理的用量统计不上,或记成 unknown(#8298)。现在从每个子代理自己的会话文件导入,带上真实的模型和供应商;从升级后第一次导入起统计,之前的不补算。
  • 拖动排序供应商时卡片被拉伸、互相遮挡(#8283)。
  • Skills 下载失败时,真正的原因被「仓库或分支不存在,请检查地址」盖掉。 以前配置的分支失败后会依次试 main、master,最后报的是 master 的 404。现在只有 404 才换分支,超时、压缩包过大、解压失败都按原因报错。
  • DeepSeek 一个币种的钱包还有余额,另一个为 0 时显示「余额已用完」(#8170)。现在只要有钱包还有余额,就不再列出空钱包,卡片也不会每次启动都自动展开额度面板。
  • 窗口较矮时,Codex 模型列表的思考等级弹窗下半截被截掉(#8094)。现在弹窗不超出窗口,放不下时列表在弹窗里滚动,「默认等级」一直可见。

升级说明

数据库结构没有变化,仍然是 20。

  • Windows 上已经带尾巴的 settings.json 会在首次启动时恢复,原文件保留为 settings.json.broken-<时间>.bak;之前更新时已经被重置的设置无法找回。
  • Pi 子代理用量从升级后第一次导入开始统计,之前的记录保持原样。
  • 在 Windows 上读取 WSL 里的 Hermes 会话,需要发行版里装有 python3(3.7 及以上)。

致谢

感谢 @Foodie05(Claude Code 会话识别)、@MonsterXia(Codex 坏工具调用历史)、@funkpopo(DeepSeek 工具历史、趋势图样式、拖动排序)、@JfanLiu(聚合模式 beta 请求头)、@ix-prism(Claude Desktop 映射循环)、@Dante-dan(WSL 里的 Hermes 会话)、@SmileMachine(路由切换提示)、@Chaoqi31(Pi 子代理用量)、@Carl723000(用量导入提速)、@alkank(土耳其语)、@NestorRay(面板过渡清理)的贡献。

感谢 @wangding0610、@DiYi1999、@CaiSre、@vincerise、@qiangyidian、@zhouys0725、@qianlongwuyong-zxl、@ElijahHong、@wx2cyj、@rvwmng9rvk-crypto、@luckday888、@ramonmi、@quntaoli、@LwTen2019、@CYRickyArAr、@edwardchenchen、@ximigoo 报告问题、提供复现信息和修复思路。

完整的技术细节请见 CHANGELOG。

CC Switch v4.0.14

Choose a tag to compare

@github-actions github-actions released this 16 Oct 12:35

CC Switch v4.0.14

本版本为用量统计面板增加了大量自定义选项:用量页新增「设置」页签,金额可以换成人民币、欧元、日元等币种显示(汇率可以自己改),侧栏「今日」可以选显示金额、Token、请求数或缓存命中率,请求日志可以选显示哪些列,并新增缓存写入、命中率、总耗时和状态码四列;再打开用量页时,会回到上次看的页签、时间范围和图表指标。Claude Code 卡片上的「打开终端」会先说明这个目录是做什么用的,并记住最近用过的目录。还修复了 Codex 经路由连接 Gemini 时第二轮工具调用报 400、路由模式下 Codex 的重试次数设置失效、超过 128 MiB 的 Skills 仓库装不上、含大写字母的自定义定价不生效、Hermes 开发版一直提示有新版本、故障转移队列调整顺序没反应等问题。4.0 完整的更新内容请见 v4.0 发布说明。

English → | 日本語版 →


新增

用量金额可以换成其他币种显示。 用量页原来的「定价」页签改为「设置」,上面是新的「显示」区,下面仍是定价配置。在「币种」里可以选美元(默认)、人民币、欧元、日元、新台币、土耳其里拉,「汇率」预填了参考值,可以自己改。费用仍按美元记录,只在显示时换算,悬停可以看到美元原值;图表先换算再画,坐标轴刻度仍是整数。换算后的金额最多保留两位小数(日元少两位),金额较大时按千分位分隔。

侧栏「今日」可以选显示什么。 侧栏用量那一行原来固定显示今日金额,现在可以在「侧栏「今日」」里选金额、Token、请求数、缓存命中率,最多选两项,也可以都不选、不显示。名字不再被后面的数字挤窄;选了两项时,这一行只显示两个数字,完整说明放在悬停提示里。

请求日志可以选显示哪些列。 在「请求日志的列」里勾选要显示的列,新增四列,默认都不显示:

  • 缓存写入:写进缓存的 Token 数。Codex、Gemini、Grok 不报告这个数,显示「—」并在悬停时说明。
  • 命中率:每条请求的缓存命中率(#7298),算法和总命中率相同;向下取到一位小数,接近全中也不会显示成 100%。
  • 总耗时:整个流式响应的时长;从会话日志估算的值前面带「≈」。
  • 状态码:显示这一列时,时间旁边的错误标记就不再显示。

列多时表格可以左右滚动,不再把每一列挤窄。

用量页记住上次的视图。 再打开用量页时,会回到上次看的页签、预设时间范围和趋势图、热力图的指标。自定义的日期范围不会覆盖记住的预设范围,应用、供应商、模型筛选不保留。

「打开终端」先说明再选目录。 以前点 Claude Code 卡片上的「打开终端」会直接弹出系统的选目录窗口,看不出这个目录是做什么的。现在先弹出「在哪个目录打开终端?」,说明会在你选的目录里打开终端,并用这张卡的配置启动 Claude Code,一般选项目文件夹。上次成功打开的目录会自动填上,「最近用过」里最多列出五个目录,点一下就能选,也可以移除。卡片有自己的地址和 Key 时,还会说明这个终端是隔离的:之后在 CC Switch 里切换供应商不会影响它。

定价: 新增 Gemini 4 Argon 的内置价格(#8356),是 2026-11-30 前的介绍价;已经记成 0 的历史请求会在启动时重新计价。

改进

Claude Desktop 的 1M 模型只显示一行。 Desktop 以前会把每个声明了 1M 的模型列两次:普通的一行,加一行「1M 上下文」。现在只留普通的一行,选中后仍按 1M 窗口用。路由和聚合模式下,下次启动 CC Switch 或切换模式后生效;直连模式下,下次切换供应商或保存这张卡后生效。

路由时不能删除直连那家,现在会说明原因。 路由或聚合模式下,直连指向的那张卡不能删除,因为退出路由后要回到它(#8277)。以前提示写的是「正在用的这家不能删除」,而路由页上这张卡并没有标成正在使用,让人摸不着头脑。现在提示会写明原因,以及先在直连页对别家点「回到直连并使用」再删除。

连接上游失败时,日志写明具体原因。 以前路由转发失败只记「error sending request」这类笼统的话,分不出是域名解析、连接被拒、TLS 还是连接被重置(#8416)。现在日志会带上底层原因,方便判断多家同时失败是不是同一条网络出了问题;记录前会先去掉 URL,查询参数里的 Key 不会进日志。

预设: 硅基流动国内站的 Claude Code、Claude Desktop、Hermes、OpenClaw 预设改用 DeepSeek-V4-Flash(原来的 MiniMax-M2.5 已下线);TokenFactory 在中文界面显示为「词元工厂」;Pi 换成 pi.dev 新的三色图标。

修复

  • Codex 经路由连接 Gemini 时,第二轮工具调用报 400「missing a thought_signature」(#8336)。Gemini 会在工具调用里返回一个签名,并要求下一轮原样带回,CC Switch 的格式转换把它丢了。现在会保存并带回;CC Switch 在一轮工具调用中途重启、签名丢失时,按 Gemini 文档的做法补一个占位签名,不再报错。其他上游不受影响。
  • 路由模式下,Codex 配置里的重试次数不生效(#8265)。进入路由后,供应商设置的 stream_max_retries、request_max_retries、stream_idle_timeout_ms 会被丢掉,比如设成 50 次的重试又回到 Codex 默认的 5 次。现在会保留。
  • 超过 128 MiB 的 Skills 仓库装不上,还被误报成解压超限(#8421)。仓库压缩包以前整个读进内存,上限 128 MiB;现在边下载边写进临时文件,上限提高到和解压一致的 512 MiB,下载超限时单独提示。
  • 含大写字母的自定义模型定价不生效,成本一直是 0(#8413)。例如按界面显示名填的 GLM-5.3-Flash-EXL3。现在查价不区分大小写,新请求和保存后的历史回填都能算上。
  • OpenCode 会话中工具调用多的轮次,估算速度偏低(#8402)。耗时以前算到工具执行完,现在算到模型输出结束。
  • OpenCode 一键导入的两个问题:导入成功后卡片的「已添加」状态不及时更新(#8380);名字是中文的供应商导入后在编辑页保存不了(#8379)。
  • Hermes 开发版一直提示有新版本(#8394)。0.22.1+238.g<sha> 这类开发版版本号以前被当成正式版 0.22.1 去比较,hermes update 之后提示也不消失。现在开发版不再提示。
  • WSL 里装了但运行报错的工具,被显示成「未安装」(#8167)。以前输出里只要有「not found」就判为未安装,例如「module not found」;现在只认 shell 的「找不到命令」。
  • Codex 父会话里有一条乱码记录时,子代理用量一直统计不上(#8360)。现在跳过这条记录,其余正常统计。
  • 故障转移队列调整顺序后没变化,却提示成功(#8297)。队列里有两家排序值相同,或者新加的供应商没有排序值时,上移下移会写成相同的值。现在调整后的顺序一定会生效。
  • Windows 上同一个项目因为盘符大小写不同,在会话管理里被拆成两组(#8233)。例如 D:\projects\demo 和 d:\projects\demo。现在会合成一组。
  • OpenClaw 在配置 JSON 里改了请求头后,「发送 User-Agent」开关不跟着变(#8256)。

升级说明

数据库结构没有变化,仍然是 20。

  • 用量页的「定价」页签移到了「设置」里;币种、侧栏「今日」和请求日志列的设置只保存在本机,不随云同步。
  • Claude Desktop 直连模式下,1M 模型的两行要等下次切换供应商或保存这张卡后才合成一行。
  • Gemini 4 Argon 的内置价格是 2026-11-30 前的介绍价,之后的正式价会在下一次价格更新里调整。

致谢

感谢 @Vincebye(含大写字母的自定义定价)、@xianshang33(OpenCode 速度估算)、@HaiYangBG1(OpenCode 一键导入的两个问题)、@Tsuki-hash(Hermes 开发版误报新版本)、@Adonis0123(WSL 工具检测)、@Carl723000(Codex 父会话乱码记录)、@Besty0728(Gemini 4 Argon 定价)的贡献。

感谢 @maq233、@CR547、@zqbake、@Hybangbang、@zhang3776813、@zhangyudi-01、@zsp1029、@hulkbig、@tarnish233 报告问题、提供复现信息和修复思路。

完整的技术细节请见 CHANGELOG。

CC Switch v4.0.13

Choose a tag to compare

@github-actions github-actions released this 15 Oct 16:32

CC Switch v4.0.13

本版本让 Claude Desktop 和 Claude Code、Codex 一样,可以在页面顶部选择直连、路由、聚合三种模式:路由模式下模型列表跟着路由那家走,聚合模式下可以把多家供应商的模型同时放进 Desktop 的模型列表。Codex 新增「自动审批模型」,开了自动审批(Approve for me)的第三方供应商不再请求一个大多数中转都没有的模型而报 404;聚合模式下还可以单独指定子代理用哪个模型和推理强度。切回直连前改为先弹确认框,写明会连到哪家、改哪个文件。GPT 系列模型的上下文窗口统一封顶 272K,不再因为窗口写大了而迟迟不压缩、最后被上游拒绝。Windows 便携版的更新按钮现在直接下载对应的压缩包。Claude Code 的 Haiku 档也能声明 1M 上下文,模型本身是 1M 窗口的预设改为默认勾上 1M。还修复了 Codex 保存配置时报「duplicate key」、路由模式下 Codex 远程压缩失效、装了很多 fnm 版本时切换模式卡住几分钟、Windows 11 上窗口卡死等问题。4.0 完整的更新内容请见 v4.0 发布说明。

English → | 日本語版 →


新增

Claude Desktop:直连、路由、聚合三选一。 以前 Claude Desktop 由每张卡片自己决定是直连还是走模型映射,要不要启动映射服务也是单独的开关。现在它和 Claude Code、Codex、Gemini CLI、Grok Build 用同一套模式面板,在页面顶部选择:

  • 直连:把供应商的地址和 Key 直接写进 Desktop 的配置,请求不经过 CC Switch。需要模型映射的卡片不能直连,会提示先开始路由。
  • 路由:Desktop 的请求经本机 CC Switch 转发给路由那家,模型列表换成路由那家映射表里的模型。之后切换路由那家时,只有模型列表变了才会改写 Desktop 的配置文件。
  • 聚合:默认那家的模型排在前面,其他加入聚合的供应商的模型以「供应商 / 模型」的名字一起出现在 Desktop 的模型列表里,选哪个就发给哪家,最多 200 个。

Desktop 只在启动时读配置,所以每次换模式、换路由那家或增减聚合成员之后,都要重启 Desktop 才生效,界面会逐一提示。Desktop 的路由没有故障转移;退出 CC Switch 时 Desktop 的配置保持不变,要继续用路由或聚合,CC Switch 需要保持运行。以前用模型映射卡的,升级后会自动进入路由模式,见文末升级说明。

Codex:自动审批可以换一个模型。 Codex 开了自动审批(Approve for me)后,每次沙箱提权都会交给一个审批模型判断能不能放行,而且发给主对话的同一家。第三方卡片以前没法选这个模型:没有模型列表时,Codex 会向供应商请求官方的 codex-auto-review,大多数中转都不认,直接报 404;有模型列表时则由主模型自己审批(#8015、#5903、#3855)。

  • 直连和路由:Codex 卡片新增「自动审批模型」,可以从这张卡的模型列表里选一个。官方卡片不显示这一项;卡片没有模型列表时这一项不可选,并说明原因。
  • 聚合:在聚合页签的「聚合设置」里选,可以选聚合里别家的模型,让审批发给另一家供应商。
  • 改完需要重启 Codex。

Codex 聚合模式:子代理可以用单独的模型。 聚合模式以前会去掉 [agents] 里的子代理模型,子代理只能跟随主模型(#8286)。现在「让 Codex 使用聚合模式?」确认框和新的「聚合设置」里都可以选子代理模型和子代理推理强度。不用重启 Codex,新开的对话就会生效。选的模型如果已经不在聚合里(成员被移除,或者那家成了默认),子代理会暂时跟随主模型,加回来后自动恢复。

Claude Code:Haiku 档也能声明 1M。 以前「模型映射」里只有 Sonnet、Opus、Fable 和子代理几行能勾「声明支持 1M」,因为过去 Haiku 模型都没有 1M 窗口。现在 Haiku 档常常指向第三方模型,而 Claude Code 对不以 claude- 开头的模型名一律按 200K 窗口算,不勾就会提前压缩。现在每一行都能勾 1M。路由模式不受影响:路由用的 Haiku 别名本来就按 1M 算。

预设: 新增 TokenFactory、Modelflare。

Windows 便携版:更新按钮直接下载压缩包。 便携版启动时本来就会检查更新,但点「更新到 vX」只是打开发布页,要在几十个文件里自己找对应的压缩包(#8300)。现在会直接下载与当前架构(x64 / ARM64)对应的便携版压缩包,解压后覆盖原来的 cc-switch.exe 即可;配置和数据保存在用户目录下的 .cc-switch,不会因覆盖而丢失。为了避免被杀毒软件拦截,CC Switch 不会自己替换自己的程序文件。

改进

切回直连前先确认。 进入路由或聚合时本来就有确认框,切回直连却是点了立即生效,只在提示里给一个容易错过的「撤销」。现在「回到直连」按钮、卡片上的「回到直连并使用」,以及路由服务停止时的提示,都会先弹确认框,写明客户端会直接连接哪家、哪个文件里的地址和密钥会被改回去;从路由切回时说明路由目标、故障转移队列和设置都会保留,从聚合切回时说明哪些模型会从 /model 里消失。出错直接显示在确认框里,「撤销」去掉了。

Codex:「聚合模式下子 agent 用经典工具」默认打开。 主代理和子代理不在同一家时,Codex 新版的子 agent 工具会把任务加密,只有主代理那家解得开,子代理收不到任务(#8253)。这个开关从设置页挪进「聚合设置」,改为默认打开。

GPT 模型的上下文窗口封顶 272K。 models.dev 上 GPT-5.6、GPT-6 系列写的是 OpenAI API 的 105 万窗口,但很多中转是用 ChatGPT 订阅转发的,订阅的上限是 272K,而 CC Switch 从地址上分不出是哪一种。窗口写大了,客户端会一直不压缩,直到上游拒绝请求、这一轮直接失败;写小了只是早一点压缩。现在添加供应商时自动补全的 GPT 窗口一律不超过 272K,Hermes、OpenClaw、OpenCode、Pi、Codex 预设里的 GPT 窗口也一起下调;Claude Code 里用 ChatGPT 订阅的「Codex」预设从 372K 改为 272K。比 272K 小的窗口不变。

模型本身是 1M 窗口的预设,默认勾上 1M。 Claude Code 对不认识的模型名按 200K 窗口算,GLM-5.3、Kimi K3、DeepSeek V4、Qwen3.8、MiniMax-M3、MiMo、LongCat 等 1M 模型的 23 个预设以前没有声明,直连时到 200K 左右就开始自动压缩。现在这些预设里 1M 模型的那几档都默认勾上「声明支持 1M」;Kimi For Coding 有意保持 256K 的压缩窗口,不变。Claude Desktop 里同样模型的 12 个预设,以及转发 Claude Sonnet 5、Opus 5 的 50 个预设,也在模型列表里声明 1M;Claude Haiku 4.x 只有 200K 窗口,以前被一些预设误标成 1M,现在改正。

修复

  • Codex 保存配置时报「duplicate key custom in table model_providers」(#8271)。config.toml 里供应商表头带引号([model_providers."custom"])时认不出来,保存时又加了一张同名的表。现在双引号、单引号、带空格的写法都能认出来。
  • 路由或聚合模式下,Codex 的远程压缩失效(#8338)。进入路由或聚合、保存当前供应商或重启 CC Switch 后,供应商开的远程压缩设置会丢掉,Codex 改用本地摘要压缩,带搜索记录的会话可能报 response protection is unavailable。现在会保留路由那家的压缩设置。
  • 经路由转换 OpenAI Chat 上游时,回复结束后还可能再收到一条错误(#8281)。上游发完 [DONE] 后断开连接,CC Switch 会在正常结束之后再补一个错误,或者把之后的内容继续转发出去。现在收到 [DONE] 就结束。
  • OpenCode 会话的耗时一直是 0、速度列为空(#6326)。现在按每条消息的开始和完成时间计算耗时,能显示估算速度。
  • Codex 分支对话翻页后的用量一直不入账(#8161)。分支对话翻页生成的续写文件被当成新派生的子会话,一直等不到父会话写到那个时刻。现在能认出这是分支对话自己的续写。
  • 用 fnm 装了很多 Node 版本时,切换模式卡住几分钟(#8313)。查找命令行工具时去重的写法随路径数平方增长,fnm 的 multishell 目录一多就很慢;现在路径很多时也只要几十毫秒。
  • Windows 11 上窗口卡死、主线程持续高占用(#8321、#8324)。问题出在 WebView2 处理原生拖拽区域时。Windows 上不再使用原生拖拽区域,拖动和双击最大化改用应用自己的处理,标题栏的用法不变。
  • Claude Code 聚合模式下,Haiku 档只有 200K 窗口。聚合模式会去掉 Haiku 档的 1M 声明,而聚合模型名不以 claude- 开头,Claude Code 就按 200K 算。现在 Haiku 档和其他档一样保留 1M 声明。
  • Codex 聚合模式换默认供应商时,预览把原来的默认那家算成 0 个模型。默认那家本身不发布聚合模型,但换走之后它的模型会全部加进聚合;现在预览显示的是换走之后的数量。

升级说明

数据库结构没有变化,仍然是 20。

  • Claude Desktop 当前用的是模型映射卡的,首次启动会自动切到路由模式、路由到这张卡,直连那边改为官方。重启 Claude Desktop 后生效。
  • Codex 的「聚合模式下子 agent 用经典工具」改为默认打开,以前关掉的不会保留;需要关闭的话在「聚合设置」里重新关掉。
  • GPT 窗口封顶只影响新添加的供应商和新补全的模型参数,已添加的卡片保持原来的窗口。
  • 改了自动审批模型后要重启 Codex。
  • 1M 相关的预设改动只影响新添加的供应商;已添加的卡片可以在「模型映射」里自己勾上「声明支持 1M」。

致谢

感谢 @HEOJUNFO(Codex 带引号的供应商表头)、@zqtqzy(路由模式下的 Codex 远程压缩)、@xue-ding-e(Chat 流在 [DONE] 处结束)、@zhengkaics 和 @SailingLoong(OpenCode 会话耗时)、@Lingbou(Codex 分支对话翻页用量)、@hulkbig(fnm 路径去重)、@funkpopo(Windows 窗口卡死)的贡献。

感谢 @zhangchuanqiang-cloud、@SRQuan、@vvvss7992、@obsidian0215、@wangding0610、@XinwangTao、@RRRRSH、@YwaQ96、@Tison6、@haveqqq、@cc10143、@KDB-Wind 报告问题、提供复现信息和修复思路。

完整的技术细节请见 CHANGELOG。