Draft trilingual release notes for the upcoming v3.13.0 feature release covering lightweight mode, quota and balance visibility, provider model auto-fetch, Codex OAuth reverse proxy, tray per-app submenus, the Hyper-based proxy forwarding stack, Skills discovery and batch updates, session workflow upgrades, OpenCode/OpenClaw Stream Check coverage, the full URL endpoint mode, and the Copilot interaction optimizer, plus the accompanying Copilot auth, UTF-8 streaming boundary, system prompt normalization, WebDAV password, and Linux startup fixes. Contributor attribution follows industry convention using ASCII punctuation inside PR references across all three locales, and the Codex OAuth reverse proxy carries its own risk notice alongside a backward link to the v3.12.3 Copilot risk notice.
19 KiB
CC Switch v3.13.0
轻量模式、配额与余额展示、供应商模型自动获取、Codex OAuth 反向代理、托盘按应用分级菜单
概览
CC Switch v3.13.0 是一次重要的功能版本,聚焦于可观测性、供应商工作流与代理兼容性。本版本在各主要供应商卡片上新增了配额与余额展示,覆盖 Claude / Codex / Gemini 官方订阅、Token Plan(Kimi / Zhipu GLM / MiniMax)、Copilot premium interactions 以及 DeepSeek / StepFun / SiliconFlow / OpenRouter / Novita AI 等第三方余额查询;引入了轻量模式,让 CC Switch 可以仅驻留在系统托盘中运行;通过 OpenAI 兼容的 /v1/models 端点在 Claude / Codex / Gemini / OpenCode / OpenClaw 五个应用的供应商表单中实现了模型自动发现;为 ChatGPT Plus / Pro 订阅者提供了 Codex OAuth 反向代理;将托盘菜单重构为按应用分级的子菜单;将代理转发层重建在 Hyper 客户端之上;并完成了 Skills 工作流的发现、批量更新和存储位置切换改造。其他改进还包括完整 URL 端点模式、无需代理拦截的会话日志用量追踪、Copilot 调用优化器、多字节 UTF-8 流式分片边界修复以及 Linux 启动时 UI 无响应修复等。
发布日期:2026-04-08
更新规模:98 commits | 229 files changed | +23,891 / -2,305 lines
重点内容
- 轻量模式:新增仅托盘运行模式,退出到托盘时销毁主窗口、按需重建,空闲时资源占用接近零
- 配额与余额展示:供应商卡片上直接展示配额或余额 —— 覆盖 Claude / Codex / Gemini 官方订阅、GitHub Copilot premium interactions、Codex OAuth、Token Plan(Kimi / Zhipu GLM / MiniMax),以及 DeepSeek / StepFun / SiliconFlow / OpenRouter / Novita AI 的官方余额查询
- 供应商模型自动获取:为 Claude / Codex / Gemini / OpenCode / OpenClaw 的供应商表单新增 OpenAI 兼容的
/v1/models发现能力,按分组下拉展示并提供针对性错误提示 - Codex OAuth 反向代理:新增 ChatGPT Plus / Pro 的 Codex 反向代理,作为新的 Claude 供应商卡片类型,包含受管 OAuth 登录流程和订阅配额展示(⚠️ 风险提示)
- 托盘按应用分级菜单:将托盘菜单重构为按应用分组的子菜单,防止供应商多时菜单溢出,让后台切换供应商在大量供应商场景下仍可用
- Skills 发现与批量更新:基于 SHA-256 内容哈希的更新检测、单项和"全部更新"批量操作、
skills.sh公共注册表搜索集成,以及 CC Switch 与~/.agents/skills的存储位置切换 - 会话工作流升级:会话管理器批量删除、Claude 终端恢复前的目录选择器、无需代理拦截即可导入 Claude / Codex / Gemini 会话日志用量、精确的 Codex JSONL 解析、按应用筛选用量面板
- OpenCode / OpenClaw 流式检测覆盖:新增 OpenCode 的 npm 包映射检测、OpenClaw
openai-completions支持,以及其余所有 OpenClaw 协议变体 - 完整 URL 端点模式:新增将
base_url视作完整上游端点的供应商选项,支持非标准 URL 布局的厂商 - Hyper 代理转发栈:将代理转发层重构到 Hyper 客户端之上,实现透明头部转发、改进的端点重写以及对动态上游端点的更好支持
- Copilot 调用优化器:新增请求分类和路由逻辑,降低 GitHub Copilot premium interaction 的不必要消耗
- UTF-8 流式分片边界修复:所有 4 条 SSE 流式路径改为跨分片保留残留多字节序列,消除 Copilot 反代下中文/emoji 乱码
- Linux 启动 UI 修复:修复长期存在的 Linux 窗口初次无法响应点击、需用户手动最大化再还原才能操作的问题
新功能
轻量模式
新增仅托盘运行模式,显著降低 CC Switch 空闲时的桌面占用。
- 退出到托盘时销毁主窗口而非隐藏,释放 UI 资源和内存
- 用户从托盘、深链接或单例激活时按需重建窗口
- 覆盖所有窗口重新显示路径:正常启动、深链接、单例、托盘
show_main以及轻量模式退出返程
配额与余额展示
在供应商卡片上新增配额和余额读数,用户无需离开卡片即可查看剩余容量。
- 官方订阅:Claude / Codex / Gemini 官方供应商的订阅配额展示
- GitHub Copilot:在 Copilot 供应商卡片上显示 premium interactions 剩余量
- Codex OAuth:在 Codex OAuth 卡片上内联展示 ChatGPT Plus / Pro 订阅配额
- Token Plan 供应商:Kimi、Zhipu GLM、MiniMax,修正配额数学与 0% → 100% 用量进度
- 第三方余额:为 DeepSeek、StepFun、SiliconFlow、OpenRouter、Novita AI 提供官方余额查询
- 官方供应商的健康检查和用量配置按钮自动隐藏,保持卡片简洁
供应商模型自动获取
为所有供应商表单新增 OpenAI 兼容的模型发现能力,消除手动复制粘贴模型 ID 的繁琐流程。
- 使用配置的 API key 向供应商的
/v1/models端点发起请求 - 在下拉菜单中按类别分组展示模型
- 对网络 / 认证 / 端点不存在 / 解析失败等场景提供具体错误消息
- 支持全部五个应用(Claude / Codex / Gemini / OpenCode / OpenClaw)
Codex OAuth 反向代理
新增 ChatGPT Plus / Pro 订阅者的 Codex OAuth 反向代理路径,让 ChatGPT 订阅者可以在 Claude Code 中使用自己的订阅。
- 受管 OAuth 登录流程,通过 ChatGPT Plus / Pro 认证
- 作为新的 Claude 供应商卡片类型出现在列表中,与 API-key 型供应商并列
- 订阅配额内联展示
- 与 Auth Center UI 紧密集成,统一管理 Token
- Codex OAuth 预设升级到 GPT-5.4 系列
- 启用前请参见下文的 ⚠️ 风险提示
托盘按应用分级菜单
将托盘菜单重构为按应用分组的子菜单,取代原来的扁平列表。
- 为 Claude / Codex / Gemini / OpenCode / OpenClaw 分别建立独立的子菜单
- 防止用户有大量供应商时托盘菜单溢出屏幕
- 后台切换供应商的可扩展性更好
Skills 发现与批量更新
将 Skills 管理面板升级为完整的发现 + 维护工作流。
- SHA-256 更新检测:通过内容哈希判断哪些 skill 在远端有更新
- 单项与批量更新:单项"更新"按钮 + 带滑入动画的"全部更新"批量操作
- 存储位置切换:在 CC Switch 存储和
~/.agents/skills之间切换而不丢失 skill 状态 - 公共注册表搜索:将
skills.sh搜索直接集成到对话框中,方便发现社区 skill
会话工作流升级
多项会话管理改进,降低使用 Claude / Codex / Gemini 会话时的摩擦。
- 批量删除会话:在会话管理器中选择并一次删除多个会话 (#1693, 感谢 @Alexlangl)
- 恢复前目录选择器:Claude 终端恢复前先选择工作目录 (#1752, 感谢 @yovinchen)
- 无需代理的会话日志用量:直接从 Claude / Codex / Gemini 会话日志导入用量数据,无需代理拦截
- 精确的 Codex JSONL 解析:替换 Codex 的估算用量为基于 JSONL 会话日志的精确解析,同时对模型名称做归一化以保证定价查询一致性
- Gemini CLI 会话日志集成:Gemini 用量现在从 Gemini CLI 会话日志精确同步
- 按应用筛选用量:用量面板可按 Claude / Codex / Gemini 独立筛选
OpenCode / OpenClaw 流式检测覆盖
将 Stream Check 面板的覆盖范围扩展到 OpenCode 和所有 OpenClaw 协议变体。
- 通过 npm 包映射检测 OpenCode 供应商
- 支持 OpenClaw
openai-completions协议 - 支持剩余的三个 OpenClaw 协议变体
- 针对自定义头透传、OpenClaw 自定义 auth-header 检测、Bedrock 错误消息、OpenCode 默认
baseURL回退等边界情况进行了处理
完整 URL 端点模式
新增将 base_url 视作完整上游端点的供应商选项,取代原有的 base-URL 加路径拼接模式 (#1561, 感谢 @yovinchen)。
- 代理转发和 Stream Check 都会遵循完整 URL 模式
- 解锁需要非标准 URL 布局的厂商
- 可在供应商表单中按供应商配置
OpenCode StepFun Step Plan 预设
- 为 OpenCode 新增 StepFun Step Plan 供应商预设及合理默认值 (#1668, 感谢 @sky-wang-salvation)
Copilot 调用优化器
新增请求分类和路由逻辑,降低 GitHub Copilot premium interaction 的不必要消耗。
- 根据请求意图和权重进行分类
- 将低价值请求路由到非 premium 通道
- 旨在延长 Copilot 订阅的可用时长
变更
托盘菜单组织
- 将托盘菜单重构为按应用分级的子菜单(Claude / Codex / Gemini / OpenCode / OpenClaw)
- 防止菜单溢出,支持大量供应商的场景
代理转发栈
将代理转发层重建在 Hyper HTTP 客户端之上 (#1714, 感谢 @yovinchen)。
- 透明头部转发:头部透传,不做激进过滤
- 改进的端点重写逻辑
- 更好地支持动态上游端点
- 与新的"完整 URL 端点模式"配合,解锁非标准 URL 布局的厂商
OAuth Auth Center UI 精修
- 精修 Auth Center 的文案、布局和图标呈现,让 Codex OAuth 登录流程更清爽
供应商键生命周期与 Live 同步
重做了新增模式供应商的创建/重命名/复制流程,让 Live 配置写入、清理和回滚在 OpenCode / OpenClaw 与接管场景下保持一致 (#1724, 感谢 @yovinchen)。
- 新增模式高亮行为在刷新后依旧保持 (#1747, 感谢 @yovinchen)
- OpenCode / OpenClaw 的 Live 配置写入保持一致
- 失败时正确回滚,避免半提交状态
Codex OAuth 默认值
- Codex OAuth 预设升级到 GPT-5.4 系列
Bug 修复
Copilot 认证与代理兼容性
- 修复 GitHub Copilot 认证回归问题 (#1854, 感谢 @Mason-mengze)
- 修正企业版和动态端点处理
- 修复 macOS 和 Linux 上的剪贴板验证码复制问题
- 修复 Copilot 作为 Claude 供应商时 OpenAI 模型的 Responses 分流 (#1735, 感谢 @Mason-mengze)
UTF-8 流式分片边界
修复 Claude Code 在 Copilot 反代下,当中文字符或 emoji 等多字节 UTF-8 序列跨 TCP 分片传输时出现的间歇性乱码(U+FFFD 替换字符)问题 (#1923, 感谢 @Cod1ng)。
- 将所有 4 条 SSE 流式路径中的
String::from_utf8_lossy替换为新的append_utf8_safe辅助函数 - 通过残留缓冲区保留不完整的尾部字节,并在下一个分片合并后再解码
- 直连 Copilot 的场景不可复现,因为直连模式透传原始字节而不做格式转换
碎片 System Prompt 规范化
修复严格的 OpenAI 兼容 chat 后端(Nvidia、Qwen 风格)在转换后 Claude 负载包含多条 system 消息时拒绝请求的问题 (#1942, 感谢 @yovinchen)。
- 在 Anthropic → OpenAI chat 转换时将 system 内容合并为单条前置 system 消息
- 其余消息流保持不变
流式解析兼容性
- 修复 SSE 解析以接受包含可选空格的字段,提升对非严格流式实现的兼容性 (#1664, 感谢 @Alexlangl)
供应商切换状态损坏
- 将按应用的供应商切换串行化,防止并发故障转移或热切换操作导致
is_current、设置状态和 Live 备份状态不一致
Claude 接管 Live 配置漂移
- 修复 Claude 接管启用时供应商编辑导致 Live 设置与供应商状态失步,同时保持接管恢复行为不被破坏 (#1828, 感谢 @geekdada)
WebDAV 密码保留与校验
- 修复 WebDAV 密码字段在刷新后不可见的问题
- 连接校验时正确处理
MKCOL 405响应 (#1685, 感谢 @Alexlangl)
供应商卡片动作状态
- 修复新增模式高亮行为 (#1747, 感谢 @yovinchen)
- 始终渲染动作按钮,对齐各卡片的用量显示布局
- 用警告路径替换硬阻塞的代理切换
- 禁用 Copilot 和 Codex OAuth 卡片上不受支持的测试/用量动作
- 隐藏官方供应商的用量配置和健康检查按钮
- 移除供应商卡片上的 hover 推送动画
用量精确性与定价
- 修复 MiniMax 配额数学和 0% → 100% 进度
- 修正 CNY → USD 定价并补齐缺失模型
- 改进 Gemini 会话日志同步的精度
- 修复基于会话的用量条目显示为"未知供应商"的问题
用量编辑器与 Skills UI 回归
- 修复编辑提取器代码时用量查询字段被重置的问题 (#1771, 感谢 @if-nil)
- 修正
skills.sh链接失效和空描述问题 - 修复用量配置中的 auto-query 默认间隔(5 分钟)和 number-input 清空问题
中文 Skills 术语
- 统一 zh locale 下设置面板中的 Skills 相关标签,保持存储与同步选项用词一致
环境与预设兼容性
- 在 CLI 扫描中新增 Bun 全局 bin 检测 (#1742, 感谢 @makoMakoGo)
- 适配 oh-my-openagent 重命名并保持向后兼容 (#1746, 感谢 @yovinchen)
- 修正 OpenCode
kimi-for-coding预设 (#1738, 感谢 @makoMakoGo) - 将 Gemini keychain 解析限制为仅 macOS
- 修复空集合时 OpenClaw 序列化器 panic (#1724, 感谢 @yovinchen)
Linux 启动时 UI 无响应
修复长期存在的 Linux 专属 bug:窗口 UI(包括原生标题栏按钮)在用户手动最大化再还原之前无法接收点击。
- 根因 1:Tauri webview 在 Linux 上
show()之后未获得键盘焦点,首次点击被 X11 / Wayland 的 click-to-activate 消费掉(Tauri #10746、wry #637) - 根因 2:在某些 WebKitGTK / 合成器组合下,GTK surface 的输入区域在
visible:false → show()路径上未能重协商,导致整个窗口无响应 - 缓解措施:启动时设置
WEBKIT_DISABLE_COMPOSITING_MODE=1,并新增linux_fix::nudge_main_window辅助函数,在 show 之后 ~200ms 执行set_focus+ ±1px 无操作尺寸调整,等效于一次视觉上不可见的"最大化再还原" - 覆盖范围:接入所有窗口重新显示路径 —— 正常启动、深链接、单例、托盘
show_main以及轻量模式退出返程
Linux 标题栏拖动区域
- 在 Linux 上从顶部标题栏移除
data-tauri-drag-region,避免触发 Wayland 下受 Tauri #13440 影响的gtk_window_begin_move_drag路径 - macOS 拖动行为保持不变
OpenCode / OpenClaw 流式检测边界情况
- 修复自定义头透传
- 修复 OpenClaw 自定义 auth-header 检测
- 修复 Bedrock 错误消息
- 修复 OpenCode 默认
baseURL回退处理
文档
用户手册刷新
- 在 EN / ZH / JA 用户手册中覆盖托盘子菜单、轻量模式、供应商模型获取、会话管理、工作区文件、WebDAV v2 行为、OpenCode / OpenClaw 启用等供应商工作流改进
社区与贡献文档
- 新增
CONTRIBUTING.md、SECURITY.md、CODE_OF_CONDUCT.md - 新增双语 GitHub issue 和 PR 模板
- 新增 Dependabot 配置 (#1829, 感谢 @bengbengbalabalabeng) 和 stale-bot 工作流以自动关闭不活跃的 issue
- 新增 PR / push 质量检查 CI 工作流
Release Notes 风险提示回填
- 在三语 v3.12.3 release notes 中新增 Copilot 反代风险提示,并为重点内容添加锚点链接
⚠️ 风险提示
Codex OAuth 反向代理免责声明
本版本新增的 Codex OAuth 反向代理功能通过逆向工程的 OAuth 流程访问 ChatGPT Plus / Pro 的 Codex 服务。启用此功能前,请注意以下风险:
- 违反服务条款:使用逆向 OAuth 流程访问 OpenAI 服务可能违反 OpenAI 的服务条款,其中禁止未经授权的自动化访问、服务复制以及绕过既定的访问路径。
- 账号风险:OpenAI 可能将异常使用模式标记为可疑的自动化行为,从而对 ChatGPT Plus / Pro 访问施加临时或永久限制。
- 无法保证长期可用:OpenAI 可能随时更新其认证和检测机制,当前可用的使用方式未来可能被标记。
v3.12.3 引入的 GitHub Copilot 反向代理同样适用原有风险提示 —— 详见 v3.12.3 release notes。
用户启用上述功能即表示自行承担所有风险。CC Switch 不对因使用这些功能而导致的任何账号限制、警告或服务暂停承担责任。
下载与安装
访问 Releases 下载对应版本。
系统要求
| 系统 | 最低版本 | 架构 |
|---|---|---|
| Windows | Windows 10 及以上 | x64 |
| macOS | macOS 12 (Monterey) 及以上 | Intel (x64) / Apple Silicon (arm64) |
| Linux | 见下表 | x64 |
Windows
| 文件 | 说明 |
|---|---|
CC-Switch-v3.13.0-Windows.msi |
推荐 - MSI 安装包,支持自动更新 |
CC-Switch-v3.13.0-Windows-Portable.zip |
便携版,解压即用,不写入注册表 |
macOS
| 文件 | 说明 |
|---|---|
CC-Switch-v3.13.0-macOS.dmg |
推荐 - DMG 安装包,拖入 Applications 即可 |
CC-Switch-v3.13.0-macOS.zip |
解压后拖入 Applications,Universal Binary |
CC-Switch-v3.13.0-macOS.tar.gz |
用于 Homebrew 安装和自动更新 |
macOS 版本已通过 Apple 代码签名和公证,可直接安装使用。
Homebrew(macOS)
brew tap farion1231/ccswitch
brew install --cask cc-switch
更新:
brew upgrade --cask cc-switch
Linux
| 发行版 | 推荐格式 | 安装方式 |
|---|---|---|
| Ubuntu / Debian / Linux Mint / Pop!_OS | .deb |
sudo dpkg -i CC-Switch-*.deb 或 sudo apt install ./CC-Switch-*.deb |
| Fedora / RHEL / CentOS / Rocky Linux | .rpm |
sudo rpm -i CC-Switch-*.rpm 或 sudo dnf install ./CC-Switch-*.rpm |
| openSUSE | .rpm |
sudo zypper install ./CC-Switch-*.rpm |
| Arch Linux / Manjaro | .AppImage |
添加执行权限后直接运行,或使用 AUR |
| 其他发行版 / 不确定 | .AppImage |
chmod +x CC-Switch-*.AppImage && ./CC-Switch-*.AppImage |