תיעוד 73
המלץ על התוסף שלך מתוך ה-CLI
בקש ממשתמשי Claude Code להתקין את התוסף שלך משוק רשמי, על ידי פליטת תג claude-code-hint מתוך ה-CLI או ה-SDK שלך.
אם אתה מתחזק CLI או SDK, הכלי שלך יכול לבקש ממשתמשי Claude Code להתקין את התוסף שלך. כאשר ה-CLI מזהה שהוא רץ בתוך Claude Code, כתוב תג <claude-code-hint /> של שורה אחת אל stderr. Claude Code מסיר את השורה מפלט כלי Bash ו-PowerShell לפני שהמודל רואה את הפלט, ואז מציג למשתמש בקשת התקנה חד פעמית.
הדף הזה חל רק אם התוסף שלך רשום ב-claude-plugins-official או בשוק אחר עם אחד משמות השוק הרשמיים של Anthropic. שוק הקהילה, claude-community, אינו אחד מהם.
[!NOTE]
כדי לפרסם תוסף, ראה פרסום והפצה של תוסף.
#פליטת הרמז
פלוט את התג רק כאשר CLAUDECODE או CLAUDE_CODE_CHILD_SESSION מוגדרים, כדי שהוא לא יופיע כאשר אדם מריץ את ה-CLI שלך ישירות.
Claude Code מגדיר CLAUDECODE=1 בפקודות שהוא מריץ דרך כלי Bash ו-PowerShell ובפקודות hook. מגרסה v2.1.172 ואילך הוא גם מגדיר שם CLAUDE_CODE_CHILD_SESSION=1. המשתנים נבדלים באילו תהליכים נושאים אותם:
CLAUDECODE: מוגדר על ידי כל גרסה של Claude Code. גם הרחבות IDE מגדירות אותו בטרמינלים המשולבים שלהן, ולכן שער עלCLAUDECODEבלבד גם פולט את התג כאשר אדם מריץ את ה-CLI בעצמו באחד מהטרמינלים האלהCLAUDE_CODE_CHILD_SESSION: מוגדר רק בתהליכי משנה ש-Claude Code עצמו מפעיל. השתמש בו כאשר אפשר לדרוש גרסה v2.1.172 או חדשה יותר
במדריך משתני הסביבה יש את הפרטים.
הדוגמאות הבאות שמות שער על CLAUDECODE לטווח הרחב ביותר ופולטות רמז לתוסף בשם example-cli בשוק הרשמי:
Node.js
if (process.env.CLAUDECODE) {
process.stderr.write(
'<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />\n',
)
}Python
import os, sys
if os.environ.get("CLAUDECODE"):
print(
'<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />',
file=sys.stderr,
)Go
if os.Getenv("CLAUDECODE") != "" {
fmt.Fprintln(os.Stderr,
`<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />`)
}Shell
if [ -n "$CLAUDECODE" ]; then
printf '%s\n' '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />' >&2
fiהחלף את example-cli בשם התוסף שלך בשוק הרשמי.
אפשר לפלוט את הרמז בכל הפעלה, כי Claude Code מבקש עבור כל תוסף פעם אחת.
כדי לבדוק את הפולט, הרץ CLAUDECODE=1 example-cli בטרמינל ואשר ששורת התג מופיעה ב-stderr, ואז הרץ example-cli בלי המשתנה ואשר ששום דבר נוסף לא מודפס.
#פורמט הרמז
התג חייב לתפוס שורה משלו. Claude Code מתעלם מתג שמוטמע באמצע שורה.
לתג יש שלושה מאפיינים, וכולם נדרשים:
| מאפיין | תיאור |
|---|---|
v | גרסת פרוטוקול. 1 הוא הערך הנתמך היחיד |
type | סוג הרמז. plugin הוא הערך הנתמך היחיד |
value | מזהה תוסף בצורת name@marketplace |
ערכים יכולים להיות במרכאות כפולות או בלי מרכאות. ערך בלי מרכאות לא יכול להכיל רווח לבן.
Claude Code מסיר את השורה מהפלט גם כאשר v או type לא מזוהים.
#בדיקה מתי הבקשה מופיעה
הבקשה מופיעה רק בסשנים אינטראקטיביים בטרמינל. בהרצות claude -p, בהרצות subagent, ובפלט פקודות hook, התג מוסר ולא מוצגת בקשה. כל הבדיקות האלה חייבות גם לעבור:
- רשמי וניתן להתקנה:
valueמציין תוסף ש-Claude Code מוצא בעותק המקומי שלו של שוק רשמי, שעדיין לא מותקן, וששום מדיניות לא חוסמת - אנליטיקה פעילה: סשן שבו האנליטיקה של Claude Code כבויה אף פעם לא מבקש, לדוגמה סשן עם
DISABLE_TELEMETRY,DO_NOT_TRACK, אוCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICמוגדרים, או סשן אצל ספק צד שלישי כמו Amazon Bedrock, שבו חל ביטול אוטומטי של טלמטריה - מגבלות תדירות: בקשה אחת לסשן, בקשה אחת אי פעם לכל תוסף בלי קשר לתשובת המשתמש, ואף בקשה אחרי שכבר התבקשו 100 תוספים במכונה הזו
- לא כבוי: המשתמש לא בחר No, and don't show plugin installation hints again
- סשן מקומי ומלווה: סביבת העבודה של הסשן מקומית ולא על מכונת ענן או מכונה מרוחקת, והסשן לא רץ ללא השגחה. לדוגמה, סשן שהתחיל עם
--cloud, סשן שמשרת Remote Control, או חבר צוות agent-team אף פעם לא מבקש
#תצוגה מקדימה של מה שהמשתמש רואה
כאשר הבדיקות בבדיקה מתי הבקשה מופיעה עוברות, Claude Code מציג תיבת דו שיח Plugin recommendation כמו הבאה:
─────────────────────────────────────────────────────────────
Plugin recommendation
The example-cli command suggests installing a plugin.
Plugin: example-cli
Marketplace: claude-plugins-official
Description: Official integration for example-cli deployments
Would you like to install it?
❯ 1. Yes, install
2. No
3. No, and don't show plugin installation hints again
─────────────────────────────────────────────────────────────תיבת הדו שיח מציינת את המילה הראשונה של פקודת המעטפת ש-Claude הריץ, כדי שמשתמשים יוכלו לזהות אי התאמה. לכל תשובה יש אפקט אחד:
- Yes, install: מתקין את התוסף בהיקף משתמש
- No, and don't show plugin installation hints again: מכבה בקשות רמז עתידיות עבור המשתמש הזה
- אין תשובה במשך 30 שניות: נספר כ-No
#הצעדים הבאים
- פרסום והפצה של תוסף: המסלולים להפצת תוסף, כולל השוק הרשמי, שהרמז דורש
- מדריך פקודות תוספים: פקודת המעטפת שמתקינה את אותו תוסף מחוץ לסשן