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

תיעוד 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

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