رفتن به محتوا

اتوماسیونِ کار با routineها

یک routine یک پیکربندیِ ذخیره‌شده‌ی Claude Code است: یک prompt، یک یا چند مخزن، و مجموعه‌ای از connectorها، که یک‌بار بسته‌بندی و خودکار اجرا می‌شوند. Routineها روی زیرساختِ ابریِ مدیریت‌شده‌ی Anthropic اجرا می‌شوند، پس وقتی لپ‌تاپت بسته است هم به کار ادامه می‌دهند.

هر routine می‌تواند یک یا چند trigger به آن متصل داشته باشد:

  • Scheduled: روی یک تناوبِ تکراری مثلِ ساعتی، شبانه، یا هفتگی اجرا می‌شود، یا یک‌بار در یک زمانِ مشخصِ آینده
  • API: با ارسالِ یک HTTP POST به یک endpointِ مخصوصِ هر routine همراه با یک bearer token، به‌محضِ نیاز راه‌اندازی می‌شود
  • GitHub: خودکار در پاسخ به رویدادهای مخزن مثلِ pull request یا release اجرا می‌شود

یک routine واحد می‌تواند triggerها را ترکیب کند. برای مثال، یک routine بازبینیِ PR می‌تواند شبانه اجرا شود، از یک اسکریپتِ deploy راه‌اندازی شود، و همچنین به هر PR جدید واکنش دهد.

Routineها روی پلن‌های Pro، Max، Team، و Enterprise با Claude Code on the web فعال در دسترس‌اند. آن‌ها را در claude.ai/code/routines، یا از CLI با /schedule بساز و مدیریت کن.

adminهای Team و Enterprise می‌توانند routineها را برای همه‌ی اعضا با گزینه‌ی Routines در claude.ai/admin-settings/claude-code غیرفعال کنند. وقتی غیرفعال شود، routineهای موجود از اجرا می‌ایستند و اعضا نمی‌توانند تازه بسازند.

این صفحه ساختنِ یک routine، پیکربندیِ هر نوع trigger، مدیریتِ runها، و نحوه‌ی اعمالِ محدودیت‌های استفاده را پوشش می‌دهد.

هر نمونه یک نوع trigger را با نوعِ کاری که routineها برایش مناسب‌اند جفت می‌کند: بدونِ نظارت، تکرارپذیر، و گره‌خورده به یک نتیجه‌ی روشن.

نگه‌داریِ backlog. یک schedule trigger هر شبِ کاری روی issue tracker تو از طریقِ یک connector اجرا می‌شود. routine issueهای بازشده از آخرین run را می‌خواند، label می‌زند، بر اساسِ بخشی از کد که به آن ارجاع شده مالک تعیین می‌کند، و یک خلاصه به Slack می‌فرستد تا تیم روزش را با یک صفِ مرتب شروع کند.

Triage هشدارها. ابزارِ مانیتورینگت endpointِ API روی routine را وقتی یک آستانه‌ی خطا رد شود فرا می‌خواند و بدنه‌ی هشدار را به‌صورتِ text پاس می‌دهد. routine stack trace را می‌کشد، آن را با کامیت‌های اخیر در مخزن همبسته می‌کند، و یک pull request پیش‌نویس با یک رفعِ پیشنهادی و یک لینکِ برگشت به هشدار باز می‌کند. on-call به‌جای شروع از یک ترمینالِ خالی، PR را بازبینی می‌کند.

بازبینیِ کدِ سفارشی. یک GitHub trigger روی pull_request.opened اجرا می‌شود. routine چک‌لیستِ بازبینیِ مخصوصِ تیمت را اعمال می‌کند، برای مسائلِ امنیت، کارایی، و سبک کامنت‌های inline می‌گذارد، و یک کامنتِ خلاصه اضافه می‌کند تا بازبین‌های انسانی بتوانند به‌جای بررسی‌های مکانیکی روی طراحی تمرکز کنند.

تأییدِ deploy. پایپ‌لاینِ CD تو endpointِ API روی routine را بعد از هر deploy تولید فرا می‌خواند. routine روی بیلدِ جدید smoke check اجرا می‌کند، لاگ‌های خطا را برای regression می‌اسکن می‌کند، و قبل از بسته‌شدنِ پنجره‌ی deploy یک go یا no-go به channelِ release می‌فرستد.

Drift مستندات. یک schedule trigger هفتگی اجرا می‌شود. routine PRهای merge‌شده از آخرین run را اسکن می‌کند، مستنداتی را که به APIهای تغییریافته ارجاع می‌دهند علامت می‌زند، و PRهای به‌روزرسانی روی مخزنِ مستندات برای بازبینیِ یک ویراستار باز می‌کند.

پورتِ کتابخانه. یک GitHub trigger روی pull_request.closed فیلترشده به PRهای merge‌شده در یک مخزنِ SDK اجرا می‌شود. routine تغییر را به یک SDK موازی در زبانی دیگر پورت می‌کند و یک PR منطبق باز می‌کند، تا دو کتابخانه را بدونِ اینکه یک انسان هر تغییر را دوباره پیاده‌سازی کند هم‌گام نگه دارد.

بخش‌های زیر ساختنِ یک routine و پیکربندیِ هر یک از این نوع‌های trigger را قدم‌به‌قدم طی می‌کنند.

یک routine را از وب در claude.ai/code/routines، از اپلیکیشنِ Desktop، یا از CLI بساز. هر سه سطح به همان حسابِ ابری می‌نویسند، پس routineی که در یکی می‌سازی فوراً در بقیه ظاهر می‌شود. در اپلیکیشنِ Desktop، در نوارِ کناری روی Routines کلیک کن، بعد New routine، و Remote را انتخاب کن؛ انتخابِ Local به‌جایش یک Desktop scheduled task می‌سازد، که به‌جای ابر روی ماشینت اجرا می‌شود.

فرمِ ساخت، prompt، مخزن‌ها، محیط، connectorها، و triggerهای routine را راه‌اندازی می‌کند.

Routineها به‌صورتِ خودمختار به‌عنوانِ نشست‌های کاملِ Claude Code ابری اجرا می‌شوند: نه picker permission-mode هست و نه در طولِ یک run درخواستِ تأیید. نشست می‌تواند دستورهای shell اجرا کند، از skillهای کامیت‌شده در مخزنِ clone‌شده استفاده کند، و هر connectorی را که شامل کرده‌ای فرا بخواند. آنچه یک routine می‌تواند به آن برسد با مخزن‌هایی که انتخاب می‌کنی و تنظیمِ branch-push آن‌ها، دسترسیِ شبکه و متغیرهای محیط، و connectorهایی که شامل می‌کنی تعیین می‌شود. هر یک از این‌ها را به آنچه routine واقعاً نیاز دارد محدود کن.

Routineها به حسابِ claude.ai شخصیِ تو تعلق دارند. آن‌ها با هم‌تیمی‌هایت به اشتراک گذاشته نمی‌شوند، و به‌حسابِ سهمیه‌ی runهای روزانه‌ی حسابت محاسبه می‌شوند. هرچه یک routine از طریقِ هویتِ GitHub متصلت یا connectorهایت انجام دهد به‌عنوانِ خودت ظاهر می‌شود: کامیت‌ها و pull requestها کاربرِ GitHub تو را حمل می‌کنند، و پیام‌های Slack، تیکت‌های Linear، یا اکشن‌های دیگرِ connector از حساب‌های متصلت برای آن سرویس‌ها استفاده می‌کنند.

فرمِ ساخت را باز کن

به claude.ai/code/routines برو و روی New routine کلیک کن.

routine را نام‌گذاری کن و prompt را بنویس

یک نامِ توصیفی به routine بده و promptی را که Claude هر بار اجرا می‌کند بنویس. prompt مهم‌ترین بخش است: routine به‌صورتِ خودمختار اجرا می‌شود، پس prompt باید خودبسنده و درباره‌ی اینکه چه باید بکند و موفقیت چه شکلی است صریح باشد.

ورودیِ prompt یک انتخابگرِ مدل دارد. Claude در هر run از مدلِ انتخاب‌شده استفاده می‌کند.

مخزن‌ها را انتخاب کن

یک یا چند مخزنِ GitHub برای کارِ Claude اضافه کن. هر مخزن در شروعِ یک run، از شاخه‌ی پیش‌فرض، clone می‌شود. Claude برای تغییراتش شاخه‌های پیشوندِ claude/ می‌سازد.

یک محیط انتخاب کن

یک محیطِ ابری برای routine انتخاب کن. محیط‌ها کنترل می‌کنند که نشستِ ابری به چه چیزی دسترسی دارد:

  • دسترسیِ شبکه: سطحِ دسترسیِ اینترنتِ موجود در طولِ هر run را تعیین کن
  • متغیرهای محیطی: API keyها، توکن‌ها، یا اسرارِ دیگری که Claude می‌تواند استفاده کند را فراهم کن
  • اسکریپتِ راه‌اندازی: وابستگی‌ها و ابزارهایی که routine نیاز دارد را نصب کن. نتیجه کش می‌شود، پس اسکریپت در هر نشست دوباره اجرا نمی‌شود

یک محیطِ Default با دسترسیِ شبکه‌ی Trusted فراهم شده، که مجموعه‌ی پیش‌فرضِ رجیستری‌های بسته، APIهای ارائه‌دهنده‌ی ابر، رجیستری‌های container، و دامنه‌های توسعه‌ی متداول را مجاز می‌کند، اما باقی همه‌چیز را مسدود می‌کند. اگر routineَت باید به سرویس‌های خودت یا دامنه‌ای بیرونِ آن فهرست برسد، قبل از اجرا دسترسیِ شبکه‌ی محیط را ویرایش کن. برای استفاده از محیطی جدا، ابتدا یکی بساز.

یک trigger انتخاب کن

زیرِ Select a trigger، انتخاب کن که routine چطور شروع شود. می‌توانی یک نوع trigger بگیری یا چند تا را ترکیب کنی.

یک تناوبِ از‌پیش‌تنظیم‌شده برای یک run تکراری انتخاب کن، یا یک run یک‌باره را در یک timestamp مشخص زمان‌بندی کن. برای مدیریتِ منطقه‌ی زمانی، stagger، بازه‌های cron سفارشی، و runهای یک‌باره، افزودنِ یک schedule trigger را ببین.

connectorها و دسترسی‌ها را بازبینی کن

تب‌های Connectors و Permissions در پایینِ فرم کنترل می‌کنند که routine به چه چیزی می‌تواند برسد.

زیرِ Connectors، همه‌ی connectorهای MCP متصلت به‌صورتِ پیش‌فرض شامل می‌شوند. هر کدام را که routine نیاز ندارد حذف کن. Claude می‌تواند از هر ابزارِ یک connectorِ شامل‌شده استفاده کند، از جمله نوشتن‌ها، بدونِ درخواستِ مجوز در طولِ یک run.

زیرِ Permissions، برای هر مخزنی که Claude باید بتواند به شاخه‌های موجود push کند نه فقط شاخه‌های پیشوندِ claude/، گزینه‌ی Allow unrestricted branch pushes را فعال کن.

routine را بساز

روی Create کلیک کن. routine در فهرست ظاهر می‌شود و دفعه‌ی بعد که یکی از triggerهایش تطبیق یابد اجرا می‌شود. برای شروعِ فوریِ یک run، روی صفحه‌ی جزئیاتِ routine روی Run now کلیک کن.

هر run یک نشستِ جدید در کنارِ سایر نشست‌هایت می‌سازد، جایی که می‌توانی ببینی Claude چه کرد، تغییرات را بازبینی کنی، و یک pull request بسازی.

در هر نشستی /schedule را اجرا کن تا یک routine زمان‌بندی‌شده را به‌صورتِ گفت‌وگویی بسازی. می‌توانی یک توضیح را هم مستقیم پاس بدهی، برای یک routine تکراری مثلِ /schedule daily PR review at 9am یا یک یک‌باره مثلِ /schedule clean up feature flag in one week. Claude همان اطلاعاتی را که فرمِ وب جمع می‌کند طی می‌کند، بعد routine را در حسابت ذخیره می‌کند.

/schedule در CLI فقط routineهای زمان‌بندی‌شده می‌سازد. برای افزودنِ یک API یا GitHub trigger، routine را در وب در claude.ai/code/routines ویرایش کن.

CLI مدیریتِ routineهای موجود را هم پشتیبانی می‌کند. /schedule list را اجرا کن تا همه‌ی routineها را ببینی، /schedule update تا یکی را تغییر دهی، یا /schedule run تا فوراً راه‌اندازی‌اش کنی.

یک routine وقتی یکی از triggerهایش تطبیق یابد شروع می‌شود. می‌توانی هر ترکیبی از triggerهای schedule، API، و GitHub را به همان routine متصل کنی، و در هر زمان از بخشِ Select a trigger فرمِ ویرایشِ routine اضافه یا حذف‌شان کنی.

یک schedule trigger، routine را روی یک تناوبِ تکراری اجرا می‌کند، یا یک‌بار در یک زمانِ مشخصِ آینده. در بخشِ Select a trigger یک تناوبِ از‌پیش‌تنظیم‌شده انتخاب کن: ساعتی، روزانه، روزهای کاری، یا هفتگی. زمان‌ها در منطقه‌ی محلی‌ات وارد و خودکار تبدیل می‌شوند، پس routine صرف‌نظر از اینکه زیرساختِ ابری کجا واقع است در آن زمانِ ساعتِ دیواری اجرا می‌شود.

runها ممکن است چند دقیقه بعد از زمانِ زمان‌بندی‌شده به‌خاطرِ stagger شروع شوند. این آفست برای هر routine ثابت است.

برای یک بازه‌ی سفارشی مثلِ هر دو ساعت یا اولِ هر ماه، در فرم نزدیک‌ترین تناوبِ از‌پیش‌تنظیم‌شده را انتخاب کن، بعد در CLI /schedule update را اجرا کن تا یک عبارتِ cron مشخص تنظیم کنی. حداقلِ بازه یک ساعت است؛ عبارت‌هایی که مکررتر اجرا می‌شوند رد می‌شوند.

زمان‌بندیِ یک run یک‌باره

Section titled “زمان‌بندیِ یک run یک‌باره”

یک schedule یک‌باره، routine را یک بار در یک timestamp مشخص شلیک می‌کند. از آن استفاده کن تا بعداً در هفته به خودت یادآوری کنی، یک PR پاک‌سازی را بعد از پایانِ یک rollout باز کنی، یا یک کارِ پیگیری را وقتی یک تغییرِ بالادست فرود آمد کلید بزنی. بعد از اینکه routine شلیک شد، خودکار غیرفعال می‌شود و رابطِ وب آن را Ran علامت می‌زند. برای اجرای دوباره، routine را ویرایش کن و یک زمانِ یک‌باره‌ی جدید تنظیم کن.

یک run یک‌باره را از CLI با توصیفِ زمان به زبانِ طبیعی بساز. Claude عبارت را در برابرِ زمانِ فعلی حل می‌کند و قبل از ذخیره، timestamp مطلق را تأیید می‌کند.

/schedule tomorrow at 9am, summarize yesterday's merged PRs
/schedule in 2 weeks, open a cleanup PR that removes the feature flag

همان تبدیلِ محلی-به-UTC که برای scheduleهای تکراری اعمال می‌شود برای timestampهای یک‌باره هم اعمال می‌شود.

runهای یک‌باره به‌حسابِ سقفِ روزانه‌ی run routine محاسبه نمی‌شوند. آن‌ها مثلِ هر نشستِ دیگری استفاده‌ی اشتراکِ عادیِ پلنت را مصرف می‌کنند. برای جزئیات استفاده و محدودیت‌ها را ببین.

یک API trigger به یک routine یک endpointِ HTTP اختصاصی می‌دهد. POST‌کردن به endpoint با bearer tokenِ routine یک نشستِ جدید شروع می‌کند و یک URL نشست برمی‌گرداند. از این استفاده کن تا Claude Code را به سیستم‌های هشدار، پایپ‌لاین‌های deploy، ابزارهای داخلی، یا هرجا که می‌توانی یک درخواستِ HTTP احرازِ‌هویت‌شده بزنی متصل کنی.

API triggerها از وب به یک routine موجود اضافه می‌شوند. CLI در حالِ حاضر نمی‌تواند توکن بسازد یا باطل کند.

routine را برای ویرایش باز کن

به claude.ai/code/routines برو، روی routineی که می‌خواهی از طریقِ API راه‌اندازی کنی کلیک کن، بعد روی آیکنِ مداد کلیک کن تا Edit routine باز شود.

یک API trigger اضافه کن

به بخشِ Select a trigger زیرِ کادرِ Instructions برو، روی Add another trigger کلیک کن، و API را انتخاب کن.

URL را کپی کن و یک توکن تولید کن

این modal، URL این routine را همراه با یک نمونه‌فرمانِ curl نشان می‌دهد. URL را کپی کن، بعد روی Generate token کلیک کن و توکن را بلافاصله کپی کن. توکن یک‌بار نشان داده می‌شود و بعداً قابلِ بازیابی نیست، پس آن را جایی امن مثلِ secret store ابزارِ هشدارت ذخیره کن.

endpoint را فرا بخوان

وقتی به URL پست می‌کنی، توکن را در هدرِ Authorization: Bearer بفرست. بخشِ راه‌اندازیِ یک routine در پایین یک نمونه‌ی کامل نشان می‌دهد.

هر routine توکنِ خودش را دارد، که فقط به راه‌اندازیِ همان routine محدود است. برای چرخاندن یا باطل‌کردنش، به همان modal برگرد و روی Regenerate یا Revoke کلیک کن.

یک درخواستِ POST به endpointِ /fire با bearer token در هدرِ Authorization بفرست. بدنه‌ی درخواست یک فیلدِ اختیاریِ text برای کانتکستِ مخصوصِ هر run می‌پذیرد، مثلِ بدنه‌ی یک هشدار یا یک لاگِ ناموفق، که در کنارِ promptِ ذخیره‌شده‌ی routine پاس داده می‌شود. مقدار متنِ آزاد است و parse نمی‌شود: اگر JSON یا یک payload ساختاریافته‌ی دیگر بفرستی، routine آن را به‌عنوانِ یک رشته‌ی تحت‌اللفظی دریافت می‌کند.

نمونه‌ی زیر یک routine را از یک shell راه‌اندازی می‌کند:

Terminal window
curl -X POST https://api.anthropic.com/v1/claude_code/routines/trig_01ABCDEFGHJKLMNOPQRSTUVW/fire \
-H "Authorization: Bearer sk-ant-oat01-xxxxx" \
-H "anthropic-beta: experimental-cc-routine-2026-04-01" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{"text": "Sentry alert SEN-4521 fired in prod. Stack trace attached."}'

یک درخواستِ موفق یک بدنه‌ی JSON با شناسه و URL نشستِ جدید برمی‌گرداند:

{
"type": "routine_fire",
"claude_code_session_id": "session_01HJKLMNOPQRSTUVWXYZ",
"claude_code_session_url": "https://claude.ai/code/session_01HJKLMNOPQRSTUVWXYZ"
}

URL نشست را در یک مرورگر باز کن تا run را در زمانِ واقعی تماشا کنی، تغییرات را بازبینی کنی، یا مکالمه را دستی ادامه دهی.

برای مرجعِ کاملِ API، از جمله همه‌ی پاسخ‌های خطا، قواعدِ اعتبارسنجی، و محدودیت‌های فیلد، راه‌اندازیِ یک routine از طریقِ API را در مستنداتِ Claude Platform ببین.

endpointِ /fire فقط برای کاربرانِ claude.ai در دسترس است و بخشی از سطحِ Claude Platform API نیست.

یک GitHub trigger وقتی یک رویدادِ منطبق روی یک مخزنِ متصل رخ دهد خودکار یک نشستِ جدید شروع می‌کند. هر رویدادِ منطبق نشستِ خودش را شروع می‌کند.

GitHub triggerها فقط از رابطِ وب پیکربندی می‌شوند.

routine را برای ویرایش باز کن

به claude.ai/code/routines برو، روی routine کلیک کن، بعد روی آیکنِ مداد کلیک کن تا Edit routine باز شود.

یک GitHub event trigger اضافه کن

به بخشِ Select a trigger برو، روی Add another trigger کلیک کن، و GitHub event را انتخاب کن.

اپلیکیشنِ Claude GitHub را نصب کن

اپلیکیشنِ Claude GitHub باید روی مخزنی که می‌خواهی به آن مشترک شوی نصب باشد. اگر هنوز نصب نیست، راه‌اندازیِ trigger از تو می‌خواهد آن را نصب کنی.

trigger را پیکربندی کن

مخزن را انتخاب کن، یک رویداد از فهرستِ رویدادهای پشتیبانی‌شده انتخاب کن، و اختیاری فیلتر اضافه کن. trigger را ذخیره کن.

رویدادهای پشتیبانی‌شده

Section titled “رویدادهای پشتیبانی‌شده”

GitHub triggerها می‌توانند به هر یک از دسته‌های رویدادِ زیر مشترک شوند. درونِ هر دسته می‌توانی یک اکشنِ مشخص مثلِ pull_request.opened انتخاب کنی، یا به همه‌ی اکشن‌های آن دسته واکنش دهی.

رویدادراه‌اندازی می‌شود وقتی
Pull requestیک PR باز، بسته، assign، label، sync، یا به‌نحوی دیگر به‌روز شود
Releaseیک release ساخته، منتشر، ویرایش، یا حذف شود

از فیلترها استفاده کن تا محدود کنی کدام pull requestها یک نشستِ جدید شروع کنند. همه‌ی شرایطِ فیلتر باید تطبیق یابند تا routine راه‌اندازی شود. فیلدهای فیلترِ در دسترس این‌اند:

فیلترتطبیق می‌یابد با
Authorنامِ کاربریِ GitHub نویسنده‌ی PR
Titleمتنِ عنوانِ PR
Bodyمتنِ توضیحِ PR
Base branchشاخه‌ای که PR هدف می‌گیرد
Head branchشاخه‌ای که PR از آن می‌آید
Labelslabelهای اعمال‌شده روی PR
Is draftاینکه PR در حالتِ draft است یا نه
Is mergedاینکه PR merge شده یا نه

هر فیلتر یک فیلد را با یک عملگر جفت می‌کند: برابر است، شامل است، شروع می‌شود با، یکی از این‌هاست، یکی از این‌ها نیست، یا با regex تطبیق می‌یابد.

عملگرِ matches regex کلِ مقدارِ فیلد را آزمایش می‌کند، نه یک زیررشته درونِ آن. برای تطبیق با هر عنوانی که شاملِ hotfix باشد، .*hotfix.* بنویس. بدونِ آن .* احاطه‌کننده، فیلتر فقط عنوانی را تطبیق می‌دهد که دقیقاً hotfix باشد، بدونِ هیچ‌چیز قبل یا بعدش. برای تطبیقِ تحت‌اللفظیِ زیررشته بدونِ نحوِ regex، به‌جایش از عملگرِ contains استفاده کن.

چند نمونه ترکیبِ فیلتر:

  • بازبینیِ ماژولِ auth: base branch برابرِ main، head branch شاملِ auth-provider. هر PRی را که احرازِ هویت را لمس می‌کند به یک بازبینِ متمرکز می‌فرستد.
  • فقط آماده‌ی بازبینی: is draft برابرِ false. draftها را رد می‌کند تا routine فقط وقتی PR آماده‌ی بازبینی است اجرا شود.
  • backport مشروط به label: labels شاملِ needs-backport. یک routine پورت-به-شاخه‌ی-دیگر را فقط وقتی یک نگه‌دارنده PR را تگ کند راه‌اندازی می‌کند.

نگاشتِ نشست‌ها به رویدادها

Section titled “نگاشتِ نشست‌ها به رویدادها”

هر رویدادِ منطبقِ GitHub یک نشستِ جدید شروع می‌کند. استفاده‌ی مجددِ نشست در میانِ رویدادها برای routineهای راه‌اندازی‌شده با GitHub در دسترس نیست، پس دو به‌روزرسانیِ PR دو نشستِ مستقل تولید می‌کنند.

روی یک routine در فهرست کلیک کن تا صفحه‌ی جزئیاتش باز شود. صفحه‌ی جزئیات مخزن‌ها، connectorها، prompt، schedule، توکن‌های API، GitHub triggerها، و فهرستی از runهای گذشته‌ی routine را نشان می‌دهد.

روی هر run کلیک کن تا به‌عنوانِ یک نشستِ کامل بازش کنی. از آنجا می‌توانی ببینی Claude چه کرد، تغییرات را بازبینی کنی، یک pull request بسازی، یا مکالمه را ادامه دهی. هر نشستِ run مثلِ هر نشستِ دیگری کار می‌کند: از منوی کشویی کنارِ عنوانِ نشست برای تغییرِ نام، آرشیو، یا حذفش استفاده کن.

از صفحه‌ی جزئیاتِ routine می‌توانی:

  • روی Run now کلیک کنی تا یک run را فوراً بدونِ انتظار برای زمانِ زمان‌بندی‌شده‌ی بعدی شروع کنی.
  • از گزینه‌ی بخشِ Repeats استفاده کنی تا schedule را متوقف یا از سر بگیری. routineهای متوقف‌شده پیکربندی‌شان را نگه می‌دارند اما تا وقتی دوباره فعال‌شان کنی اجرا نمی‌شوند.
  • روی آیکنِ مداد کلیک کنی تا Edit routine باز شود و نام، prompt، مخزن‌ها، محیط، connectorها، یا هر یک از triggerهای routine را تغییر دهی. بخشِ Select a trigger جایی است که scheduleها، توکن‌های API، و GitHub event triggerها را اضافه یا حذف می‌کنی.
  • روی آیکنِ حذف کلیک کنی تا routine را حذف کنی. نشست‌های گذشته‌ای که routine ساخته در فهرستِ نشست‌هایت می‌مانند.

مخزن‌ها و مجوزهای شاخه

Section titled “مخزن‌ها و مجوزهای شاخه”

Routineها برای clone‌کردنِ مخزن‌ها به دسترسیِ GitHub نیاز دارند. وقتی یک routine را از CLI با /schedule می‌سازی، Claude بررسی می‌کند که حسابت GitHub متصل دارد یا نه و اگر نداشته باشد از تو می‌خواهد /web-setup را اجرا کنی. برای دو راهِ دادنِ دسترسی، گزینه‌های احرازِ هویتِ GitHub را ببین.

هر مخزنی که اضافه می‌کنی در هر run، clone می‌شود. Claude از شاخه‌ی پیش‌فرضِ مخزن شروع می‌کند مگر اینکه promptت چیزِ دیگری مشخص کند.

به‌صورتِ پیش‌فرض، Claude فقط می‌تواند به شاخه‌های پیشوندِ claude/ push کند. این مانع از تغییرِ تصادفیِ شاخه‌های محافظت‌شده یا بلندعمر توسطِ routineها می‌شود. برای برداشتنِ این محدودیت برای یک مخزنِ خاص، هنگامِ ساخت یا ویرایشِ routine گزینه‌ی Allow unrestricted branch pushes را برای آن مخزن فعال کن.

Routineها می‌توانند از connectorهای MCP متصلت برای خواندن از و نوشتن به سرویس‌های بیرونی در طولِ هر run استفاده کنند. برای مثال، یک routine که درخواست‌های پشتیبانی را triage می‌کند ممکن است از یک channelِ Slack بخواند و در Linear issue بسازد.

connectorها همان integrationهای claude.ai روی حسابت‌اند. سرورهای MCP که به‌صورتِ محلی در CLI با claude mcp add اضافه کرده‌ای روی ماشینت ذخیره می‌شوند نه روی حسابِ claude.ai‌ات، پس در فهرستِ connectorها ظاهر نمی‌شوند. برای استفاده از یکی از آن سرورها در یک routine، آن را به‌عنوانِ یک connector در claude.ai/customize/connectors اضافه کن، یا آن را در یک .mcp.json کامیت‌شده اعلام کن تا بخشی از مخزنِ clone‌شده باشد.

وقتی یک routine می‌سازی، همه‌ی connectorهای متصلِ فعلی‌ات به‌صورتِ پیش‌فرض شامل می‌شوند. هر کدام را که نیاز نیست حذف کن تا محدود کنی Claude در طولِ run به کدام ابزارها دسترسی دارد. همچنین می‌توانی connectorها را مستقیم از فرمِ routine اضافه کنی.

برای مدیریت یا افزودنِ connectorها بیرون از فرمِ routine، در claude.ai به Settings > Connectors برو یا در CLI از /schedule update استفاده کن.

محیط‌ها و دسترسیِ شبکه

Section titled “محیط‌ها و دسترسیِ شبکه”

هر routine در یک محیطِ ابری اجرا می‌شود که دسترسیِ شبکه، متغیرهای محیطی، و اسکریپت‌های راه‌اندازی را کنترل می‌کند. routine سیاستِ شبکه‌ی محیط را در هر run به ارث می‌برد.

محیطِ Default از دسترسیِ شبکه‌ی Trusted استفاده می‌کند: allowlist پیش‌فرضِ رجیستری‌های بسته، APIهای ارائه‌دهنده‌ی ابر، رجیستری‌های container، و دامنه‌های توسعه‌ی متداول قابلِ دسترس‌اند، اما دامنه‌های دلخواه نه. درخواست‌های خروجی به میزبان‌های دیگر با 403 و x-deny-reason: host_not_allowed شکست می‌خورند. ترافیکِ connectorِ MCP از طریقِ سرورهای Anthropic مسیریابی می‌شود، پس connectorهایی که به routine اضافه می‌کنی بدونِ افزودنِ میزبان‌شان به Allowed domains کار می‌کنند. هر connectorی را که نیاز نداری زیرِ connectorها حذف کن.

برای مجازکردنِ دامنه‌های اضافی:

routine را برای ویرایش باز کن

روی صفحه‌ی جزئیاتِ routine، روی آیکنِ مداد کلیک کن تا Edit routine باز شود.

انتخابگرِ محیط را باز کن

زیرِ کادرِ Instructions، آیکنِ ابر را که نامِ محیطت مثلِ Default را نشان می‌دهد انتخاب کن.

تنظیماتِ محیط را باز کن

موس را روی محیط در فهرست نگه دار و روی آیکنِ تنظیمات که در سمتِ راست ظاهر می‌شود کلیک کن.

سطحِ دسترسیِ شبکه را تغییر بده

در دیالوگِ Update cloud environment، Network access را به Custom تغییر بده و دامنه‌هایت را در Allowed domains وارد کن. Also include default list of common package managers را تیک بزن تا allowlist پیش‌فرض در کنارِ دامنه‌های سفارشی‌ات بماند. برای دسترسیِ نامحدود، به‌جایش Full را انتخاب کن.

ذخیره کن

روی Save changes کلیک کن. سیاستِ جدید از run بعدی اعمال می‌شود.

برای جزئیاتِ سطوحِ دسترسی و allowlist پیش‌فرض، دسترسیِ شبکه را ببین.

Routineها استفاده‌ی اشتراک را به همان روشِ نشست‌های تعاملی پایین می‌کشند. علاوه بر محدودیت‌های استانداردِ اشتراک، routineها یک سقفِ روزانه روی تعدادِ runهایی که می‌توانند به‌ازای هر حساب شروع شوند دارند. مصرفِ فعلی و runهای روزانه‌ی باقی‌مانده‌ی routine را در claude.ai/code/routines یا claude.ai/settings/usage ببین.

وقتی یک routine به سقفِ روزانه یا محدودیتِ استفاده‌ی اشتراکت برسد، سازمان‌هایی که usage credits روشن دارند می‌توانند routineها را روی overage متری به اجرا ادامه دهند. بدونِ usage credits، runهای اضافی تا وقتی پنجره بازنشانی شود رد می‌شوند. usage credits را از Settings > Billing در claude.ai روشن کن.

runهای یک‌باره به‌حسابِ سقفِ روزانه‌ی routine محاسبه نمی‌شوند. آن‌ها مثلِ هر نشستِ دیگری استفاده‌ی اشتراکِ عادی‌ات را پایین می‌کشند، اما از سهمیه‌ی روزانه‌ی run routine به‌ازای هر حساب مستثنا هستند.

/schedule پیغامِ «Unknown command» برمی‌گرداند

Section titled “/schedule پیغامِ «Unknown command» برمی‌گرداند”

CLI وقتی یکی از پیش‌نیازهایش برآورده نشود /schedule را پنهان می‌کند. علت معمولاً یکی از این‌هاست:

  • با یک Console API key یا یک ارائه‌دهنده‌ی ابر مثلِ Bedrock، Vertex، یا Foundry احرازِ هویت شده‌ای. /schedule به یک ورودِ اشتراکِ claude.ai نیاز دارد. اگر ANTHROPIC_API_KEY یا ANTHROPIC_AUTH_TOKEN در shellت تنظیم شده، یا apiKeyHelper در settings.json تنظیم شده، ابتدا آن را حذف کن، چون این‌ها بر یک ورودِ claude.ai اولویت دارند
  • DISABLE_TELEMETRY، DO_NOT_TRACK، CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC، یا DISABLE_GROWTHBOOK در محیطِ shellت یا در بلاکِ env یک فایلِ settings.json تنظیم شده. این‌ها واکشیِ feature-flag را غیرفعال می‌کنند، که /schedule به آن وابسته است
  • درونِ یک نشستِ Claude Code on the web هستی. به‌جایش routineها را از رابطِ وب مدیریت کن
  • {/* min-version: 2.1.81 */}CLI تو قدیمی‌تر از v2.1.81 است. claude update را اجرا کن

همیشه می‌توانی routineها را در claude.ai/code/routines بسازی و مدیریت کنی، صرف‌نظر از اینکه CLI چطور پیکربندی شده.

«Routines are disabled by your organization’s policy»

Section titled “«Routines are disabled by your organization’s policy»”

admin Team یا Enterprise تو احتمالاً گزینه‌ی Routines را در claude.ai/admin-settings/claude-code خاموش کرده. این یک تنظیمِ سازمانیِ سمتِ سرور است، پس از پیکربندیِ محلی‌ات قابلِ بازنویسی نیست. با adminت تماس بگیر و درخواست کن routineها برای سازمانت فعال شوند.

  • /loop و زمان‌بندیِ درون‌نشست: کارهای محلی را درونِ یک نشستِ بازِ CLI زمان‌بندی کن
  • Desktop scheduled tasks: کارهای زمان‌بندی‌شده‌ی محلی که با دسترسی به فایل‌های محلی روی ماشینت اجرا می‌شوند
  • محیطِ ابری: محیطِ اجرای نشست‌های ابری را پیکربندی کن
  • connectorهای MCP: سرویس‌های بیرونی مثلِ Slack، Linear، و Google Drive را متصل کن
  • GitHub Actions: Claude را در پایپ‌لاینِ CI‌ات روی رویدادهای مخزن اجرا کن