# Référence du plug-in CLI GitHub Copilot

Recherchez des commandes et des détails de configuration pour les plug-ins CLI.

> \[!NOTE]
> Vous trouverez de l’aide sur l’utilisation de plug-ins en entrant `copilot plugin [SUBCOMMAND] --help` dans le terminal.

## Commandes CLI

Vous pouvez utiliser les commandes suivantes dans le terminal pour gérer les plug-ins pour Copilot pour CLI.

| Command                                        | Description                                                                                                                                     |
| ---------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| `copilot plugin install SPECIFICATION`         | Installez un plug-in. Consultez [la spécification du plug-in pour la commande `install`](#plugin-specification-for-install-command) ci-dessous. |
| `copilot plugin uninstall NAME`                | Supprimer un plug-in                                                                                                                            |
| `copilot plugin list`                          | Répertorier les plug-ins installés                                                                                                              |
| `copilot plugin update NAME`                   | Mettre à jour un plug-in                                                                                                                        |
| `copilot plugin marketplace add SPECIFICATION` | Inscrire une place de marché                                                                                                                    |
| `copilot plugin marketplace list`              | Répertorier les places de marché inscrites                                                                                                      |
| `copilot plugin marketplace browse NAME`       | Parcourir les plug-ins de la Place de marché                                                                                                    |
| `copilot plugin marketplace remove NAME`       | Annuler l’inscription d’une place de marché                                                                                                     |

### Spécification du module externe pour la commande `install`

| Format               | Exemple                      | Description                         |
| -------------------- | ---------------------------- | ----------------------------------- |
| Place de marché      | `plugin@marketplace`         | Module depuis un marché enregistré  |
| GitHub               | `OWNER/REPO`                 | Racine d’un GitHub référentiel      |
| GitHub  subdir       | `OWNER/REPO:PATH/TO/PLUGIN`  | Sous-répertoire dans un référentiel |
| Git URL              | `https://github.com/o/r.git` | N’importe quelle URL Git            |
| Chemin d’accès local |                              |                                     |

```
          `./my-plugin` ou `/abs/path`    | Répertoire local |
```

## `plugin.json`

Tous les plug-ins se composent d’un répertoire de plug-in contenant, au minimum, un fichier manifeste nommé `plugin.json` à la racine du répertoire du plug-in. Consultez « [Création d’un plug-in pour CLI GitHub Copilot](/fr/copilot/how-tos/copilot-cli/customize-copilot/plugins-creating) ».

### Champ obligatoire

| Champ  | Type    | Description                                                                                   |
| ------ | ------- | --------------------------------------------------------------------------------------------- |
| `name` | ficelle | Nom du plug-in Kebab-case (lettres, chiffres, traits d’union uniquement). 64 caractères maxi. |

### Champs de métadonnées facultatifs

| Champ         | Type    | Description                                |
| ------------- | ------- | ------------------------------------------ |
| `description` | ficelle | Brève description. 1024 caractères maxi.   |
| `version`     | ficelle | Version sémantique (par exemple, `1.0.0`). |
| `author`      | objet   |                                            |

```
          `name` (obligatoire), `email` (facultatif), `url` (facultatif). |
```

\| `homepage`   | ficelle    | URL de la page d’accueil du plug-in. |
\| `repository` | ficelle    | URL du référentiel source. |
\| `license`    | ficelle    | Identificateur de licence (par exemple, `MIT`). |
\| `keywords`   | chaîne de caractères\[]  | Mots clés de recherche. |
\| `category`   | ficelle    | Catégorie de plug-in. |
\| `tags`       | chaîne de caractères\[]  | Balises supplémentaires. |

### Champs de chemin d’accès du composant

Celles-ci indiquent à l’interface CLI où trouver les composants de votre plug-in. Tous sont facultatifs. Le CLI utilise des conventions par défaut si elles sont omises.

| Champ        | Type                | Par défaut | Description                                                                                                   |
| ------------ | ------------------- | ---------- | ------------------------------------------------------------------------------------------------------------- |
| `agents`     | string \| string\[] | `agents/`  | Chemin(s) d’accès aux répertoires d’agent (`.agent.md` fichiers).                                             |
| `skills`     | string \| string\[] | `skills/`  | Chemin(s) vers les répertoires de compétences (`SKILL.md` fichiers).                                          |
| `commands`   | string \| string\[] | —          | Chemin d’accès aux répertoires de commandes.                                                                  |
| `hooks`      | objet string \|     | —          | Chemin d’accès à un fichier de configuration des hooks ou à un objet hooks inclus.                            |
| `mcpServers` | objet string \|     | —          | Chemin d’accès à un fichier de configuration MCP (par exemple, `.mcp.json`) ou définitions de serveur inline. |
| `lspServers` | objet string \|     | —          | Chemin vers un fichier de configuration LSP, ou des définitions de serveur intégrées.                         |

### Exemple de fichier `plugin.json`

```json copy
{
  "name": "my-dev-tools",
  "description": "React development utilities",
  "version": "1.2.0",
  "author": {
    "name": "Jane Doe",
    "email": "jane@example.com"
  },
  "license": "MIT",
  "keywords": ["react", "frontend"],
  "agents": "agents/",
  "skills": ["skills/", "extra-skills/"],
  "hooks": "hooks.json",
  "mcpServers": ".mcp.json"
}
```

## `marketplace.json`

Vous pouvez créer une place de marché de plug-ins, que les utilisateurs peuvent utiliser pour découvrir et installer vos plug-ins, en créant un `marketplace.json` fichier et en l’enregistrant dans le `.github/plugin/` répertoire du référentiel. Vous pouvez également stocker le `marketplace.json` fichier dans votre système de fichiers local. Par exemple, l’enregistrement du fichier tel qu’il `/PATH/TO/my-marketplace/.github/plugin/marketplace.json` vous permet de l’ajouter à l’interface CLI à l’aide de la commande suivante :

```shell
copilot plugin marketplace add /PATH/TO/my-marketplace
```

> \[!NOTE]
> Copilot pour CLI recherche également le `marketplace.json` fichier dans le `.claude-plugin/` répertoire.

Pour plus d’informations, consultez « [Création d’une place de marché de plug-ins pour CLI GitHub Copilot](/fr/copilot/how-tos/copilot-cli/customize-copilot/plugins-marketplace) ».

### Exemple de fichier `marketplace.json`

```json copy
{
  "name": "my-marketplace",
  "owner": {
    "name": "Your Organization",
    "email": "plugins@example.com"
  },
  "metadata": {
    "description": "Curated plugins for our team",
    "version": "1.0.0"
  },
  "plugins": [
    {
      "name": "frontend-design",
      "description": "Create a professional-looking GUI ...",
      "version": "2.1.0",
      "source": "./plugins/frontend-design"
    },
    {
      "name": "security-checks",
      "description": "Check for potential security vulnerabilities ...",
      "version": "1.3.0",
      "source": "./plugins/security-checks"
    }
  ]
}
```

> \[!NOTE]
> La valeur du `source` champ pour chaque plug-in est le chemin d’accès au répertoire du plug-in, par rapport à la racine du référentiel. Il n’est pas nécessaire d’utiliser `./` au début du chemin. Par exemple, `"./plugins/plugin-name"` et `"plugins/plugin-name"` résolvent au même répertoire.

### Champs `marketplace.json`

#### Champs de niveau supérieur

| Champ   | Type    | Obligatoire | Description                                               |
| ------- | ------- | ----------- | --------------------------------------------------------- |
| `name`  | ficelle | Oui         | Nom de la place de marché kebab-case. 64 caractères maxi. |
| `owner` | objet   | Oui         |                                                           |

```
          `{ name, email? }` — Informations sur le propriétaire de la Place de marché. |
```

\| `plugins`  | tableau    | Oui      | Liste des entrées de plug-in (voir le tableau ci-dessous). |
\| `metadata` | objet   | Non       | `{ description?, version?, pluginRoot? }` |

#### Champs d’entrée de plug-in (objets dans le `plugins` tableau)

| Champ         | Type                    | Obligatoire | Description                                                                                                                                                                                                                                                                                    |
| ------------- | ----------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`        | ficelle                 | Oui         | Nom du plug-in Kebab-case. 64 caractères maxi.                                                                                                                                                                                                                                                 |
| `source`      | objet string \|         | Oui         | Où récupérer le plug-in (chemin relatif, GitHubou URL).                                                                                                                                                                                                                                        |
| `description` | ficelle                 | Non         | Description du plug-in. 1024 caractères maxi.                                                                                                                                                                                                                                                  |
| `version`     | ficelle                 | Non         | Version du plug-in.                                                                                                                                                                                                                                                                            |
| `author`      | objet                   | Non         | `{ name, email?, url? }`                                                                                                                                                                                                                                                                       |
| `homepage`    | ficelle                 | Non         | URL de la page d’accueil du plug-in.                                                                                                                                                                                                                                                           |
| `repository`  | ficelle                 | Non         | URL du référentiel source.                                                                                                                                                                                                                                                                     |
| `license`     | ficelle                 | Non         | Identificateur de licence.                                                                                                                                                                                                                                                                     |
| `keywords`    | chaîne de caractères\[] | Non         | Mots clés de recherche.                                                                                                                                                                                                                                                                        |
| `category`    | ficelle                 | Non         | Catégorie de plug-in.                                                                                                                                                                                                                                                                          |
| `tags`        | chaîne de caractères\[] | Non         | Balises supplémentaires.                                                                                                                                                                                                                                                                       |
| `commands`    | string \| string\[]     | Non         | Chemin d’accès aux répertoires de commandes.                                                                                                                                                                                                                                                   |
| `agents`      | string \| string\[]     | Non         | Chemins d’accès aux répertoires de l’agent.                                                                                                                                                                                                                                                    |
| `skills`      | string \| string\[]     | Non         | Chemins d’accès aux répertoires de compétences.                                                                                                                                                                                                                                                |
| `hooks`       | objet string \|         | Non         | Chemin d’accès à la configuration des hooks ou à l’objet hooks inclus.                                                                                                                                                                                                                         |
| `mcpServers`  | objet string \|         | Non         | Chemin d’accès à la configuration MCP ou aux définitions de serveur inline.                                                                                                                                                                                                                    |
| `lspServers`  | objet string \|         | Non         | Chemin d’accès aux définitions de serveur intégrées ou à la configuration LSP.                                                                                                                                                                                                                 |
| `strict`      | booléen                 | Non         | Quand `true` (valeur par défaut), les plug-ins doivent se conformer aux règles de schéma et de validation complètes. Lorsque `false`, la validation assouplie est utilisée, ce qui permet une plus grande flexibilité, en particulier pour les installations directes ou les plug-ins hérités. |

## Emplacements des fichiers

| Élément            | Chemin |
| ------------------ | ------ |
| Plug-ins installés |        |

```
          `~/.copilot/installed-plugins/MARKETPLACE/PLUGIN-NAME` (installé via une place de marché) et `~/.copilot/installed-plugins/_direct/SOURCE-ID/` (installé directement) |
```

\| Cache de la Place de marché    | Répertoire du cache de plateforme : `~/.cache/copilot/marketplaces/` (Linux), `~/Library/Caches/copilot/marketplaces/` (macOS). Remplaçable avec `COPILOT_CACHE_HOME`. |
\| Manifeste du plug-in      |
`.plugin/plugin.json`, `plugin.json`, ou `.github/plugin/plugin.json` ou `.claude-plugin/plugin.json` (vérifié dans cet ordre) |
\| Manifest de Marketplace |
`marketplace.json`, `.plugin/marketplace.json`, ou `.github/plugin/marketplace.json` ou `.claude-plugin/marketplace.json` (vérifié dans cet ordre) |
\| Agents               |
`agents/` (par défaut, substituable dans le manifeste) |
\| Compétences               |
`skills/` (par défaut, substituable dans le manifeste) |
\| Configuration des hooks         |
`hooks.json` ou `hooks/hooks.json` |
\| Configuration MCP           |
`.mcp.json`
`.vscode/mcp.json`
`.devcontainer/devcontainer.json`
`.github/mcp.json`
|
\| Configuration LSP           |
`lsp.json` ou `.github/lsp.json` |

## Ordre de chargement et priorité

Si vous installez plusieurs plug-ins, il est possible que certains agents, compétences, serveurs MCP ou outils fournis via des serveurs MCP aient des noms en double. Dans ce cas, l’interface CLI détermine le composant à utiliser en fonction d’un ordre de priorité.

* **Les agents et les compétences** utilisent la précédence first-found-wins.

  Si vous disposez d’un agent personnalisé ou d’une compétence au niveau du projet portant le même nom ou id que celui d’un plug-in que vous installez, l’agent ou la compétence du plug-in est ignoré en mode silencieux. Le plug-in ne peut pas remplacer les configurations au niveau du projet ou personnelles. Les agents personnalisés sont dédupliqués à l’aide de leur ID, qui est dérivé de son nom de fichier (par exemple, si le fichier est nommé `reviewer.agent.md`, l’ID de l’agent est `reviewer`). Les compétences sont dédupliquées par leur champ de nom à l’intérieur du fichier `SKILL.md`.

* **Les serveurs MCP** utilisent la priorité "last-wins".

  Si vous installez un plug-in qui définit un serveur MCP portant le même nom de serveur qu’un serveur MCP que vous avez déjà installé, la définition du plug-in est prioritaire. Vous pouvez utiliser l’option `--additional-mcp-config` de ligne de commande pour remplacer une configuration de serveur MCP avec le même nom, installée à l’aide d’un plug-in.

* **Les outils et agents intégrés** sont toujours présents et ne peuvent pas être substitués par les composants définis par l’utilisateur.

Le diagramme suivant illustre les règles d’ordre de chargement et de priorité.

```text
┌──────────────────────────────────────────────────────────────────┐
│  BUILT-IN - HARDCODED, ALWAYS PRESENT                            │
│  • tools: bash, view, apply_patch, glob, rg, task, ...           │
│  • agents: explore, task, code-review, general-purpose, research │
└────────────────────────┬─────────────────────────────────────────┘
                         │
  ┌──────────────────────▼──────────────────────────────────────────────┐
  │  CUSTOM AGENTS - FIRST LOADED IS USED (dedup by ID)                 │
  │  1. ~/.copilot/agents/           (user, .github convention)         │
  │  2. <project>/.github/agents/    (project)                          │
  │  3. <parents>/.github/agents/    (inherited, monorepo)              │
  │  4. ~/.claude/agents/            (user, .claude convention)         │
  │  5. <project>/.claude/agents/    (project)                          │
  │  6. <parents>/.claude/agents/    (inherited, monorepo)              │
  │  7. PLUGIN: agents/ dirs         (plugin, by install order)         │
  │  8. Remote org/enterprise agents (remote, via API)                  │
  └──────────────────────┬──────────────────────────────────────────────┘
                         │
  ┌──────────────────────▼──────────────────────────────────────────────┐
  │  AGENT SKILLS - FIRST LOADED IS USED (dedup by name)                │
  │  1. <project>/.github/skills/        (project)                      │
  │  2. <project>/.agents/skills/        (project)                      │
  │  3. <project>/.claude/skills/        (project)                      │
  │  4. <parents>/.github/skills/ etc.   (inherited)                    │
  │  5. ~/.copilot/skills/               (personal-copilot)             │
  │  6. ~/.agents/skills/                (personal-agents)              │
  │  7. ~/.claude/skills/                (personal-claude)              │
  │  8. PLUGIN: skills/ dirs             (plugin)                       │
  │  9. COPILOT_SKILLS_DIRS env + config (custom)                       │
  │  --- then commands (.claude/commands/), skills override commands ---│
  └──────────────────────┬──────────────────────────────────────────────┘
                         │
  ┌──────────────────────▼──────────────────────────────────────────────┐
  │  MCP SERVERS - LAST LOADED IS USED (dedup by server name)           │
  │  1. ~/.copilot/mcp-config.json       (lowest priority)              │
  │  2. .vscode/mcp.json                 (workspace)                    │
  │  3. PLUGIN: MCP configs              (plugins)                      │
  │  4. --additional-mcp-config flag     (highest priority)             │
  └─────────────────────────────────────────────────────────────────────┘
```

## Lectures complémentaires

* [CLI GitHub Copilot](/fr/copilot/how-tos/copilot-cli)
* [Référence de commande CLI pour GitHub Copilot](/fr/copilot/reference/copilot-cli-reference/cli-command-reference)
* [référence programmatique du CLI GitHub Copilot](/fr/copilot/reference/copilot-cli-reference/cli-programmatic-reference)