Funkcje

Wybór konta dla skryptów

Autor: jhyunwoo
Ostatnia aktualizacja: 20 października 2026
Sprawdzono z ccam 0.8.0 i Claude Code 2.1.302

Ta strona została przetłumaczona maszynowo z angielskiego. Poprawki są mile widziane. Edytuj tę stronę na GitHub

Na tej stronie

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

  1. ccam wyświetla listę zalogowanych kont (konta z kluczem API nie mają limitów i są pomijane).
  2. Zakłada blokadę (~/.local/state/ccam/picks.lock), więc wybory uruchomione w tym samym czasie odbywają się jeden po drugim.
  3. Sprawdza użycie wszystkich kont naraz, tak samo jak ccam usage, z 60-sekundową pamięcią podręczną.
  4. Konta wybrane w ciągu ostatnich 2 minut (~/.local/state/ccam/picks/<name>) są najpierw pomijane, a zasady wyboru z ccam next --auto wybierają spośród pozostałych: najpierw poniżej auto_max_usage, według strategii, nigdy konto na poziomie 100%.
  5. 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.
  6. 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 pick tylko 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 --wait nie trzyma blokady, więc w tym czasie inne wybory działają dalej.
  • ccam pick ignoruje ccam folder: wybiera wyłącznie według użycia.