Skip to content

Releases: xiaoY233/cc-switch-remote

CC Switch Remote v3.16.12

Choose a tag to compare

@github-actions github-actions released this 04 Jul 08:17

CC Switch Remote v3.16.12

上游基线:CC Switch v3.16.5

远程版构建cc-switch-remote v3.16.12

本版本合并上游 v3.16.5 发布线,并继续保留远程管理 target 隔离、远程 helper 共享 Rust 服务逻辑,以及远程 provider / session / auth / model fetch 的适配边界。


重要更新

合并上游 v3.16.5 发布线

本版本吸收上游 v3.16.5 的主要改动,包括 Codex 原生 Responses 模型目录生成、拒收 web_search 的原生网关自动禁用、Codex 模型映射与本地路由开关解耦、Claude 通用配置切换前自动同步、Claude Sonnet 5 定价与默认档升级、会话分类视图与分组管理,以及新增 Qiniu、FennoAI、ZetaAPI、TeamoRouter、NekoCode、Code0.ai、Amux 等供应商预设。

本次合并继续以上游已发布 tag 作为稳定基线,没有默认合入上游发布后的 main 追加提交。

远程管理适配

本版本确认以下上游新增能力在远程管理路径中继续复用共享逻辑:

  • 远程 providers add/update/switch 继续通过 helper 调用共享 ProviderService,因此 Codex 原生 Responses 模型目录、web_search 黑名单、通用配置自动同步、usage script 凭据归一化等逻辑会在远程服务器状态上生效。
  • 远程模型列表获取继续使用远端 provider 与远端已保存密钥,编辑供应商时 API Key 留空仍表示保留远端已有密钥。
  • 会话分类视图复用同一组件,但 query key 与消息/删除操作继续带 remote target,远程会话不会混入本地会话。
  • Claude Desktop 状态、Omo/OpenCode live provider ids 等本地 live 状态读取继续被 local-only guard 保护,不会在远程页面误读本机状态。

UI 与预设同步

上游的长下拉滚动边界、窄弹层日期选择器、Claude Desktop / OpenClaw / Hermes API Key 链接、供应商图标体积优化和新增预设已合并到远程版共享前端。


验证

本版本发布前已通过以下检查:

  • pnpm typecheck
  • Provider / Session / Codex catalog / remote model fetch 相关前端回归测试:12 个文件,57 个测试通过
  • cargo fmt --check --manifest-path src-tauri/Cargo.toml
  • cargo check --manifest-path src-tauri/Cargo.toml --bin cc-switch-remote-helper --no-default-features --features proxy-runtime
  • cargo test --manifest-path src-tauri/Cargo.toml --lib cli::tests::
  • Codex catalog / native Responses / route 相关 Rust 单测
  • git diff --check

远程 Helper

本次完整版本发布会同时构建桌面端和 remote helper。远程服务器可在升级桌面应用后通过远程服务器管理页面更新 helper。

  • Helper release tag: remote-helper-latest
  • 支持目标:Linux x86_64、Linux arm64、macOS universal

下载

  • macOS: CC-Switch-Remote-v3.16.12-macOS.dmgCC-Switch-Remote-v3.16.12-macOS.zip
  • Windows: CC-Switch-Remote-v3.16.12-Windows.msiCC-Switch-Remote-v3.16.12-Windows-Portable.zip
  • Linux (x86_64): CC-Switch-Remote-v3.16.12-Linux-x86_64.AppImage / .deb / .rpm
  • Linux (ARM64): CC-Switch-Remote-v3.16.12-Linux-arm64.AppImage / .deb / .rpm
  • Remote Helper: 由 remote-helper-latest 单独发布

.tar.gz 为 Tauri updater 自动更新专用,无需手动下载。

CC Switch Remote Helper Latest

Pre-release

Choose a tag to compare

Latest pure CLI remote helper binaries for cc-switch-remote.

CC Switch Remote v3.16.11

Choose a tag to compare

@github-actions github-actions released this 29 Jun 10:26

CC Switch Remote v3.16.11

上游基线:CC Switch v3.16.4

远程版构建cc-switch-remote v3.16.11

本版本合并上游 v3.16.4 发布线,并保留本项目远程管理边界与近期远程路由、供应商、工具调用转换相关修复。


重要更新

合并上游 v3.16.4 发布线

本版本吸收上游 v3.16.4 的主要改动,包括 Codex 原生 Responses 支持、代理请求覆盖、请求体解压与 zstd 支持、SubRouter 预设、Doubao Seed 2.1 Pro/Turbo 定价、Volcengine 用量查询增强、数据库升级恢复界面、Windows ARM64 发布支持,以及 Hermes/usage script 等后续修复。

后续合并上游时将以已发布版本 tag 为稳定基线。上游发布后的 main 追加提交会单独列出和评估,不再默认作为稳定发布内容全部合入。

保留远程管理 target 隔离

远程管理相关的 provider、usage、skills、模型列表、路由状态和 helper runtime 继续保持 target-aware 路径:

  • 远程目标不会把本地账号、API Key、用量缓存或代理接管状态作为远程状态来源。
  • 远程模型列表和定价导入继续携带当前远程 target。
  • provider 更新后的缓存刷新继续按 local/remote target 分桶。
  • 远程路由关闭后会刷新应用级路由配置缓存,避免首页和设置页状态不一致。

Codex/Claude 工具调用转换防护

本版本保留并验证了 Codex Chat/Responses 工具调用转换中的防护逻辑:

  • call_id 会被合成有效 ID。
  • 缺失函数名的工具调用会被跳过,避免生成无效 Responses payload。
  • streaming 与非 streaming 工具调用路径均有回归测试覆盖。

DeepSeek 官方 Anthropic 端点兼容

当 DeepSeek 官方 Anthropic 兼容端点收到 thinking: { type: "disabled" } 与 effort 参数同时存在的请求时,本版本会移除冲突的 effort 字段,避免上游 400 错误,同时保留 thinking: disabled 的语义。


验证

本版本发布前已通过以下检查:

  • pnpm typecheck
  • 远程 target-routing、模型拉取、skills、provider mutation、request overrides 等前端回归测试:8 个文件,80 个测试通过
  • cargo fmt --check --manifest-path src-tauri/Cargo.toml
  • cargo check --manifest-path src-tauri/Cargo.toml --bin cc-switch-remote-helper --no-default-features --features proxy-runtime
  • DeepSeek 官方端点兼容 Rust 单测:8 个测试通过
  • Codex/工具调用转换 Rust 单测:29 个测试通过

远程 Helper

本次完整版本发布会同时构建桌面端和 remote helper。远程服务器可在升级桌面应用后通过远程服务器管理页面更新 helper。

  • Helper release tag: remote-helper-latest
  • 支持目标:Linux x86_64、Linux arm64、macOS universal

下载

  • macOS: CC-Switch-Remote-v3.16.11-macOS.dmgCC-Switch-Remote-v3.16.11-macOS.zip
  • Windows: CC-Switch-Remote-v3.16.11-Windows.msiCC-Switch-Remote-v3.16.11-Windows-Portable.zip
  • Linux (x86_64): CC-Switch-Remote-v3.16.11-Linux-x86_64.AppImage / .deb / .rpm
  • Linux (ARM64): CC-Switch-Remote-v3.16.11-Linux-arm64.AppImage / .deb / .rpm
  • Remote Helper: 由 remote-helper-latest 单独发布

.tar.gz 为 Tauri updater 自动更新专用,无需手动下载。

CC Switch Remote v3.16.10

Choose a tag to compare

@github-actions github-actions released this 23 Jun 08:35

CC Switch Remote v3.16.10

上游基线:CC Switch v3.16.3

远程版构建cc-switch-remote v3.16.10

本版本继续收敛远程管理与本地工作流的功能漂移,重点修复远程托管认证、用量与模型查询、路由状态、会话管理以及远程设置页中误触本地状态的问题。


重要修复

远程托管认证与模型/额度查询使用远程账号

Codex OAuth、GitHub Copilot OAuth、订阅额度、余额、Coding Plan、Copilot 用量和模型列表查询现在都会携带当前管理目标。

这修复了远程管理中可能出现的本地账号串入远程视图、远程 Claude/Codex 供应商无法正确取模型或额度的问题。

远程设置不再触碰本机 Codex 历史备份

远程 General 设置页复用本地 Codex Auth 设置时,现在会按 target 隔离:

  • 本地目标仍保留原有 Codex 统一历史备份探测和恢复逻辑。
  • 远程目标只保存远程设置,不再调用本机 has_codex_unify_history_backuprestore_codex_unified_history

远程会话页不再启动本机终端

远程 Sessions 视图不会暴露本地终端恢复入口,内部恢复 handler 也会在远程目标下避免调用本机 launch_session_terminal

远程会话属于远程主机,桌面端不应把远程 resume 命令拿到本机终端执行。

远程路由与故障转移状态继续隔离

远程代理状态、应用路由、故障转移队列、熔断器健康状态和相关缓存 key 继续按目标隔离,避免本地代理接管状态影响远程供应商切换判断。

本版本也补强了远程 helper 对无 payload 成功响应的处理,命令级失败不会错误关闭长生命周期 helper 会话。

远程功能漂移审计规则落地

项目规则新增远程漂移审计方法,要求后续所有远程管理改动必须从本地完整调用链开始对齐,而不是只以页面是否渲染、是否有 helper command 作为完成标准。


验证

本版本发布前已通过以下检查:

  • 远程 target-routing 前端回归测试:19 个文件,109 个测试通过。
  • TypeScript typecheck。
  • git diff --check
  • Rust helper 格式检查。
  • 远程 helper CLI 单测。
  • cc-switch-remote-helper proxy-runtime 构建检查。

远程 Helper

请在升级桌面应用后,到远程服务器管理页面更新 helper。

  • Helper release tag: remote-helper-latest
  • 支持目标:Linux x86_64、Linux arm64、macOS universal
  • Helper 仍然是无 Tauri 桌面依赖的纯 Rust CLI 构建

下载

  • macOS: CC-Switch-Remote-v3.16.10-macOS.dmgCC-Switch-Remote-v3.16.10-macOS.zip
  • Windows: CC-Switch-Remote-v3.16.10-Windows.msiCC-Switch-Remote-v3.16.10-Windows-Portable.zip
  • Linux (x86_64): CC-Switch-Remote-v3.16.10-Linux-x86_64.AppImage / .deb / .rpm
  • Linux (ARM64): CC-Switch-Remote-v3.16.10-Linux-arm64.AppImage / .deb / .rpm
  • Remote Helper: 由 remote-helper-latest 单独发布

.tar.gz 为 Tauri updater 自动更新专用,无需手动下载。

CC Switch Remote v3.16.9

Choose a tag to compare

@github-actions github-actions released this 21 Jun 14:22

CC Switch Remote v3.16.9

上游基线:CC Switch v3.16.3

远程版构建cc-switch-remote v3.16.9

本版本聚焦远程服务器管理热修:修复远程 Codex OAuth 路由认证、Claude Code Linux 安装后的 PATH 可执行性,以及远程统一供应商编辑时 API Key 留空无法保存的问题。


重要修复

远程 Codex OAuth 路由可正确使用远程 Token

远程 helper 的路由运行时现在会注入 helper 自己持有的 Codex OAuth / Copilot 托管认证管理器。

这修复了以下场景:

  1. 在远程服务器上完成 Codex OAuth 登录。
  2. 添加 Claude Code 的 Codex OAuth 反代供应商。
  3. 开启 Claude Code 远程路由。
  4. Claude Code 请求只显示 API error · Retrying,但远程路由实际没有拿到远程 OAuth token。

本版本后,远程路由会优先从远程 helper 的认证运行时解析 ChatGPT access token;桌面本地路径仍沿用原来的 Tauri 状态,不改变上游本地行为。

Claude Code 远程安装后自动修复 PATH

Claude Code 官方 Linux 安装脚本可能把二进制放到:

~/.local/bin/claude

但某些 SSH / WindTerm 会话不会自动加载该目录,导致只能手动运行:

/root/.local/bin/claude

本版本在远程 helper 执行工具安装后,会检测已安装的可执行文件路径,并在需要时把对应目录追加到常见 shell 启动文件,避免后续 SSH 会话找不到 claude

远程统一供应商编辑可留空 API Key

远程编辑已有统一供应商时,API Key 留空现在表示“保留远程已有密钥”。

之前即使供应商已经添加过,编辑保存时仍会提示:

请先填写 API Key

本版本修复了该校验逻辑,并确保不会提交空值覆盖远程已有密钥。


远程 Helper

请在升级桌面应用后,到远程服务器管理页面更新 helper。

  • Helper release tag: remote-helper-latest
  • 支持目标:Linux x86_64、Linux arm64、macOS universal
  • Helper 仍然是无 Tauri 桌面依赖的纯 Rust CLI 构建

下载

  • macOS: CC-Switch-Remote-v3.16.9-macOS.dmgCC-Switch-Remote-v3.16.9-macOS.zip
  • Windows: CC-Switch-Remote-v3.16.9-Windows.msiCC-Switch-Remote-v3.16.9-Windows-Portable.zip
  • Linux (x86_64): CC-Switch-Remote-v3.16.9-Linux-x86_64.AppImage / .deb / .rpm
  • Linux (ARM64): CC-Switch-Remote-v3.16.9-Linux-arm64.AppImage / .deb / .rpm
  • Remote Helper: 由 remote-helper-latest 单独发布

.tar.gz 为 Tauri updater 自动更新专用,无需手动下载。

CC Switch Remote v3.16.8

Choose a tag to compare

@github-actions github-actions released this 20 Jun 03:33

CC Switch Remote v3.16.8

上游基线:CC Switch v3.16.3

远程版构建cc-switch-remote v3.16.8

本版本是数据目录隔离热修版本,用于修复 CC Switch Remote 复用上游 ~/.cc-switch 目录后,导致原版 CC Switch 因数据库 schema 过新而无法启动的问题。


重要修复

远程版默认使用独立数据目录

CC Switch Remote 现在默认使用:

~/.cc-switch-remote

不再默认使用原版 CC Switch 的:

~/.cc-switch

这可以避免远程版把原版数据库升级到更高 schema 后,原版应用因为“数据库版本过新”而拒绝启动。

首次启动复制旧目录,不原地升级

如果用户之前已经使用过远程版,并且本机存在 ~/.cc-switch,但还没有 ~/.cc-switch-remote,新版本首次启动会复制一份旧目录到 ~/.cc-switch-remote

之后远程版只迁移和写入复制后的目录,原版 ~/.cc-switch 不再被远程版继续升级。

Helper 同步隔离

远程 Helper 也改为默认使用 ~/.cc-switch-remote,并在处理 JSON 命令或长连接 serve 前初始化隔离目录。这样远程主机上如果同时安装原版 CC Switch,也不会被远程 Helper 升级原版数据库。


已知恢复方式

如果已经遇到原版 CC Switch 启动时报错:

数据库版本过新(11),当前应用仅支持 10

处理方式:

  1. 先备份整个 ~/.cc-switch 目录。
  2. 把当前 schema 11 数据库复制到 ~/.cc-switch-remote/cc-switch.db,供 CC Switch Remote 继续使用。
  3. ~/.cc-switch/backups/ 中选择 schema 10 的备份恢复到 ~/.cc-switch/cc-switch.db
  4. 原版 CC Switch 继续使用 ~/.cc-switch,CC Switch Remote 使用 ~/.cc-switch-remote

本次本机已执行过等价恢复:原版目录恢复为 schema 10,远程版目录保留 schema 11。


下载

  • macOS: CC-Switch-Remote-v3.16.8-macOS.dmgCC-Switch-Remote-v3.16.8-macOS.zip(未签名/未公证)
  • Windows: CC-Switch-Remote-v3.16.8-Windows.msiCC-Switch-Remote-v3.16.8-Windows-Portable.zip
  • Linux (x86_64): CC-Switch-Remote-v3.16.8-Linux-x86_64.AppImage / .deb / .rpm
  • Linux (ARM64): CC-Switch-Remote-v3.16.8-Linux-arm64.AppImage / .deb / .rpm
  • Remote Helper: 由 remote-helper-latest 单独发布

.tar.gz 为 Tauri updater 自动更新专用,无需手动下载。

CC Switch Remote v3.16.7

Choose a tag to compare

@github-actions github-actions released this 19 Jun 16:28

CC Switch Remote v3.16.7

上游基线:CC Switch v3.16.3

远程版构建cc-switch-remote v3.16.7

变更范围v3.16.6...v3.16.7,包含 9 个提交、95 个文件变更。

v3.16.6 已经发布过,因此本轮推进到 v3.16.7,保证 Tauri updater 可以从旧版本正常升级。


概览

本版是远程管理能力的完整补齐版本,不只是文档更新。它在 v3.16.6 基础上继续推进远程设置、远程高级、远程认证、远程使用统计、远程路由、Helper 安装/更新和发布文档,目标是让远程目标尽量复用本地页面与业务逻辑,同时保持本地和远程状态独立。


远程设置与页面对齐

  • 远程设置页面继续向本地设置页面结构对齐,保留本地设置模块的菜单顺序、标题和组件边界。
  • 远程设置默认入口和本地/远程切换后的页面状态做了修正,减少切换目标后落到不存在页面或跳回错误菜单的问题。
  • 新增远程功能对齐表,明确每个模块是 parityremote-adaptedlocal-only 还是后续计划。
  • 修正本地 App 更新入口在远程目标下的行为:更新的是桌面应用时,入口仍指向本地关于页,不误进入远程设置。

远程路由与运行态

  • 远程首页路由入口与本地首页逻辑对齐:不再额外展示一个远程运行态主开关,而是按本地语义显示应用路由和故障转移入口。
  • 开启远程应用路由时,会先确保远程路由运行态可用,再启用对应应用路由,减少“配置已开但远程路由没启动”的不一致状态。
  • 远程路由设置页继续复用本地路由的分组结构,覆盖远程路由、远程自动故障转移、远程整流器/优化器、远程全局出站代理。
  • 增加远程路由相关回归测试,覆盖首页开关、整流器、全局出站代理和失败保护场景。
  • 远程路由失败时遵守 failure-preserving 语义:命令级失败不应关闭已有远程运行态,除非 SSH transport 或 Helper session 本身不可用。

远程高级设置

  • 远程高级设置补齐“配置目录覆盖”,支持远程工具配置目录和远程 CC Switch 配置目录读取。
  • 远程备份与恢复接入远程主机数据库,不再只操作本地备份。
  • 远程云同步设置迁移完成,WebDAV / S3 相关设置和操作以当前远程主机为目标。
  • 远程日志配置通过 Helper 读写,保持与本地高级设置的交互结构一致。
  • 高级设置相关 UI 支持、路径处理、能力判断和测试均改为 target-aware。

远程认证

  • 远程认证中心接入 managed auth 设置,支持在远程目标下管理 Codex OAuth、Copilot 等认证相关状态。
  • Helper 新增认证相关命令和 capability,桌面端通过远程 API 调用,不把本地认证状态当作远程状态。
  • 供应商表单中的 OAuth / Copilot 授权交互改为可感知当前管理目标。
  • 增加远程认证 API 测试,覆盖本地/远程行为拆分。

远程使用统计

  • 使用统计页面接入远程目标,支持远程数据源、趋势图、请求日志、模型统计、供应商统计和 Hero 汇总。
  • 远程用量统计复用 shared usage service,并通过 Helper 读取远程主机数据。
  • 远程 pricing 配置、模型测试配置和 request log 查询改为 target-aware,避免读取本地统计数据。
  • 使用统计事件刷新按目标隔离,避免本地和远程缓存互相污染。
  • 增加远程 usage API、target query、pricing/proxy 相关测试。

Helper 安装、更新与健康检查

  • 改进远程 Helper 安装/更新体验,Helper 安装完成后会重启远程 session,避免旧 session 继续暴露旧 capability。
  • 远程健康检查展示 Helper 版本和构建信息时,使用更清晰的版本 + 构建标识,内部仍使用 commit/build 做兼容性比较。
  • 改进 Helper 下载、上传 fallback 和 SSH 临时路径处理,减少因远程主机无法直接访问 GitHub 或 Unix socket 路径过长导致的失败。
  • 未安装、能力不足、下载到桌面二进制、缺少运行依赖等情况会给出更明确的错误提示。
  • Helper 本版已通过 remote-helper-latest 发布,包含 Linux x86_64、Linux arm64、macOS universal 构建。

文档、首图和发布流程

  • README 新增当前桌面界面截图作为首图宣传图。
  • 中文 README 已重新整理为 cc-switch-remote 项目口径,移除上游广告、旧下载说明和不属于远程版主线的宣传内容。
  • 中文用户手册新增“远程服务器管理”章节,覆盖远程目标模型、Helper 生命周期、远程供应商、远程设置、远程路由、MCP/Prompts/Skills/会话、工具环境、本地专属能力和发布前检查。
  • CHANGELOG.md 新增 3.16.7 发布条目。
  • 调整本地/远程目标切换器图标,避免与远程服务器管理入口使用同一个服务器图标。

升级提醒

  • 更新桌面应用后,建议进入“远程服务器”页面检查每台远程主机的 Helper 是否为最新构建。
  • 如果使用远程路由、远程供应商、远程工具环境、远程认证、远程高级设置或远程使用统计,请升级后先执行一次健康检查。
  • macOS 构建当前未进行 Apple Developer ID 签名和公证,首次打开可能需要在系统设置中手动允许。

下载

  • macOS: CC-Switch-Remote-v3.16.7-macOS.dmgCC-Switch-Remote-v3.16.7-macOS.zip(未签名/未公证)
  • Windows: CC-Switch-Remote-v3.16.7-Windows.msiCC-Switch-Remote-v3.16.7-Windows-Portable.zip
  • Linux (x86_64): CC-Switch-Remote-v3.16.7-Linux-x86_64.AppImage / .deb / .rpm
  • Linux (ARM64): CC-Switch-Remote-v3.16.7-Linux-arm64.AppImage / .deb / .rpm
  • Remote Helper: 由 remote-helper-latest 单独发布

.tar.gz 为 Tauri updater 自动更新专用,无需手动下载。

CC Switch Remote v3.16.6

Choose a tag to compare

@github-actions github-actions released this 15 Jun 04:06

CC Switch Remote v3.16.6

这是 cc-switch-remote 的过渡版本号。应用版本继续沿用递增的 3.16.x,以保证 Tauri 自动更新能够从已发布的 v3.16.5 正常升级。

上游基线:CC Switch v3.16.3

远程版构建cc-switch-remote v3.16.6


概览

本版主要完成与上游 CC Switch v3.16.3 的同步,同时保留 cc-switch-remote 的远程管理分支定位:本地管理与远程管理继续作为两个独立目标,远程主机通过纯 CLI Helper 执行管理能力,桌面端只保存连接配置和健康状态。

上游 v3.16.3 的重点是用量计费准确性、供应商健康检查语义、Codex 统一会话历史、关于页性能、Codex 升级修复,以及一批代理和平台兼容性修复。本版已经把这些改动合并到远程版主线,并对远程管理相关代码做了冲突处理。


版本号说明

当前远程版已经发布过 v3.16.5。如果回退到 v3.16.3-remote.x,已安装用户无法通过 Tauri updater 自动升级。因此本轮继续使用 v3.16.6

后续 release note 会明确写出:

  • 应用版本cc-switch-remote v3.16.x
  • 上游基线cc-switch v3.16.3
  • Helper 构建:以 release asset / commit build 标识为准

这样既保持自动更新链路可用,也避免把远程版的 patch 号误解为上游版本。


上游同步内容

供应商健康检查更轻量

供应商健康检查从“发送真实流式模型请求”调整为“HTTP 可达性探测”。这能减少第三方供应商因为 WAF、鉴权策略或流式接口差异导致的误报。

注意:可达不等于真实请求一定成功。真实路由失败和故障转移仍以实际代理流量为准。

Codex 统一会话历史

合并上游的 Codex 统一会话历史设置和迁移/还原逻辑。开启后,官方 Codex 会话与第三方会话可以共享 resume 历史桶,减少“切换供应商后看不到会话”的情况。

Codex 升级修复

合并上游对 Codex npm 安装升级的修复:不再优先走容易损坏平台二进制的 self-update 路径,而是通过可运行性检测和重装修复缺失的 optional dependency。

用量统计与代理修复

合并上游关于真实上游模型计费、格式转换路径缓存 token 统计、Claude Code Workflow 子 agent 用量、Codex /responses 图像整流、错标 SSE 响应聚合、Hermes YAML 重复键等修复。

关于页加载优化

合并上游关于页工具版本检测缓存和渐进加载优化。应用版本和工具版本不再互相阻塞,工具检测结果会在应用会话内缓存。


远程版处理

保留远程管理分支定位

本轮合并没有把远程管理逻辑混入本地状态。远程主机仍然拥有自己的 CC Switch 状态、数据库、工具配置、MCP、Prompts、Skills 和 Helper。

保留远程 Helper 架构

远程 Helper 继续使用纯 CLI 构建,不依赖桌面 GTK/WebKit 运行库。remote-helper-latest 会由单独的 Remote Helper Artifacts 工作流发布。

保留远程 target/adapter

供应商、设置、工具环境、路由相关能力继续通过本地/远程 target adapter 区分执行目标,避免本地 JSON 或本地数据库误写入远程状态。

Release Note 发布流程修复

发布工作流现在会优先读取 docs/release-notes/<tag>.mddocs/release-notes/<tag>-zh.md 作为 GitHub Release 正文。以后 release 不再只有下载说明。


升级提醒

  • 已安装 v3.16.5 的用户可以通过应用内更新升级到本版。
  • 远程 Helper 与桌面应用分开发版。更新桌面应用后,建议在远程主机健康检查中确认 Helper 是否为最新构建。
  • 如果使用远程路由、远程供应商或远程工具管理,请在升级后先对目标主机执行一次健康检查。
  • macOS 构建当前未进行 Apple Developer ID 签名和公证,首次打开可能需要在系统设置中手动允许。

上游详细变更

上游完整 release note:


下载

  • macOS: CC-Switch-Remote-v3.16.6-macOS.dmgCC-Switch-Remote-v3.16.6-macOS.zip(未签名/未公证)
  • Windows: CC-Switch-Remote-v3.16.6-Windows.msiCC-Switch-Remote-v3.16.6-Windows-Portable.zip
  • Linux (x86_64): CC-Switch-Remote-v3.16.6-Linux-x86_64.AppImage / .deb / .rpm
  • Linux (ARM64): CC-Switch-Remote-v3.16.6-Linux-arm64.AppImage / .deb / .rpm
  • Remote Helper: 由 remote-helper-latest 单独发布

.tar.gz 为 Tauri updater 自动更新专用,无需手动下载。

CC Switch v3.16.5

Choose a tag to compare

@github-actions github-actions released this 13 Jun 06:20

CC Switch v3.16.5

这一版的重头戏是让原生 Responses 格式的国产模型供应商真正适配到位——为小米 MiMo、火山豆包、千问 Qwen3-Coder、美团 LongCat、MiniMax 等具备原生 Responses 端点的供应商生成 Codex 模型目录,让 Codex 桌面能看到这些模型、内置工具也能正常工作,并对少数拒收 web_search 的国产网关自动禁用该工具、避免请求被硬性拒绝。另有两处重要改进:切换供应商时,你在应用内新增的插件、环境变量等会自动回写到通用配置并带给下一个供应商;Linux(Wayland + NVIDIA)上「标题栏能点、页面点不动、缩放黑屏」的问题,现在也能用一个环境变量开关自救。本版还带来 Claude Sonnet 5 定价与默认档升级、两级分组的会话视图,以及一批凭据安全与平台兼容修复。

English → | 日本語版 →


使用攻略

本版的新能力主要落在 Codex 供应商表单、会话面板与用量 / 通用配置里,建议结合以下文档了解:

  • Codex 桌面看不到自定义模型?:本版重做了原生直连时的模型目录生成——当 Codex 供应商使用原生 Responses(openai_responses)直连时,CC Switch 会生成 ~/.codex/cc-switch-model-catalog.json,让 Codex 桌面能显示配置的自定义模型、工具也可用。若你此前配过原生 Codex 供应商,请重新保存一次以生成新目录(详见下方「升级提醒」)。
  • 用量统计:了解用量看板的数据来源与统计口径。本版新增了 Claude Sonnet 5 定价,并修复了用量脚本凭据被当作「显式覆盖」持久化的问题。
  • 设置:Codex 上游格式选择器与本地路由开关、Claude 通用配置(现更名为「应用通用配置」并支持切换时自动同步)都在供应商表单的高级选项里。

Warning

唯一官方渠道声明(请务必阅读)

CC Switch 是完全免费、开源的桌面应用,不会向用户收取任何费用。请仅通过下列官方渠道获取本软件:

类别 唯一官方
官网 ccswitch.io
源码 github.com/farion1231/cc-switch
下载 GitHub Releases
作者 @farion1231
举报山寨 GitHub Issues

任何向你收费、要求充值、或索取登录凭据的"CC Switch"网站或客户端均为假冒。如果你被诱导支付了费用,请立即停止操作并通过 GitHub Issues 反馈。


概览

CC Switch v3.16.5 是 v3.16.4 之后的一版维护更新,核心是把国产模型供应商的 Codex 原生直连做通。v3.16.4 已经把千问 / 百炼、小米 MiMo、火山豆包、美团 LongCat、MiniMax 等供应商切到了原生 Responses 端点,本版进一步为它们生成 Codex 所需的模型目录~/.codex/cc-switch-model-catalog.json),让 Codex 桌面真正能看到这些自定义模型、内置工具也能正常调用,并把模型映射从「本地路由」开关里彻底解耦。针对少数第一方模型不支持 OpenAI 内置 web_search 的国产网关(MiMo、LongCat、MiniMax、Qwen3-Coder),本版还会自动禁用该工具,避免 Codex 默认带上它触发硬 400。

围绕日常使用体验,本版让 Claude 的通用配置在切换供应商时自动同步并传递——你在应用内新增的插件、环境变量、主题等会先回写到通用配置、再带给下一个供应商,不会在切换时丢失;给 Linux(Wayland + NVIDIA)上点击失灵 / 黑屏的用户加了一个可自救的环境变量开关;补上 Claude Sonnet 5 定价并把默认 Sonnet 档升级到它;带来「供应商 → 项目目录」两级分组的会话视图;并修了一串凭据安全(通用配置片段剥离全部密钥、用量脚本凭据仅作显式覆盖)、平台兼容(Hermes Windows 配置目录、Windows Codex npm 影子命令)与界面(长下拉滚动、窄窗口日期选择器)的问题。此外也新增了若干供应商预设,开箱即可选用。

发布日期:2026-07-01

更新规模:36 commits | 93 files changed | +5,678 / -2,804 lines


重点内容

  • 让国产模型供应商的 Codex 原生直连真正可用:为小米 MiMo、火山豆包、千问 Qwen3-Coder、美团 LongCat、MiniMax 等国产供应商生成 Codex 模型目录(~/.codex/cc-switch-model-catalog.json),让 Codex 桌面能看到这些模型、内置工具可用;并对拒收 web_search 的国产网关(MiMo、LongCat、MiniMax、Qwen3-Coder)自动禁用该工具、避免硬 400。存量原生供应商需重存一次以生成新目录。
  • 通用配置切换时自动同步并传递:切走一个启用了通用配置的 Claude 供应商时,你在应用内新增的插件、环境变量、主题、hooks 会先自动回写到通用配置,再带给下一个供应商——不再在切换时被覆盖丢失。
  • Linux Wayland 点击失灵 / 黑屏的自救开关:遇到 Wayland + NVIDIA 上「标题栏能点、页面点不动、缩放黑屏」时,用 CC_SWITCH_GDK_BACKEND=wayland 启动即可切回原生 Wayland(平铺式合成器上遇到反向问题可设为 x11)。
  • Claude Sonnet 5:新增 Sonnet 5 定价,并把各预设的默认 Sonnet 档升级到 claude-sonnet-5
  • 会话分类视图与分组管理:会话面板新增「供应商 → 项目目录」两级分组视图,分组头支持三态复选框一键批量选择。
  • 新增供应商预设:新增七牛云、FennoAI、ZetaAPI、TeamoRouter、NekoCode、Code0.ai、Amux 等供应商预设,覆盖各受管应用,开箱即可选用。

新功能

国产模型供应商的 Codex 原生直连(生成模型目录)

本版把国产供应商的 Codex 原生直连做通了。继 v3.16.4 把小米 MiMo、火山豆包、千问 Qwen3-Coder、美团 LongCat、MiniMax 等供应商切换到原生 Responses(apiFormat: "openai_responses")之后,本版推翻了当时「原生直连就删掉模型目录」的做法:这些供应商不经过本地代理直连时,CC Switch 会为它们生成 ~/.codex/cc-switch-model-catalog.json,让 Codex 桌面真正显示这些自定义模型、内置工具也能用——不会触发像 MiMo 这类原生网关会拒绝的 freeform apply_patchtype=custom)工具(编辑回退到 shell_command)。目录生成按 apiFormat 判定、与「本地路由」开关解耦,因此一个原生供应商无需开启本地路由映射也会持久化目录;而 openai_chat 格式仍保持既有的 Responses↔Chat 代理转换不变。由于 Codex 解析器要求每个条目都带 base_instructions,原生模板携带一个中性默认值、由各厂商官方文案覆盖(MiMo、MiniMax)。存量原生供应商需重新保存一次以生成有效目录(无需数据库迁移)。

配套地,对少数第一方模型不支持 OpenAI 内置 web_search 工具的国产网关(MiMo、LongCat、MiniMax、Qwen3-Coder),本版会在切换时自动禁用该工具,避免 Codex 默认带上它、被网关以硬 400 拒绝(详见下方「修复」)。

会话分类视图与分组管理

会话管理面板在原有平铺列表之外新增了分组视图,通过工具栏的 List / ListTree 选择器切换,视图模式与展开状态都持久化到 localStorage。分组构建「供应商 → 项目目录」两级层级:按项目目录名归组,缺少项目目录的会话落入「未知目录」桶。两级都是可折叠区块,并提供「全部折叠」按钮;在批量模式下,每个分组头会出现一个三态复选框,可一键选中 / 取消该组内全部可选会话,并显示已选 / 可选计数徽标。四语(zh / en / ja / zh-TW)文案已同步。该改动完全在前端,不涉及后端命令或数据访问层。(#4776

Claude Sonnet 5 模型定价

schema.rs 里按 Anthropic list 价新增 claude-sonnet-5 定价行——输入 / 输出 $3 / $15 每百万 token、缓存读写 $0.30 / $3.75,与 Sonnet 4.6 一致。介绍期 $2 / $10 促销(有效期至 2026-08-31)刻意不入表,让记账反映稳态 list 价而非临时折扣。该行在应用下次启动时通过 ensure_model_pricing_seeded 应用,无需 SCHEMA_VERSION 变更。

新增供应商预设

本版新增了一批供应商预设,选中后填入自己的 API Key 即可使用:

  • 七牛云(Qiniu):覆盖全部 7 个受管应用(含 Gemini),中转原生 Claude / GPT / Gemini。
  • FennoAI / ZetaAPI / TeamoRouter / NekoCode:各覆盖 6 个应用(Claude、Claude Desktop、Codex、OpenCode、OpenClaw、Hermes)。
  • Code0.ai:覆盖全部 7 个应用(含 Gemini)。
  • Amux:覆盖 6 个应用。

各预设的端点与默认模型已按对应应用配好——Claude 类走 Anthropic 兼容主机直连、Codex 走原生 Responses、其余走 OpenAI 兼容 /v1


变更

切换供应商时自动同步并传递通用配置

这是本版一个很实用的改动:切走一个启用了通用配置的 Claude 供应商时,服务会先从它的 live settings.json重新提取可共享部分、更新到通用配置,再带给下一个供应商,而不再只是单向写入。这样一来,你在运行中的应用里直接新增的插件(enabledPlugins)、hooks、环境变量(env)、主题(theme)等共享配置就不会在切换时被静默丢失,而是自动跟着走到下一个供应商;删除也会同步(移除的键不会被再次注入)。该同步严格限定在启用了通用配置的 Claude 供应商,被显式清空时会跳过,且所有失败都是非致命(仅告警)、永不阻断切换。

Codex 模型映射与「本地路由」开关解耦

Codex 供应商表单向 Claude Code 对齐——模型映射目录现在独立于路由接管,因为原生 Responses 供应商(MiMo、豆包、MiniMax)需要它来做无代理直连,而 Chat 供应商无论如何都走代理。「需要本地路由」开关被移除(它没有后端字段,只是门控目录 / 推理的持久化,等价于「映射是否填了」)。模型映射现在对非官方供应商始终显示、非空即持久化,而推理能力的显示 / 持久化改由 Chat 格式门控。四语(zh / en / ja / zh-TW)文案随之重写。顺带修复了 useCodexConfigState 在加载已存供应商时丢掉 supportsParallelToolCalls / inputModalities / baseInstructions 的问题(会在编辑时静默丢失并行工具、图像输入与官方 base instructions)。

默认 Sonnet 档升级到 Claude Sonnet 5

把各供应商预设里的默认 Sonnet 档从 claude-sonnet-4-6 升级到 claude-sonnet-5(覆盖 claude / claude-desktop / hermes / openclaw / opencode 预设与通用 NEWAPI_DEFAULT_MODELS),涉及 ANTHROPIC_MODEL / ANTHROPIC_DEFAULT_SONNET_MODEL / ANTHROPIC_DEFAULT_OPUS_MODEL 等键及其带前缀变体。Claude Desktop 的默认路由 sonnet route_id 也一并迁移到 claude-sonnet-5。非 Anthropic 的 pin(gpt / gemini / glm / sonnet-4-5)保持不变。

豆包带日期 model id 与定价归一化

豆包(DouBaoSeed)预设的 model id 切换到带日期的 doubao-seed-2-1-pro-260628(覆盖各应用),因为火山方舟会以 404 拒绝裸名 doubao-seed-2-1-pro、只接受完整带日期 id。由于真实用量现在带日期后缀,strip_model_date_suffix 扩展为也能剥掉火山的 6 位 YYMMDD 形式(并校验月 01-12、日 01-31 以免误伤 -123456 这类非日期版本后缀),从而归一化命中定价表里的裸名 seed 行、修复豆包模型显示 $0 成本的问题。

###「写入通用配置」更名为「应用通用配置」

原标签「写入通用配置」在数据流向上有歧义(读起来像「把当前配置写进通用配置」),而实际行为相反——是把已存的通用配置片段合并进本供应商配置。复选框在四语(zh / en / ja / zh-TW)里更名为「应用通用配置」,包括所有提示 / 攻略 / 说明引用,日文用户手册与 README_JA.md 也一并同步。(#4829

其它预设与资源调整

  • OpenClaw 豆包上下文对齐 262144:OpenClaw 的 DouBaoSeed 预设此前硬编码 128000,而 Codex 侧同模型用 262144,导致 OpenClaw 用户窗口偏小;已对齐并加了跨预设一致性测试防止再次漂移。
  • 火山 / 豆包 / BytePlus 官网链接订正:这三个预设的「访问官网」链接被误设成了控制台 / 注册链接,已恢复为干净的产品主页。
  • 过大的供应商图标降采样到 256px:一批捆绑图标此前远大于其 ~32px 的实际渲染尺寸,降采样后显著减小体积、无代码 / 文件名 / 导入改动(如 ZetaAPI 940KB→40KB、relaxcode 1.16MB→42KB),并删除了从未被引用的 1.4MB dds.svg 孤儿。

修复

对拒收 web_search 的原生 Codex 网关禁用该工具

一些原生 /responses 网关的第一方模型不具备 OpenAI 内置的 web_search 工具,会以「tool type 'web_search' is not supported」拒绝,而 Codex 默认就会带上该工具,导致硬 400。CC Switch 现在会为这些厂商写入顶层 TOML 行 web_search = "disabled"。作用域是一份黑名单(默认开启):仅命中 base_url 主机(xiaomimimo.comlongcat.chatminimax.iominimaxi.com)或模型品牌前缀(mimolongcatminimaxqwen3-coder)的供应商会被禁用,因此中转真 GPT、豆包、通用 Qwen 及任何未知供应商都保持 Codex 默认。其中 qwen3-coder 前缀只压制原生 qwen3-coder-plus(百炼 / DashScope 对 coder 系标记内置工具不支持),共享同一主机的通用 Qwen 保持开启;匹配走模型轴(会剥掉聚合器的 vendor/ 路径段),因此也能兜住硅基流动这类中转拒收厂商模型的情形。选黑名单而非模糊的「是不是 GPT」白名单,是因为误让 web_search 保持开启会以硬 400 失败;同时用归属哨兵保证 CC Switch 只会移除由它自己写入的 disabled 值,因此存量供应商无需重存、切回也会重新启用。此外顺带把 LongCat-2.0-Preview 预设的上下文窗口从 131072(128K)订正为真实的 1048576(1M)。

通用配置片段剥离全部凭据类键

extract_claude_common_config 此前只脱敏 ANTHROPIC_API_KEYANTHROPIC_AUTH_TOKEN,但 Claude 供应商合法地携带其它凭据(OPENROUTER_API_KEYGOOGLE_API_KEY,可能还有 OpenAI / Gemini / AWS Bedrock / Vertex 密钥),这些可能泄漏进共享片段、再被注入到其它供应商。提取现在会按模式匹配并剥掉任何凭据形态的环境变量键(*_API_KEY / *_AUTH_TOKEN / *secret* / *token* 等),同时保留 MAX_OUTPUT_TOKENS 这类合法可共享的复数 *_TOKENS 值。手动「提取」与一次性自动提取路径的同一泄漏也一并堵上。

用量脚本凭据仅作显式覆盖持久化

供应商用量脚本存有可选的 api_key / base_url 字段用于查询配额时覆盖 live 凭据,但它们此前会静默镜像供应商自身的凭据——因此复制供应商或修改主 API key / base URL 后,用量脚本仍 pin 在旧端点旧 key,配额查询一直打向陈旧目标。现在 ProviderService 在持久化前会归一化:若脚本的 api_keybase_url 与供应商解析出的用量凭据相同(或为空)就清为 None,让查询回退到 live 配置;真正不同的覆盖才保留(token_plan 类脚本不动)。deeplink 导入路径也加了对应的归一化,前端在更新时会失效相关缓存键让首页用修正后的配置重新查询。(#4654

Hermes 配置目录在 Windows 上正确解析

CC Switch 此前硬编码 ~/.hermes 作为 Hermes 配置目录,但 Hermes 自身是按 HERMES_HOME 环境变量、再退到平台默认(Windows 上 %LOCALAPPDATA%\hermes)解析的。在 Windows 上这意味着 CC Switch 把供应商配置写到了 Hermes 根本不读的路径,导致供应商切换无效。get_hermes_dir() 现在镜像 Hermes 自己的解析顺序——显式覆盖、HERMES_HOME(原样取用、不做 ~ 展开)、平台默认——从而重新尊重被 farion1231#3470 丢掉的 HERMES_HOME(Hermes 的 Windows 安装器把它作为重定位安装的首要机制)。(#4680,参见 farion1231#3178farion1231#3470

Linux Wayland:允许覆盖 AppImage 强制的 GDK_BACKEND=x11

AppImage 的 GTK 启动钩子无条件导出 GDK_BACKEND=x11 以规避一个历史上的原生 Wayland 崩溃。在较新的 Wayland + NVIDIA 环境上,这个被强制的 XWayland 会让 WebKitGTK 网页内容收不到指针事件(标题栏可点、页面却死了)、并在缩放时黑屏,而既有的 WEBKIT_DISABLE_* 缓解不起作用,因为根因是被强制的窗口后端而非渲染。main.rs 现在会在 GTK 初始化前读取一个可选的 CC_SWITCH_GDK_BACKEND 逃生开关(AppImage 的启动钩子从不改动它):不设保持现状(零回归)。遇到上述问题时,用它切回原生 Wayland 启动即可:

CC_SWITCH_GDK_BACKEND=wayland ./CC-Switch-*.AppImage

该覆盖是通用的——若你在平铺式 Wayland 合成器上遇到的是反向的输入问题,则改设为 CC_SWITCH_GDK_BACKEND=x11。(#4351,修复 farion1231#4350

Claude Desktop / OpenCl...

Read more

CC Switch v3.16.4

Choose a tag to compare

@github-actions github-actions released this 11 Jun 14:54

CC Switch v3.16.4

🎉 CC Switch 跻身 GitHub 全球 Star 排行榜前 100!
感谢每一位用户、贡献者与 Star —— 是你们让它走到这里。🙏

继 v3.16.3 把「用量计费做准」之后,这一版把重心放在打磨 Codex 代理链路与丰富用量 / 定价工具上——国产供应商原生 Responses 迁移、上游格式选择器与模型映射解耦、zstd 请求 / 错误体解压,以及一批工具调用与 OAuth 走代理的修复;同时新增本地代理请求覆盖、数据库版本过新时的应用内恢复屏、原生 Windows ARM64 构建,并带来一波预设与品牌更新(SubRouter、OpenCode Go、CTok→ETok 改名、Kimi 品牌刷新与 prime-partner 徽标)。

English → | 日本語版 →


使用攻略

本版以打磨与扩展为主,新增的能力主要落在用量面板与供应商表单的高级选项里,建议结合以下文档了解:

  • Codex 桌面看不到自定义模型?:不少用户反馈在 Codex 桌面应用里看不到配置的第三方 / 自定义模型。这是 Codex 桌面应用上游自身的门控行为(按官方登录状态放行模型选择器),并非 CC Switch 的本地配置问题,本版(v3.16.4)未对此做改动;文档里说明了原因,以及可用的缓解办法(保留官方登录 + 路由接管)。
  • 用量统计:了解用量看板的数据来源与统计口径。本版新增了从 models.dev 批量导入模型定价、火山方舟 Coding / Agent Plan 的 AK/SK 用量查询,以及自定义日期范围的「实时结束时间」。
  • 设置:本地代理请求覆盖(自定义请求头 / 请求体)、Codex 上游格式选择器与本地路由开关等都在供应商表单的高级选项里。

Warning

唯一官方渠道声明(请务必阅读)

CC Switch 是完全免费、开源的桌面应用,不会向用户收取任何费用。请仅通过下列官方渠道获取本软件:

类别 唯一官方
官网 ccswitch.io
源码 github.com/farion1231/cc-switch
下载 GitHub Releases
作者 @farion1231
举报山寨 GitHub Issues

任何向你收费、要求充值、或索取登录凭据的"CC Switch"网站或客户端均为假冒。如果你被诱导支付了费用,请立即停止操作并通过 GitHub Issues 反馈。


概览

CC Switch v3.16.4 是 v3.16.3 之后的一版维护更新。这一版围绕 Codex 代理链路做了一轮收紧——为多家具备原生 OpenAI Responses 端点的国产供应商切换到原生格式(省去 Responses→Chat 的路由接管转换)、把「上游格式」从「本地路由」开关里独立出来、补上 zstd 请求与错误响应体的解压,并修了一串工具调用与「OAuth 模块绕过全局代理」的问题。

与此同时,本版还丰富了用量与定价工具(从 models.dev 导入定价、火山方舟 Coding / Agent Plan 的 AK/SK 用量查询、自定义日期范围的实时结束时间、GLM-5.2 与豆包 Seed 2.1 定价),新增了一批代理与韧性能力(自定义请求头 / 请求体覆盖、数据库版本过新时的应用内恢复屏、原生 Windows ARM64 构建),并带来一波预设与品牌更新(SubRouter 与 OpenCode Go 订阅、CTok→ETok 改名、Kimi 品牌刷新与 prime-partner 徽标、Kimi K2.7 Code 赞助横幅)。

发布日期:2026-06-27

更新规模:53 commits | 126 files changed | +8,149 / -1,016 lines


重点内容

  • 国产 Codex 供应商走原生 Responses:千问 / 百炼、小米 MiMo、火山豆包、美团 LongCat、MiniMax(国内 / 国际)现在直连各自的原生 Responses 端点,不再经过 Responses→Chat 的格式转换接管,链路更短、更稳。
  • 本地代理请求覆盖:供应商可配置自定义请求头与请求体覆盖,由本地代理在转发时应用,并对受保护的安全请求头做了拦截校验。
  • 数据库版本过新的应用内恢复屏:当 SQLite 版本比当前应用支持的更新时,不再死在「重试只会再次失败」的原生弹窗里,而是引导到一个可一键升级应用的恢复界面。
  • 更丰富的用量 / 定价工具:从 models.dev 批量导入模型定价、火山方舟 Coding / Agent Plan 的 AK/SK 用量查询、自定义日期范围的「实时结束时间」,以及 GLM-5.2 与豆包 Seed 2.1 的定价。
  • 新预设与品牌更新:新增 SubRouter 与 OpenCode Go 订阅预设,CTok 改名为 ETok,刷新 Kimi 品牌标识并为官方 Kimi 预设加上 prime-partner 心形徽标。
  • 原生 Windows ARM64 构建:发布产物新增原生 ARM64 版本,ARM 架构的 Windows 设备不再依赖 x64 模拟。

新功能

数据库版本过新时的应用内恢复屏

当 SQLite 的 user_version 比当前应用支持的 SCHEMA_VERSION 更新时(例如降级回旧版、或被第三方客户端写过该文件),启动过去会死在一个原生的「重试 / 退出」弹窗里——而「重试」只会再次失败。现在应用会引导到一个专门的恢复界面:有可用更新时提供一键「升级应用」按钮(下载 + 安装 + 重启,带进度条),没有可用更新时则提示即便是最新版也读不了这个数据库。该「版本过新」检查在任何写库动作之前进行,因此应用永远不会对一个读不懂的数据库执行 DDL;恢复模式下的原生关闭会干净退出(此时托盘尚未创建)。(#4575

本地代理请求覆盖(自定义请求头与请求体)

供应商配置现在可以定义自定义请求头与请求体覆盖,由本地代理在转发时应用,并通过 Claude 与 Codex 供应商表单里的新字段暴露。输入会经过校验,其中包含一份受保护的请求头名单,用于阻止覆盖安全敏感的请求头。(#4589

火山方舟 Coding / Agent Plan 用量查询

用量面板现在可以查询火山方舟(Volcengine Ark)的 Coding Plan 与 Agent Plan 配额。由于方舟控制面 OpenAPI(open.volcengineapi.com)要求的是账号级 AccessKey 签名、而非推理 API key,用量脚本新增了独立的 AK/SK 输入区,并配有一个直达火山 IAM 密钥管理控制台(https://console.volcengine.com/iam/keymanage)的可点击链接;代理实现了火山签名 V4(一个 AWS SigV4 变体:固定的 canonical header 顺序、HMAC-SHA256 算法、ark 服务 scope)。它会先探测 GetAFPUsage(Agent Plan 的 5 小时 / 周 / 月配额)自动判定套餐,失败再回退到 GetCodingPlanUsage,从 Level 字段解析窗口标签(并对 ResetTimestamp <= 0 做守卫),同时在用量页脚、托盘菜单与四种语言里补上了 monthly 档标签。

从 models.dev 导入模型定价

「添加定价」面板新增了一个「从 models.dev 导入」按钮:拉取 https://models.dev/api.json,支持全文搜索整个目录,并通过与手动录入相同的 update_model_pricing 路径导入所选条目。导入的 model id 会按后端的 clean_model_id_for_pricing 规则归一化(剥供应商前缀、转小写、截断 : 后缀、把 @ 映射为 -、丢掉 [1m] 标记),让落库的行真正能匹配成本归因查询。配套修复让「按范围回填零成本」改用 Rust 端按原始 model 别名(路由前缀、:free 变体、日期后缀)匹配,而不再用精确 SQL 字符串匹配,从而新定价的别名行能立刻被计价、而不必等下次启动回填(修复 #4017)。(#4079

原生 Windows ARM64 构建

发布产物现在包含原生的 Windows ARM64 制品,ARM 架构的 Windows 设备可以拿到对应的原生构建,不必再依赖 x64 模拟。发布矩阵也改为各平台独立运行(关闭 fail-fast),因此某个任务缺少密钥而失败(例如 fork 里的 macOS 签名)不会再把尚未完成的同级任务一并取消。(#3950

自定义日期范围的实时结束时间

自定义日期范围选择器新增了一个「结束时间跟随当前时间」勾选框;开启后结束时间变为只读并自动跟随此刻,因此用量数据始终反映从所选起点到当下的实时消耗。这在 Coding Plan 的 5 小时配额窗口里尤其有用。liveEndTime 已纳入 React Query 的缓存键,因此一个实时范围和一个端点相同的固定范围不会再共用同一个陈旧缓存项。(#4438

会话详情头显示源文件名

会话详情头现在会在项目目录旁显示会话日志的文件名(悬停看完整路径、可点击复制),方便用户直接从界面定位并打开底层的 JSONL 文件。对于像 ~70 字符的 Codex rollout 这类没有空格的长文件名,会截断到 max-w-[200px],避免在窄窗口里溢出到操作按钮区。(#4113

导入按钮的未托管 Skill 提示

顶栏的 Skills 导入按钮现在会在本地存在未托管的 Skill 可导入时显示一个绿点与提示,让你一眼看出磁盘上的 Skill 还没被纳管。该扫描在挂载时执行一次,并在多次导航间共享(30s staleTime + keepPreviousData),避免重复磁盘 IO。

OpenCode Go 订阅预设

新增 OpenCode Go(opencode.ai/zen/go)预设,覆盖 Claude、Codex 与 OpenCode,使用可直接粘贴的纯 API key(无 OAuth)。Codex 预设走 openai_chat 转换并带 GLM / Kimi / DeepSeek / MiMo 模型目录(且不带静态 codexChatReasoning,按每个模型推断能力),OpenCode 则通过 @ai-sdk/openai-compatible 指向 /zen/go/v1。四个 OpenCode Go 预设——Claude、Claude Desktop、Codex、OpenCode——都带上了推荐链接与应用内推广文案;推广横幅现在仅凭 partnerPromotionKey 即可展示(不再绑定 isPartner),因此一个预设可以展示推荐推广却不获得金色付费合作伙伴星标(这也顺带让既有的 MiniMax 推广重新显示出来)。

Prime-Partner 预设徽标与排序

第一方 Moonshot Kimi 预设(Kimi / Kimi For Coding / Kimi K2.7 Code)现在被标记为 prime partner:不再显示金色星标,而是渲染一颗实心金色心形(无徽标边框),并在默认(Original)排序里浮到官方分类预设之后、其余之前。分组用三路 partition 实现,每组保持内部顺序,且一个同时被标为 prime-partner 的官方预设只会留在官方组里。

GLM-5.2 与豆包 Seed 2.1 定价

种子模型定价现在包含 GLM-5.2(#4385)与豆包 Seed 2.1 Pro / Turbo,让这些模型的用量被正确计价、而不是记成零成本。豆包价格采用火山官方 list 价(按约 7.14 的汇率折算);cache_creation 保持为 0,因为豆包按时间而非按 token 写入计费缓存存储,既有的 2.0 行也保留以供历史记账。

Kimi For Coding 自动压缩窗口

Kimi For Coding 预设现在把 CLAUDE_CODE_AUTO_COMPACT_WINDOW 默认设为 262144,与 Kimi 官方文档一致,并通过 templateValues 暴露,方便用户为将来的模型或性能调优自定义该值。(#4401

SubRouter 合作伙伴供应商

新增 SubRouter(subrouter.ai,一个让一把 key 访问多模型多供应商的 AI 中转聚合商)作为预设,覆盖全部 7 个受管应用——Anthropic 格式端点用于 Claude Code / Claude Desktop / OpenClaw / Hermes,OpenAI 兼容的 /v1 端点(gpt-5.5)用于 Codex 与 OpenCode,Gemini 兼容的 /v1beta 端点(gemini-3.5-flash)用于 Gemini CLI——带上自有品牌图标、金色合作伙伴星标、四语推广文案,以及预填为 API key 注册地址的推荐注册链接(?aff=l3ri)。(#4522


变更

国产 Codex 供应商走原生 Responses API

多家国产供应商(千问 / DashScope 百炼、小米 MiMo、火山豆包、美团 LongCat、MiniMax 国内 / 国际)现在暴露了原生的 OpenAI Responses 端点,因此它们的 Codex 预设切换到 apiFormat: "openai_responses",直连上游而不再经过 Responses→Chat 的路由接管转换。丢掉不再需要的 codexChatReasoningmodelCatalog 也让「本地路由映射」开关默认保持未勾选。SiliconFlow 托管的 MiniMax 仍保持 openai_chat,因为那是第三方端点、并非 MiniMax 自家 base_url。其余仍走 chat 的供应商也刷新了过期的 model id(GLM 5.1→5.2、StepFun 3.5-flash-2603→3.7-flash、Ling 2.5-1T→2.6-1T)。

上游格式选择器与模型映射开关解耦

Codex 供应商表单此前把 Chat 格式转换与路由接管(模型映射)绑在同一个开关上,导致一个提供原生 Responses API 的供应商无法在不强制 Chat Completions 转换的情况下使用模型映射。现在「上游格式」(Chat Completions / Responses)成了一个独立、始终可见的选择器,而本地路由开关只负责控制高级子区(模型映射目录,以及格式为 Chat 时的推理能力)。它的初始状态由已保存目录是否存在派生,不新增持久化字段;codexConfig 的四语(zh / en / ja / zh-TW)文案也随之重写。

豆包 Seed 2.1 Pro 预设

DouBaoSeed 预设现在在全部 6 个客户端(claude、claude-desktop、codex、opencode、openclaw、hermes)指向 doubao-seed-2-1-pro(替换 doubao-seed-2-0-code-preview-latest),展示名更新为「Doubao Seed 2.1 Pro」,并把 OpenClaw 的成本字段从 0.002 / 0.006 订正为 0.84 / 4.2 美元每百万 token 以匹配新模型。

CTok 改名为 ETok

随着厂商对域名、端点与商标的更名,所有面向用户的品牌从 CTok 迁移到 ETok(ctok.aietok.aiapi.ctok.aiapi.etok.ai,以及内部 id、展示名、图标和 README 合作伙伴横幅),覆盖每一个客户端预设。Codex 历史迁移白名单里仍保留 ctok 作为旧 id、与新 etok 并存,以保证改名后存量用户的本地会话历史仍被正确分桶。

Kimi 预设命名统一

OpenCode 与 OpenClaw 此前被标为「Kimi K2.7 Code」的 Kimi 预设,更名为与其它应用一致的「Kimi」(OpenCode 的供应商展示名也一并更名);模型标签仍保留「Kimi K2.7 Code」,因为它描述的是实际模型。

JSON 编辑器暗色模式

用量脚本弹窗、供应商表单与通用供应商表单里的 CodeMirror JsonEditor 现在会通过 useDarkMode() 跟随应用主题,切换到 oneDark 编辑器主题,而不再在应用其余部分已是暗色时仍停留在亮色。(#4556

更紧凑的「添加供应商」标题与底部提示

「添加供应商」对话框把标题到页签、页签到卡片的纵向间距从 24px 收到 12px,并新增一个始终可见的固定底部提示,引导用户在选好预设后填写下方字段。FullScreenPanel 新增可选的 contentClassName 属性,让内边距覆盖只作用于此面板、不影响其它共用它的面板。

主题自适应的 Kimi 标识

内联的 Kimi 占位标记替换为厂商刷新后的标识。K 字形使用 currentColor,因此会跟随主题文字色(亮色模式深、暗色模式白),而品牌点缀色固定为新的 #1783FF,元数据回退色也相应对齐。

移除 Fable 5 Verified 纪念横幅

设置「关于」页不再显示 3.16.3 为标明特别构建而加在应用名旁的 Fable 5 Verified 纪念横幅;横幅图片及其标记被移除,「关于」面板回到标准的版本徽标布局。


修复

Copilot / Codex OAuth 请求现在遵循全局代理

CopilotAuthManagerCodexOAuthManager 在构造时写死了 Client::new(),导致它们的认证流程(换 token、拉 /models 列表、判定 model vendor、device-code 与 OAuth 刷新请求)无视配置的全局代理、直连目标服务。在 Copilot 上,直连会让 /models 返回 0 个 Claude 模型,使 live 模型解析失效,上游以 400 model_not_supported 拒绝请求。现在两个 manager 都改为每次请求从共享客户端现取(crate::proxy::http_client::get()),从而遵循全局代理 URL 并支持运行时热更新。修复 #2016#2931。(#4583

压缩请求体与错误体的解压

Codex Desktop 在对 Codex 后端认证时会发送 zstd 压缩的请求体,这会破坏本地代理路由,因为处理器直接用 serde_json 解析原始压缩字节。代理现在会在 JSON 解析前对请求体解压(gzip / br / deflate,外加新增的 zstd 支持,包括 gzip, zstd 这类堆叠编码),覆盖三个 Codex 处理器,并剥掉过期的 content-encoding / content-length / transfer-encoding 请求头让转发器重新生成。上游非 2xx 的错误体也以同样方式解压,因...

Read more