Wybór konta dla skryptów
Ta strona została przetłumaczona maszynowo z angielskiego. Poprawki są mile widziane. Edytuj tę stronę na GitHub
ccam pick wypisuje nazwę zalogowanego konta z największym zapasem, żeby skrypt mógł na nim uruchomić Claude Code. Workery uruchomione w tym samym czasie dostają każdy inne konto, dopóki jest wystarczająco wiele kont z zapasem, więc partia zadań claude -p rozkłada się na twoje konta, zamiast wyczerpywać jedno.
Użycie
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"
}Kody wyjścia: 0 z nazwą na standardowym wyjściu, 75 (EX_TEMPFAIL), gdy żadne konto nie ma zapasu lub żadne nie jest zalogowane, 1 przy innych błędach, takich jak nieprawidłowa opcja.
Opcje
| Opcja | Działanie | Domyślnie |
|---|---|---|
--json |
Wypisuje konto, jego użycie 5-godzinne i tygodniowe oraz źródło liczb | wyłączone |
--model <model> |
Uwzględnia też tygodniowe okno tego modelu, np. opus |
brak |
--max-usage <1-100> |
Preferuje konta poniżej tego użycia | auto_max_usage, w przeciwnym razie 100 |
--strategy headroom|expiring |
Najniższe użycie 5-godzinne albo najbliższy reset okna 5-godzinnego | auto_strategy, w przeciwnym razie headroom |
--wait[=<duration>] |
Gdy żadne konto nie ma zapasu, czeka na reset pierwszego, najwyżej tyle | wyłączone; 5h, gdy podano samą opcję |
--dry-run |
Wybiera bez zapisywania wyboru | wyłączone |
Jak to działa
- ccam wyświetla listę zalogowanych kont (konta z kluczem API nie mają limitów i są pomijane).
- Zakłada blokadę (
~/.local/state/ccam/picks.lock), więc wybory uruchomione w tym samym czasie odbywają się jeden po drugim. - Sprawdza użycie wszystkich kont naraz, tak samo jak
ccam usage, z 60-sekundową pamięcią podręczną. - Konta wybrane w ciągu ostatnich 2 minut (
~/.local/state/ccam/picks/<name>) są najpierw pomijane, a zasady wyboru zccam next --autowybierają spośród pozostałych: najpierw poniżejauto_max_usage, według strategii, nigdy konto na poziomie 100%. - Jeśli każde konto z zapasem zostało niedawno wybrane, zasady wybierają ponownie spośród wszystkich, więc czwarty worker na trzech kontach dzieli jedno z nich.
- Wybór zostaje zapisany, blokada zwolniona, a potem wypisywana jest nazwa.
Okno 2 minut ma znaczenie, bo użycie nowego zadania pojawia się w liczbach z pewnym opóźnieniem: bez niego pięć workerów uruchomionych razem widziałoby to samo konto jako to z największym zapasem.
Bezpieczeństwo i przypadki brzegowe
ccam picktylko odczytuje użycie i zapisuje czas wyboru; nigdy nie odnawia ani nie odczytuje tokenów w większym zakresie niżccam usage.- Wybór nie rezerwuje konta. Dwa skrypty mogą nadal wystartować na tym samym koncie po 2 minutach; użyj
--fallback, żeby przejść dalej, gdy to konto osiągnie limit. - Czekanie z
--waitnie trzyma blokady, więc w tym czasie inne wybory działają dalej. ccam pickignorujeccam folder: wybiera wyłącznie według użycia.