Plugin Directories
Plugin Directory es un mecanismo para cargar de forma agrupada, desde un único directorio, skills, hooks, servidores MCP, agentes personalizados, configuración de LSP, etc. Se usa cuando quieres empaquetar un conjunto de funcionalidades reutilizable dentro de una app o un repositorio. En la versión Laravel puedes indicarlo mediantepluginDirectories en SessionConfig o ResumeSessionConfig.
Casos de uso
- Distribuir varias extensiones como un único capability pack
- Empaquetar plugins en el repositorio para que todo el equipo use la misma configuración
- Desarrollar y validar en local plugins previos a su publicación en un marketplace
- Sobreescribir temporalmente un plugin instalado con un checkout local
mcpServers, hooks y customAgents. Plugin Directory es adecuado cuando quieres distribuir varias funcionalidades relacionadas juntas.
Estructura del directorio
Copilot CLI busca en cada plugin directory unplugin.json o un SKILL.md en la raíz.
plugin.json también puede ubicarse en .github/plugin.json o .github/plugin/plugin.json. Como skills, hooks, MCP, agentes, etc. tienen loaders independientes, basta con incluir lo que necesites.
Cargarlos desde Laravel
Diferencias con cli_args
En el SDK oficial a veces se documenta como el argumento --plugin-dir al arrancar el runtime. En la versión Laravel, lo básico es usar pluginDirectories de la configuración de sesión.
Por otro lado, si quieres pasar argumentos al proceso CLI en sí, puedes usar cli_args de config/copilot.php o de Copilot::useStdio(). Ten en cuenta que cli_args solo funciona cuando el SDK arranca el CLI en modo stdio, y se ignora cuando te conectas a un runtime externo mediante useTcp().
pluginDirectories. Puedes indicarlo por sesión y gestionarlo junto con el resto de opciones de SessionConfig.
Consejos de reproducibilidad
- Prefiere rutas absolutas con
base_path()en lugar de relativas - Versiona los plugins que empaquetes en el repositorio
- Si usas plugins de un marketplace o de distribución externa, documenta la versión utilizada
- En producción no permitas que se indique una ruta de plugin arbitraria desde input del usuario
Referencias
Consulta la información más reciente en el repositorio de GitHub.