Plugin Directories
Ein Plugin Directory ist ein Mechanismus, um Skills, Hooks, MCP-Server, benutzerdefinierte Agenten, LSP-Konfigurationen usw. zusammen aus einem einzigen Verzeichnis zu laden. Sinnvoll, wenn Sie ein wiederverwendbares Bündel von Funktionen mit Ihrer App oder Ihrem Repository ausliefern wollen. In der Laravel-Version geben Sie diese inpluginDirectories von SessionConfig oder ResumeSessionConfig an.
Anwendungsfälle
- Mehrere Erweiterungen als ein Fähigkeitspaket verteilen
- Plugins ins Repository einbetten, damit alle dieselbe Konfiguration nutzen
- Plugins vor der Marketplace-Veröffentlichung lokal entwickeln und testen
- Installierte Plugins temporär mit einem lokalen Checkout überschreiben
mcpServers, hooks oder customAgents einfacher. Plugin Directories eignen sich, wenn Sie mehrere zusammenhängende Funktionen gemeinsam ausliefern möchten.
Verzeichnisstruktur
Die Copilot CLI sucht in jedem Plugin-Verzeichnis nachplugin.json oder einem SKILL.md direkt im Wurzelverzeichnis.
plugin.json kann auch unter .github/plugin.json oder .github/plugin/plugin.json liegen. Skills, Hooks, MCP und Agenten haben eigene Loader; nehmen Sie also nur das auf, was Sie benötigen.
Aus Laravel laden
Unterschied zu cli_args
Im offiziellen SDK wird dies teilweise als --plugin-dir-Argument beim Runtime-Start beschrieben. In der Laravel-Version verwenden Sie standardmäßig pluginDirectories in der Session-Konfiguration.
Möchten Sie hingegen dem Start des CLI-Prozesses selbst Argumente übergeben, können Sie cli_args in config/copilot.php oder cli_args von Copilot::useStdio() nutzen. Beachten Sie jedoch, dass cli_args nur wirkt, wenn das SDK die CLI im stdio-Modus startet, und bei Verbindung mit einer externen Runtime (z. B. useTcp()) ignoriert wird.
pluginDirectories: Es ist pro Session explizit und wird an derselben Stelle wie die übrigen SessionConfig-Einstellungen verwaltet.
Betrieb für Reproduzierbarkeit
- Verwenden Sie absolute Pfade (z. B. via
base_path()) statt relativer Pfade - Versionieren Sie im Repository ausgelieferte Plugins
- Wenn Sie Marketplace- oder externe Plugins nutzen, dokumentieren Sie die eingesetzte Version
- In Produktivumgebungen keine beliebigen Plugin-Pfade durch Nutzereingaben zulassen
Referenzen
Aktuelle Informationen finden Sie im GitHub-Repository.