Вибір облікового запису для скриптів
Цю сторінку перекладено з англійської машинним способом. Виправлення вітаються. Редагувати цю сторінку на GitHub
ccam pick виводить назву облікового запису з входом і найбільшим запасом, щоб скрипт запустив із ним Claude Code. Робочі процеси, запущені одночасно, отримують різні облікові записи, поки облікових записів із запасом вистачає, тож пакет завдань claude -p розподіляється між вашими обліковими записами, а не вичерпує один.
Використання
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"
}Коди виходу: 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 |
Вибрати, не записуючи вибір | вимкнено |
Як це працює
- ccam перелічує облікові записи з входом (облікові записи з ключем API не мають лімітів і не враховуються).
- Він бере блокування (
~/.local/state/ccam/picks.lock), тож одночасні вибори виконуються по черзі. - Він одночасно запитує використання всіх облікових записів так само, як
ccam usage, з кешем на 60 секунд. - Облікові записи, вибрані за останні 2 хвилини (
~/.local/state/ccam/picks/<name>), спершу виключаються, а серед решти вибирають правила виборуccam next --auto: спершу облікові записи нижчеauto_max_usage, за стратегією, і ніколи не обліковий запис на 100%. - Якщо всі облікові записи із запасом нещодавно вже вибиралися, правила знову вибирають серед усіх них, тож четвертий робочий процес на трьох облікових записах ділить один із них.
- Вибір записується, блокування знімається, і виводиться назва.
Вікно у 2 хвилини потрібне тому, що використання нового завдання з'являється в числах не одразу: без нього п'ять робочих процесів, запущених разом, усі побачили б той самий обліковий запис як той, де найбільше запасу.
Безпека та граничні випадки
ccam pickлише читає використання й записує час вибору; він ніколи не оновлює й не читає токени понад те, що робитьccam usage.- Вибір не резервує обліковий запис. Через 2 хвилини два скрипти все одно можуть запуститися на одному обліковому записі; використовуйте
--fallback, щоб продовжити, коли цей обліковий запис досягне ліміту. - Очікування з
--waitне тримає блокування, тож інші вибори тим часом тривають. ccam pickне враховуєccam folder: він вибирає лише за використанням.