Zum Hauptinhalt springen
Ein Plugin-Marktplatz ist ein Katalog, mit dem Sie Plugins an andere verteilen können. Marktplätze bieten zentrale Entdeckung, Versionsverfolgung, automatische Updates und Unterstützung für mehrere Quellentypen, einschließlich Git-Repositories und lokaler Pfade. Diese Anleitung zeigt Ihnen, wie Sie Ihren eigenen Marktplatz erstellen, um Plugins mit Ihrem Team oder Ihrer Community zu teilen. Möchten Sie Plugins aus einem vorhandenen Marktplatz installieren? Siehe Entdecken und Installieren vorgefertigter Plugins.

Übersicht

Das Erstellen und Verteilen eines Marktplatzes umfasst:
  1. Plugins erstellen: Erstellen Sie ein oder mehrere Plugins mit skills, Agents, hooks, MCP servers oder LSP servers. Diese Anleitung setzt voraus, dass Sie bereits Plugins zum Verteilen haben; siehe Plugins erstellen für Details zum Erstellen von Plugins.
  2. Marktplatzdatei erstellen: Definieren Sie eine marketplace.json, die Ihre Plugins und deren Speicherorte auflistet. Siehe Marktplatzdatei erstellen.
  3. Marktplatz hosten: Pushen Sie zu GitHub, GitLab oder einem anderen Git-Host. Siehe Marktplätze hosten und verteilen.
  4. Mit Benutzern teilen: Benutzer fügen Ihren Marktplatz mit /plugin marketplace add hinzu und installieren einzelne Plugins. Siehe Plugins entdecken und installieren.
Sobald Ihr Marktplatz live ist, können Sie ihn aktualisieren, indem Sie Änderungen in Ihr Repository pushen. Benutzer aktualisieren ihre lokale Kopie mit /plugin marketplace update.

Anleitung: Erstellen Sie einen lokalen Marktplatz

Dieses Beispiel erstellt einen Marktplatz mit einem Plugin: ein quality-review skill für Code-Reviews. Sie erstellen die Verzeichnisstruktur, fügen ein skill hinzu, erstellen das Plugin-Manifest und den Marktplatzkatalog und installieren und testen ihn dann.
1

Erstellen Sie die Verzeichnisstruktur

2

Erstellen Sie das skill

Erstellen Sie eine SKILL.md-Datei, die definiert, was das quality-review skill tut.
my-marketplace/plugins/quality-review-plugin/skills/quality-review/SKILL.md
3

Erstellen Sie das Plugin-Manifest

Erstellen Sie eine plugin.json-Datei, die das Plugin beschreibt. Das Manifest befindet sich im .claude-plugin/-Verzeichnis.
my-marketplace/plugins/quality-review-plugin/.claude-plugin/plugin.json
Das Festlegen von version bedeutet, dass Benutzer nur Updates erhalten, wenn Sie dieses Feld ändern. Erhöhen Sie es daher bei jeder Veröffentlichung. Wenn Sie version weglassen und diesen Marktplatz in Git hosten, zählt jeder Commit automatisch als neue Version. Siehe Versionsauflösung, um den richtigen Ansatz zu wählen.
4

Erstellen Sie die Marktplatzdatei

Erstellen Sie den Marktplatzkatalog, der Ihr Plugin auflistet.
my-marketplace/.claude-plugin/marketplace.json
5

Hinzufügen und Installieren

Fügen Sie den Marktplatz hinzu und installieren Sie das Plugin.
6

Probieren Sie es aus

Wählen Sie etwas Code in Ihrem Editor aus und führen Sie Ihr neues skill aus. Plugin-skills sind mit dem Plugin-Namen namespaced.
Um mehr über die Möglichkeiten von Plugins zu erfahren, einschließlich hooks, Agents, MCP servers und LSP servers, siehe Plugins.
Wie Plugins installiert werden: Wenn Benutzer ein Plugin installieren, kopiert Claude Code das Plugin-Verzeichnis an einen Cache-Speicherort. Das bedeutet, dass Plugins keine Dateien außerhalb ihres Verzeichnisses mit Pfaden wie ../shared-utils referenzieren können, da diese Dateien nicht kopiert werden.Wenn Sie Dateien über Plugins hinweg teilen müssen, verwenden Sie Symlinks. Siehe Plugin-Caching und Dateiauflösung für Details.

Marktplatzdatei erstellen

Erstellen Sie .claude-plugin/marketplace.json im Stammverzeichnis Ihres Repositories. Diese Datei definiert den Namen Ihres Marktplatzes, Eigentümerinformationen und eine Liste von Plugins mit ihren Quellen. Jeder Plugin-Eintrag benötigt mindestens einen name und eine source, die Claude Code mitteilt, woher es abgerufen werden soll. Siehe das vollständige Schema unten für alle verfügbaren Felder.

Marktplatz-Schema

Erforderliche Felder

Reservierte Namen: Die folgenden Marktplatznamen sind für die offizielle Nutzung durch Anthropic reserviert und können nicht von Drittanbieter-Marktplätzen verwendet werden: claude-code-marketplace, claude-code-plugins, claude-plugins-official, claude-plugins-community, claude-community, anthropic-marketplace, anthropic-plugins, agent-skills, anthropic-agent-skills, knowledge-work-plugins, life-sciences, claude-for-legal, claude-for-financial-services, financial-services-plugins, first-party-plugins, healthcare. Namen, die offizielle Marktplätze imitieren, wie official-claude-plugins oder anthropic-plugins-v2, sind ebenfalls blockiert. Das Reservieren dieser Namen verhindert, dass sich ein Drittanbieter-Marktplatz als von Anthropic veröffentlichte Quelle darstellt.Claude Code überprüft reservierte Namen jedes Mal, wenn es einen Marktplatz lädt, nicht nur wenn Sie einen hinzufügen. Ein Marktplatz, der unter einem dieser Namen registriert wurde, bevor der Name reserviert wurde, wird nicht mehr geladen und meldet, dass er von einer nicht vertrauenswürdigen Quelle registriert ist. Entfernen Sie diesen Marktplatz und fügen Sie ihn erneut aus der offiziellen Anthropic-Quelle hinzu. Ein Drittanbieter-Marktplatz, der von einem neu reservierten Namen betroffen ist, wird erneut geladen, sobald Sie ihn unter einem anderen Namen erneut hinzufügen. Vor v2.1.205 waren first-party-plugins und healthcare nicht reserviert, und ein Marktplatz, der bereits unter einem reservierten Namen registriert war, wurde weiterhin geladen.

Eigentümer-Felder

Optionale Felder

description und version werden auch unter metadata für Rückwärtskompatibilität akzeptiert.

Plugin-Einträge

Jeder Plugin-Eintrag im plugins-Array beschreibt ein Plugin und wo man es findet. Sie können jedes Feld aus dem Plugin-Manifest-Schema einbeziehen, wie description, version, author, commands und hooks, plus diese Marktplatz-spezifischen Felder: source, category, tags, strict und relevance.

Erforderliche Felder

Optionale Plugin-Felder

Standard-Metadatenfelder: Komponenten-Konfigurationsfelder:

Plugin-Quellen

Plugin-Quellen teilen Claude Code mit, wo jedes einzelne Plugin in Ihrem Marktplatz abgerufen werden soll. Diese werden im source-Feld jedes Plugin-Eintrags in marketplace.json festgelegt. Sobald Claude Code ein Plugin klont oder auf den lokalen Computer herunterlädt, wird es in den lokalen versionierten Plugin-Cache unter ~/.claude/plugins/cache kopiert.
Marktplatz-Quellen vs. Plugin-Quellen: Dies sind unterschiedliche Konzepte, die unterschiedliche Dinge steuern.
  • Marktplatz-Quelle: wo der marketplace.json-Katalog selbst abgerufen werden soll. Wird festgelegt, wenn Benutzer /plugin marketplace add ausführen oder in extraKnownMarketplaces-Einstellungen. Unterstützt ref (Branch/Tag), aber nicht sha.
  • Plugin-Quelle: wo ein einzelnes Plugin in der Marktplatz-Liste abgerufen werden soll. Wird im source-Feld jedes Plugin-Eintrags in marketplace.json festgelegt. Unterstützt sowohl ref (Branch/Tag) als auch sha (exakter Commit).
Beispielsweise kann ein Marktplatz, der unter acme-corp/plugin-catalog gehostet wird (Marktplatz-Quelle), ein Plugin auflisten, das von acme-corp/code-formatter abgerufen wird (Plugin-Quelle). Die Marktplatz-Quelle und die Plugin-Quelle verweisen auf unterschiedliche Repositories und werden unabhängig voneinander angeheftet.
Die Git-basierten Quellentypen unten sind github, url und git-subdir. Wenn sowohl ref als auch sha auf einem von ihnen gesetzt sind, ist sha die effektive Anheftung. Claude Code ruft den angehefteten Commit direkt ab und checkt ihn aus. Auf den meisten Git-Hosts, einschließlich GitHub, GitLab und Bitbucket, bedeutet dies, dass die Installation erfolgreich ist, auch wenn der Branch oder Tag, der durch ref benannt wird, inzwischen upstream gelöscht wurde, solange der Commit noch vom Repository aus erreichbar ist. Einige Server, wie AWS CodeCommit, unterstützen das Abrufen von Commits nach SHA nicht. Auf diesen Servern muss ref noch vorhanden sein und der angeheftete Commit muss von ihm aus erreichbar sein.

Relative Pfade

Für Plugins im selben Repository verwenden Sie einen Pfad, der mit ./ beginnt:
Pfade werden relativ zum Marktplatz-Root aufgelöst, das ist das Verzeichnis, das .claude-plugin/ enthält. Im obigen Beispiel verweist ./plugins/my-plugin auf <repo>/plugins/my-plugin, obwohl marketplace.json unter <repo>/.claude-plugin/marketplace.json lebt. Verwenden Sie nicht ../, um Pfade außerhalb des Marktplatz-Root zu referenzieren.
Relative Pfade werden gegen eine lokale Kopie des Marktplatzes aufgelöst, daher funktionieren sie, wenn Benutzer Ihren Marktplatz aus einer Git-Quelle oder einem lokalen Verzeichnis hinzufügen. Wenn Benutzer Ihren Marktplatz über eine direkte URL zur marketplace.json-Datei hinzufügen, werden relative Pfade nicht aufgelöst, da nur diese Datei heruntergeladen wird. Verwenden Sie für URL-basierte Verteilung stattdessen GitHub-, npm- oder Git-URL-Quellen. Siehe Fehlerbehebung für Details.

GitHub-Repositories

Sie können an einen bestimmten Branch, Tag oder Commit anheften:

Git-Repositories

Sie können an einen bestimmten Branch, Tag oder Commit anheften:

Git-Unterverzeichnisse

Verwenden Sie git-subdir, um auf ein Plugin zu verweisen, das sich in einem Unterverzeichnis eines Git-Repositories befindet. Claude Code verwendet einen sparsamen, teilweisen Klon, um nur das Unterverzeichnis abzurufen und die Bandbreite für große Monorepos zu minimieren.
Sie können an einen bestimmten Branch, Tag oder Commit anheften:
Das url-Feld akzeptiert auch eine GitHub-Kurzform (owner/repo) oder SSH-URLs (git@github.com:owner/repo.git).

npm-Pakete

Plugins, die als npm-Pakete verteilt werden, werden mit npm install installiert. Dies funktioniert mit jedem Paket in der öffentlichen npm-Registry oder einer privaten Registry, die Ihr Team hostet.
Um an eine bestimmte Version anzuheften, fügen Sie das version-Feld hinzu:
Um von einer privaten oder internen Registry zu installieren, fügen Sie das registry-Feld hinzu:

Erweiterte Plugin-Einträge

Dieses Beispiel zeigt einen Plugin-Eintrag mit vielen optionalen Feldern, einschließlich benutzerdefinierter Pfade für Befehle, Agents, hooks und MCP-Server:
Wichtige Dinge zu beachten:
  • commands und agents: Sie können mehrere Verzeichnisse oder einzelne Dateien angeben. Pfade sind relativ zum Plugin-Root.
  • ${CLAUDE_PLUGIN_ROOT}: Verwenden Sie diese Variable in hooks und MCP-Server-Konfigurationen, um auf Dateien im Installationsverzeichnis des Plugins zu verweisen. Dies ist notwendig, da Plugins beim Installieren an einen Cache-Speicherort kopiert werden.
    • Siehe die Substitutionstabelle für welche Konfigurationsfelder sie pro Servertyp ersetzen
    • Verwenden Sie für Abhängigkeiten oder Status, die Plugin-Updates überstehen sollten, stattdessen ${CLAUDE_PLUGIN_DATA}
  • strict: false: Da dies auf false gesetzt ist, benötigt das Plugin keine eigene plugin.json. Der Marktplatz-Eintrag definiert alles. Siehe Strict Mode unten.
Standardmäßig werden die Skills eines Plugins aus dem skills/-Verzeichnis unter seiner source geladen. Pfade, die im skills-Feld aufgelistet sind, werden zu diesem Scan hinzugefügt:
Wenn mehrere Plugin-Einträge einen skills/-Ordner im Marktplatz-Root gemeinsam nutzen (source: "./"), listen Sie stattdessen bestimmte Unterverzeichnisse auf, damit jeder Eintrag nur seine eigenen Skills lädt:
Mit einer Marktplatz-Root-Quelle ist die aufgelistete Pfadliste die vollständige Menge für diesen Eintrag, und andere Verzeichnisse im gemeinsamen skills/-Ordner werden nicht geladen. Das Auflisten des skills/-Verzeichnisses selbst oder des Plugin-Root behält den vollständigen Scan bei. Wenn keiner der aufgelisteten Pfade existiert, wird stattdessen der Standard-Scan ausgeführt.

Strict Mode

Das strict-Feld steuert, ob plugin.json die Autorität für Komponentendefinitionen ist (skills, Agents, hooks, MCP-Server, Ausgabestile). Wann jeder Modus verwendet werden sollte:
  • strict: true: Das Plugin hat seine eigene plugin.json und verwaltet seine eigenen Komponenten. Der Marktplatz-Eintrag kann zusätzliche Skills oder hooks hinzufügen. Dies ist der Standard und funktioniert für die meisten Plugins.
  • strict: false: Der Marktplatz-Betreiber möchte vollständige Kontrolle. Das Plugin-Repo stellt Rohdateien bereit, und der Marktplatz-Eintrag definiert, welche dieser Dateien als Skills, Agents, hooks usw. verfügbar gemacht werden. Nützlich, wenn der Marktplatz die Komponenten eines Plugins anders strukturiert oder kuratiert als vom Plugin-Autor beabsichtigt.

Marktplätze hosten und verteilen

GitHub ist die empfohlene Methode zum Hosten und Verteilen eines Marktplatzes:
  1. Repository erstellen: Richten Sie ein neues Repository für Ihren Marktplatz ein
  2. Marktplatzdatei hinzufügen: Erstellen Sie .claude-plugin/marketplace.json mit Ihren Plugin-Definitionen
  3. Mit Teams teilen: Benutzer fügen Ihren Marktplatz mit /plugin marketplace add owner/repo hinzu
Vorteile: Integrierte Versionskontrolle, Issue-Tracking und Team-Zusammenarbeitsfunktionen.

Auf anderen Git-Services hosten

Jeder Git-Hosting-Service funktioniert, wie GitLab, Bitbucket und selbstgehostete Server. Benutzer fügen mit der vollständigen Repository-URL hinzu:

Private Repositories

Claude Code unterstützt die Installation von Plugins aus privaten Repositories. Für manuelle Installation und Updates verwendet Claude Code Ihre vorhandenen Git-Credential-Helper, daher funktioniert HTTPS-Zugriff über gh auth login, macOS Keychain oder git-credential-store genauso wie in Ihrem Terminal. SSH-Zugriff funktioniert, solange der Host bereits in Ihrer known_hosts-Datei vorhanden ist und der Schlüssel in ssh-agent geladen ist, da Claude Code interaktive SSH-Eingabeaufforderungen für den Host-Fingerprint und die Schlüsselpassphrase unterdrückt. GitHub owner/repo-Kurzform-Quellen klonen standardmäßig über SSH; legen Sie CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1 fest, um sie stattdessen über HTTPS zu klonen. Hintergrund-Auto-Updates funktionieren anders. Standardmäßig deaktiviert die Hintergrund-Aktualisierung Git-Credential-Helper für seinen git pull, sodass der Pull sich nicht bei privaten Repositories über HTTPS authentifizieren kann, auch wenn ein Helper konfiguriert ist. SSH-Remotes sind nicht betroffen: Ein in ssh-agent geladener Schlüssel authentifiziert Hintergrund-Pulls genauso wie manuelle Operationen. Wenn der Hintergrund-Pull fehlschlägt, greift Claude Code auf das erneute Klonen des Marktplatzes von Grund auf zurück. Das erneute Klonen verwendet Ihre gespeicherten Git-Anmeldedaten, kann aber bei großen Repositories zeitlich überschritten werden, daher können Auto-Updates für private Marktplätze intermittierend fehlschlagen. Zwei Einstellungen machen private Marktplätze vorhersehbar:
  • Legen Sie CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1 fest, um den vorhandenen Klon beizubehalten, wenn der Hintergrund-Pull fehlschlägt, anstatt zu löschen und erneut zu klonen. Ihre Plugins funktionieren weiterhin aus dem letzten synchronisierten Zustand, und manuelle Updates mit /plugin marketplace update ziehen immer noch mit Ihren Anmeldedaten.
  • Konfigurieren Sie einen Git-Credential-Helper, beispielsweise mit gh auth setup-git für GitHub, damit das erneute Klonen-Fallback sich ohne Eingabeaufforderung authentifizieren kann.
Das Festlegen eines Provider-Tokens wie GITHUB_TOKEN in Ihrer Umgebung ermöglicht nicht von selbst die Hintergrund-Authentifizierung. Tokens wirken sich nur durch einen konfigurierten Credential-Helper aus, beispielsweise den Helper der gh CLI, der GH_TOKEN und GITHUB_TOKEN liest. Um den Hintergrund-Pull selbst über HTTPS zu authentifizieren, konfigurieren Sie ein globales Git-URL-Rewrite. Das Rewrite bettet ein Token in die Remote-URL ein, sodass es wirksam wird, obwohl der Hintergrund-Pull Credential-Helper deaktiviert, und ein erfolgreicher Pull überspringt das erneute Klonen-Fallback. Das folgende Beispiel schreibt die URL des Marktplatz-Repositories um, um ein Zugriffs-Token einzuschließen:
Beschränken Sie das Rewrite auf den Marktplatz-Repository oder Organisations-Pfad. Ein Rewrite, dessen Basis nur der Host ist, gilt für jeden Abruf und Push zu diesem Host auf der Maschine und überschreibt Ihre normalen Anmeldedaten, einschließlich Pushes zu Ihren eigenen Repositories. Jeder Provider erwartet einen anderen Benutzernamen in der umgeschriebenen URL, und die gleiche Pfad-Scoping gilt für jeden Provider. Für selbstgehostete Server ersetzen Sie den Hostnamen durch den Hostnamen Ihres Servers: Das Rewrite speichert das Token im Klartext in Ihrer Gitconfig, daher verwenden Sie ein Token mit Nur-Lese-Zugriff auf das Marktplatz-Repository.
Konfigurieren Sie in CI/CD-Umgebungen einen Git-Credential-Helper, bevor Sie Plugins aus privaten Repositories installieren. Auf GitHub Actions exportieren Sie ein Token mit Lesezugriff auf das Marktplatz-Repository als GH_TOKEN, führen Sie dann gh auth setup-git aus. Das Standard-Workflow-Token kann nur auf das eigene Repository des Workflows zugreifen, daher benötigt ein privater Marktplatz in einem anderen Repository ein persönliches Zugriffs-Token oder App-Token. Ein globales URL-Rewrite, das in der Pipeline konfiguriert ist, authentifiziert auch den Hintergrund-Pull direkt.

Lokal vor der Verteilung testen

Testen Sie Ihren Marktplatz lokal, bevor Sie ihn teilen:
Für die vollständige Palette von Add-Befehlen (GitHub, Git-URLs, lokale Pfade, Remote-URLs) siehe Marktplätze hinzufügen.

Marktplätze für Ihr Team erforderlich machen

Sie können Ihr Repository so konfigurieren, dass Teammitglieder automatisch aufgefordert werden, Ihren Marktplatz zu installieren, wenn sie dem Projektordner vertrauen. Fügen Sie Ihren Marktplatz zu .claude/settings.json hinzu:
Sie können auch angeben, welche Plugins standardmäßig aktiviert sein sollen:
Für vollständige Konfigurationsoptionen siehe Plugin-Einstellungen.
Wenn Sie eine lokale directory- oder file-Quelle mit einem relativen Pfad verwenden, wird der Pfad gegen den Haupt-Checkout Ihres Repositories aufgelöst. Wenn Sie Claude Code aus einem Git Worktree ausführen, verweist der Pfad immer noch auf den Haupt-Checkout, sodass alle Worktrees denselben Marktplatz-Speicherort teilen. Der Marktplatz-Status wird einmal pro Benutzer in ~/.claude/plugins/known_marketplaces.json gespeichert, nicht pro Projekt.

Plugins für Container vorab ausfüllen

Für Container-Images und CI-Umgebungen können Sie ein Plugins-Verzeichnis zur Build-Zeit vorab ausfüllen, damit Claude Code mit bereits verfügbaren Marktplätzen und Plugins startet, ohne zur Laufzeit etwas zu klonen. Legen Sie die Umgebungsvariable CLAUDE_CODE_PLUGIN_SEED_DIR fest, um auf dieses Verzeichnis zu verweisen. Um mehrere Seed-Verzeichnisse zu schichten, trennen Sie Pfade mit : auf Unix oder ; auf Windows. Claude Code durchsucht jedes Verzeichnis in der Reihenfolge und verwendet den ersten Seed, der einen bestimmten Marktplatz oder Plugin-Cache enthält. Das Seed-Verzeichnis spiegelt die Struktur von ~/.claude/plugins:
Um ein Seed-Verzeichnis zu erstellen, führen Sie Claude Code einmal während des Image-Builds aus, installieren Sie die benötigten Plugins, kopieren Sie dann das resultierende ~/.claude/plugins-Verzeichnis in Ihr Image und verweisen Sie CLAUDE_CODE_PLUGIN_SEED_DIR darauf. Um den Kopierungsschritt zu überspringen, legen Sie CLAUDE_CODE_PLUGIN_CACHE_DIR während des Builds auf Ihren Ziel-Seed-Pfad fest, damit Plugins direkt dort installiert werden:
Legen Sie dann CLAUDE_CODE_PLUGIN_SEED_DIR=/opt/claude-seed in der Laufzeitumgebung Ihres Containers fest, damit Claude Code beim Start aus dem Seed liest. Beim Start registriert Claude Code Marktplätze, die in der Seed-Datei known_marketplaces.json gefunden werden, in der primären Konfiguration und verwendet Plugin-Caches, die unter cache/ gefunden werden, ohne erneut zu klonen. Dies funktioniert sowohl im interaktiven Modus als auch im nicht-interaktiven Modus mit dem -p-Flag. Verhaltensdetails:
  • Schreibgeschützt: Das Seed-Verzeichnis wird nie geschrieben. Auto-Updates sind für Seed-Marktplätze deaktiviert, da git pull auf einem schreibgeschützten Dateisystem fehlschlagen würde.
  • Seed-Einträge haben Vorrang: Marktplätze, die in der Seed deklariert sind, überschreiben alle übereinstimmenden Einträge in der Benutzerkonfiguration bei jedem Start. Um sich von einem Seed-Plugin abzumelden, verwenden Sie /plugin disable, anstatt den Marktplatz zu entfernen.
  • Pfadauflösung: Claude Code lokalisiert Marktplatz-Inhalte, indem es $CLAUDE_CODE_PLUGIN_SEED_DIR/marketplaces/<name>/ zur Laufzeit durchsucht, nicht indem es Pfaden vertraut, die in der Seed-JSON gespeichert sind. Dies bedeutet, dass die Seed korrekt funktioniert, auch wenn sie an einem anderen Pfad als dort, wo sie erstellt wurde, bereitgestellt wird.
  • Mutation ist blockiert: Das Ausführen von /plugin marketplace remove oder /plugin marketplace update gegen einen Seed-verwalteten Marktplatz schlägt mit Anleitung fehl, um Ihren Administrator zu bitten, das Seed-Image zu aktualisieren.
  • Komponiert mit Einstellungen: Wenn extraKnownMarketplaces oder enabledPlugins einen Marktplatz deklarieren, der bereits in der Seed vorhanden ist, verwendet Claude Code die Seed-Kopie, anstatt zu klonen.

Verwaltete Marktplatz-Einschränkungen

Für Organisationen, die strikte Kontrolle über Plugin-Quellen benötigen, können Administratoren einschränken, welche Plugin-Marktplätze Benutzer hinzufügen dürfen, indem sie die Einstellung strictKnownMarketplaces in verwalteten Einstellungen verwenden. Um auch die CLI-Flags abzulehnen, die Plugins, Agenten und MCP-Server für einen einzelnen Durchlauf seitenladen, kombinieren Sie es mit disableSideloadFlags. Um eine Zulassungsliste zu erstellen, welche Plugins von Marktplätzen als kontextuelle Installationsvorschläge angezeigt werden können, legen Sie pluginSuggestionMarketplaces fest. Wenn strictKnownMarketplaces in verwalteten Einstellungen konfiguriert ist, hängt das Einschränkungsverhalten vom Wert ab:

Häufige Konfigurationen

Deaktivieren Sie alle Marktplatz-Ergänzungen:
Nur bestimmte Marktplätze zulassen:
Alle Marktplätze von einem internen Git-Server mit Regex-Musterabgleich auf dem Host zulassen. Dies ist der empfohlene Ansatz für GitHub Enterprise Server oder selbstgehostete GitLab-Instanzen:
Dateisystem-basierte Marktplätze aus einem bestimmten Verzeichnis mit Regex-Musterabgleich auf dem Pfad zulassen:
Verwenden Sie ".*" als pathPattern, um jeden Dateisystempfad zuzulassen und gleichzeitig Netzwerkquellen mit hostPattern zu steuern.
strictKnownMarketplaces schränkt ein, was Benutzer hinzufügen können, registriert aber nicht selbst Marktplätze. Um zulässige Marktplätze automatisch verfügbar zu machen, ohne dass Benutzer /plugin marketplace add ausführen müssen, kombinieren Sie es mit extraKnownMarketplaces in derselben managed-settings.json. Siehe Beide zusammen verwenden.

Wie Einschränkungen funktionieren

Einschränkungen werden überprüft, bevor Netzwerk- oder Dateisystemoperationen durchgeführt werden. Die Überprüfung wird beim Hinzufügen von Marktplätzen und beim Installieren, Aktualisieren, Aktualisieren und Auto-Update von Plugins durchgeführt. Wenn ein Marktplatz hinzugefügt wurde, bevor die Richtlinie konfiguriert wurde, und seine Quelle nicht mehr mit der Zulassungsliste übereinstimmt, weigert sich Claude Code, Plugins daraus zu installieren oder zu aktualisieren. Die gleiche Durchsetzung gilt für blockedMarketplaces. Die Zulassungsliste verwendet exakten Abgleich für die meisten Quellentypen. Damit ein Marktplatz zulässig ist, müssen alle angegebenen Felder genau übereinstimmen:
  • Für GitHub-Quellen: repo ist erforderlich, und ref oder path müssen auch übereinstimmen, wenn sie in der Zulassungsliste angegeben sind
  • Für URL-Quellen: Die vollständige URL muss genau übereinstimmen
  • Für hostPattern-Quellen: Der Marktplatz-Host wird gegen das Regex-Muster abgeglichen
  • Für pathPattern-Quellen: Der Dateisystempfad des Marktplatzes wird gegen das Regex-Muster abgeglichen
Exakter Abgleich normalisiert URLs nicht: Ein nachgestellter Schrägstrich, .git-Suffix oder ssh:// versus https://-Form werden als unterschiedliche Werte behandelt. Wenn Ihr Organisations-Marktplatz durch mehr als eine URL-Form geklont werden kann, bevorzugen Sie einen hostPattern-Eintrag gegenüber einer literalen URL, damit alle Formen übereinstimmen. Da strictKnownMarketplaces in verwalteten Einstellungen festgelegt ist, können einzelne Benutzer und Projektkonfigurationen diese Einschränkungen nicht überschreiben. Für vollständige Konfigurationsdetails einschließlich aller unterstützten Quellentypen und Vergleich mit extraKnownMarketplaces siehe die strictKnownMarketplaces-Referenz.

Versionsauflösung und Release-Kanäle

Plugin-Versionen bestimmen Cache-Pfade und Update-Erkennung: Wenn die aufgelöste Version mit dem übereinstimmt, was ein Benutzer bereits hat, überspringen /plugin update und Auto-Update das Plugin. Claude Code löst die Version eines Plugins aus dem ersten dieser Punkte auf, der festgelegt ist:
  1. version in der plugin.json des Plugins
  2. version im Marktplatz-Eintrag des Plugins
  3. Der Git-Commit-SHA der Plugin-Quelle
Für die Git-basierten Quellentypen github, url, git-subdir und relative Pfade innerhalb eines Git-gehosteten Marktplatzes können Sie version ganz weglassen und jeder neue Commit wird als neue Version behandelt. Dies ist die einfachste Einrichtung für interne oder aktiv entwickelte Plugins.
Das Festlegen von version heftet das Plugin an. Wenn plugin.json "version": "1.0.0" deklariert, führt das Pushen neuer Commits ohne Änderung dieser Zeichenkette für bestehende Benutzer zu nichts, da Claude Code die gleiche Version sieht und die zwischengespeicherte Kopie behält. Erhöhen Sie das Feld bei jeder Veröffentlichung, oder lassen Sie es weg, um den Commit-SHA zu verwenden.Vermeiden Sie das Festlegen von version sowohl in plugin.json als auch im Marktplatz-Eintrag. Der plugin.json-Wert gewinnt immer stillschweigend, daher kann eine veraltete Manifest-Version eine Version maskieren, die Sie in marketplace.json festgelegt haben.

Richten Sie Release-Kanäle ein

Um “stabile” und “neueste” Release-Kanäle für Ihre Plugins zu unterstützen, können Sie zwei Marktplätze einrichten, die auf verschiedene Refs oder SHAs desselben Repos verweisen. Sie können dann die beiden Marktplätze verschiedenen Benutzergruppen über verwaltete Einstellungen zuweisen.
Jeder Kanal muss sich zu einer anderen Version auflösen. Wenn Sie explizite Versionen verwenden, muss plugin.json eine andere version bei jedem angehefteten Ref deklarieren. Wenn Sie version weglassen, unterscheiden die unterschiedlichen Commit-SHAs bereits die Kanäle. Wenn zwei Refs sich zu der gleichen Versionskette auflösen, behandelt Claude Code sie als identisch und überspringt das Update.
Weisen Sie jeden Marktplatz der entsprechenden Benutzergruppe über verwaltete Einstellungen zu. Beispielsweise erhält die stabile Gruppe:
Die Early-Access-Gruppe erhält stattdessen latest-tools:

Abhängigkeitsversionen anheften

Ein Plugin kann seine Abhängigkeiten auf einen Semver-Bereich beschränken, damit Updates einer Abhängigkeit das abhängige Plugin nicht unterbrechen. Siehe Plugin-Abhängigkeitsversionen einschränken für die {plugin-name}--v{version} Git-Tag-Konvention, Bereichssyntax und wie mehrere Einschränkungen auf die gleiche Abhängigkeit kombiniert werden.

Ein Plugin umbenennen oder entfernen

Der name eines Plugins ist sein stabiler Bezeichner. Benutzer verweisen darauf in enabledPlugins, pluginConfigs und /plugin install-Befehlen, daher bricht das Ändern davon jede vorhandene Installation. Um das in der Benutzeroberfläche angezeigte Label zu ändern, ohne Installationen zu unterbrechen, legen Sie displayName fest und behalten Sie name unverändert. Wenn Sie den name eines Plugins ändern müssen oder ein Plugin aus dem plugins-Array entfernen, fügen Sie einen Top-Level-renames-Eintrag hinzu, damit bestehende Benutzer migrieren, anstatt einen plugin-not-found-Fehler zu sehen. Automatische Migration erfordert Claude Code v2.1.193 oder später. Ordnen Sie jeden früheren Namen seinem aktuellen Namen zu, oder zu null, wenn das Plugin nicht mehr existiert. Das folgende Beispiel benennt formatter in code-formatter um und verzeichnet, dass legacy-linter entfernt wurde:
Wenn ein Benutzer Claude Code mit dem alten Namen noch in seinen Einstellungen startet, folgt Claude Code der renames-Zuordnung:
  • Wenn der Eintrag auf einen neuen Namen verweist, lädt Claude Code das Plugin unter seinem neuen Namen und zeigt eine einzeilige Mitteilung wie Renamed to "code-formatter" in the "acme-tools" marketplace an. Es schreibt dann den alten Schlüssel in den neuen Schlüssel in den Benutzer-, Projekt- und lokalen Einstellungsbereichen für sowohl enabledPlugins als auch pluginConfigs um, sodass die Mitteilung einmal angezeigt wird.
  • Für einen null-Eintrag löscht Claude Code den alten Schlüssel und die Mitteilung meldet, dass das Plugin aus dem Marktplatz entfernt wurde.
  • Wenn das umbenannte Plugin eine Remote-Quelle wie github oder npm verwendet, meldet Claude Code plugin-cache-miss nach der Umbenennung und der Benutzer muss /plugin install einmal ausführen, um es unter dem neuen Namen zu holen.
Behandeln Sie renames als Nur-Anhängen-Verlauf: Behalten Sie alte Einträge an Ort und Stelle, auch nachdem Sie erwarten, dass jeder Benutzer migriert hat. Claude Code folgt Ketten, daher wenn Sie später code-formatter in formatter-pro umbenennen, fügen Sie einen zweiten Eintrag hinzu, anstatt den ersten zu bearbeiten. Ein Benutzer, der immer noch das Original formatter aktiviert hat, löst sich dann durch beide Einträge zu formatter-pro auf. Führen Sie claude plugin validate . nach dem Bearbeiten der Zuordnung aus; es lehnt jeden Eintrag ab, dessen Kette einen Zyklus bildet oder nicht bei null oder einem Namen in plugins endet.
Verwaltete und Richtlinieneinstellungen sind schreibgeschützt für Claude Code, daher können dort aktivierte Plugins nicht automatisch umgeschrieben werden. Das umbenannte Plugin wird weiterhin jede Sitzung geladen, aber die Umbenennungsmitteilung wiederholt sich, bis ein Administrator enabledPlugins in der verwalteten Einstellungsdatei aktualisiert, um den neuen Namen zu verwenden. Das gleiche gilt für Plugins, die über andere schreibgeschützte Quellen wie --add-dir aktiviert werden.
Frühere Versionen von Claude Code ignorieren das renames-Feld und melden plugin-not-found für den alten Namen.

Validierung und Tests

Testen Sie Ihren Marktplatz vor dem Teilen. Validieren Sie Ihre Marktplatz-JSON-Syntax:
Oder von innerhalb von Claude Code:
Fügen Sie den Marktplatz zum Testen hinzu:
Installieren Sie ein Test-Plugin, um zu überprüfen, ob alles funktioniert:
Für vollständige Plugin-Test-Workflows siehe Testen Sie Ihre Plugins lokal. Für technische Fehlerbehebung siehe Plugins-Referenz.

Verwalten Sie Marktplätze über die CLI

Claude Code bietet nicht-interaktive claude plugin marketplace Unterbefehle zum Scripting und zur Automatisierung. Diese entsprechen den /plugin marketplace Befehlen, die in einer interaktiven Sitzung verfügbar sind.

Plugin marketplace add

Fügen Sie einen Marktplatz aus einem GitHub-Repository, einer Git-URL, einer Remote-URL oder einem lokalen Pfad hinzu.
Argumente:
  • <source>: GitHub owner/repo Kurzform, Git-URL, Remote-URL zu einer marketplace.json-Datei oder lokaler Verzeichnispfad. Um an einen Branch oder Tag anzuheften, fügen Sie @ref zur GitHub-Kurzform oder #ref zu einer Git-URL hinzu
Eine URL muss ihr Schema enthalten. Ab Claude Code v2.1.196 wird ein Host, der ohne eines eingegeben wird, wie gitlab.example.com/team/plugins, als ungültige owner/repo Kurzform abgelehnt und die Fehlermeldung teilt Ihnen mit, dass Sie https:// hinzufügen oder ./ für einen lokalen Pfad verwenden sollen. Frühere Versionen lasen es als GitHub-Repository-Pfad fehl und schlagen beim Klonen mit einem GitHub-Fehler fehl. Optionen: Fügen Sie einen Marktplatz aus GitHub mit owner/repo Kurzform hinzu:
Heften Sie an einen bestimmten Branch oder Tag mit @ref an:
Fügen Sie von einer Git-URL auf einem nicht-GitHub-Host hinzu:
Fügen Sie von einer Remote-URL hinzu, die die marketplace.json-Datei direkt bereitstellt:
Fügen Sie von einem lokalen Verzeichnis zum Testen hinzu:
Deklarieren Sie den Marktplatz im Projektbereich, damit er mit Ihrem Team über .claude/settings.json geteilt wird:
Für ein Monorepo begrenzen Sie den Checkout auf die Verzeichnisse, die Plugin-Inhalte enthalten:

Plugin marketplace list

Listet alle konfigurierten Marktplätze auf.
Optionen: Mit --json enthält jeder Eintrag name, source und quellenspezifische Felder: repo für GitHub-Quellen, url für Git- und URL-Quellen und path für lokale Quellen. GitHub- und Git-Quellen enthalten auch ein ref-Feld, wenn der Marktplatz mit einem angehefteten Branch oder Tag hinzugefügt wurde.

Plugin marketplace remove

Entfernen Sie einen konfigurierten Marktplatz. Der Alias rm wird auch akzeptiert.
Argumente:
  • <name>: Marktplatz-Name zum Entfernen, wie von claude plugin marketplace list angezeigt. Dies ist der name aus marketplace.json, nicht die Quelle, die Sie an add übergeben haben
Optionen:
Das Entfernen eines Marktplatzes aus seinem letzten verbleibenden Bereich deinstalliert auch alle Plugins, die Sie von ihm installiert haben. Um einen Marktplatz zu aktualisieren, ohne installierte Plugins zu verlieren, verwenden Sie stattdessen claude plugin marketplace update.

Plugin marketplace update

Aktualisieren Sie Marktplätze von ihren Quellen, um neue Plugins und Versionsänderungen abzurufen. Ein Marktplatz, der mit einem Branch oder Tag ref hinzugefügt wurde, wird auf den neuesten Commit dieses Refs aktualisiert, nicht auf den Standard-Branch des Repositorys.
Argumente:
  • [name]: Marktplatz-Name zum Aktualisieren, wie von claude plugin marketplace list angezeigt. Aktualisiert alle Marktplätze, wenn weggelassen
Sowohl remove als auch update schlagen fehl, wenn sie gegen einen Seed-verwalteten Marktplatz ausgeführt werden, der schreibgeschützt ist. Beim Aktualisieren aller Marktplätze werden Seed-verwaltete Einträge übersprungen und andere Marktplätze werden weiterhin aktualisiert. Um Seed-bereitgestellte Plugins zu ändern, bitten Sie Ihren Administrator, das Seed-Image zu aktualisieren. Siehe Plugins für Container vorab ausfüllen.

Fehlerbehebung

Marktplatz wird nicht geladen

Symptome: Kann Marktplatz nicht hinzufügen oder Plugins von ihm nicht sehen Lösungen:
  • Überprüfen Sie, dass die Marktplatz-URL erreichbar ist
  • Überprüfen Sie, dass .claude-plugin/marketplace.json im angegebenen Pfad vorhanden ist
  • Stellen Sie sicher, dass die JSON-Syntax gültig ist, indem Sie claude plugin validate oder /plugin validate verwenden. Um Skill-, Agent- und Befehl-Frontmatter zu überprüfen, führen Sie den Befehl für jedes Plugin-Verzeichnis aus
  • Bestätigen Sie für private Repositories, dass Sie Zugriffsberechtigung haben

Marktplatz-Validierungsfehler

Führen Sie claude plugin validate . oder /plugin validate . aus Ihrem Marktplatz-Verzeichnis aus, um auf Probleme zu überprüfen. Wenn der Validator auf ein Marktplatz-Verzeichnis verweist, überprüft er marketplace.json auf Schema-Fehler, doppelte Plugin-Namen und Quellpfad-Traversal. Für jeden Eintrag, dessen source ein lokaler Pfad ist, validiert er auch die plugin.json dieses Plugins und warnt, wenn die version des Eintrags nicht mit der in plugin.json übereinstimmt. Probleme, die in der plugin.json eines Plugins gefunden werden, werden mit dem Eintrag-Index in der Form plugins[2] plugin.json → vorangestellt. Ab Claude Code v2.1.196 umfasst die Pro-Eintrag-Überprüfung auch:
  • Plugins, deren source . ist
  • wird ausgeführt, wenn marketplace.json außerhalb eines .claude-plugin-Verzeichnisses liegt, wobei Quellen gegen das Verzeichnis der Datei selbst aufgelöst werden
  • meldet die Probleme jedes Eintrags, auch wenn ein anderer Teil der Datei Schema-Fehler hat
Frühere Versionen überspringen Plugins im Marktplatz-Root und steigen nur von einer .claude-plugin/marketplace.json ab. Um die plugin.json eines einzelnen Plugins und seine Skill-, Agent-, Befehl- und Hook-Dateien zu validieren, führen Sie den Befehl für das Plugin-Verzeichnis selbst aus, zum Beispiel claude plugin validate ./plugins/my-plugin. Häufige Fehler: Warnungen (nicht blockierend):
  • Marketplace has no plugins defined: Fügen Sie mindestens ein Plugin zum plugins-Array hinzu
  • No marketplace description provided: Fügen Sie eine Top-Level-description hinzu, um Benutzern zu helfen, Ihren Marktplatz zu verstehen
  • Plugin name "x" is not kebab-case: Der Plugin-Name enthält Großbuchstaben, Leerzeichen oder Sonderzeichen. Benennen Sie in Kleinbuchstaben, Ziffern und Bindestriche um (z. B. my-plugin). Claude Code akzeptiert andere Formen, aber die Claude.ai-Marktplatz-Synchronisierung lehnt sie ab.

Plugin-Installationsfehler

Symptome: Marktplatz wird angezeigt, aber Plugin-Installation schlägt fehl Lösungen:
  • Überprüfen Sie, dass Plugin-Quell-URLs erreichbar sind
  • Überprüfen Sie, dass Plugin-Verzeichnisse erforderliche Dateien enthalten
  • Überprüfen Sie für GitHub-Quellen, dass Repositories öffentlich sind oder Sie Zugriff haben
  • Testen Sie Plugin-Quellen manuell durch Klonen/Herunterladen
  • Wenn die Quelle sowohl ref als auch sha festlegt, blockiert ein gelöschter Upstream-Branch oder Tag die Installation nicht auf den meisten Git-Hosts, einschließlich GitHub, GitLab und Bitbucket. Auf Servern, die das Abrufen von Commits nach SHA nicht unterstützen, wie AWS CodeCommit, muss die ref immer noch vorhanden sein und der angeheftete Commit muss von ihr erreichbar sein. Wenn die Installation immer noch fehlschlägt, bestätigen Sie, dass der angeheftete Commit immer noch im Repository vorhanden ist

Authentifizierung für private Repositories schlägt fehl

Symptome: Authentifizierungsfehler beim Installieren von Plugins aus privaten Repositories Lösungen: Für manuelle Installation und Updates:
  • Überprüfen Sie, dass Sie bei Ihrem Git-Anbieter authentifiziert sind (führen Sie z. B. gh auth status für GitHub aus)
  • Überprüfen Sie, dass Ihr Credential-Helper korrekt konfiguriert ist: git config --global credential.helper
  • Versuchen Sie, das Repository manuell zu klonen, um zu überprüfen, dass Ihre Anmeldedaten funktionieren
Für Hintergrund-Auto-Updates:
  • Standardmäßig deaktivieren Hintergrund-Aktualisierungen Git-Credential-Helper für den Pull, sodass der Pull nicht über HTTPS authentifizieren kann. SSH-Remotes mit einem in ssh-agent geladenen Schlüssel authentifizieren sich immer noch. Ein fehlgeschlagener Pull löst ein erneutes Klonen von Grund auf aus, das Ihre gespeicherten Anmeldedaten verwendet, aber bei großen Repositories möglicherweise zeitüberschreitet
  • Legen Sie CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1 fest, um den vorhandenen Klon beizubehalten, wenn der Hintergrund-Pull fehlschlägt
  • Konfigurieren Sie einen Git-Credential-Helper, z. B. gh auth setup-git, damit das Fallback-Neuklon authentifizieren kann
  • Wenn das Neuklon bei einem großen Repository zeitüberschreitet, erhöhen Sie das Limit mit CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS
  • Konfigurieren Sie ein Git-URL-Rewrite mit Bereich auf das Marktplatz-Repository, damit der Hintergrund-Pull direkt authentifiziert
  • Oder aktualisieren Sie private Marktplätze manuell mit /plugin marketplace update <name>, das Ihre Anmeldedaten verwendet

Marktplatz-Updates schlagen in Offline-Umgebungen fehl

Symptome: Marktplatz git pull schlägt im Hintergrund fehl und Claude Code versucht wiederholt ein erneutes Klonen, das nicht erfolgreich sein kann. Ursache: Standardmäßig versucht Claude Code ein erneutes Klonen von Grund auf, wenn ein git pull fehlschlägt. In Offline- oder Airgapped-Umgebungen schlägt das erneute Klonen auf die gleiche Weise fehl, und die Wiederherstellung des vorherigen Cache danach ist Best-Effort. Die Aktualisierung wird im Hintergrund nach dem Start ausgeführt, sodass sie den Start nicht verzögert, aber jede Sitzung wiederholt die fehlgeschlagenen Versuche und jede Git-Operation kann das 120-Sekunden-Timeout abwarten. Lösung: Legen Sie CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1 fest, um den Neuklon-Versuch zu überspringen und den vorhandenen Cache beizubehalten, wenn der Pull fehlschlägt:
Mit dieser Variable gesetzt behält Claude Code den veralteten Marktplatz-Klon bei git pull-Fehler bei und verwendet weiterhin den letzten bekannten guten Status. Verwenden Sie für vollständig Offline-Bereitstellungen, bei denen das Repository nie erreichbar sein wird, stattdessen CLAUDE_CODE_PLUGIN_SEED_DIR, um das Plugins-Verzeichnis zur Build-Zeit vorab auszufüllen.

Git-Operationen zeitüberschreitung

Symptome: Plugin-Installation oder Marktplatz-Updates schlagen mit einem Timeout-Fehler fehl, wie “Git clone timed out after 120s” oder “Git pull timed out after 120s”. Ursache: Claude Code verwendet ein 120-Sekunden-Timeout für alle Git-Operationen, einschließlich Klonen von Plugin-Repositories und Abrufen von Marktplatz-Updates. Große Repositories oder langsame Netzwerkverbindungen können dieses Limit überschreiten. Lösung: Erhöhen Sie das Timeout mit der Umgebungsvariable CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS. Der Wert ist in Millisekunden:

Plugins mit relativen Pfaden schlagen in URL-basierten Marktplätzen fehl

Symptome: Einen Marktplatz über URL hinzugefügt (z. B. https://example.com/marketplace.json), aber Plugins mit relativen Pfadquellen wie "./plugins/my-plugin" schlagen mit “path not found”-Fehlern fehl. Ursache: URL-basierte Marktplätze laden nur die marketplace.json-Datei selbst herunter. Sie laden keine Plugin-Dateien vom Server herunter. Relative Pfade im Marktplatz-Eintrag verweisen auf Dateien auf dem Remote-Server, die nicht heruntergeladen wurden. Lösungen:
  • Verwenden Sie externe Quellen: Ändern Sie Plugin-Einträge, um stattdessen GitHub-, npm- oder Git-URL-Quellen zu verwenden:
  • Verwenden Sie einen Git-basierten Marktplatz: Hosten Sie Ihren Marktplatz in einem Git-Repository und fügen Sie ihn mit der Git-URL hinzu. Git-basierte Marktplätze klonen das gesamte Repository, wodurch relative Pfade funktionieren.

Dateien nicht gefunden nach Installation

Symptome: Plugin wird installiert, aber Verweise auf Dateien schlagen fehl, besonders Dateien außerhalb des Plugin-Verzeichnisses Ursache: Plugins werden in ein Cache-Verzeichnis kopiert, anstatt an Ort und Stelle verwendet zu werden. Pfade, die auf Dateien außerhalb des Plugin-Verzeichnisses verweisen (wie ../shared-utils), funktionieren nicht, da diese Dateien nicht kopiert werden. Lösungen: Siehe Plugin-Caching und Dateiauflösung für Workarounds, einschließlich Symlinks und Verzeichnisumstrukturierung. Für zusätzliche Debugging-Tools und häufige Probleme siehe Debugging- und Entwicklungstools.

Siehe auch