# اختيار حساب للسكربتات

> يطبع ccam pick للسكربت الحساب الذي لديه أكبر هامش، ويعطي العمّال الذين يبدؤون معًا حسابات مختلفة، ويخرج بالرمز 75 عندما لا يتبقى هامش.

Source: https://ccam.dev/ar/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` | يطبع الحساب واستخدامه في نافذتي الخمس ساعات والأسبوع ومصدر الأرقام | معطّل |
| `--model <model>` | يحتسب أيضًا النافذة الأسبوعية لذلك النموذج، مثل `opus` | لا شيء |
| `--max-usage <1-100>` | يفضّل الحسابات التي يقل استخدامها عن هذه القيمة | `auto_max_usage`، وإلا 100 |
| `--strategy headroom\|expiring` | أدنى استخدام في نافذة الخمس ساعات، أو أقرب إعادة ضبط لنافذة الخمس ساعات | `auto_strategy`، وإلا `headroom` |
| `--wait[=<duration>]` | عندما لا يكون لأي حساب هامش، ينتظر حتى يُعاد ضبط أولها، بحد أقصى هذه المدة | معطّل؛ و`5h` عند تحديده وحده |
| `--dry-run` | يختار دون تسجيل الاختيار | معطّل |

## كيف يعمل

1. يسرد ccam الحسابات المسجَّل دخولها (حسابات مفاتيح API ليس لها حدود فتُستبعد).
2. يأخذ قفلًا (`~/.local/state/ccam/picks.lock`)، فتجري عمليات الاختيار المتزامنة واحدة بعد أخرى.
3. يستعلم عن استخدام كل الحسابات في آن واحد، بالطريقة نفسها التي يتبعها `ccam usage`، مع الذاكرة المؤقتة لمدة 60 ثانية.
4. تُستبعد أولًا الحسابات التي اختيرت خلال آخر دقيقتين (`~/.local/state/ccam/picks/<name>`)، وتختار [قواعد الاختيار](https://ccam.dev/ar/features/next.md#auto) الخاصة بـ `ccam next --auto` من بين البقية: ما يقل عن `auto_max_usage` أولًا، وفق الاستراتيجية، ولا تختار أبدًا حسابًا بلغ 100%.
5. إذا كانت كل الحسابات التي لديها هامش قد اختيرت مؤخرًا، تختار القواعد من بينها كلها من جديد، فيتشارك العامل الرابع على ثلاثة حسابات حسابًا مع غيره.
6. يُسجَّل الاختيار ويُحرَّر القفل، ثم يُطبع الاسم.

تهم نافذة الدقيقتين لأن استخدام المهمة الجديدة يحتاج إلى بعض الوقت حتى يظهر في الأرقام: ودونها، سيرى خمسة عمّال بدؤوا معًا الحساب نفسه على أنه صاحب أكبر هامش.

## الأمان والحالات الخاصة

- لا يفعل `ccam pick` إلا قراءة الاستخدام وكتابة وقت الاختيار؛ ولا يجدّد الرموز أبدًا ولا يقرؤها أكثر مما يفعل `ccam usage`.
- الاختيار لا يحجز الحساب. فقد يبدأ سكربتان على الحساب نفسه بعد دقيقتين؛ استخدم `--fallback` للتعافي عندما يبلغ ذلك الحساب حده.
- لا يحتفظ الانتظار مع `--wait` بأي قفل، فتستمر عمليات الاختيار الأخرى في أثنائه.
- يتجاهل `ccam pick` الأمر [`ccam folder`](https://ccam.dev/ar/features/folder.md): فهو يختار حسب الاستخدام فقط.

## صفحات ذات صلة

- [التبديل إلى الحساب التالي](https://ccam.dev/ar/features/next.md)
- [إعادة التشغيل عند بلوغ الحد](https://ccam.dev/ar/features/next.md#run-again-at-the-limit)
- [حدود الاستخدام](https://ccam.dev/ar/features/usage.md)
- [حسابات مفاتيح API](https://ccam.dev/ar/features/api.md)
