Plugin directories
Een plugin directory is een mechanisme om skills, hooks, MCP-servers, custom agents, LSP-configuratie en meer gebundeld vanuit één directory te laden. Je gebruikt dit als je een herbruikbare set functionaliteit bij je app of repository wilt meeleveren. In de Laravel-versie geef je dit op viapluginDirectories van SessionConfig of ResumeSessionConfig.
Wanneer te gebruiken
- Meerdere extensies distribueren als één capability pack
- Plugins meeleveren in de repository zodat iedereen dezelfde configuratie gebruikt
- Plugins lokaal ontwikkelen en testen vóór publicatie in de Marketplace
- Geïnstalleerde plugins tijdelijk overschrijven met een lokale checkout
mcpServers, hooks of customAgents op te geven. Plugin directories zijn geschikt wanneer je meerdere samenhangende functies gebundeld wilt distribueren.
Directorystructuur
De Copilot CLI zoekt in elke plugin directory naarplugin.json of een SKILL.md direct in de root.
plugin.json kan ook in .github/plugin.json of .github/plugin/plugin.json staan. Skills, hooks, MCP en agents hebben elk hun eigen loader, dus het is voldoende om alleen op te nemen wat je nodig hebt.
Laden vanuit Laravel
Het verschil met cli_args
In de officiële SDK wordt dit soms beschreven als het argument --plugin-dir bij het starten van de runtime. In de Laravel-versie gebruik je normaal gesproken pluginDirectories in de sessieconfiguratie.
Wil je daarentegen argumenten meegeven aan het starten van het CLI-proces zelf, dan kun je cli_args in config/copilot.php of cli_args van Copilot::useStdio() gebruiken. Let wel: cli_args werkt alleen als de SDK de CLI via stdio start; bij verbinding met een externe runtime, zoals via useTcp(), wordt het genegeerd.
pluginDirectories. Je kunt het per session expliciet opgeven en het op dezelfde plek beheren als de andere SessionConfig-instellingen.
Werkwijze voor reproduceerbaarheid
- Gebruik absolute paden via bijvoorbeeld
base_path()in plaats van relatieve paden - Zet plugins die je in de repository meelevert onder versiebeheer
- Documenteer bij plugins uit de Marketplace of externe distributie welke versie je gebruikt
- Laat in productie gebruikersinvoer nooit direct een willekeurig pluginpad bepalen
Zie ook
Raadpleeg de GitHub-repository voor de meest actuele informatie.