claude-swap JSON输出深度用法5行脚本搭建自己的配额监控与自动切换【免费下载链接】claude-swapSwitch between multiple Claude Code accounts, with automatic rate-limit rotation, usage dashboard, and parallel sessions项目地址: https://gitcode.com/gh_mirrors/cl/claude-swap claude-swap 是一个免费的 Claude Code 多账号切换器在多个 Claude 账号间无缝轮换、配额即将耗尽时自动切换并提供实时用量看板。它的所有常用命令list/status/switch/auto都支持--json结构化输出——这正是本文的主角。学会它你只需 5 行 jq 脚本就能搭建自己的Claude 配额监控与自动切换流水线。1. 什么是 claude-swap 的 JSON 输出平时cswap list打印的是给人看的彩色表格加上--json后标准输出变成单一、可解析的 JSON 对象人类可读的提示信息改走 stderrstdout 保持纯净cswap list --json # 所有账号 用量/配额 cswap status --json # 当前活跃账号 cswap switch --strategy best --json # 智能切换并回报结果序列化逻辑集中在 json_output.pyCLI 在 cli.py 中统一完成序列化——这保证了输出格式稳定、字段命名camelCase一致可以放心写进自动化脚本。2. JSON 结构速览三个关键命令list --json配额监控的数据源{ schemaVersion: 1, activeAccountNumber: 2, accounts: [ { number: 2, email: youexample.com, active: true, usageStatus: ok, usage: { fiveHour: { pct: 25.0, resetsAt: 2026-06-22T23:29:59Z }, sevenDay: { pct: 16.0, resetsAt: 2026-06-26T17:59:59Z } } } ] }字段含义脚本用途usageStatus用量状态ok/unavailable/token_expired等只信ok行的数字做决策usage.fiveHour.pct/sevenDay.pct5 小时 / 7 天窗口已用百分比触发阈值报警与切换resetsAt窗口重置时间ISO-8601估算还能撑多久usageFetchedAt/usageAgeSeconds这条数字的采集时间与年龄避免用过时数据切换disabled账号被手动移出轮换时出现跳过该账号switch --json/status --jsonswitch --json回报{switched: true, from: …, to: …, reason: …}让你知道切没切、切去哪、为什么status --json给出当前活跃账号的完整行适合写进值班面板。3. 核心实战5 行脚本搭建配额监控 自动切换保存为cswap-watch.sh赋予可执行权限即可依赖 jq 的本地安装即可#!/usr/bin/env bash T85 # 触发阈值% cswap list --json | jq -r --argjson t $T .accounts[] | select(.usageStatusok) | select((.usage.fiveHour.pct//0) $t or (.usage.sevenDay.pct//0) $t) | ⚠️ \(.email) 逼近限额5h\(.usage.fiveHour.pct)% 7d\(.usage.sevenDay.pct)% TARGET$(cswap list --json | jq -r --argjson t $T [.accounts[] | select(.usageStatusok) | select((.usage.fiveHour.pct//0) $t and (.usage.sevenDay.pct//0) $t)] | sort_by(-.usage.fiveHour.pct) | first | .email // empty) [ -n $TARGET ] cswap switch $TARGET --json | jq {switched, to, reason}逐行拆解阈值T85改一个数字就能调整监控灵敏度报警拉取list --json用 jq 筛出 5h/7d 任一窗口超过阈值的账号打印醒目警告选目标在所有双窗口都低于阈值的账号中选 5h 配额剩余最多的一位first.email切换执行cswap switch 邮箱 --json只解析并展示switched/to/reason三个字段安全兜底没有合格目标时TARGET为空[ -n … ]短路脚本静默退出绝不乱切。把它丢进cron或systemd timer每 5 分钟一次就是一个带报警的配额监控 自动切换守护进程也可以直接放在终端里watch -n 30 ./cswap-watch.sh盯着看。 想看图形化的同一份数据运行cswap watch打开 TUI 实时看板即文首配图脚本负责自动看板负责安心。4. 偷懒方案一行cswap auto托管自动切换如果你不需要自定义阈值逻辑claude-swap 内置了自动切换引擎--once专为脚本设计while :; do cswap auto --once --json /dev/null; sleep 300; done它每次唤醒一次引擎达到默认 90% 阈值就自动切到剩余配额最多的账号带冷却时间与滞回机制防止在阈值附近来回抖动。配合--json的事件流每行一个 JSON 事件event有poll/switch/no-switch/all-exhausted等类型与退出码约定你可以轻松做审计日志退出码含义0发生了切换1出错2一切正常无需切换3没有可用目标账号事件流的契约是只增不改新字段新事件随时可能出现脚本应忽略不认识的内容长期稳定运行。5. 错误处理让脚本更健壮JSON 模式下出错同样有规范stdout 输出{schemaVersion: 1, error: {type: …, message: …}}并返回非零退出码。因此脚本里只要记住一条——永远先检查退出码再解析 stdoutif OUT$(cswap list --json 2/dev/null); then echo $OUT | jq … else echo ⚠️ claude-swap 调用失败详见 stderr/日志 fi另外两个实用提醒usageStatus不是ok的行usage可能为null——此时可参考附带的lastGoodUsage上次可用读数做展示但不要拿它驱动切换决策每行都带schemaVersion当前为 1只在破坏性变更时才升级脚本可以放心长期依赖这套字段结构。总结✅ 3 个命令开 JSONcswap list/status/switch --json✅ 核心字段就四个usageStatus、fiveHour.pct、sevenDay.pct、resetsAt✅ 5 行 jq 脚本 阈值报警 智能切换cron 一挂就是 7×24 配额守护 ✅ 想省事cswap auto --once --json一行托管退出码即状态从人肉盯额度到脚本全自动你只差一次--json。【免费下载链接】claude-swapSwitch between multiple Claude Code accounts, with automatic rate-limit rotation, usage dashboard, and parallel sessions项目地址: https://gitcode.com/gh_mirrors/cl/claude-swap创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考