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

> Découvrez comment utiliser les Plugin Directories pour charger d'un seul tenant skills, hooks, serveurs MCP et agents personnalisés.

## Plugin Directories

Un Plugin Directory est un mécanisme qui regroupe dans un seul dossier les skills, hooks, serveurs MCP, agents personnalisés, configurations LSP, etc. Il est utile quand vous voulez livrer un ensemble de capacités réutilisables avec votre application ou votre dépôt.

Dans la version Laravel, vous les spécifiez via `pluginDirectories` dans `SessionConfig` ou `ResumeSessionConfig`.

## Cas d'usage

* Distribuer plusieurs extensions comme un unique pack de capacités
* Embarquer des plugins dans un dépôt pour que tous utilisent la même configuration
* Développer et tester en local un plugin avant publication au Marketplace
* Surcharger temporairement un plugin installé avec un checkout local

Pour un seul serveur MCP, un seul hook, ou un seul agent personnalisé, il est plus simple d'utiliser directement `mcpServers`, `hooks` ou `customAgents`. Un Plugin Directory convient plutôt à la distribution groupée de plusieurs capacités liées.

## Structure de dossiers

Le Copilot CLI cherche dans chaque plugin directory un fichier `plugin.json` ou un `SKILL.md` à la racine.

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

`plugin.json` peut aussi être placé dans `.github/plugin.json` ou `.github/plugin/plugin.json`. Comme skills, hooks, MCP, agents disposent chacun d'un loader indépendant, vous n'incluez que ce dont vous avez besoin.

## Charger depuis 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'),
    ],
));
```

Vous pouvez aussi passer un tableau.

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

## Différence avec `cli_args`

Le SDK officiel documente parfois cela comme l'argument `--plugin-dir` passé au démarrage du runtime. Dans la version Laravel, on utilise en priorité `pluginDirectories` du SessionConfig.

Si vous voulez passer des arguments au démarrage même du processus CLI, utilisez `cli_args` dans `config/copilot.php` ou `cli_args` dans `Copilot::useStdio()`. Attention, `cli_args` n'a d'effet que lorsque le SDK démarre le CLI en stdio ; il est ignoré lors d'une connexion à un runtime externe via `useTcp()` par exemple.

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

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

Privilégiez `pluginDirectories`. Il est explicite par session et se gère au même endroit que le reste de `SessionConfig`.

## Bonnes pratiques pour la reproductibilité

* Utilisez des chemins absolus (par ex. via `base_path()`) plutôt que relatifs
* Versionnez les plugins embarqués dans le dépôt
* Documentez les versions utilisées pour les plugins issus du Marketplace ou d'une distribution externe
* En production, ne laissez pas un utilisateur choisir arbitrairement un chemin de plugin

## Voir aussi

* [SessionConfig](/fr/packages/laravel-copilot-sdk/session-config)
* [Agents personnalisés](/fr/packages/laravel-copilot-sdk/custom-agents)
* [MCP](/fr/packages/laravel-copilot-sdk/mcp)
* [Hooks](/fr/packages/laravel-copilot-sdk/hooks)
* [Skills](/fr/packages/laravel-copilot-sdk/skills)

<Info>
  Pour les dernières informations, consultez le [dépôt GitHub](https://github.com/invokable/laravel-copilot-sdk).
</Info>


## Related topics

- [SessionConfig](/fr/packages/laravel-copilot-sdk/session-config.md)
- [laravel/agent-skills — la collection officielle de skills d'agents IA Laravel](/fr/blog/agent-skills-introduction.md)
- [Événements de streaming](/fr/packages/laravel-copilot-sdk/streaming-events.md)
- [Introduction à Svelte — bases pour l'utiliser avec Inertia × Laravel](/fr/blog/svelte-introduction.md)
- [Mises à jour Laravel — mars 2026](/fr/blog/changelog/202603.md)
