Inhalt
Bei Claude Code werden Skills, Subagenten, Hooks und MCP-Konfigurationen in einem Plugin zur Verteilung gebündelt. Ein Katalog mit ihren Namen und Bezugsquellen heißt Marketplace. Damit lassen sich Abläufe in anderen eigenen Projekten wiederverwenden oder gemeinsame Erweiterungen im Team nutzen.
Dieser Artikel führt von der Installation vorhandener Plugins über einen eigenen Begrüßungs-Skill bis zur Verteilung über einen Katalog. Drei Unterschiede sind wichtig: Erstens liegen Plugin und Verteilungskatalog auf verschiedenen Ebenen. Zweitens sind Katalogregistrierung und einzelne Installation getrennte Schritte. Drittens garantiert erfolgreiche Validierung weder korrektes Verhalten noch Sicherheit. Grundlage ist die offizielle Erstellungsanleitung.
Funktionen bündeln und verteilen
— Skills, Agents, Hooks und MCP aus einem Katalog auswählen
Ein Plugin ist ein Funktionspaket, ein Marketplace sein Verteilungskatalog, etwa ein Git-Repository.
Katalog registrieren → einzeln installieren → benötigte Funktionen prüfen.
Bei eigenen Plugins vor der Verteilung sowohl Plugin als auch Katalog validieren.
1. Was sind Claude-Code-Plugins?
Ein Plugin bündelt Claude-Code-Erweiterungen in einem teilbaren, wiederverwendbaren Verzeichnis. Es muss nicht alle Bestandteile enthalten; ein einzelner Skill genügt.
| Bestandteil | Ablageort | Aufgabe |
|---|---|---|
| Skills | skills/<name>/SKILL.md | Abläufe, die abhängig von Beschreibung und Einstellungen automatisch oder durch ausdrücklichen Nutzeraufruf verwendet werden (Skills erklärt) |
| Slash-Befehle | commands/ | Das ältere Markdown-Format wird heute als Skills behandelt. Für Neues wird skills/ empfohlen |
| Subagenten | agents/ | Agent-Definitionen für getrennte Rollen. Das Laden unter Custom Agents in /context prüfen |
| Hooks | hooks/hooks.json | Ausführung bei konfigurierten Ereignissen und Bedingungen, etwa PostToolUse |
| MCP-Server | .mcp.json | Anbindung externer Werkzeuge und Daten (MCP) |
| Manifest | .claude-plugin/plugin.json | Name, Beschreibung, Version und weitere Metadaten. Bei reiner Standardstruktur optional |
Für persönliche Abläufe genügt möglicherweise .claude/skills/ im Projekt. Plugins helfen, wenn Sie dasselbe Paket an mehrere Stellen verteilen und Updates verwalten möchten. Auch Erweiterungen für LSP oder Überwachung existieren, unterliegen aber Umgebungs- und Vertriebsbedingungen. Ein kleiner Skill erleichtert den Einstieg und die Prüfung.
2. Aufbau eines Plugins
Dies ist die Standardstruktur eines einzelnen Plugins. Ein vorhandenes Manifest liegt unter .claude-plugin/plugin.json; skills/, agents/ und hooks/ gehören in den Stamm des Plugins selbst. Der Verteilungskatalog marketplace.json ist davon getrennt und liegt im späteren Beispiel unter .claude-plugin/marketplace.json des Marketplaces.
my-plugin/
├── .claude-plugin/
│ └── plugin.json # Metadaten dieses Plugins
├── skills/
│ └── code-review/SKILL.md
├── agents/
│ └── security-reviewer.md
├── hooks/hooks.json
├── .mcp.json
└── README.md
Ein Beispiel für plugin.json: Bei ausschließlich standardmäßiger Verzeichnisstruktur darf das Manifest ganz entfallen. Wird eines angelegt, ist name erforderlich; Beschreibung und Version sind optional.
{
"name": "my-first-plugin",
"description": "Ein Begrüßungs-Plugin zum Erlernen der Grundlagen",
"version": "1.0.0",
"author": { "name": "Your Name" }
}
name bildet auch den Namensraum der Skills. In diesem Beispiel lautet der Aufruf /my-first-plugin:hello. Bei über Git bezogener, zwischengespeicherter Verteilung hat die Version in plugin.json Vorrang, danach folgt die Plugin-Version im Katalog. Fehlen beide, wird die aufgelöste Commit-SHA der Quelle verwendet. Bleibt eine ausdrücklich gesetzte Version unverändert, reichen reine Codeänderungen nicht für ein Update. Direkt aus einem lokalen Verzeichnis geladene Plugins und command sources folgen anderen Regeln. Details stehen in der Dokumentation zur Versionsverwaltung.
3. /plugin und Marketplaces verwenden
Beginnen Sie mit /plugin. Die Verwaltung öffnet sich mit den Tabs Discover, Installed, Marketplaces und Errors. Die grundlegenden Befehle:
# Marketplace (Verteilungskatalog) hinzufügen
/plugin marketplace add anthropics/claude-plugins-official
/plugin marketplace add ./my-marketplace # lokaler Pfad
/plugin marketplace add https://example.com/marketplace.json
# Interaktiv Bereich wählen, installieren und Aktivierung prüfen
/plugin install plugin-name@marketplace-name
/plugin enable plugin-name@marketplace-name
/plugin disable plugin-name@marketplace-name
/plugin uninstall plugin-name@marketplace-name
# Über Marketplaces installiert (mit --enabled / --disabled filtern)
/plugin list
/plugin list --enabled
# Bei Bedarf Änderungen neu laden und Ergebnis prüfen
/reload-plugins
Ein Katalog allein installiert keine Plugins. Installieren Sie diese nach der Registrierung einzeln. Beim interaktiven Befehl /plugin install wählen Sie den Bereich in der Detailansicht. Der Shell-Befehl claude plugin install verwendet standardmäßig user; mit --scope ändern Sie den Bereich.
Prüfen Sie nach der Installation, ob das Ergebnis active, ausstehendes Neuladen oder einen Ladefehler meldet. Wegen der Auswirkungen auf den Prompt-Cache kann das Neuladen aufgeschoben werden. In Sitzungen ohne Terminal werden Änderungen an Plugin-MCP-Servern möglicherweise erst in der nächsten Sitzung wirksam. /plugin list erfasst nur Marketplace-Installationen, nicht alle synchronisierten oder über Skills-Verzeichnisse bereitgestellten Plugins. Prüfen Sie die Installations- und Neuladebedingungen; bei MCP-Problemen hilft die Diagnose von MCP-Verbindungsfehlern.
4. Was ist ein Marketplace?
Ein Marketplace ist ein Katalog mit einer .claude-plugin/marketplace.json, die Plugins und ihre Quellen auflistet, bereitgestellt als Git-Repository, lokaler Pfad oder gehostete Datei. Es gibt offizielle und Community-Kataloge.
Offizieller und Community-Marketplace
• Offiziell (claude-plugins-official): von Anthropic kuratiert. Er wird beim ersten interaktiven Start automatisch registriert. Vorherige nicht interaktive Nutzung, Netzwerkbeschränkungen oder Organisationsrichtlinien können dies verhindern. Prüfen Sie bei Fehlen diese Bedingungen und verwenden Sie in einer erlaubten Umgebung /plugin marketplace add anthropics/claude-plugins-official. Zum Stöbern dienen Discover in /plugin oder das offizielle Verzeichnis.
• Community (claude-community): Einreichungen in diesem Katalog haben automatische Validierung und Sicherheitsprüfung durchlaufen. Das Repository heißt anthropics/claude-plugins-community; fügen Sie es mit /plugin marketplace add anthropics/claude-plugins-community hinzu. Installiert wird mit /plugin install name@claude-community. Verwechseln Sie Repository- und registrierten Katalognamen nicht.
Fehlt ein Katalog, prüfen Sie die Registrierung; fehlt ein Plugin, dessen Namen und Quelle. Auch bei internen Katalogen müssen Nutzer sowohl auf das Repository als auch auf das Plugin selbst zugreifen können. Bei einer per URL verteilten JSON-Datei wird der Plugin-Inhalt nicht aus relativen Pfaden dieser URL bezogen.
5. Eigene Plugins erstellen und veröffentlichen
Das Beispiel erstellt einen Begrüßungs-Skill. Bereiten Sie diese Struktur vor: Das äußere .claude-plugin gehört zum Katalog, das innere zum einzelnen Plugin. Führen Sie Befehle im übergeordneten Verzeichnis aus, das my-marketplace enthält.
my-marketplace/
├── .claude-plugin/
│ └── marketplace.json
└── plugins/
└── my-first-plugin/
├── .claude-plugin/
│ └── plugin.json
└── skills/
└── hello/
└── SKILL.md
(1) Speichern Sie das JSON aus dem vorherigen Abschnitt in der inneren Datei my-marketplace/plugins/my-first-plugin/.claude-plugin/plugin.json. (2) Speichern Sie Folgendes in my-marketplace/plugins/my-first-plugin/skills/hello/SKILL.md. Mit disable-model-invocation: true wird der Skill in diesem Beispiel nur ausdrücklich aufgerufen.
---
name: hello
description: Eine kurze Begrüßung mit Namen ausgeben
disable-model-invocation: true
---
Begrüße den Nutzer kurz.
Wenn Argumente vorliegen, verwende diesen Namen in der Begrüßung.
Argumente: $ARGUMENTS
(3) Schreiben Sie den Katalog in die äußere Datei my-marketplace/.claude-plugin/marketplace.json. Relative source-Pfade beziehen sich auf den Marketplace-Stamm, nicht auf das Verzeichnis der marketplace.json.
{
"name": "my-plugins",
"owner": { "name": "Your Name" },
"description": "Übungskatalog zur Verteilung eines Begrüßungs-Skills",
"plugins": [
{
"name": "my-first-plugin",
"source": "./plugins/my-first-plugin",
"description": "Ein Skill für eine kurze Begrüßung mit Namen"
}
]
}
(4) Validieren Sie Katalog und Plugin getrennt. Die erste Prüfung untersucht das Katalogschema und plugin.json lokaler Einträge, liest jedoch keine einzelnen Skill- oder Hook-Dateien. Die zweite erfasst auch Dateien in den Standardverzeichnissen des Plugins. Keine der beiden Prüfungen garantiert korrektes Verhalten oder Sicherheit.
claude plugin validate ./my-marketplace
claude plugin validate ./my-marketplace/plugins/my-first-plugin
# Einzelnes Plugin zum Testen in diese Sitzung laden
claude --plugin-dir ./my-marketplace/plugins/my-first-plugin
Rufen Sie in der gestarteten interaktiven Sitzung /my-first-plugin:hello Alex auf und prüfen Sie, ob eine kurze Begrüßung mit Alex erscheint. Funktionsprüfung bedeutet, Ausgabe und unerwünschte Nebenwirkungen zu prüfen, nicht nur die Sichtbarkeit des Befehls. Wird der Skill nicht geladen, prüfen Sie Namen in beiden JSON-Dateien, source-Pfad sowie Ort und Frontmatter der SKILL.md.
(5) Für den Test des Katalogwegs beenden Sie die bisherige Testsitzung und starten Claude Code ohne --plugin-dir. Die folgenden Befehle registrieren Einträge in der Konfiguration. Verwenden Sie dafür ein Übungsprojekt und wählen Sie den Installationsbereich.
/plugin marketplace add ./my-marketplace
/plugin install my-first-plugin@my-plugins
/my-first-plugin:hello Alex
(6) Zur Verteilung veröffentlichen Sie den Inhalt von my-marketplace als Stamm eines für Nutzer abrufbaren Git-Repositorys. Committen Sie neben dem Katalog auch das plugins-Verzeichnis. Nutzer fügen das tatsächliche owner/repo hinzu und installieren dasselbe my-first-plugin@my-plugins. Diese relativen Pfade funktionieren bei Registrierung über Git oder ein lokales Verzeichnis, nicht unverändert mit einer einzelnen marketplace.json-URL. Details: Kataloge erstellen, verteilen und validieren.
Für die Verteilung über das eigene Git-Repository ist keine Bewerbung beim offiziellen Katalog nötig. Für eine zusätzliche Community-Listung steht einzelnen Autoren das Console-Einreichungsformular offen. Das Formular auf claude.ai setzt eine Team/Enterprise-Organisation und Verwaltungsrechte voraus. Community-Einreichung und Aufnahme in Anthropics kuratierten offiziellen Katalog sind getrennte Vorgänge.
6. Installationsbereiche und Sicherheit
Die Bereiche sind user (alle eigenen Projekte), project (geteilte Projekteinstellungen) und local (nur für Sie in diesem Projekt). Unterscheiden Sie die interaktive Bereichsauswahl vom user-Standard der Shell-CLI. Managed-Einstellungen stammen von Administratoren und schränken Nutzeränderungen ein.
Teams können Quellen und Aktivierung über extraKnownMarketplaces und enabledPlugins in .claude/settings.json teilen. Allerdings ist das Schreiben geteilter Einstellungen nicht dasselbe wie eine abgeschlossene Installation auf jedem Rechner. Externe Plugins muss jedes Teammitglied installieren. Prüfen Sie nach dem Vertrauen in das Projekt Katalogregistrierung, Zugriffsrechte und Installationsergebnisse in jeder Umgebung.
⚠️ Sicherheit: Plugins können beliebigen Code ausführen
Die offiziellen Sicherheitshinweise erklären, dass Plugins beliebigen Code mit Ihren Rechten ausführen können. Community-Einträge werden automatisch validiert und auf Sicherheit geprüft, doch das garantiert kein bestimmungsgemäßes Verhalten. Prüfen Sie Herausgeber, Skills, Hooks und enthaltene MCP-Server. Organisationen können Quellen über strictKnownMarketplaces in verwalteten Einstellungen begrenzen; ein leeres Array verweigert Marketplace-Quellen einschließlich der offiziellen. Die Einstellung überwacht nicht sämtliche Netzwerk- oder Dateioperationen eines Plugins. Auch die Synchronisierung von claude.ai wird separat eingestellt.
Zusammenfassung
Plugins sind Verteilungseinheiten für Erweiterungen, Marketplaces deren Kataloge. Nutzer registrieren → installieren einzeln → prüfen Aktivierung und Verhalten. Autoren erstellen Plugin und Katalog → validieren beide → rufen die Funktion auf → verteilen über ein zugängliches Repository. Bereich, Zugriffsrechte und die für Updates verwendete Version zu prüfen erleichtert die Reproduktion in anderen Umgebungen.
Die automatische Registrierung des offiziellen Katalogs hat Bedingungen; auch geprüfte Einträge bieten keine uneingeschränkte Verhaltensgarantie. Beginnen Sie mit einer benötigten Funktion und erweitern Sie erst nach der Prüfung. Verwandte Mechanismen: Claude-Code-Hooks, Claude Agent Skills, MCP und Claude Code Artifacts.
FAQ
F. Was unterscheidet Plugin und Skill?
A. Ein Skill ist ein Ablauf; ein Plugin bündelt ihn mit Hooks, MCP-Konfiguration und weiteren Bestandteilen zur Verteilung. Ein Plugin-Skill lässt sich mit /plugin-name:skill-name ausdrücklich aufrufen. Automatische Auswahl hängt von Beschreibung und Einstellungen ab.
F. Ich finde den offiziellen Marketplace nicht.
A. claude-plugins-official wird beim ersten interaktiven Start automatisch registriert. Vorherige nicht interaktive Nutzung sowie Netzwerk- oder Verwaltungsrichtlinien können dies verhindern. Versuchen Sie in einer erlaubten Umgebung /plugin marketplace add anthropics/claude-plugins-official. Die Registrierung allein installiert keine einzelnen Plugins.
F. Kann jeder eigene Plugins verteilen?
A. Plugin und Katalog können in einem eigenen zugänglichen Git-Repository liegen. Die Community-Bewerbung ist separat; einzelne Autoren können das Console-Formular nutzen. Der Weg über claude.ai hat Organisations- und Berechtigungsbedingungen. Prüfen Sie auch, ob source im Katalog auf den tatsächlichen Plugin-Ort zeigt.
F. Warum wird mein Plugin nach einer Codeänderung nicht aktualisiert?
A. Bei über Git bezogener, gecachter Verteilung hat die Version in plugin.json Vorrang. Bleibt sie fest, bewirkt eine Änderung nur im Katalog kein Update. Ohne Version an beiden Stellen gilt die aufgelöste Git-Commit-SHA; Aktualisierungsvorgang und Quell-ref spielen ebenfalls eine Rolle. Lokales Laden an Ort und Stelle, Archive und command sources folgen anderen Regeln.
F. Ist ein Plugin nach erfolgreichem validate sicher?
A. Nein. Struktur- und Konfigurationsprüfung sind von tatsächlichem Verhalten und Sicherheit getrennt. Katalogvalidierung allein untersucht beispielsweise keine Skill-Inhalte. Validieren Sie das einzelne Plugin und testen Sie Funktionen und Nebenwirkungen. Auch die Community-Prüfung ersetzt die Kontrolle von Herausgeber und enthaltenem Code nicht.