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

תיעוד 74

סקירת מודים

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

מוד הוא תוסף שמשנה איך Claude Code נראה ומתנהג. הוא מורכב ממטפלי אירועים ב-JavaScript או ב-TypeScript: Claude Code קורא לאחד כשמתרחש אירוע, כמו קריאת כלי, פרומפט שנשלח, או חלק מהממשק שמצויר, והמטפל יכול לצפות באירוע, לשנות אותו, או לקחת אותו. השתמשו במוד כדי להוסיף תכונה משלכם ל-Claude Code, כמו חלונית שמשרטטת כמה חלון ההקשר מלא אחרי כל בקשה. לקבצים במוד ולדוגמה מלאה, ראו איך מוד עובד.

[!NOTE]

גם ההוקים הקיימים של Claude Code רצים על אירועים, כפקודת מעטפת, בקשת HTTP, או פרומפט שאתם מגדירים בקובץ הגדרות. המטפלים של מוד הם פונקציות שרצות בתוך Claude Code. Claude Code קורא לשני סוגי ההוקים: בדפים האלה, "הוק" הוא המטפל של מוד, והסוג שבקובץ ההגדרות הוא "הוק הגדרות".

#מה מוד יכול לעשות

הוקי הגדרות, skills, שורות סטטוס ושרתי MCP עובדים מחוץ ל-Claude Code: כל אחד מריץ סקריפט, או נותן ל-Claude טקסט או כלים. מוד רץ בתוך Claude Code, ולכן הוא יכול לעשות דברים שהם לא יכולים:

  • לצייר ממשק שאפשר להשתמש בו: חלונית ליד התמליל או פס מעל הפרומפט, עם לשוניות, כפתורים ושדות טקסט. ראו ציור בממשק.
  • לצייר מחדש את הממשק של Claude Code עצמו: להחליף או לעצב מחדש חלקים ש-Claude Code מצייר בעצמו, כמו שורה של קריאת כלי, הספינר, או תיבת הדו-שיח שבה Claude שואל שאלות. ראו שינוי מה ש-Claude Code כבר מצייר.
  • להיכנס לקריאת כלי או לבקשה: לדוגמה, להחזיק קריאת כלי בזמן שאתם שואלים את המשתמש שאלה, לענות עליה בלי להריץ את הכלי, או לשלוח בקשה אחת למודל אחר. ראו שמירה על קריאת כלי או שינוי שלה ומעקב אחרי תור.
  • להריץ קוד משלכם על פקודה: /command שמריץ את הפונקציה שלכם מיד, בלי תור של Claude, גם בזמן ש-Claude עובד. ראו הוספת פקודה או כלי.
  • לשתף נתונים בין הוקים: ההוקים של מוד חולקים את המשתנים בקובץ שלו, כך שמה שהוק אחד רושם, הוק אחר יכול להציג. לדוגמה, הוק אחד יכול לספור קריאות כלים בזמן שהוק אחר מציג את הספירה ליד הספינר, או אחד יכול לקרוא את שימוש הטוקנים של כל בקשה בזמן שאחר משרטט אותו בחלונית. ראו תגובה לאירועים.

מודים עובדים ב-CLI של Claude Code, בלשונית Code של אפליקציית Claude Desktop, ובתוסף VS Code. ראו איפה מודים רצים לגבי איך הם מתנהגים במקומות אחרים, כמו ב-claude -p ובסשנים בענן. אם הוק הגדרות, skill, או שרת MCP כבר עושה את מה שאתם צריכים, השוו אותם לפני שאתם כותבים מוד. כדי לנהל מודים לארגון, ראו ניהול מודים לארגון שלכם.

#קבלו מוד

כדי להתחיל עם מוד:

#התקנה או עדכון של מוד

[!WARNING]

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

מוד מותקן כתוסף, ממרקטפלייס. תנו את שם התוסף, @, ואת שם המרקטפלייס. הדוגמאות האלה מתקינות תוסף בשם token-chart ממרקטפלייס בשם your-org:

  • בסשן של Claude Code, הריצו /plugin install token-chart@your-org.
  • במעטפת שלכם, הריצו claude plugin install token-chart@your-org.

התקנת תוספים מכסה מרקטפלייסים, היקפים, את התוסף של VS Code ואת אפליקציית Desktop, ושמירה על תוספים מעודכנים, וכל אלה חלים על תוסף שמכיל מוד בלי שינויים.

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

#נסו מוד לדוגמה

Anthropic משתפת מודים לדוגמה בספריית claude-code/mods במאגר claude-code-playground. כל אחד הוא תוסף מלא, וה-README שלו אומר איך הוא נבנה. המאגר משתף אותם כפי שהם, בלי תמיכה.

  • token-weather: מצייר תחזית של חלון ההקשר שלכם מעל הפרומפט
  • blast-radius: מחזיק פקודת מעטפת מסוכנת, כמו rm -rf או force push, ומציג מה היא תשנה, עם כפתורים להמשיך או לבטל
  • replay-theater: מוסיף פקודת /replay שעוברת צעד אחר צעד על עריכות הקבצים ש-Claude עשה בתור האחרון

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

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

כדי להשאיר אחד, הוסיפו את ספריית claude-code/mods של השכפול כמרקטפלייס, ואז התקינו את המוד מ-claude-code-playground-mods. המרקטפלייס מצביע על השכפול שלכם, ולכן המוד מפסיק להיטען אם אתם מזיזים או מוחקים אותו.

#החליטו אם לסמוך על מוד

מוד הוא קוד שרץ עם ההרשאות שלכם, בתוך Claude Code. התקינו מודים רק ממחברים וממרקטפלייסים שאתם סומכים עליהם.

#למה מוד יכול להגיע

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

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

מודים אינם בארגז חול. אם אתם מפעילים ארגז חול, ארגז החול מבודד את פקודות Bash ש-Claude מריץ, ותהליך שמוד מפעיל רץ מחוץ לו.

עם הגדרות מנוהלות או /login של Team או Enterprise כאישור של הסשן, כברירת מחדל אישור של מוד לא מעביר קריאה מעבר לכללי ask שלכם או להוקי PreToolUse. בלי אחד מהם, מוד יכול לאשר קריאה שכלל ask היה מבקש עליה אישור, או שהוק PreToolUse שלכם חסם. כדי לבדוק מתי מוד יכול גם לאשר קריאה שכלל deny מסרב לה, ראו הרחבת הרשאות עם הוקים.

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

#רשמו מה מוד עושה לפני שאתם מתקינים אחד

לפני שאתם מתקינים מוד, אתם יכולים לרשום אילו אירועים הוא מטפל ומה הוא מבקש מ-Claude Code לעשות, כמו לקרוא קובץ או לבצע בקשת רשת, בלי להריץ אותו. קבלו קודם את קבצי התוסף, לדוגמה על ידי שכפול המאגר שלו. אחר כך, במעטפת שלכם, הריצו claude plugin validate על ספריית התוסף:

claude plugin validate ./some-mod

השורות hooks: ו-calls: בפלט מפרטות את האירועים שהמוד מטפל ומה הוא מבקש מ-Claude Code לעשות. סקירה של מה מוד יכול לעשות מציגה את הפלט ואילו קריאות לחפש.

#הפעילו או כבו מודים

מודים מופעלים כברירת מחדל. בטרמינל, השתמשו ב-Claude Code גרסה v2.1.287 או חדשה יותר. אפליקציית Desktop כוללת עותק משלה של Claude Code, ומודים עובדים שם מגרסה v2.1.286. בדקו את הגרסה במקום שבו אתם משתמשים במודים:

  • טרמינל: במעטפת שלכם, הריצו claude --version. אם הגרסה שלכם ישנה יותר, עדכנו את Claude Code.
  • אפליקציית Desktop: בסשן מקומי בלשונית Code, הזינו /status וקראו את שורת Claude Code, שמציגה גרסה כמו 2.1.286. אם הגרסה שלכם ישנה יותר, עדכנו את אפליקציית Desktop.

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

  • מוד אחד: השביתו או הסירו את התוסף שלו מלשונית Installed ב-/plugin
  • כל מוד מותקן, לסשן אחד: הפעילו את Claude Code עם --safe-mode, שמשבית גם את ההתאמות האחרות שלכם
  • כל מוד שהתקנתם, בכל סשן: הגדירו "disableAllHooks": true ב-~/.claude/settings.json. גם הוקי ההגדרות שלכם ושורת הסטטוס המותאמת נעצרים. מה שהארגון שלכם מנהל ממשיך לרוץ.

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

disableAllHooks ו-allowManagedModsOnly של הארגון שלכם עוצרים מוד ומשאירים את שאר התוסף שלו במקום: התוסף נשאר מותקן, וה-skills, הפקודות, הסוכנים ושרתי ה-MCP שלו נטענים. הגדרות ודגלים אחרים מגיעים רחוק יותר. disableAllHooks ומה רץ תחת allowManagedHooksOnly מפרטים מה כל אחד עושה לתוסף ולהוקי ההגדרות שלו.

כדי לברר אם מודים יכולים להיטען אצלכם, ראו בדקו אם מודים יכולים להיטען.

[!NOTE]

אם הגדרתם CLAUDE_CODE_ENABLE_FUNCTION_HOOKS במהלך הגישה המוקדמת, הסירו אותו. Claude Code מגרסה v2.1.287 ואילך מתעלם ממנו, ולכן הגדרה שלו ל-0 לא משאירה מודים כבויים.

#ראו אילו מודים סשן טען

כדי לראות אילו מודים סשן טרמינל טען, הריצו /plugin בפרומפט של Claude Code. שורה עמומה מתחת ללשוניות נותנת את הספירה ואת השמות, כמו 1 mod active · first-mod. אם מוד שהתקנתם לא נקרא שם בשמו, ראו גלו למה מוד לא עושה כלום.

#איך מוד עובד

מוד הוא תוסף שהקוד שלו רושם מטפלי אירועים, שנקראים hooks. Claude Code מריץ hook כשהאירוע שלו קורה, למשל כש Claude קורא לכלי או כשהספינר מצויר. למוד קטן יש שלושה קבצים:

first-mod/
├── .claude-plugin/
│   └── plugin.json
└── hooks/
    ├── hooks.json
    └── register.js

זה register.js שלם. הוא סופר את קריאות הכלים ש Claude מבצע ומציג את הספירה ליד הספינר בזמן ש Claude עובד, כמו ב Thinking · tool calls: 3….

// The count, shared by the two hooks below
let calls = 0

// Claude Code calls this once when the mod loads
export function register(on) {
  // Runs each time Claude is about to use a tool
  on('tool.call', async ($, e, next) => {
    calls += 1
    // Ask Claude Code to draw the interface again, so the new count shows
    $.ui.invalidate('ui.render')
    // Let the tool run as usual
    return next(e)
  })

  // Runs each time Claude Code draws the spinner
  on('ui.render', { component: 'Spinner' }, async ($, e, next) => {
    // Keep Claude Code's spinner, with the count added after its word
    return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })
  })
}

הקובץ רושם שני hooks, ושניהם משתמשים במשתנה calls שבראש:

  • ה hook tool.call רץ בכל פעם ש Claude עומד להשתמש בכלי. הוא מוסיף אחד ל calls, מבקש מ Claude Code לצייר את הממשק שוב, ונותן לכלי לרוץ כרגיל.
  • ה hook ui.render רץ בכל פעם ש Claude Code מצייר את הספינר. הוא שומר את הספינר של Claude Code עצמו ומוסיף את הספירה אחרי המילה.

ההקלטה הזו מראה את המוד בעבודה. הסתכלו על שורת הספינר מעל תיבת הפרומפט: בזמן ש Claude מפרט תיקייה וקורא שני קבצים, היא מציגה Thinking · tool calls: 1…, אחר כך 2…, ואחר כך 3….