SpyBara
Go Premium

agent-sdk/plugins.md 2026-05-14 17:02 UTC to 2026-05-15 22:58 UTC

16 added, 10 removed.

2026
Sun 31 06:39 Sat 30 06:23 Fri 29 06:38 Thu 28 06:37 Wed 27 06:42 Tue 26 06:33 Sun 24 06:25 Sat 23 06:18 Fri 22 06:33 Thu 21 06:36 Wed 20 06:35 Tue 19 06:34 Mon 18 23:59 Sun 17 01:01 Fri 15 22:58 Thu 14 17:02 Wed 13 23:01 Tue 12 22:57 Mon 11 23:00 Sun 10 23:03 Sat 9 04:57 Fri 8 22:00 Thu 7 22:59 Tue 5 23:00 Mon 4 22:58 Sat 2 18:14 Fri 1 18:19

Plugins im SDK

Laden Sie benutzerdefinierte Plugins, um Claude Code mit Befehlen, Agenten, Skills und Hooks über das Agent SDK zu erweitern

Plugins ermöglichen es Ihnen, Claude Code mit benutzerdefinierten Funktionen zu erweitern, die projektübergreifend gemeinsam genutzt werden können. Über das Agent SDK können Sie Plugins programmgesteuert aus lokalen Verzeichnissen laden, um benutzerdefinierte Slash-Befehle, Agenten, Skills, Hooks und MCP-Server zu Ihren Agent-Sitzungen hinzuzufügen.

Was sind Plugins?

Plugins sind Pakete von Claude Code-Erweiterungen, die Folgendes enthalten können:

  • Skills: Von Modellen aufgerufene Funktionen, die Claude autonom nutzt (können auch mit /skill-name aufgerufen werden)
  • Agenten: Spezialisierte Subagenten für spezifische Aufgaben
  • Hooks: Event-Handler, die auf Tool-Nutzung und andere Ereignisse reagieren
  • MCP-Server: Externe Tool-Integrationen über das Model Context Protocol

Vollständige Informationen zur Plugin-Struktur und zum Erstellen von Plugins finden Sie unter Plugins.

Plugins laden

Laden Sie Plugins, indem Sie ihre lokalen Dateisystempfade in Ihrer Optionskonfiguration angeben. Das Feld type muss "local" sein, der einzige Wert, den das SDK akzeptiert. Um ein Plugin zu verwenden, das über einen Marketplace oder ein Remote-Repository verteilt wird, laden Sie es zunächst herunter und geben Sie den lokalen Verzeichnispath an. Das SDK unterstützt das Laden mehrerer Plugins aus verschiedenen Speicherorten.

import { query } from "@anthropic-ai/claude-agent-sdk";

for await (const message of query({
prompt: "Hello",
options: {
plugins: [
{ type: "local", path: "./my-plugin" },
{ type: "local", path: "/absolute/path/to/another-plugin" }
]
}
})) {
// Plugin commands, agents, and other features are now available
}

Pfadangaben

Plugin-Pfade können sein:

  • Relative Pfade: Aufgelöst relativ zu Ihrem aktuellen Arbeitsverzeichnis (zum Beispiel "./plugins/my-plugin")
  • Absolute Pfade: Vollständige Dateisystempfade (zum Beispiel "/home/user/plugins/my-plugin")

Plugin-Installation überprüfen

Wenn Plugins erfolgreich geladen werden, erscheinen sie in der Systeminitalisierungsmeldung. Sie können überprüfen, dass Ihre Plugins verfügbar sind:

import { query } from "@anthropic-ai/claude-agent-sdk";

for await (const message of query({
prompt: "Hello",
options: {
plugins: [{ type: "local", path: "./my-plugin" }]
}
})) {
if (message.type === "system" && message.subtype === "init") {
// Check loaded plugins
console.log("Plugins:", message.plugins);
// Example: [{ name: "my-plugin", path: "./my-plugin" }]

// Check available commands from plugins
console.log("Commands:", message.slash_commands);
// Example: ["/help", "/compact", "my-plugin:custom-command"]
}
}

Plugin-Skills verwenden

Skills aus Plugins werden automatisch mit dem Plugin-Namen versehen, um Konflikte zu vermeiden. Wenn sie als Slash-Befehle aufgerufen werden, ist das Format plugin-name:skill-name.

import { query } from "@anthropic-ai/claude-agent-sdk";

// Load a plugin with a custom /greet skill
for await (const message of query({
prompt: "/my-plugin:greet", // Use plugin skill with namespace
options: {
plugins: [{ type: "local", path: "./my-plugin" }]
}
})) {
// Claude executes the custom greeting skill from the plugin
if (message.type === "assistant") {
console.log(message.message.content);
}
}

Vollständiges Beispiel

Hier ist ein vollständiges Beispiel, das das Laden und die Verwendung von Plugins demonstriert:

import { query } from "@anthropic-ai/claude-agent-sdk";
import * as path from "path";

async function runWithPlugin() {
const pluginPath = path.join(__dirname, "plugins", "my-plugin");

console.log("Loading plugin from:", pluginPath);

for await (const message of query({
prompt: "What custom commands do you have available?",
options: {
plugins: [{ type: "local", path: pluginPath }],
maxTurns: 3
}
})) {
if (message.type === "system" && message.subtype === "init") {
console.log("Loaded plugins:", message.plugins);
console.log("Available commands:", message.slash_commands);
}

if (message.type === "assistant") {
console.log("Assistant:", message.message.content);
}
}
}

runWithPlugin().catch(console.error);

Plugin-Struktur-Referenz

Ein Plugin-Verzeichnis muss eine .claude-plugin/plugin.json-Manifestdatei enthalten. Es kann optional Folgendes enthalten:

my-plugin/
├── .claude-plugin/
│   └── plugin.json          # Required: plugin manifest
├── skills/                   # Agent Skills (invoked autonomously or via /skill-name)
│   └── my-skill/
│       └── SKILL.md
├── commands/                 # Legacy: use skills/ instead
│   └── custom-cmd.md
├── agents/                   # Custom agents
│   └── specialist.md
├── hooks/                    # Event handlers
│   └── hooks.json
└── .mcp.json                # MCP server definitions

Detaillierte Informationen zum Erstellen von Plugins finden Sie unter:

Häufige Anwendungsfälle

Entwicklung und Tests

Laden Sie Plugins während der Entwicklung, ohne sie global zu installieren:

plugins: [{ type: "local", path: "./dev-plugins/my-plugin" }];

Projektspezifische Erweiterungen

Beziehen Sie Plugins in Ihr Projekt-Repository ein, um teamweite Konsistenz zu gewährleisten:

plugins: [{ type: "local", path: "./project-plugins/team-workflows" }];

Mehrere Plugin-Quellen

Kombinieren Sie Plugins aus verschiedenen Speicherorten:

plugins: [
  { type: "local", path: "./local-plugin" },
  { type: "local", path: "~/.claude/custom-plugins/shared-plugin" }
];

Fehlerbehebung

Plugin wird nicht geladen

Wenn Ihr Plugin nicht in der Init-Meldung angezeigt wird:

  1. Überprüfen Sie den Pfad: Stellen Sie sicher, dass der Pfad auf das Plugin-Root-Verzeichnis verweist (das .claude-plugin/ enthält)
  2. Validieren Sie plugin.json: Stellen Sie sicher, dass Ihre Manifestdatei eine gültige JSON-Syntax hat
  3. Überprüfen Sie Dateiberechtigungen: Stellen Sie sicher, dass das Plugin-Verzeichnis lesbar ist

Skills werden nicht angezeigt

Wenn Plugin-Skills nicht funktionieren:

  1. Verwenden Sie den Namespace: Plugin-Skills erfordern das Format plugin-name:skill-name, wenn sie als Slash-Befehle aufgerufen werden
  2. Überprüfen Sie die Init-Meldung: Überprüfen Sie, dass der Skill in slash_commands mit dem korrekten Namespace angezeigt wird
  3. Validieren Sie Skill-Dateien: Stellen Sie sicher, dass jeder Skill eine SKILL.md-Datei in seinem eigenen Unterverzeichnis unter skills/ hat (zum Beispiel skills/my-skill/SKILL.md)

Pfadauflösungsprobleme

Wenn relative Pfade nicht funktionieren:

  1. Überprüfen Sie das Arbeitsverzeichnis: Relative Pfade werden von Ihrem aktuellen Arbeitsverzeichnis aus aufgelöst
  2. Verwenden Sie absolute Pfade: Verwenden Sie für Zuverlässigkeit absolute Pfade
  3. Normalisieren Sie Pfade: Verwenden Sie Pfad-Dienstprogramme, um Pfade korrekt zu konstruieren

Siehe auch