Skip to main content

Références du plug-in CLI GitHub Copilot

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

Remarque

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 CLI.

CommandDescriptif
copilot plugin install SPECIFICATIONInstallez un plug-in. Consultez la spécification du plug-in pour la commande install ci-dessous.
copilot plugin uninstall NAMESupprimer un plug-in
copilot plugin listRépertorier les plug-ins installés
copilot plugin update NAMEMettre à jour un plug-in
copilot plugin marketplace add SPECIFICATIONInscrire une place de marché
copilot plugin marketplace listRépertorier les places de marché inscrites
copilot plugin marketplace browse NAMEParcourir les plug-ins de la Place de marché
copilot plugin marketplace remove NAMEAnnuler l’inscription d’une place de marché

Spécification du module externe pour la commande install

FormatExampleDescriptif
Place de marchéplugin@marketplaceModule depuis un marché enregistré
GitHubOWNER/REPORacine d’un dépôt GitHub
GitHub sous-répertoireOWNER/REPO:PATH/TO/PLUGINSous-répertoire dans un référentiel
Git URLhttps://github.com/o/r.gitN’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 GitHub Copilot CLI.

Champ obligatoire

ChampTypeDescriptif
nameficelleNom du plug-in Kebab-case (lettres, chiffres, traits d’union uniquement). Max 64 chars.

Champs de métadonnées facultatifs

ChampTypeDescriptif
descriptionficelleBrève description. Max 1024 chars.
versionficelleVersion sémantique (par exemple, 1.0.0).
authorobjet
          `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.

ChampTypePar défautDescriptif
agentschaîne | chaîne[]agents/Chemin(s) d’accès aux répertoires d’agent (.agent.md fichiers).
skillschaîne | chaîne[]skills/Chemin(s) vers les répertoires de compétences (SKILL.md fichiers).
commandschaîne | chaîne[]Chemin d’accès aux répertoires de commandes.
hooksobjet string |Chemin d’accès à un fichier de configuration de hooks ou à un objet hooks inline.
mcpServersobjet string |Chemin d’accès à un fichier de configuration MCP (par exemple, .mcp.json) ou définitions de serveur inline.
lspServersobjet string |Chemin vers un fichier de configuration LSP, ou des définitions de serveur intégrées.

Exemple de fichier plugin.json

JSON
{
  "name": "my-dev-tools",
  "description": "React development utilities",
  "version": "1.2.0",
  "author": {
    "name": "Jane Doe",
    "email": "[email protected]"
  },
  "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 :

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

Remarque

Copilot CLI recherche également le marketplace.json fichier dans le .claude-plugin/ répertoire.

Pour plus d’informations, consultez « Création d’un marketplace de plugins pour GitHub Copilot CLI ».

Exemple de fichier marketplace.json

JSON
{
  "name": "my-marketplace",
  "owner": {
    "name": "Your Organization",
    "email": "[email protected]"
  },
  "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"
    }
  ]
}

Remarque

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

ChampTypeObligatoireDescriptif
nameficelleOuiNom de la Place de marché kebab-case. Max 64 chars.
ownerobjetOui
          `{ 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)

ChampTypeObligatoireDescriptif
nameficelleOuiNom du plug-in Kebab-case. Max 64 chars.
sourceobjet string |OuiOù récupérer le plug-in (chemin relatif, GitHubou URL).
descriptionficelleNonDescription du plug-in. Max 1024 chars.
versionficelleNonVersion du plug-in.
authorobjetNon{ name, email?, url? }
homepageficelleNonURL de la page d’accueil du plug-in.
repositoryficelleNonURL du référentiel source.
licenseficelleNonIdentificateur de licence.
keywordschaîne de caractères[]NonMots clés de recherche.
categoryficelleNonCatégorie de plug-in.
tagschaîne de caractères[]NonBalises supplémentaires.
commandschaîne | chaîne[]NonChemin d’accès aux répertoires de commandes.
agentschaîne | chaîne[]NonChemins d’accès aux répertoires de l’agent.
skillschaîne | chaîne[]NonChemins d’accès aux répertoires de compétences.
hooksobjet string |NonChemin d’accès à la configuration des hooks ou à l’objet inline hooks.
mcpServersobjet string |NonChemin d’accès à la configuration MCP ou aux définitions de serveur inline.
lspServersobjet string |NonChemin d’accès aux définitions de serveur intégrées ou à la configuration LSP.
strictbooléenNonQuand 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émentChemin
Plug-ins installés
          `~/.copilot/installed-plugins/` et `~/.copilot/installed-plugins/_direct` |

| Cache de la Place de marché | ~/.copilot/state/marketplace-cache/ | | Manifeste du plug-in | plugin.json, .github/plugin/plugin.json ou .claude-plugin/plugin.json | | Manifest de Marketplace | .github/plugin/marketplace.json ou .claude-plugin/marketplace.json | | 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 ou .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 priorité du premier-trouvé-gagnant.
    

    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 le champ de leur 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é.

┌─────────────────────────────────────────────────────────┐
│  BUILT-IN - HARDCODED, ALWAYS PRESENT                   │
│  • tools: bash, view, apply_patch, glob, rg, task, ...  │
│  • agents: explore, task, code-review, general-purpose  │
└────────────────────────┬────────────────────────────────┘
                         │
  ┌──────────────────────▼──────────────────────────────────────────────┐
  │  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. ~/.claude/skills/                (personal-claude)              │
  │  7. PLUGIN: skills/ dirs             (plugin)                       │
  │  8. 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)             │
  └─────────────────────────────────────────────────────────────────────┘