# scripts साठी खाते निवडणे

> ccam pick script साठी सर्वाधिक जागा असलेले खाते छापते, एकत्र सुरू झालेल्या workers ना वेगवेगळी खाती देते, आणि जागा नसेल तर 75 ने बाहेर पडते.

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

`ccam pick` सर्वाधिक जागा असलेल्या लॉग इन केलेल्या खात्याचे नाव छापते, जेणेकरून एखादी script त्याने Claude Code सुरू करू शकेल. जागा असलेली खाती पुरेशी असेपर्यंत एकाच वेळी सुरू झालेल्या प्रत्येक worker ला वेगळे खाते मिळते, त्यामुळे `claude -p` jobs चा एक संच एकच खाते संपवण्याऐवजी तुमच्या खात्यांमध्ये विभागला जातो.

## वापर

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

Exit codes: standard output वर नावासह `0`, कोणत्याही खात्यात जागा नसेल किंवा कोणतेही खाते लॉग इन नसेल तर `75` (`EX_TEMPFAIL`), आणि चुकीच्या flag सारख्या इतर त्रुटींसाठी `1`.

## पर्याय

| पर्याय | काय करते | डीफॉल्ट |
| --- | --- | --- |
| `--json` | खाते, त्याचा 5 तासांचा आणि साप्ताहिक वापर, आणि आकडे कुठून आले ते छापा | बंद |
| `--model <model>` | त्या model ची साप्ताहिक window सुद्धा मोजा, जसे `opus` | काहीही नाही |
| `--max-usage <1-100>` | या वापराखालील खात्यांना प्राधान्य द्या | `auto_max_usage`, नाहीतर 100 |
| `--strategy headroom\|expiring` | सर्वात कमी 5 तासांचा वापर, किंवा सर्वात लवकर होणारा 5 तासांचा reset | `auto_strategy`, नाहीतर `headroom` |
| `--wait[=<duration>]` | कोणत्याही खात्यात जागा नसेल तर पहिले खाते reset होण्याची वाट पाहा, जास्तीत जास्त इतका वेळ | बंद; एकटे दिल्यास `5h` |
| `--dry-run` | निवड नोंदवल्याशिवाय निवडा | बंद |

## हे कसे काम करते

1. ccam लॉग इन केलेल्या खात्यांची यादी करते (API key खात्यांना मर्यादा नसते, त्यामुळे ती वगळली जातात).
2. ते एक lock (`~/.local/state/ccam/picks.lock`) घेते, जेणेकरून एकाच वेळी चालणाऱ्या निवडी एकामागून एक होतात.
3. ते प्रत्येक खात्याचा वापर एकाच वेळी विचारते, `ccam usage` प्रमाणेच, 60 सेकंदांच्या cache सह.
4. मागील 2 मिनिटांत निवडलेली खाती (`~/.local/state/ccam/picks/<name>`) आधी वगळली जातात, आणि उरलेल्यांतून `ccam next --auto` चे [निवडीचे नियम](https://ccam.dev/mr/features/next.md#auto) निवडतात: आधी `auto_max_usage` खालची, strategy नुसार, आणि 100% वरचे खाते कधीच नाही.
5. जागा असलेले प्रत्येक खाते नुकतेच निवडले गेले असेल तर नियम पुन्हा त्या सर्वांतून निवडतात, त्यामुळे तीन खात्यांवर चौथा worker एखादे खाते शेअर करतो.
6. निवड नोंदवली जाते आणि lock सोडला जातो, मग नाव छापले जाते.

2 मिनिटांची window महत्त्वाची आहे कारण नवीन job चा वापर आकड्यांमध्ये दिसायला थोडा वेळ लागतो: तिच्याशिवाय एकत्र सुरू झालेले पाच workers सर्वजण एकाच खात्याला सर्वाधिक जागा असलेले खाते म्हणून पाहतील.

## सुरक्षितता आणि अपवादात्मक स्थिती

- `ccam pick` फक्त वापर वाचते आणि निवडीची वेळ लिहिते; `ccam usage` जे करते त्यापलीकडे ते कधीच tokens नूतनीकरण करत नाही किंवा वाचत नाही.
- निवड खाते राखून ठेवत नाही. 2 मिनिटांनंतर दोन scripts तरीही एकाच खात्यावर सुरू होऊ शकतात; ते खाते मर्यादा गाठेल तेव्हा सावरण्यासाठी `--fallback` वापरा.
- `--wait` ने वाट पाहताना कोणताही lock धरला जात नाही, त्यामुळे दरम्यान इतर निवडी चालू राहतात.
- `ccam pick` [`ccam folder`](https://ccam.dev/mr/features/folder.md) कडे दुर्लक्ष करते: ते फक्त वापरावरून निवडते.

## संबंधित

- [पुढच्या खात्यावर जाणे](https://ccam.dev/mr/features/next.md)
- [मर्यादेवर पुन्हा चालवणे](https://ccam.dev/mr/features/next.md#run-again-at-the-limit)
- [वापर मर्यादा](https://ccam.dev/mr/features/usage.md)
- [API key खाती](https://ccam.dev/mr/features/api.md)
