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。