github farion1231/cc-switch v4.0.22
CC Switch v4.0.22

4 hours ago

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。

Don't miss a new cc-switch release

NewReleases is sending notifications on new releases.