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

תיעוד 92

מדריך פקודות תוספים

מדריך לפקודות המעטפת claude plugin, לפקודות /plugin ו-/reload-plugins בתוך סשן, ולדגלים שטוענים תוסף לסשן אחד.

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

הטבלאות למטה מפרטות את האפשרויות הנפוצות של כל תת-פקודה, לא כל אפשרות. הריצו claude plugin --help במעטפת כדי לראות אילו תת-פקודות יש בגרסה שלכם, ו-claude plugin <subcommand> --help לרשימת האפשרויות המלאה של תת-פקודה.

[!NOTE]

המקרים האלה מכוסים בדפים אחרים:

#פקודות claude plugin

מריצים claude plugin <subcommand> מהמעטפת או מסקריפט, מחוץ לסשן של Claude Code. תת-הפקודות האלה מתקינות ומנהלות תוספים בלי לפתוח את לוח /plugin.

claude plugins הוא כינוי ל-claude plugin.

כל תת-פקודה חולקת את קודי היציאה, ארגומנטי התוסף וערכי ההיקף האלה:

  • קודי יציאה: 0 בהצלחה ו-1 בכישלון. validate מוסיף יציאה 2 לשגיאה לא צפויה, ו-eval מוסיף את הקודים שמפורטים בסעיף שלו.
  • ארגומנטי תוסף: ארגומנט <plugin> הוא name של תוסף או name@marketplace. כששני מרקטפלייסים מציעים אותו שם, השתמשו בצורה המלאה. configure מקבל רק את הצורה המלאה.
  • היקפים: --scope מקבל user, project או local, ומציין את קובץ ההגדרות שהפקודה כותבת אליו. update מקבל גם managed.

#plugin init

יצירת שלד לתוסף חדש ב-~/.claude/skills/<name>/. אלא אם מנהל המערכת חסם תוספים מספריית skills, הוא נטען בסשן הבא כ-<name>@skills-dir בלי שלב התקנה.

new הוא כינוי ל-init.

לתהליך היצירה, הבדיקה והעריכה שמתחיל בפקודה הזו, ראו יצירת תוסף.

claude plugin init <name> [options]

<name> הופך לשם הספרייה תחת ~/.claude/skills/ ול-name של התוסף במניפסט שלו.

לפקודה אין דגל למיקום אחר. כדי ליצור שלד בתוך פרויקט, ראו יצירת תוסף.

דגלתיאור
--description <text>תיאור במניפסט
--author <name>שם המחבר. ברירת המחדל היא git config user.name
--author-email <email>אימייל המחבר. ברירת המחדל היא git config user.email
--with <components...>גם ליצור שלד לקובצי התחלה עבור skills, agents, hooks, mcp, lsp, output-style או channel
-f, --forceלדרוס .claude-plugin/ קיים ביעד

יצירת שלד לתוסף עם קובצי skill ו-hook התחלתיים:

claude plugin init my-helper --with skills hooks

Claude Code מאמת את מה שכתב ומדפיס Created plugin "my-helper" at ~/.claude/skills/my-helper, ואחריו את המזהה שהוא נטען לפיו ואת פקודת claude plugin disable שמכבה אותו.

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

#plugin install

התקנת תוסף מאחד המרקטפלייסים שלכם. i הוא כינוי ל-install.

claude plugin install <plugin> [options]

רוב התוספים מותקנים בלי הנחיה. לתוסף שרשומת המרקטפלייס שלו מריצה פקודה כדי להתקין אותו או מגדירה headersHelper להורדה שלו, Claude Code קודם מדפיס את הפקודה ושואל Run this command now? [y/N].

דגלתיאור
-s, --scope <scope>היקף התקנה: user, project או local. ברירת המחדל היא user
--config <key=value>הגדרת אפשרות userConfig שהמניפסט של התוסף מצהיר עליה. חזרו על הדגל לכל אפשרות. מפתח שנכתב <server>.<key> מגדיר הגדרה ששרת MCP ארוז מצהיר עליה ב-user_config שלו, לקובץ bundle שנשלח בתוך התוסף. הצורה <server>.<key> דורשת Claude Code v2.1.285 או חדש יותר
-y, --yesלאשר את פקודת ההתקנה המוצגת בלי ההנחיה Run this command now?. מתעלמים ממנו כשהפקודה רצה בתוך סשן של Claude Code, למשל מכלי Bash או מ-hook. דורש Claude Code v2.1.229 או חדש יותר
--accept-command <sha256>לאשר את פקודת ההתקנה המוצגת שה-sha256 שלה דווח בהרצת --json קודמת ב-shownCommand, במקום -y. אי אפשר לשלב עם -y. ראו אישור פקודת התקנה מוצגת. דורש Claude Code v2.1.271 או חדש יותר
--jsonלהדפיס את התוצאה כאובייקט JSON אחד בשורה האחרונה של stdout במקום ההודעה הקריאה, לשימוש בסקריפטים. ראו פורמט תוצאת JSON. דורש Claude Code v2.1.268 או חדש יותר
--marketplace <source>להתקין את <plugin>, לפי השם החשוף שלו, מהמרקטפלייס ב-<source>, ולהוסיף את המרקטפלייס קודם אם עדיין לא הוספתם אותו. ראו הוספת מרקטפלייס והתקנה בפקודה אחת. דורש Claude Code v2.1.292 או חדש יותר

הריצו claude plugin install --help במעטפת כדי לראות כל אפשרות שהגרסה שלכם תומכת בה.

העבירו -y מהמסוף שלכם כדי לאשר את הפקודה המוצגת בלי ההנחיה. זה מה שקורה בלי TTY וכש-Claude מריץ את הפקודה:

  • stdin או stdout אינו TTY, ולא מעבירים -y ולא --accept-command: ההתקנה נדחית. הפלט אומר שהפקודה רק הוצגה, וקוד היציאה הוא 1
  • Claude מריץ את הפקודה דרך כלי Bash: מתעלמים מ--y. הריצו את הפקודה מהמסוף שלכם

התקנת תוסף לכל מי שמשכפל את הפרויקט:

claude plugin install formatter@my-marketplace --scope project

Claude Code מדפיס Successfully installed plugin: formatter@my-marketplace (scope: project). כשלא מותקן שום דבר חדש, הפלט אומר למה:

  • כבר מותקן בהיקף הזה: הפלט הוא Plugin "formatter@my-marketplace" is already installed (scope: project) וקוד היציאה הוא 0
  • מסרבים להנחיה של מקור פקודה: הפלט הוא Aborted. וקוד היציאה הוא 1
  • מסרבים להנחיית headersHelper, או שאי אפשר לאשר אותה בלי TTY: הפלט הוא Aborted , the command was not run. וקוד היציאה הוא 1

#פורמט תוצאת JSON

כשמעבירים --json ל-plugin install, השורה האחרונה של stdout היא אובייקט JSON אחד. נתחו רק את השורה הזו, כי Claude Code מדפיס לפניה כל פקודה שהמרקטפלייס מצהיר עליה.

שלושה שדות תמיד נוכחים:

  • command: תת-הפקודה שרצה, למשל install
  • outcome: ok או failed
  • message: תיאור קריא של התוצאה

שדות אחרים, כמו pluginId, scope ו-failureCode, מופיעים רק כשהם חלים.

האפשרות --json ב-plugin uninstall, plugin update, plugin enable ו-plugin disable מדפיסה את אותו אובייקט עם השדות של אותה תת-פקודה.

שגיאת שימוש, כמו --scope לא תקין, לא מדפיסה שורת תוצאה ויוצאת עם 1 כשהסיבה ב-stderr.

#תוצאת JSON לפקודות מרקטפלייס

ב-plugin marketplace add, plugin marketplace remove ו-plugin marketplace update, --json מדפיס אובייקט JSON אחד בשורה האחרונה של stdout עם השדות command, outcome ו-message. זו התוצאה של claude plugin marketplace remove your-marketplace --json:

{"command":"marketplace-remove","outcome":"ok","marketplace":"your-marketplace","message":"Successfully removed marketplace: your-marketplace"}

ערך command הוא marketplace-add, marketplace-remove או marketplace-update. השדות למטה מופיעים רק כשהם חלים:

  • marketplace: שם המרקטפלייס שהפקודה פעלה עליו
  • failureCode: קוד לסיבת הכישלון, למשל invalid_source

plugin marketplace add ו-plugin marketplace remove יכולים לא להדפיס שורת תוצאה כשהארגומנט הוא השם השמור anthropic-plugin-directory, אז בדקו את קוד היציאה לשם הזה.

#אישור פקודת התקנה מוצגת

כשהרצה עם --json מציגה פקודה שהמרקטפלייס הכריז עליה ולא מריצה אותה, תוצאת failed נושאת גם אובייקט shownCommand. השדות שלו כוללים את הפקודה כפי שהוצגה, את התוסף שהיא שייכת אליו, ואת sha256 של הפקודה.

כדי לאשר בדיוק את הפקודה הזו, הריצו שוב עם ה-sha256 הזה כ---accept-command מהמסוף שלכם, כי לדגל אין השפעה בתוך סשן של Claude Code. נדרש Claude Code v2.1.271 או חדש יותר.

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

אם shownCommand.acceptCommandMatched הוא false, ה-sha256 שהעברתם לא תואם לפקודה שמוצגת עכשיו. עיינו בפקודה הזו לפני הרצה חוזרת עם ה-sha256 שלה.

#plugin uninstall

הסרת תוסף מותקן מהיקף אחד. remove ו-rm הם כינויים ל-uninstall.

claude plugin uninstall <plugin> [options]
דגלתיאור
-s, --scope <scope>הסרה מההיקף: user, project או local. ברירת המחדל היא user
--keep-dataלשמור את ספריית הנתונים הקבועה של התוסף, ~/.claude/plugins/data/<id>/
--pruneגם להסיר תלויות שהותקנו אוטומטית ואף תוסף שנותר לא צריך אותן
-y, --yesלדלג על הנחיית האישור של --prune. נדרש עם --prune כש-stdin או stdout אינו TTY
--jsonלהדפיס את התוצאה כאובייקט JSON אחד בשורה האחרונה של stdout, באותו פורמט כמו plugin install --json. אי אפשר לשלב עם --prune. דורש Claude Code v2.1.268 או חדש יותר

הסרת תוסף מהיקף הפרויקט:

claude plugin uninstall formatter@my-marketplace --scope project

Claude Code מדפיס Successfully uninstalled plugin: formatter (scope: project). כשהתוסף לא מותקן בהיקף הזה, הפקודה מדפיסה שורה שמתחילה ב-Failed to uninstall plugin "formatter@my-marketplace": ויוצאת עם 1.

אם שורת הכישלון ממשיכה עם "formatter" was not uninstalled: ומציינת קובץ הגדרות, Claude Code לא הצליח לאשר שההגדרות של ההיקף כבר לא מפעילות את התוסף, ולכן התוסף נשאר מותקן עם כל מה ששמר. עם --json, התוצאה נושאת failureCode: "settings_still_on". בדיקת ההגדרות הזו דורשת Claude Code v2.1.282 או חדש יותר.

#מה הסרה מוחקת ומה היא שומרת

כשמסירים תוסף מההיקף האחרון שבו הוא מותקן, Claude Code מוחק גם את האפשרויות והסודות השמורים של התוסף ואת ספריית הנתונים שלו, ~/.claude/plugins/data/<id>/. יש שלושה חריגים:

  • עם --keep-data, ספריית הנתונים נשארת
  • כשתוסף מותקן אחר משתמש באותה תיקייה, למשל תוסף שהמזהה שלו שונה מזה רק ברישיות האותיות, ספריית הנתונים נשארת
  • כש-Claude Code לא יכול לקרוא בחזרה את רשימת התוספים המותקנים אחרי שהוא מסיר את התוסף מההיקף הזה, האפשרויות, הסודות וספריית הנתונים כולם נשארים, כי התוסף אולי עדיין מותקן בהיקף אחר. ההסרה עדיין מצליחה. ההודעה מפרטת מה נשאר ואיך למחוק אותו, ועם --json התוצאה נושאת savedKept: "install_records_unreadable"

עם --json, keptData מדווח אם הספרייה נשארה, ו-/plugin מציג · data preserved כשזה קרה. לספרייה שנשארת בלי --keep-data, הדיווח הזה דורש Claude Code v2.1.281 או חדש יותר. השדה savedKept דורש Claude Code v2.1.282 או חדש יותר.

#plugin enable

הפעלת תוסף מושבת. לתוסף שמסונכרן מ-claude.ai, העבירו <name>@synced כתוסף.

claude plugin enable <plugin> [options]
דגלתיאור
-s, --scope <scope>ההיקף שבו מפעילים: user, project או local. מזוהה אוטומטית כשמשמיטים
--jsonלהדפיס את התוצאה כאובייקט JSON אחד בשורה האחרונה של stdout, באותו פורמט כמו plugin install --json. דורש Claude Code v2.1.268 או חדש יותר

בלי --scope, הפקודה בודקת את קובצי ההגדרות בסדר local, project, user, ומשתמשת בהיקף הראשון שמזכיר את התוסף.

אם מעבירים --scope שבו התוסף לא מוצהר, הפקודה כותבת עקיפה או נכשלת:

  • היקף שקודם להיקף המצהיר: Claude Code כותב עקיפה בהיקף שהעברתם. לדוגמה, claude plugin disable formatter --scope local מכבה תוסף שמופעל בפרויקט עבורכם בלבד
  • כל היקף אחר: הפקודה נכשלת עם Plugin "formatter" is installed at project scope, not user. Use --scope project or omit --scope to auto-detect.

אם התוסף כבר מופעל בהיקף שנפתר, הפקודה מדפיסה Plugin "formatter" is already enabled ויוצאת עם 1. עם --json, לתוצאה יש "failureCode": "already_in_goal_state" ו-"alreadyInGoalState": true, כך שסקריפט יכול להתייחס למקרה הזה כהצלחה.

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

  • תלות לא מותקנת: ההפעלה נכשלת ומדפיסה את פקודת claude plugin install לכל תלות חסרה
  • תלות חסומה במדיניות התוספים של הארגון: ההפעלה נכשלת ומציינת את התלות החסומה
  • תלות מוגדרת ל-false בהיקף עם קדימות גבוהה יותר מהיקף היעד: ההפעלה נכשלת. הפעילו את התלות בהיקף הזה, או העבירו --scope כדי לכתוב שם

הפעלה מחדש של תוסף בכל מקום שבו הוא מוצהר:

claude plugin enable formatter

Claude Code מדפיס Successfully enabled plugin: formatter (scope: project), ומציין את ההיקף שזיהה.

#plugin disable

השבתת תוסף בלי להסיר אותו. לתוסף שמסונכרן מ-claude.ai, העבירו <name>@synced כתוסף.

claude plugin disable [plugin] [options]
דגלתיאור
-a, --allלהשבית כל תוסף מופעל. אי אפשר לשלב עם שם תוסף או עם --scope
-s, --scope <scope>ההיקף שבו משביתים: user, project או local. מזוהה אוטומטית כשמשמיטים
--jsonלהדפיס את התוצאה כאובייקט JSON אחד בשורה האחרונה של stdout, באותו פורמט כמו plugin install --json. דורש Claude Code v2.1.268 או חדש יותר

בלי --scope, ההיקף מזוהה אוטומטית באותו סדר local, project, user כמו ב-plugin enable.

אם לא מעבירים שם תוסף ולא --all, Claude Code מדפיס Please specify a plugin name or use --all to disable all plugins ויוצא עם 1. השבתת תוסף שכבר מושבת מדפיסה Plugin "formatter" is already disabled ויוצאת עם 1, כמו ש-plugin enable עושה לתוסף שכבר מופעל.

הפקודה נכשלת לתוסף שעדיין נדרש:

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

השבתת תוסף אחד:

claude plugin disable formatter

Claude Code מדפיס Successfully disabled plugin: formatter (scope: project).

#plugin update

עדכון תוסף לגרסה האחרונה שה-marketplace שלו מציע. הגרסה החדשה נטענת בסשן הבא, או אחרי הרצה של /reload-plugins בסשן שכבר רץ.

claude plugin update <plugin> [options]
דגלתיאור
-s, --scope <scope>היקף העדכון: user, project, local או managed. מזוהה אוטומטית כשמשמיטים אותו
-y, --yesקבלת פקודת התקנה שהשתנתה מתוסף command-source, בלי ההנחיה. נדרש כש-stdin או stdout אינו TTY, אלא אם מעבירים --accept-command. דורש Claude Code בגרסה v2.1.229 או חדשה יותר
--accept-command <sha256>קבלת הפקודה שה-marketplace הצהיר עליה, שה-sha256 שלה דווח בהרצת --json קודמת בשדה shownCommand, במקום -y. אי אפשר לשלב עם -y. דורש Claude Code בגרסה v2.1.271 או חדשה יותר
--jsonהדפסת התוצאה כאובייקט JSON אחד בשורה האחרונה של stdout, באותו פורמט כמו plugin install --json. דורש Claude Code בגרסה v2.1.268 או חדשה יותר

עדכון תוסף:

claude plugin update formatter@my-marketplace

Claude Code מדפיס Checking for updates for plugin "formatter@my-marketplace"…, ואז את התוצאה. כשאין גרסה חדשה יותר, הוא מדפיס formatter is already at the latest version (1.0.0). ויוצא עם קוד 0, אלא אם הוא מנסה שוב את התקנת התלות של התוסף וההתקנה הזו נכשלת.

#איזה היקף הפקודה מעדכנת

אם משמיטים את --scope, הפקודה מעדכנת את התוסף בהיקף הספציפי ביותר שבו הוא מותקן עבור הפרויקט הנוכחי, ובודקת לפי הסדר local, project, user, ואז managed.

לפני v2.1.281, הפקודה השתמשה ב-user כשהשמטתם את --scope, ולכן עדכון תוסף שהותקן רק בהיקף project או local נכשל עם Plugin "<name>" is not installed at scope user. בגרסאות האלה, העבירו --scope.

managed הוא ההיקף היחיד שאפשר לעדכן, אבל אי אפשר להתקין אליו. לתוספים שהתקין מנהל, ראו ניהול תוספים לארגון.

#עדכון לפי שם בלבד

אפשר להעביר שם תוסף בלבד, והפקודה מתאימה אותו מול התוספים המותקנים. כשתוספים מותקנים מ-marketplaces שונים חולקים את אותו שם, הפקודה מסרבת לעדכון ומפרטת את הפקודות המלאות plugin-name@marketplace-name להרצה במקום. עדכון לפי שם בלבד דורש Claude Code בגרסה v2.1.246 או חדשה יותר.

#ניסיון חוזר של התקנת תלות שלא הושלמה

כשהתוסף כבר בגרסה האחרונה שלו, הפקודה יכולה גם לנסות שוב התקנת תלות שלא הושלמה בעותק השמור במטמון שלו. למקרים שבהם הניסיון החוזר רץ או שמדלגים עליו, ראו החבילות שהיא מפרטת אינן מותקנות. אם הניסיון החוזר נכשל, הפלט הוא Failed to update plugin "formatter@my-marketplace" עם הסיבה, וקוד היציאה הוא 1. לפני v2.1.287, הפקודה דיווחה שהתוסף בגרסה האחרונה שלו בלי לנסות שוב את ההתקנה.

#plugin list

הצגת תוספים מותקנים עם הגרסה, ההיקף והסטטוס שלהם.

claude plugin list [options]
דגלתיאור
--jsonהדפסת הרשימה כ-JSON
--availableגם הצגת תוספים שה-marketplaces מציעים ושעדיין לא התקנתם. אין השפעה בלי --json
--data-size [plugin]מדידת ספריית הנתונים השמורה של כל תוסף מותקן, או רק של התוסף ששמו, שניתן כ-name@marketplace. אין השפעה בלי --json. אם לשם אין רשומת התקנה, הפקודה מדפיסה --data-size names a plugin that is not installed ויוצאת עם קוד 1 במקום להדפיס את הרשימה. דורש Claude Code בגרסה v2.1.285 או חדשה יותר

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

  • Installed plugins:: תוספים שהתקנתם מ-marketplace
  • Session-only plugins (--plugin-dir / --plugin-url):: תוספים שנטענים באמצעות הדגלים האלה באותה פקודה, כמו ב-claude --plugin-dir ./my-plugin plugin list
  • Skills-directory plugins (.claude/skills/*):: תוספים ש-Claude Code מצא בספריית skills
  • Synced from claude.ai: תוספים שסונכרנו מחשבון claude.ai

כשאין פריטים באף קבוצה, Claude Code מדפיס No plugins installed. Use `claude plugin install` to install a plugin.

#פלט JSON

עם --json, Claude Code מדפיס מערך עם אובייקט אחד לכל התקנה. כל אובייקט נושא את השדות שלמטה. id, version, scope, enabled ו-installPath תמיד נוכחים, והאחרים מופיעים רק כשהם חלים.

שדהסוגתיאור
idstringname@marketplace להתקנות, name@inline לתוספים של סשן בלבד, name@skills-dir לתוספי ספריית skills, name@synced לתוספים שסונכרנו מ-claude.ai
versionstringבהתקנת marketplace, הגרסה ש-Claude Code חישב בזמן ההתקנה. לתוסף של סשן בלבד, של ספריית skills, או מסונכרן, ה-version של המניפסט, או unknown כשהוא לא מצהיר על גרסה
scopestringuser, project, local או managed להתקנות. user או project לתוספי ספריית skills. session לתוספים של סשן בלבד. synced לתוספים שסונכרנו מ-claude.ai
enabledbooleanהאם התוסף מופעל בהגדרות הממוזגות
installPathstringהספרייה שממנה התוסף נטען, חוץ מתוסף שסשנים טוענים במקום מתיקיית ה-marketplace שלו
readFromFolderstringלתוסף שסשנים טוענים במקום מתיקיית ה-marketplace שלו, ספריית המקור של התוסף בתוך התיקייה הזו. דורש Claude Code בגרסה v2.1.289 או חדשה יותר
folderVersionstringעם readFromFolder, ה-version של התוסף כפי ש-Claude Code טען אותו מהתיקייה הזו, והוא יכול להיות שונה משדה version שלמעלה. נעדר כשהתוסף לא נטען או לא מצהיר על גרסה. דורש Claude Code בגרסה v2.1.289 או חדשה יותר
installedAtstringחותמת זמן ISO של ההתקנה. התקנות marketplace בלבד
lastUpdatedstringחותמת זמן ISO של העדכון האחרון. התקנות marketplace בלבד
projectPathstringהפרויקט שההתקנה שייכת אליו. היקפי project ו-local בלבד
mcpServersobjectהגדרות שרתי ה-MCP של התוסף, כשלתוסף שהותקן מ-marketplace יש כאלה
errorsarray of stringsשגיאות טעינה, כשהתוסף נכשל בטעינה
notesarray of stringsאזהרות שאינן שגיאות טעינה, כמו בעיות authoring או חבילות שאינן מותקנות
errorDetailsarray of objectsאובייקט אחד לכל רשומה ב-errors, שנותן את ה-type האבחוני ואת השמות שהוא מתייחס אליהם, כמו התוסף, ה-marketplace, השרת או הקובץ. דורש Claude Code בגרסה v2.1.268 או חדשה יותר
noteDetailsarray of objectsאותם אובייקטי פירוט לכל רשומה ב-notes. דורש Claude Code בגרסה v2.1.268 או חדשה יותר
hasUserConfigbooleanנוכח ושווה true כשהתוסף נטען והמניפסט שלו מצהיר על אפשרויות userConfig. נעדר עבור תוסף שנכשל בטעינה, בלי תלות במה שהמניפסט מצהיר. ערכים שמורים אף פעם לא נכללים. דורש Claude Code בגרסה v2.1.285 או חדשה יותר
projectEnabledbooleanהאם קובץ .claude/settings.json המשותף של הפרויקט מפעיל את התוסף. התקנות marketplace בלבד. דורש Claude Code בגרסה v2.1.285 או חדשה יותר
dataDirSizeobjectעם --data-size, הגודל של ספריית הנתונים השמורה של התוסף כ-bytes ו-human. נעדר כשהספרייה חסרה או ריקה. התקנות marketplace בלבד. דורש Claude Code בגרסה v2.1.285 או חדשה יותר
dataDirUnreadablebooleanעם --data-size, true כשספריית הנתונים השמורה קיימת אבל לא ניתן היה למדוד אותה. התקנות marketplace בלבד. דורש Claude Code בגרסה v2.1.285 או חדשה יותר

עם --json --available, Claude Code מדפיס אובייקט אחד במקום מערך. השדה installed שלו מחזיק את מערך האובייקטים של התוספים המותקנים, והשדה available שלו מחזיק אובייקט אחד לכל תוסף marketplace שלא הותקן, עם השדות שלמטה.

שדהסוגתיאור
pluginIdstringname@marketplace
namestringשם התוסף ב-marketplace
marketplaceNamestringה-marketplace שמציע אותו
sourcestring or objectה-source של רשומת ה-marketplace: מחרוזת לנתיב יחסי, אובייקט בכל מקרה אחר
descriptionstringתיאור הרשומה, כשיש לה תיאור
versionstringגרסת הרשומה, כשהיא מצהירה על גרסה
installCountnumberמספר התקנות, כש-Claude Code מחזיק מספר כזה עבור התוסף

#plugin details

הצגת מלאי הרכיבים של תוסף ועלות הטוקנים החזויה שלו.

התוסף חייב להיות טעון: מותקן, נמצא בספריית skills, או מועבר עם --plugin-dir או --plugin-url באותה פקודה. <name> הוא name של תוסף או name@marketplace.

claude plugin details <name>

הפקודה לא מקבלת דגלים מלבד --help.

הצגה של מה שתוסף מותקן תורם:

claude plugin details formatter

Claude Code מדפיס את השם, הגרסה, התיאור והמקור של התוסף, ואז את הסעיפים האלה:

  • Component inventory: ה-skills, הסוכנים, ה-hooks, שרתי ה-MCP ושרתי ה-LSP של התוסף
  • Projected token cost: הטוקנים שפועלים תמיד, שהתוסף מוסיף לכל סשן
  • Per-component (rounded): הערכות always-on ו-on-invoke לכל skill, סוכן ופקודה. מושמט כשאין לתוסף אף אחד מאלה

למשמעות של שני נתוני העלות, ראו מדידת עלות ושימוש של תוסף.

עבור תוסף שאינו טעון, Claude Code מדפיס את ההודעה הזו ויוצא עם קוד 1:

Plugin "formatter" not found. Run `claude plugin list` to see installed plugins, or pass --plugin-dir <path> to load one from disk.

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

Plugin "<name>@builtin" not found. Built-in plugins don't appear in `claude plugin list`. To see the ones available in a session, run /plugin in Claude Code and open the Installed tab.

#plugin configure

הצגת אפשרויות userConfig של תוסף מותקן ואילו מהן מוגדרות, או שמירת ערכים שמועברים בצינור אל stdin. דורש Claude Code בגרסה v2.1.285 או חדשה יותר.

claude plugin configure <plugin>
דגלתיאור
--values-stdinקריאת ערכי אפשרויות מ-stdin כאובייקט JSON של מחרוזות של שורה אחת, ושמירתן. אפשרויות שמשאירים בחוץ שומרות על הערכים השמורים שלהן
--jsonהדפסת התוצאה כאובייקט JSON אחד ב-stdout. בלי --values-stdin, האובייקט נושא את schema ואת choices של האפשרויות, את inputs ההתחלתיים שלהן, ואת שמות האפשרויות ב-configured וב-unconfigured. עם --values-stdin, הוא נושא את שמות האפשרויות ב-saved, וכשאפשר לקרוא אותן בחזרה, את אלה שב-unconfigured

בלי דגלים, הפקודה מפרטת כל אפשרות עם עד שלוש תוויות: required או optional, אחר כך sensitive עבור אפשרות שהמניפסט מצהיר עליה כרגישה, אחר כך set או not set. היא לא מדפיסה ערכים שמורים. עם --json, הפלט כולל את הערכים השמורים של אפשרויות שאינן רגישות, ולעולם לא את הטקסט של אפשרות רגישה.

כדי לשמור ערכים, כתבו אותם לקובץ כאובייקט JSON שממפה מפתחות אפשרויות לערכי מחרוזת, ואחר כך העבירו את הקובץ ב-stdin. החליפו את formatter@my-marketplace במזהה של התוסף שלכם, כפי ש-claude plugin list מציג אותו. הדוגמה הזו מגדירה אפשרות אחת בשם api_url מתוך קובץ values.json שמכיל {"api_url": "https://example.com"}:

claude plugin configure formatter@my-marketplace --values-stdin < values.json

Claude Code מאמת כל ערך מול הסוג המוצהר של האפשרות ומדפיס Configuration saved. Restart Claude Code to apply it. אם מעבירים מפתח שהמניפסט לא מצהיר עליו, או ערך שנכשל באימות, הפקודה לא שומרת דבר, מדפיסה Failed to save configuration: עם הסיבה, ויוצאת עם קוד 1. עם --json, ערך שנדחה מדפיס גם אובייקט ב-stdout, שהשדה refused שלו נושא את message, וכשאפשרות אחת אשמה, את מפתח option שלה.

העבירו את המזהה המלא name@marketplace של התוסף, כפי ש-claude plugin list מציג אותו. configure לא מקבל name בלבד. כשאף תוסף טעון לא נושא את המזהה הזה, הפקודה מדפיסה No installed plugin has the id "<plugin>". ויוצאת עם קוד 1.

להגדרות של שרת MCP שמצורף, ראו plugin install --config או את הפריט Configure ב-/plugin.

#plugin prune

הסרת תלויות שהותקנו אוטומטית ושאין עוד תוסף מותקן שזקוק להן. הפקודה לעולם לא מסירה תוסף שהתקנתם בעצמכם. autoremove הוא כינוי ל-prune.

claude plugin prune [options]
דגלתיאור
-s, --scope <scope>גיזום בהיקף: user, project או local. ברירת המחדל היא user
--dry-runהצגת מה היה מוסר, בלי להסיר אותו
-y, --yesדילוג על הנחיית האישור. נדרש כש-stdin או stdout אינו TTY

תצוגה מקדימה של מה שגיזום היה מסיר:

claude plugin prune --dry-run

Claude Code מפרט את התלויות היתומות ומסיים ב-(dry run , nothing removed). כשאין מה להסיר, הוא מדפיס שורה שמתחילה ב-Nothing to prune.

בלי --dry-run, הפקודה מסירה את התלויות היתומות רק אחרי שאתם מאשרים בהנחיה או מעבירים -y.

קוד היציאה הוא 0 בכל תשובה שנותנים בהנחיה.

מה ש-prune עושה תלוי בכך אם מחובר מסוף ואם מעבירים -y:

מסוף ודגליםמה קורה
מסוף אינטראקטיבי, בלי -yמפרט את התלויות היתומות ושואל Remove? [y/N]
כל מסוף, -yמסיר אותן ומדפיס Removed N auto-installed plugins: <names>
stdin או stdout שאינו TTY, בלי -yמדפיס את הרשימה ואת Not a TTY , run `claude plugin prune -y` to remove., ולא מסיר דבר

#plugin eval

הריצו את מקרי ה-eval של תוסף ודווחו תוצאות עם ציון. דורש Claude Code v2.1.269 או מאוחר יותר.

כל מקרה הוא prompt בתוספת graders. Claude Code מריץ אותו כמה פעמים בסשן מבודד שבו טעון רק תוסף היעד, וכברירת מחדל גם בלי התוסף כדי שהדוח יציג את ההבדל.

ראו בדיקת תוספים עם evals לפורמט המקרה, ל-graders, לתוצאות ולשימוש ב-CI.

claude plugin eval [target] [options]

ה-target האופציונלי, שברירת המחדל שלו היא התיקייה הנוכחית, מקבל כל אחת מהצורות האלה:

  • תיקיית תוסף
  • קובץ prompt.md או case.yaml יחיד
  • תוסף מותקן כ-name או name@marketplace
  • name@skills-dir

שימו את ה-target לפני --tag, --allow-tools ו---json. כל אחת מהאפשרויות האלה לוקחת את המילים שאחריה כערך שלה, ולכן target שנכתב אחרי אחת מהן נקרא כתג, כשם כלי, או כנתיב פלט ה-JSON במקום כ-target.

הטבלה הזו מפרטת את האפשרויות שרוב ההרצות משתמשות בהן. הריצו claude plugin eval --help לסט המלא, כולל --case, --tag, --output-dir, --report, --allow-real-servers, --keep-temp ו---verbose.

אפשרותתיאורברירת מחדל
--runs <n>הרצות לכל מקרה בכל armה-runs של כל מקרה, אחרת 3
-j, --concurrency <n>סשני agent להרצה בו זמנית, 1 עד 8. הם חולקים את מגבלת הקצב שלכם1
--model <model>מודל ל-agent הנבדקה-model של כל מקרה, אחרת ANTHROPIC_MODEL אם הוא מוגדר, אחרת ברירת המחדל של Claude Code
--judge-model <model>מודל ל-graders מסוג llm ו-baselineהמודל למשימות רקע
--ablation <mode>none או with-without. ראו ציון מול baseline בלי תוסףמוכרע לכל מקרה, כפי שהסעיף הזה מתאר
--threshold <0..1>יציאה 1 אם מקרה כלשהו מקבל ציון מתחת לזה1.0
--max-cost-usd <usd>עצירה לפני ההרצה הבאה ברגע שההוצאה מגיעה לסכום הזה, יציאה 2, ודיווח תוצאות חלקיותאין מגבלה
--allow-tools <tools...>הענקת כלים מעבר לקבוצה לקריאה בלבד, כגון Bash, Write, Edit, או "mcp__plugin_<plugin>_<server>__*". ראו הענקת כלים
--scaffoldהרצת scaffold_script של כל מקרהכבוי
--trust-pluginדילוג על בקשת האמון בהרצה הראשונה, ל-CI. ראו למה להרצה יש גישהכבוי
--mocks <mode>record או off. ראו שרתי MCP מדומיםrecord
--eval-dir <dir>תיקייה מתחת לתוסף שמחזיקה את המקריםה-experimental.evals של המניפסט, אחרת evals
--json [path]הדפסת מסמך התוצאה ל-stdout, או כתיבתו לנתיב .json
--no-publishהשארת דוח ה-HTML מקומי

קוד היציאה מדווח איך ההרצה הסתיימה. כדי לפעול לפיו ב-pipeline, ראו הרצת evals ב-CI.

קוד יציאהמשמעות
0הסוויטה עברה: כל מקרה עומד בסף ושום דבר אחר לא הכשיל את ההרצה
1מקרה כושל, שגיאת טעינה, תיקיית תוסף לא מהימנה, הרצה שהסתיימה בשגיאת API, או סיבה אחרת שמפורטת תחת הרצת evals ב-CI
2הרצה חלקית
130הופרעה
143הופסקה (Terminated)

#plugin eval init

צרו סוויטת eval לתוסף בתיקייה הנוכחית. דורש Claude Code v2.1.269 או מאוחר יותר. ראו יצירת סוויטת ה-eval הראשונה.

claude plugin eval init [name] [options]

הריצו את הפקודה מתיקיית השורש של התוסף, התיקייה שמחזיקה את .claude-plugin/plugin.json או את SKILL.md של ה-skill. כדי לבנות את שלד הסוויטה בתיקייה אחרת בכוונה, העבירו --eval-dir.

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

  1. קורא את התוסף
  2. שואל אתכם במה הוא אמור להצליח
  3. מציע מקרים ו-graders
  4. כותב את קבצי המקרה
  5. מריץ את המקרים וסוקר את הציונים איתכם כדי לבדוק שה-graders נותנים ציון כמו שאתם הייתם נותנים

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

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

הפקודה מקבלת את האפשרויות האלה:

אפשרותתיאורברירת מחדל
--bareכתיבת prompt.md ו-graders/criteria.md ריקים עבור <name> במקום הרצת הראיון
-i, --interactiveדרישת הראיון. נכשלת בלי טרמינל במקום לכתוב תבנית
--eval-dir <dir>תיקייה מתחת לתיקייה הנוכחית לכתיבת המקרים לתוכהה-experimental.evals של המניפסט, אחרת evals

#plugin tag

צרו תג git מוער (annotated) בשם <name>--v<version> לשחרור תוסף. לפני התיוג, הפקודה בודקת ש-plugin.json של התוסף וכל רשומת marketplace שמפרטת אותו מסכימים על הגרסה.

למתי לתייג שחרור, ראו פרסום תוסף.

claude plugin tag [path] [options]

ה-[path] הוא תיקיית התוסף, וברירת המחדל היא התיקייה הנוכחית. הפקודה מוצאת את רשומת ה-marketplace על ידי עלייה מהתיקייה הזו אל .claude-plugin/marketplace.json שמפרט את התוסף.

דגלתיאור
--pushדחיפת התג אל --remote אחרי יצירתו
--dry-runהדפסת מה היה מתויג בלי יצירת התג
-f, --forceדילוג על בדיקות עץ העבודה המלוכלך ותג שכבר קיים
-m, --message <msg>הודעת ההערה של התג. %s מייצג את הגרסה. ברירת המחדל היא <name> <version>
--remote <name>remote לדחיפה עם --push. ברירת המחדל היא origin

תצוגה מקדימה של התג לתוסף ב-checkout של marketplace:

claude plugin tag plugins/formatter --dry-run

Claude Code מדפיס את התוכנית:

  • שם התוסף
  • הגרסה ומאיזה קובץ היא הגיעה
  • רשומת ה-marketplace התואמת, כשיש אחת
  • שם התג
  • פקודות git tag ו-git push שהיה מריץ

בלי --dry-run, Claude Code מדפיס Created tag formatter--v1.0.0 וגם Pushed to origin או את פקודת הדחיפה להרצה בעצמכם. אם הדחיפה נכשלת, התג עדיין נוצר מקומית והפקודה יוצאת עם שגיאה.

הפקודה יוצאת 1 ומדפיסה את הסיבה כשהיא לא יכולה לתייג בבטחה. סיבות נפוצות הן:

  • אין version ב-plugin.json או ברשומת ה-marketplace
  • התג כבר קיים
  • עץ העבודה מלוכלך

#plugin test

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

claude plugin test [directory]

ה-[directory] הוא תיקיית ה-mod, וברירת המחדל היא התיקייה הנוכחית. הפקודה מריצה כל קובץ תחתיה ששמו מסתיים ב-.test.ts או .test.tsx, ויוצאת עם סטטוס 1 כשבדיקה נכשלת.

הריצו את הבדיקות ל-mod ב-./first-mod:

claude plugin test ./first-mod

#plugin validate

אמתו מניפסט תוסף, מניפסט marketplace, או את ה-skills, ה-agents והפקודות בתיקייה, וצאו עם קוד שמשימת CI יכולה לפעול לפיו. לזרימת העבודה של יצירה, בדיקה ועריכה, ראו יצירת תוסף. למה ה-validator בודק בכל מניפסט, ראו את הפניה למניפסט התוסף ואת הפניה ל-marketplace.

claude plugin validate <path> [options]
דגלתיאור
--strictהתייחסות לאזהרות כשגיאות, כך ששדות לא מזוהים ומטא-דאטה חסר שה-runtime סובל מכשילים את ההרצה
--jsonפלט דוח האימות כאובייקט JSON אחד עם אותם קודי יציאה. דורש Claude Code v2.1.259 או מאוחר יותר

אמתו תוסף לפני commit שלו:

claude plugin validate ./my-plugin --strict

#אימות תיקייה

ה-<path> הוא קובץ מניפסט או תיקייה. כשניתנת תיקייה, Claude Code בוחר מה לאמת לפי מה שהוא מוצא שם:

  • .claude-plugin/marketplace.json, כשהוא קיים
  • אחרת .claude-plugin/plugin.json
  • אחרת קבצי הרכיבים, שנבחרים לפי שם התיקייה. אימות קבצי רכיבים בלי מניפסט דורש Claude Code v2.1.233 או מאוחר יותר:
    • תיקייה בשם skills, agents, או commands: הקבצים שבתוכה
    • תיקייה בשם .claude: תיקיות skills, agents ו-commands שבתוכה
    • כל תיקייה אחרת: שלוש התיקיות האלה תחת ה-.claude שלה

כשהתיקייה מחזיקה גם .claude-plugin/marketplace.json וגם .claude-plugin/plugin.json, Claude Code מאמת את ה-marketplace וגם את המניפסט של התוסף ואת קבצי הרכיבים. זה דורש Claude Code v2.1.289 או מאוחר יותר.

Claude Code לא עוקב אחרי symlinks בתוך התיקייה שאתם מציינים. מה שהוא עושה תלוי במיקום הקישור:

  • תיקיית skills, agents, או commands מקושרת תחת שורש התוסף או .claude: Claude Code מזהיר ששום דבר בתוכה לא נקרא.
  • רשומה מקושרת בתוך תיקיית skills, agents, או commands: Claude Code מדלג עליה ומזהיר, לכל תיקייה, כמה רשומות הוא דילג שסשן היה טוען.
  • תיקיית skills, agents, או commands שאתם מציינים היא בעצמה symlink, או שתיקיית האב .claude שלה היא symlink: Claude Code מדווח על שגיאה ולא בודק דבר בתוכה. ציינו את התיקייה האמיתית.

כמה קבצים לא נקראים בהרצת אימות:

  • SKILL.md בשורש התוסף: כשמריצים claude plugin validate על תיקיית תוסף, Claude Code לא בודק SKILL.md בשורש התוסף
  • CLAUDE.md בשורש התוסף: בהרצת תוסף, Claude Code גם מזהיר על CLAUDE.md בשורש התוסף
  • קבצי תוסף בהרצת marketplace: מתיקיית marketplace, Claude Code לא פותח את קבצי ה-skill, ה-agent, הפקודה או ה-hook של תוספים שה-marketplace מפרט בתיקיות אחרות, או את קבצי שרת ה-MCP שהם אורזים. כדי למצוא שגיאות בקבצים האלה, אמתו כל תיקיית תוסף

#פלט וקודי יציאה

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

קוד יציאהשורת פסק דיןמשמעות
0Validation passed או Validation passed with warningsהמניפסט נטען. עם --strict, גם אין אזהרות
1Validation failed או Validation failed (--strict treats warnings as errors)שגיאה, או אזהרה תחת --strict. עצה לא נספרת, עם או בלי --strict
2Unexpected error during validation: <reason>ה-validator עצמו נכשל, למשל בנתיב שלא ניתן לקריאה

עם --json, Claude Code כותב את הדוח ל-stdout כאובייקט JSON אחד עם שדות הרמה העליונה האלה:

  • success: אותו פסק דין שקוד היציאה נותן
  • strict: האם ההרצה התייחסה לאזהרות כשגיאות
  • target: הנתיב שנפתר ש-Claude Code אימת
  • manifest: התוצאה של המניפסט עצמו, או null להרצה בלי מניפסט
  • contents: תוצאות לכל קובץ, כל אחת מציינת את ה-file שלה ונושאת מערכי errors, warnings ו-notes. קבצים בלי שגיאה, אזהרה או הערה לא מקבלים רשומה, כך ש-contents ריק כשאין מה לדווח. עבור תיקייה עם marketplace.json ו-plugin.json, manifest הוא תוצאת marketplace.json ותוצאות plugin.json נכנסות ל-contents
    • gatingHooks: האם לכל hook של mod שיכול לסרב לפעולה, כגון hook של tool.call, יש מטפל .catch. כל פריט נותן module, pattern, hook ו-hasCatch. דורש Claude Code v2.1.290 או מאוחר יותר
  • advice: העצה של ההרצה, כל רשומה מציינת את ה-README כ-file ונושאת message ואת ה-installLine להדבקה. ריק כשאין. דורש Claude Code v2.1.295 או מאוחר יותר

ביציאה 2, הפקודה לא כותבת דבר ל-stdout. הודעת השגיאה הולכת ל-stderr.

#עצה על ה-README

בלוק Advice בפלט של claude plugin validate אומר של-README של תוסף אין שורה שמתקינה את התוסף מ-marketplace, והוא נותן לכם שורה להוסיף. עצה אינה שגיאה או אזהרה. היא לא משנה את שורת פסק הדין או את קוד היציאה, עם או בלי --strict. היא דורשת Claude Code v2.1.295 או מאוחר יותר.

לדוגמה, אימות התיקייה של marketplace בשם acme-tools מדפיס את העצה הזו לתוסף deploy-helper שלו:

Validating marketplace manifest: /path/to/acme-tools/.claude-plugin/marketplace.json

ℹ Advice (does not change the verdict):

  ❯ /path/to/acme-tools/plugins/deploy-helper/README.md: This README has no line that installs "deploy-helper" from a marketplace. Add the install line, which works in one step on Claude Code 2.1.275 or later.
      /plugin install deploy-helper --marketplace acme/tools

✔ Validation passed

כדי לנקות את העצה, הדביקו את השורה המוצעת לתוך ה-README שהיא מציינת, ואז הריצו claude plugin validate שוב ב-shell שלכם. בלוק ה-Advice נעלם.

אם השורה המוצעת מחזיקה את מציין המקום <owner>/<repo>, הדבקה שלה בלי שינוי לא מנקה את העצה. קבלו קודם את המקור האמיתי:

  • אימתתם את התיקייה של התוסף עצמו: כשה-marketplace מפרט את התוסף מתיקייה בתוך עצמו, אמתו את התיקייה הזו במקום. כשהוא מפרט את התוסף ממקום אחר, כגון מאגר GitHub, מלאו את <owner>/<repo> בעצמכם
  • אימתתם את תיקיית ה-marketplace: Claude Code ממלא את המקור מה-remote בשם origin של תיקיית .git בראש התיקייה הזו. כשהוא לא יכול להשתמש ב-remote הזה, כגון כשאין אחד, החליפו את <owner>/<repo> במקור ה-marketplace שלכם בעצמכם

שורת התקנה שכבר כתבתם נספרת כש-plugin install, או הצורה הקצרה שלו plugin i, מופיעים באותה שורה ואחריהם אחד מאלה. האיותים /plugin ו-claude plugin שניהם נספרים:

  • <plugin>@<marketplace>, כגון /plugin install deploy-helper@acme-tools
  • שם התוסף ו---marketplace <source>, כגון /plugin install deploy-helper --marketplace acme/tools

#פקודות claude plugin marketplace

הריצו claude plugin marketplace <subcommand> מהמעטפת כדי להוסיף, להציג, לרענן ולהסיר את החנויות שמהן מתקינים תוספים.

  • קודי יציאה: תת הפקודות האלה עוקבות אחרי מוסכמת קודי היציאה של פקודות התוספים
  • היקפים: לדגל --scope שלהן אין צורה קצרה -s

למהות של חנות ולאופן שבו Claude Code שומר אותה במטמון, ראו הפניה לטעינת תוספים.

#plugin marketplace add

הוסיפו חנות ממאגר GitHub, מכתובת git, מקובץ marketplace.json מתארח, או מנתיב מקומי, והצהירו עליה בקובץ הגדרות.

אחרי שמוסיפים אותה, Claude Code מתקין כל תלויות שחסרו לתוספים שהותקנו.

claude plugin marketplace add <source> [options]
דגלתיאור
--scope <scope>קובץ ההגדרות שבו מצהירים על החנות: user, project, או local. ברירת המחדל היא user
--sparse <paths...>מגביל את ה checkout של git לספריות האלה, עבור monorepos. מקורות github ו git בלבד
--claudeaiקורא את הארגומנט כשם של חנות שמתארחת ב claude.ai במקום מקור. דורש Claude Code v2.1.273 או חדש יותר
--jsonמדפיס אם הפקודה הצליחה, ואת ההודעה שלה, כאובייקט JSON אחד בשורה האחרונה של stdout, בפורמט תוצאת JSON. אין לו השפעה עם --claudeai. דורש Claude Code v2.1.287 או חדש יותר

<source> מקבל כל אחת מהצורות בטבלה למטה, והצורה שלו קובעת את סוג המקור ואת האופן שבו Claude Code מביא את החנות. לאובייקט המקור שמתקבל, ראו את הפניה לחנויות.

מה מקלידיםסוג המקוראיך Claude Code מביא אותו
owner/repo, owner/repo#ref, או owner/repo@refgithubמשכפל את מאגר GitHub, נעוץ ל ref כשמוסרים אותו. הבעלים והמאגר חייבים לעמוד בכללי השמות של GitHub
user@host:path[.git][#ref]gitמשכפל דרך SSH
כתובת http:// או https:// שמסתיימת ב .git[#ref] או מכילה /_git/, כגון https://example.com/repo.gitgitמשכפל את הכתובת, כולל כתובות Azure DevOps
https://github.com/owner/repo או https://gitlab.com/namespace/project, או אותו דבר דרך http://gitמשכפל את הכתובת אחרי צירוף .git
כל כתובת http:// או https:// אחרת, כולל מארח git עצמאי בלי .giturlמביא את הכתובת כ marketplace.json. כדי לשכפל שם מאגר במקום זאת, צרפו .git
./path, ../path, /path, או ~/path לספריהdirectoryקורא את הספריה במקומה. ב Windows גם הצורות .\, ..\, ו C:\ עובדות
אותן צורות נתיב, לקובץ .jsonfileקורא את הקובץ במקומו

עבור מארח שכתובות השכפול שלו לא נושאות את הסיומת .git, כגון AWS CodeCommit, הוסיפו את החנות כרשומת git ב extraKnownMarketplaces במקום זאת. Claude Code משכפל רשומת git בין אם הכתובת שלה מסתיימת ב .git ובין אם לא.

Claude Code גם משכפל כתובת gitlab.com עם תת קבוצות מקוננות, כגון https://gitlab.com/group/subgroup/project.

הוסיפו חנות ושתפו אותה עם הפרויקט:

claude plugin marketplace add your-org/your-marketplace --scope project

Claude Code מדפיס Successfully added marketplace: your-marketplace (declared in project settings), תוך שימוש ב name מהמניפסט של החנות עצמה. הוספה חוזרת או מקור לא תקין מדפיסים אחת מהתוצאות האלה במקום:

  • חנות שכבר על הדיסק: הפלט הוא Marketplace 'your-marketplace' already on disk , declared in project settings וקוד היציאה הוא 0
  • מקור לא מזוהה: הפלט הוא Invalid marketplace source format. Try: owner/repo, https://..., or ./path וקוד היציאה הוא 1
  • מארח חשוף כגון gitlab.example.com/team/plugins: ההוספה נכשלת כקיצור owner/repo לא תקין, וההודעה אומרת להוסיף https:// או להשתמש בנתיב מקומי

הוסיפו חנות שמתארחת ב claude.ai לפי השם שמודפס במקטע From claude.ai: של claude plugin marketplace list:

claude plugin marketplace add --claudeai claudeai-organization-library

עם --claudeai, הפקודה מסרבת ל --scope ול --sparse. החנות מתארחת עבור החשבון, והיא לא מוצהרת בקובץ הגדרות, ולכן אי אפשר לשתף אותה דרך .claude/settings.json של פרויקט.

#plugin marketplace list

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

claude plugin marketplace list [options]
דגלתיאור
--jsonמדפיס את הרשימה כ JSON

Claude Code מדפיס Configured marketplaces: ושורה אחת של Source: לכל חנות, או No marketplaces configured.

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

שדהתיאור
nameשם החנות
sourcegithub, git, url, directory, file, או claudeai
repoowner/repo. מקורות github בלבד
urlכתובת השכפול או הבאה. מקורות git ו url בלבד
pathהנתיב המקומי. מקורות directory ו file בלבד
refהענף או התג הנעוץ. מקורות github ו git, רק כשיש נעיצה
installLocationהמקום שבו Claude Code שמר את החנות במטמון

לחנות claude.ai שנוספה אין שכפול מקומי, ולכן הרשומה שלה נושאת את מזהי claude.ai שלה, marketplaceId ו organizationUuid, במקום installLocation. היא גם נושאת scope כשאחד נרשם, ו status.

אם סשני המסוף שלכם מסנכרנים תוספים מחשבון claude.ai, רשימת הטקסט מסתיימת במקטע From claude.ai:. המקטע הזה מציין את החנויות ש claude.ai מציג עבור החשבון ושעדיין לא הוספתם, גם מבוססות git וגם מתארחות. זה דורש Claude Code v2.1.273 או חדש יותר.

כדי להוסיף חנות מהמקטע הזה, ראו הוספת חנות מ claude.ai.

פלט --json מכסה חנויות מוגדרות בלבד ומשמיט את המקטע.

#plugin marketplace remove

הסירו את ההצהרה על חנות מההגדרות. rm הוא כינוי עבור remove.

[!WARNING]

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

כדי לרענן חנות בלי לאבד את התוספים שלה, הריצו plugin marketplace update במקום זאת.

claude plugin marketplace remove <name> [options]

ה <name> הוא שם החנות ש plugin marketplace list מציג, לא המקור שהעברתם ל add.

דגלתיאור
--scope <scope>מסיר את ההצהרה מהיקף הגדרות אחד: user, project, או local. בלי הדגל, Claude Code מסיר את ההצהרה מכל היקף
--jsonמדפיס אם הפקודה הצליחה, ואת ההודעה שלה, כאובייקט JSON אחד בשורה האחרונה של stdout, בפורמט תוצאת JSON. דורש Claude Code v2.1.287 או חדש יותר

הסירו חנות מכל היקף:

claude plugin marketplace remove your-marketplace

Claude Code מדפיס Successfully removed marketplace: your-marketplace. כשהפקודה מסירה תוספים, הפלט מציג אותם מתחת לשורה כגון Also uninstalled 2 plugins from this marketplace:. כדי להשתמש שוב באחד מהם, הוסיפו את החנות בחזרה והתקינו מחדש את התוסף.

אם מגבילים לקובץ הגדרות שלא מצהיר על החנות, הפקודה נכשלת עם Marketplace 'your-marketplace' is not declared in project settings. Omit --scope to remove it from all scopes.

#plugin marketplace update

רעננו חנות אחת, או כל חנות, מהמקור שלה כדי להביא תוספים וגרסאות חדשים. חנות שהוספה עם ענף או תג ref מתעדכנת ל commit האחרון של אותו ref, ולא לענף ברירת המחדל של המאגר.

claude plugin marketplace update [name] [options]
דגלתיאור
--jsonמדפיס אם הפקודה הצליחה, ואת ההודעה שלה, כאובייקט JSON אחד בשורה האחרונה של stdout, בפורמט תוצאת JSON. בלי שם, הפקודה מסרבת ל --json ויוצאת עם 1. דורש Claude Code v2.1.287 או חדש יותר

רעננו חנות אחת:

claude plugin marketplace update your-marketplace

Claude Code מדפיס Successfully updated marketplace: your-marketplace. כשמשמיטים את השם, הוא מדפיס ספירה כגון Successfully updated 2 marketplaces.

#/plugin בתוך סשן

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

אפשר להריץ את הפקודות האלה רק בסשן מסוף אינטראקטיבי. בהרצה לא אינטראקטיבית כגון claude -p, Claude Code משיב ש /plugin לא זמין בסביבה הזו.

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

<plugin> הוא name של תוסף או name@marketplace.

הטבלה למטה מפרטת כל צורה בסשן. לתת פקודות המעטפת init, update, details, prune, eval, eval init, ו test אין צורה בסשן.

פקודהכינוייםמה זה עושה
/pluginפותח את הלוח בלשונית Discover. כל מילה ראשונה שלא מזוהה אחרי /plugin עושה אותו דבר
/plugin help/plugin --help, /plugin -hמציג את רשימת השימוש של תת הפקודות של /plugin
/plugin list [--enabled|--disabled]lsמדפיס ישירות את התוספים שהותקנו מחנויות, עם גרסה, היקף וסטטוס. דגל סינון מציג רק את המצב הזה. תוסף שמצב ההפעלה שלו עדיין לא הוחל מסומן , run /reload-plugins to apply
/plugin installiפותח את לשונית Discover
/plugin install <plugin>iפותח את פרטי התוסף בלשונית Discover. עם name@marketplace, פותח אותם ברשימה של החנות הזו
/plugin install <source>iמדווח על שגיאת חנות לא נמצאה ולא מתקין דבר כשהיעד הוא נתיב, כתובת URL, או owner/repo, גם מקור שכבר הוספתם. כדי להתקין ממקור, ראו הוספת חנות והתקנה בפקודה אחת
/plugin install <plugin> --marketplace <source>iמוסיף את החנות ב <source> כשעדיין לא הוספתם אותה, ומבקש אישור קודם, ואז פותח את פרטי התוסף. ראו הוספת חנות והתקנה בפקודה אחת. דורש Claude Code v2.1.275 או חדש יותר
/plugin manageפותח את לשונית Installed
/plugin statsפותח את לשונית Stats, בסשנים שבהם /skill-doctor זמין. בכל מקום אחר הוא פותח את הלוח בלשונית Discover
/plugin enable <plugin>פותח את לשונית Installed על התוסף ומפעיל אותו
/plugin disable <plugin>פותח את לשונית Installed על התוסף ומכבה אותו
/plugin uninstall <plugin>פותח את לשונית Installed על התוסף ומסיר אותו
/plugin configure <plugin>configפותח את תיבת הדו שיח userConfig של התוסף, או מדווח שהתוסף לא מצהיר על כזו
/plugin validate <path>מדפיס ישירות את אותו דוח כמו claude plugin validate
/plugin tag [path] [--push] [--dry-run] [--force]יוצר את תג השחרור כמו ש claude plugin tag עושה. מקבל את --push, --dry-run, ואת --force או -f. עם כל דגל אחר או ארגומנט נוסף, Claude Code מדפיס שימוש במקום
/plugin marketplacemarketלא עושה דבר שנראה לעין. העבירו add, list, update, או remove
/plugin marketplace add [source]market addעם מקור, מוסיף אותו ומדווח על התוצאה. בלי מקור, פותח את שדה הקלט Add marketplace
/plugin marketplace listmarket listמדפיס ישירות את שמות החנויות
/plugin marketplace update [name]market updateפותח את לשונית Marketplaces. עם שם, מרענן את החנות הזו שם
/plugin marketplace remove [name]market remove, market rm, marketplace rmפותח את לשונית Marketplaces. עם שם, מסיר את החנות הזו שם

אם מציינים תוסף שלא מותקן בפרויקט הנוכחי ב /plugin enable, disable, uninstall, או configure, Claude Code מדפיס Plugin "<plugin>" is not installed in this project במקום לפעול.

#/reload-plugins

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

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

/reload-plugins [--force]
דגלתיאור
--forceמחיל את הטעינה מחדש גם כשהיא תבטל את מטמון הפרומפט. גם force בלי מקפים עובד

#סיכום טעינה מחדש

Claude Code טוען מחדש כל תוסף פעיל ומדפיס שורת סיכום אחת, Reloaded: N plugins · N skills · N agents · N hooks · N plugin MCP servers · N plugin LSP servers, ומשמיט את ספירת שרתי ה MCP של תוספים בסשן בלי מסוף אינטראקטיבי. כשתוסף כלשהו נכשל, הסיכום מוסיף N errors during load. Run /plugin for details.

ספירת ה skills מכסה כל skill שתוסף מספק, גם את רשומות commands/ שלו וגם את ה skills של SKILL.md. ספירת ה agents היא מספר ה agents שנטענו בסשן, כולל כאלה שלא מגיעים מתוספים.

כשתלויות של תוסף שנטען מחדש חסרות, Claude Code מתקין אותן, טוען מחדש שוב, ומצרף (+ N dependencies: <names>) resolved לסיכום.

#טעינות מחדש שמשנות כלי MCP

כשהטעינה מחדש תוסיף או תסיר שרת MCP של תוסף או את הכלי LSP, והשינוי הזה יבטל את מטמון הפרומפט, Claude Code לא מחיל את הטעינה מחדש. הוא מדפיס שורה כגון This reload changes MCP tools (<server>) , your next message will re-read the whole conversation instead of using the cache. Run /reload-plugins --force to apply. העבירו --force כדי להחיל אותה בכל זאת.

#סשנים בלי מסוף אינטראקטיבי

/reload-plugins רץ גם בסשנים בלי מסוף אינטראקטיבי, כגון אפליקציית שולחן העבודה, ה Agent SDK, ומצב לא אינטראקטיבי עם -p. דורש Claude Code v2.1.260 או חדש יותר.

בסשנים האלה, הפקודה רצה רק כשמקלידים אותה לסשן בעצמכם, כגון בפרומפט של -p או בתיבת הפרומפט של אפליקציית שולחן העבודה. כשהיא מגיעה בדרך אחרת, כגון דרך Remote Control או הודעה שהועברה מ Slack, הפקודה משיבה /reload-plugins isn't available over a remote connection in this session. ולא טוענת דבר מחדש.

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

#דגלים שטוענים תוסף לסשן אחד

שני דגלי claude טוענים תוסף לסשן אחד בלבד, בלי להתקין אותו. שניהם ניתנים לחזרה.

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

דגלתיאורדוגמה
--plugin-dir <path>טוען תוסף מתיקייה או מארכיון .zip של תוסף. תיקייה של תוספים טוענת כל תיקיית בת שמכילה .claude-plugin/plugin.json. כל דגל מקבל נתיב אחדclaude --plugin-dir ./my-plugin --plugin-dir ./other.zip
--plugin-url <url>מביא ארכיון .zip של תוסף מכתובת URL. חזרו על הדגל, או העבירו כמה כתובות URL מופרדות ברווח בערך אחד עם מרכאותclaude --plugin-url "https://example.com/a.zip https://example.com/b.zip"

תוסף שאחד מהדגלים האלה טוען הוא תוסף לסשן בלבד. claude plugin list מציג אותו רק כשאותו דגל מופיע לפני פקודת המשנה, כמו ב-claude --plugin-dir ./my-plugin plugin list. התוסף מופיע כ-<name>@inline תחת כותרת שמתחילה ב-Session-only plugins, ו---json מדווח על scope שלו כ-session.

כשתוסף לסשן בלבד חולק שם עם תוסף מותקן, Claude Code טוען את העותק לסשן בלבד לאותו סשן ומדלג על העותק המותקן. העותק המותקן נטען אם השבתם את העותק לסשן בלבד באמצעות claude plugin disable <name>@inline, או אם הגדרות מנוהלות נועלות את שם התוסף הזה. לקדימות, ראו הפניה לטעינת תוספים.

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

מתוך Agent SDK, האפשרות plugins שקולה ל---plugin-dir.

#הצעדים הבאים