Pagpili ng account para sa mga script
Machine translation mula sa Ingles ang pahinang ito. Malugod naming tinatanggap ang mga pagwawasto. I-edit ang pahinang ito sa GitHub
Ipi-print ng ccam pick ang pangalan ng naka-log in na account na may pinakamaraming natitira, para masimulan ng isang script ang Claude Code gamit ito. Ang mga worker na sabay na sinimulan ay may kanya-kanyang account habang may sapat pang account na may natitira, kaya kumakalat sa mga account mo ang isang batch ng mga claude -p job sa halip na maubos ang iisa.
Paggamit
ccam "$(ccam pick)" -p "fix the failing tests"
for task in parse lint docs; do
ccam "$(ccam pick)" -p "do the $task task" > "$task.json" &
done; wait
ccam pick --json # the account and its usage
ccam pick --model opus # also count the Opus weekly limit
ccam pick --max-usage 80 --strategy expiring
ccam pick --wait=2h # nobody has room: wait for a reset
ccam --fallback "$(ccam pick)" -p "…" # also switch if this account hits its limit mid-job$ ccam pick --json
{
"name": "work",
"slot": 2,
"email": "dev@company.com",
"five_hour": { "percent": 12, "resets_at": "2026-10-20T15:10:00Z", "known": true },
"weekly": { "percent": 41, "resets_at": "2026-10-24T09:00:00Z", "known": true },
"source": "live"
}Mga exit code: 0 na may pangalan sa standard output, 75 (EX_TEMPFAIL) kapag walang account na may natitira o walang naka-log in, 1 para sa ibang error gaya ng maling flag.
Mga option
| Option | Ano ang ginagawa | Default |
|---|---|---|
--json |
I-print ang account, ang 5-oras at lingguhang usage nito, at kung saan galing ang mga numero | off |
--model <model> |
Bilangin din ang lingguhang window ng model na iyon, gaya ng opus |
wala |
--max-usage <1-100> |
Unahin ang mga account na mas mababa sa usage na ito | auto_max_usage, kung wala ay 100 |
--strategy headroom|expiring |
Pinakamababang 5-oras na usage, o ang pinakamalapit na 5-oras na reset | auto_strategy, kung wala ay headroom |
--wait[=<duration>] |
Kapag walang account na may natitira, hintayin ang unang mag-reset, nang hindi hihigit sa tagal na ito | off; 5h kapag ibinigay nang mag-isa |
--dry-run |
Pumili nang hindi itinatala ang pagpili | off |
Paano ito gumagana
- Inililista ng ccam ang mga naka-log in na account (walang limit ang mga API key account at hindi isinasama).
- Kumukuha ito ng lock (
~/.local/state/ccam/picks.lock), kaya isa-isang nangyayari ang mga sabay na pagpili. - Sabay-sabay nitong tinitingnan ang usage ng bawat account, sa parehong paraan ng
ccam usage, gamit ang 60-segundong cache. - Inaalis muna ang mga account na napili sa loob ng huling 2 minuto (
~/.local/state/ccam/picks/<name>), at ang mga patakaran ng pagpili ngccam next --autoang pumipili sa natitira: inuuna ang mas mababa saauto_max_usage, ayon sa strategy, at hindi kailanman ang account na nasa 100%. - Kung kapipili lang ng bawat account na may natitira, pipili ulit ang mga patakaran mula sa lahat ng iyon, kaya magkakahati sa isang account ang ikaapat na worker sa tatlong account.
- Itinatala ang pagpili at binibitawan ang lock, saka ipi-print ang pangalan.
Mahalaga ang 2-minutong window dahil natatagalan bago lumabas sa mga numero ang usage ng bagong job: kung wala ito, makikita ng limang sabay na sinimulang worker ang iisang account bilang may pinakamaraming natitira.
Kaligtasan at mga espesyal na kaso
- Nagbabasa lang ng usage at sumusulat ng oras ng pagpili ang
ccam pick; hindi ito kailanman nagre-renew o nagbabasa ng token nang higit sa ginagawa ngccam usage. - Hindi nirereserba ng pagpili ang account. Puwede pa ring magsimula ang dalawang script sa iisang account pagkalipas ng 2 minuto; gamitin ang
--fallbackpara makabawi kapag naabot ng account na iyon ang limit nito. - Walang hawak na lock ang paghihintay gamit ang
--wait, kaya tuloy ang ibang pagpili habang naghihintay. - Hindi pinapansin ng
ccam pickangccam folder: usage lang ang batayan nito sa pagpili.