> ## 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

> Descrive come usare le Plugin Directory per caricare insieme skill, hook, MCP e agenti personalizzati.

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

Se hai un solo server MCP, un hook singolo o un solo agente personalizzato, è più semplice specificarli direttamente in `mcpServers`, `hooks`, `customAgents`. La Plugin Directory è più indicata quando vuoi distribuire insieme più funzionalità correlate.

## Struttura della directory

Copilot CLI cerca in ciascuna plugin directory `plugin.json` oppure `SKILL.md` nella radice.

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

`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

```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: 'Verifica questa modifica secondo le linee guida di review del plugin',
    );

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

Puoi specificarli anche come array.

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

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

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

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

Di norma, preferisci `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

* [SessionConfig](/it/packages/laravel-copilot-sdk/session-config)
* [Agenti personalizzati](/it/packages/laravel-copilot-sdk/custom-agents)
* [MCP](/it/packages/laravel-copilot-sdk/mcp)
* [Hooks](/it/packages/laravel-copilot-sdk/hooks)
* [Skills](/it/packages/laravel-copilot-sdk/skills)

<Info>
  Per le informazioni più recenti fai riferimento al [repository GitHub](https://github.com/invokable/laravel-copilot-sdk).
</Info>


## Related topics

- [SessionConfig](/it/packages/laravel-copilot-sdk/session-config.md)
- [laravel/agent-skills — la raccolta ufficiale di skill per agenti AI di Laravel](/it/blog/agent-skills-introduction.md)
- [Aggiornamenti Laravel di marzo 2026](/it/blog/changelog/202603.md)
- [Presentazione di Laravel Wayfinder](/it/blog/wayfinder-introduction.md)
- [Struttura delle directory](/it/directory-structure.md)
