# Выбор аккаунта для скриптов

> ccam pick выводит для скрипта аккаунт с наибольшим запасом, даёт одновременно запущенным процессам разные аккаунты и выходит с кодом 75, если запаса нет.

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

`ccam pick` выводит имя аккаунта с входом и наибольшим запасом, чтобы скрипт запустил с ним Claude Code. Рабочие процессы, запущенные одновременно, получают разные аккаунты, пока аккаунтов с запасом хватает, поэтому пакет заданий `claude -p` распределяется по вашим аккаунтам, а не исчерпывает один.

## Использование

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

Коды выхода: `0` с именем в стандартном выводе, `75` (`EX_TEMPFAIL`), когда ни у одного аккаунта нет запаса или ни в одном не выполнен вход, `1` для других ошибок, например неверного флага.

## Параметры

| Параметр | Действие | По умолчанию |
| --- | --- | --- |
| `--json` | Вывести аккаунт, его использование за 5 часов и за неделю и источник данных | выкл. |
| `--model <model>` | Учитывать также недельное окно этой модели, например `opus` | нет |
| `--max-usage <1-100>` | Предпочитать аккаунты ниже этого использования | `auto_max_usage`, иначе 100 |
| `--strategy headroom\|expiring` | Наименьшее использование за 5 часов или ближайший сброс 5-часового окна | `auto_strategy`, иначе `headroom` |
| `--wait[=<duration>]` | Если ни у одного аккаунта нет запаса, ждать сброса первого из них, но не дольше этого времени | выкл.; `5h`, если указан без значения |
| `--dry-run` | Выбрать, не записывая выбор | выкл. |

## Как это работает

1. ccam перечисляет аккаунты с входом (у аккаунтов с ключом API нет лимитов, и они не учитываются).
2. Он берёт блокировку (`~/.local/state/ccam/picks.lock`), поэтому одновременные выборы выполняются по очереди.
3. Он одновременно запрашивает использование всех аккаунтов так же, как `ccam usage`, с кэшем на 60 секунд.
4. Аккаунты, выбранные за последние 2 минуты (`~/.local/state/ccam/picks/<name>`), сначала исключаются, а среди остальных выбирают [правила выбора](https://ccam.dev/ru/features/next.md#auto) `ccam next --auto`: сначала аккаунты ниже `auto_max_usage`, по стратегии, и никогда не аккаунт на 100%.
5. Если все аккаунты с запасом недавно уже выбирались, правила снова выбирают среди всех них, поэтому четвёртый рабочий процесс на трёх аккаунтах делит один из них.
6. Выбор записывается, блокировка снимается, и выводится имя.

Окно в 2 минуты нужно потому, что использование нового задания появляется в данных не сразу: без него пять рабочих процессов, запущенных вместе, все увидели бы один и тот же аккаунт как аккаунт с наибольшим запасом.

## Безопасность и особые случаи

- `ccam pick` только читает использование и записывает время выбора; он никогда не обновляет и не читает токены сверх того, что делает `ccam usage`.
- Выбор не резервирует аккаунт. Через 2 минуты два скрипта всё равно могут запуститься на одном аккаунте; используйте `--fallback`, чтобы продолжить, когда этот аккаунт достигнет лимита.
- Ожидание с `--wait` не держит блокировку, поэтому другие выборы тем временем продолжаются.
- `ccam pick` не учитывает [`ccam folder`](https://ccam.dev/ru/features/folder.md): он выбирает только по использованию.

## См. также

- [Переключение на следующий аккаунт](https://ccam.dev/ru/features/next.md)
- [Повторный запуск при лимите](https://ccam.dev/ru/features/next.md#run-again-at-the-limit)
- [Лимиты использования](https://ccam.dev/ru/features/usage.md)
- [Аккаунты с ключом API](https://ccam.dev/ru/features/api.md)
