Um ein Claude Code Plugin zu erstellen, legst du deine Skills, Agents, Hooks oder die MCP-Konfiguration in ein einziges Verzeichnis mit einem .claude-plugin/plugin.json-Manifest, testest es mit claude --plugin-dir ./my-plugin und verteilst es anschließend über einen Marketplace, damit Teamkollegen es installieren können. Das ist der komplette Ablauf, und du kannst in etwa fünf Minuten ein funktionierendes Plugin haben. Der Rest besteht darin, zu wissen, welche Teile du einbinden solltest, wie du den einen Verzeichnisfehler vermeidest, der die meisten ersten Versuche scheitern lässt, und wie du es versionierst und teilst, sobald es läuft.
Wir betreiben die TechRiseUps-Content-Engine auf Claude Code, und der schnellste Weg, einen Workflow von einer Maschine auf das gesamte Team zu bringen, ist, ihn als Plugin zu paketieren, statt .claude/-Ordner hin- und herzukopieren. Dieser Guide zeigt dir genau, wie du in 2026 ein Claude Code Plugin erstellst – auf Basis der aktuellen offiziellen Plugin-Doku.
Was ist ein Claude Code Plugin?
Ein Claude Code Plugin ist ein in sich geschlossenes Verzeichnis, das eine oder mehrere Erweiterungen – Skills, Subagents, Hooks, MCP-Server, LSP-Server oder Background-Monitore – hinter einer einzigen Manifest-Datei bündelt. Das Manifest, .claude-plugin/plugin.json, gibt dem Plugin einen Namen, eine Beschreibung und eine Version. Nach der Installation ist alles, was das Plugin mitbringt, unter diesem Namen namespaced: Ein Skill namens hello innerhalb eines Plugins namens my-first-plugin wird als /my-first-plugin:hello aufgerufen, was verhindert, dass zwei Plugins kollidieren, wenn beide einen Skill mit demselben Namen definieren. Der Sinn eines Plugins – im Gegensatz zu loser Konfiguration in deinem .claude/-Ordner – ist Portabilität: Es wird als eine Einheit versioniert, lässt sich sauber aktualisieren und installiert sich auf fremden Maschinen mit einem einzigen Befehl statt mit einem Copy-Paste-Ritual.
Plugin vs. eigenständige Konfiguration: Was solltest du nutzen?
Claude Code erlaubt dir, Skills, Agents und Hooks auf zwei Wegen hinzuzufügen, und die falsche Wahl kostet Zeit. Eigenständige Konfiguration in einem .claude/-Verzeichnis ist richtig für persönliche, projektspezifische Anpassungen und schnelle Experimente – du bekommst kurze Namen wie /deploy und null Paketier-Overhead. Ein Plugin ist richtig, sobald du den Workflow teilen, projektübergreifend wiederverwenden oder versionierte Updates ausliefern willst. Die Faustregel ist einfach: Wenn nur du es jemals in einem Repo ausführst, lass es eigenständig; wenn jemand anderes es braucht, mach ein Plugin daraus.
Eigenständig (.claude/) | Plugin | |
|---|---|---|
| Aufruf-Name | /hello | /my-plugin:hello |
| Geltungsbereich | Ein Projekt | Jedes Projekt, jede Maschine |
| Teilen | Manuelles Kopieren | /plugin install aus einem Marketplace |
| Versionierung | Keine | Explizite version oder git-SHA |
| Am besten für | Persönliche Experimente | Team- und Community-Verteilung |
Der empfohlene Weg ist, in .claude/ zu prototypen, um schnell zu iterieren, und dann in ein Plugin umzuwandeln, sobald es sich zu teilen lohnt.
Schritt für Schritt: Dein erstes Plugin erstellen
Hier ist der minimale End-to-End-Build. Er erstellt ein Plugin mit einem einzigen Skill und testet es lokal, ohne Marketplace.
1. Erstelle das Plugin-Verzeichnis.
mkdir my-first-plugin
2. Füge das Manifest hinzu unter 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" }
}
Nur name ist wirklich erforderlich; version und author sind optional, aber es lohnt sich, sie zu setzen (mehr zur Versionierung weiter unten).
3. Füge einen Skill hinzu. Skills liegen in skills/<name>/SKILL.md. Erstelle my-first-plugin/skills/hello/SKILL.md:
---
description: Greet the user with a friendly message
---
Greet the user warmly and ask how you can help them today.
4. Teste es lokal mit dem --plugin-dir-Flag – kein Installationsschritt nötig:
claude --plugin-dir ./my-first-plugin
Rufe dann /my-first-plugin:hello innerhalb der Session auf. Während du Dateien bearbeitest, führe /reload-plugins aus, um Änderungen zu übernehmen, ohne Claude Code neu zu starten. Wenn du das Flag nicht bei jedem Start übergeben möchtest, gerüstet claude plugin init my-tool ein Plugin in dein Skills-Verzeichnis, das bei der nächsten Session automatisch geladen wird.
Das ist ein echtes, funktionierendes Plugin. Alles ab hier bedeutet, weitere Komponenten hinzuzufügen und es auszuliefern.
Was in ein Plugin gehört
Ein Plugin kann weit mehr als einen einzigen Skill enthalten. Jeder Komponententyp liegt in seinem eigenen Verzeichnis im Plugin-Root (nicht innerhalb von .claude-plugin/), und Claude Code erkennt sie per Konvention:
| Verzeichnis / Datei | Enthält |
|---|---|
.claude-plugin/plugin.json | Das Manifest (Name, Version, Metadaten) |
skills/<name>/SKILL.md | Modellaufgerufene Skills |
agents/ | Eigene Subagent-Definitionen |
hooks/hooks.json | Event-Handler (z. B. Lint bei jedem Edit) |
.mcp.json | MCP-Server-Konfigurationen für externe Tools |
.lsp.json | Language-Server für Code-Intelligenz |
monitors/monitors.json | Hintergrund-Watcher, die Claude benachrichtigen |
bin/ | Executables, die dem Bash-PATH hinzugefügt werden, solange aktiviert |
settings.json | Standardeinstellungen, die bei Aktivierung angewendet werden |
Deshalb sind Plugins der natürliche Ort für einen kompletten Workflow: Ein einzelnes Plugin kann einen Skill, einen Lint-Hook und einen MCP-Server hinzufügen, die alle gemeinsam ausgeliefert und aktualisiert werden.
Der Fehler, der die meisten ersten Plugins scheitern lässt
Wenn dein Skill oder Hook stillschweigend nicht lädt, ist die Ursache fast immer dieselbe: Dateien am falschen Ort. Nur plugin.json gehört in .claude-plugin/. Jedes andere Verzeichnis – skills/, agents/, hooks/, commands/ – muss im Plugin-Root liegen, eine Ebene höher. skills/ in .claude-plugin/ zu verschachteln ist der mit Abstand häufigste Fehler beim ersten Plugin, und Claude Code gibt keine laute Warnung aus; die Komponenten erscheinen einfach nie.
Der Plugin-Root ist der eigene Ordner des einzelnen Plugins – der, den du an --plugin-dir übergibst – niemals dein globales ~/.claude/. Wenn etwas nicht funktioniert, debugge in dieser Reihenfolge: Prüfe, dass die Verzeichnisstruktur im Root liegt, teste jede Komponente einzeln, führe /reload-plugins aus und kontrolliere, ob Agents in /context unter Custom Agents auftauchen. Führe claude plugin validate aus, um Manifest- und Strukturprobleme zu erkennen, bevor sie dich eine Debugging-Session kosten.
Dein Plugin verteilen: Marketplaces und Versionierung
--plugin-dir ist für dich; ein Marketplace ist für alle anderen. Ein Marketplace ist einfach ein git-Repository mit einer .claude-plugin/marketplace.json-Datei in seinem Root, die deine Plugins auflistet und angibt, woher jedes zu beziehen ist. Du pushst es zu GitHub oder einem beliebigen git-Host, und Nutzer fügen es mit /plugin marketplace add <owner/repo> hinzu und installieren dann einzelne Plugins daraus. Um ein Plugin intern zu halten, hoste den Marketplace in einem privaten Repo; um ein breiteres Publikum zu erreichen, betreibt Anthropic zwei öffentliche Kataloge – ein kuratiertes claude-plugins-official und das Community-claude-community, das nach Prüfung Einreichungen von Drittanbietern akzeptiert.
Versionierung ist der Teil, den Leute überspringen und dann bereuen. Wenn du in plugin.json eine explizite version setzt, bekommen Nutzer nur dann Updates, wenn du sie erhöhst – vorhersehbar und empfohlen für alles, was geteilt wird. Lässt du sie weg und verteilst über git, wird der Commit-SHA zur Version, sodass jeder Commit als neuer Release zählt. Wähle explizite Versionen für alles, worauf ein Team angewiesen ist. Bevor du veröffentlichst oder einreichst, führe immer claude plugin validate aus, füge eine README.md mit Installations- und Nutzungshinweisen hinzu und lass es jemand anderen frisch installieren – dieselbe Disziplin, die du auch beim Betrieb von Claude Code in der Automatisierung anwenden würdest.
Häufig gestellte Fragen
Brauche ich einen Marketplace, um ein Plugin zu nutzen?
Nein. claude --plugin-dir ./my-plugin lädt ein Plugin direkt aus einem lokalen Ordner für diese Session, und claude plugin init kann eines gerüsten, das automatisch aus deinem Skills-Verzeichnis geladen wird. Marketplaces sind nur relevant, wenn du ein Plugin an andere Personen oder Maschinen verteilen willst.
Was ist der Unterschied zwischen einem Plugin und einem Skill?
Ein Skill ist eine einzelne Fähigkeit – eine SKILL.md-Datei mit Anweisungen. Ein Plugin ist ein Paket, das viele Skills plus Agents, Hooks und MCP-Server hinter einem einzigen versionierten Manifest bündeln kann. Ein Plugin mit nur einem Skill ist völlig in Ordnung; du kannst SKILL.md sogar direkt im Plugin-Root ablegen, statt in einem skills/-Ordner.
Warum lädt mein Plugin nicht?
Der übliche Übeltäter ist die Verzeichnisplatzierung: skills/, agents/ und hooks/ müssen im Plugin-Root liegen, und nur plugin.json gehört in .claude-plugin/. Führe /reload-plugins aus und dann claude plugin validate, um Struktur- und Manifest-Fehler sichtbar zu machen.
Wie erhalten Nutzer Updates für mein Plugin?
Das hängt von deinem Manifest ab. Mit einer expliziten version werden Updates nur ausgeliefert, wenn du die Nummer erhöhst. Ohne eine behandelt ein git-verteiltes Plugin jeden neuen Commit als neue Version. Setze eine explizite version für alles, worauf ein Team angewiesen ist, damit Updates bewusst erfolgen.
Quellen
- Claude Code Docs — Plugins erstellen: offizieller Quickstart, Manifest-Felder, Verzeichnisstruktur,
--plugin-dirund/reload-plugins. - Claude Code Docs — Einen Plugin-Marketplace erstellen und verteilen:
marketplace.json, Hosting und private Repositories. - DataCamp — How to Build Claude Code Plugins: Schritt-für-Schritt-Tutorial mit
claude plugin-Befehlen (Feb 2026). - DEV Community — Building my first Claude Code Plugin: der Erst-Plugin-Durchlauf eines Entwicklers (Dec 2025).
Waqas Ahmed Waseer
Waqas Ahmed Waseer ist Entwickler und Automation-Builder mit über 8 Jahren Erfahrung im Aufbau von Produktivsystemen, die von mehr als 100.000 Menschen genutzt werden. Er baut individuelle Multi-Tenant-SaaS, KI-Automatisierung (n8n, LLM-Workflows, WhatsApp-Bots) und Hosting-Infrastruktur (WHM/cPanel, CloudLinux) — und ist der Macher von WaSphere, FlowMaticX und der Hosting-Marke WaseerHost. Über 100 Projekte für KMU, Agenturen und finanzierte Start-ups umgesetzt.



