قابلیت‌ها

انتخاب حساب برای اسکریپت‌ها

نوشته jhyunwoo
آخرین به‌روزرسانی: ۲۸ مهر ۱۴۰۵
بررسی‌شده با ccam 0.8.0 و Claude Code 2.1.302

این صفحه به‌صورت ماشینی از انگلیسی ترجمه شده است. پیشنهاد اصلاح را با کمال میل می‌پذیریم. ویرایش این صفحه در 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 حساب، مصرف ۵ ساعته و هفتگی آن و منبع عددها را چاپ می‌کند خاموش
--model <model> پنجره هفتگی آن مدل را هم در نظر می‌گیرد، مانند opus هیچ
--max-usage <1-100> حساب‌هایی را که مصرفشان زیر این مقدار است ترجیح می‌دهد auto_max_usage، وگرنه ۱۰۰
--strategy headroom|expiring کمترین مصرف ۵ ساعته، یا زودترین بازنشانی ۵ ساعته auto_strategy، وگرنه headroom
--wait[=<duration>] وقتی هیچ حسابی ظرفیت ندارد، منتظر می‌ماند تا نخستین حساب بازنشانی شود، حداکثر به این مدت خاموش؛ اگر تنها داده شود 5h
--dry-run انتخاب می‌کند بدون آنکه انتخاب را ثبت کند خاموش

سازوکار

  1. ccam حساب‌های واردشده را فهرست می‌کند (حساب‌های کلید API سقفی ندارند و کنار گذاشته می‌شوند).
  2. یک قفل می‌گیرد (~/.local/state/ccam/picks.lock)، تا انتخاب‌هایی که هم‌زمان اجرا می‌شوند یکی پس از دیگری انجام شوند.
  3. مصرف همه حساب‌ها را هم‌زمان می‌پرسد، به همان شکلی که ccam usage می‌پرسد، با حافظه نهان ۶۰ ثانیه‌ای.
  4. ابتدا حساب‌هایی که در ۲ دقیقه گذشته انتخاب شده‌اند (~/.local/state/ccam/picks/<name>) کنار گذاشته می‌شوند و قواعد انتخاب ccam next --auto از میان بقیه انتخاب می‌کنند: ابتدا حساب‌های زیر auto_max_usage، بر اساس راهبرد، و هرگز حسابی که به ۱۰۰٪ رسیده است.
  5. اگر همه حساب‌هایی که ظرفیت دارند به‌تازگی انتخاب شده باشند، قواعد دوباره از میان همه آن‌ها انتخاب می‌کنند، پس کارگر چهارم روی سه حساب، یکی از آن‌ها را با دیگری شریک می‌شود.
  6. انتخاب ثبت و قفل آزاد می‌شود و سپس نام چاپ می‌شود.

پنجره ۲ دقیقه‌ای اهمیت دارد، چون مدتی طول می‌کشد تا مصرف یک کار تازه در عددها دیده شود: بدون آن، پنج کارگری که با هم آغاز شده‌اند همگی یک حساب را حسابی با بیشترین ظرفیت می‌دیدند.

ایمنی و موارد خاص

  • ccam pick فقط مصرف را می‌خواند و زمان انتخاب را می‌نویسد؛ هرگز توکن‌ها را تمدید نمی‌کند و بیش از آنچه ccam usage می‌خواند، آن‌ها را نمی‌خواند.
  • انتخاب، حساب را رزرو نمی‌کند. دو اسکریپت ممکن است پس از ۲ دقیقه باز هم روی یک حساب آغاز شوند؛ برای بازیابی وقتی آن حساب به سقفش می‌رسد از --fallback استفاده کنید.
  • انتظار با --wait هیچ قفلی نگه نمی‌دارد، پس انتخاب‌های دیگر در این مدت ادامه می‌یابند.
  • ccam pick به ccam folder توجهی نمی‌کند: فقط بر اساس مصرف انتخاب می‌کند.