Skip to content

Releases

CC Switch v4.0.29

Choose a tag to compare

@github-actions github-actions released this 10 Nov 15:29

CC Switch v4.0.29

本版本新增受管应用 GitHub Copilot CLI:自带 Key 的供应商会写进 Copilot 自己的 providers.json,在 copilot 里用 /model 就能和官方模型一起选,不用经过 CC Switch。界面新增韩语和俄语,七种语言从此同步维护,不再有缺的地方显示英文。

另外修复了 Windows 上 Codex 桌面版在 WSL 里运行 Codex 时,用第三方供应商启动就报错;Codex 新对话经路由连第三方原生 Responses 上游报 400;Codex 经路由连 Anthropic 格式上游时,长回答被 8192 的输出上限截断;Codex 官方卡在路由模式下拿不到账号自己的模型列表等问题。

English → | 日本語版 →


新增

GitHub Copilot CLI

GitHub Copilot CLI(copilot)成为新的受管应用(#8753,需求见 #5768)。供应商卡片分两种:

  • 官方登录:用 Copilot CLI 自己的 GitHub 登录,不写任何文件。「打开终端」以卡片上的模型和推理强度启动 copilot;卡片绑定了授权中心的 GitHub 账号时,用这个账号启动。卡片上显示该账号的 Copilot 额度。
  • 自带 Key 的供应商:点「添加」后写进 Copilot 自己的 providers.json($COPILOT_HOME/providers.json)。之后在本机任何地方启动 copilot,都能在 /model 里和官方模型并列选到「卡片标识/模型」,请求直接发给供应商,不经过 CC Switch 的路由。不登录 GitHub 也能用。
    • CC Switch 只改这一家自己的条目,文件里的其他条目(Copilot 自己也会写这个文件)和顺序原样保留。providers.json 写坏了 Copilot 会起不来,所以写入前会按 Copilot 的规则把整份文件校验一遍,例如模型的最大输出不能占满整个上下文窗口。
    • Copilot 当前默认模型所在的那一家标为默认,不能移除或删除。要换,先在 copilot 里用 /model 换成别家的模型。
    • 卡片上的终端按钮要添加之后才能用,启动时直接选中这张卡的第一个模型。
    • 预设沿用 Pi 的供应商预设。

此外还支持:

  • MCP、Skills、提示词:同步到 Copilot 的 mcp-config.json、Skills 目录和指令文件。
  • 会话管理:列出 Copilot 会话,可以在终端里恢复。
  • 用量统计:从 Copilot 的会话日志导入用量;自带 Key 的供应商按会话里选中的卡片记账。
  • 一键导入链接:可以导入 Copilot 供应商,认得 providers.json 写法,支持 bearerToken,链接里的模型 ID 全部保留。

韩语、俄语界面,七种语言同步维护

  • 韩语(#8794,需求见 #2704)和俄语(#7788,需求见 #6010):首次启动按系统语言自动选择,托盘菜单和快捷面板也已翻译。用量统计的币种新增韩元(KRW),支持自动获取汇率。
  • 土耳其语、韩语、俄语不再是「社区翻译、缺的地方显示英文」:界面上的每一句话,中文简体、中文繁体、English、日本語、한국어、Türkçe、Русский 七种语言都有,之后新增和修改文案也会七种语言一起改。
  • 升级后弹出的更新摘要暂时只有中文简体、中文繁体、英文和日文,其他语言显示英文。

变更

  • Copilot 获取模型列表为空时说明原因(#5500):Copilot Free 账号能拿到模型,但没有一个可以在模型选择器里用,以前只提示没有找到模型。现在会提示这个账号可能没有开通 Copilot Pro;Claude Code 和 Claude Desktop 的表单还会提示可以手动填写 gpt-4.1 或 gpt-4o。账号有模型、但都不支持当前选择的上游格式时,Codex 表单会单独说明。

修复

  • Windows 上 Codex 桌面版在 WSL 里运行 Codex 时,用第三方供应商一启动就报「No such file or directory (os error 2)」(#9375)。v4.0.27 起,CC Switch 在 config.toml 里把模型目录文件写成 Windows 绝对路径,WSL 里的 Codex 读不懂这个路径,直连、路由、聚合三种模式都受影响。现在在 Windows 上、Codex 桌面版开启了在 WSL 中运行 Codex 时,改回只写文件名,下次写入时自动改正。
  • Codex 新对话经路由连第三方原生 Responses 上游时报 400(#9328,相关 #7074、#9379)。新版 Codex 桌面版会在新对话里带上没有 call_id 的页面上下文工具结果,自动化和跨任务派发的回执也是这样,校验严格的上游会拒绝整个请求。以前只对 xAI 改写,现在对所有非官方的原生 Responses 上游都改写成一条用户消息,内容保留。官方订阅和带 call_id 的工具结果不受影响。
  • Codex 经路由连 Anthropic 格式上游时,长回答被截断,报「Incomplete response returned, reason: max_output_tokens」,重试也一样。Codex 请求不带输出上限,以前按 8192 发出,思考也算在内,一次写一整个文件的工具调用就会用完。现在默认改为 32000。上游的输出上限更低时会报 400,可以在供应商的「最大输出 tokens」里填它支持的值。
  • Codex 官方卡在路由模式下拿不到账号自己的模型列表:Codex 只能用它自带的列表,缺少账号专属的模型;Codex 桌面版打开 Daybreak 后,官方模型全部变灰。现在路由正在用官方卡、且没有打开「暂停使用官方登录」时,路由会把官方的模型列表原样交给 Codex。第三方供应商不转发。
  • Claude Code 经路由连 Mistral 上的 DeepSeek 模型时,工具调用之后的每一轮都报 422(#9385、#9388)。
  • 只能经路由使用的 Claude Code 卡片,点「打开终端」后 Claude Code 每句话都提示未登录(「Not logged in」),请求根本没发出去。GitHub Copilot、Codex OAuth、xAI OAuth 这类卡片的凭据由路由提供,非 Anthropic 格式的卡片要靠路由转换格式,终端直连卡片地址用不了。现在这类卡片的「打开终端」按钮变灰,并说明要开启路由后在终端里直接运行客户端。Codex 页面上这类卡片也从隐藏按钮改为同样变灰。
  • Claude 官方卡显示的额度可能是另一个账号的:本机默认登录换成别的账号后,正在用的那张卡会读到默认登录那个账号的额度。现在会先确认默认登录属于这个账号。
  • Antigravity 的额度和 agy /usage 对不上;Google AI Ultra 5x 和 20x 都只显示「Google AI Ultra」(#9317、#9319)。

致谢

感谢 @Owlbay(GitHub Copilot CLI)、@cuiyf5516(韩语界面、韩元币种)、@sunrisegm(俄语界面)、@szcascsa(Codex 没有 call_id 的工具结果)、@quwang123(Mistral 上的 DeepSeek)、@jimpablo(Antigravity 额度与 Ultra 档位)的贡献。

特别感谢以下贡献者:你们的 PR 发现并修复了真实的问题,只是同样的问题后来在主线上另行修好,PR 因此关闭。@SailingLoong(Codex 配置不再写入 disable_response_storage)、@zichen0116(Codex 经路由发往第三方时去掉 ChatGPT 身份头)、@lihenga(Codex 桌面版页面通知缺少 call_id)。

感谢 @SMYQH、@Irving798、@imysen、@THao712、@Z-Eternal、@sumi-0011、@DrMaks22 提出需求、报告问题和提供复现信息。

完整的技术细节请见 CHANGELOG。

CC Switch v4.0.28

Choose a tag to compare

@github-actions github-actions released this 08 Nov 15:56

CC Switch v4.0.28

本版本主要应对 Codex 11 月 8 日的不兼容更新。

⚠️ Codex 桌面版 26.1103、CLI 0.167 起,官方订阅和第三方供应商的会话彻底分开了。 直连模式下在两者之间切换,以前只是两边的会话分开显示,现在另一边的会话直接变成只读:能查看,不能继续,继续时提示「模型提供商不匹配」。要来回切换并继续旧会话,有两个办法:

  1. 改用路由或聚合模式:本版本起,路由或聚合模式下切到第三方,会话和官方订阅留在同一组,来回切换都能继续。
  2. 打开「统一 Codex 会话历史」(「设置 → 应用配置 → Codex」):官方和第三方的会话归到同一组,直连模式下也能来回切换。

此外,直连切换让会话变成只读时会提示数量;开启「统一 Codex 会话历史」并勾选迁入现有会话后,会持续把官方会话迁进来。官方额度用完、Codex 锁住发送键时,可以在路由或聚合设置里打开「暂停使用官方登录」,继续用第三方模型;官方额度保护改为默认开启。应用页的安装和升级会显示排队状态和实时进度。另外修复了 Codex 故障转移到别家时仍带着上一家的模型名、Kimi For Coding 上压缩失败、在 Kimi 或 DeepSeek 上续接工具调用后会话一直报 400 等问题。

English → | 日本語版 →


新增

适配新版 Codex 的会话分组

Codex 按供应商标识记录会话:官方订阅记在内置的 openai 下,CC Switch 写入的第三方供应商记在 custom 下。新版 Codex 只能继续与当前供应商同一组的会话,另一组只读(#7974)。本版本围绕这一点做了以下改动:

  • 路由或聚合模式下切到第三方,会话不再分成两组:本机登录了 ChatGPT、且没有开「统一 Codex 会话历史」时,路由到第三方也和官方一样写成内置的 openai,请求照常经本地路由发往第三方,所有会话都在 openai 这一组。第三方的 Key 由本地路由替换,ChatGPT 的账号 ID、组织等请求头会被去掉,第三方收不到你的账号信息。
    • 以下情况仍写成 custom:本机没有 ChatGPT 登录、开着统一会话历史、打开了「暂停使用官方登录」,或者供应商配置里写了请求重试、流重试、流空闲超时、远程压缩这些内置 openai 表达不了的设置。
    • 已经在用路由模式的不用操作,CC Switch 下次接上路由时会自动改写一次。直连模式不变。
  • 直连切换后提示有多少会话只能查看:没开统一会话历史时,直连模式下在官方订阅和第三方之间切换,切换成功的提示里会多一行,例如「之前在官方订阅下的 12 个会话现在只能查看」。从托盘切换不提示。
  • 统一 Codex 会话历史(「设置 → 应用配置 → Codex」):开启后官方订阅也改用 custom 标识,两边的会话在同一组,新版 Codex 里都能继续。经常在官方和第三方之间切换时建议开启。
    • 「同时迁入现有官方会话历史」改为默认勾选。勾选后,之后每次启动 CC Switch 都会把又出现在官方组的会话迁进来,比如关掉再打开过这个开关,或者不经 CC Switch 用过 Codex。
    • 迁移和还原前都要备份 Codex 的会话数据库,以前 42 MB 的数据库要备份约 90 秒,现在不到 1 秒。
    • 后台迁移完成后会提示迁入了多少个会话,重启 Codex 后就能继续。

暂停使用官方登录(Codex)

官方 ChatGPT 额度用完后,Codex 会自己查额度,锁住模型选择和发送键,选了第三方模型也发不出去(#7974、#7962)。这一步在 Codex 客户端里,本地路由管不到;以前手动把 requires_openai_auth 改成 false 的办法,现在切换一次就会被覆盖。

现在 Codex 的「路由设置」和「聚合设置」(路由或聚合模式生效时,模式标签栏右端的齿轮按钮)最上面多了「暂停使用官方登录」开关:

  • 打开后 Codex 不再使用官方登录,不会因为官方额度锁住发送键,聚合和路由里的第三方模型可以继续用。官方登录仍保存在本机,不会退出。
  • 打开期间,官方模型发不出去,会提示改用第三方模型;Codex 里不显示账号和用量信息,第一次打开可能弹出新手问卷;侧栏「项目」里原来的会话暂时看不到,关掉开关后会回来;新会话记在 custom 组,切回官方后只能查看。
  • 打开期间 Codex 页面顶部会一直有提示,官方额度恢复后点「恢复官方登录」即可。
  • 打开和关闭后都要彻底退出并重新打开 Codex。只在路由和聚合模式下生效,直连不受影响。

应用页显示安装进度

应用页的安装、升级和卸载一次只跑一个,以前慢的时候每一行都在转圈,分不清是在下载、在排队还是卡住了(MiniMax Code 的安装包约 100 MB,网络慢时要十几分钟)。现在排队的那一行会写「排队中,等前一个应用完成」,正在跑的那一行显示已用时间和命令输出的最新一行。离开应用页再回来,进度还在。


变更

  • 官方额度保护改为默认开启:经本地路由的 Codex 官方请求,在五小时使用率达到 95% 或每周使用率达到 98% 时就会暂停,第三方模型照常可用,避免走到 Codex 锁住发送键那一步。升级后会自动打开一次;之后手动关掉,不会再被打开。阈值在「设置 → 应用配置 → Codex → 官方额度保护」里改。
  • 不再写入 disable_response_storage(#7524):新版 Codex 删掉了这个设置,每次启动都会提示有一个无法识别的配置项。预设、模板、统一供应商和一键导入链接都不再写它,已有 config.toml 里的这一行在下次切换时清掉。
  • Antigravity 显示 Argon 每周额度(#8913):Pro 套餐的 Argon 每周额度以前不显示。现在卡片上把它并进 Gemini 那一行,下拉菜单和授权中心单独列出。
  • Windows 上第一次启动更快:新建数据库时建表和写入内置模型价格各合成一次提交,第一次启动快了约 6 秒。

修复

  • Codex 故障转移到别家时,仍带着上一家的模型名,备用供应商报模型不存在(#7547)。现在开着故障转移时,换到备用供应商前会先看它认不认请求里的模型(是它自己的模型,或在它的模型列表里),不认就换成它自己的模型;同一个模型的中转队列照原样发。图片生成、图片编辑和搜索请求不换模型。
  • Codex 经路由连 Kimi For Coding 时,压缩上下文总是失败(HTTP 400)。Kimi 不接受压缩请求里的 tool_choice: "none";现在第三方原生 Responses 上游拒绝压缩请求时,会去掉 tool_choice 再试一次。
  • Codex 在 Kimi 或 DeepSeek 的原生 Responses 上续接工具调用后,这个会话之后每一轮都报 400。工具调用和它的结果之间夹了一条助手消息,Kimi 和 DeepSeek 都会拒绝整段历史;Kimi 还会拒绝空的助手消息。现在只对 Kimi(Moonshot)和 DeepSeek 的地址整理这类历史,其他请求原样发出。
  • Windows 上 Codex 目录在 WSL 里(\\wsl.localhost)时,分叉出来的会话用量一直不导入。

致谢

感谢 @allen546(Antigravity Argon 每周额度)、@fisHarly0(SSE 分隔符说明)的贡献。

特别感谢以下贡献者:你们的 PR 发现并修复了真实的问题,只是同样的问题后来在主线上另行修好,PR 因此关闭。@SailingLoong(Codex 故障转移时更换模型,本版的修复参考了这个 PR 的思路)、@xiajiahang(聚合模式拖动排序后重排聚合模型)。

感谢 @erickksun、@Juddd、@EMnian、@shidao-ap5、@LeenixP 报告问题、提供复现信息和修复思路。

完整的技术细节请见 CHANGELOG。

CC Switch v4.0.27

Choose a tag to compare

@github-actions github-actions released this 07 Nov 09:08

CC Switch v4.0.27

本版本让会话管理可以搜索消息正文,新增界面密度和界面缩放设置,模型定价表可以搜索,Grok Build 正在使用的供应商也能打开终端了。Skills 的已安装页重新排了版,供应商图标会跟随深浅色主题。另外修复了配置文件是软链接时被替换成普通文件或写入失败、取消请求后供应商卡在熔断恢复中直到重启、Codex 设置了自定义权限后 plan 模式报错、运行过的 Skill 被误报有更新、Skills 仓库显示 0 个 Skill、Windows 上把 Python 的 pi.exe 认成 Pi、模型价格同步超时、打开对话框时窗口拖不动、右键弹出浏览器菜单,以及 Linux 快捷面板显示异常等问题。4.0 完整的更新内容请见 v4.0 发布说明。

English → | 日本語版 →


新增

搜索会话的消息正文

以前会话管理页的搜索只能找标题、目录和会话 ID,记得聊过什么、却想不起是哪个会话时找不到(#7896、#7420)。

现在可以打开「搜索消息正文」:在页面右上角的「⋯」菜单里打开,或者搜索没有结果时直接点提示里的按钮。打开后,搜索结果会列出命中的正文片段和命中了几条消息。

  • 默认关闭。打开后 CC Switch 会在本地为消息正文建立索引,建立期间会显示进度,这时正文结果可能还不全。
  • 索引是单独的本地文件 session-index.db,不参与云同步,也不进备份;关闭这个开关会删除它。

界面密度和界面缩放

「设置 → 通用 → 外观」里新增两项(#9209):

  • 界面密度:「紧凑」就是原来的尺寸,也是默认值;「舒适」的字号大一档,按钮和输入框更高一些。
  • 界面缩放:90%、100%、110%、125% 四档,也可以按 Ctrl(macOS 上是 ⌘)加 +、- 调整,按 Ctrl/⌘ 加 0 复原。

两项设置只保存在本机,和主题一样。托盘快捷面板始终保持紧凑尺寸。

模型定价表可以搜索

模型定价表上方加了搜索框,按模型 ID 或名称筛选(#9205)。按回车会编辑第一个结果;没有匹配的模型时,回车会为输入的模型新增定价。

Grok Build 打开终端

Grok Build 的供应商卡片也有「打开终端」按钮了(#9234)。Grok CLI 不能只让某一个终端换供应商,所以这个按钮只出现在正在使用的供应商上,打开的终端直接用 CC Switch 管理的这份 Grok 配置;选择跳过权限确认时会加上 --always-approve。


变更

  • Skills 已安装页重新排版(#9210):
    • 名称列固定在左侧,窗口窄时各应用的列在它下面横向滚动。
    • 状态和来源筛选移到和「发现」页一样的工具栏里,选中 Skill 后也不会被挡住;批量操作保留更新、卸载和按应用「启用到」/「停用」。
    • 去掉了页头的「N 个可更新」链接,工具栏的「全部更新」已经写了数量;点每行的「可更新」标记就能更新这个 Skill。
    • 每行的「…」菜单保留打开文档、打开目录和卸载;写入失败时,错误信息显示在描述的位置。
  • 供应商图标跟随主题(#8438):去掉了卡片图标后面固定的白底。单色的深色图标会跟着文字颜色变化,深色模式下也看得清;带深色笔画的多色图标、图片图标和你上传的图标在深色模式下仍然带浅色底。
  • 右键不再弹出浏览器菜单(#8919、#8921):以前在主窗口和托盘面板里点右键,会弹出浏览器自带的菜单(Windows 上是「后退」「重新加载」「另存为」「打印」等)。现在不会了;输入框、代码编辑器和选中的文字仍然可以右键复制粘贴。
  • 熔断日志写明是哪家供应商(#9292):熔断器的日志(CB-001 到 CB-006)都带上了「应用:供应商 id」;熔断器拒绝某家供应商时也会记一行 FWD-004,写明供应商名称,不再悄悄跳过。只改了日志,路由和熔断行为不变。
  • 预设: Mistral AI 预设的默认模型改为 mistral-large-4(Mistral Medium 3.5 已被 Mistral 宣布弃用),Claude Code、Codex 和 Claude Desktop 的 Mistral AI 预设不再隐藏。Mistral Vibe 套餐和 API 共用额度,「获取 API Key」改为打开 Vibe CLI 的密钥页,免费、订阅和按量付费都能用;添加供应商时搜「Vibe」也能找到它。新增 Genesis(#9269)、TokenPlus(#9296)。已添加的供应商不受影响。

修复

  • 配置文件是软链接时,切换供应商会把它替换成普通文件,Windows 上直接报错(#6764、#9283)。用 dotfiles 工具或同步文件夹管理 ~/.claude/settings.json、~/.codex/config.toml、opencode.json 等文件时,它们通常是软链接。以前写入时会把链接本身替换掉,macOS 和 Linux 上链接变成普通文件、和原文件脱钩,Windows 上报错「原子替换失败」(os error 1464)。现在会写到链接指向的真实文件,链接保持不变。
  • 请求中途被取消后,供应商可能一直处在熔断恢复中,直到重启(#7206、#9292)。熔断恢复期间,熔断器只放一个探测请求过去;如果这个请求还没结束客户端就断开了,名额不会还回去,之后发给这家供应商的请求全被拒绝。现在无论请求怎么结束,名额都会还回去。
  • Codex 设置了自定义权限后,用 plan 模式报错(#7349、#7294)。较新的 Codex 读取自定义权限时要求 model_catalog_json 是绝对路径,以前 CC Switch 写的是文件名,Codex 报 AbsolutePathBuf deserialized without a base path。现在写成绝对路径;配置目录在 WSL 里时仍写文件名。
  • 运行过一次的 Skill 被显示为「可更新」,点更新会覆盖整个目录(#7780、#7772)。Python 运行时生成的 __pycache__ 和 .pyc 文件被算进了 Skill 的内容。现在检查更新时忽略这些文件;以前版本记下的旧记录会自动换算,不会因此误报。
  • Skills 仓库显示「识别到 0 个技能」(#9273)。导入时添加的仓库分支记为 HEAD,或者仓库默认分支是 master 却配成了 main 时,数量总是 0。现在按实际读取的分支计数;读取失败的仓库会写明「读取失败」和原因,导入 Skill 新增了仓库后,下次打开会重新读取。
  • Windows 上把 Python 包里的 pi.exe 当成 Pi(#9267)。PyPI 上有一个无关的 pi 包会装出 Scripts\pi.exe,应用页会把它显示为「无法运行」。Pi 只通过 npm 发布,现在 Python Scripts 目录里的 pi.exe 不再被识别为 Pi。
  • 模型价格同步失败,只提示 error decoding response body(#9262)。网络较慢或经代理时,从 models.dev 下载价格表会在读到一半时超时。现在超时时间从 15 秒放宽到 60 秒,失败时同步状态里会写出真正的原因。
  • 添加 DeepSeek Harness 供应商时只提示 Invalid DeepSeek Harness profile YAML,不知道是哪个文件(#9297)。现在报错会写出出错的配置文件路径和 YAML 的具体错误,方便找到文件修复。
  • 连通性测试把会重定向的中转站判为不通(#9253、#5747)。有的网关在 /v1 和 /v1/ 之间互相重定向,现在测试收到重定向就算连得上。
  • 打开对话框时窗口拖不动(#9140)。现在对话框打开时仍然可以拖动窗口;Windows 和 Linux 上使用应用内窗口按钮时,最小化、最大化和关闭按钮也照常可用。
  • Linux 快捷面板显示异常:轻量模式下重新打开的面板和窗口渲染出错(#9233、#9216),设置了显示缩放时面板被裁掉一部分(#9287、#8556)。Linux 上的面板改为不透明背景。
  • 供应商名称以 emoji 等字符开头、或前面带空格时,没有图标的卡片显示的首字是乱码或空白(#8139)。
  • 一键导入链接的风险提示漏判了内嵌 IPv4 地址的 IPv6 地址(#8127)。这类地址现在按它实际指向的 IPv4 地址判断是否为本机或内网。

致谢

感谢 @funkpopo(界面密度和缩放、模型定价表搜索、Grok Build 打开终端、Skills 已安装页、对话框拖动、重定向中转站)、@Owlbay(消息正文搜索、供应商图标跟随主题、Linux 快捷面板)、@xue-ding-e(消息正文搜索)、@allenxu09(供应商图标跟随主题)、@SailingLoong(Codex plan 模式报错)、@rollroyces(Skill 误报有更新)、@jzcangshu(右键浏览器菜单)、@Railgun-wiki(Linux 快捷面板缩放)、@subbareddypalagiri(图标首字、一键导入风险提示)、@lxw665(Genesis 预设)、@XiaoqiangPei(TokenPlus 预设)的贡献。

特别感谢以下贡献者:你们的 PR 发现并修复了真实的问题,只是同样的问题后来在主线上另行修好,PR 因此关闭。@guokun666、@742369675-coder(Claude Desktop 的一键导入链接)、@funkpopo(DeepSeek Harness 配置目录)、@SailingLoong(网关拒收图片时的降级)。

感谢 @Joyyi-11、@BennettChina、@Ming-Sir-69、@xjtusjtu、@zhengguilin、@YongmaoLuo、@dujunily、@sancodeee、@yinshuang007、@1974471409、@zjking、@WesternGua、@libcyz、@SuFangzheng 报告问题、提供复现信息和修复思路。

完整的技术细节请见 CHANGELOG。

CC Switch v4.0.26

Choose a tag to compare

@github-actions github-actions released this 05 Nov 15:25

CC Switch v4.0.26

本版本让授权中心和官方供应商卡片显示每个账号的订阅计划,GitHub Copilot 账号会列出所有有上限的额度;一键导入链接现在也能导入 Claude Desktop、MiniMax Code、Kimi Code、DeepSeek Harness 和 Oh My Pi 的供应商。Codex 卡片可以选择保留 GPT 模型的官方 Fast 档;系统代理把 Codex、Grok Build 发往本地路由的请求接走时,CC Switch 会提醒你。DeepSeek Harness 可以设置配置目录,装在 WSL 里也能管理。这一版还做了一轮性能优化:供应商列表、主窗口加载、启动、会话读取和路由转发都更快,会话同步占着数据库时界面也不再卡住。另外修复了 IPv6 不通时经路由请求先卡两分多钟、需要登录的 MCP 服务器显示连接失败、Claude Desktop 路由卡片改了模型不生效、Codex 经路由转 Chat 时缓存命中率下降、GitHub Copilot 的 Grok 请求报 422 和回复重复显示、非 Retina 显示器上弹窗模糊等问题。4.0 完整的更新内容请见 v4.0 发布说明。

English → | 日本語版 →


新增

账号订阅计划

以前授权中心里只有 Claude 账号会写订阅计划,其他账号只显示登录日期,同一个服务的 Max 账号和 Free 账号看起来一模一样。

现在 GitHub Copilot、ChatGPT、Kimi、Antigravity、xAI 账号的第二行开头也会写订阅计划。Codex、Kimi、Antigravity、Gemini CLI 的官方卡片,以及 Copilot、xAI 账号卡片,副标题后面也会加上「· 计划名」。

  • 卡片上的计划名直接用额度查询的结果,不会多发请求(Kimi、Antigravity、xAI 查额度时会多一个并行请求取计划名);额度加载出来后计划名才出现,不查额度的卡片不显示。
  • 计划名查不到时只是不显示,额度照常显示;刷新失败时保留上次查到的计划。
  • 跟随 Grok CLI 登录的 Grok Build 卡片、没绑账号的 Antigravity 卡片暂时还没有计划名,它们查额度的方式拿不到这项信息。

GitHub Copilot 显示全部额度

Copilot 账号以前只显示高级请求的百分比。现在每一项有上限的额度各占一行,悬停可以看到「剩余 / 共」,Free 账号的代码补全和聊天次数也能看到了。

  • 高级请求改叫 Credits,和 Codex 的叫法一致,托盘里也一样。
  • Free 账号没有 Credits,以前会显示成「还剩 100%」,现在写「当前计划不含」,供应商卡片上不再显示这一项。

一键导入支持更多应用

以前 Claude Desktop、MiniMax Code、Kimi Code、DeepSeek Harness 和 Oh My Pi 的供应商链接会直接被拒绝。现在这些应用的链接也能导入了。

  • Claude Desktop:链接是 Anthropic 格式、模型名都以 claude- 开头(或没写模型)时,导入成直连卡片;其他情况导入成模型映射卡片,四个档位按链接里的模型填好。
  • MiniMax Code、Kimi Code、DeepSeek Harness、Oh My Pi:和 Pi 一样导入成单个模型,链接里必须带模型。
  • Oh My Pi 会把某些写法的 Key 当成环境变量名或命令来读,导入后可能把你本机的密钥发到链接里的地址。所以这类 Key(以 ! 开头、没有小写字母等)会被拒绝导入。

Codex 卡片保留官方 Fast 档

Codex 第三方卡片模型列表里的 GPT 模型以前一律去掉了官方的 Fast 速度档,选不了 Fast(#5234)。转发官方 ChatGPT 账号的中转(如 CPA)其实支持 Fast。

现在 Codex 供应商表单「高级选项」里,「上游格式」下面多了「保留官方 Fast 档」,默认关闭,只在上游格式为 Responses 时显示。打开后 Codex 选了 Fast 时请求会带 service_tier=priority。

  • 只有转发官方 ChatGPT 账号的中转才认,会更快消耗额度;其他上游可能报错或按更高价格计费。
  • 以前在官方卡片下选过 Fast 的,打开后会马上在这家生效。聚合模式下不生效,改完需要重启 Codex。

系统代理接走本地路由时提醒

开着 Clash 这类代理工具时,Codex 和 Grok Build 发往本地路由(http://127.0.0.1:<port>)的请求可能被系统代理接走,转到远程节点后返回一个空的 502(#9221)。Codex 只显示「502 Bad Gateway」,CC Switch 这边也收不到请求,没有任何日志,很难查。

现在 Codex 或 Grok Build 进入路由模式后,CC Switch 会在后台按客户端同样的代理规则给本地路由发一次请求。请求回不来时,日志里会记一条警告;如果是你手动进入路由模式,界面上也会弹出提示,说明怎么在代理工具里让本机地址直连(例如在 Clash 规则最前面加 IP-CIDR,127.0.0.0/8,DIRECT,no-resolve)。

DeepSeek Harness 配置目录

以前 DeepSeek Harness 只认 DSH_HOME 或 ~/.dsh,装在 WSL 里的 DSH 在 Windows 版 CC Switch 里管不了(#9239)。

现在「设置 → 应用配置」里多了 DeepSeek Harness 一栏,可以设置配置目录。供应商、Skills、指令文件、会话和用量导入都会跟着这个目录走。填 WSL 里的路径时,版本检测、安装和升级也会在那个 WSL 发行版里进行。


变更

  • 性能优化:
    • 供应商列表读取更快,供应商越多越明显;没改动的供应商不再重复写入数据库,也就不会因此触发云同步(#9180)。
    • 次要页面和供应商编辑器改为用到时才加载,主窗口启动要加载的脚本少了一半(#9181)。
    • 启动时的日志清理挪到后台进行;窗口隐藏或最小化时暂停定时刷新,窗口可见但不在前台时照常刷新(#9182)。
    • 读取会话记录时少复制一遍数据,进入轻量模式后会释放会话缓存(#9183)。
    • 路由转发流式响应时少了大量内存复制,响应很长时尤其明显;故障转移读数据库的次数也更少(#9161)。
  • 会话同步时界面不再卡住(#9178):大会话文件同步时会占着数据库几十秒,这期间打开 Skills 页、切到 Pi 或 Oh My Pi、打开网络或数据设置、图标选择、统一供应商面板、测速等操作会让整个窗口和托盘卡住,直到同步结束。现在这些操作都在后台等待,界面照常响应。
  • 会话阅读页的工具栏重新排版(#9109):第一行放路径和阅读工具,第二行放时间、会话统计、模型和用量;去掉了容易落在行首行尾的分隔点,模型名太长时换行显示,悬停可看完整名称。
  • 预设: Grok Build 默认模型改为 grok-4.7,Kimi 预设(Codex 的除外)默认模型改为 kimi-k3.1-pro,Hermes 的千问 Coding Plan 默认模型改为 qwen3.7-plus(#9193);TeamoRouter 改用 teamorouter.com 域名;Claude Desktop 官方卡片的下载链接改为 claude.com/download。已添加的供应商不受影响。

修复

  • IPv6 不通时,经路由的请求要先卡两分多钟才发出(#9212)。智谱 GLM、阿里云百炼等服务的域名会先解析出 IPv6 地址,在 IPv6 不通的网络里,本地路由要等系统把每个 IPv6 地址都超时一遍才改用 IPv4,macOS 上约 150 秒、Windows 上约 43 秒。现在 IPv6 地址 300 毫秒内连不上就同时尝试 IPv4,发出的请求内容不变。
  • 需要登录的 MCP 服务器,连通性检查显示「连接失败」(#9190)。Notion、Sentry 这类服务器需要 OAuth 登录,客户端里登录后能正常用,但 CC Switch 检查时不带客户端的登录凭据,就被判成了失败。现在这种情况显示黄色圆点,悬停会说明服务器能连上、只是要求登录。CC Switch 仍然不读取客户端保存的登录凭据。
  • Claude Desktop 路由卡片改了模型后,Claude Desktop 里还是旧模型,删掉重建才行(#9203)。保存时「菜单显示名」留空会自动填成模型名,之后只改模型时显示名还是旧的。现在显示名和旧模型名一样时会跟着新模型一起改,你自己起的名字保持不变。
  • Codex 经路由转 Chat 时,对话中途改了设置后缓存命中率下降。比如中途切换 sandbox_mode 后,Codex 会在这一轮开头插入一条说明,以前它被合并到对话最开头,改写了整段历史,上游缓存就全部失效了。现在这条说明留在原位,之前的历史保持不变。
  • Codex 经路由转 Chat 时,可能把另一个会话的思考内容混进当前会话。上游给的工具调用 ID 容易重复(如 exec_command:0),本地路由重启或缓存被挤掉后,可能找到别的会话里同名的调用。现在按 Codex 会话区分,只在同一个会话里找。
  • 路由请求失败时,请求日志里记的是客户端的模型名。比如 Claude Desktop 的后台任务用的是 claude-haiku-4-5-20251001,映射到这张卡片的模型后上游报 429,日志里却显示 Haiku,看起来像调用了一个你没配过的模型。现在失败的请求和成功的一样,会写成「claude-haiku-4-5-20251001 → 实际模型」。
  • 跟随本机登录的 Claude 官方卡片,登录过期后一直显示「令牌待刷新」,要再跑一次 Claude Code 才恢复。现在登录过期时 CC Switch 会让 Claude Code 自己刷新登录,再读取额度。设置了 Claude 配置目录时跳过。
  • Claude Code 和 Claude Desktop 自动模式的安全分类器不可用时,客户端会一直重试、持续消耗额度(#9201、#9199)。现在连续 3 轮工具结果都报告分类器不可用时,本地路由直接返回错误,不再发给上游;发一条新消息即可继续。
  • Codex 通过 GitHub Copilot 用 Grok 模型时报 422(#7989、#7988)。现在 Copilot 的 Grok 请求和直连 xAI 一样做兼容处理。
  • Codex 通过 GitHub Copilot 时,同一条回复显示两遍(#8025、#7977)。
  • 安装或升级应用时撞上已有的同名文件,提示里只有 npm 建议的 --force(#9196、#9173)。这个文件多半来自另一种安装方式,用 --force 会直接覆盖它。现在提示会写出冲突的文件路径,建议先改名备份再重试。
  • Skills 里有文件软链接时,WebDAV 自动同步失败(#9197)。比如 CLAUDE.md 和 GEMINI.md 都链接到 AGENTS.md 时,打包会出现重名文件。现在每个文件保留自己的名字。
  • Codex 子代理并发上限的两个问题(#9148):config.toml 里表头后面带注释时,改上限可能覆盖掉 [features.multi_agent_v2];[agents] 写成带引号的键名时,会多写一个 Codex 不认的重复字段。说明文字也补充了改动只对新会话生效。
  • DeepSeek Harness 用 headless profile 时找不到 CC Switch 保存的 Key,报 MISSING_CREDENTIAL。现在写入 headless profile 时会按 DSH 文档开启凭据读取;你自己改过这一项的 profile 保持不变。
  • 在 1x 显示器上,「选择模型」等弹窗显示模糊(#9238)。弹窗居中时可能落在半个像素上,非 Retina 显示器上文字和边框会发虚。
  • macOS 上,在 MCP 表单、提示词编辑、Skills 仓库、会话搜索等输入框里打字时首字母被自动改成大写,环境变量名、请求头、命令、地址可能因此被存错。
  • Linux AppImage 打包了旧版 libwayland-client(#9229、#8723),在 Intel 核显加 Wayland 的环境下可能打不开。

致谢

感谢 @YUZHEthefool(供应商列表、页面加载、启动和会话读取四项性能优化)、@allenxu09(路由转发性能、会话阅读页工具栏)、@thisTom(会话同步时界面卡住)、@EdwinDigital(GitHub Copilot 的 Grok 请求和重复回复)、@jasontospas(安全分类器重试循环)、@funkpopo(子代理并发上限修复)、@zydo(预设默认模型)、@Logic-Bin(npm 同名文件冲突提示)、@paigeman(Skills 软链接同步)、@nekoteai(Linux AppImage)的贡献。

感谢 @939zzz、@xybigdata、@codexvn、@Guns160、@Drteammangel、@icucuio、@48ytw4q7zg-sudo、@Cu-debug178、@Wulianmiao 报告问题、提供复现信息和修复思路。

完整的技术细节请见 CHANGELOG。

CC Switch v4.0.25

Choose a tag to compare

@github-actions github-actions released this 02 Nov 15:08

CC Switch v4.0.25

本版本为 MCP 页面增加了连通性检查,可以一键检查所有已启用的 MCP 服务器能不能连上;Codex 经本地路由用官方账号时,可以在额度快用完前自动暂停官方请求,第三方模型照常可用。另外,用量页的汇率可以自动获取,Codex 供应商表单可以设置子代理并发上限,Claude Code 和 Claude Desktop 经路由或聚合时,模型菜单会写明每个模型来自哪个供应商、实际是哪个模型,会话管理里也能删除 Kimi Code 会话了。还修复了「打开终端」混入路由和聚合设置、路由模式下 OpenCode Go 等供应商让 Claude Code 要求重新登录、给纯文本模型发过一个文件后之后每轮都报错、Windows 上供应商表单内容来回闪、启动时托盘面板打不开、Codex 用了模型映射时用量算两遍等问题。4.0 完整的更新内容请见 v4.0 发布说明。

English → | 日本語版 →


新增

MCP 连通性检查

以前 MCP 服务器配好以后,只有在编程工具里用到时才知道能不能连上(#4498)。

现在 MCP 页面顶部多了「检查连通性」按钮,会检查所有已启用的服务器;每一行的菜单里也有「测试连接」,只检查这一个。

  • 打开页面时不会自动检查,没检查过的显示「未检查」;改了某个服务器的连接配置后,它的结果会重置。
  • 检查方式是和服务器完成一次 MCP 握手,本地命令(stdio)、HTTP 和旧版 SSE 三种连接方式都支持。每个服务器最多等 30 秒,整个应用同时最多检查 3 个。
  • 本地命令启动的服务器检查完会连同它启动的子进程一起结束,不会留下后台进程。macOS 和 Linux 上不从终端启动 CC Switch 时,也能找到 npx、uvx 这类命令。

Codex 官方额度保护

Codex 用官方 ChatGPT 账号时,五小时或每周额度用完会进入 Reserve 模式。现在可以在额度快用完时先暂停官方请求,留着额度,第三方模型照常可用。

在「设置 → 应用配置 → Codex 应用增强」里打开「官方额度保护」,可以设置五小时和每周使用率的阈值(默认 95% 和 98%),任一达到就暂停新的官方请求。

  • 只对经过 CC Switch 本地路由的 Codex 官方请求生效,默认关闭。
  • 使用率直接读官方响应里自带的额度信息,正常使用时不会多发请求;刚开始用或空闲约 5 分钟后,才会先单独查询一次。
  • 查不到额度(网络问题、登录过期等)时照常放行,不会误挡。被暂停的请求会直接返回错误,不会转到故障转移队列里的其他供应商。

用量页汇率自动获取

用量页「用量设置」里的「显示」区多了「汇率来源」,可以选「手动填写」(默认)或「自动获取」。选了自动获取才会联网,汇率超过 12 小时会自动更新,获取失败时继续用上次的汇率。自动获取的汇率和手动填的分开保存,切回手动填写时你自己填的值还在。费用仍按美元记录,只在显示时换算。

Codex 子代理并发上限

Codex 供应商表单的「子代理模型」下面多了「子代理并发上限」,设置一个 Codex 会话里最多同时开多少个子代理(#9055)。这是 Codex 的全局设置,写进 config.toml 的 [agents] max_threads,切换供应商时保持不变,官方卡片上也能改;留空就用 Codex 的默认值。

模型菜单写明供应商和实际模型

Claude Code 在路由模式下,/model 菜单里每一档以前只写「Custom Sonnet model」,看不出对应哪家供应商的哪个模型。现在会写成「供应商 · 实际模型 · 窗口」(窗口只在上游标了 1M 时显示),聚合模式下的模型也一样。供应商里自己写过模型说明的,以你写的为准。

Claude Desktop 在路由和聚合模式下,模型下面的说明以前按名字里的 Opus、Sonnet 套用官方文案,聚合模型一律显示同一句。现在也改成「供应商 · 实际模型 · 窗口」。

删除 Kimi Code 会话

会话管理里可以直接删除 Kimi Code 会话了,以前只能去 Kimi Code 里删。删除方式和 Kimi Code 自己的一样,子代理的历史会一起删掉。

定价: 内置价格表新增 GPT-6.1 Terra。


变更

  • 本地路由不再接受网页发来的请求。本地路由会把请求换成你保存的供应商凭据再转发,所以网页如果能把请求发到本地路由,就能用掉你的额度。现在带浏览器来源标记的请求会被拒绝,通过普通域名指向本机的访问也不再接受。编程工具发的请求不受影响。
  • Skills「发现」页的工具栏和「已安装」页对齐(#9125):搜索框位置和宽度一致,刷新按钮改为「刷新仓库」文字按钮,来源、仓库筛选和「只看未安装」挪进表头,「安装到」放在表头右侧。少了一行,功能不变。
  • Windows 上首选终端是 PowerShell 时,装了 PowerShell 7 就用它打开(#8992、#3271),没装才用系统自带的 Windows PowerShell。供应商卡片的「打开终端」和应用的安装、升级都是这样。
  • 预设: 千问 AI 平台和 QwenCloud 的按量付费、Token Plan 改用新的 MaaS 域名,Coding Plan 不变。

修复

  • 在路由或聚合模式下,Claude Code 卡片的「打开终端」混入了路由和聚合的设置。终端里的 Claude Code 会同时带上路由的占位凭据和这张卡片的 Key,这张卡片没配的模型档位会用上聚合里的模型名,发到这张卡片的地址上用不了;/model 菜单里也会出现其他供应商的模型。现在终端里只用这张卡片自己的设置,你的其他全局设置照常保留。
  • 路由模式下,OpenCode Go 等用 ANTHROPIC_API_KEY 存 Key 的供应商会让 Claude Code 要求确认自定义 Key,默认选「否」后就是未登录(#8111、#8104)。现在路由模式下占位凭据一律写进 ANTHROPIC_AUTH_TOKEN,发给上游的请求不变。
  • 给纯文本模型发过一个文件或音频后,之后每一轮都报 400(#6274、#6151)。现在经路由发给纯文本模型时,对话里的文件和音频会换成一段文字说明;智谱 GLM 的中文报错也能认出来。图片的处理不变。
  • Windows 上供应商表单里的名称等内容来回闪(#6420、#6349)。这是 WebView2 的自动填充在覆盖表单内容,现在已对主窗口关掉。
  • 启动后的一段时间里托盘面板打不开,也没法从托盘退出(#9154)。启动时导入会话用量会占着数据库,托盘面板要等数据。现在面板会先弹出,「打开主窗口」和「退出」马上能用,列表随后加载。
  • Codex 经路由用了模型映射时,同一个请求的用量被算两遍(#7643、#5526)。会话日志里记的是 Codex 用的模型名,路由记的是映射后的模型名,去重时对不上。现在两边能对上了。
  • Pi 官方示例的子代理用的额度没有统计进来(#8386、#8340)。现在会按每个子代理的供应商和模型分别记录,升级后会把以前的 Pi 会话重新读一遍补上。
  • 从 Pi 导入 MCP 时,Pi 不支持的服务器也被导入并启用,之后每次同步都失败(#7888)。SSE 连接方式、名字不合规、名字只差 - 和 _ 的服务器现在会跳过并提示;没装 Pi 时也不会再创建 Pi 的 MCP 配置文件。
  • 只在终端或 CC Switch 里设了代理、没设系统代理时,models.dev 价格同步一直失败(#8739、#6696)。现在改由 CC Switch 后台下载,会走你设的代理;导入模型价格和表单自动填模型参数也一样。
  • Claude Code 经路由连 xAI 时,强制联网搜索的请求被 xAI 拒绝,报 422(#8664)。
  • Pi 里的 MiniMax M3.1 Flash 思考档位(#8540):两个 MiniMax 官方预设去掉了这个模型不接受的「关闭」和「最小」,其余档位照常发送。

致谢

感谢 @funkpopo(MCP 连通性检查、子代理并发上限、PowerShell 7、Kimi 会话删除、GPT-6.1 Terra 定价)、@ellerty(Codex 官方额度保护)、@jlxzl(汇率自动获取、xAI 联网搜索)、@SaladDay(纯文本模型去文件、Windows 表单闪烁、MiniMax 思考档位)、@Owlbay(Pi 子代理用量、Pi MCP 导入)、@forwaryan(Codex 用量双计)、@ggbdpq(路由占位凭据)、@crmmc(models.dev 走代理)、@thisTom(托盘面板)、@allenxu09(Skills 工具栏)、@guishiw(依赖升级)的贡献。

特别感谢 @yukitakasama 负责任地报告了本地路由会接受网页请求的安全问题。

感谢 @SaladDay 最早提出 Codex 改了默认模型后映射仍指向旧模型的问题(#6612),以及 @forwaryan 为 Codex 用量双计做的完整关联方案(#8878)。

感谢 @pdone、@MortonDuncan、@HeroHong、@qqxwz114514、@mora-na、@yansuui、@xzxzhixin、@Shiraishitm 报告问题、提供复现信息和修复思路。

完整的技术细节请见 CHANGELOG。

CC Switch v4.0.24

Choose a tag to compare

@github-actions github-actions released this 01 Nov 15:05

CC Switch v4.0.24

本版本在授权中心加了「登录时自动打开浏览器」开关,关掉后登录账号只复制登录链接,由你自己选浏览器打开,适合每个账号用独立浏览器环境的用户。另外修复了 Claude Code、Claude Desktop 经路由用 GPT 6.1 Sol / Terra 时 max 思考档位被降成 xhigh、DeepSeek Harness 选了支持 PDF 输入的模型后第三方供应商全部不显示、WSL 上 CC Switch 启动就退出、Codex 的 Chat 供应商重开「支持思考等级」后思考档位发不出去等问题。4.0 完整的更新内容请见 v4.0 发布说明。

English → | 日本語版 →


新增

登录账号时可以只复制链接

以前在授权中心登录账号,一律用系统默认浏览器打开登录页。用 AdsPower 这类工具给每个账号单独开浏览器环境的话,登录会落到错误的浏览器里。

现在授权中心顶部多了「登录时自动打开浏览器」开关,Claude、ChatGPT、Copilot、xAI、Antigravity、Kimi、DeepSeek 账号登录都受它控制,包括在添加供应商表单里发起的登录。关掉后:

  • 点登录只把登录链接复制到剪贴板,在你要用的浏览器里打开、登录并同意授权,CC Switch 会自动更新。
  • 需要输入验证码的登录不再自动复制验证码,免得把剪贴板里的链接顶掉。
  • 等待登录时可以点「复制登录链接」再复制一次,打开登录页的按钮不显示。

Windows 上 Claude Code 会自己打开浏览器,开关关掉时 CC Switch 会让它只输出登录链接。

开关默认打开,只记在这台电脑上,不随云同步。

预设: A6API 改用新域名 a6api.vip。


修复

  • Claude Code、Claude Desktop 经路由连 OpenAI 格式的上游、模型是 gpt-6.1-sol 或 gpt-6.1-terra 时,max 思考档位被降成 xhigh 发出(#9122)。现在 GPT 5.6 及以后的版本,不带后缀或带 sol、terra、luna、astra 后缀的模型都保留 max;pro、codex、mini 等其他后缀仍按 xhigh 发。
  • DeepSeek Harness 从拉取到的模型列表里选了支持 PDF 输入的模型后,第三方供应商全部不显示(#9116)。DeepSeek Harness 的模型输入类型只认文字和图片,写进去一个 PDF 就会让这一条配置整体失效。现在只写文字和图片。
  • WSL 上 CC Switch 启动后直接退出,报托盘图标「Permission denied」(#9021、#9020)。Linux 的托盘图标改为放在应用的缓存目录。
  • Codex 的 Chat 供应商关掉再打开「支持思考等级」后,选的思考档位不再发给上游(#8998、#8954)。GitHub Copilot 等上游因此收不到任何思考档位。以前保存过的供应商不用重新编辑,也会恢复正常。
  • DeepSeek Harness 的「DeepSeek 官方登录」卡片写着「用 Claude 账号登录」(#9058)。现在是「用 DeepSeek 账号登录」。

致谢

感谢 @gddg(WSL 托盘)、@guishiw(Codex 思考等级)、@iSanae233(DeepSeek 登录文案)的贡献。

感谢 @Xinyu-Li-1997、@clickwzy、@mhsbz、@ggbdpq 报告问题、提供复现信息和修复思路。

完整的技术细节请见 CHANGELOG。

CC Switch v4.0.23

Choose a tag to compare

@github-actions github-actions released this 31 Oct 16:37

CC Switch v4.0.23

本版本让 Kimi Code、MiniMax Code、Oh My Pi 的供应商编辑器按应用自己的格式显示配置文件里这一家的部分;Claude Code、Claude Desktop 经路由连 OpenAI 格式和 Gemini 的上游时,客户端选的思考档位能发给更多模型,卡片上还可以选怎么发;授权中心可以一键刷新所有账号的额度;Antigravity、MiniMax Code 的用量记录有了耗时和首字时间。另外修复了 Windows 上进入轻量模式后主窗口回不来、经路由连部分 OpenAI 格式的上游时切换模型失败、DeepSeek Harness 的配置目录是链接时无法编辑供应商、Grok Build 超过 50 MiB 的会话用量不统计、Codex 分支会话用量一直不导入、DeepSeek Harness 等应用测试官方余额时提示 Key 为空、供应商表单里几个编辑器互相覆盖等问题。4.0 完整的更新内容请见 v4.0 发布说明。

English → | 日本語版 →


新增

Kimi Code、MiniMax Code、Oh My Pi 的供应商编辑器按原生格式显示

以前这三个应用的供应商编辑器显示的是卡片的 JSON,和它们实际的配置文件对不上,上游文档里的配置片段也贴不进来。现在编辑器只显示配置文件里这一家的部分,位置和格式都和文件一致:

  • Kimi Code:config.toml 里的 [providers.<key>] 和它的 [models."..."] 表。
  • MiniMax Code:YAML 里的 custom_provider.<key>。
  • Oh My Pi:models.yml 里的 providers.<key>。

标题显示实际的文件路径,会跟着目录覆盖和 KIMI_CODE_HOME 这类变量变化。草稿有格式错误、写了别家的节点、或者写了 default_model 这类全局设置时会提示并拒绝保存,改好之前上方的表单字段暂时不能改,避免把草稿覆盖掉。在编辑器里写的注释不会保存。DeepSeek Harness 的供应商在 profile 补丁里,仍用 JSON 编辑器。

经路由连 Gemini 时,思考档位也能发过去

以前 Claude Code、Claude Desktop 经路由转成 Gemini 原生格式时,客户端选的思考档位和「关闭思考」都被丢掉,Gemini 一律用模型的默认设置。现在按 Gemini 自己的 OpenAI 兼容接口的换算方式发:

  • Gemini 2.5:低、中、高分别是 1024、8192、24576 的思考预算。关闭思考时 Flash 和 Flash-Lite 发 0,Pro 不能关,发最小的 128。
  • Gemini 3 及以后:发 low、medium、high 档位(Gemini 3 Pro 没有 medium,发 high)。这些模型都不能关闭思考,关闭时发支持的最低档。
  • 认不出的模型、图片和语音这类模型、名字里已经带档位的中转别名(如 gemini-3-pro-high)不发,请求里本来没有思考设置时也不发。

授权中心「全部刷新」

授权中心页头多了「全部刷新」按钮,一次重新查询页面上所有账号的额度(DeepSeek 是余额),各行照常显示更新中(#9073)。

改进

Claude Code、Claude Desktop 经路由连 OpenAI 格式的上游时,思考档位能发给更多模型(#9062)。以前只有 o 系列、GPT-5 以上和 Grok 4.5 以上会收到思考档位,DeepSeek 等其他模型静默丢掉,日志里也没有记录。现在:

  • 认得出的供应商按它支持的档位发,比如 DeepSeek 发 low、high、max,OpenRouter 最高到 xhigh;Kimi、GLM、Qwen、MiniMax 这类 OpenAI 接口不收这个参数的不发。
  • 认不出的上游只发 low、medium、high,选 xhigh、max 时发 high。
  • GPT-3.5、GPT-4、Llama、Mistral 不发;关掉思考时不发。
  • 两个应用的供应商表单在这两种格式下多了「思考档位」:「自动(推荐)」按上面的规则发;「原样发送」客户端选哪档发哪档,上游不支持 xhigh 或 max 时会报错;「不发送」用于上游因这个参数报错的情况。托管账号的卡片不显示这一项。

Codex 经路由连 DeepSeek 时的档位换算也改成和 DeepSeek 官方一致:minimal、low 发 low,medium、high、xhigh 发 high,max 发 max。以前 low 会被提到 high,xhigh 会被提到 max。

Antigravity、MiniMax Code 的用量记录有了耗时和首字时间。 以前这两个应用的用量里没有速度和首字时间。以前导入的记录也会补上。

Skills 的发现页和已安装页改成同一种行样式(#9081)。仓库名用小号等宽字放在名称旁边,不再显示目录路径;「打开文档」按钮移到最右边;「已安装 · N 个应用」改成「已安装 ›」。从发现页点「已安装」跳过去时,那一行会黄色闪两下再恢复。

托盘里绑了账号的 Claude 官方卡显示账号(#9071)。以前副标题都是 www.anthropic.com,有好几张官方卡时分不出来。现在有备注显示备注,没有备注显示账号(邮箱,没有邮箱时显示组织名);账号不在这台电脑上时仍显示官网。

Claude Desktop 路由模式下,Haiku 档的模型名改成 claude-haiku-5-5(#9096)。Claude Desktop 把 claude-haiku-4-5 当成旧模型,Haiku 档选不了思考档位。上游本身是旧版 Claude Haiku 时不改。直连模式不受影响。

Grok Build 补上了 grok-4.6-build、grok-4.7-build、grok-4.7-build-fast 的价格(#9026)。

预设: 新增 OpenAI API Key 预设、13 家供应商的 Gemini CLI / Antigravity 预设(#9089),以及讯飞 Astron MaaS 按量付费的 Claude Code 预设(#9036)。

修复

  • Windows 上进入轻量模式后,再次启动 CC Switch,主窗口不出来,托盘也没反应,重启也没用(#9090)。
  • 经路由连 OpenAI 格式的上游、且上游对非流式请求也返回 SSE 时,切换模型报「Unable to validate model」(#9097、#9095)。现在非流式请求会收到完整的 JSON 响应。
  • DeepSeek Harness 的 profile 通过符号链接指向同一个文件时,编辑供应商、MCP 一律报冲突(#9101、#9100)。
  • Grok Build 的会话日志超过 50 MiB 后整个跳过,长会话的用量一直不统计(#9026、#6660)。现在逐行读取,之后只读新增的部分。
  • Codex 的分支会话在父会话闲置一段时间后一直不导入,用量统计不到(#9093、#9094)。
  • DeepSeek Harness、MiniMax Code、Kimi Code 在用量查询里测试官方余额或 Coding Plan 时提示「API key is empty」(#9108、#9107)。已保存的查询本来就正常,只是测试和自定义模板读不到供应商的 Key 和地址。
  • 供应商表单里,改了地址、Key、模型这些字段,再改下方的配置编辑器(或反过来),先改的内容有时被覆盖回去(#6777)。
  • 启动时界面要等后台的会话用量同步做完才响应(#9098、#9084)。
  • Codex 经 OpenRouter 用 DeepSeek V4 Flash 0731 时,对话里有图片就报 404(#6194、#6176)。
  • Windows 上「本地环境检查」会打开 OpenCode 桌面版(#7027、#6973)。
  • macOS 上添加供应商时,图标选择页的返回按钮被红绿灯挡住(#9076、#9075)。
  • 开着本地路由时,MiniMax Code、DeepSeek Harness 表单里拉取到的模型列表两秒后就消失(#9068)。
  • MiniMax Code、DeepSeek Harness、Kimi Code 的 Key 输入框用输入法输入时字母重复(#9069)。
  • 用 mise 安装的 Claude Code,在授权中心添加 Claude 账号时报「default installation is ambiguous」。
  • ChatGPT 登录真的过期时,CC Switch 一直当成临时错误重试,不提示重新登录(#9049)。同一个 PR 还修了 Gemini 的 .env 里 export 开头的泄漏凭据清不掉。

致谢

感谢 @YUZHEthefool(编辑器互相覆盖、启动时界面不等数据库、DeepSeek V4 Flash 图片)、@BingZi-233(编辑器互相覆盖的最初修复)、@allenxu09(Skills 行样式、托盘显示 Claude 账号)、@thisTom(模型列表消失、输入法字母重复)、@1clipse(Codex 分支会话用量)、@kamanager2012(Grok Build 大会话)、@MonsterXia(非流式切换模型)、@yukitakasama(DeepSeek Harness 链接 profile)、@KFCSZYWJ(DeepSeek Harness 余额测试)、@ZeroZ-lab(全部刷新)、@QIN2DIM(图标选择页)、@teddyli18000(OpenCode 桌面版环境检查)、@syxscott(ChatGPT 登录过期、Gemini .env、土耳其语)的贡献。

感谢 @noqualia、@acelych、@AlexanderLIBH、@TeaDrink666、@CoolW2077、@Aibeto、@lbigdate、@ayingafu、@tarnish233、@yadenox 报告问题、提供复现信息和修复思路。

特别感谢以下贡献者:你们的 PR 发现并修复了真实的问题,只是同样的问题后来在主线上另行修好,PR 因此关闭。@thynomex(「打开终端」跳过权限确认)、@CupOfBread(图标选择页被红绿灯挡住)、@YUZHEthefool(Grok Build 大会话逐行读取、关于页卡死、额度重置时间、Codex 模型目录)。也感谢 @Owlbay 最早提出把图标选择页改成内容区面板(#8438)。

完整的技术细节请见 CHANGELOG。

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。