Claude Code Mods: המדריך לבניית מודים בלי לכתוב קוד

מודים (Mods) הם הדרך לשנות את Claude Code עצמו. מוד יכול להוסיף לו חלונית בצד השיחה, פס מידע מעל שורת ההקלדה או פקודה חדשה. הוא יכול גם לעצור או לשנות פעולה רגע לפני ש-Claude מבצע אותה. לא צריך לכתוב קוד: מתארים ל-Claude מה רוצים והוא בונה את המוד, בודק אותו ומפעיל אותו באותה שיחה.
בניתי ככה שלושה מודים, בטרמינל ובאפליקציה של Claude: פס שמראה כמה ניצלתי מהמכסה של המנוי, מוד שמסתיר מפתחות API לפני ש-Claude רואה אותם ופקודה שפותחת סיכום של הסשן בחלונית צד.
מה זה מוד ב-Claude Code? מוד הוא תוסף (Plugin) של Claude Code שיש בו קובץ קוד קטן. הקוד רץ בתוך Claude Code ומגיב לדברים שקורים בו: Claude עומד להשתמש בכלי, נשלחת בקשה, חלק מהמסך מצויר. כך המוד יכול לצייר ממשק משלו, לשנות פעולה או לעצור אותה. Anthropic השיקה את המודים ב-1 באוקטובר 2026. הם עובדים ב-Claude Code בטרמינל ובלשונית Code של אפליקציית Claude.
איך מוד עובד?
כל מה ש-Claude Code עושה עובר כאירוע: Claude קורא קובץ, מריץ פקודה, מבקש הרשאה, או ש-Claude Code מצייר חלק מהמסך. מוד מתחבר לאירועים שמעניינים אותו. כשאירוע כזה קורה, הוא עובר קודם דרך המודים שמחוברים אליו. רק אחר כך Claude Code מבצע אותו.
- 1
Claude מבקש לקרוא את .env והבקשה יורדת דרך המודים לפי סדר הטעינה.
- 2
Claude Code מריץ את הכלי. התוצאה עולה בחזרה באותה דרך.
- 3
בדרך למעלה hide-keys מחליף את המפתח ב-[hidden]. רק זה מגיע ל-Claude.
- 4
Claude מבקש rm -rf. השומר עונה בעצמו והפקודה לא מגיעה ל-Claude Code.
כל מוד בשרשרת מחליט מה לעשות עם מה שעובר דרכו. הוא יכול לרשום אותו ולתת לו להמשיך כרגיל, לשנות אותו בדרך, או לעצור אותו ולענות במקום Claude Code. כשכמה מודים מחוברים לאותו אירוע, הם רצים לפי הסדר שבו נטענו: הראשון רואה את הבקשה ראשון ואת התוצאה אחרון.
ל-Claude Code כבר היו Hooks, פקודות או סקריפטים שרצים כשאירוע קורה. Hook יכול לעצור קריאה לכלי או לשנות את הקלט והפלט שלה, אבל הוא רץ מחוץ ל-Claude Code. מוד רץ בתוכו. לכן הוא יכול גם לצייר ממשק, להריץ קוד משלו כשמקלידים פקודה ולהחליף חלקים ש-Claude Code מצייר בעצמו. גם חלק מהדברים ש-Claude Code עושה בעצמו בנויים היום כמודים, למשל הפקודה /diff.
איפה מודים עובדים?
| איפה עובדים | הקוד של המוד רץ | מה שהמוד מצייר מופיע |
|---|---|---|
| Claude Code בטרמינל, גם בטרמינל שבתוך עורך קוד | כן | כן |
| לשונית Code באפליקציית Claude, חוץ מסשן WSL | כן | כן |
| חלונית הצ'אט של התוסף ל-VS Code | כן | לא |
claude -p ו-Agent SDK | כן | לא |
| סשנים בענן | חלקית | לא |
בטרמינל צריך Claude Code מגרסה 2.1.287 ומעלה (בודקים עם claude --version). באפליקציה יש עותק משלה של Claude Code. מודים עובדים בו מגרסה 2.1.286. את הגרסה רואים כשמקלידים /status בשיחה מקומית בלשונית Code. אין מה להפעיל: מודים פעילים כברירת מחדל. בסשן בענן רץ רק תוסף שמגיע לסשן עצמו, כך שהמודים שהתקנתם במחשב לא נטענים שם. באפליקציה כמה רכיבי ממשק עובדים רק בטרמינל.
איך בונים מוד בלי לכתוב קוד?
מבקשים מ-Claude. Claude Code מגיע עם סקיל מובנה בשם plugin-authoring, שמלמד את Claude איפה שמים מוד, לאילו אירועים אפשר להתחבר בגרסה שלכם ואיך בודקים אותו. לא צריך להפעיל אותו: Claude טוען אותו לבד כשמבקשים מוד.
מתארים את המוד במילים שלכם
בשיחה בתיקייה של הפרויקט כותבים מה המוד צריך לעשות ואיפה רואים אותו:
תבנה לי מוד בשם recap שמוסיף פקודה /summary. כשאני מקליד אותה, נפתחת חלונית בצד השיחה עם סיכום קצר בעברית של מה שנעשה בסשן הזה עד עכשיו: אילו קבצים נקראו או שונו, מה הוחלט ומה עוד פתוח. הסיכום לא נכנס לשיחה עצמה. בחלונית יש כפתור לרענון הסיכום וכפתור לסגירה.

- הבקשה, בעברית רגילה.
- Claude טוען לבד את הסקיל לבניית מודים.
- הוא קורא את הגדרות הממשק של הגרסה שמותקנת אצלכם, כך שהוא בונה לפיהן ולא לפי מה שהוא זוכר.
מאשרים את הקבצים ואת הטעינה
Claude כותב את המוד לתיקייה של השיחה, בתוך ~/.claude/dev-mods. במצב Manual מאשרים כל קובץ. כשהקובץ הראשון נשמר, Claude Code שואל אם להפעיל hot reloading לשיחה הזו. בוחרים Enable for this session (1). מעכשיו המוד נטען בסוף התור. כל שינוי בו נטען מחדש בסוף התור שבו נעשה.

- Enable for this session מפעיל את המוד בסוף התור. Not now משאיר את הקבצים במקום. המוד ייטען רק בפעם הבאה שהשיחה תיפתח.
- פס המכסה של usage-band, מוד שכבר מותקן בפרויקט.
בודקים ומבקשים תיקונים
לפני שהוא מסיים, Claude בודק את המוד עם claude plugin validate ומתקן מה שהבדיקה מוצאת. כשהתור נגמר המוד פעיל. אם משהו לא נראה כמו שרציתם, כותבים ל-Claude מה לשנות. התיקון נטען בסוף התור, באותה שיחה.
מה עושים כשמוד לא נטען
Claude Code כותב בשיחה שורה עמומה עם שם המוד והסיבה (1). מעתיקים אותה ל-Claude ומבקשים תיקון. זה קורה בעיקר בשיחה שבה Claude לא יכול להריץ פקודות, כי אז הוא לא בודק את המוד לפני שהוא מסיים.

המוד לא נטען, זו השורה שהופיעה: $ is passed to "refresh", which is not a function declared at the top of this file. תתקן.
אם המוד נטען ועדיין לא מצייר כלום, הסיבה מופיעה ביומן של claude --debug. זכרו גם שבחלונית הצ'אט של התוסף ל-VS Code מודים לא מציירים בכלל.
שלושה מודים שבניתי
פס מכסה מעל שורת ההקלדה
usage-bandמחובר ל: תחילת הסשן, סוף כל תור וציור הפס
כמה ניצלתי מחלון 5 השעות ומהמכסה השבועית, בלי להקליד /usage. הפס מתעדכן אחרי כל תשובה ומראה מתי כל מכסה מתאפסת. הוא ירוק עד 50%, צהוב עד 80% ואדום מעל זה. באפליקציה הוא נראה כמו בצילום הקודם. בטרמינל, כך:
תבנה לי מוד שמציג מעל שורת הפרומפט כמה ניצלתי מהמכסה של המנוי: חלון 5 השעות והמכסה השבועית. לכל אחת פס קטן, אחוז ושעת האיפוס. ירוק עד 50%, צהוב עד 80% ואדום מעל זה. הטקסט בפס באנגלית והוא מתעדכן אחרי כל תשובה.

הפס שימושי רק במנוי Pro או Max. כשעובדים עם מפתח API, Claude Code לא מקבל נתוני מכסה ואין לפס מה להציג.
הסתרת מפתחות API מפלט של כלים
hide-keysמחובר ל: כל קריאה לכלי
בתיקייה של הפרויקט יש קובץ .env עם מפתח לשירות המיילים. המוד בודק כל פלט שחוזר מכלי. אם יש בו מפתח, טוקן או ערך מקובץ env, הוא מחליף אותו ב-[hidden] לפני ש-Claude רואה את הפלט.
עכשיו מוד נוסף בשם hide-keys: כשכלי מחזיר פלט, למשל קריאת קובץ או חיפוש בקבצים וכתוב בו מפתח API, טוקן או ערך סודי מקובץ env, המוד מחליף אותו ב-[hidden] לפני שהפלט מגיע אליך. ככה המפתחות שלי לא נכנסים לשיחה. בכל פעם שהוא מסתיר משהו תקפיץ לי הודעה קצרה באנגלית עם מספר הפריטים שהוסתרו.

- Claude רואה את שמות המשתנים, אבל במקום הערכים מגיע אליו
[hidden]. - ההודעה שהמוד מקפיץ בכל הסתרה.
המוד הוא רשת ביטחון. הוא מזהה מפתחות לפי הצורה והשם שלהם. ערך סודי בשם תמים יכול לעבור, למשל כשהקובץ נקרא בפקודת מסוף ולא בכלי הקריאה. כלל deny בהגדרות, כמו Read(./.env), חוסם את כלי הקריאה של Claude ופקודות כמו cat. חסימה מלאה, גם מסקריפטים, דורשת את ה-sandbox של Claude Code.
סיכום הסשן בחלונית צד
recapמחובר ל: הפקודה /summary, תחילת הסשן וציור החלונית
מקלידים /summary ונפתחת חלונית עם מה שנעשה בשיחה, אילו קבצים שונו ונקראו, מה הוחלט ומה עוד פתוח. הסיכום לא נכנס לשיחה: המוד שואל את המודל שאלת צד על התמליל ומציג את התשובה בחלונית. הכפתור רענון (1) מכין סיכום חדש. כל רענון הוא קריאה למודל. לכן הוא נספר במכסה.
החלק "מה עוד פתוח" (2) שימושי במיוחד. הוא אוסף הערות ש-Claude כתב באמצע העבודה ושקל לפספס בגלילה.
הבקשה למוד הזה היא הדוגמה משלב 1.

איך שומרים מוד לשיחות הבאות?
מוד ש-Claude בנה נטען רק בשיחה שבה נבנה. אחרי תקופה Claude Code גם מוחק את התיקייה שלו (לפי ההגדרה cleanupPeriodDays). כדי לשמור אותו, מעתיקים את תיקיית המוד מ-~/.claude/dev-mods/<מזהה השיחה>/ לתיקייה קבועה. אני העתקתי את שלושת המודים ל-C:\work\mods, הוספתי לידם קובץ .claude-plugin/marketplace.json קצר שמפרט אותם והתקנתי אותם לפרויקט:
claude plugin marketplace add C:\work\mods --scope project
claude plugin install usage-band@my-mods --scope project
claude plugin install hide-keys@my-mods --scope project
claude plugin install recap@my-mods --scope projectההתקנה עם --scope project רושמת את המודים בהגדרות של הפרויקט. לכן הם נטענים בכל שיחה בתיקייה הזו (בטרמינל ובאפליקציה) ולא בפרויקטים אחרים. כדי שייטענו בכל מקום משתמשים ב---scope user. אם הפרויקט משותף ב-git והמודים בתיקייה מקומית, --scope local רושם אותם רק אצלכם. לניסיון חד-פעמי מספיק claude --plugin-dir ואחריו הנתיב לתיקיית המוד. כשמתקינים בטרמינל בזמן ששיחה פתוחה, מקלידים בה /reload-plugins כדי שהמוד ייטען. באפליקציה הפקודה /plugin install לא זמינה. שם מתקינים מהכפתור + שליד שורת ההקלדה, דרך Plugins ואז Add plugin.

- השורה שמונה את המודים שפעילים בשיחה.
- ההיקף שבו הם הותקנו, כאן הפרויקט.
כדי לשתף מוד, מעלים את התיקייה למאגר ב-GitHub עם קובץ ה-marketplace. מי שרוצה להשתמש בו מוסיף את המאגר עם /plugin marketplace add ומתקין עם /plugin install. אפשר גם להגיש אותו לספריית התוספים של Claude.
איך מכבים מוד?
- מוד אחד: ב-
/plugin, בלשונית Installed, מכבים אותו או מסירים. באפליקציה עושים את זה מהכפתור + שליד שורת ההקלדה, דרך Plugins ואז Manage plugins. - כל המודים שהתקנתם, לשיחה אחת: מפעילים את Claude Code עם
claude --safe-mode. זה מכבה גם התאמות אישיות אחרות. - כל המודים שהתקנתם, בכל השיחות: מוסיפים
"disableAllHooks": trueלקובץ~/.claude/settings.json. זה עוצר גם Hooks רגילים ושורת סטטוס מותאמת.
--safe-mode ו-disableAllHooks לא עוצרים את המודים המובנים של Claude Code. אותם מכבים אחד אחד ב-/plugin, חוץ מ-sec-default שאי אפשר לכבות.
מה בודקים לפני שמתקינים מוד של מישהו אחר?
מוד רץ עם ההרשאות שלכם ואין סביבו ארגז חול. לכן מתקינים רק מוד ממקור שסומכים עליו, כמו כל תוכנה. לפי התיעוד, מוד שנטען יכול:
- לקרוא ולכתוב קבצים בכל מקום שהמשתמש שלכם יכול, להפעיל תוכנות ולגשת לרשת.
- לקרוא משתני סביבה וקובצי הגדרות, כולל מפתחות API שנמצאים בהם.
- לראות כל בקשה שלכם וכל פעולה של Claude.
- לשנות בקשה או פעולה ואפילו לשלוח בקשה כאילו הקלדתם אותה.
- לאשר פעולה בלי לשאול אתכם.
- להשתמש במכסה שלכם בקריאות למודל.
ה-sandboxing של Claude Code מבודד רק את הפקודות ש-Claude מריץ. תהליך שמוד מפעיל רץ מחוצה לו. מנגד, מוד לא יכול לשנות את חלון בקשת ההרשאה ואת מה שמוצג בו.
רואים מה מוד עושה בלי להריץ אותו
הפקודה claude plugin validate קוראת את הקוד של מוד בלי להריץ אותו. היא מפרטת לאילו אירועים הוא מחובר ומה הוא מבקש מ-Claude Code לעשות. מורידים את התיקייה של המוד (למשל עם git clone) ומריצים עליה:
claude plugin validate ./hide-keys
בשורה hooks רואים שהמוד מחובר רק לקריאות לכלים. השורה calls מראה שכל מה שהוא מבקש מ-Claude Code הוא להקפיץ הודעה, בלי גישה לקבצים, לרשת או לתהליכים. מוד שמבקש יותר יפרט את זה כאן. השורה האמצעית מסמנת hook שיכול לעצור או לשנות פעולה ואין לו .catch. לפי התיעוד, אם hook כזה נופל אחרי שהכלי רץ, התוצאה המקורית ממשיכה הלאה. אצל hide-keys זה אומר שהמפתח יגיע ל-Claude. לכן כדאי לבקש מ-Claude להוסיף .catch שעונה במקום ה-hook כשהוא נופל.
בתוכניות Team ו-Enterprise ובכל מחשב עם הגדרות מנוהלות, Claude Code טוען מוד מובנה בשם sec-default לפני כל מוד שהמשתמש התקין. הוא לא נותן למוד לאשר פעולה שכלל deny דוחה ולא לשנות את מה שהארגון מנהל. מנהלים יכולים לטעון לפניו מודים משלהם ולקבוע מאילו מאגרים מותר להתקין תוספים.
מודים מוכנים להתחלה
Anthropic מפרסמת שלושה מודים לדוגמה במאגר claude-code-playground, כל אחד עם הסבר איך נבנה. הם משותפים כמו שהם, בלי תמיכה:
token-weatherתחזית מזג אוויר לחלון ההקשר מעל שורת ההקלדה, עם גרף קטן של התורים האחרונים.blast-radiusעוצר פקודה מסוכנת כמוrm -rfאו force push, מראה מה היא תשנה ומחכה ל-Proceed או ל-Cancel.replay-theaterפקודה/replayשעוברת על העריכות שנעשו בתור האחרון, אחת אחת.
git clone https://github.com/anthropics/claude-code-playground.git
cd claude-code-playground/claude-code/mods
claude --plugin-dir ./token-weatherגם בתוך Claude Code יש מודים מובנים. הם רשומים ב-/plugin תחת Built-in. בין השאר: הפקודה /diff, הטעינה של קובצי AGENTS.md והסקיל לבניית מודים. אחד מהם כבוי כברירת מחדל ושווה להכיר: cc-plugin-you-should-know, סוכן צד שעוקב אחרי משימות ארוכות ומציג מעל שורת ההקלדה הערה כשיש משהו שכדאי לדעת. אם הוא זמין בחשבון שלכם, מפעילים אותו עם /plugin enable cc-plugin-you-should-know@builtin.
מוד, Hook, סקיל או MCP: מה מתאים לכם?
ארבעתם מרחיבים את Claude Code, כל אחד בדרך אחרת. אם סקיל או Hook שכבר קיים עושה את מה שצריך, אין סיבה לבנות מוד.
| מה זה | מצייר בממשק | מתי בוחרים בו | |
|---|---|---|---|
| מוד | קוד שרץ בתוך Claude Code ומגיב לאירועים | כן | כשרוצים חלונית, פס, פקודה משלכם או לשנות פעולה בדרך |
| Hook בהגדרות | פקודה, בקשת HTTP או פרומפט שרצים כשאירוע קורה | לא | כשרוצים לחסום, לאשר או לרשום פעולה עם סקריפט שכבר יש לכם |
| סקיל | קובץ הוראות ש-Claude קורא | לא | כשמדביקים שוב ושוב את אותן הוראות |
| שרת MCP | שירות חיצוני שנותן ל-Claude כלים | לא | כש-Claude צריך גישה למערכת אחרת (המדריך לחיבור) |
שאלות נפוצות
מה ההבדל בין מוד ל-Hook?
Hook הוא פקודה או סקריפט ש-Claude Code מריץ כשאירוע קורה. הוא יכול לחסום או לאשר פעולה, לשנות את הקלט והפלט של קריאה לכלי ולהוסיף מידע ל-Claude. מוד רץ בתוך Claude Code לאורך כל השיחה: הוא יכול גם לצייר ממשק, להריץ קוד משלו כשמקלידים פקודה ולהחליף יכולת מובנית.
צריך לדעת לתכנת כדי לבנות מוד?
לא. מתארים ל-Claude מה רוצים והוא כותב את הקוד ב-JavaScript או ב-TypeScript, בודק אותו ומפעיל אותו. Claude Code מגיע עם סקיל מובנה שמלמד את Claude לבנות מודים לפי הגרסה שמותקנת אצלכם.
מודים עובדים באפליקציה של Claude?
כן, בלשונית Code, מגרסה 2.1.286 של Claude Code שבתוך האפליקציה. אפשר לבקש שם מוד באותה דרך. מוד שהותקן לפרויקט או למשתמש נטען גם בשיחות של האפליקציה. באפליקציה מתקינים תוספים מהכפתור + שליד שורת ההקלדה, דרך Plugins ואז Add plugin. בסשן WSL מודים לא רצים.
מוד יכול להזיק למחשב?
מוד רץ עם ההרשאות שלכם ואין סביבו ארגז חול. הוא יכול לקרוא קבצים וסודות, להפעיל תוכנות ולאשר פעולות. לכן מתקינים רק ממקור מוכר. לפני ההתקנה מריצים claude plugin validate ורואים לאילו אירועים הוא מחובר ומה הוא מבקש לעשות.
איך מכבים מוד?
מוד אחד מכבים ב-/plugin, בלשונית Installed. באפליקציה: הכפתור +, Plugins ואז Manage plugins. לשיחה אחת בלי המודים שהתקנתם מפעילים claude --safe-mode. כדי לכבות אותם בכל השיחות מוסיפים "disableAllHooks": true לקובץ ההגדרות.
למה המוד שלי לא מופיע?
בודקים קודם את הגרסה (2.1.287 בטרמינל), שהתיקייה מסומנת כתיקייה שסומכים עליה ושבחרתם Enable for this session. אם מוד שבניתם בשיחה לא נטען, Claude Code כותב בה שורה עמומה עם הסיבה. מוד שהותקן מ-marketplace מדווח על כשל רק ביומן של claude --debug. בחלונית הצ'אט של התוסף ל-VS Code מודים לא מציירים בכלל.
המקורות הרשמיים
- Customize Claude Code with mods: ההכרזה של Anthropic, מה מודים יכולים לעשות ו-sec-default בארגונים
- Mods overview: איפה מודים עובדים, מה מוד יכול לגשת אליו, גרסאות והמודים המובנים
- Create a mod: בקשה מ-Claude, hot reloading, שמירת מוד ו-claude plugin validate
- Manage mods for your organization: הגדרות מנוהלות ובדיקת מוד בארגון
- Getting started with Claude Code mods: המדריך של Anthropic לבניית מוד ראשון
- claude-code-playground/claude-code/mods: שלושת מודי הדוגמה
- anthropics/claude-code/mods: הקוד של חלק מהמודים המובנים
הירשמו לעדכונים במייל
רוצים להישאר צעד אחד קדימה?
עדכונים על כלי AI, מדריכים וטיפים - ישר למייל. בלי ספאם.
