很多人手上不止一个 Claude 号。
撞上 5 小时限额,就换一个接着干。
但号一多,问题也跟着来:切完号,开着的窗口好像还在用旧号;某个号突然显示「额度读不到」,以为被封了,其实只是令牌过期,或者两个工具在抢同一个号的令牌。
这篇把我管号用的工具 cswap,从安装到排障整理了一遍。
适合:手上有两个以上 Claude 订阅号、在终端里用 Claude Code 的人。只有一个号、或者走中转和 API 的,只有「看用量」和「排障」两节用得上。
cswap 是开源工具,MIT 协议,作者是 realiti4,不是我做的。
仓库:github.com/realiti4/claude-swap
我把它的源码(v0.25.0)翻了一遍,下面每一步都对着代码核过。
先说一句:切号工具是拿来管号的,不是拿来躲封号的。原因在最后一节。
01|先搞懂:切号切的是什么
Claude Code 的一个「登录」,就是两样东西:
① 钥匙串里的令牌(Linux 上是 ~/.claude/.credentials.json 这个文件)
② ~/.claude.json 里的账号信息
cswap 做的事,就是把每个号的这两样各存一份。要用哪个号,就把哪个换进来。
02|装好,把号收进来
前提:已经装好 Claude Code。下面以 Mac 为例,Linux 基本一样。
① 安装
没装过 uv,先执行 brew install uv,或者用 uv 官方的一行命令 curl -LsSf https://astral.sh/uv/install.sh | sh。用 pipx 的,把下面第一行换成 pipx install claude-swap。
uv tool install claude-swap
cswap --version
提示找不到 cswap 这个命令,就执行 uv tool update-shell,再重开一个终端。
② 收第一个号
打开 Claude Code,输入 /login,在浏览器里登 A 号。登好后退出 Claude Code,在终端执行 cswap add。
③ 收其他号
再打开 Claude Code,/login 换成 B 号,退出后再 cswap add。几个号就重复几次。
④ 检查
执行 cswap list,每个号都显示 5 小时 / 7 天的百分比,就算收好了。
还有两个提醒:
别用
claude setup-token生成的令牌收号。它只有调模型的权限,查不到用量,cswap 会显示usage unavailable,自动轮换也会跳过它。
~/.claude-swap-backup这个目录别同步到网盘,里面是各个号的账号信息。Mac 上令牌主要在钥匙串里;Linux 上令牌也存在这个目录,cswap 用的.enc文件只是 base64 编码,不是加密。
03|切号前,先看一眼用量
cswap list
这是我自己号池的真实输出,邮箱和编号打了码:

这样看:
(active) → 当前在用的号
5h / 7d → 5 小时和 7 天两道限额,后面是已用百分比和重置时间
ahead of pace → 这周用得比时间走得快,比如一周才过去 20%,额度已经用了 40%
· 7m ago → 7 分钟前查到的旧数据,不是刚查的
图里第二个号,7 天用量已经 100%,要等到 10 月 15 日才恢复,这几天别往它身上切。
挑两个数都低的号切过去,快到 90% 的别碰。
这些数是 cswap 拿每个号自己的令牌,去官方用量接口查回来的。别去数本地的会话记录猜用量,桌面端、网页端的消耗不会记在你电脑上。
另外两个顺手的:加 --token-status,能顺带看令牌新不新鲜;不想敲命令,cswap tui 是个终端面板,Mac 上 cswap menubar 能挂到菜单栏。
也别写个循环一直刷 cswap list。这个接口有频率限制,查太勤会回 429,cswap 会自己等:从 30 秒起,每失败一次翻倍,最长等 10 分钟,这段时间显示的是旧数据。
04|按场景选切法

先看对照:
当前号撞墙了 → cswap switch --strategy best
两个号同时干活 → cswap run 3
某个项目固定用一个号 → cswap map 3 ~/my-project
不想管,快满了自动切 → cswap auto
下面一个个说。
场景一:当前号撞墙了,整个换掉
cswap switch --strategy best
自动切到余量最多的号。想指定号用 cswap switch 3,不带号码就轮到下一个。
它会把新号的令牌写进钥匙串,再换掉 ~/.claude.json 里的账号信息,别的配置一个不动。
要注意,开着的窗口不会马上跟着换。Claude Code 会把令牌缓存在内存里,Mac 上大约 30 秒后才重新读。着急就关掉窗口重开。
所以我在 ~/.zshrc 里放了个差不多这样的快捷命令,切号和重开一步做完:
# 切到余量最多的号,再重新打开 claude
ccgo() {
cswap switch --strategy best || return $?
env -u ANTHROPIC_API_KEY \
-u ANTHROPIC_AUTH_TOKEN \
-u CLAUDE_CODE_OAUTH_TOKEN \
claude "$@"
}
撞墙了敲 ccgo 开一个新对话,敲 ccgo -c 接着最近一次的对话。
中间那几行 env -u 是先去掉三个环境变量。只要设了 ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN 或 CLAUDE_CODE_OAUTH_TOKEN,Claude Code 就会直接用它们,不管你登的是哪个号,切了也白切。
场景二:两个号同时干活,一个终端一个号
cswap run 3
只影响这一个终端,全局登录不动(这个功能 cswap 自己标成了实验性)。
原理是给这个终端单独设一个配置目录(CLAUDE_CONFIG_DIR),登录和全局完全分开;你的 settings.json、CLAUDE.md、skills 这些会用软链接带过去,用起来跟平时一样。
接着 3 号最近一次对话 → cswap run 3 -- --continue
从 3 号的历史对话里挑一个 → cswap run 3 -- --resume
-- 后面的参数会原样传给 claude。对话历史默认按号分开存,这样只能接上 3 号自己的;想让几个号共用一份历史,用 cswap run 3 --share-history(Windows 不支持)。
这样一个终端挂 A 号,另一个挂 B 号,互不打架。
场景三:某个项目固定用一个号
cswap map 3 ~/my-project
绑完之后,在项目里直接敲 claude 不会换号。要用 cswap run(不带号码)启动,它才会认出这个目录绑的是 3 号,按场景二的方式打开。
自动挡:快满了自动切
cswap auto
要开一个终端一直挂着它,关掉就不切了。
默认每 60 秒查一次,当前号 5 小时或 7 天的用量过了 90%,就切到余量最多的号;令牌已经刷不动的号会跳过。主力号不想被轮换,用 cswap disable 1 把它拿出来。
05|号「突然死了」?先别删

这个坑我踩过。
有次一个号显示额度读不到,我以为它废了,直接从 cswap 里删了。月底再看,号一直好好的,只是登录令牌过期了。
先记住一件事:Claude 的 refreshToken 只能用一次。
令牌过期后,拿 refreshToken 去换新的,服务器会同时发一个新的 refreshToken,旧的当场作废。
所以同一个号要是同时挂在两个工具上(比如 cswap 加一个 API 代理),谁先刷新,另一边存的那份就废了,看着就像号死了。
照这个顺序查:
① 看令牌
执行 cswap list --token-status。只是过期的话一般不用管:不在用的号,cswap 查用量时会自己刷新;正在用的号,打开 Claude Code 它会自己续上。
② 看日志
grep "Usage fetch failed" ~/.claude-swap-backup/claude-swap.log | tail -5
看每行最后的原因:
timeout → 网络问题,先查代理
http-429 → 查太勤了,等它自己恢复
http-403 → 先等等。我有个号连着一天多都是 403,什么都没动,后来自己好了
http-401 → 接着往下查
③ 查双管
这个号是不是还挂在别的工具、别的电脑上?只留一个管它。
④ 确认是不是被封
cswap 显示 refresh token dead、日志里是 http-401 时,被封和令牌失效几乎一模一样。先打开 claude.ai 登录页,再查注册邮箱。
没被封的话,在 Claude Code 里 /login 重登这个号,再 cswap add,原来的号会原地更新,不会多出一个。
06|最后一条红线:切号换不掉设备编号

~/.claude.json 里还有一个 userID,第一次运行时随机生成,之后一直不变,它就是 Claude Code 的设备编号。
我在本机 2.1.282 版客户端里搜到了上报事件的结构:设备编号 device_id 和账号 account_uuid 在同一条记录里一起发出去。全局切号只换账号信息,这个编号原样保留。
也就是说,同一台电脑上全局轮换过几个号,Anthropic 那边看到的就是:同一台设备,几个账号,轮流在用。
所以我的做法和建议:
我这台电脑现在挂着两个号,就是上面截图里那两个,这个风险我自己认。只有一个主力号的话,就别往同一台电脑上再加号了。
真要同时跑几个号,分机器、分环境,别指望切号工具把你藏起来。
cswap 的价值,是随时知道哪个号还能用、切起来不手忙脚乱,它不是免封工具。
命令清单
这篇是照 v0.25.0 写的,写完的时候它已经出到 0.26.0 了,升级用 cswap upgrade。命令对不上,以作者仓库的说明为准:github.com/realiti4/claude-swap
# 安装(没有 uv 先 brew install uv;找不到命令就 uv tool update-shell)
uv tool install claude-swap
# 加号:先在 Claude Code 里 /login 登好,退出后执行
cswap add
# 看用量
cswap list # 每个号的 5 小时 / 7 天用量
cswap list --token-status # 顺带看令牌状态
# 全局切号
cswap switch --strategy best # 切到余量最多的号
cswap switch 3 # 切到 3 号
cswap switch # 轮到下一个
# 只在当前终端用某个号
cswap run 3
cswap run 3 -- --continue # 接着 3 号最近一次对话
cswap run 3 --share-history # 几个号共用一份对话历史
# 项目绑号:绑完在项目目录里用 cswap run 启动
cswap map 3 ~/my-project
cswap run
# 自动切(要一直开着)
cswap auto
cswap disable 1 # 让 1 号不参与自动轮换
# 排障:看最近的失败原因
grep "Usage fetch failed" ~/.claude-swap-backup/claude-swap.log | tail -5
Anthropic 的风控规则从没公开过,谁也不敢保证照做就一定不封。
工具能帮到的,是把这几个号管顺手;号本身会不会出问题,还是看你自己怎么用。
SOURCE AND VERIFICATION
来源与核验边界
本文只介绍开源工具 cswap 的正常管号用法与排障,核对自其公开源码;不提供账号交易、规避封号或风控绕过的方法。
核验状态:对照 cswap v0.25.0 源码逐条核过安装、切号、用量查询与排障命令,并在本机 macOS + Claude Code 上实际执行;设备编号上报结构在本机 Claude Code 2.1.282 客户端中检索确认;未覆盖 Windows 与 API 中转场景,Anthropic 风控规则未公开、不保证照做不封。,核验日期 2026-10-14。
ONE PRACTICAL NEXT STEP
你的多号是怎么管的
这篇只覆盖 cswap 加 Claude Code 这一种组合。你要是用别的切号方式、或者在 API 中转上管号,把你的做法发我,多几份对照才更站得住。
聊聊你是怎么管几个 Claude 号的


