# Wybór konta dla skryptów

> ccam pick wypisuje konto z największym zapasem dla skryptu, daje workerom uruchomionym razem różne konta i kończy się kodem 75, gdy żadne nie ma zapasu.

Source: https://ccam.dev/pl/features/pick/ · Updated 2026-10-20

`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

```sh
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
```

```console
$ 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](https://ccam.dev/pl/features/next.md#auto) 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`](https://ccam.dev/pl/features/folder.md): wybiera wyłącznie według użycia.

## Powiązane

- [Przełączanie na następne konto](https://ccam.dev/pl/features/next.md)
- [Ponowienie po osiągnięciu limitu](https://ccam.dev/pl/features/next.md#run-again-at-the-limit)
- [Limity użycia](https://ccam.dev/pl/features/usage.md)
- [Konta z kluczem API](https://ccam.dev/pl/features/api.md)
