ccam 与其他 Claude Code 账号切换工具对比
本页由英文机器翻译而来,欢迎指正。 在 GitHub 上编辑此页
切换 Claude Code 账号的工具采用两种方式之一。大多数工具在同一个 ~/.claude 文件夹中替换登录信息,所以同一时间只有一个账号处于活动状态。另一些工具(包括 ccam)用 CLAUDE_CONFIG_DIR 为每个账号提供单独的文件夹,所以每个账号都保持登录状态,并且可以同时运行多个账号。ccam 还提供共享的设置和 MCP 服务器,并能在另一个账号的文件夹中继续对话。
替换同一份登录信息,还是使用单独的文件夹?
替换登录信息只保留一套设置、MCP 服务器和历史记录,因为只有一个文件夹。切换很快,正在运行的会话也能用上新的登录信息。但同一时间只有一个账号处于活动状态,而且对所有终端和编辑器同时生效。
为了替换,工具会为其他每个账号保存一份登录信息的副本,并在切换时把它写回原位。Claude Code 每次续期登录时都会换掉其中的刷新令牌,所以每份保存的副本都必须和正在运行的会话保持同步。切换后账号被登出,或者需要重新 /login,是这些项目最常修复的问题之一。
单独的文件夹是 Claude Code 文档中介绍的方法。每个账号都保持登录,你可以让工作会话和个人会话并行运行。每份登录信息都留在各自的文件夹中,由 Claude Code 照常在那里续期。代价是每个文件夹一开始都有各自的设置、MCP 服务器和历史记录,除非有工具来共享它们。
各工具对比
信息取自各项目自己的文档和源代码(2026-10-20;clausona:v0.12.0-beta)。"未说明"表示项目没有提及,而不是没有该功能。
| 工具 | 方式 | 同时使用多个账号 | 5 小时和每周用量 | 达到限制时 | 平台 |
|---|---|---|---|---|---|
| ccam | 单独的文件夹 | 是 | 是,ccam usage |
你运行 ccam next --auto --continue,在余量最多的账号中继续对话;ccam --fallback 会自动在那里重新运行 -p 任务,ccam pick 把并行任务分散到各个账号 |
Linux、macOS、Windows |
| claude-swap | 替换登录信息;用 cswap run 时使用单独的文件夹 |
是,使用 cswap run |
是 | cswap auto 在达到阈值时切换登录信息;正在运行的会话继续进行 |
Linux、macOS、Windows |
| CCS | 单独的文件夹 | 是 | 部分支持 | 账号池通过本地代理把请求转给下一个账号 | Linux、macOS、Windows |
| clausona | 单独的文件夹 | 是 | 是 | 每次运行前由路由选出还有配额的账号,可以等待重置,并给各个并行任务分配不同的账号 | Linux、macOS、Windows |
| clauth | 替换登录信息;用 clauth start 时使用单独的文件夹 |
是,使用 clauth start |
是 | 沿备用链依次切换 | Linux、macOS、Windows |
| CAAM | 替换登录信息,或使用隔离的配置 | 是,使用隔离的配置 | 是 | caam run 在另一个账号上重试非交互式命令 |
Linux、macOS、Windows |
| cux | 替换登录信息并包装 claude |
否,只有一个活动账号 | 是 | 替换登录信息并恢复同一个对话 | Linux、macOS、Windows |
| CCSwitcher | 替换登录信息 | 否 | 是 | 可选在达到阈值时切换 | macOS |
| Claude Switcher | 替换登录信息 | 否 | 是 | 可选在 100% 时切换 | macOS |
ccswap 是 claude-swap 的一个分支,还能管理 Codex 的登录。claude-account、claude-multiprofile 和 claude-code-profiles 也为每个账号提供单独的文件夹。其中一些工具也支持其他编程代理,例如 Codex 或 Gemini。
各工具的实现
| 工具 | 编写语言 | Claude Code 运行时 | 是否在不同位置之间复制登录信息 | 账号之间可以共享什么 |
|---|---|---|---|---|
| ccam | Go,单个静态二进制文件 | 什么也没有:ccam 用 claude 替换自身(Windows 无法这样做,ccam 会等待它结束) |
否 | 每一项单独设置:每个账号选择本地或某个命名分组 |
| claude-swap | Python 3.12+,用 uv 或 pipx 安装 | 用 cswap run 时什么也没有;cswap auto 和菜单栏应用会持续运行 |
是,在替换登录信息时 | 用 cswap run 时:设置、CLAUDE.md 和扩展一起共享,历史记录可选;MCP 服务器在每次启动时复制 |
| CCS | Node.js 18+ 或 Bun | CCS 作为父进程留着;账号池会加一个本地代理 | 账号文件夹不复制;账号池保存自己的登录信息 | 每个账号选择共享或本地,历史记录按上下文分组;MCP 服务器会被复制 |
| clausona | TypeScript,Node.js 20+ | 直接运行的 claude 经过一个 shell 函数;clausona run 让 Node 作为父进程留着;每次退出后有一个后台 Node 进程 |
否,但它会自行为闲置账号的令牌续期,以读取它们的用量 | 除每个账号自己的文件外,全部来自一个主账号;历史记录可选;用 claude mcp add 添加的服务器不共享 |
| clauth | Rust | clauth 作为父进程留着 | 是,在替换登录信息时 | 整个 ~/.claude,或者什么都不共享 |
| CAAM | Go | 取决于模式;可选的守护进程 | 是,在其保管库模式下 | 由模式决定;MCP 服务器在每次启动时复制 |
| cux | Go | 一个包装器始终包在 claude 外面 |
是 | 全部:只有一个文件夹 |
| CCSwitcher, Claude Switcher | macOS 应用(Swift、Python) | 菜单栏应用 | 是 | 全部:只有一个文件夹 |
ccam 的优势
登录信息留在 Claude Code 存放的位置
ccam 从不把 Claude 的登录信息从一个地方复制到另一个地方。每个账号的登录信息都留在自己的文件夹中,在 macOS 上则留在该文件夹专属的钥匙串项目中,由 Claude Code 负责续期。不存在会失去同步的保存副本。用 ccam import 注册的现有 ~/.claude 继续使用普通 claude 所用的钥匙串项目,所以无论用哪种方式启动,都保持登录。
只有在你运行 ccam usage --refresh 时,ccam 才会自己续期过期的令牌。它会先加锁,并在该账号正在运行时拒绝续期,所以绝不会在活动会话底下轮换令牌。
你和 Claude Code 之间没有任何东西在运行
ccam 读取一个文件,检查它的链接,然后用 claude 替换自身(exec)。你工作时没有 ccam 进程、包装器、代理或守护进程:标准输入、信号和退出码都属于 Claude Code,它的请求直接发往 Anthropic。Windows 无法替换进程,所以在 Windows 上 ccam 用同一个控制台启动 Claude Code,并等待它的退出码,除此之外什么也不做。
以这种方式启动账号大约只多花 4 ms,第 95 百分位低于 6 ms,峰值内存 8 MB(用 hyperfine 运行 scripts/perf-check.sh 300 次)。在同一台笔记本电脑上,仅启动 Python 解释器就要 13 ms,Node.js 要 31 ms,这还是在程序做任何事情之前。
逐项、按账号共享
MCP 服务器、settings.json、CLAUDE.md、扩展(agents、commands、skills、插件)和对话历史是五个独立的项目。每个账号把每一项设为 local 或某个分组,所以两个工作账号可以在 work 分组中共享历史记录,个人账号保留自己的历史记录,而三个账号都使用同样的 MCP 服务器。
- MCP 服务器在启动时通过
--mcp-config传入,所以默认情况下 ccam 从不编辑.claude.json,也就是 Claude Code 运行时会改写的那个文件。ccam mcp add一次就能为整个分组添加一个服务器。 - 其他项目是指向分组文件夹的链接,所以在一个账号中做的修改会立即出现在其他账号中。启动时不复制任何东西。
- 登录信息、
.claude.json和运行状态从不共享。
每项更改都先展示并备份
ccam share 和 ccam migrate 会先打印计划,并在移动任何东西之前征求确认。当某个文件在账号和分组之间不同时,由你选择:保留分组的版本、使用你的版本,或者合并 JSON。原始文件放到 .ccam-backup/<time>/,被移除账号的文件夹放进回收文件夹,文件通过一次重命名完成替换,所以写入中断时旧文件仍然保留。--dry-run 会显示启动、共享、迁移、快捷命令、更新和修复将做什么。ccam doctor --fix 会修复损坏的链接和权限。
在下一个账号中继续同一个对话
共享历史后,ccam next --auto --continue 会同时查询所有账号的用量,打开余量最多的账号并继续对话。何时切换由你决定;ccam 不会在后台监视你的用量。账号用量达到 90% 时,状态栏会提示这个命令。
脚本无法等你操作,所以 ccam --fallback work -p "…" 会替它们切换:当账号达到限制时,同一个命令会以余量最多的账号重新运行,并且只打印最终完成的那次运行的输出。不是用量限制造成的失败会原样传递。对于并行任务,ccam pick 会给每个任务分配一个还有余量的不同账号;当没有账号还有余量时,两者都以退出码 75 退出。
每个文件夹使用合适的账号
ccam folder work ~/code/company 让该文件夹中所有不指定账号名称的启动都使用 work,而你的其他项目继续使用默认账号。这个设置保存在每次启动都会读取的同一个 config.toml 中,所以不会增加任何时间。
单个二进制文件,经过校验的下载
ccam 是一个约 10 MB 的静态二进制文件,无需安装任何运行时,支持 Linux、macOS 和 Windows。安装脚本(install.sh、install.ps1)和 ccam update 会用发布版本的 SHA-256 校验和检查每个下载,ccam 也从不自行检查更新。它没有遥测:它发出的请求只有向 Anthropic 查询你的账号用量(并行,3 秒超时,60 秒缓存),以及你要求的下载。
其他工具做得更多的地方
- claude-swap、clauth、cux、CAAM 和 CCSwitcher 可以在账号超过用量阈值时自行切换正在运行的交互式会话。ccam 用
--fallback切换-p运行,交互式会话则留给你。 - 在未开启开发人员模式的 Windows 上,ccam 可以共享文件夹,但无法共享
settings.json这样的单个文件;claude-swap 和 CCS 在这种情况下会改为复制它们。 - CCSwitcher、Claude Switcher 和 claude-swap 会在 macOS 菜单栏中显示用量。
- CCS、clausona、CAAM、clauth、ccswap 和 Claude Switcher 还能管理 Codex 和其他编程代理。
- clausona 还能按账号开启或关闭扩展(ccam 的
ccam ext只是显示它们),记录本地的令牌费用,并提供在 tmux 等终端中运行一批并行任务的 Claude Code 插件。 - CAAM、CCSwitcher 和 Claude Switcher 可以用 Homebrew 安装,clauth 和 CAAM 会为发布的校验和签名。ccam 通过安装脚本、
.deb或go install安装,校验校验和但没有签名。
哪种适合你?
如果你一次只用一个账号,或者希望正在运行的会话自动切换,选择替换登录信息的工具。如果你想让多个账号并行运行、共用一套配置、在下一个账号中继续同一个对话,并且不希望有任何东西在 Claude Code 旁边运行,无论在 Linux、macOS 还是 Windows 上,都选择 ccam。如果什么都不需要共享,普通的 shell 别名就够了。
是否可以使用多个账号取决于每个账号的条款。使用前请先确认。