Einleitung
Plugins sind Pakete, die die Funktionalität von Copilot CLI erweitern. Weitere Informationen findest du unter Informationen zu GitHub Copilot Plug-Ins.
Hinweis
Hilfe zur Verwendung von Plugins finden Sie, indem Sie copilot plugin [SUBCOMMAND] --help im Terminal eingeben.
Plug-In-Struktur
Ein Plug-In besteht aus einem Verzeichnis mit einer bestimmten Struktur und einer plugin.json Manifestdatei. Agent Plugins 1.0 erfordert das Manifest im Plug-In-Stamm. Legacy-Plug-Ins unterstützen zusätzliche Manifestspeicherorte. Ein Plug-In kann auch eine beliebige Kombination aus Agents, Fähigkeiten, Hooks und MCP-Serverkonfigurationen enthalten.
Copilot CLI unterstützt zwei Plug-In-Formate:
- Agent Plugins 1.0, ein tragbares Format für Fähigkeiten und MCP-Server. Die Deklaration des kanonischen
$schemainplugin.jsonlegt fest, dass das Plugin dieses Format verwendet. - Das Legacy-Format Copilot, das Copilot-spezifische Komponenten und konfigurierbare Komponentenpfade unterstützt. Ein Manifest ohne die Agent-Plug-Ins
$schemaverwendet dieses Format weiterhin.
Beide Formate werden unterstützt. Wählen Sie Agent Plugins 1.0 aus, wenn Sie Fähigkeiten und MCP-Server für kompatible Clients portierbar machen möchten. Wählen Sie das Legacyformat aus, wenn Sie benutzerdefinierte Komponentenpfade benötigen oder ein vorhandenes Copilot-spezifisches Plug-In verwalten. In Agent Plugins 1.0 sind Fähigkeiten und MCP-Server portierbar, und Copilot-spezifische Komponenten wie Agents, Befehle, Regeln, Hooks und LSP-Server stammen aus dem com.github.copilot Verzeichnis im Plug-In.
Erstellen eines Plug-Ins
-
Erstellen Sie ein Verzeichnis für Ihr Plug-In.
-
Wählen Sie ein Plug-in-Format aus und fügen Sie dann eine Manifestdatei
plugin.jsonim Stammverzeichnis hinzu.Um ein Agent Plugins 1.0-Plug-In zu erstellen, schließen Sie das kanonische
$schemaein:
Beispieldatei für Agent Plugins 1.0 plugin.json
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "my-dev-tools",
"description": "React development utilities",
"version": "1.2.0",
"author": {
"name": "Jane Doe",
"email": "jane@example.com"
},
"license": "MIT",
"keywords": ["react", "frontend"]
}
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "my-dev-tools",
"description": "React development utilities",
"version": "1.2.0",
"author": {
"name": "Jane Doe",
"email": "jane@example.com"
},
"license": "MIT",
"keywords": ["react", "frontend"]
}
Das Schema erlaubt nur $schema, author, repository, homepage, license, version, description, name, keywords und extensions als Felder der obersten Ebene. Unbekannte Felder auf oberster Ebene werden gemeldet und ignoriert. Das extensions-Feld ist eine Zuordnung clientspezifischer Daten, deren Schlüssel Reverse-Domain-Namespaces sind.
Um ein Legacy-Plugin zu erstellen, lassen Sie die Agent-Plugins $schema weg. Sie können Komponentenpfadfelder im Manifest verwenden:
Beispiel für legacydatei plugin.json
{
"name": "my-dev-tools",
"description": "React development utilities",
"agents": "agents/",
"skills": ["skills/", "extra-skills/"],
"hooks": "hooks.json",
"mcpServers": ".mcp.json"
}
{
"name": "my-dev-tools",
"description": "React development utilities",
"agents": "agents/",
"skills": ["skills/", "extra-skills/"],
"hooks": "hooks.json",
"mcpServers": ".mcp.json"
}
Ausführliche Informationen zu den vollständigen Feldern, die Sie in diese Datei aufnehmen können, finden Sie unter GitHub Copilot CLI-Plug-In-Referenz.
-
Fügen Sie Ihrem Plug-In Komponenten hinzu.
In einem Agent Plugins 1.0-Plug-In müssen Skills unmittelbare Unterverzeichnisse von
skills/sein, und jeder Skill muss eineSKILL.md-Datei enthalten. Die MCP-Konfiguration muss sich im Stammverzeichnis des Plug-ins inmcp.jsonbefinden. Sie können diese Speicherorte inplugin.jsonnicht überschreiben. Copilot-spezifische Komponenten gehören in dascom.github.copilot-Verzeichnis, wiecom.github.copilot/agents/für benutzerdefinierte Agents undcom.github.copilot/hooks/hooks.jsonfür Hooks.Verwenden Sie in einem Legacy-Plugin die Standard-Komponentenspeicherorte oder die in
plugin.jsonkonfigurierten Komponentenpfade.Beispiel:
-
Fügen Sie einen Agent hinzu, indem Sie eine
NAME.agent.mdDatei in einemagentsUnterverzeichnis erstellen. Erstellen Sie in einem Agent Plugins 1.0-Plug-In die Datei incom.github.copilot/agents/. Erstellen Sie es inagents/in einem Legacy-Plug-in.Markdown --- name: my-agent description: Helps with specific tasks tools: ["bash", "edit", "view"] --- You are a specialized assistant that...
--- name: my-agent description: Helps with specific tasks tools: ["bash", "edit", "view"] --- You are a specialized assistant that... -
Fügen Sie eine Fähigkeit hinzu, indem Sie ein
skills/NAMEUnterverzeichnis Ihres Plug-In-Verzeichnisses erstellen, woNAMEder Name Ihrer Fähigkeiten ist. Erstellen Sie dann in diesem Unterverzeichnis eineSKILL.mdDatei, die die Fähigkeit definiert.Um z. B. eine "Bereitstellen"-Fähigkeit zu erstellen, erstellen Sie
skills/deploy/SKILL.md:Markdown --- name: deploy description: Deploy the current project to... --- Instructions for the skill...
--- name: deploy description: Deploy the current project to... --- Instructions for the skill... -
Fügen Sie für ein Agent Plugins 1.0-Plug-In MCP-Server in einer Stammdatei
mcp.jsonhinzu. Die MCP-Konfiguration verwendet ein eigenes Agent-Plug-In-Schema:JSON { "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json", "mcpServers": { "deployment-api": { "type": "streamable-http", "url": "https://deploy.example.com/mcp" }, "local-validator": { "type": "stdio", "command": "node", "args": ["${PLUGIN_ROOT}/server/index.js"], "cwd": "${PLUGIN_ROOT}", "env": { "DATA_DIR": "${PLUGIN_DATA}/validator" } } } }{ "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json", "mcpServers": { "deployment-api": { "type": "streamable-http", "url": "https://deploy.example.com/mcp" }, "local-validator": { "type": "stdio", "command": "node", "args": ["${PLUGIN_ROOT}/server/index.js"], "cwd": "${PLUGIN_ROOT}", "env": { "DATA_DIR": "${PLUGIN_DATA}/validator" } } } }Der
streamable-httpTransportname wird für streambare HTTP-Server akzeptiert. Fürstdio-Server stellt Copilot CLIPLUGIN_DATA- und${PLUGIN_ROOT}-Umgebungsvariablen bereit und erweitertPLUGIN_ROOTund${PLUGIN_DATA}inargs,env-Werten undcwd.
-
-
Installieren Sie Ihr Plug-In lokal, damit Sie es während der Entwicklung testen können.
Geben Sie zum Beispiel, wo
./my-pluginder Pfad zu Ihrem Plug-In-Verzeichnis ist, Folgendes ein:Shell copilot plugin install ./my-plugin
copilot plugin install ./my-plugin -
Überprüfen Sie, ob das Plug-In erfolgreich geladen wurde, indem Sie Ihre Liste der installierten Plug-Ins anzeigen:
Shell copilot plugin list
copilot plugin listSie können auch eine neue interaktive Sitzung starten und Folgendes eingeben:
Copilot prompt /plugin list
/plugin list -
Stellen Sie sicher, dass die von Ihnen definierten Agents, Fähigkeiten, Hooks und MCP-Serverkonfigurationen ordnungsgemäß geladen werden.
Um beispielsweise in einer interaktiven Sitzung zu überprüfen, ob benutzerdefinierte Agents, die im Plug-In definiert wurden, geladen wurden, geben Sie Folgendes ein:
Copilot prompt /agent
/agentUm zu überprüfen, ob im Plug-In definierte Fähigkeiten geladen wurden, geben Sie Folgendes ein:
Copilot prompt /skills list
/skills list -
Verwenden Sie die von den Komponenten Ihres Plug-Ins bereitgestellten Funktionen, um sicherzustellen, dass jede Komponente wie erwartet funktioniert.
-
Überarbeiten Sie Ihre Plugin-Entwicklung bei Bedarf.
Wichtig
Wenn Sie ein Plug-In installieren, werden seine Komponenten zwischengespeichert, und die CLI liest aus dem Cache für nachfolgende Sitzungen. So übernehmen Sie Änderungen, die an einem lokalen Plugin vorgenommen wurden: Installieren Sie es erneut.
Shell copilot plugin install ./my-plugin
copilot plugin install ./my-plugin -
Nachdem Sie den Test abgeschlossen haben, können Sie die lokale Version Ihres Plug-Ins deinstallieren, indem Sie Folgendes eingeben:
Shell copilot plugin uninstall NAME
copilot plugin uninstall NAMEHinweis
Um ein Plug-In zu deinstallieren, verwenden Sie den Namen des Plug-Ins, wie im
nameFeld der Manifestdatei des Plug-Insplugin.jsonangegeben, nicht den Pfad zum Verzeichnis des Plug-Ins.
Verteilen Ihres Plug-Ins
Um Ihr Plug-In zu verteilen, können Sie es zu einem Marketplace hinzufügen. Weitere Informationen findest du unter Erstellen eines Plugin-Marketplace für GitHub Copilot CLI.