Elegir una cuenta para scripts
Esta página se tradujo automáticamente del inglés. Las correcciones son bienvenidas. Editar esta página en GitHub
ccam pick imprime el nombre de la cuenta con sesión iniciada que tiene más margen, para que un script inicie Claude Code con ella. Los workers iniciados a la vez reciben cada uno una cuenta distinta mientras haya suficientes cuentas con margen, así que un lote de trabajos claude -p se reparte entre tus cuentas en lugar de agotar una sola.
Uso
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"
}Códigos de salida: 0 con un nombre en la salida estándar, 75 (EX_TEMPFAIL) cuando ninguna cuenta tiene margen o ninguna tiene sesión iniciada, 1 para otros errores, como una opción incorrecta.
Opciones
| Opción | Qué hace | Valor predeterminado |
|---|---|---|
--json |
Imprime la cuenta, su uso de 5 horas y semanal, y de dónde salen las cifras | desactivada |
--model <model> |
Cuenta también la ventana semanal de ese modelo, como opus |
ninguno |
--max-usage <1-100> |
Prefiere las cuentas por debajo de este uso | auto_max_usage, si no 100 |
--strategy headroom|expiring |
El menor uso de 5 horas, o el restablecimiento de 5 horas más próximo | auto_strategy, si no headroom |
--wait[=<duration>] |
Cuando ninguna cuenta tiene margen, espera a que se restablezca la primera, como máximo este tiempo | desactivada; 5h si se da sola |
--dry-run |
Elige sin registrar la elección | desactivada |
Cómo funciona
- ccam lista las cuentas con sesión iniciada (las cuentas con clave de API no tienen límites y quedan fuera).
- Toma un bloqueo (
~/.local/state/ccam/picks.lock), así que las elecciones que se ejecutan a la vez ocurren una tras otra. - Consulta el uso de todas las cuentas a la vez, igual que
ccam usage, con la caché de 60 segundos. - Las cuentas elegidas en los últimos 2 minutos (
~/.local/state/ccam/picks/<name>) se dejan fuera primero, y las reglas de elección deccam next --autoeligen entre las demás: primero por debajo deauto_max_usage, según la estrategia, nunca una cuenta al 100 %. - Si todas las cuentas con margen se eligieron hace poco, las reglas vuelven a elegir entre todas, así que un cuarto worker con tres cuentas comparte una.
- La elección se registra y se libera el bloqueo; después se imprime el nombre.
La ventana de 2 minutos importa porque el uso de un trabajo nuevo tarda un rato en aparecer en las cifras: sin ella, cinco workers iniciados a la vez verían todos la misma cuenta como la de más margen.
Seguridad y casos límite
ccam picksolo lee el uso y escribe la hora de la elección; nunca renueva ni lee tokens más allá de lo que haceccam usage.- Una elección no reserva la cuenta. Dos scripts pueden seguir iniciándose en la misma cuenta pasados 2 minutos; usa
--fallbackpara recuperarte cuando esa cuenta llegue a su límite. - Esperar con
--waitno mantiene ningún bloqueo, así que otras elecciones siguen mientras tanto. ccam pickignoraccam folder: elige solo por uso.