Skip to main content

À propos des extensions pour CLI GitHub Copilot

Les extensions vous permettent d’ajouter vos propres outils et commandes de barre oblique à CLI GitHub Copilot, en utilisant uniquement le Kit de développement logiciel (SDK) fourni avec l’interface CLI.

Qui peut utiliser cette fonctionnalité ?

CLI GitHub Copilot est disponible dans tous les forfaits Copilot. Si vous recevez Copilot d’une organisation, la Copilot pour CLI stratégie doit être activée dans les paramètres de l’organisation.

Remarque

CLI GitHub Copilot les extensions sont actuellement une fonctionnalité expérimentale et sont sujettes à modification.

Une extension vous permet d’ajouter vos propres fonctionnalités à Copilot pour CLI. Chaque extension est un petit module Node.js qui s’exécute en tant que processus distinct en même temps que votre session interactive et se connecte à celui-ci. Grâce à cette connexion, une extension peut ajouter :

  • Outils qui Copilot peuvent appeler pendant qu’il fonctionne en votre nom.
  • Commandes de barre oblique que vous exécutez vous-même.

Étant donné qu’une extension exécute du code réel sur votre ordinateur, vous pouvez ajouter des fonctionnalités que les outils intégrés n’ont pas. Par exemple, une extension peut surveiller ce qui se passe dans une session et conserver un total en cours d’exécution entre les appels d’outil, qu’une commande shell unique ne peut pas faire.

Cet article explique comment les extensions fonctionnent et comment Copilot pour CLI les gère. Pour obtenir un guide pratique sur la création de vos propres extensions, consultez Création d’extensions pour CLI GitHub Copilot.

Avertissement

Les extensions s’exécutent sur votre ordinateur avec vos privilèges. Chargez uniquement le code d’extension que vous approuvez, de la même façon que vous n’exécutez que tout autre script que vous n’avez pas écrit vous-même.

Comment les extensions sont découvertes

Au Copilot pour CLI démarrage, il recherche des extensions à plusieurs emplacements. Chaque extension réside dans son propre sous-répertoire, et ce sous-répertoire doit contenir un fichier d’entrée nommé extension.mjs, extension.cjsou extension.js. Il s’agit de tous les fichiers JavaScript : les Copilot pour CLI exécutions du fichier d’entrée directement avec Node.js, de sorte qu’une extension doit être écrite en JavaScript : TypeScript et d’autres langages ne sont actuellement pas pris en charge.

Le nom du sous-répertoire devient le nom de l’extension.

SourceEmplacementDisponibilité
Projet
.github/extensions/NAME/ dans le référentiel actuelDisponible pour toute personne travaillant dans ce référentiel.
Utilisateur~/.copilot/extensions/NAME/Disponible dans toutes vos sessions CLI, dans chaque annuaire.
Plug-inUn plug-in installéDisponible partout où le plug-in est activé.

Choix de l’emplacement de vie d’une extension

Où vous placez le répertoire d’extension détermine qui peut l’utiliser :

  • Placez-le dans .github/extensions/ un référentiel lorsque l’extension est spécifique à ce projet et que vous souhaitez la partager avec tous ceux qui y travaillent.
  • Placez-le ~/.copilot/extensions/ lorsque vous souhaitez que l’extension soit disponible dans toutes vos propres sessions, quel que soit le répertoire dans lequel vous démarrez l’interface CLI.

Les deux emplacements suivent exactement la même structure ( un sous-répertoire nommé contenant un extension.mjs fichier) afin de pouvoir déplacer une extension d’une à l’autre simplement en déplaçant son dossier.

Activation des extensions

Les extensions sont actuellement une fonctionnalité expérimentale. Vous devez donc activer les fonctionnalités expérimentales. Pour ce faire, effectuez l’une des opérations suivantes :

  • Démarrez l’interface CLI avec l’indicateur --experimental .
  • Exécutez la /experimental on commande de barre oblique à l’intérieur d’une session interactive.

Modification de la façon dont l’interface CLI gère les extensions

Vous pouvez limiter Copilotl’accès aux extensions ou les désactiver entièrement à l’aide de la /extensions mode commande. Lorsque vous utilisez cette commande, vous obtenez trois options :

  • Load &Augmente (valeur par défaut) : l’interface CLI exécute vos extensions _et_Copilot peut les gérer.
  • Chargez uniquement : l’interface CLI exécute vos extensions, mais Copilot ne peut pas les gérer.
  • Désactivé : les extensions sont désactivées entièrement dans la session active et restent désactivées dans les sessions ultérieures jusqu’à ce que vous basculez vers l’un des deux autres paramètres. Les autres sessions actuelles ne sont pas affectées.

Toute modification que vous apportez prend effet immédiatement dans la session active :

  • Le passage à Désactivé arrête toutes les extensions en cours d’exécution. Leurs processus sont arrêtés et leurs outils ne sont plus disponibles.
  • Le passage de Désactivé à l’un des autres paramètres démarre vos extensions.
  • Le basculement entre le chargement uniquement et le chargement et augmenter modifie simplement si Copilot vous pouvez gérer vos extensions.

Ce que signifie « gestion des extensions »

En mode Load &Augment , Copilot vous disposez d’un petit ensemble d’outils supplémentaires qui lui permettent de travailler directement sur le système d’extension, dans le cadre de l’exécution de vos demandes. À l’aide de ces outils, Copilot vous pouvez :

  • Répertoriez les extensions qu’il a découvertes et voyez leur état.
  • Inspectez une extension, y compris une fin de son fichier journal, pour faciliter le diagnostic d’un échec ou d’un comportement incorrect.
  • Structurer une nouvelle extension : générez un fichier de démarrage extension.mjs pour vous permettre de générer.
  • Rechargez les extensions afin que le code (ou vous) soit écrit prend effet sans redémarrer la session.

C’est ce qui vous permet de demander Copilot de créer une extension pour vous. Copilot peut créer le fichier, écrire le code et le recharger, tout cela sans quitter la session.

Choisissez Charger uniquement lorsque vous souhaitez conserver un ensemble connu et approuvé d’extensions en cours d’exécution, mais que vous ne souhaitez Copilot pas créer, recharger ou modifier le code d’extension ( qui s’exécute sur votre ordinateur) en tant qu’effet secondaire de son travail. Vos extensions existantes s’exécutent toujours et Copilot peuvent toujours appeler les outils qu’ils fournissent ; il ne peut simplement pas gérer les extensions elles-mêmes.

Extensions comparées aux plug-ins

Les extensions et les plug-ins ajoutent des fonctionnalités, Copilot pour CLImais ils servent des objectifs différents :

  • Une extension est un module JavaScript unique que vous écrivez pour ajouter des outils et des commandes de barre oblique, soutenus par du code qui s’exécute dans votre session.
  • Un plug-in est un package installable qui regroupe des composants réutilisables, tels que des agents, des compétences, des hooks et des intégrations, et qui peut être distribué via une place de marché.

Pour plus d’informations sur les plug-ins, consultez À propos des GitHub Copilot plug-ins.

Lectures complémentaires