cred-keeper × botmux PR #1575
一台机器,多个 Claude 账号
m 个订阅账号,分给 n 个机器人用
以前:所有 bot 挤一个账号
default Max 20x
5 小时用量 0%
⚠ 窗口打满
现在:m 个账号 → n 个 bot
cred-keeper:让凭证一直有效
botmux:每个 bot 选一个账号
cred-keeper:替所有账号刷新凭证
🛡️ 本机常驻服务 LaunchDaemon · 127.0.0.1
⚠ 必须比 CLI 先刷新
如果 CLI 在它那份副本里先刷新,refresh token 会被轮换掉,来源目录里的 token 就作废了。
每次刷新之后:
↻ 写入新凭证→ 运行该账号配置的脚本→ botmux suspend 对应 bot→ 下次冷启动拿到新凭证
通过脚本接入,所以 botmux 之外的其他 agent 框架也能用。
顺便:盯住每个账号的用量
账号5h 用量7d 用量
5 小时窗口(锯齿 = 每 5 小时重置)
需要手工 /login
🔴 09/30 carol 剩 2.4 天
🟢 10/15 alice 剩 18 天
🟢 10/23 bob 剩 26 天
RT 到期前提前提醒
只读 REST 接口
GET /healthzGET /v1/events用量 · 到期
botmux:一个字段指定账号
bots.json
{ "name": "bot3", "sandbox": true, "credentialsSourceDir": "~/accounts/acct-b" }
或在飞书里:/config set credentialsSourceDir <dir>
~/accounts/acct-b/ └─ claude/ ├─ .credentials.json OAuth 凭证 └─ .claude.json 账号信息
🤖 bot3 的沙盒
<BOT_HOME>/claude/
✓ 已拿到 acct-b 的凭证(0600)
📄
每次冷启动复制
• 读文件用 O_NOFOLLOW,写入走临时文件 + rename 原子替换
• 同时对齐 .claude.json 里的账号,删掉 primaryApiKey
• 同一个 bot 的多个会话,用文件锁串行执行
不配置这个字段 = 行为跟现在完全一样
原则:fail-closed,宁可不启动
配成账号 B 的 bot,绝不会悄悄跑在共享账号上
两件事,一个目标:分摊用量
cred-keeper
多个账号的凭证自动续期
5h / 7d 用量监控 + RT 到期提醒
刷新后运行脚本通知 botmux
botmux PR #1575
credentialsSourceDir
每个沙盒 bot 指定一个账号
出问题就拒绝启动,不回退
github.com/xu4wang/cred-keeper
github.com/deepcoldy/botmux/pull/1575
⬇ 下载 mp4
0:00 / 0:00