מדריך קלוד קוד בעברית

תיעוד 48

הרצת פרומפטים לפי לוח זמנים

השתמשו ב-/loop ובכלי תזמון cron כדי להריץ פרומפטים שוב ושוב, לבדוק סטטוס באופן מחזורי, או להגדיר תזכורות חד פעמיות בתוך הפעלה של Claude Code.

משימות מתוזמנות מאפשרות ל-Claude להריץ מחדש פרומפט באופן אוטומטי במרווח זמן קבוע. השתמשו בהן כדי לבדוק פריסה (deployment) באופן מחזורי, לעקוב מקרוב אחר PR, לחזור ולבדוק תהליך בנייה (build) שנמשך זמן רב, או להזכיר לעצמכם לעשות משהו מאוחר יותר במהלך ההפעלה. כדי להגיב לאירועים בזמן שהם מתרחשים במקום לבצע בדיקה מחזורית (polling), ראו Channels: ה-CI שלכם יכול לדחוף כשל ישירות אל תוך ההפעלה. כדי להשאיר את ההפעלה פועלת תור אחר תור לקראת תנאי מסוים במקום לפי מרווח זמן, ראו /goal.

משימות מוגבלות לתחום ההפעלה (session-scoped): הן מתקיימות בשיחה הנוכחית ומפסיקות כאשר מתחילים שיחה חדשה. חידוש עם --resume או --continue מחזיר כל משימה שלא פג תוקפה: משימה חוזרת שנוצרה במהלך 7 הימים האחרונים, או משימה חד פעמית שמועד התזמון שלה עדיין לא עבר. עבור תזמון ששורד באופן עצמאי ללא תלות בהפעלה כלשהי, השתמשו ב-Routines כדי ליצור שגרה בענן, הגדירו משימה מתוזמנת בשולחן העבודה (Desktop), או השתמשו ב-GitHub Actions.

#השוואת אפשרויות תזמון

Claude Code מציע שלוש דרכים לתזמן עבודה חוזרת או חד פעמית:

CloudDesktop/loop
רץ עלענן, מנוהל על ידי Anthropic כברירת מחדלהמחשב שלכםהמחשב שלכם
דורש שהמחשב יהיה דולקלאכןכן
דורש הפעלה פתוחהלאלאכן
נשמר בין הפעלות מחדשכןכןמשוחזר עם --resume אם לא פג תוקפו
גישה לקבצים מקומייםלא (שכפול נקי, fresh clone)כןכן
שרתי MCPמחברים מוגדרים לכל משימהקובצי הגדרות ומחבריםיורש מההפעלה
בקשות הרשאהלא (רץ באופן עצמאי)ניתן להגדרה לכל משימהיורש מההפעלה
לוח זמנים מותאם אישיתדרך /schedule ב-CLIכןכן
מרווח זמן מינימלישעה אחתדקה אחתדקה אחת

טיפ: השתמשו במשימות ענן עבור עבודה שצריכה לרוץ באופן אמין בלי המחשב שלכם. השתמשו במשימות שולחן עבודה (Desktop) כאשר אתם צריכים גישה לקבצים ולכלים מקומיים. השתמשו ב-/loop עבור בדיקות מחזוריות מהירות במהלך הפעלה.

#הרצת פרומפט שוב ושוב עם /loop

מיומנות האריזה (bundled skill) /loop היא הדרך המהירה ביותר להריץ פרומפט בחזרתיות כל עוד ההפעלה נשארת פתוחה. גם מרווח הזמן וגם הפרומפט הם אופציונליים, ומה שתספקו קובע כיצד הלולאה תתנהג.

מה שאתם מספקיםדוגמהמה קורה
מרווח זמן ופרומפט/loop 5m check the deployהפרומפט שלכם רץ לפי לוח זמנים קבוע
פרומפט בלבד/loop check the deployהפרומפט שלכם רץ במרווח זמן ש-Claude בוחר בכל איטרציה
מרווח זמן בלבד, או כלום/loopפרומפט התחזוקה המובנה רץ, או ה-loop.md שלכם אם קיים כזה

ניתן גם להעביר מיומנות (skill) כפרומפט, למשל /loop 20m /review-pr 1234, כדי להריץ מחדש את אותה מיומנות בכל איטרציה. הפעלה מתוזמנת מריצה אך ורק מיומנויות של-Claude מותר להפעיל בעצמו. הדברים הבאים מגיעים אל Claude כטקסט רגיל במקום להתבצע:

#הרצה במרווח זמן קבוע

כאשר אתם מספקים מרווח זמן, Claude ממיר אותו לביטוי cron, מתזמן את המשימה, ומאשר את הקצב ואת מזהה המשימה (job ID).

/loop 5m check if the deployment finished and tell me what happened

מרווח הזמן יכול להופיע לפני הפרומפט כאיבר בודד כמו 30m, או להופיע בסופו כפסוקית כמו every 2 hours. היחידות הנתמכות הן s לשניות, m לדקות, h לשעות, ו-d לימים.

שניות מעוגלות כלפי מעלה לדקה הקרובה ביותר כיוון של-cron יש רזולוציה של דקה אחת. מרווחי זמן שאינם ממופים לצעד cron נקי, כגון 7m או 90m, מעוגלים למרווח הזמן הקרוב ביותר שמתאים, ו-Claude מציין מה הוא בחר.

#מתן אפשרות ל-Claude לבחור את מרווח הזמן

כאשר משמיטים את מרווח הזמן, Claude בוחר אחד באופן דינמי במקום לרוץ לפי לוח זמנים קבוע של cron. לאחר כל איטרציה הוא בוחר השהיה בין דקה אחת לשעה אחת על סמך מה שראה: המתנות קצרות בזמן שבנייה (build) מסתיימת או ש-PR פעיל, המתנות ארוכות יותר כאשר שום דבר אינו ממתין. ההשהיה שנבחרה והסיבה לה מודפסות בסיום כל איטרציה.

הדוגמה שלהלן בודקת CI והערות סקירה (review comments), כאשר Claude ממתין זמן רב יותר בין איטרציות ברגע שה-PR שקט:

/loop check whether CI passed and address any review comments

בהפעלה שבה הכלי Monitor זמין, Claude עשוי להשתמש בו ישירות כאשר אתם מבקשים תזמון דינמי עבור /loop. הכלי Monitor מריץ סקריפט רקע ומזרים כל שורת פלט בחזרה, מה שמונע לחלוטין בדיקה מחזורית (polling) ולעתים קרובות יעיל יותר בצריכת טוקנים ומגיב מהר יותר מאשר הרצה חוזרת של פרומפט במרווח זמן.

לולאה מתוזמנת באופן דינמי מופיעה ב-רשימת המשימות המתוזמנות שלכם כמו כל משימה אחרת, כך שתוכלו להציג אותה ברשימה או לבטל אותה באותה הדרך. כללי הריצוד (jitter) אינם חלים עליה, אך תפוגת שבעת הימים חלה עליה.

הערה: מרווחי זמן שנבחרים באופן דינמי ו-פרומפט התחזוקה המובנה פועלים בכל ספק, וגם כאשר אחזור דגלי תכונה (feature-flag fetching) כבוי. ב-Amazon Bedrock, ב-Claude Platform ב-AWS, ב-Agent Platform של Google Cloud, וב-Microsoft Foundry, או כאשר האחזור כבוי, שניהם דורשים את Claude Code בגרסה v2.1.248 ומעלה. במקרים אלה, בגרסאות מוקדמות יותר, פרומפט ללא מרווח זמן רץ לפי לוח זמנים קבוע של 10 דקות, ו-/loop ללא פרומפט מדפיס את הודעת השימוש.

#הרצת פרומפט התחזוקה המובנה

כאשר משמיטים את הפרומפט, Claude משתמש בפרומפט תחזוקה מובנה במקום פרומפט שאתם מספקים. בכל איטרציה הוא עובר על הפעולות הבאות, לפי הסדר:

  1. המשך של כל עבודה שלא הושלמה מתוך השיחה
  2. טיפול ב-pull request של הענף הנוכחי: הערות סקירה, הרצות CI שנכשלו, קונפליקטים במיזוג
  3. הרצת סבבי ניקוי כגון חיפוש באגים או פישוט כאשר שום דבר אחר אינו ממתין

Claude אינו מתחיל יוזמות חדשות מחוץ לתחום זה, ופעולות בלתי הפיכות כגון דחיפה (pushing) או מחיקה מתבצעות רק כאשר הן ממשיכות משהו שתמליל השיחה כבר אישר.

/loop

הפקודה /loop ללא תוספות מריצה פרומפט זה במרווח זמן שנבחר באופן דינמי. הוסיפו מרווח זמן, למשל /loop 15m, כדי להריץ אותו לפי לוח זמנים קבוע במקום זאת. כדי להחליף את פרומפט ברירת המחדל בפרומפט משלכם, ראו התאמה אישית של פרומפט ברירת המחדל עם loop.md.

#התאמה אישית של פרומפט ברירת המחדל עם loop.md

צרו קובץ loop.md כדי להחליף את פרומפט התחזוקה המובנה בהוראות משלכם. הוא מגדיר פרומפט ברירת מחדל יחיד עבור /loop ללא תוספות, ולא רשימה של משימות מתוזמנות נפרדות, ו-Claude Code מתעלם ממנו בכל פעם שאתם מספקים פרומפט בשורת הפקודה. כדי לתזמן פרומפטים נוספים לצדו, השתמשו ב-/loop <prompt> או בקשו ישירות מ-Claude.

Claude מחפש את הקובץ בשני מיקומים ומשתמש בראשון שהוא מוצא.

נתיבתחום (Scope)
.claude/loop.mdרמת הפרויקט. מקבל עדיפות כאשר שני הקבצים קיימים.
~/.claude/loop.mdרמת המשתמש. חל בכל פרויקט שאינו מגדיר קובץ משלו.

הקובץ הוא Markdown פשוט ללא מבנה נדרש. כתבו אותו כאילו הקלדתם את הפרומפט של /loop ישירות. הדוגמה הבאה שומרת על ענף גרסה במצב תקין:

Check the `release/next` PR. If CI is red, pull the failing job log,
diagnose, and push a minimal fix. If new review comments have arrived,
address each one and resolve the thread. If everything is green and
quiet, say so in one line.

עריכות ב-loop.md נכנסות לתוקף באיטרציה הבאה, כך שתוכלו לדייק את ההוראות בזמן שלולאה רצה. כאשר לא קיים loop.md באף אחד מהמיקומים, הלולאה חוזרת לפרומפט התחזוקה המובנה. שמרו על הקובץ תמציתי: תוכן מעבר ל-25,000 בתים נחתך.

#עצירת לולאה

כדי לעצור לולאת /loop בקצב עצמאי בזמן שהיא ממתינה לאיטרציה הבאה, לחצו על Esc. פעולה זו מנקה את ההתעוררות הממתינה כך שהלולאה לא תפעל שוב. משימות שתזמנתם על ידי בקשה ישירה מ-Claude אינן מושפעות מ-Esc ונשארות במקומן עד שתמחקו אותן.

במצב קצב עצמאי, Claude יכול גם לסיים את הלולאה בעצמו ברגע שהמשימה הושלמה. Claude קורא לכלי ScheduleWakeup עם stop: true, מה שמבטל את ההתעוררות הממתינה באופן מיידי. אם איטרציה מסתיימת מבלי לתזמן מחדש או לעצור, Claude Code מתזמן התעוררות גיבוי אחת כ-20 דקות לאחר מכן ומסיים את הלולאה כאשר גם אותה איטרציה אינה מתזמנת מחדש.

לולאות במרווח זמן קבוע ממשיכות לרוץ עד שתבטלו אותן כמו כל משימה מתוזמנת אחרת או שחלפו שבעה ימים.

#הגדרת תזכורת חד פעמית

עבור תזכורות חד פעמיות, תארו את מה שאתם רוצים בשפה טבעית במקום להשתמש ב-/loop. Claude מתזמן משימה להפעלה בודדת שמוחקת את עצמה לאחר ההרצה.

remind me at 3pm to push the release branch
in 45 minutes, check whether the integration tests passed

Claude מקבע את זמן ההפעלה לדקה ולשעה ספציפיות באמצעות ביטוי cron ומאשר מתי היא תפעל.

#ניהול משימות מתוזמנות

בקשו מ-Claude בשפה טבעית להציג או לבטל משימות, או התייחסו לכלים שמתחת לפני השטח ישירות.

what scheduled tasks do I have?
cancel the deploy check job

מתחת לפני השטח, Claude משתמש בכלים הבאים:

כלימטרה
CronCreateתזמון משימה חדשה. מקבל ביטוי cron בן 5 שדות, את הפרומפט להרצה, והאם היא חוזרת או מופעלת פעם אחת בלבד.
CronListהצגת כל המשימות המתוזמנות עם המזהים, לוחות הזמנים והפרומפטים שלהן.
CronDeleteביטול משימה לפי מזהה (ID).

לכל משימה מתוזמנת יש מזהה בן 8 תווים שניתן להעביר ל-CronDelete. הפעלה יכולה להכיל עד 50 משימות מתוזמנות בו זמנית.

#כיצד משימות מתוזמנות רצות

המתזמן בודק בכל שנייה אם ישנן משימות שהגיע מועדן ומכניס אותן לתור בעדיפות נמוכה. פרומפט מתוזמן מופעל בין התורות שלכם, ולא בזמן ש-Claude נמצא באמצע מענה. אם Claude עסוק כאשר מגיע מועד המשימה, הפרומפט ממתין עד שהתור הנוכחי מסתיים.

כל הזמנים מפורשים באזור הזמן המקומי שלכם. ביטוי cron כמו 0 9 * * * פירושו השעה 9:00 בבוקר בכל מקום שבו אתם מריצים את Claude Code, ולא UTC.

#ריצוד (Jitter)

כדי למנוע מצב שבו כל הפעלה פונה ל-API באותו רגע בדיוק לפי השעון, המתזמן מוסיף היסט (offset) דטרמיניסטי לזמני ההפעלה:

  • משימות חוזרות מופעלות עד 30 דקות לאחר הזמן המתוזמן (או עד חצי ממרווח הזמן, עבור משימות שרצות בתדירות גבוהה יותר מאשר פעם בשעה). משימה שעתית שמתוזמנת לשעה :00 עשויה לפעול בכל זמן עד :30.
  • משימות חד פעמיות שמתוזמנות לתחילת השעה או לחצי השעה מופעלות עד 90 שניות מוקדם יותר.

ההיסט נגזר ממזהה המשימה, כך שאותה משימה מקבלת תמיד את אותו היסט. אם התזמון המדויק חשוב, בחרו דקה שאינה :00 או :30, לדוגמה 3 9 * * * במקום 0 9 * * *, וריצוד המשימה החד פעמית לא יחול.

#תפוגה של שבעה ימים

משימות חוזרות פגות באופן אוטומטי 7 ימים לאחר יצירתן. המשימה מופעלת פעם אחת אחרונה, ואז מוחקת את עצמה. הדבר מגביל את משך הזמן שלולאה שנשכחה יכולה לרוץ. אם אתם צריכים שמשימה חוזרת תימשך זמן רב יותר, בטלו וצרו אותה מחדש לפני שתפוג, או השתמשו ב-Routines או ב-משימות מתוזמנות בשולחן העבודה עבור תזמון עמיד.

#מדריך ביטויי cron

הכלי CronCreate מקבל ביטויי cron סטנדרטיים של 5 שדות: minute hour day-of-month month day-of-week. כל השדות תומכים בתווים כלליים (*), ערכים בודדים (5), צעדים (*/15), טווחים (1-5), ורשימות מופרדות בפסיקים (1,15,30).

דוגמהמשמעות
*/5 * * * *כל 5 דקות
0 * * * *כל שעה עגולה
7 * * * *כל שעה ב-7 דקות אחרי השעה
0 9 * * *כל יום בשעה 9:00 בבוקר זמן מקומי
0 9 * * 1-5ימי חול בשעה 9:00 בבוקר זמן מקומי
30 14 15 3 *15 במרץ בשעה 14:30 זמן מקומי

יום בשבוע (day-of-week) משתמש ב-0 או 7 עבור יום ראשון ועד 6 עבור יום שבת. תחביר מורחב כמו L, W, ?, וכינויים שמיים כגון MON או JAN אינם נתמכים.

כאשר גם יום בחודש וגם יום בשבוע מוגבלים, תאריך תואם אם אחד מהשדות תואם. זה פועל לפי הסמנטיקה הסטנדרטית של vixie-cron.

#השבתת משימות מתוזמנות

הגדירו את CLAUDE_CODE_DISABLE_CRON=1 בסביבה שלכם כדי להשבית את המתזמן לחלוטין. כלי ה-cron והפקודה /loop הופכים לבלתי זמינים, וכל משימה שכבר תוזמנה מפסיקה לפעול. ראו משתני סביבה עבור הרשימה המלאה של דגלי ההשבתה.

#מגבלות

לתזמון המוגבל לתחום ההפעלה (Session-scoped) יש אילוצים מובנים:

  • משימות מופעלות רק כאשר Claude Code פועל ונמצא במצב לא פעיל (idle). סגירת הטרמינל או מתן אפשרות להפעלה להסתיים עוצרות את הפעלתן. העברת ההפעלה לרקע מעבירה משימות /loop להפעלת רקע, שממשיכה לרוץ ללא טרמינל.
  • אין השלמה של הפעלות שהוחמצו (catch-up). אם זמן התזמון של משימה עובר בזמן ש-Claude עסוק בבקשה ממושכת, היא מופעלת פעם אחת כאשר Claude מתפנה, ולא פעם אחת עבור כל מרווח זמן שהוחמץ.
  • התחלת שיחה חדשה מנקה את כל המשימות שמוגבלות לתחום ההפעלה. חידוש עם claude --resume או claude --continue משחזר משימות חוזרות שטרם פג תוקפן ומשימות חד פעמיות שזמן התזמון שלהן טרם עבר. משימות Bash ברקע ומשימות monitor לעולם אינן משוחזרות בעת חידוש.
  • כאשר אחזור דגלי תכונה כבוי, Claude Code שומר משימה שביקשתם לשמור בין הפעלות בספריית .claude של הפרויקט. כאשר ספרייה זו או קובץ המשימה שבתוכה הם קישור סימבולי (symlink), Claude Code מחזיר שגיאה במקום לתזמן את המשימה.

עבור אוטומציה מונעת cron שצריכה לרוץ ללא השגחה: