# Scegliere un account per gli script

> ccam pick stampa l'account con più margine per uno script, dà account diversi ai worker avviati insieme ed esce con 75 quando nessuno ha margine.

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

`ccam pick` stampa il nome dell'account con login che ha più margine, perché uno script ci avvii Claude Code. I worker avviati nello stesso momento ricevono ciascuno un account diverso finché ci sono abbastanza account con margine, così un gruppo di job `claude -p` si distribuisce sui tuoi account invece di esaurirne uno.

## Utilizzo

```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"
}
```

Codici di uscita: `0` con un nome sullo standard output, `75` (`EX_TEMPFAIL`) quando nessun account ha margine o nessuno ha il login, `1` per gli altri errori, come un'opzione non valida.

## Opzioni

| Opzione | Cosa fa | Predefinito |
| --- | --- | --- |
| `--json` | Stampa l'account, il suo utilizzo su 5 ore e settimanale e la provenienza dei numeri | disattivata |
| `--model <model>` | Conta anche la finestra settimanale di quel modello, come `opus` | nessuno |
| `--max-usage <1-100>` | Preferisce gli account sotto questo utilizzo | `auto_max_usage`, altrimenti 100 |
| `--strategy headroom\|expiring` | L'utilizzo su 5 ore più basso, oppure l'azzeramento su 5 ore più vicino | `auto_strategy`, altrimenti `headroom` |
| `--wait[=<duration>]` | Quando nessun account ha margine, attende l'azzeramento del primo, al massimo per questo tempo | disattivata; `5h` se indicata da sola |
| `--dry-run` | Sceglie senza registrare la scelta | disattivata |

## Come funziona

1. ccam elenca gli account con login (gli account con chiave API non hanno limiti e vengono esclusi).
2. Acquisisce un lock (`~/.local/state/ccam/picks.lock`), così le scelte eseguite nello stesso momento avvengono una dopo l'altra.
3. Consulta l'utilizzo di tutti gli account contemporaneamente, come fa `ccam usage`, con la cache di 60 secondi.
4. Gli account scelti negli ultimi 2 minuti (`~/.local/state/ccam/picks/<name>`) vengono esclusi per primi, e le [regole di scelta](https://ccam.dev/it/features/next.md#auto) di `ccam next --auto` scelgono tra i restanti: prima quelli sotto `auto_max_usage`, secondo la strategia, mai un account al 100%.
5. Se ogni account con margine è stato scelto di recente, le regole scelgono di nuovo tra tutti, così un quarto worker su tre account ne condivide uno.
6. La scelta viene registrata e il lock rilasciato, poi viene stampato il nome.

La finestra di 2 minuti conta perché l'utilizzo di un nuovo job impiega un po' a comparire nei numeri: senza di essa, cinque worker avviati insieme vedrebbero tutti lo stesso account come quello con più margine.

## Sicurezza e casi limite

- `ccam pick` legge solo l'utilizzo e scrive l'ora della scelta; non rinnova né legge mai i token oltre a quanto fa `ccam usage`.
- Una scelta non riserva l'account. Due script possono comunque partire sullo stesso account dopo 2 minuti; usa `--fallback` per recuperare quando quell'account raggiunge il limite.
- L'attesa con `--wait` non tiene alcun lock, quindi nel frattempo le altre scelte proseguono.
- `ccam pick` ignora [`ccam folder`](https://ccam.dev/it/features/folder.md): sceglie solo in base all'utilizzo.

## Pagine correlate

- [Passare all'account successivo](https://ccam.dev/it/features/next.md)
- [Rieseguire al limite](https://ccam.dev/it/features/next.md#run-again-at-the-limit)
- [Limiti di utilizzo](https://ccam.dev/it/features/usage.md)
- [Account con chiave API](https://ccam.dev/it/features/api.md)
