Plugin Directories
Una Plugin Directory è un meccanismo che raccoglie in una singola directory skill, hook, server MCP, agenti personalizzati, configurazioni LSP e altro, caricandoli insieme. Usalo quando vuoi distribuire un insieme di funzionalità riutilizzabili all’interno dell’app o del repository. Nella versione Laravel puoi specificarli tramitepluginDirectories di SessionConfig o ResumeSessionConfig.
Casi d’uso
- Distribuire più estensioni come un unico pacchetto di capacità
- Includere plugin nel repository per far usare a tutti la stessa configurazione
- Sviluppare e testare in locale plugin non ancora pubblicati sul Marketplace
- Sovrascrivere temporaneamente plugin già installati con un checkout locale
mcpServers, hooks, customAgents. La Plugin Directory è più indicata quando vuoi distribuire insieme più funzionalità correlate.
Struttura della directory
Copilot CLI cerca in ciascuna plugin directoryplugin.json oppure SKILL.md nella radice.
plugin.json può anche essere posto in .github/plugin.json o .github/plugin/plugin.json. Skill, hook, MCP, agenti ecc. hanno ciascuno loader indipendenti, quindi è sufficiente includere solo ciò che serve.
Caricamento da Laravel
Differenza rispetto a cli_args
Nell’SDK ufficiale sono a volte descritti come argomento --plugin-dir all’avvio del runtime. Nella versione Laravel, la scelta di base è usare pluginDirectories di SessionConfig.
D’altra parte, se vuoi passare argomenti all’avvio del processo CLI stesso, puoi usare cli_args di config/copilot.php o di Copilot::useStdio(). Attenzione però: cli_args è efficace solo quando è l’SDK ad avviare il CLI in stdio e viene ignorato al collegamento a runtime esterni come useTcp().
pluginDirectories: puoi renderlo esplicito a livello di sessione e gestirlo nello stesso posto delle altre impostazioni di SessionConfig.
Buone pratiche per la riproducibilità
- Usa percorsi assoluti con
base_path()piuttosto che percorsi relativi - Metti sotto versione i plugin distribuiti col repository
- Se usi plugin del Marketplace o distribuiti esternamente, documenta la versione utilizzata
- In produzione, non lasciare specificare percorsi arbitrari di plugin direttamente dall’input utente
Riferimenti
Per le informazioni più recenti fai riferimento al repository GitHub.