Zum Hauptinhalt springen
Plugins ermöglichen es Ihnen, Claude Code mit benutzerdefinierten Funktionen zu erweitern, die projektübergreifend und teamübergreifend freigegeben werden können. Diese Anleitung behandelt die Erstellung eigener Plugins mit Schrägstrichbefehlen, Agenten, Skills, Hooks und MCP-Servern. Möchten Sie vorhandene Plugins installieren? Siehe Plugins entdecken und installieren. Für vollständige technische Spezifikationen siehe Plugins-Referenz.

Wann Plugins vs. eigenständige Konfiguration verwenden

Claude Code unterstützt zwei Möglichkeiten, um benutzerdefinierte Schrägstrichbefehle, Agenten und Hooks hinzuzufügen:
AnsatzSchrägstrichbefehlsnamenAm besten für
Eigenständig (.claude/ Verzeichnis)/helloPersönliche Workflows, projektspezifische Anpassungen, schnelle Experimente
Plugins (Verzeichnisse mit .claude-plugin/plugin.json)/plugin-name:helloFreigabe mit Teamkollegen, Verteilung an die Community, versionierte Releases, wiederverwendbar über Projekte hinweg
Verwenden Sie eigenständige Konfiguration, wenn:
  • Sie Claude Code für ein einzelnes Projekt anpassen
  • Die Konfiguration persönlich ist und nicht freigegeben werden muss
  • Sie mit Schrägstrichbefehlen oder Hooks experimentieren, bevor Sie sie verpacken
  • Sie kurze Schrägstrichbefehlsnamen wie /hello oder /review möchten
Verwenden Sie Plugins, wenn:
  • Sie Funktionen mit Ihrem Team oder der Community teilen möchten
  • Sie die gleichen Schrägstrichbefehle/Agenten ü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-Schrägstrichbefehlen wie /my-plugin:hello einverstanden sind (Namespacing verhindert Konflikte zwischen Plugins)
Beginnen Sie mit eigenständiger Konfiguration in .claude/ für schnelle Iteration, dann konvertieren Sie zu einem Plugin, wenn Sie bereit sind zu teilen.

Schnelleinstieg

Dieser Schnelleinstieg führt Sie durch die Erstellung eines Plugins mit einem benutzerdefinierten Schrägstrichbefehl. Sie erstellen ein Manifest (die Konfigurationsdatei, die Ihr Plugin definiert), fügen einen Schrägstrichbefehl hinzu und testen ihn lokal mit dem Flag --plugin-dir.

Voraussetzungen

Wenn Sie den Befehl /plugin nicht sehen, aktualisieren Sie Claude Code auf die neueste Version. Siehe Fehlerbehebung für Upgrade-Anweisungen.

Erstellen Sie Ihr erstes Plugin

1

Erstellen Sie das Plugin-Verzeichnis

Jedes Plugin befindet sich in seinem eigenen Verzeichnis mit einem Manifest und Ihren benutzerdefinierten Befehlen, Agenten oder Hooks. Erstellen Sie jetzt eines:
mkdir my-first-plugin
2

Erstellen Sie das Plugin-Manifest

Die Manifestdatei unter .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:
mkdir my-first-plugin/.claude-plugin
Erstellen Sie dann my-first-plugin/.claude-plugin/plugin.json mit diesem Inhalt:
my-first-plugin/.claude-plugin/plugin.json
{
"name": "my-first-plugin",
"description": "A greeting plugin to learn the basics",
"version": "1.0.0",
"author": {
"name": "Your Name"
}
}
FeldZweck
nameEindeutige Kennung und Schrägstrichbefehl-Namespace. Schrägstrichbefehle werden mit diesem Präfix versehen (z. B. /my-first-plugin:hello).
descriptionWird im Plugin-Manager angezeigt, wenn Sie Plugins durchsuchen oder installieren.
versionVerfolgen Sie Releases mit semantischer Versionierung.
authorOptional. Hilfreich für die Zuordnung.
Für zusätzliche Felder wie homepage, repository und license siehe das vollständige Manifest-Schema.
3

Fügen Sie einen Schrägstrichbefehl hinzu

Schrägstrichbefehle sind Markdown-Dateien im Verzeichnis commands/. Der Dateiname wird zum Namen des Schrägstrichbefehls, mit dem Namespace des Plugins als Präfix (hello.md in einem Plugin namens my-first-plugin erstellt /my-first-plugin:hello). Der Markdown-Inhalt teilt Claude mit, wie er reagieren soll, wenn jemand den Schrägstrichbefehl ausführt.Erstellen Sie ein Verzeichnis commands in Ihrem Plugin-Ordner:
mkdir my-first-plugin/commands
Erstellen Sie dann my-first-plugin/commands/hello.md mit diesem Inhalt:
my-first-plugin/commands/hello.md
---
description: Greet the user with a friendly message
---

# Hello Command

Greet the user warmly and ask how you can help them today.
4

Testen Sie Ihr Plugin

Führen Sie Claude Code mit dem Flag --plugin-dir aus, um Ihr Plugin zu laden:
claude --plugin-dir ./my-first-plugin
Sobald Claude Code startet, versuchen Sie Ihren neuen Befehl:
/my-first-plugin:hello
Sie sehen Claude mit einer Begrüßung antworten. Führen Sie /help aus, um Ihren Befehl unter dem Plugin-Namespace aufgelistet zu sehen.
Warum Namespacing? Plugin-Schrägstrichbefehle sind immer mit Namespace versehen (wie /greet:hello), um Konflikte zu vermeiden, wenn mehrere Plugins Befehle mit demselben Namen haben.Um das Namespace-Präfix zu ändern, aktualisieren Sie das Feld name in plugin.json.
5

Fügen Sie Schrägstrichbefehl-Argumente hinzu

Machen Sie Ihren Schrägstrichbefehl dynamisch, indem Sie Benutzereingaben akzeptieren. Der Platzhalter $ARGUMENTS erfasst jeden Text, den der Benutzer nach dem Schrägstrichbefehl bereitstellt.Aktualisieren Sie Ihre hello.md Datei:
my-first-plugin/commands/hello.md
---
description: Greet the user with a personalized message
---

# Hello Command

Greet the user named "$ARGUMENTS" warmly and ask how you can help them today. Make the greeting personal and encouraging.
Starten Sie Claude Code neu, um die Änderungen zu übernehmen, und versuchen Sie dann den Befehl mit Ihrem Namen:
/my-first-plugin:hello Alex
Claude wird Sie beim Namen begrüßen. Für weitere Argumentoptionen wie $1, $2 für einzelne Parameter siehe Schrägstrichbefehle.
Sie haben erfolgreich ein Plugin mit diesen Schlüsselkomponenten erstellt und getestet:
  • Plugin-Manifest (.claude-plugin/plugin.json): beschreibt die Metadaten Ihres Plugins
  • Befehls-Verzeichnis (commands/): enthält Ihre benutzerdefinierten Schrägstrichbefehle
  • Befehlsargumente ($ARGUMENTS): erfasst Benutzereingaben für dynamisches Verhalten
Das Flag --plugin-dir ist nützlich für Entwicklung und Tests. Wenn Sie bereit sind, Ihr Plugin mit anderen zu teilen, siehe Erstellen und verteilen Sie einen Plugin-Marketplace.

Plugin-Struktur-Übersicht

Sie haben ein Plugin mit einem Schrägstrichbefehl erstellt, aber Plugins können viel mehr enthalten: benutzerdefinierte Agenten, Skills, Hooks, MCP-Server und LSP-Server.
Häufiger Fehler: Legen Sie commands/, agents/, skills/ oder hooks/ nicht im Verzeichnis .claude-plugin/ ab. Nur plugin.json gehört in .claude-plugin/. Alle anderen Verzeichnisse müssen auf der Plugin-Root-Ebene sein.
VerzeichnisOrtZweck
.claude-plugin/Plugin-RootEnthält nur das Manifest plugin.json (erforderlich)
commands/Plugin-RootSchrägstrichbefehle als Markdown-Dateien
agents/Plugin-RootBenutzerdefinierte Agent-Definitionen
skills/Plugin-RootAgent-Skills mit SKILL.md Dateien
hooks/Plugin-RootEvent-Handler in hooks.json
.mcp.jsonPlugin-RootMCP-Server-Konfigurationen
.lsp.jsonPlugin-RootLSP-Server-Konfigurationen für Code-Intelligenz
Nächste Schritte: Bereit, weitere Funktionen hinzuzufügen? Springen Sie zu Entwickeln Sie komplexere Plugins, um Agenten, 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 Verzeichnis skills/ auf Ihrer Plugin-Root-Ebene mit Skill-Ordnern hinzu, die SKILL.md Dateien enthalten:
my-plugin/
├── .claude-plugin/
│   └── plugin.json
└── skills/
    └── code-review/
        └── SKILL.md
Jede SKILL.md benötigt Frontmatter mit den Feldern name und description, gefolgt von Anweisungen:
---
name: code-review
description: Reviews code for best practices and potential issues. Use when reviewing code, checking PRs, or analyzing code quality.
---

When reviewing code, check for:
1. Code organization and structure
2. Error handling
3. Security concerns
4. Test coverage
Nach der Installation des Plugins starten Sie Claude Code neu, 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

Für gängige Sprachen wie TypeScript, Python und Rust installieren Sie die vorgefertigten LSP-Plugins aus dem offiziellen Marketplace. Erstellen Sie benutzerdefinierte LSP-Plugins nur, wenn Sie Unterstützung für Sprachen benötigen, die noch nicht abgedeckt sind.
LSP (Language Server Protocol) Plugins geben Claude Echtzeit-Code-Intelligenz. Wenn Sie eine Sprache unterstützen müssen, die kein offizielles LSP-Plugin hat, können Sie Ihr eigenes erstellen, indem Sie eine .lsp.json Datei zu Ihrem Plugin hinzufügen:
.lsp.json
{
  "go": {
    "command": "gopls",
    "args": ["serve"],
    "extensionToLanguage": {
      ".go": "go"
    }
  }
}
Benutzer, die Ihr Plugin installieren, müssen die Language-Server-Binärdatei auf ihrem Computer installiert haben. Für vollständige LSP-Konfigurationsoptionen siehe LSP-Server.

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.
claude --plugin-dir ./my-plugin
Wenn Sie Änderungen an Ihrem Plugin vornehmen, starten Sie Claude Code neu, um die Updates zu übernehmen. Testen Sie Ihre Plugin-Komponenten:
  • Versuchen Sie Ihre Befehle mit /command-name
  • Überprüfen Sie, dass Agenten in /agents angezeigt werden
  • Überprüfen Sie, dass Hooks wie erwartet funktionieren
Sie können mehrere Plugins gleichzeitig laden, indem Sie das Flag mehrmals angeben:
claude --plugin-dir ./plugin-one --plugin-dir ./plugin-two

Debuggen Sie Plugin-Probleme

Wenn Ihr Plugin nicht wie erwartet funktioniert:
  1. Überprüfen Sie die Struktur: Stellen Sie sicher, dass Ihre Verzeichnisse auf der Plugin-Root-Ebene sind, nicht in .claude-plugin/
  2. Testen Sie Komponenten einzeln: Überprüfen Sie jeden Befehl, Agenten und Hook separat
  3. Verwenden Sie Validierungs- und Debugging-Tools: Siehe Debugging- und Entwicklungstools für CLI-Befehle und Fehlerbehebungstechniken

Teilen Sie Ihre Plugins

Wenn Ihr Plugin bereit zum Teilen ist:
  1. Fügen Sie Dokumentation hinzu: Fügen Sie eine README.md mit Installations- und Verwendungsanweisungen ein
  2. Versionieren Sie Ihr Plugin: Verwenden Sie semantische Versionierung in Ihrer plugin.json
  3. Erstellen oder verwenden Sie einen Marketplace: Verteilen Sie über Plugin-Marketplaces zur Installation
  4. Testen Sie mit anderen: Lassen Sie Teamkollegen das Plugin vor einer breiteren Verteilung testen
Sobald Ihr Plugin in einem Marketplace ist, können andere es installieren, indem sie die Anweisungen in Plugins entdecken und installieren befolgen.
Für vollständige technische Spezifikationen, Debugging-Techniken und Verteilungsstrategien siehe Plugins-Referenz.

Konvertieren Sie vorhandene Konfigurationen in Plugins

Wenn Sie bereits benutzerdefinierte Befehle, Skills oder Hooks in Ihrem .claude/ Verzeichnis haben, können Sie diese in ein Plugin konvertieren, um die Freigabe und Verteilung zu erleichtern.

Migrationschritte

1

Erstellen Sie die Plugin-Struktur

Erstellen Sie ein neues Plugin-Verzeichnis:
mkdir -p my-plugin/.claude-plugin
Erstellen Sie die Manifestdatei unter my-plugin/.claude-plugin/plugin.json:
my-plugin/.claude-plugin/plugin.json
{
  "name": "my-plugin",
  "description": "Migrated from standalone configuration",
  "version": "1.0.0"
}
2

Kopieren Sie Ihre vorhandenen Dateien

Kopieren Sie Ihre vorhandenen Konfigurationen in das Plugin-Verzeichnis:
# Copy commands
cp -r .claude/commands my-plugin/

# Copy agents (if any)
cp -r .claude/agents my-plugin/

# Copy skills (if any)
cp -r .claude/skills my-plugin/
3

Migrieren Sie Hooks

Wenn Sie Hooks in Ihren Einstellungen haben, erstellen Sie ein Hooks-Verzeichnis:
mkdir my-plugin/hooks
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 – das Format ist gleich:
my-plugin/hooks/hooks.json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [{ "type": "command", "command": "npm run lint:fix $FILE" }]
      }
    ]
  }
}
4

Testen Sie Ihr migriertes Plugin

Laden Sie Ihr Plugin, um zu überprüfen, ob alles funktioniert:
claude --plugin-dir ./my-plugin
Testen Sie jede Komponente: Führen Sie Ihre Befehle aus, überprüfen Sie, dass Agenten in /agents angezeigt werden, und überprüfen Sie, dass Hooks korrekt ausgelöst werden.

Was sich bei der Migration ändert

Eigenständig (.claude/)Plugin
Nur in einem Projekt verfügbarKann über Marketplaces freigegeben werden
Dateien in .claude/commands/Dateien in plugin-name/commands/
Hooks in settings.jsonHooks in hooks/hooks.json
Manuelles Kopieren zum Teilen erforderlichInstallation mit /plugin install
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 empfohlene Pfade für verschiedene Ziele:

Für Plugin-Benutzer

Für Plugin-Entwickler