v4.0.21

farion1231/cc-switchv4.0.21Oct 26, 2026by github-actions[bot]

Upgrading?

Release notes summary

CC Switch v4.0.21 introduces multi-account switching for official Claude Code subscriptions, letting users register several Claude accounts in the authorization center and bind one account per official card, with login handled entirely through Claude Code's official flow and tokens kept locally. The release also moves the "Open Terminal" action onto provider cards, adds drag-and-drop ordering for the Codex model list, persists lightweight mode across restarts, and delivers a broad set of fixes across Codex routing, MCP config, npm 12 installs, usage tracking, and YAML editing.

Key Highlights

  • Multiple official Claude subscription accounts can be added and switched per-card, with tokens remaining solely in the local Claude Code installation (no upload, refresh, or logout by CC Switch)
  • Cards and the authorization center now display each account's plan and remaining quota, including for accounts not currently in use
  • "Open Terminal" moved from the ⋯ menu to a dedicated icon button on each card, with environment isolation indicated in the tooltip
  • Codex model lists in the provider form support drag-and-drop (mouse or keyboard) reordering, which maps to the order in Codex's /model menu
  • Lightweight mode now persists across restarts, and numerous fixes address Codex routing, MCP config pollution, npm 12 installs, Kimi Code usage timing, and YAML parsing

New Features

  • Multi-account management for official Claude subscriptions via the authorization center, using CLAUDE_CONFIG_DIR-based isolated config directories per account
  • Switch accounts by switching cards — the selected account's login is placed where Claude Code reads it, taking effect immediately without restart
  • Per-terminal account pinning: opening a terminal from a card locks that terminal to the card's account regardless of later card switches
  • Plan and quota display on bound cards and in the authorization center, refreshed via Claude Code's own `claude -p /usage` at most once per 10 minutes per account
  • Drag-and-drop reordering of the Codex model list, with the first row determining the default model
  • "Open Terminal" relocated to a dedicated button on provider cards
  • Authorization center "Add Account" button fixed to the right of each group header; ChatGPT login method moved to a small dropdown
  • Lightweight mode persisted across restarts (cold start via ccswitch:// links still opens the main window)
  • Hermes cards show "Default" with "Set as Default" moved into the ⋯ menu
  • MCP SSE selection now warns which applications do not support SSE (Codex, Pi, Antigravity)
  • Claude Desktop upstream format auto-detection for githubcopilot.com addresses
  • New and updated presets: DeepSeek Flash, Kimi K3.1 Pro / K3.1 Pro HighSpeed with thinking levels, OpenClaw MiniMax M3.1 Flash max, ClinePass, TeamoRouter Claude, and corrected OpenCode Go endpoint for Claude Desktop
  • Completed Turkish translation

Full Release Notes

# 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 发布说明](https://github.com/farion1231/cc-switch/blob/main/docs/release-notes/v4.0.4-zh.md)。

**[English →](https://github.com/farion1231/cc-switch/blob/main/docs/release-notes/v4.0.21-en.md) | [日本語版 →](https://github.com/farion1231/cc-switch/blob/main/docs/release-notes/v4.0.21-ja.md)**

---

## 新增

### 在多个 Claude 官方订阅账号之间切换

手上有不止一个 Claude 订阅(比如个人 Max 和公司 Team,或者多个 Pro 账号)时,以前只能在 Claude Code 里 `/logout` 再 `/login`,或者自己给每个号建配置目录。现在可以在 CC Switch 里管理多个号([#1928](https://github.com/farion1231/cc-switch/issues/1928))。

图文用法和逐条的合规对照见 **[使用 CC Switch 切换多个 Claude 官方订阅以及合规问题](https://github.com/farion1231/cc-switch/blob/main/docs/guides/claude-official-accounts-guide-zh.md)**。

**安全与合规。** 订阅账号交给工具管理,最要紧的是令牌安全、不违反 Anthropic 的条款。这个功能按 Claude Code 官方文档的做法实现,令牌始终只在你本机的 Claude Code 里:

- **登录走官方流程。** 添加账号时运行的是 Claude Code 自带的 `claude auth login --claudeai`,密码和授权都在 claude.ai 的官方页面完成。CC Switch 没有自己的 Claude 登录,也没有自己的 OAuth 客户端。Anthropic 的[法律与合规页](https://code.claude.com/docs/en/legal-and-compliance#authentication-and-credential-use)要求 Claude 账号的登录必须通过 Anthropic 自己的流程完成,并且明确不限制用户用自己的订阅登录未经修改的 Claude Code。
- **多账号用的是官方推荐的方法。** 每个号一个独立的配置目录,用 `CLAUDE_CONFIG_DIR` 区分,和 Claude Code [认证文档](https://code.claude.com/docs/en/authentication#log-in-with-multiple-accounts)里「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](https://github.com/farion1231/cc-switch/issues/8870))。这个顺序就是 Codex 里 `/model` 菜单的顺序。第一行代表默认模型时,拖到第一行的模型成为新的默认模型。以前要删掉再加回来才能挪位置。

## 改进

**「打开终端」挪到卡片上。** 以前在 ⋯ 菜单里,现在是「编辑」左边的一个图标按钮。悬停提示是「以此供应商打开终端」,终端固定用这张卡时(填了自己的地址和 Key 的卡、选了 Claude 账号的官方卡)会写「(环境隔离)」。

**授权中心每组的「添加账号」按钮固定在标题右边。** 以前没有账号时按钮会挪到空白提示里,几组卡片的按钮高低不一。ChatGPT 的登录方式改成按钮旁边的一个小下拉。标题里的「删除全部账号」菜单去掉了,账号在各自那一行的菜单里删除。各个账号的额度条现在对齐,长度一致。

**轻量模式重启后保持。** 在轻量模式下退出 CC Switch,下次启动仍是轻量模式,不再弹出主界面。从 `ccswitch://` 链接冷启动时照常打开主界面,好显示导入对话框。

**Hermes 卡片显示「默认」,「设为默认」移到 ⋯ 菜单里。** Hermes 把添加的供应商都写进 `config.yaml`,当前那家只是默认值,和 OpenClaw、OpenCode、Kimi Code 一样。以前的电源图标「启用」按钮看起来像开关。

**卡片变成「使用中」时,用量一栏不再左右挪动。**

**MCP 选了 SSE 时提示哪些应用不支持**([#8882](https://github.com/farion1231/cc-switch/issues/8882))。Codex 只支持 stdio 和 HTTP,会把 SSE 地址当作 HTTP 连接,服务端只支持 SSE 时连不上;Pi 和 Antigravity 保存时会报错。现在「写入到」下面会提前提示。

**Claude Desktop 的上游地址填 `githubcopilot.com` 时,上游格式显示为「由路由按模型自动选择」**([#8838](https://github.com/farion1231/cc-switch/pull/8838)),和选 GitHub Copilot 供应商时一样。

**OpenCode 的 OMO、OMO Slim 卡片不再显示「检测连通」**([#8842](https://github.com/farion1231/cc-switch/pull/8842))。它们只是代理和模型的对应关系,没有地址可测,以前点了会报错。

**土耳其语翻译补全**([#8836](https://github.com/farion1231/cc-switch/pull/8836))。

**预设:** DeepSeek 一律改用 Flash 模型;Kimi 官方预设加入 K3.1 Pro 和 K3.1 Pro HighSpeed,可以选 low / high / max 思考程度([#8867](https://github.com/farion1231/cc-switch/issues/8867));OpenClaw 的 MiniMax M3.1 Flash 可以选 max;新增 ClinePass([#8885](https://github.com/farion1231/cc-switch/issues/8885))、TeamoRouter Claude([#8266](https://github.com/farion1231/cc-switch/pull/8266));Claude Desktop 的 OpenCode Go 改用官方文档的地址,额度也能查了([#8720](https://github.com/farion1231/cc-switch/pull/8720)、[#8779](https://github.com/farion1231/cc-switch/issues/8779))。

## 修复

- **托管 ChatGPT 账号重启后显示「登录已过期」、不能切换,过一会儿又自己好了**([#8901](https://github.com/farion1231/cc-switch/issues/8901))。以前刷新登录时遇到任何 HTTP 403 都当成登录失效,网络错误也显示成过期。现在和 Codex CLI 一样,只有 401 或明确的令牌失效错误才算过期;一时的网络问题照常重试,额度保留上一次的结果。托盘切换后,主界面里查询失败的额度也会重新查询。
- **Codex 经本地路由时,请求发到了别的地址**([#8849](https://github.com/farion1231/cc-switch/pull/8849)、[#8848](https://github.com/farion1231/cc-switch/issues/8848))。`config.toml` 里有多个供应商表、或上面有一行注释掉的旧地址时,以前取的是文本里第一个 `base_url`,会带着选中供应商的 Key 发到别处。现在按 `model_provider` 选中的那张表取地址。
- **Codex 远程压缩的用量有时漏记**([#8879](https://github.com/farion1231/cc-switch/pull/8879))。
- **Codex 的 MCP 配置里多出 `timeout`、`autoApprove`,Codex 桌面版报未知设置,`--strict-config` 拒绝加载**([#8843](https://github.com/farion1231/cc-switch/issues/8843))。这两个字段是别的客户端的,以前原样写进了 `config.toml`,手动删掉下次同步又会写回来。现在写给 Codex 时去掉,其他应用不受影响。
- **Codex 经中转连到多个 Azure 资源时,会话中途报 400「created under a different Azure OpenAI resource」,无法继续**([#8877](https://github.com/farion1231/cc-switch/issues/8877))。现在收到这个错误后重试一次,去掉历史记录的条目 ID。正常的请求不受影响。
- **ClinePass 这类把 Chat Completions 结果包在 `data` 里返回的上游,非流式请求报 422「No choices in response」**([#5658](https://github.com/farion1231/cc-switch/issues/5658))。
- **npm 12 下,「应用」页装的 OpenCode 在 Windows 上报「与你运行的 Windows 版本不兼容」,Grok Build 升级后仍在跑旧版本**([#8863](https://github.com/farion1231/cc-switch/issues/8863))。npm 12 默认不运行安装脚本,这两个包要靠它放置真正的程序。现在安装和升级时允许它们的安装脚本。
- **Windows 上 Hermes 在「应用」页显示成两处安装**([#8839](https://github.com/farion1231/cc-switch/issues/8839))。同一目录里遗留的 `hermes.cmd` 不再算一处安装。
- **Kimi Code 的用量,一整轮对话的请求时间都一样,按小时统计时挤在最后一小时**([#8899](https://github.com/farion1231/cc-switch/issues/8899))。现在按每次请求完成的时间记。已导入的记录在会话文件下次变化时会更正。
- **Oh My Pi 的 `models.yml` 里有 `name: Search & Fetch` 这类含 `&`、`*`、`!` 的值时,保存供应商时报「此 YAML 使用了 CC Switch 无法安全编辑的格式或语法」**([#8897](https://github.com/farion1231/cc-switch/issues/8897))。
- **`~/.gemini/.env` 里写成 `export GEMINI_API_KEY=...` 时,导入后没有 Key,切回默认供应商还会把它从文件里删掉**([#8862](https://github.com/farion1231/cc-switch/pull/8862)、[#8861](https://github.com/farion1231/cc-switch/issues/8861))。
- **从启用了提示词的项目切到没有提示词的项目,原来的提示词没有停用。**
- **用量统计页展开或收起侧栏时,趋势图右边缘跳动**([#8548](https://github.com/farion1231/cc-switch/pull/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](https://github.com/farion1231/cc-switch/blob/main/CHANGELOG.md)。

Related Repositories