> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Plugin Directories

> Explica cómo usar Plugin Directories para cargar de forma conjunta skills, hooks, MCP, agentes personalizados y más.

## 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 mediante `pluginDirectories` 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

Si solo tienes un servidor MCP, un hook y un agente personalizado, es más sencillo especificarlos directamente en `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 un `plugin.json` o un `SKILL.md` en la raíz.

```text theme={null}
my-plugin/
├── plugin.json
├── SKILL.md
├── hooks.json
├── .mcp.json
├── agents/
│   └── code-reviewer.md
└── skills/
    └── lint-fix/
        └── SKILL.md
```

`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

```php theme={null}
use Revolution\Copilot\Contracts\CopilotSession;
use Revolution\Copilot\Facades\Copilot;
use Revolution\Copilot\Types\SessionConfig;

Copilot::start(function (CopilotSession $session): void {
    $response = $session->sendAndWait(
        prompt: 'この変更をプラグインのレビュー方針で確認して',
    );

    dump($response->content());
}, config: new SessionConfig(
    pluginDirectories: [
        base_path('plugins/code-reviewer'),
        base_path('plugins/lint-fix'),
    ],
));
```

También puedes indicarlo como array:

```php theme={null}
Copilot::run(
    prompt: 'READMEを改善して',
    config: [
        'pluginDirectories' => [
            base_path('plugins/docs-writer'),
        ],
    ],
);
```

## 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()`.

```php theme={null}
$stdioConfig = config('copilot');
$stdioConfig['cli_args'] = [
    '--plugin-dir',
    base_path('plugins/code-reviewer'),
];

Copilot::useStdio($stdioConfig)->start(fn (CopilotSession $session) => ...);
```

Da preferencia a `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

* [SessionConfig](/es/packages/laravel-copilot-sdk/session-config)
* [Agentes personalizados](/es/packages/laravel-copilot-sdk/custom-agents)
* [MCP](/es/packages/laravel-copilot-sdk/mcp)
* [Hooks](/es/packages/laravel-copilot-sdk/hooks)
* [Skills](/es/packages/laravel-copilot-sdk/skills)

<Info>
  Consulta la información más reciente en el [repositorio de GitHub](https://github.com/invokable/laravel-copilot-sdk).
</Info>


## Related topics

- [SessionConfig](/es/packages/laravel-copilot-sdk/session-config.md)
- [laravel/agent-skills — Colección oficial de skills para agentes de IA de Laravel](/es/blog/agent-skills-introduction.md)
- [Eventos de streaming](/es/packages/laravel-copilot-sdk/streaming-events.md)
- [Laravel PAO — Herramienta de optimización de salida para agentes de IA](/es/blog/pao-introduction.md)
- [Introducción a Svelte — Fundamentos para usarlo con Inertia × Laravel](/es/blog/svelte-introduction.md)
