Skip to main content

Erstellen eines Plug-Ins für GitHub Copilot CLI

Erstellen Sie ein Plug-In, um Anpassungen in einem einfach zu installierenden Paket freizugeben.

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 $schema in plugin.json legt 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 $schema verwendet 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

  1. Erstellen Sie ein Verzeichnis für Ihr Plug-In.

  2. Wählen Sie ein Plug-in-Format aus und fügen Sie dann eine Manifestdatei plugin.json im Stammverzeichnis hinzu.

    Um ein Agent Plugins 1.0-Plug-In zu erstellen, schließen Sie das kanonische $schema ein:

Beispieldatei für Agent Plugins 1.0 plugin.json

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"]
}

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

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.

  1. 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 eine SKILL.md-Datei enthalten. Die MCP-Konfiguration muss sich im Stammverzeichnis des Plug-ins in mcp.json befinden. Sie können diese Speicherorte in plugin.json nicht überschreiben. Copilot-spezifische Komponenten gehören in das com.github.copilot-Verzeichnis, wie com.github.copilot/agents/ für benutzerdefinierte Agents und com.github.copilot/hooks/hooks.json für Hooks.

    Verwenden Sie in einem Legacy-Plugin die Standard-Komponentenspeicherorte oder die in plugin.json konfigurierten Komponentenpfade.

    Beispiel:

    1. Fügen Sie einen Agent hinzu, indem Sie eine NAME.agent.md Datei in einem agents Unterverzeichnis erstellen. Erstellen Sie in einem Agent Plugins 1.0-Plug-In die Datei in com.github.copilot/agents/. Erstellen Sie es in agents/ in einem Legacy-Plug-in.

      Markdown
      ---
      name: my-agent
      description: Helps with specific tasks
      tools: ["bash", "edit", "view"]
      ---
      
      You are a specialized assistant that...
      
    2. Fügen Sie eine Fähigkeit hinzu, indem Sie ein skills/NAME Unterverzeichnis Ihres Plug-In-Verzeichnisses erstellen, wo NAME der Name Ihrer Fähigkeiten ist. Erstellen Sie dann in diesem Unterverzeichnis eine SKILL.md Datei, 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...
      
    3. Fügen Sie für ein Agent Plugins 1.0-Plug-In MCP-Server in einer Stammdatei mcp.json hinzu. 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"
           }
         }
       }
      }
      

      Der streamable-http Transportname wird für streambare HTTP-Server akzeptiert. Für stdio-Server stellt Copilot CLIPLUGIN_DATA- und ${PLUGIN_ROOT}-Umgebungsvariablen bereit und erweitert PLUGIN_ROOT und ${PLUGIN_DATA} in args, env-Werten und cwd.

  2. Installieren Sie Ihr Plug-In lokal, damit Sie es während der Entwicklung testen können.

    Geben Sie zum Beispiel, wo ./my-plugin der Pfad zu Ihrem Plug-In-Verzeichnis ist, Folgendes ein:

    Shell
    copilot plugin install ./my-plugin
    
  3. Überprüfen Sie, ob das Plug-In erfolgreich geladen wurde, indem Sie Ihre Liste der installierten Plug-Ins anzeigen:

    Shell
    copilot plugin list
    

    Sie können auch eine neue interaktive Sitzung starten und Folgendes eingeben:

    Copilot prompt
    /plugin list
    
  4. 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
    

    Um zu überprüfen, ob im Plug-In definierte Fähigkeiten geladen wurden, geben Sie Folgendes ein:

    Copilot prompt
    /skills list
    
  5. Verwenden Sie die von den Komponenten Ihres Plug-Ins bereitgestellten Funktionen, um sicherzustellen, dass jede Komponente wie erwartet funktioniert.

  6. Ü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
    
  7. 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
    

    Hinweis

    Um ein Plug-In zu deinstallieren, verwenden Sie den Namen des Plug-Ins, wie im name Feld der Manifestdatei des Plug-Ins plugin.json angegeben, 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.

Weiterführende Lektüre