Repository navigation
Releases
CC Switch v4.0.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 官方卡在路由模式下拿不到账号自己的模型列表等问题。
新增
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 的供应商预设。
- CC Switch 只改这一家自己的条目,文件里的其他条目(Copilot 自己也会写这个文件)和顺序原样保留。
此外还支持:
- 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
CC Switch v4.0.28
本版本主要应对 Codex 11 月 8 日的不兼容更新。
⚠️ Codex 桌面版 26.1103、CLI 0.167 起,官方订阅和第三方供应商的会话彻底分开了。 直连模式下在两者之间切换,以前只是两边的会话分开显示,现在另一边的会话直接变成只读:能查看,不能继续,继续时提示「模型提供商不匹配」。要来回切换并继续旧会话,有两个办法:
- 改用路由或聚合模式:本版本起,路由或聚合模式下切到第三方,会话和官方订阅留在同一组,来回切换都能继续。
- 打开「统一 Codex 会话历史」(「设置 → 应用配置 → Codex」):官方和第三方的会话归到同一组,直连模式下也能来回切换。
此外,直连切换让会话变成只读时会提示数量;开启「统一 Codex 会话历史」并勾选迁入现有会话后,会持续把官方会话迁进来。官方额度用完、Codex 锁住发送键时,可以在路由或聚合设置里打开「暂停使用官方登录」,继续用第三方模型;官方额度保护改为默认开启。应用页的安装和升级会显示排队状态和实时进度。另外修复了 Codex 故障转移到别家时仍带着上一家的模型名、Kimi For Coding 上压缩失败、在 Kimi 或 DeepSeek 上续接工具调用后会话一直报 400 等问题。
新增
适配新版 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
CC Switch v4.0.27
本版本让会话管理可以搜索消息正文,新增界面密度和界面缩放设置,模型定价表可以搜索,Grok Build 正在使用的供应商也能打开终端了。Skills 的已安装页重新排了版,供应商图标会跟随深浅色主题。另外修复了配置文件是软链接时被替换成普通文件或写入失败、取消请求后供应商卡在熔断恢复中直到重启、Codex 设置了自定义权限后 plan 模式报错、运行过的 Skill 被误报有更新、Skills 仓库显示 0 个 Skill、Windows 上把 Python 的 pi.exe 认成 Pi、模型价格同步超时、打开对话框时窗口拖不动、右键弹出浏览器菜单,以及 Linux 快捷面板显示异常等问题。4.0 完整的更新内容请见 v4.0 发布说明。
新增
搜索会话的消息正文
以前会话管理页的搜索只能找标题、目录和会话 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 发布,现在 PythonScripts目录里的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
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 发布说明。
新增
账号订阅计划
以前授权中心里只有 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 发行版里进行。
变更
- 性能优化:
- 会话同步时界面不再卡住(#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
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 发布说明。
新增
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
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 发布说明。
新增
登录账号时可以只复制链接
以前在授权中心登录账号,一律用系统默认浏览器打开登录页。用 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
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 发布说明。
新增
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
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 发布说明。
新增
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
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 发布说明。
新增
在多个 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
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 发布说明。
新增
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。