Wann Plugins vs. eigenständige Konfiguration verwenden
Claude Code unterstützt zwei Möglichkeiten, um benutzerdefinierte Skills, Agents und Hooks hinzuzufügen:| Ansatz | Skill-Namen | Am besten für |
|---|---|---|
Eigenständig (.claude/-Verzeichnis) | /hello | Persönliche Workflows, projektspezifische Anpassungen, schnelle Experimente |
Plugins (Verzeichnisse mit .claude-plugin/plugin.json) | /plugin-name:hello | Freigabe für Teamkollegen, Verteilung an die Community, versionierte Releases, wiederverwendbar über Projekte hinweg |
- Sie Claude Code für ein einzelnes Projekt anpassen
- Die Konfiguration persönlich ist und nicht freigegeben werden muss
- Sie mit Skills oder Hooks experimentieren, bevor Sie diese verpacken
- Sie kurze Skill-Namen wie
/hellooder/deploymöchten
- Sie Funktionen mit Ihrem Team oder der Community teilen möchten
- Sie die gleichen Skills/Agents über mehrere Projekte hinweg benötigen
- Sie Versionskontrolle und einfache Updates für Ihre Erweiterungen möchten
- Sie über einen Marketplace verteilen
- Sie mit Namespace-Skills wie
/my-plugin:helloeinverstanden sind (Namespacing verhindert Konflikte zwischen Plugins)
Schnellstart
Dieser Schnellstart führt Sie durch die Erstellung eines Plugins mit einem benutzerdefinierten Skill. Sie erstellen ein Manifest (die Konfigurationsdatei, die Ihr Plugin definiert), fügen einen Skill hinzu und testen ihn lokal mit dem Flag--plugin-dir.
Voraussetzungen
- Claude Code installiert und authentifiziert
- Claude Code Version 1.0.33 oder später (führen Sie
claude --versionaus, um zu überprüfen)
Wenn Sie den Befehl
/plugin nicht sehen, aktualisieren Sie Claude Code auf die neueste Version. Siehe Troubleshooting für Upgrade-Anweisungen.Erstellen Sie Ihr erstes Plugin
Erstellen Sie das Plugin-Verzeichnis
Jedes Plugin befindet sich in seinem eigenen Verzeichnis, das ein Manifest und Ihre Skills, Agents oder Hooks enthält. Erstellen Sie jetzt eines:
Erstellen Sie das Plugin-Manifest
Die Manifestdatei unter Erstellen Sie dann
Für zusätzliche Felder wie
.claude-plugin/plugin.json definiert die Identität Ihres Plugins: seinen Namen, die Beschreibung und die Version. Claude Code verwendet diese Metadaten, um Ihr Plugin im Plugin-Manager anzuzeigen.Erstellen Sie das .claude-plugin-Verzeichnis in Ihrem Plugin-Ordner:my-first-plugin/.claude-plugin/plugin.json mit diesem Inhalt:my-first-plugin/.claude-plugin/plugin.json
| Feld | Zweck |
|---|---|
name | Eindeutige Kennung und Skill-Namespace. Skills werden mit diesem Präfix versehen (z. B. /my-first-plugin:hello). |
description | Wird im Plugin-Manager angezeigt, wenn Sie Plugins durchsuchen oder installieren. |
version | Verfolgen Sie Releases mit semantischer Versionierung. |
author | Optional. Hilfreich für die Zuordnung. |
homepage, repository und license siehe das vollständige Manifest-Schema.Fügen Sie einen Skill hinzu
Skills befinden sich im Verzeichnis Erstellen Sie dann
skills/. Jeder Skill ist ein Ordner, der eine Datei SKILL.md enthält. Der Ordnername wird zum Skill-Namen, mit dem Präfix des Plugin-Namespace (hello/ in einem Plugin namens my-first-plugin erstellt /my-first-plugin:hello).Erstellen Sie ein Skill-Verzeichnis in Ihrem Plugin-Ordner:my-first-plugin/skills/hello/SKILL.md mit diesem Inhalt:my-first-plugin/skills/hello/SKILL.md
Testen Sie Ihr Plugin
Führen Sie Claude Code mit dem Flag Sobald Claude Code startet, versuchen Sie Ihren neuen Skill:Sie sehen Claude mit einer Begrüßung antworten. Führen Sie
--plugin-dir aus, um Ihr Plugin zu laden:/help aus, um Ihren Skill unter dem Plugin-Namespace aufgelistet zu sehen.Warum Namespacing? Plugin-Skills sind immer mit Namespace versehen (wie
/greet:hello), um Konflikte zu vermeiden, wenn mehrere Plugins Skills mit demselben Namen haben.Um das Namespace-Präfix zu ändern, aktualisieren Sie das Feld name in plugin.json.Fügen Sie Skill-Argumente hinzu
Machen Sie Ihren Skill dynamisch, indem Sie Benutzereingaben akzeptieren. Der Platzhalter Führen Sie Claude wird Sie beim Namen begrüßen. Weitere Informationen zum Übergeben von Argumenten an Skills finden Sie unter Skills.
$ARGUMENTS erfasst jeden Text, den der Benutzer nach dem Skill-Namen bereitstellt.Aktualisieren Sie Ihre Datei SKILL.md:my-first-plugin/skills/hello/SKILL.md
/reload-plugins aus, um die Änderungen zu übernehmen, und versuchen Sie dann den Skill mit Ihrem Namen:- Plugin-Manifest (
.claude-plugin/plugin.json): beschreibt die Metadaten Ihres Plugins - Skills-Verzeichnis (
skills/): enthält Ihre benutzerdefinierten Skills - Skill-Argumente (
$ARGUMENTS): erfasst Benutzereingaben für dynamisches Verhalten
Übersicht über die Plugin-Struktur
Sie haben ein Plugin mit einem Skill erstellt, aber Plugins können viel mehr enthalten: benutzerdefinierte Agents, Hooks, MCP-Server und LSP-Server.| Verzeichnis | Speicherort | Zweck |
|---|---|---|
.claude-plugin/ | Plugin-Root | Enthält plugin.json-Manifest (optional, wenn Komponenten Standardspeicherorte verwenden) |
commands/ | Plugin-Root | Skills als Markdown-Dateien |
agents/ | Plugin-Root | Benutzerdefinierte Agent-Definitionen |
skills/ | Plugin-Root | Agent-Skills mit SKILL.md-Dateien |
hooks/ | Plugin-Root | Event-Handler in hooks.json |
.mcp.json | Plugin-Root | MCP-Server-Konfigurationen |
.lsp.json | Plugin-Root | LSP-Server-Konfigurationen für Code-Intelligenz |
settings.json | Plugin-Root | Standard-Einstellungen, die angewendet werden, wenn das Plugin aktiviert ist |
Nächste Schritte: Bereit, weitere Funktionen hinzuzufügen? Springen Sie zu Entwickeln Sie komplexere Plugins, um Agents, Hooks, MCP-Server und LSP-Server hinzuzufügen. Für vollständige technische Spezifikationen aller Plugin-Komponenten siehe Plugins-Referenz.
Entwickeln Sie komplexere Plugins
Sobald Sie sich mit grundlegenden Plugins vertraut gemacht haben, können Sie anspruchsvollere Erweiterungen erstellen.Fügen Sie Skills zu Ihrem Plugin hinzu
Plugins können Agent-Skills enthalten, um die Fähigkeiten von Claude zu erweitern. Skills werden vom Modell aufgerufen: Claude verwendet sie automatisch basierend auf dem Task-Kontext. Fügen Sie ein Verzeichnisskills/ auf Ihrer Plugin-Root mit Skill-Ordnern hinzu, die SKILL.md-Dateien enthalten:
SKILL.md benötigt Frontmatter mit den Feldern name und description, gefolgt von Anweisungen:
/reload-plugins aus, um die Skills zu laden. Für vollständige Anleitung zur Skill-Erstellung, einschließlich progressiver Offenlegung und Tool-Einschränkungen, siehe Agent-Skills.
Fügen Sie LSP-Server zu Ihrem Plugin hinzu
LSP-Plugins (Language Server Protocol) geben Claude Echtzeit-Code-Intelligenz. Wenn Sie eine Sprache unterstützen müssen, die kein offizielles LSP-Plugin hat, können Sie ein eigenes erstellen, indem Sie eine.lsp.json-Datei zu Ihrem Plugin hinzufügen:
.lsp.json
Versenden Sie Standard-Einstellungen mit Ihrem Plugin
Plugins können eine Dateisettings.json auf der Plugin-Root enthalten, um Standard-Konfiguration anzuwenden, wenn das Plugin aktiviert ist. Derzeit wird nur der Schlüssel agent unterstützt.
Das Setzen von agent aktiviert einen der benutzerdefinierten Agents des Plugins als Haupt-Thread und wendet seinen System-Prompt, Tool-Einschränkungen und Modell an. Dies ermöglicht es einem Plugin, das Standardverhalten von Claude Code zu ändern, wenn es aktiviert ist.
settings.json
security-reviewer, der im Verzeichnis agents/ des Plugins definiert ist. Einstellungen aus settings.json haben Vorrang vor settings, die in plugin.json deklariert sind. Unbekannte Schlüssel werden stillschweigend ignoriert.
Organisieren Sie komplexe Plugins
Für Plugins mit vielen Komponenten organisieren Sie Ihre Verzeichnisstruktur nach Funktionalität. Für vollständige Verzeichnislayouts und Organisationsmuster siehe Plugin-Verzeichnisstruktur.Testen Sie Ihre Plugins lokal
Verwenden Sie das Flag--plugin-dir, um Plugins während der Entwicklung zu testen. Dies lädt Ihr Plugin direkt, ohne dass eine Installation erforderlich ist.
--plugin-dir-Plugin denselben Namen wie ein installiertes Marketplace-Plugin hat, hat die lokale Kopie in dieser Sitzung Vorrang. Dies ermöglicht es Ihnen, Änderungen an einem Plugin zu testen, das Sie bereits installiert haben, ohne es zuerst zu deinstallieren. Marketplace-Plugins, die durch verwaltete Einstellungen erzwungen aktiviert sind, sind die einzige Ausnahme und können nicht überschrieben werden.
Wenn Sie Änderungen an Ihrem Plugin vornehmen, führen Sie /reload-plugins aus, um die Updates zu übernehmen, ohne neu zu starten. Dies lädt Befehle, Skills, Agents, Hooks, Plugin-MCP-Server und Plugin-LSP-Server neu. Testen Sie Ihre Plugin-Komponenten:
- Versuchen Sie Ihre Skills mit
/plugin-name:skill-name - Überprüfen Sie, dass Agents in
/agentsangezeigt werden - Überprüfen Sie, dass Hooks wie erwartet funktionieren
Debuggen Sie Plugin-Probleme
Wenn Ihr Plugin nicht wie erwartet funktioniert:- Überprüfen Sie die Struktur: Stellen Sie sicher, dass Ihre Verzeichnisse auf der Plugin-Root sind, nicht in
.claude-plugin/ - Testen Sie Komponenten einzeln: Überprüfen Sie jeden Befehl, Agent und Hook separat
- Verwenden Sie Validierungs- und Debugging-Tools: Siehe Debugging- und Entwicklungstools für CLI-Befehle und Troubleshooting-Techniken
Teilen Sie Ihre Plugins
Wenn Ihr Plugin bereit zum Teilen ist:- Fügen Sie Dokumentation hinzu: Fügen Sie eine
README.mdmit Installations- und Verwendungsanweisungen ein - Versionieren Sie Ihr Plugin: Verwenden Sie semantische Versionierung in Ihrer
plugin.json - Erstellen oder verwenden Sie einen Marketplace: Verteilen Sie über Plugin-Marketplaces zur Installation
- Testen Sie mit anderen: Lassen Sie Teamkollegen das Plugin vor einer breiteren Verteilung testen
Reichen Sie Ihr Plugin beim offiziellen Marketplace ein
Um ein Plugin beim offiziellen Anthropic-Marketplace einzureichen, verwenden Sie eines der In-App-Einreichungsformulare:- Claude.ai: claude.ai/settings/plugins/submit
- Console: platform.claude.com/plugins/submit
Für vollständige technische Spezifikationen, Debugging-Techniken und Verteilungsstrategien siehe Plugins-Referenz.
Konvertieren Sie vorhandene Konfigurationen in Plugins
Wenn Sie bereits Skills oder Hooks in Ihrem Verzeichnis.claude/ haben, können Sie diese in ein Plugin konvertieren, um die Freigabe und Verteilung zu vereinfachen.
Migrationschritte
Erstellen Sie die Plugin-Struktur
Erstellen Sie ein neues Plugin-Verzeichnis:Erstellen Sie die Manifestdatei unter
my-plugin/.claude-plugin/plugin.json:my-plugin/.claude-plugin/plugin.json
Kopieren Sie Ihre vorhandenen Dateien
Kopieren Sie Ihre vorhandenen Konfigurationen in das Plugin-Verzeichnis:
Migrieren Sie Hooks
Wenn Sie Hooks in Ihren Einstellungen haben, erstellen Sie ein Hooks-Verzeichnis:Erstellen Sie
my-plugin/hooks/hooks.json mit Ihrer Hooks-Konfiguration. Kopieren Sie das Objekt hooks aus Ihrer .claude/settings.json oder settings.local.json, da das Format gleich ist. Der Befehl empfängt Hook-Eingaben als JSON auf stdin, verwenden Sie also jq, um den Dateipfad zu extrahieren:my-plugin/hooks/hooks.json
Was sich bei der Migration ändert
Eigenständig (.claude/) | Plugin |
|---|---|
| Nur in einem Projekt verfügbar | Kann über Marketplaces freigegeben werden |
Dateien in .claude/commands/ | Dateien in plugin-name/commands/ |
Hooks in settings.json | Hooks in hooks/hooks.json |
| Muss manuell kopiert werden, um zu teilen | Mit /plugin install installieren |
Nach der Migration können Sie die ursprünglichen Dateien aus
.claude/ entfernen, um Duplikate zu vermeiden. Die Plugin-Version hat Vorrang, wenn sie geladen wird.Nächste Schritte
Jetzt, da Sie das Plugin-System von Claude Code verstehen, finden Sie hier vorgeschlagene Pfade für verschiedene Ziele:Für Plugin-Benutzer
- Plugins entdecken und installieren: Durchsuchen Sie Marketplaces und installieren Sie Plugins
- Konfigurieren Sie Team-Marketplaces: Richten Sie Repository-Level-Plugins für Ihr Team ein
Für Plugin-Entwickler
- Erstellen und verteilen Sie einen Marketplace: Verpacken und teilen Sie Ihre Plugins
- Plugins-Referenz: Vollständige technische Spezifikationen
- Tauchen Sie tiefer in spezifische Plugin-Komponenten ein: