Claude Code Masterkurs – KI-gestuetztes Programmieren lernen mit Anthropics Coding-Agent

Plugins & Marketplace

Level 3 | 30 Minuten

Claude Code Plugins erstellen, verteilen und im Marketplace veröffentlichen

Lernziele

Was sind Claude Code Plugins?

Plugins sind das Verteilungs- und Paketsystem von Claude Code. Sie bündeln Skills, Hooks, Subagents und MCP-Server zu installierbaren Paketen die du mit einem einzigen Befehl hinzufügen kannst — wie npm-Pakete für dein Claude Code Setup. Stell dir vor, ein erfahrener Entwickler hat einen perfekten Code-Review-Workflow erstellt: Einen spezialisierten Review-Skill, drei Slash-Commands für verschiedene Review-Typen, einen Hook der nach jedem Review automatisch formatiert, und einen Custom Agent der Security-Checks macht. Ohne Plugins müsstest du jede dieser Dateien einzeln kopieren und konfigurieren. Mit einem Plugin: 'claude plugin install review-toolkit' — fertig. Plugins lösen das Distributions-Problem: Wie teile ich mein Claude Code Setup mit dem Team, mit der Community oder innerhalb des Unternehmens? Die Antwort: Du packst alles in ein Plugin, veröffentlichst es, und andere installieren es. Die Plugin-Architektur ist einfach: Ein Plugin ist ein Git-Repository mit einer bestimmten Verzeichnisstruktur. Es enthält eine plugin.json Manifest-Datei die beschreibt was im Plugin enthalten ist (Skills, Commands, Hooks, Agents), und die entsprechenden Dateien in den richtigen Verzeichnissen. Plugins unterstützen Namespacing: Skills und Commands aus einem Plugin sind automatisch mit dem Plugin-Namen prefixed. Das verhindert Namenskonflikte wenn du mehrere Plugins installiert hast. Der Marketplace ist die zentrale Plattform wo Plugins veröffentlicht und entdeckt werden. Du kannst Plugins nach Kategorie, Beliebtheit und Bewertungen filtern. Seit dem Launch sind hunderte Community-Plugins verfügbar. Mein Rat: Starte als Plugin-NUTZER. Installiere 2-3 beliebte Plugins für deine häufigsten Workflows. Wenn du genug Erfahrung gesammelt hast, erstelle dein erstes eigenes Plugin — es ist einfacher als du denkst.

PLUGINS vs. SKILLS vs. MCP vs. HOOKS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

PLUGINS:
├── Was: Erweiterbare Module für Claude Code
├── Wie: Installiert via Marketplace oder lokal
├── Wann: Code Intelligence, Custom Processing
├── Beispiel: TypeScript-Plugin für bessere Typ-Erkennung
└── Scope: Tief in Claude Code integriert

SKILLS:
├── Was: Instruktionen in Markdown-Dateien
├── Wie: Ordner mit SKILL.md in .claude/skills/
├── Wann: Wiederverwendbare Workflows, Best Practices
├── Beispiel: "Wie man React Components erstellt"
└── Scope: Prompt-Level (Claude liest die Anweisungen)

MCP SERVER:
├── Was: Externe Tool-Verbindungen
├── Wie: Separate Prozesse via MCP-Protokoll
├── Wann: Externe APIs, Browser, Datenbanken
├── Beispiel: Playwright für Browser-Automation
└── Scope: Tool-Level (neue Werkzeuge)

HOOKS:
├── Was: Event-basierte Automatisierungen
├── Wie: Shell-Befehle bei bestimmten Events
├── Wann: Pre/Post-Processing, Qualitäts-Checks
├── Beispiel: Lint nach jedem File-Save
└── Scope: Event-Level (automatisch ausgelöst)

Plugins installieren

Die Installation von Plugins ist denkbar einfach: Ein Befehl genügt, und alle im Plugin enthaltenen Skills, Commands, Hooks und Agents sind sofort verfügbar. Keine manuelle Konfiguration, keine Datei-Kopiererei, kein Setup. Der Installationsbefehl: 'claude plugin install <plugin-name>' installiert ein Plugin aus dem offiziellen Marketplace. Für Plugins von GitHub: 'claude plugin install github:username/repo'. Für lokale Plugins: 'claude plugin install ./path/to/plugin'. Was passiert bei der Installation? Das Plugin wird heruntergeladen, seine Dateien (Skills, Commands, Hooks, Agents) werden in das richtige Verzeichnis kopiert, und die Konfiguration wird aktualisiert. Beim nächsten Start von Claude Code sind alle Plugin-Features automatisch verfügbar. Plugin-Management: 'claude plugin list' zeigt alle installierten Plugins. 'claude plugin update <name>' aktualisiert ein Plugin auf die neueste Version. 'claude plugin remove <name>' deinstalliert ein Plugin sauber. Namespacing verhindert Konflikte: Alle Skills und Commands aus einem Plugin sind automatisch mit dem Plugin-Namen prefixed. Ein 'review' Command aus dem Plugin 'code-quality' wird zu '/project:code-quality/review'. So können mehrere Plugins den gleichen Command-Namen verwenden ohne sich zu stören. Bei der Plugin-Auswahl beachten: Lies die Plugin-Beschreibung und die enthaltenen Dateien bevor du installierst. Ein Plugin kann Hooks enthalten die bei JEDEM Event laufen — prüfe ob das gewünscht ist. Bevorzuge Plugins mit vielen Downloads, guten Bewertungen und aktiver Wartung.

# Plugins aus dem Marketplace installieren:
claude plugin install @anthropic/code-intelligence-typescript
claude plugin install @community/prettier-integration
claude plugin install @company/internal-linter

# Installierte Plugins anzeigen:
claude plugin list
# Output:
# ┌───────────────────────────────────┬─────────┬──────────┐
# │ Plugin                            │ Version │ Status   │
# ├───────────────────────────────────┼─────────┼──────────┤
# │ @anthropic/code-intelligence-ts   │ 2.1.0   │ Active   │
# │ @community/prettier-integration   │ 1.3.2   │ Active   │
# │ @company/internal-linter          │ 0.5.0   │ Active   │
# └───────────────────────────────────┴─────────┴──────────┘

# Plugin deaktivieren/aktivieren:
claude plugin disable @community/prettier-integration
claude plugin enable @community/prettier-integration

# Plugin entfernen:
claude plugin remove @community/prettier-integration

# Plugin aktualisieren:
claude plugin update @anthropic/code-intelligence-ts
claude plugin update --all

Eigenes Plugin entwickeln

Ein Plugin zu entwickeln ist überraschend einfach — im Kern ist es ein Git-Repository mit einer bestimmten Verzeichnisstruktur und einer Manifest-Datei. Wenn du bereits Skills, Commands oder Hooks erstellt hast, ist der Schritt zum Plugin minimal. Die Grundstruktur: Ein Plugin-Repository enthält eine plugin.json (das Manifest), und die entsprechenden Verzeichnisse: skills/ für Skills, commands/ für Slash-Commands, hooks/ für Hook-Definitionen, und agents/ für Custom Agents. Du brauchst nicht alle — nur die die dein Plugin enthält. Die plugin.json ist das Herzstück: Sie definiert den Plugin-Namen, die Version, eine Beschreibung, den Autor und welche Komponenten enthalten sind. Das SDK nutzt diese Datei um zu wissen was installiert werden muss und wie es konfiguriert wird. Der Entwicklungs-Workflow: Erstelle die Verzeichnisstruktur, füge deine bestehenden Skills/Commands/Hooks hinzu, erstelle die plugin.json, und teste lokal mit 'claude plugin install ./'. Wenn alles funktioniert, pushe das Repository zu GitHub. Qualitätskriterien für gute Plugins: Klare Dokumentation (README mit Beschreibung, Installation, Verwendung), konsistente Namensgebung, minimale Dependencies, Versions-Tagging, und ein CHANGELOG das Änderungen dokumentiert. Für fortgeschrittene Plugins: Du kannst eine Installations-Routine definieren die bei der Installation automatisch ausgeführt wird — zum Beispiel um Konfigurationsdateien zu erstellen oder Dependencies zu prüfen. Mein Tipp: Starte mit einem Plugin das EINEN Workflow gut abdeckt. Ein fokussiertes Plugin ist besser als ein riesiges Bundle das alles ein bisschen kann.

# Plugin-Projekt erstellen:
mkdir my-claude-plugin && cd my-claude-plugin
npm init -y

# Projektstruktur:
# my-claude-plugin/
# ├── package.json        # Plugin-Manifest
# ├── src/
# │   └── index.ts        # Plugin-Einstiegspunkt
# ├── README.md           # Dokumentation
# └── tsconfig.json
// package.json für Claude Code Plugin
// Wichtige Felder: "claude-code" Sektion definiert Plugin-Metadaten

name:               @myname/my-claude-plugin
version:            1.0.0
description:        Custom Plugin für Claude Code
main:               dist/index.js
claude-code.type:          plugin
claude-code.displayName:   My Custom Plugin
claude-code.description:   Fügt XYZ-Funktionalität hinzu
claude-code.category:      code-intelligence
claude-code.permissions:   ["read", "write"]
claude-code.supportedLanguages: ["typescript", "javascript"]
scripts.build:      tsc
scripts.dev:        tsc --watch
// src/index.ts – Plugin-Einstiegspunkt
import type { ClaudeCodePlugin, PluginContext } from '@anthropic-ai/plugin-api';

const myPlugin: ClaudeCodePlugin = {
  name: 'my-custom-plugin',
  version: '1.0.0',

  // Wird aufgerufen wenn das Plugin geladen wird
  async onActivate(context: PluginContext) {
    console.log('Plugin aktiviert!');
    
    // Custom Tool registrieren
    context.registerTool({
      name: 'analyze_complexity',
      description: 'Analysiert die Komplexität einer Datei',
      parameters: {
        filePath: { type: 'string', description: 'Pfad zur Datei' },
      },
      execute: async ({ filePath }) => {
        const content = await context.readFile(filePath);
        const complexity = calculateComplexity(content);
        return 'Komplexität von ' + filePath + ': ' + complexity;
      },
    });

    // Hook registrieren
    context.registerHook('afterFileWrite', async (event) => {
      // Nach jedem Datei-Schreiben: Komplexitäts-Check
      const complexity = calculateComplexity(event.content);
      if (complexity > 15) {
        context.warn(
          'Hohe Komplexität (' + complexity + ') in ' + event.filePath
        );
      }
    });
  },

  async onDeactivate() {
    console.log('Plugin deaktiviert.');
  },
};

export default myPlugin;

Im Marketplace veröffentlichen

Der Marketplace ist die zentrale Plattform zum Teilen und Entdecken von Claude Code Plugins. Die Veröffentlichung folgt einem einfachen Prozess und macht dein Plugin für die gesamte Community verfügbar. Voraussetzungen: Ein GitHub-Repository mit korrekter Plugin-Struktur und plugin.json. Mindestens eine Version (Git-Tag). Eine aussagekräftige README mit Beschreibung, Installation, Verwendung und Beispielen. Und natürlich ein Claude Code Account. Der Veröffentlichungsprozess: 'claude plugin publish' validiert die Plugin-Struktur, prüft die plugin.json, und sendet das Plugin an den Marketplace. Du bekommst eine Bestätigung und einen Link zur Marketplace-Seite. Nach der Veröffentlichung: Dein Plugin erscheint im Marketplace und ist über 'claude plugin install <name>' installierbar. Nutzer können es bewerten, Kommentare hinterlassen und Issues melden. Für Updates: Ändere die Version in plugin.json, erstelle einen neuen Git-Tag, und führe 'claude plugin publish' erneut aus. Nutzer die das Plugin installiert haben, können mit 'claude plugin update <name>' auf die neue Version wechseln. Marketing-Tipps: Eine gute README mit Screenshots und konkreten Beispielen erhöht die Installationsrate erheblich. Teile dein Plugin in der Claude Code Community (Discord, GitHub Discussions). Reagiere auf Issues und Feature-Requests — aktive Pflege baut Vertrauen auf. Ein Hinweis zur Qualität: Der Marketplace hat Qualitätsstandards. Plugins die Malware enthalten, gegen die Nutzungsbedingungen verstoßen oder nicht funktionieren, werden entfernt. Teste dein Plugin gründlich vor der Veröffentlichung.

# 1. Plugin bauen und testen:
npm run build
claude plugin install --local ./dist

# 2. Testen ob alles funktioniert:
claude
> Nutze analyze_complexity für src/app.ts

# 3. Im Marketplace veröffentlichen:
claude plugin publish
# → Erfordert Anthropic Developer Account
# → Plugin wird reviewed vor Veröffentlichung
# → Braucht: README, LICENSE, Tests

# 4. Versioning und Updates:
# Semantic Versioning (Major.Minor.Patch)
npm version patch  # Bug-Fixes
npm version minor  # Neue Features
npm version major  # Breaking Changes
claude plugin publish  # Neue Version veröffentlichen

Enterprise Plugin Distribution

In Enterprise-Umgebungen brauchst du kontrollierte Plugin-Verteilung — nicht jeder Entwickler soll beliebige Plugins aus dem öffentlichen Marketplace installieren können. Diese Strategien helfen dir, Plugins sicher und konsistent im Unternehmen zu verteilen. Strategie 1 — Private Registry: Betreibe einen internen Plugin-Marketplace. Nur geprüfte und freigegebene Plugins sind verfügbar. Entwickler installieren Plugins aus der internen Registry statt aus dem öffentlichen Marketplace. Strategie 2 — Git-basierte Distribution: Hoste Plugins in internen Git-Repositories. Installation über 'claude plugin install git@internal-gitlab.com:team/plugin.git'. Nur Mitarbeiter mit Repository-Zugriff können Plugins installieren. Strategie 3 — Managed Settings: Nutze Enterprise Managed Settings um zu kontrollieren welche Plugins installiert werden dürfen. Definiere eine Whitelist erlaubter Plugins und blockiere alles andere. Strategie 4 — Team-Plugins im Repository: Definiere die Plugin-Konfiguration in der Projektdatei .claude/plugins.json. Alle Teammitglieder bekommen beim Clone automatisch die richtigen Plugins. Neue Plugins müssen durch Code-Review und Freigabe. Security-Aspekte: Prüfe jedes Plugin vor der Freigabe: Welche Hooks definiert es (können sie Befehle ausführen)? Welche Skills enthält es (ändern sie Claude's Verhalten auf unerwünschte Weise)? Welche MCP-Server bindet es ein (externe Datenverbindungen)? Welche Berechtigungen braucht es? Die Kombination aus Managed Settings und interner Distribution gibt dir maximale Kontrolle: Nur freigegebene Plugins sind installierbar, und die Konfiguration wird zentral verwaltet.

🎓 Plugins ZusammenfassungPlugins: Tiefe Integration in Claude Code's Processing ✅ Skills: Wiederverwendbare Anweisungen (Markdown) ✅ MCP: Externe Tool-Verbindungen (Protokoll) ✅ Hooks: Event-basierte Automation (Shell) ✅ Marketplace: Veröffentlichung und Installation ✅ Enterprise: Private Registries für Teams ✅ Code Intelligence: Besseres Sprachverständnis = Weniger Tokens