Skip to main content
Sie führen Plugin-Befehle entweder als claude plugin aus Ihrer Shell oder einem Skript aus, oder als /plugin und /reload-plugins innerhalb einer Claude Code-Sitzung. Diese Referenz gibt die Flags, Standardwerte, Ausgabe und Exit-Codes jedes Befehls an, zusammen mit den zwei Flags, die ein Plugin für eine Sitzung laden. Die folgenden Tabellen listen die häufig verwendeten Optionen jedes Unterbefehls auf, nicht jede Option. Führen Sie claude plugin --help in Ihrer Shell aus, um zu sehen, welche Unterbefehle Ihre Version hat, und claude plugin <subcommand> --help für die vollständige Optionsliste eines Unterbefehls.
Diese Fälle werden auf anderen Seiten behandelt:

claude plugin-Befehle

Führen Sie claude plugin <subcommand> aus Ihrer Shell oder einem Skript aus, außerhalb einer Claude Code-Sitzung. Diese Unterbefehle installieren und verwalten Plugins, ohne das /plugin-Panel zu öffnen. claude plugins ist ein Alias für claude plugin. Jeder Unterbefehl teilt diese Exit-Codes, Plugin-Argumente und Bereichswerte:
  • Exit-Codes: 0 bei Erfolg und 1 bei Fehler. validate fügt Exit 2 für einen unerwarteten Fehler hinzu, und eval fügt die in seinem Abschnitt aufgelisteten Codes hinzu.
  • Plugin-Argumente: ein <plugin>-Argument ist ein Plugin-name oder name@marketplace. Wenn zwei Marktplätze denselben Namen anbieten, verwenden Sie die qualifizierte Form. configure nimmt nur die qualifizierte Form.
  • Bereiche: --scope nimmt user, project oder local und benennt die Einstellungsdatei, in die der Befehl schreibt. update nimmt auch managed.

plugin init

Gerüst für ein neues Plugin unter ~/.claude/skills/<name>/. Es wird in Ihrer nächsten Sitzung als <name>@skills-dir ohne Installationsschritt geladen. new ist ein Alias für init. Für den Erstellen-, Test- und Bearbeitungs-Workflow, der mit diesem Befehl beginnt, siehe Plugin erstellen.
<name> wird zum Verzeichnisnamen unter ~/.claude/skills/ und zum name des Plugins in seinem Manifest. Der Befehl hat kein Flag für einen anderen Ort. Um stattdessen innerhalb eines Projekts zu gerüsten, siehe Plugin erstellen. Gerüst für ein Plugin mit Starter-Skill- und Hook-Dateien:
Claude Code validiert, was es geschrieben hat, und druckt Created plugin "my-helper" at ~/.claude/skills/my-helper, gefolgt von der ID, unter der es geladen wird, und dem claude plugin disable-Befehl, der es ausschaltet. Claude Code beendet sich mit 1 ohne zu schreiben, wenn es nicht sicher gerüsten kann, und die Meldung nennt den Grund. Dies sind häufige Gründe:
  • Ein unbekannter --with-Wert
  • Ein vorhandenes Gerüst am Ziel ohne --force
  • Eine verwaltete Einstellung, die Skills-Verzeichnis-Plugins blockiert

plugin install

Installieren Sie ein Plugin von einem Ihrer Marktplätze. i ist ein Alias für install.
Die meisten Plugins werden ohne Eingabeaufforderung installiert. Für ein Plugin, dessen Marktplatz-Eintrag einen Befehl zur Installation ausführt oder einen headersHelper für seinen Download setzt, druckt Claude Code zuerst den Befehl und fragt Run this command now? [y/N]. Führen Sie claude plugin install --help in Ihrer Shell aus, um jede Option zu sehen, die Ihre Version unterstützt. Übergeben Sie -y von Ihrem eigenen Terminal, um den angezeigten Befehl ohne Eingabeaufforderung zu akzeptieren. Hier ist, was ohne TTY und wenn Claude den Befehl ausführt, passiert:
  • stdin oder stdout ist keine TTY, und Sie übergeben weder -y noch --accept-command: die Installation wird abgelehnt. Die Ausgabe besagt, dass der Befehl nur angezeigt wurde, und der Exit-Code ist 1
  • Claude führt den Befehl über sein Bash-Tool aus: -y wird ignoriert. Führen Sie den Befehl stattdessen von Ihrem eigenen Terminal aus
Installieren Sie ein Plugin für alle, die das Projekt klonen:
Claude Code druckt Successfully installed plugin: formatter@my-marketplace (scope: project). Wenn nichts Neues installiert wird, besagt die Ausgabe warum:
  • Bereits in diesem Bereich installiert: die Ausgabe ist Plugin "formatter@my-marketplace" is already installed (scope: project) und der Exit-Code ist 0
  • Sie lehnen eine Befehlsquellen-Eingabeaufforderung ab: die Ausgabe ist Aborted. und der Exit-Code ist 1
  • Sie lehnen eine headersHelper-Eingabeaufforderung ab, oder sie kann ohne TTY nicht bestätigt werden: die Ausgabe ist Aborted — the command was not run. und der Exit-Code ist 1

JSON-Ergebnisformat

Wenn Sie --json an plugin install übergeben, ist die letzte Zeile von stdout ein JSON-Objekt. Analysieren Sie nur diese Zeile, da Claude Code jeden Befehl, den der Marktplatz deklariert, davor druckt. Drei Felder sind immer vorhanden:
  • command: der Unterbefehl, der ausgeführt wurde, z. B. install
  • outcome: ok oder failed
  • message: eine benutzerfreundliche Beschreibung des Ergebnisses
Andere Felder, wie pluginId, scope und failureCode, erscheinen nur, wenn sie zutreffen. Die --json-Option auf plugin uninstall, plugin update, plugin enable und plugin disable druckt dasselbe Objekt mit den eigenen Feldern dieses Unterbefehls. Ein Nutzungsfehler, wie ein ungültiger --scope, druckt keine Ergebniszeile und beendet sich mit 1 mit dem Grund auf stderr.

JSON-Ergebnis für Marktplatz-Befehle

Bei plugin marketplace add, plugin marketplace remove und plugin marketplace update druckt --json ein JSON-Objekt in der letzten Zeile von stdout mit den Feldern command, outcome und message. Das Folgende ist das Ergebnis von claude plugin marketplace remove your-marketplace --json:
Der command-Wert ist marketplace-add, marketplace-remove oder marketplace-update. Die folgenden Felder erscheinen nur, wenn sie zutreffen:
  • marketplace: der Name des Marktplatzes, auf den der Befehl angewendet wurde
  • failureCode: ein Code für den Grund, warum der Befehl fehlgeschlagen ist, z. B. invalid_source
plugin marketplace add und plugin marketplace remove drucken möglicherweise keine Ergebniszeile, wenn das Argument der reservierte Name anthropic-plugin-directory ist. Prüfen Sie für diesen Namen daher den Exit-Code.

Angezeigten Installationsbefehl akzeptieren

Wenn ein --json-Lauf einen vom Marktplatz deklarierten Befehl anzeigt und ihn nicht ausführt, trägt das failed-Ergebnis auch ein shownCommand-Objekt. Seine Felder enthalten den Befehl wie angezeigt, das Plugin, zu dem er gehört, und den sha256 des Befehls. Um genau diesen Befehl zu akzeptieren, führen Sie die Installation erneut mit diesem sha256 als --accept-command von Ihrem eigenen Terminal aus, da das Flag keine Auswirkung innerhalb einer Claude Code-Sitzung hat. Erfordert Claude Code v2.1.271 oder später. Der sha256 zählt als Akzeptanz für genau diesen Befehl, Plugin und Marktplatz-Katalog. Wenn sich einer von ihnen seit der Anzeige des Befehls geändert hat, akzeptiert Claude Code den sha256 nicht und zeigt den Befehl erneut an. Eine Änderung, die die Marktplatz-Aktualisierung des Laufs selbst abruft, zählt auch als solche Änderung. Wenn shownCommand.acceptCommandMatched false ist, stimmt der sha256, den Sie übergeben haben, nicht mit dem jetzt angezeigten Befehl überein. Überprüfen Sie diesen Befehl, bevor Sie ihn mit seinem sha256 erneut ausführen.

plugin uninstall

Entfernen Sie ein installiertes Plugin aus einem Bereich. remove und rm sind Aliase für uninstall.
Deinstallieren Sie ein Plugin aus dem Projektbereich:
Claude Code druckt Successfully uninstalled plugin: formatter (scope: project). Wenn das Plugin nicht in diesem Bereich installiert ist, druckt der Befehl eine Zeile, die mit Failed to uninstall plugin "formatter@my-marketplace": beginnt, und beendet sich mit 1. Wenn die Fehlerzeile mit "formatter" was not uninstalled: fortfährt und eine Einstellungsdatei nennt, konnte Claude Code nicht bestätigen, dass die Einstellungen des Bereichs das Plugin nicht mehr aktivieren, sodass das Plugin mit allem, was es gespeichert hat, installiert bleibt. Mit --json trägt das Ergebnis failureCode: "settings_still_on". Diese Einstellungsprüfung erfordert Claude Code v2.1.282 oder später.

Was eine Deinstallation löscht und behält

Wenn Sie ein Plugin aus dem letzten Bereich deinstallieren, in dem es installiert ist, löscht Claude Code auch die gespeicherten Optionen und Geheimnisse des Plugins und sein Datenverzeichnis, ~/.claude/plugins/data/<id>/. Es gibt drei Ausnahmen:
  • Mit --keep-data bleibt das Datenverzeichnis
  • Wenn ein anderes installiertes Plugin denselben Ordner verwendet, z. B. eines, dessen ID sich von diesem nur in der Groß-/Kleinschreibung unterscheidet, bleibt das Datenverzeichnis
  • Wenn Claude Code die Liste der installierten Plugins nach dem Entfernen des Plugins aus diesem Bereich nicht zurücklesen kann, bleiben die Optionen, Geheimnisse und das Datenverzeichnis alle erhalten, da das Plugin möglicherweise noch in einem anderen Bereich installiert ist. Die Deinstallation ist trotzdem erfolgreich. Die Meldung listet auf, was geblieben ist und wie man es löscht, und mit --json trägt das Ergebnis savedKept: "install_records_unreadable"
Mit --json meldet keptData, ob das Verzeichnis geblieben ist, und /plugin zeigt · data preserved, wenn es das tat. Für ein Verzeichnis, das ohne --keep-data bleibt, erfordert diese Meldung Claude Code v2.1.281 oder später. Das Feld savedKept erfordert Claude Code v2.1.282 oder später.

plugin enable

Aktivieren Sie ein deaktiviertes Plugin. Für ein Plugin, das von claude.ai synchronisiert wird, übergeben Sie <name>@synced als Plugin.
Ohne --scope prüft der Befehl Ihre Einstellungsdateien in der Reihenfolge lokal, Projekt, Benutzer, und verwendet den ersten Bereich, der das Plugin erwähnt. Wenn Sie einen --scope übergeben, wo das Plugin nicht deklariert ist, schreibt der Befehl entweder eine Überschreibung oder schlägt fehl:
  • Ein Bereich, der Vorrang vor dem deklarierenden hat: Claude Code schreibt eine Überschreibung in dem Bereich, den Sie übergeben haben. Zum Beispiel deaktiviert claude plugin disable formatter --scope local ein projektaktiviertes Plugin nur für Sie
  • Jeder andere Bereich: der Befehl schlägt fehl mit Plugin "formatter" is installed at project scope, not user. Use --scope project or omit --scope to auto-detect.
Wenn das Plugin bereits im aufgelösten Bereich aktiviert ist, druckt der Befehl Plugin "formatter" is already enabled und beendet sich mit 1. Mit --json hat das Ergebnis "failureCode": "already_in_goal_state" und "alreadyInGoalState": true, sodass ein Skript diesen Fall als Erfolg behandeln kann. Wenn das Plugin Abhängigkeiten deklariert, aktiviert Claude Code diese auch. Der Befehl schlägt in diesen Fällen fehl:
  • Eine Abhängigkeit ist nicht installiert: enable schlägt fehl und druckt den claude plugin install-Befehl für jede fehlende Abhängigkeit
  • Eine Abhängigkeit wird durch die Plugin-Richtlinie Ihrer Organisation blockiert: enable schlägt fehl und nennt die blockierte Abhängigkeit
  • Eine Abhängigkeit ist auf false in einem Bereich mit höherem Vorrang als der Zielbereich gesetzt: enable schlägt fehl. Aktivieren Sie die Abhängigkeit in diesem Bereich, oder übergeben Sie --scope, um dort zu schreiben
Aktivieren Sie ein Plugin überall dort, wo es deklariert ist:
Claude Code druckt Successfully enabled plugin: formatter (scope: project) und nennt den erkannten Bereich.

plugin disable

Deaktivieren Sie ein Plugin, ohne es zu deinstallieren. Für ein Plugin, das von claude.ai synchronisiert wird, übergeben Sie <name>@synced als Plugin.
Ohne --scope wird der Bereich in der gleichen lokalen, Projekt-, Benutzer-Reihenfolge wie plugin enable automatisch erkannt. Wenn Sie weder einen Plugin-Namen noch --all übergeben, druckt Claude Code Please specify a plugin name or use --all to disable all plugins und beendet sich mit 1. Das Deaktivieren eines Plugins, das bereits deaktiviert ist, druckt Plugin "formatter" is already disabled und beendet sich mit 1, wie plugin enable für ein bereits aktiviertes Plugin. Der Befehl schlägt für ein Plugin fehl, das noch erforderlich ist:
  • Ein anderes aktiviertes Plugin hängt davon ab: der Befehl schlägt fehl und nennt die Abhängigen, die zuerst deaktiviert werden sollen
  • Ihre Organisation verlangt es als synchronisiertes Plugin: der Befehl schlägt fehl und speichert nichts
Deaktivieren Sie ein Plugin:
Claude Code druckt Successfully disabled plugin: formatter (scope: project).

plugin update

Aktualisieren Sie ein Plugin auf die neueste Version, die sein Marktplatz anbietet. Die neue Version wird in Ihrer nächsten Sitzung geladen, oder nachdem Sie /reload-plugins in einer laufenden ausführen.
Aktualisieren Sie ein Plugin:
Claude Code druckt Checking for updates for plugin "formatter@my-marketplace"…, dann das Ergebnis. Wenn nichts neuer ist, druckt es formatter is already at the latest version (1.0.0). und beendet sich mit 0, es sei denn, es versucht die Abhängigkeitsinstallation des Plugins erneut und diese Installation schlägt fehl.

Welchen Bereich der Befehl aktualisiert

Wenn Sie --scope weglassen, aktualisiert der Befehl das Plugin im spezifischsten Bereich, in dem es für Ihr aktuelles Projekt installiert ist, und prüft lokal, Projekt, Benutzer, dann verwaltet. Vor v2.1.281 verwendete der Befehl user, wenn Sie --scope wegließen, sodass das Aktualisieren eines Plugins, das nur im Projekt- oder lokalen Bereich installiert ist, mit Plugin "<name>" is not installed at scope user fehlschlug. Übergeben Sie auf diesen Versionen --scope. managed ist der einzige Bereich, den Sie aktualisieren, aber nicht installieren können. Für von Administratoren installierte Plugins siehe Plugins für Ihre Organisation verwalten.

Nach bloßem Namen aktualisieren

Sie können einen bloßen Plugin-Namen übergeben, den der Befehl gegen Ihre installierten Plugins abgleicht. Wenn installierte Plugins von verschiedenen Marktplätzen denselben Namen teilen, weigert sich der Befehl zu aktualisieren und listet die qualifizierten plugin-name@marketplace-name-Befehle auf, die stattdessen ausgeführt werden sollen. Das Aktualisieren nach bloßem Namen erfordert Claude Code v2.1.246 oder später.

Unvollständige Abhängigkeitsinstallation erneut versuchen

Wenn das Plugin bereits auf seiner neuesten Version ist, kann der Befehl auch eine unvollständige Abhängigkeitsinstallation in seiner zwischengespeicherten Kopie erneut versuchen. Für die Fälle, in denen dieser Wiederholungsversuch ausgeführt oder übersprungen wird, siehe Die aufgelisteten Pakete sind nicht installiert. Wenn der Wiederholungsversuch fehlschlägt, ist die Ausgabe Failed to update plugin "formatter@my-marketplace" mit dem Grund, und der Exit-Code ist 1. Vor v2.1.287 meldete der Befehl das Plugin als auf seiner neuesten Version, ohne die Installation erneut zu versuchen.

plugin list

Listet installierte Plugins mit ihrer Version, ihrem Bereich und ihrem Status auf.
Claude Code gruppiert die benutzerfreundliche Ausgabe nach dem Laden jedes Plugins:
  • Installed plugins:: Plugins, die Sie von einem Marktplatz installiert haben
  • Session-only plugins (--plugin-dir / --plugin-url):: Plugins, die von diesen Flags im gleichen Befehl geladen werden, wie in claude --plugin-dir ./my-plugin plugin list
  • Skills-directory plugins (.claude/skills/*):: Plugins, die Claude Code in einem Skills-Verzeichnis gefunden hat
  • Synced from claude.ai: Plugins, die von Ihrem claude.ai-Konto synchronisiert werden
Wenn nichts in einer Gruppe vorhanden ist, druckt Claude Code No plugins installed. Use `claude plugin install` to install a plugin.

JSON-Ausgabe

Mit --json druckt Claude Code ein Array mit einem Objekt pro Installation. Jedes Objekt trägt die unten aufgelisteten Felder. id, version, scope, enabled und installPath sind immer vorhanden, und die anderen erscheinen nur, wenn sie zutreffen. Mit --json --available druckt Claude Code ein Objekt statt eines Arrays. Sein installed-Feld hält das Array von installierten-Plugin-Objekten, und sein available-Feld hält ein Objekt pro nicht installiertem Marktplatz-Plugin mit den unten aufgelisteten Feldern.

plugin details

Zeigen Sie das Komponenten-Inventar eines Plugins und seine projizierte Token-Kosten an. Das Plugin muss geladen sein: installiert, in einem Skills-Verzeichnis gefunden, oder mit --plugin-dir oder --plugin-url im gleichen Befehl übergeben. Der <name> ist ein Plugin-name oder name@marketplace.
Der Befehl nimmt keine Flags außer --help. Zeigen Sie, was ein installiertes Plugin beiträgt:
Claude Code druckt den Namen, die Version, die Beschreibung und die Quelle des Plugins, dann diese Abschnitte:
  • Component inventory: die Skills, Agents, Hooks, MCP-Server und LSP-Server des Plugins
  • Projected token cost: die immer aktiven Token, die das Plugin zu jeder Sitzung hinzufügt
  • Per-component (rounded): Schätzungen für immer aktiv und bei Aufruf für jeden Skill, Agent und Befehl. Weggelassen, wenn das Plugin keine hat
Für die Bedeutung der beiden Kostenzahlen siehe Plugin-Kosten und -Nutzung messen. Für ein Plugin, das nicht geladen ist, druckt Claude Code Plugin "formatter" not found. Run `claude plugin list` to see installed plugins, or pass --plugin-dir <path> to load one from disk. und beendet sich mit 1.

plugin configure

Zeigen Sie die userConfig-Optionen eines installierten Plugins und welche gesetzt sind, oder speichern Sie Werte, die auf stdin eingegeben werden. Erfordert Claude Code v2.1.285 oder später.
Ohne Flags listet der Befehl jede Option mit bis zu drei Labels auf: required oder optional, dann sensitive für eine Option, die das Manifest als sensitiv deklariert, dann set oder not set. Er druckt keine gespeicherten Werte. Mit --json enthält die Ausgabe die gespeicherten Werte von Optionen, die nicht sensitiv sind, und nie den Text einer sensitiven. Um Werte zu speichern, schreiben Sie sie in eine Datei als ein JSON-Objekt, das Optionsschlüssel auf String-Werte abbildet, und übergeben Sie die Datei auf stdin. Ersetzen Sie formatter@my-marketplace durch die ID Ihres eigenen Plugins, wie claude plugin list sie zeigt. Dieses Beispiel setzt eine Option namens api_url aus einer Datei values.json, die {"api_url": "https://example.com"} enthält:
Claude Code validiert jeden Wert gegen den deklarierten Typ der Option und druckt Configuration saved. Restart Claude Code to apply it. Wenn Sie einen Schlüssel übergeben, den das Manifest nicht deklariert, oder einen Wert, der die Validierung nicht besteht, speichert der Befehl nichts, druckt Failed to save configuration: mit dem Grund, und beendet sich mit 1. Mit --json druckt ein abgelehnter Wert auch ein Objekt auf stdout, dessen refused-Feld die message trägt und, wenn eine Option schuldig ist, ihren option-Schlüssel. Übergeben Sie die vollständige name@marketplace-ID des Plugins, wie claude plugin list sie zeigt. configure akzeptiert keinen bloßen name. Wenn kein geladenes Plugin diese ID hat, druckt der Befehl No installed plugin has the id "<plugin>". und beendet sich mit 1. Für die Einstellungen eines gebündelten MCP-Servers siehe plugin install --config oder das Configure-Element in /plugin.

plugin prune

Entfernen Sie automatisch installierte Abhängigkeiten, die kein installiertes Plugin mehr benötigt. Der Befehl entfernt niemals ein Plugin, das Sie selbst installiert haben. autoremove ist ein Alias für prune.
Zeigen Sie eine Vorschau, was ein Prune entfernen würde:
Claude Code listet die verwaisten Abhängigkeiten auf und endet mit (dry run — nothing removed). Wenn es nichts zu entfernen gibt, druckt es eine Zeile, die mit Nothing to prune beginnt. Ohne --dry-run entfernt der Befehl die verwaisten Abhängigkeiten nur, nachdem Sie an der Eingabeaufforderung bestätigt oder -y übergeben haben. Der Exit-Code ist 0, egal wie Sie an der Eingabeaufforderung antworten. Was prune tut, hängt davon ab, ob ein Terminal angehängt ist und ob Sie -y übergeben:

plugin eval

Führen Sie die eval-Fälle eines Plugins aus und melden Sie bewertete Ergebnisse. Erfordert Claude Code v2.1.269 oder später. Jeder Fall ist ein Prompt plus Bewerter. Claude Code führt ihn mehrmals in einer isolierten Sitzung mit nur dem Ziel-Plugin geladen aus, und standardmäßig auch ohne das Plugin, sodass der Bericht den Unterschied zeigt. Siehe Plugins mit Evals testen für das Fallformat, Bewerter, Ergebnisse und CI-Nutzung.
Das optionale target standardisiert auf das aktuelle Verzeichnis und nimmt jede dieser Formen:
  • Ein Plugin-Verzeichnis
  • Eine einzelne prompt.md oder case.yaml-Datei
  • Ein installiertes Plugin als name oder name@marketplace
  • name@skills-dir
Setzen Sie das Ziel vor --tag, --allow-tools und --json. Jede dieser Optionen nimmt die Wörter, die ihr folgen, als ihren Wert, sodass ein Ziel, das nach einer von ihnen geschrieben wird, als ein Tag, ein Tool-Name oder der JSON-Ausgabepfad statt als Ziel gelesen wird. Diese Tabelle listet die Optionen auf, die die meisten Läufe verwenden. Führen Sie claude plugin eval --help für den vollständigen Satz aus, einschließlich --case, --tag, --output-dir, --report, --allow-real-servers, --keep-temp und --verbose. Der Exit-Code meldet, wie der Lauf endete. Um darauf in einer Pipeline zu reagieren, siehe Evals in CI ausführen.

plugin eval init

Erstellen Sie eine Eval-Suite für das Plugin im aktuellen Verzeichnis. Erfordert Claude Code v2.1.269 oder später. Siehe Erstellen Sie Ihre erste Eval-Suite.
Führen Sie den Befehl aus dem Plugin-Stammordner aus, dem Verzeichnis, das .claude-plugin/plugin.json oder die SKILL.md des Skills hält. Um die Suite absichtlich in einem anderen Verzeichnis zu gerüsten, übergeben Sie --eval-dir. In einem Terminal öffnet der Befehl eine interaktive Claude Code-Sitzung für ein Authoring-Interview. Im Interview führt Claude Folgendes durch:
  1. Liest das Plugin
  2. Fragt Sie, was es gut tun sollte
  3. Schlägt Fälle und Bewerter vor
  4. Schreibt die Falldateien
  5. Führt die Fälle aus und überprüft die Noten mit Ihnen, um zu überprüfen, dass die Bewerter so bewerten, wie Sie es würden
Mit --bare oder ohne Terminal schreibt der Befehl stattdessen eine leere Einzelfall-Vorlage. Wenn Claude den Befehl von innerhalb einer Claude Code-Sitzung ausführt, druckt der Befehl die Interview-Anweisungen für diese Sitzung, um sie zu befolgen, statt eine Vorlage zu schreiben. Der optionale name ist ein Fallname. Er ist erforderlich mit --bare oder ohne Terminal, da der Befehl die leere Vorlage für diesen Fall schreibt. Ein Fallname beginnt mit einem Buchstaben oder einer Ziffer und enthält nur Buchstaben, Ziffern, ., _ und -. Auf jeder Plattform weigert sich der Befehl auch, Namen zu akzeptieren, die Windows nicht speichern kann, wie con oder ein Name, der mit . endet. Der Befehl akzeptiert diese Optionen:

plugin tag

Erstellen Sie ein kommentiertes git-Tag mit dem Namen <name>--v<version> für eine Plugin-Veröffentlichung. Vor dem Tagging prüft der Befehl, dass das plugin.json des Plugins und jeder Marktplatz-Eintrag, der es auflistet, sich auf die Version einigen. Für wann ein Release getaggt werden soll, siehe Plugin veröffentlichen.
Der [path] ist das Plugin-Verzeichnis, standardisiert auf das aktuelle Verzeichnis. Der Befehl findet den Marktplatz-Eintrag, indem er von diesem Verzeichnis bis zu einem .claude-plugin/marketplace.json, das das Plugin auflistet, hinaufgeht. Zeigen Sie eine Vorschau des Tags für ein Plugin in einem Marktplatz-Checkout:
Claude Code druckt den Plan:
  • Der Plugin-Name
  • Die Version und aus welcher Datei sie kommt
  • Der passende Marktplatz-Eintrag, wenn es einen gibt
  • Der Tag-Name
  • Die git tag- und git push-Befehle, die es ausführen würde
Ohne --dry-run druckt Claude Code Created tag formatter--v1.0.0 und entweder Pushed to origin oder den Push-Befehl, den Sie selbst ausführen müssen. Wenn der Push fehlschlägt, wird das Tag immer noch lokal erstellt und der Befehl beendet sich mit einem Fehler. Der Befehl beendet sich mit 1 und druckt den Grund, wenn er nicht sicher taggen kann. Häufige Gründe sind:
  • Keine version in plugin.json oder dem Marktplatz-Eintrag
  • Das Tag existiert bereits
  • Der Arbeitsbaum ist schmutzig

plugin test

Führen Sie die Tests für einen Mod aus, ein Plugin, dessen Code Event-Handler registriert. Der Befehl benötigt keine Sitzung, keine Anmeldung und kein Netzwerk. Wie Sie einen Test schreiben, erfahren Sie unter Einen Mod testen.
Das [directory] ist das Verzeichnis des Mods, standardmäßig das aktuelle Verzeichnis. Der Befehl führt jede Datei darunter aus, deren Name auf .test.ts oder .test.tsx endet, und beendet sich mit Status 1, wenn ein Test fehlschlägt. Führen Sie die Tests für einen Mod in ./first-mod aus:

plugin validate

Validieren Sie ein Plugin-Manifest, ein Marktplatz-Manifest oder die Skills, Agents und Befehle in einem Verzeichnis, und beenden Sie mit einem Code, auf den ein CI-Job reagieren kann. Für den Erstellen-, Test- und Bearbeitungs-Workflow siehe Plugin erstellen. Für das, was der Validator in jedem Manifest prüft, siehe die Plugin-Manifest-Referenz und die Marktplatz-Referenz.
Validieren Sie ein Plugin vor dem Commit:

Validieren Sie ein Verzeichnis

Der <path> ist eine Manifest-Datei oder ein Verzeichnis. Gegeben ein Verzeichnis, wählt Claude Code, was validiert werden soll, nach dem, was es dort findet:
  • .claude-plugin/marketplace.json, wenn es existiert
  • Sonst .claude-plugin/plugin.json
  • Sonst die Komponentendateien, gewählt nach dem Namen des Verzeichnisses. Das Validieren von Komponentendateien ohne Manifest erfordert Claude Code v2.1.233 oder später:
    • Ein Verzeichnis mit dem Namen skills, agents oder commands: die Dateien darin
    • Ein Verzeichnis mit dem Namen .claude: die skills-, agents- und commands-Verzeichnisse darin
    • Jedes andere Verzeichnis: diese drei Verzeichnisse unter seinem .claude
Wenn das Verzeichnis sowohl eine .claude-plugin/marketplace.json als auch eine .claude-plugin/plugin.json enthält, validiert Claude Code den Marktplatz und zusätzlich das Manifest und die Komponentendateien des Plugins. Dies erfordert Claude Code v2.1.289 oder später. Claude Code folgt nicht Symlinks innerhalb des Verzeichnisses, das Sie benennen. Was es tut, hängt davon ab, wo der Link ist:
  • Ein verknüpftes skills-, agents- oder commands-Verzeichnis unter dem Plugin- oder .claude-Root: Claude Code warnt, dass nichts darin gelesen wurde.
  • Ein verknüpfter Eintrag innerhalb eines skills-, agents- oder commands-Verzeichnisses: Claude Code überspringt ihn und warnt pro Verzeichnis, wie viele Einträge es übersprungen hat, die eine Sitzung laden würde.
  • Das skills-, agents- oder commands-Verzeichnis, das Sie benennen, ist selbst ein Symlink, oder sein übergeordnetes .claude-Verzeichnis ist: Claude Code meldet einen Fehler und prüft nichts darin. Benennen Sie stattdessen das echte Verzeichnis.
Ein paar Dateien werden nicht von einem Validierungslauf gelesen:
  • Eine SKILL.md am Plugin-Root: wenn Sie claude plugin validate gegen ein Plugin-Verzeichnis ausführen, prüft Claude Code keine SKILL.md am Plugin-Root
  • Eine CLAUDE.md am Plugin-Root: in einem Plugin-Lauf warnt Claude Code auch vor einer CLAUDE.md am Plugin-Root
  • Plugin-Dateien in einem Marktplatz-Lauf: von einem Marktplatz-Verzeichnis aus öffnet Claude Code weder die Skill-, Agent-, Befehls- oder Hook-Dateien von Plugins, die der Marktplatz in anderen Verzeichnissen auflistet, noch die MCP-Server-Dateien, die diese bündeln. Um Fehler in diesen Dateien zu finden, validieren Sie jedes Plugin-Verzeichnis

Ausgabe und Exit-Codes

Claude Code druckt die Datei, die es validiert hat, alle Fehler und Warnungen mit ihren Pfaden, und eine Urteilszeile. Der Exit-Code folgt dem Urteil: Mit --json schreibt Claude Code den Bericht auf stdout als ein JSON-Objekt mit diesen Top-Level-Feldern:
  • success: das gleiche Urteil, das der Exit-Code gibt
  • strict: ob der Lauf Warnungen als Fehler behandelt hat
  • target: der aufgelöste Pfad, den Claude Code validiert hat
  • manifest: das eigene Ergebnis des Manifests, oder null für einen Lauf ohne Manifest
  • contents: Pro-Datei-Ergebnisse, die jeweils ihre file benennen und errors-, warnings- und notes-Arrays tragen
    • gatingHooks: ob jeder Mod-Hook, der eine Aktion verweigern kann, z. B. ein tool.call-Hook, einen .catch-Handler hat. Jedes Element gibt module, pattern, hook und hasCatch an. Erfordert Claude Code v2.1.290 oder später
Bei Exit 2 schreibt der Befehl nichts auf stdout. Die Fehlermeldung geht auf stderr.

claude plugin marketplace-Befehle

Führen Sie claude plugin marketplace <subcommand> aus Ihrer Shell aus, um die Marktplätze, von denen Sie Plugins installieren, hinzuzufügen, aufzulisten, zu aktualisieren und zu entfernen.
  • Exit-Codes: diese Unterbefehle folgen der Exit-Code-Konvention der Plugin-Befehle
  • Bereiche: ihr --scope-Flag hat keine -s-Kurzform
Für das, was ein Marktplatz ist und wie Claude Code ihn zwischenspeichert, siehe Plugin-Ladeverzeichnis.

plugin marketplace add

Fügen Sie einen Marktplatz von einem GitHub-Repository, einer git-URL, einem gehosteten marketplace.json oder einem lokalen Pfad hinzu, und deklarieren Sie ihn in einer Einstellungsdatei. Nachdem Sie ihn hinzugefügt haben, installiert Claude Code alle Abhängigkeiten, die Ihre installierten Plugins vermisst haben.
<source> nimmt jede der Formen in der Tabelle unten, und seine Form entscheidet den Quellentyp und wie Claude Code den Marktplatz abruft. Für das resultierende Quellobjekt siehe die Marktplatz-Referenz. Für einen Host, dessen Klon-URLs das .git-Suffix nicht tragen, wie AWS CodeCommit, fügen Sie den Marktplatz stattdessen als git-Eintrag in extraKnownMarketplaces hinzu. Claude Code klont einen git-Eintrag, ob seine URL mit .git endet oder nicht. Claude Code klont auch eine gitlab.com-URL mit verschachtelten Untergruppen, wie https://gitlab.com/group/subgroup/project. Fügen Sie einen Marktplatz hinzu und teilen Sie ihn mit dem Projekt:
Claude Code druckt Successfully added marketplace: your-marketplace (declared in project settings), wobei der name aus dem eigenen Manifest des Marktplatzes verwendet wird. Ein wiederholtes Hinzufügen oder eine ungültige Quelle druckt stattdessen eines dieser Ergebnisse:
  • Marktplatz bereits auf der Festplatte: die Ausgabe ist Marketplace 'your-marketplace' already on disk — declared in project settings und der Exit-Code ist 0
  • Unerkannte Quelle: die Ausgabe ist Invalid marketplace source format. Try: owner/repo, https://..., or ./path und der Exit-Code ist 1
  • Bloßer Host wie gitlab.example.com/team/plugins: das Hinzufügen schlägt als ungültige owner/repo-Kurzform fehl, und die Meldung sagt Ihnen, https:// hinzuzufügen oder einen lokalen Pfad zu verwenden
Fügen Sie einen auf claude.ai gehosteten Marktplatz nach dem Namen hinzu, der im From claude.ai:-Abschnitt von claude plugin marketplace list gedruckt wird:
Mit --claudeai weigert sich der Befehl, --scope und --sparse zu akzeptieren. Der Marktplatz wird für Ihr Konto gehostet, nicht in einer Einstellungsdatei deklariert, sodass Sie ihn nicht durch das .claude/settings.json eines Projekts teilen können.

plugin marketplace list

Listet jeden Marktplatz auf, den Sie hinzugefügt haben, mit seiner Quelle.
Claude Code druckt Configured marketplaces: und eine Source:-Zeile pro Marktplatz, oder No marketplaces configured. Mit --json druckt Claude Code ein Array mit einem Objekt pro Marktplatz, tragend die unten aufgelisteten Felder. Jedes Feld ist ein string. Ein hinzugefügter claude.ai-Marktplatz hat keinen lokalen Klon, sodass sein Eintrag seine claude.ai-Identifikatoren, marketplaceId und organizationUuid, anstelle von installLocation trägt. Er trägt auch scope, wenn einer aufgezeichnet ist, und status. Wenn Ihre Terminal-Sitzungen Plugins von Ihrem claude.ai-Konto synchronisieren, endet die Text-Auflistung mit einem From claude.ai:-Abschnitt. Dieser Abschnitt nennt die Marktplätze, die claude.ai für Ihr Konto auflistet, die Sie nicht hinzugefügt haben, sowohl git-basiert als auch gehostet. Er erfordert Claude Code v2.1.273 oder später. Um einen Marktplatz aus diesem Abschnitt hinzuzufügen, siehe Marktplatz von claude.ai hinzufügen. Die --json-Ausgabe deckt nur konfigurierte Marktplätze ab und lässt den Abschnitt weg.

plugin marketplace remove

Entfernen Sie die Deklaration eines Marktplatzes aus Ihren Einstellungen. rm ist ein Alias für remove.
Wenn Sie einen Marktplatz aus dem letzten Bereich entfernen, der ihn deklariert, löscht Claude Code auch seinen Cache und deinstalliert jedes Plugin, das Sie von ihm installiert haben. Es löscht auch ihre gespeicherten Optionen und Geheimnisse und Daten, wo es kann.Um einen Marktplatz zu aktualisieren, ohne seine Plugins zu verlieren, führen Sie stattdessen plugin marketplace update aus.
Der <name> ist der Marktplatz-Name, den plugin marketplace list zeigt, nicht die Quelle, die Sie an add übergeben haben. Entfernen Sie einen Marktplatz aus jedem Bereich:
Claude Code druckt Successfully removed marketplace: your-marketplace. Wenn der Befehl Plugins deinstalliert, listet die Ausgabe sie unter einer Zeile wie Also uninstalled 2 plugins from this marketplace: auf. Um eines von ihnen erneut zu verwenden, fügen Sie den Marktplatz wieder hinzu und installieren Sie das Plugin neu. Wenn Sie einen Bereich scopen, der den Marktplatz nicht deklariert, schlägt der Befehl fehl mit Marketplace 'your-marketplace' is not declared in project settings. Omit --scope to remove it from all scopes.

plugin marketplace update

Aktualisieren Sie einen Marktplatz oder jeden Marktplatz von seiner Quelle, um neue Plugins und Versionen abzurufen. Ein Marktplatz, der mit einem Branch oder Tag ref hinzugefügt wurde, wird auf den neuesten Commit dieses Refs aktualisiert, nicht auf den Standard-Branch des Repositorys.
Aktualisieren Sie einen Marktplatz:
Claude Code druckt Successfully updated marketplace: your-marketplace. Wenn Sie den Namen weglassen, druckt es eine Anzahl wie Successfully updated 2 marketplaces.

/plugin in einer Sitzung

Innerhalb einer interaktiven Sitzung öffnet /plugin das Plugin-Panel. Jeder Unterbefehl öffnet das Panel auf einem Tab, führt eine Aktion dort aus oder druckt ein Ergebnis inline. /plugins und /marketplace sind Aliase für /plugin. Sie können diese Befehle nur in einer interaktiven Terminal-Sitzung ausführen. In einem nicht-interaktiven Lauf wie claude -p antwortet Claude Code, dass /plugin in dieser Umgebung nicht verfügbar ist. Für welche Oberflächen /plugin haben, wie man ohne es installiert, und was jeder Panel-Tab zeigt, siehe Plugins installieren und verwalten. Ein <plugin> ist ein Plugin-name oder name@marketplace. Die Tabelle unten listet jede Sitzungsform auf. Die Shell-Unterbefehle init, update, details, prune, eval, eval init und test haben keine Sitzungsform. Wenn Sie ein Plugin benennen, das nicht im aktuellen Projekt installiert ist, in /plugin enable, disable, uninstall oder configure, druckt Claude Code stattdessen Plugin "<plugin>" is not installed in this project.

/reload-plugins

Wenden Sie ausstehende Plugin-Änderungen auf die laufende Sitzung an, ohne sie neu zu starten. Ausstehende Änderungen sind Plugins, die Sie seit dem Start der Sitzung installiert, aktualisiert, aktiviert, deaktiviert oder auf der Festplatte bearbeitet haben. Wenn Sie das /plugin-Panel mit ausstehenden Änderungen schließen, die Sie darin vorgenommen haben, führt Claude Code /reload-plugins für Sie aus. Führen Sie es selbst nach Plugin-Änderungen aus, die außerhalb des Panels stattfinden, wie ein claude plugin-Befehl, den Sie in einem anderen Terminal ausgeführt haben.

Neuladen-Zusammenfassung

Claude Code lädt jedes aktive Plugin neu und druckt eine Zusammenfassungszeile, Reloaded: N plugins · N skills · N agents · N hooks · N plugin MCP servers · N plugin LSP servers, wobei die Plugin-MCP-Server-Anzahl in einer Sitzung ohne interaktives Terminal weggelassen wird. Wenn ein Plugin fehlgeschlagen ist, fügt die Zusammenfassung N errors during load. Run /plugin for details. hinzu. Die Skills-Anzahl deckt jeden Skill ab, den ein Plugin bereitstellt, sowohl seine commands/-Einträge als auch seine SKILL.md-Skills. Die Agents-Anzahl ist die Anzahl der in der Sitzung geladenen Agents, einschließlich derjenigen, die nicht von Plugins stammen. Wenn die Abhängigkeiten eines neu geladenen Plugins fehlen, installiert Claude Code sie, lädt erneut und hängt (+ N dependencies: <names>) resolved an die Zusammenfassung an.

Neuladungen, die MCP-Tools ändern

Wenn das Neuladen einen Plugin-MCP-Server oder das LSP-Tool hinzufügen oder entfernen würde, und diese Änderung würde den Prompt-Cache ungültig machen, wendet Claude Code das Neuladen nicht an. Es druckt eine Zeile wie 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. Übergeben Sie --force, um es trotzdem anzuwenden.

Sitzungen ohne interaktives Terminal

/reload-plugins läuft auch in Sitzungen ohne interaktives Terminal, wie die Desktop-App, das Agent SDK und nicht-interaktiver Modus mit -p. Erfordert Claude Code v2.1.260 oder später. In diesen Sitzungen läuft der Befehl nur, wenn Sie ihn selbst in die Sitzung eingeben, wie in der -p-Eingabeaufforderung oder dem Eingabefeld der Desktop-App. Wenn er auf andere Weise ankommt, wie durch Remote Control oder eine von Slack weitergeleitet Meldung, antwortet der Befehl /reload-plugins isn't available over a remote connection in this session. und lädt nichts neu. Das Neuladen in diesen Sitzungen verbindet oder trennt Plugin-MCP-Server nicht. Diese Änderungen treten in Ihrer nächsten Sitzung in Kraft.

Flags, die ein Plugin für eine Sitzung laden

Zwei claude-Flags laden ein Plugin für eine Sitzung nur, ohne es zu installieren. Beide sind wiederholbar. Plugin-Autoren verwenden sie, um ein Plugin vor der Veröffentlichung zu testen. Für den Laden-Bearbeiten-Neuladen-Workflow siehe Entwickeln ohne einen Marktplatz. Ein Plugin, das eines dieser Flags lädt, ist ein Sitzungs-Plugin. claude plugin list zeigt es nur, wenn das gleiche Flag dem Unterbefehl vorausgeht, wie in claude --plugin-dir ./my-plugin plugin list. Das Plugin wird als <name>@inline unter einer Überschrift angezeigt, die mit Session-only plugins beginnt, und --json meldet seinen scope als session. Wenn ein Sitzungs-Plugin einen Namen mit einem installierten Plugin teilt, lädt Claude Code die Sitzungs-Kopie für diese Sitzung und überspringt die installierte. Die installierte Kopie wird stattdessen geladen, wenn Sie die Sitzungs-Kopie mit claude plugin disable <name>@inline deaktiviert haben, oder wenn verwaltete Einstellungen diesen Plugin-Namen sperren. Für den Vorrang siehe Plugin-Ladeverzeichnis. Ein Administrator kann beide Flags und Ordner, die in der CLAUDE_CODE_PLUGIN_DIRS-Variable benannt sind, mit der verwalteten disableSideloadFlags-Einstellung ablehnen. Claude Code druckt dann, dass das Flag durch die verwalteten Einstellungen Ihrer Organisation deaktiviert ist, und beendet sich mit 1 ohne zu starten. Aus dem Agent SDK ist die plugins-Option das Äquivalent von --plugin-dir.

Nächste Schritte