Skip to main content

Référence de commande CLI pour GitHub Copilot

Recherchez des commandes et des raccourcis clavier pour vous aider à utiliser Copilot pour CLI efficacement.

Commandes de ligne de commande

CommandObjectif
copilotLancez l’interface utilisateur interactive.
copilot help [TOPIC]Affichez les informations d’aide. Les rubriques d’aide incluent : config, , commands``environment, logging``monitoring, , permissionset providers.
copilot initInitialisez des Copilot instructions personnalisées pour ce référentiel.
copilot loginAuthentifiez-vous avec Copilot via le flux d'appareil OAuth. Accepte --host HOST de spécifier l’URL de l’hôte GitHub (valeur par défaut : https://github.com).
copilot login [OPTION]Authentifiez-vous avec Copilot via le flux d'appareil OAuth. Voir copilot login les options.
copilot mcpGérez les configurations du serveur MCP à partir de la ligne de commande.
copilot pluginGérez les plug-ins et les places de marché de plug-ins.
copilot updateTéléchargez et installez la dernière version.
copilot versionAffichez les informations de version et recherchez les mises à jour.

Options copilot login

ChoixObjectif
--host HOST
          GitHub URL de l’hôte (valeur par défaut : `https://github.com`). Utilisez ceci pour vous authentifier auprès d'une instance GitHub Enterprise Cloud qui utilise la localisation des données (par exemple, `https://example.ghe.com`). |

| --config-dir PATH | Définissez le répertoire de configuration (par défaut : ~/.copilot). |

Le mode d’authentification par défaut est un flux de navigateur web. Une fois l’opération terminée, un jeton d’authentification est stocké en toute sécurité dans le magasin d’informations d’identification système. Si un magasin de stockage des informations d’identification est introuvable, le jeton est stocké dans un fichier de configuration en texte brut sous ~/.copilot/.

          Copilot pour CLI Vous pouvez également utiliser un jeton d’authentification trouvé dans les variables d’environnement. Les éléments suivants sont vérifiés dans l’ordre de priorité : `COPILOT_GITHUB_TOKEN`, `GH_TOKEN`, `GITHUB_TOKEN`. Cette méthode convient le mieux à une utilisation sans tête, comme l’automatisation.

Les types de jetons pris en charge incluent fine-grained personal access tokens (v2 PATs) avec l'autorisation « Copilot Requests », les jetons OAuth de l'application CLI Copilot et les jetons OAuth de l'application GitHub CLI (gh). Les classiques personal access tokens (ghp_) ne sont pas pris en charge.

          **Exemples :**
# Authenticate with github.com
copilot login

# Authenticate with GitHub Enterprise Cloud (data residency)
copilot login --host https://example.ghe.com

# Use a fine-grained PAT via environment variable
COPILOT_GITHUB_TOKEN=github_pat_... copilot

Raccourcis globaux dans l’interface interactive

ShortcutObjectif
@ FILENAMEIncluez le contenu du fichier dans le contexte.
# NUMBERIncluez un problème ou une pull request GitHub dans le contexte.
! COMMANDExécutez une commande dans votre interpréteur de commandes local, en contournant Copilot.
?Ouvrez l’aide rapide (dans une invite vide).
ÉchapAnnulez l’opération actuelle.
Ctrl+CAnnuler l’opération / effacer la saisie. Appuyez deux fois pour quitter.
Ctrl+DArrêt.
Ctrl+GModifiez l’invite dans un éditeur externe ($EDITOR).
Ctrl+LEffacez l’écran.
Ctrl+Entrée ou Ctrl+QMettre en file d’attente un message à envoyer pendant que l’agent est occupé.
Ctrl+RRecherche inversée par le biais de l’historique des commandes.
Ctrl+VCollez le contenu du Presse-papiers en tant que pièce jointe.
Ctrl+X puis /Après avoir commencé à saisir un prompt, cela vous permet d’exécuter une commande slash. Par exemple, si vous souhaitez modifier le modèle sans avoir à retaper votre prompt.
Ctrl+X puis eModifiez l’invite dans un éditeur externe ($EDITOR).
Ctrl+X puis oOuvrez le lien le plus récent à partir de la chronologie.
Ctrl+ZSuspendez le processus en arrière-plan (Unix).
Maj+Entrée ou Option+Entrée (Mac) / Alt+Entrée (Windows/Linux)Insérez une nouvelle ligne dans l’entrée.
Maj+TabAlternez entre le mode standard, plan et pilote automatique.

Raccourcis de chronologie dans l’interface interactive

ShortcutObjectif
Ctrl+OBien qu’il n’y ait rien dans l’entrée d’invite, ceci développe les éléments récents dans Copilot la chronologie des réponses pour afficher plus de détails.
Ctrl+EBien qu’il n’y ait rien dans l’entrée d’invite, cela étend tous les éléments de la chronologie de réponse de Copilot.
Ctrl+TDévelopper/réduire l’affichage du raisonnement dans les réponses.
Page vers le haut/Page vers le basFaites défiler la chronologie vers le haut ou vers le bas d’une page.
ShortcutObjectif
Ctrl+APassez au début de la ligne (lors de la saisie).
Ctrl+BPassez au caractère précédent.
Ctrl+EPassez à la fin de la ligne (lors de la saisie).
Ctrl+FPassez au caractère suivant.
Ctrl+HSupprimez le caractère précédent.
Ctrl+KSupprimez depuis le curseur jusqu’à la fin de la ligne. Si le curseur se trouve à la fin de la ligne, supprimez le saut de ligne.
Ctrl+USupprimer depuis le curseur jusqu'au début de la ligne.
Ctrl+WSupprimez le mot précédent.
AccueilAccédez au début du texte.
FinPassez à la fin du texte.
Alt+/ (Windows/Linux)
          <kbd>Option</kbd>+<kbd>←</kbd>/<kbd>→</kbd> (Mac) | Déplacez le curseur par un mot.             |

| / | Naviguez dans l’historique des commandes. | | Onglet / Ctrl+Y | Acceptez la suggestion de saisie en ligne actuelle. |

Commandes slash dans l’interface interactive

CommandObjectif
/add-dir PATHAjoutez un répertoire à la liste autorisée pour l’accès aux fichiers.
/agentParcourez et sélectionnez parmi les agents disponibles (le cas échéant). Consultez « À propos des agents personnalisés ».
/ask QUESTIONPosez une question de côté rapide sans ajouter à l’historique des conversations. Disponible uniquement en mode expérimental.
/allow-all [on|off|show], /yolo [on|off|show]Activez toutes les autorisations (outils, chemins et URL).
/changelog [summarize] [VERSION|last N|since VERSION], /release-notes [summarize] [VERSION|last N|since VERSION]Affichez le journal des modifications CLI. Spécifiez éventuellement une version, un nombre de versions récentes ou une version de départ. Ajoutez le mot clé summarize pour un résumé généré par l’IA.
/chronicle <standup|tips|improve|reindex>Outils et analyses pour l’historique des sessions. Disponible uniquement en mode expérimental.
/clear [PROMPT]
          `/new [PROMPT]`
          `/reset [PROMPT]`
         | Démarrez une nouvelle conversation. |

| /compact | Résumez l’historique des conversations pour réduire l’utilisation de la fenêtre de contexte. Consultez « Gestion du contexte dans CLI GitHub Copilot ». | | /context | Afficher l’utilisation et la visualisation des jetons de fenêtre de contexte. Consultez « Gestion du contexte dans CLI GitHub Copilot ». | | /copy | Copiez la dernière réponse dans le presse-papiers. | | /cwd, /cd [PATH] | Modifiez le répertoire de travail ou affichez le répertoire actif. | | /delegate [PROMPT] | Déléguer les modifications à un référentiel distant avec une requête de tirage générée par l’IA. Consultez « Délégation de tâches à CLI GitHub Copilot ». | | /diff | Passez en revue les modifications apportées dans le répertoire actif. | | /downgrade <VERSION> | Téléchargez et redémarrez dans une version CLI spécifique. Disponible pour les comptes d’équipe. | | /env | Afficher les détails de l’environnement chargé (instructions, serveurs MCP, compétences, agents, plug-ins, LSPs, extensions). | | /exit, /quit | Quittez l’interface CLI. | | /experimental [on\|off\|show] | Basculez, définissez ou affichez des fonctionnalités expérimentales. | | /feedback, /bug | Fournissez des commentaires sur l’interface CLI. | | /fleet [PROMPT] | Activez l’exécution parallèle des sous-éléments d’une tâche. Consultez « Exécution de tâches en parallèle avec la /fleet commande ». | | /help | Affichez l’aide pour les commandes interactives. | | /ide | Connectez-vous à un espace de travail IDE. Consultez « Connexion CLI GitHub Copilot à VS Code ». | | /init | Initialisez des Copilot instructions personnalisées et des fonctionnalités agentiques pour ce référentiel. Consultez l'initialisation du projet pour Copilot. | | /instructions | Affichez et désactivez les fichiers d’instructions personnalisés. | | /keep-alive [on\|busy\|NUMBERm\|NUMBERh] | Empêchez l’ordinateur de se mettre en veille : pendant qu’une session CLI est active, pendant que l’agent est occupé ou pendant une durée définie. Disponible uniquement en mode expérimental. | | /list-dirs | Affichez tous les répertoires pour lesquels l’accès au fichier a été autorisé. | | /login | Connectez-vous à Copilot. | | /logout | Déconnectez-vous de Copilot. | | /lsp [show\|test\|reload\|help] [SERVER-NAME] | Gérez la configuration du serveur de langue. | | /mcp [show\|add\|edit\|delete\|disable\|enable\|auth\|reload] [SERVER-NAME] | Gérez la configuration du serveur MCP. Consultez « Ajout de serveurs MCP pour CLI GitHub Copilot ». | | /model, /models [MODEL] | Sélectionnez le modèle IA que vous souhaitez utiliser. | | /plan [PROMPT] | Créez un plan d’implémentation avant de coder. | | /plugin [marketplace\|install\|uninstall\|update\|list] [ARGS...] | Gérez les plug-ins et les places de marché de plug-ins. Consultez « À propos des plug-ins pour CLI GitHub Copilot ». | | /pr [view\|create\|fix\|auto] | Gérer les demandes de tirage pour la branche actuelle. Consultez « Gestion des pull requests avec la commande /pr ». | | /remote | Activez l’accès à distance à cette session depuis GitHub.com et GitHub Mobile. Consultez « Direction d’une session à partir d’un CLI GitHub Copilot autre appareil ». | | /rename [NAME] | Renommez la session active (génère automatiquement un nom s’il est omis ; alias pour /session rename). | | /research TOPIC | Effectuez une investigation approfondie en utilisant GitHub des sources de recherche et web. Consultez « Recherche avec CLI GitHub Copilot ». | | /reset-allowed-tools | Réinitialisez la liste des outils autorisés. | | /restart | Redémarrez l’interface CLI, en conservant la session active. | | /resume [VALUE], /continue | Basculez vers une autre session en choisissant dans une liste. Spécifiez éventuellement un ID de session, un préfixe d’ID ou un nom de session pour reprendre une session spécifique. | | /review [PROMPT] | Exécutez l’agent de révision de code pour analyser les modifications. Consultez « Demande d’une révision de code avec CLI GitHub Copilot ». | | /session [info\|checkpoints [n]\|files\|plan\|rename [NAME]\|cleanup\|prune\|delete [ID]\|delete-all], /sessions [info\|checkpoints [n]\|files\|plan\|rename [NAME]\|cleanup\|prune\|delete [ID]\|delete-all] | Affichez les informations de session et gérez les sessions. Sous-commandes : info, , checkpoints, files``plan, rename``cleanup``prune``delete, , . delete-all | | /share [file\|html\|gist] [session\|research] [PATH], /export [file\|html\|gist] [session\|research] [PATH] | Partagez la session dans un fichier Markdown, un fichier HTML interactif ou un gist GitHub. | | /skills [list\|info\|add\|remove\|reload] [ARGS...] | Gérez les compétences afin d'améliorer les capacités. Consultez « Ajout de compétences d’agent pour CLI GitHub Copilot ». | | /statusline, /footer | Configurez les éléments qui apparaissent dans la ligne d’état. | | /tasks | Affichez et gérez les tâches d'arrière-plan (sous-agents et sessions shell). | | /terminal-setup | Configurez le terminal pour la prise en charge des entrées multilignes (Maj+Entrée et Ctrl+Entrée). | | /theme [default\|dim\|high-contrast\|colorblind] | Affichez ou définissez le mode de couleur. | | /undo, /rewind | Remontez à l'étape précédente et annulez les modifications au fichier. | | /update, /upgrade | Mettez à jour l’interface CLI vers la dernière version. | | /usage | Affichez les métriques et statistiques d’utilisation de session. | | /user [show\|list\|switch] | Gérez l’utilisateur actuel GitHub . | | /version | Affichez les informations de version et recherchez les mises à jour. |

Pour obtenir la liste complète des commandes de barre oblique disponibles, entrez /help dans l’interface interactive de l’interface CLI.

Options de ligne de commande

ChoixObjectif
--add-dir=PATHAjoutez un répertoire à la liste autorisée pour l’accès aux fichiers (peut être utilisé plusieurs fois).
--add-github-mcp-tool=TOOLAjoutez un outil pour activer pour le GitHub serveur MCP, au lieu du sous-ensemble CLI par défaut (peut être utilisé plusieurs fois). Utiliser * pour tous les outils.
--add-github-mcp-toolset=TOOLSETAjoutez un ensemble d’outils pour activer pour le GitHub serveur MCP, au lieu du sous-ensemble CLI par défaut (peut être utilisé plusieurs fois). Utiliser all pour tous les ensembles d’outils.
--additional-mcp-config=JSONAjoutez un serveur MCP pour cette session uniquement. La configuration du serveur peut être fournie sous la forme d’une chaîne JSON ou d’un chemin d’accès de fichier (préfixe avec @). Optimisez la configuration de ~/.copilot/mcp-config.json. Remplace toute configuration de serveur MCP installée avec le même nom. Consultez « Ajout de serveurs MCP pour CLI GitHub Copilot ».
--agent=AGENTSpécifiez un assistant personnalisé à utiliser. Consultez « À propos des agents personnalisés ».
--allow-allActivez toutes les autorisations (équivalentes à --allow-all-tools --allow-all-paths --allow-all-urls).
--allow-all-pathsDésactivez la vérification du chemin d’accès du fichier et autorisez l’accès à n’importe quel chemin d’accès.
--allow-all-toolsAutoriser l’exécution automatique de tous les outils sans confirmation. Obligatoire lors de l’utilisation de l’interface CLI par programmation (env : COPILOT_ALLOW_ALL).
--allow-all-urlsAutoriser l’accès à toutes les URL sans confirmation.
--allow-tool=TOOL ...Les outils que l’interface CLI dispose de l’autorisation d’utiliser. Ne demande pas l’autorisation. Pour plusieurs outils, utilisez une liste séparée par des virgules entre guillemets. Consultez « Autorisation et refus de l’utilisation de l’outil ».
--allow-url=URL ...Autoriser l’accès à des URL ou domaines spécifiques. Pour plusieurs URL, utilisez une liste séparée par des virgules entre guillemets.
--autopilotActivez la poursuite de l’autopilot en mode prompt. Consultez « Autoriser GitHub Copilot CLI à fonctionner de manière autonome ».
--available-tools=TOOL ...Seuls ces outils seront disponibles pour le modèle. Pour plusieurs outils, utilisez une liste séparée par des virgules entre guillemets. Consultez « Autorisation et refus de l’utilisation de l’outil ».
--banner, --no-bannerAfficher ou masquer la bannière de démarrage.
--bash-envActivez la BASH_ENV prise en charge des interpréteurs de commandes bash.
--config-dir=PATHDéfinissez le répertoire de configuration (par défaut : ~/.copilot).
--connect[=SESSION-ID]Connectez-vous directement à une session distante (spécifiez éventuellement un ID de session ou un ID de tâche). Conflits avec --resume et --continue.
--continueReprendre la session la plus récente dans le répertoire de travail actuel, en se repliant sur la session la plus récente dans un contexte global.
--deny-tool=TOOL ...Les outils que l’interface CLI n’a pas l’autorisation d’utiliser. Ne demande pas l’autorisation. Pour plusieurs outils, utilisez une liste séparée par des virgules entre guillemets.
--deny-url=URL ...Refuser l’accès à des URL ou domaines spécifiques est prioritaire sur --allow-url. Pour plusieurs URL, utilisez une liste séparée par des virgules entre guillemets.
--disable-builtin-mcpsDésactivez tous les serveurs MCP intégrés (actuellement : github-mcp-server).
--disable-mcp-server=SERVER-NAMEDésactivez un serveur MCP spécifique (peut être utilisé plusieurs fois).
--disallow-temp-dirEmpêchez l’accès automatique au répertoire temporaire système.
--effort=LEVEL, --reasoning-effort=LEVELDéfinissez le niveau d’effort de raisonnement (low, medium, high).
--enable-all-github-mcp-toolsActivez tous les GitHub outils serveur MCP, au lieu du sous-ensemble CLI par défaut. Remplace les options --add-github-mcp-toolset et --add-github-mcp-tool.
--enable-reasoning-summariesDemander des résumés de raisonnement pour les modèles OpenAI qui les prennent en charge.
--excluded-tools=TOOL ...Ces outils ne seront pas disponibles pour le modèle. Pour plusieurs outils, utilisez une liste séparée par des virgules entre guillemets.
--experimentalActiver les fonctionnalités expérimentales (utiliser --no-experimental pour désactiver).
-h, --helpAfficher l'aide.
-i PROMPT, --interactive=PROMPTDémarrez une session interactive et exécutez automatiquement cette invite.
--log-dir=DIRECTORYDéfinissez le répertoire du fichier journal (par défaut : ~/.copilot/logs/).
--log-level=LEVELDéfinissez le niveau de journalisation (choix : none, error, warning, info, debug, all, default).
--max-autopilot-continues=COUNTNombre maximal de messages de continuation en mode Autopilot (valeur par défaut : illimitée). Consultez « Autoriser GitHub Copilot CLI à fonctionner de manière autonome ».
--mode=MODEDéfinissez le mode d’agent initial (choix : interactive, plan). autopilot Impossible de combiner avec --autopilot ou --plan.
--model=MODELDéfinissez le modèle IA que vous souhaitez utiliser. Passez auto pour laisser Copilot choisir automatiquement le meilleur modèle disponible.
--mouse[=VALUE]Activez la prise en charge de la souris en mode écran alternatif. VALUE peut être on (par défaut) ou off. Lorsque cette option est activée, l’interface CLI capture les événements de souris en mode d’écran de remplacement : roulette de défilement, clics, etc. En cas de désactivation, le comportement de la souris native du terminal est conservé. Une fois que le paramètre est défini, il est conservé en étant écrit dans votre fichier de configuration.
-n NAME, --name=NAMEDéfinissez un nom pour la nouvelle session. Utilisé par --resume et /resume pour rechercher des sessions par nom.
--no-ask-userDésactivez l’outil (l’agent ask_user fonctionne de manière autonome sans poser de questions).
--no-auto-updateDésactivez le téléchargement automatique des mises à jour CLI.
--no-bash-envDésactivez la prise en charge de BASH_ENV pour les interpréteurs de commandes Bash.
--no-colorDésactivez toutes les sorties de couleur.
--no-custom-instructionsDésactivez le chargement d'instructions personnalisées de AGENTS.md et des fichiers associés.
--no-experimentalDésactivez les fonctionnalités expérimentales.
--no-mouseDésactivez la prise en charge de la souris.
--no-remoteDésactivez l’accès à distance pour cette session.
--output-format=FORMATFormat peut être text (par défaut) ou json (génère JSONL : un objet JSON par ligne).
-p PROMPT, --prompt=PROMPTExécutez un prompt de manière programmatique (quitte après l’exécution). Consultez « Exécution CLI GitHub Copilot par programmation ».
--planDémarrez en mode plan. Raccourci pour --mode plan. Impossible de combiner avec --mode ou --autopilot.
--plain-diffDésactivez le rendu des différences enrichies (mise en surbrillance de la syntaxe via l’outil de différences spécifié par votre configuration Git).
--plugin-dir=DIRECTORYCharger un plug-in à partir d’un répertoire local (peut être utilisé plusieurs fois).
--remoteActivez l’accès à distance à cette session depuis GitHub.com et GitHub Mobile. Consultez « Direction d’une session à partir d’un CLI GitHub Copilot autre appareil ».
--resume[=VALUE]Reprendre une session interactive précédente en choisissant dans une liste. Spécifiez éventuellement un ID de session, un préfixe d’ID ou un nom de session. La correspondance de noms est exacte et insensible à la casse ; bascule vers le résumé généré automatiquement lorsqu’aucun nom explicite ne correspond.
-s, --silentAffichez uniquement la réponse de l’agent (sans statistiques d’utilisation), utile pour l’écriture de scripts avec -p.
--screen-readerActivez les optimisations du lecteur d’écran.
--secret-env-vars=VAR ...Réactez une variable d’environnement à partir d’environnements de serveur shell et MCP (peut être utilisée plusieurs fois). Pour plusieurs variables, utilisez une liste séparée par des virgules entre guillemets. Les valeurs dans les variables d’environnement GITHUB_TOKEN et COPILOT_GITHUB_TOKEN sont masquées par défaut.
--share=PATHPartagez une session dans un fichier Markdown après l’achèvement d’une session programmatique (chemin d’accès par défaut : ./copilot-session-<ID>.md).
--share-gistPartagez une session sur un gist secret GitHub après la terminaison d'une session programmée.
--stream=MODEActiver ou désactiver le mode de diffusion en continu (choix de mode : on ou off).
-v, --versionAfficher les informations de version.
--yoloActivez toutes les autorisations (équivalentes à --allow-all).

Pour obtenir la liste complète des commandes et des options, exécutez copilot help.

Remarque

Les options --remote, --no-remote et --connect nécessitent que la fonctionnalité de sessions distantes soit disponible sur votre compte.

Valeurs de disponibilité des outils

Les options --available-tools et --excluded-tools prennent en charge ces valeurs :

Outils Shell

Nom de l’outilDescription
bash / powershellExécuter des commandes
list_bash / list_powershellRépertorier les sessions shell actives
read_bash / read_powershellLire la sortie d’une session shell
stop_bash / stop_powershellTerminer une session shell
write_bash / write_powershellEnvoyer une entrée à une session shell

Outils d’opération de fichier

Nom de l’outilDescription
apply_patchAppliquer des correctifs (utilisés par certains modèles au lieu de edit/create)
createCréer des fichiers
editModifier des fichiers via le remplacement de chaîne
viewLire des fichiers ou des répertoires

Outils de délégation d’agent et de tâche

Nom de l’outilDescription
list_agentsRépertorier les agents disponibles
read_agentVérifier l'état de l'agent d'arrière-plan
taskExécuter des sous-agents

Autres outils

Nom de l’outilDescription
ask_userPoser une question à l’utilisateur
globTrouver des fichiers correspondant à des modèles
grep (ou rg)Rechercher du texte dans des fichiers
show_fileAfficher des extraits de code en ligne dans la chronologie. Disponible uniquement en mode expérimental.
skillAppeler des compétences personnalisées
web_fetchExtraire et analyser le contenu web

Modèles d’autorisation d’outil

Les --allow-tool options et --deny-tool acceptent les modèles d’autorisation au format Kind(argument). L’argument est facultatif : l'omission concerne tous les outils de ce type.

TypeDescriptionExemples de modèles
memoryStockage des faits dans la mémoire de l’agentmemory
readLectures de fichiers ou de répertoires
          `read`, `read(.env)` |

| shell | Exécution de commandes shell | shell(git push) shell(git:*) shell | | url | Accès URL via web-fetch ou via le shell | url(github.com), url(https://*.api.com) | | write | Création ou modification de fichier | write, write(src/*.ts) | | SERVER-NAME | Appel de l’outil serveur MCP | MyMCP(create_issue), MyMCP |

Pour les règles shell, le suffixe :* correspond à la racine de la commande suivie d’un espace, ce qui empêche les correspondances partielles. Par exemple, shell(git:*) correspond git push et git pull ne correspond giteapas.

Les règles de refus sont toujours prioritaires sur les règles d’autorisation, même lorsque --allow-all est défini.

# Allow all git commands except git push
copilot --allow-tool='shell(git:*)' --deny-tool='shell(git push)'

# Allow a specific MCP server tool
copilot --allow-tool='MyMCP(create_issue)'

# Allow all tools from a server
copilot --allow-tool='MyMCP'

Variables d'environnement

VariableDescription
COLORFGBGSolution de repli pour la détection de terminal à arrière-plan clair/foncé.
COPILOT_ALLOW_ALLDéfinir sur true pour autoriser toutes les autorisations automatiquement (équivalent à --allow-all).
COPILOT_AUTO_UPDATEDéfinissez sur false pour désactiver les mises à jour automatiques.
COPILOT_CACHE_HOMERemplacez le répertoire du cache (utilisé pour les caches de la Place de marché, les packages de mise à jour automatique et d’autres données éphémères). Consultez GitHub Copilot le répertoire de configuration du CLI pour connaître les valeurs par défaut de la plateforme.
COPILOT_CUSTOM_INSTRUCTIONS_DIRSListe séparée par des virgules de répertoires supplémentaires pour obtenir des instructions personnalisées.
COPILOT_EDITORCommande de l’éditeur pour la modification interactive (cochée après $VISUAL et $EDITOR).
          `vi` Par défaut, si aucun n’est défini. |

| COPILOT_GH_HOST | GitHub le nom d’hôte pour Copilot pour CLI uniquement, remplaçant GH_HOST. Utilisez quand GH_HOST cible GitHub Enterprise Server, mais Copilot doit s’authentifier contre GitHub.com ou un nom d’hôte GitHub Enterprise Cloud. | | COPILOT_GITHUB_TOKEN | Jeton d’authentification. Prend la priorité sur GH_TOKEN et GITHUB_TOKEN. | | COPILOT_HOME | Outrepassez le répertoire de configuration et d’état. Par défaut : $HOME/.copilot. | | COPILOT_MODEL | Définissez le modèle IA. | | COPILOT_PROMPT_FRAME | Définissez sur 1 pour activer le cadre décoratif autour de l’interface utilisateur de l’invite de commande, ou sur 0 pour le désactiver. Remplace l’indicateur PROMPT_FRAME de fonctionnalité expérimental pour la session active. | | COPILOT_SKILLS_DIRS | Liste de répertoires supplémentaires pour les compétences, séparés par des virgules. | | COPILOT_SUBAGENT_MAX_CONCURRENT | Nombre maximal de sous-agents simultanés dans l'ensemble de l'arborescence de la session. Par défaut : 32. Plage : 1256. | | COPILOT_SUBAGENT_MAX_DEPTH | Profondeur maximale d’imbrication des sous-agents. Par défaut : 6. Plage : 1256. | | GH_HOST | GitHub nom d’hôte pour les deux GitHub CLI et Copilot pour CLI (par défaut : github.com). Paramétrez sur votre GitHub Enterprise Cloud nom d'hôte de résidence des données. Remplacez par COPILOT_GH_HOST pour Copilot pour CLI uniquement. | | GH_TOKEN | Jeton d’authentification. Prend la priorité sur GITHUB_TOKEN. | | GITHUB_TOKEN | Jeton d’authentification. | | PLAIN_DIFF | Définir sur true pour désactiver le rendu enrichi des diffs. | | USE_BUILTIN_RIPGREP | Définir sur false, pour utiliser la version système de ripgrep au lieu de la version fournie. |

Paramètres du fichier de configuration

Pour plus d’informations sur les paramètres de fichier de configuration, notamment la liste complète des paramètres utilisateur, des paramètres de référentiel, des paramètres locaux et leur cascade, consultez GitHub Copilot le répertoire de configuration du CLI.

Remarque

Les paramètres utilisateur ont été précédemment stockés dans ~/.copilot/config.json. Les paramètres existants de cet emplacement sont automatiquement migrés vers ~/.copilot/settings.json le démarrage.

Initialisation du projet pour Copilot

Lorsque vous utilisez la commande copilot init, ou la commande /init de barre oblique dans une session interactive, Copilot analyse votre codebase et écrit ou met à jour un .github/copilot-instructions.md fichier dans le référentiel. Ce fichier d’instructions personnalisées contient des instructions spécifiques au projet qui amélioreront les futures sessions CLI.

Vous utiliserez copilot initgénéralement , ou /init, lorsque vous démarrez un nouveau projet, ou lorsque vous commencez à utiliser Copilot pour CLI dans un référentiel existant.

Le fichier copilot-instructions.md qui est créé ou mis à jour documente généralement :

  • Commandes dédiées à la compilation, aux tests et à la vérification de la syntaxe.
  • Architecture de haut niveau.
  • Conventions spécifiques à Codebase.

Si le fichier existe déjà, Copilot suggère des améliorations que vous pouvez choisir d’appliquer ou de rejeter.

L’interface CLI recherche le copilot-instructions.md fichier au démarrage et, s’il est manquant, il affiche le message :

          💡 Aucune instruction copilote n’a été trouvée. Exécutez /init pour générer un fichier copilot-instructions.md pour ce projet.

Si vous ne souhaitez pas créer ce fichier, vous pouvez masquer définitivement ce message de démarrage pour le référentiel actuel à l’aide de la /init suppress commande barre oblique.

Pour plus d’informations, consultez « Ajout d’instructions personnalisées de référentiel pour GitHub Copilot ».

Référence des hooks

Les hooks sont des commandes externes, des webhooks HTTP ou (uniquement sur sessionStart) des chaînes d’invite qui s’exécutent à des étapes spécifiques du cycle de vie au cours d'une session, permettant l'automatisation personnalisée, les contrôles de sécurité et les intégrations. Les fichiers de configuration de "hook" sont chargés automatiquement depuis .github/hooks/*.json de votre référentiel.

Format de configuration des hooks

Les fichiers de configuration de hook utilisent le format JSON avec la version 1. Chaque entrée de hook est un hook de commande, un hook HTTP ou (sur sessionStart uniquement) un hook d’invite.

Crochets de commande

Les commandes hook exécutent des scripts shell et sont prises en charge pour tous les types de hook.

{
  "version": 1,
  "hooks": {
    "preToolUse": [
      {
        "type": "command",
        "bash": "your-bash-command",
        "powershell": "your-powershell-command",
        "cwd": "optional/working/directory",
        "env": { "VAR": "value" },
        "timeoutSec": 30
      }
    ]
  }
}
ChampTypeObligatoireDescription
bashficelleL'un de bash/powershellCommande Shell pour Unix.
cwdficelleNonRépertoire de travail pour la commande (relatif à la racine du référentiel ou absolu).
envobjetNonVariables d’environnement à définir (prend en charge l’expansion des variables).
powershellficelleL'un de bash/powershellCommande Shell pour Windows.
timeoutSecnombreNonDélai d’expiration en secondes. Par défaut : 30.
type"command"OuiDoit être "command".

Crochets d’invite

Les déclencheurs automatiques soumettent le texte comme si l'utilisateur l'avait tapé. Ils ne sont pris en charge que sur sessionStart et exécutés avant toute invite initiale passée via --prompt. Le texte peut être une invite en langage naturel ou une commande barre oblique.

{
  "version": 1,
  "hooks": {
    "sessionStart": [
      {
        "type": "prompt",
        "prompt": "Your prompt text or /slash-command"
      }
    ]
  }
}
ChampTypeObligatoireDescription
promptficelleOuiTexte à soumettre : il peut s'agir d'un message en langage naturel ou d'une commande slash.
type"prompt"OuiDoit être "prompt".

Hooks HTTP

Les hooks HTTP envoient la charge utile de l'événement sous forme de JSON vers une URL configurée et analysent le corps de la réponse JSON. Ils sont pris en charge sur tous les types d’événements de hooks et sont utiles pour des intégrations de type webhook — services de politiques à distance, points de terminaison d’audit et flux de travail d’approbation — sans nécessiter d’exécutable local.

{
  "version": 1,
  "hooks": {
    "preToolUse": [
      {
        "type": "http",
        "url": "https://policy.example.com/preToolUse"
      }
    ]
  }
}
ChampTypeObligatoireDescription
type"http"OuiDoit être "http".
urlficelleOuiURL du point de terminaison. Doit utiliser http: ou https:. Aucune substitution de var env dans l’URL elle-même.
headersobjetNonEn-têtes de demande. Les valeurs soutiennent $VAR / ${VAR} la substitution limitée aux noms répertoriés dans allowedEnvVars.
allowedEnvVarschaîne de caractères[]NonListe autorisée pour la modélisation des valeurs d'en-têtes. La définition d’un tableau non vide nécessite HTTPS.
timeoutSecnombreNonDélai d’expiration par requête en secondes. Par défaut : 30.
          `timeout` est accepté en tant qu’alias ; `timeoutSec` est prioritaire. |

| matcher | ficelle | Non | Filtre regex. Pris en charge uniquement sur preCompact, subagentStart, permissionRequest et notification. Ancré en tant que ^(?:pattern)$. |

Le corps de la réponse utilise le même schéma JSON que le stdout du hook de commande pour chaque événement. Répondez 204 No Content ou n’importe quel 2xx avec un corps vide quand aucune action n’est nécessaire.

Avertissement

Les hooks HTTP n’ont aucune sémantique de code de sortie. Une réponse non-2xx est un échec de raccordement, pas une décision de refus. Pour refuser un appel d’outil à partir d’un hook HTTP preToolUse , retournez 200 OK avec {"permissionDecision":"deny","permissionDecisionReason":"..."}. Pour refuser depuis un hook HTTP permissionRequest, retournez 200 OK avec {"behavior":"deny","message":"..."}.

Une entrée de crochet avec les champs bash et url est analysée selon la variante correspondant en premier ; le champ inutilisé est supprimé sans notification. Définissez explicitement toujours type et supprimez les champs de commande lors de l’utilisation de hooks HTTP.

Sécurité du raccordement HTTP

HTTPS est requis dans les cas suivants :

  • Lorsque allowedEnvVars est un tableau non vide, cela permet d'empêcher l'envoi d'informations d'identification en texte clair.
  • Par défaut, pour preToolUse et permissionRequest les crochets, pour protéger le canal de décision d’autorisation.

L'outil CLI applique une politique SSRF par défaut en mode refus : toute URL dont le nom d'hôte est résolu en une adresse de boucle, privée, locale de liaison, ou en une adresse de métadonnées cloud est rejetée avant la connexion. DNS est résolu avant et toutes les adresses retournées sont validées (défense de la liaison DNS).

Les variables d’environnement suivantes assouplint ces valeurs par défaut pour le développement et les tests uniquement.

VariableRésultatUsage prévu
COPILOT_HOOK_ALLOW_LOCALHOST=1Autorise http:// comme littéral localhost, 127.*, ou [::1] (règles HTTPS), et tout nom d'hôte résolu entièrement en boucle locale (règle SSRF).Développement local uniquement
COPILOT_HOOK_ALLOW_HTTP_AUTH_HOOKS=1Autorise http:// pour les hooks preToolUse et permissionRequest n'importe où.Test uniquement

Les deux variables doivent être définies avant le lancement copilot. Ne les définissez pas globalement, dans CI ou dans des environnements partagés.

Sémantique d’échec du hook HTTP
PathologieComportement
2xx + corps JSON valideCorps analysé selon le schéma de sortie de l'événement.
2xx + corps vide ou non JSONAucune action.
Réponse non-2xxLe crochet échoue. Erreur enregistrée. L’agent continue.
Redirection 3xxLe hook échoue (« redirection retournée »). L’agent continue.
Délai d'expirationLe crochet échoue. Erreur enregistrée. L’agent continue.
Erreur RÉSEAU, DNS ou TLSLe crochet échoue. Erreur enregistrée. L’agent continue.
Erreur de validation de la configuration au chargementFichier de configuration entière rejeté ; aucun point d'attache de ce fichier ne s'enregistre.

Pour preToolUse et permissionRequest, une défaillance du hook HTTP échoue : l’agent passe au flux d’autorisation par défaut.

Événements de hook

ÉvénementSe déclenche quandSortie traitée
sessionStartUne session nouvelle ou reprise commence.Facultatif — peut retourner additionalContext pour injecter un contexte à l'échelle de la session qui précède chaque échange.
sessionEndLa session se termine.Non
userPromptSubmittedL’utilisateur envoie une invite.Non
preToolUseAvant l’exécution de chaque outil.Oui : peut autoriser, refuser ou modifier.
postToolUseAprès que chaque outil ait terminé avec succès.Oui — autorise le remplacement du résultat en cas de succès (uniquement via les hooks programmatiques du SDK).
postToolUseFailureSuite à l’échec d’un outil.Oui : peut fournir des conseils de récupération via additionalContext (code 2 de sortie pour les hooks de commande).
agentStopL’agent principal termine un tour.Oui : peut bloquer et forcer la continuation.
subagentStopUn sous-assistant termine son exécution.Oui : peut bloquer et forcer la continuation.
subagentStartUn sous-agent est initié (avant son exécution). Retourne additionalContext inséré au début de la requête du sous-agent. Prend en charge matcher pour filtrer par nom de l’agent.Non : impossible de bloquer la création.
preCompactLe compactage de contexte est sur le point de commencer (manuel ou automatique). Prend en charge matcher afin de filtrer selon le déclencheur ("manual"ou "auto").Non : notification uniquement.
permissionRequestAvant d’afficher une boîte de dialogue d’autorisation à l’utilisateur, une fois que les vérifications basées sur des règles ne trouvent aucune règle d’autorisation ou de refus correspondante. Gère les expressions régulières matcher appliquées à toolName.Oui : peut autoriser ou refuser par programme.
errorOccurredUne erreur se produit pendant l’exécution.Non
notificationS’active de manière asynchrone lorsque l’interface CLI émet une notification système (fin d’exécution de l’interpréteur de commande, achèvement ou inactivité de l’agent, demandes d’autorisation, boîtes de dialogue interactives). Fire-and-forget : ne bloque jamais la session. Gère les expressions régulières matcher appliquées à notification_type.Facultatif — possibilité d'injecter additionalContext dans la session.

Charges utiles d’entrée associées aux événements de hook

Chaque événement de hook remet une charge utile JSON au gestionnaire de hooks. Deux formats de charge utile sont pris en charge, sélectionnés par le nom d’événement utilisé dans la configuration de hook :

  • Format camelCase : configurez le nom de l’événement dans camelCase (par exemple, sessionStart). Les champs respectent le format camelCase.

          VS Code format compatible** : configurez le nom de l’événement dans PascalCase (par exemple, `SessionStart`). Les champs utilisent snake_case pour correspondre au format d’extension VS CodeCopilot .

sessionStart / SessionStart

          **entrée camelCase :**
{
    sessionId: string;
    timestamp: number;      // Unix timestamp in milliseconds
    cwd: string;
    source: "startup" | "resume" | "new";
    initialPrompt?: string;
}
          **
          VS Code entrée compatible :**
{
    hook_event_name: "SessionStart";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    source: "startup" | "resume" | "new";
    initial_prompt?: string;
}

sessionEnd / SessionEnd

          **entrée camelCase :**
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    reason: "complete" | "error" | "abort" | "timeout" | "user_exit";
}
          **
          VS Code entrée compatible :**
{
    hook_event_name: "SessionEnd";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    reason: "complete" | "error" | "abort" | "timeout" | "user_exit";
}

userPromptSubmitted / UserPromptSubmit

          **entrée camelCase :**
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    prompt: string;
}
          **
          VS Code entrée compatible :**
{
    hook_event_name: "UserPromptSubmit";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    prompt: string;
}

preToolUse / PreToolUse

          **entrée camelCase :**
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    toolName: string;
    toolArgs: unknown;
}
          **
          VS Code entrée compatible :**

Lorsqu’elle est configurée avec le nom PreToolUse de l’événement PascalCase, la charge utile utilise des noms de champs en snake_case afin de correspondre au format d’extension VS CodeCopilot :

{
    hook_event_name: "PreToolUse";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    tool_name: string;
    tool_input: unknown;    // Tool arguments (parsed from JSON string when possible)
}

postToolUse / PostToolUse

          **entrée camelCase :**
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    toolName: string;
    toolArgs: unknown;
    toolResult: {
        resultType: "success";
        textResultForLlm: string;
    }
}
          **
          VS Code entrée compatible :**
{
    hook_event_name: "PostToolUse";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    tool_name: string;
    tool_input: unknown;
    tool_result: {
        result_type: "success" | "failure" | "denied" | "error";
        text_result_for_llm: string;
    }
}

postToolUseFailure / PostToolUseFailure

          **entrée camelCase :**
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    toolName: string;
    toolArgs: unknown;
    error: string;
}
          **
          VS Code entrée compatible :**
{
    hook_event_name: "PostToolUseFailure";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    tool_name: string;
    tool_input: unknown;
    error: string;
}

agentStop / Stop

          **entrée camelCase :**
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    transcriptPath: string;
    stopReason: "end_turn";
}
          **
          VS Code entrée compatible :**
{
    hook_event_name: "Stop";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    transcript_path: string;
    stop_reason: "end_turn";
}

subagentStart

          **Entrée :**
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    transcriptPath: string;
    agentName: string;
    agentDisplayName?: string;
    agentDescription?: string;
}

subagentStop / SubagentStop

          **entrée camelCase :**
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    transcriptPath: string;
    agentName: string;
    agentDisplayName?: string;
    stopReason: "end_turn";
}
          **
          VS Code entrée compatible :**
{
    hook_event_name: "SubagentStop";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    transcript_path: string;
    agent_name: string;
    agent_display_name?: string;
    stop_reason: "end_turn";
}

errorOccurred / ErrorOccurred

          **entrée camelCase :**
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    error: {
        message: string;
        name: string;
        stack?: string;
    };
    errorContext: "model_call" | "tool_execution" | "system" | "user_input";
    recoverable: boolean;
}
          **
          VS Code entrée compatible :**
{
    hook_event_name: "ErrorOccurred";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    error: {
        message: string;
        name: string;
        stack?: string;
    };
    error_context: "model_call" | "tool_execution" | "system" | "user_input";
    recoverable: boolean;
}

preCompact / PreCompact

          **entrée camelCase :**
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    transcriptPath: string;
    trigger: "manual" | "auto";
    customInstructions: string;
}
          **
          VS Code entrée compatible :**
{
    hook_event_name: "PreCompact";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    transcript_path: string;
    trigger: "manual" | "auto";
    custom_instructions: string;
}

          `preToolUse` contrôle de décision

Le preToolUse hook peut contrôler l’exécution de l’outil en écrivant un objet JSON dans stdout (crochets de commande) ou en le retournant dans le corps de la réponse (crochets HTTP).

ChampValeursDescription
permissionDecision
          `"allow"`
          `"deny"`
          `"ask"`
         | Indique si l’outil s’exécute. La sortie vide utilise le comportement par défaut. |

| permissionDecisionReason | ficelle | Raison indiquée à l’agent. Recommandé lorsque la décision est "deny" ou "ask". | | modifiedArgs | unknown | Remplace la totalité de l’entrée de l’outil avant l’exécution. Valide uniquement quand permissionDecision n’est pas "deny" ou "ask". | | additionalContext | ficelle | Mis en file d’attente en tant que contexte pour le prochain tour du modèle. Valide uniquement quand permissionDecision n’est pas "deny" ou "ask". |

Remarque

L’alias VS Code (PreToolUse) accepte également les éléments imbriqués hookSpecificOutput.{permissionDecision, permissionDecisionReason, updatedInput, additionalContext}. updatedInput est normalisé à modifiedArgs. Les champs de niveau supérieur sont acceptés comme solution de repli.

          `agentStop`
           / 
          `subagentStop` contrôle de décision
ChampValeursDescription
decision
          `"block"`, `"allow"` | 
          `"block"` oblige un autre agent à réagir en utilisant `reason` comme invite. |

| reason | ficelle | Invite pour le tour suivant lorsque decision est "block". |

          `permissionRequest` contrôle de décision

Le permissionRequest crochet se déclenche lorsqu’une boîte de dialogue d’autorisation au niveau de l’outil est sur le point d’être affichée. Elle se déclenche après que les vérifications de permissions basées sur des règles ne trouvent aucune règle d'autorisation ou de refus correspondante. Utilisez-le pour approuver ou refuser des appels d’outils par programmation, particulièrement utiles en mode canal (-p) et environnements CI où aucune invite interactive n’est disponible.

          **Matcher :** Expression régulière facultative testée par rapport à `toolName`. Lorsqu’il est défini, le hook se déclenche uniquement pour les noms d’outils correspondants.

Sortie json vers stdout pour contrôler la décision d’autorisation :

ChampValeursDescription
behavior
          `"allow"`, `"deny"` | Spécifie s’il convient d’autoriser ou de refuser l’appel de l’outil. |

| message | ficelle | Motif transmis au GML en cas de refus. | | interrupt | booléen | Lorsque true est combiné à "deny", l’agent est entièrement arrêté. |

Retourne une sortie vide ou {} afin de revenir au comportement par défaut (affichage de la boîte de dialogue utilisateur ou refus en mode pipe). Pour les crochets de commande, le code 2 de sortie est traité comme un refus ; le code JSON stdout (le cas échéant) est fusionné {"behavior":"deny"}avec , et stderr est ignoré.

          `notification` crochet

Le notification hook se déclenche de façon asynchrone lorsque l’interface CLI émet une notification système. Ces hooks fonctionnent selon un modèle « fire-and-forget » : ils ne bloquent jamais la session, et toute erreur est journalisée puis ignorée.

          **Entrée :**
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    hook_event_name: "Notification";
    message: string;           // Human-readable notification text
    title?: string;            // Short title (e.g., "Permission needed", "Shell completed")
    notification_type: string; // One of the types listed below
}
          **Types de notification :**
TypeQuand il se déclenche
shell_completedUne commande d’interpréteur exécutée en arrière-plan (asynchrone) arrive à son terme.
shell_detached_completedUne session shell détachée se termine
agent_completedUne sous-valeur en arrière-plan se termine (terminée ou ayant échoué)
agent_idleUn agent en arrière-plan conclut un cycle et passe en état inactif (en attente de write_agent).
permission_promptL’agent demande l’autorisation d’exécuter un outil
elicitation_dialogL’agent demande des informations supplémentaires à l’utilisateur
          **Output:**
{
    additionalContext?: string; // Injected into the session as a user message
}

Si additionalContext est retourné, le texte est injecté dans la session en tant que message utilisateur préfixé. Cela peut déclencher un traitement supplémentaire de l'agent si la session est inutilisée. Renvoyer {} ou vider la sortie pour n’effectuer aucune action.

          **Matcher :** Regex facultatif sur `notification_type`. Le modèle est ancré comme `^(?:pattern)$`. Omettre `matcher` pour recevoir tous les types de notifications.

Noms d’outils pour la correspondance de hooks

Nom de l’outilDescription
bashExécuter des commandes shell (Unix).
powershellExécuter des commandes shell (Windows).
viewLire le contenu du fichier.
editModifiez le contenu du fichier.
createCréez des fichiers.
globRecherchez des fichiers par modèle.
grepRechercher le contenu du fichier.
web_fetchRécupérer des pages web.
taskExécutez des tâches de sous-agent.

Si plusieurs hooks du même type sont configurés, ils s'exécutent dans l'ordre. Pour preToolUse, si un crochet retourne "deny", l’outil est bloqué. Les codes de sortie s’appliquent uniquement aux hooks de commande : pour les hooks HTTP, consultez la sémantique d’échec du hook HTTP. Pour les hooks de commande postToolUseFailure, une sortie avec le code 2 entraîne le renvoi de stderr comme indication de récupération pour l’assistant. Pour les crochets de commande permissionRequest, le code de sortie 2 est traité comme un refus ; le JSON stdout (le cas échéant) est fusionné avec {"behavior":"deny"}, et stderr est ignoré. Les échecs de hook (codes de sortie non nuls ou délais d’expiration) sont enregistrés et ignorés. Ils ne bloquent jamais l’exécution de l’agent.

Configuration du serveur MCP

Les serveurs MCP fournissent des outils supplémentaires à l’agent CLI. Configurer des serveurs persistants dans ~/.copilot/mcp-config.json. Permet --additional-mcp-config d’ajouter des serveurs pour une seule session.

          `copilot mcp` Sous-commande

Permet copilot mcp de gérer les configurations de serveur MCP à partir de la ligne de commande sans démarrer une session interactive.

Sous-commandeDescription
list [--json]Répertoriez tous les serveurs MCP configurés regroupés par source.
get <name> [--json]Afficher la configuration et les outils d’un serveur spécifique.
add <name>Ajoutez un serveur à la configuration utilisateur. Écrit dans ~/.copilot/mcp-config.json.
remove <name>Supprimez un serveur au niveau de l’utilisateur. Les serveurs d’espace de travail doivent être modifiés directement dans leurs fichiers de configuration.
          **
          `copilot mcp add` Options:**
ChoixDescription
-- <command> [args...]Commande et arguments pour les serveurs locaux (stdio).
--url <url>URL des serveurs distants.
--type <type>Type de transport : local, , stdio``httpou sse.
--env KEY=VALUEVariable d’environnement (réutilisable).
--header KEY=VALUEEn-tête HTTP pour les serveurs distants (reproductible).
--tools <tools>Filtre d’outil : "*" pour tous, une liste séparée par des virgules ou "" pour aucun.
--timeout <ms>Délai d’expiration en millisecondes.
--jsonAfficher la configuration ajoutée au format JSON.
--show-secretsAfficher les valeurs complètes de la variable d’environnement et de l’en-tête.
--config-dir <path>Chemin d’accès au répertoire de configuration.

Attention

          `--show-secrets` peut afficher les valeurs sensibles des variables d’environnement et des en-têtes dans votre terminal ou vos logs. Utilisez cette option uniquement dans les environnements approuvés et évitez de copier, coller ou capturer la sortie dans les journaux ou historiques partagés.

Types de transport

TypeDescriptionChamps obligatoires
local / stdioProcessus local de communication via stdin/stdout.
          `command`, `args` |

| http | Serveur distant utilisant le transport HTTP par diffusion en continu. | url | | sse | Un serveur distant utilisant le transport d'événements envoyés par le serveur. | url |

Champs de configuration de serveur local

ChampObligatoireDescription
commandOuiCommande pour démarrer le serveur.
argsOuiArguments de commande (tableau).
toolsOuiOutils à activer : ["*"] pour tous ou une liste de noms d’outils spécifiques.
envNonVariables d'environnement. Prend en charge l’expansion de $VAR, ${VAR} et de ${VAR:-default}.
cwdNonRépertoire de travail du serveur.
timeoutNonDélai d’expiration des appels de l’outil en millisecondes.
typeNon
          `"local"` ou `"stdio"`. Par défaut : `"local"`. |

Champs de configuration de serveur distant

ChampObligatoireDescription
typeOui
          `"http"` ou `"sse"`. |

| url | Oui | URL du serveur. | | tools | Oui | Outils à activer. | | headers | Non | En-têtes HTTP. Prend en charge l’expansion des variables. | | oauthClientId | Non | ID client OAuth statique (ignore l’inscription dynamique). | | oauthPublicClient | Non | Indique si le client OAuth est public. Par défaut : true. | | oidc | Non | Activez l’injection de jeton OIDC. Quand true, injecte une variable d’environnement GITHUB_COPILOT_OIDC_MCP_TOKEN (serveurs locaux) ou un Bearer``Authorization en-tête (serveurs distants). | | timeout | Non | Délai d’expiration des appels de l’outil en millisecondes. |

Réauthentification OAuth

Les serveurs MCP distants qui utilisent OAuth peuvent afficher un needs-auth état lorsqu’un jeton expire ou lorsqu’un autre compte est requis. Utilisez /mcp auth <server-name> pour déclencher un nouvel flux OAuth. Cela ouvre une invite d’authentification du navigateur, ce qui vous permet de vous connecter ou de changer de compte. Une fois le flux terminé, le serveur se reconnecte automatiquement.

Mappage de filtres

Contrôlez la façon dont la sortie de l’outil MCP est traitée à l’aide du champ dans la filterMapping configuration d’un serveur.

ModeDescription
noneAucun filtrage.
markdownFormater la sortie en Markdown.
hidden_charactersSupprimez les caractères masqués ou de contrôle. Default.

Serveurs MCP intégrés

L’interface CLI inclut des serveurs MCP intégrés disponibles sans configuration supplémentaire.

ServeurDescription
github-mcp-server
          GitHub Intégration de l’API : problèmes, demandes d’extraction, validations, recherche de code et GitHub Actions. |

| playwright | Automatisation du navigateur : naviguez, cliquez, tapez, capture d’écran et gestion des formulaires. | | fetch | Requêtes HTTP via l’outil fetch . | | time | Utilitaires de temps : get_current_time et convert_time. |

Permet --disable-builtin-mcps de désactiver tous les serveurs intégrés ou --disable-mcp-server SERVER-NAME de désactiver un serveur spécifique.

Nommage du serveur MCP

Les noms de serveur peuvent contenir tous les caractères imprimables, y compris les espaces, les caractères Unicode et la ponctuation. Les caractères de contrôle (U+0000-U+001F, U+007F) et l’accolade fermante (}) ne sont pas autorisés. Les noms de serveur sont utilisés comme préfixes pour les noms d’outils , par exemple, un serveur nommé my-server produit des noms d’outils comme my-server-fetch, et un serveur nommé My Server produit My Server-fetch.

Niveaux d’approbation du serveur MCP

Les serveurs MCP sont chargés à partir de plusieurs sources, chacun avec un niveau de confiance différent.

OrigineNiveau de confianceRévision requise
IntégréÉlevéNon
Référentiel (.github/mcp.json)MoyenneRecommandé
Espace de travail (.mcp.json)MoyenneRecommandé
Configuration utilisateur (~/.copilot/mcp-config.json)User-definedResponsabilité de l’utilisateur
Serveurs distantsFaibleToujours

Tous les appels d’outils MCP nécessitent une autorisation explicite. Cela s’applique même aux opérations en lecture seule sur les services externes.

Liste d'autorisation MCP d'entreprise

          GitHub Enterprise les organisations peuvent appliquer une liste verte de serveurs MCP autorisés. Lorsqu’elle est active, l’interface CLI évalue chaque serveur non par défaut par rapport à la stratégie d’entreprise avant de se connecter.

Lorsqu’une GitHub Enterprise stratégie de registre est détectée (ou que l’indicateur MCP_ENTERPRISE_ALLOWLIST de fonctionnalité expérimentale est activé), l’interface CLI :

  1. Calcule une empreinte digitale pour chaque serveur non par défaut configuré en fonction de sa commande, de ses arguments et de son URL distante.
  2. Envoie les empreintes digitales au point de terminaison d'évaluation de la liste d'autorisation de l'entreprise.
  3. Autorise uniquement les serveurs dont les empreintes digitales sont approuvées ; tous les autres sont bloqués avec un message nommant l’entreprise.

Cette vérification échoue : si le point de terminaison d’évaluation est inaccessible ou retourne une erreur, les serveurs non par défaut sont bloqués jusqu’à ce que la stratégie puisse être vérifiée.

Lorsqu’un serveur est bloqué par une liste d’autorisation d’entreprise, le CLI affiche :

MCP server "SERVER-NAME" was blocked by your enterprise "ENTERPRISE-NAME".
Contact your enterprise administrator to add this server to the allowlist.

Les serveurs par défaut intégrés sont toujours exemptés de l'application des règles de la liste de permis.

Migration à partir de .vscode/mcp.json

Si votre projet utilise .vscode/mcp.json (format de configuration MCP de VS Code), migrez vers .mcp.jsonCLI GitHub Copilot . La migration remapise la servers clé sur mcpServers.

          **Coquilles POSIX (bash, zsh, poisson, etc.) :**
jq '{mcpServers: .servers}' .vscode/mcp.json > .mcp.json

Nécessite jq.

          **PowerShell** :
pwsh -NoProfile -Command "`$json = Get-Content '.vscode/mcp.json' -Raw | ConvertFrom-Json; `$content = ([pscustomobject]@{ mcpServers = `$json.servers } | ConvertTo-Json -Depth 100); [System.IO.File]::WriteAllText('.mcp.json', `$content, (New-Object System.Text.UTF8Encoding `$false))"

Sur Windows, remplacez pwsh par powershell si vous utilisez Windows PowerShell au lieu de PowerShell Core.

Informations de référence sur les compétences

Les compétences sont des fichiers Markdown qui étendent ce que l’interface CLI peut faire. Chaque compétence se trouve dans son propre répertoire contenant un SKILL.md fichier. Lorsqu’elle est appelée (via /SKILL-NAME ou automatiquement par l’agent), le contenu de la compétence est injecté dans la conversation.

Champs de frontmatter des compétences

ChampTypeObligatoireDescription
nameficelleOuiIdentificateur unique de la compétence. Lettres, chiffres et traits d’union uniquement. 64 caractères maximum.
descriptionficelleOuiQue fait la compétence et quand l’utiliser. Nombre maximal de 1024 caractères.
allowed-toolschaîne ou chaîne[]NonListe séparée par des virgules ou tableau YAML d’outils qui sont automatiquement autorisés lorsque la compétence est active. Utiliser "*" pour tous les outils.
user-invocablebooléenNonIndique si les utilisateurs peuvent appeler la compétence avec /SKILL-NAME. Par défaut : true.
disable-model-invocationbooléenNonEmpêcher l'agent d'activer automatiquement cette fonctionnalité. Par défaut : false.

Emplacements des compétences

Les compétences sont chargées depuis ces emplacements par ordre de priorité (la première trouvée l’emporte en cas de noms en double).

LieuÉtendueDescription
.github/skills/ProjetCompétences spécifiques au projet
.agents/skills/ProjetAutre emplacement du projet.
.claude/skills/ProjetEmplacement compatible avec Claude.
Parent .github/skills/InheritedPrise en charge du répertoire parent d’un monorepo.
~/.copilot/skills/PersonnelCompétences personnelles pour tous les projets.
~/.agents/skills/PersonnelCompétences de l’agent partagées entre tous les projets.
~/.claude/skills/PersonnelEmplacement personnel compatible avec Claude.
Répertoires de plug-inPlug-inCompétences des plug-ins installés.
COPILOT_SKILLS_DIRSPersonnaliséeRépertoires supplémentaires (séparés par des virgules).
(groupé avec l’Interface en Ligne de Commande)IntégréCompétences fournies avec l’interface CLI. Priorité la plus basse : substituable par n’importe quelle autre source.

Commandes (autre format de compétence)

Les commandes sont une alternative aux compétences stockées en tant que fichiers individuels .md dans .claude/commands/. Le nom de la commande est dérivé du nom de fichier. Les fichiers de commande utilisent un format simplifié (aucun champ name requis) et prennent en charge description, allowed-tools et disable-model-invocation. Les commandes ont une priorité inférieure à celle des compétences portant le même nom.

Référence des assistants personnalisés

Les agents personnalisés sont des agents IA spécialisés définis dans les fichiers Markdown. Le nom de fichier (moins l’extension) devient l’ID de l’agent. Utilisez .agent.md ou .md comme extension de fichier.

Agents intégrés

AgentModèle par défautDescription
code-reviewclaude-sonnet-4.5Revue de code à fort rapport signal/bruit. Analyse les différences pour les bogues, les problèmes de sécurité et les erreurs logiques.
configure-copilotvarieSous-agent intégré pour la gestion Copilot pour CLI de la configuration via le langage naturel : ajout de serveurs MCP, installation d’agents et gestion des compétences. Disponible uniquement en mode expérimental.
exploreclaude-haiku-4.5Exploration de base de code rapide. Recherche des fichiers, lit le code et répond aux questions. Retourne des réponses ciblées inférieures à 300 mots. Peut être exécuté en parallèle en toute sécurité.
general-purposeclaude-sonnet-4.5Agent de capacité complète pour les tâches multi-étapes complexes. S’exécute dans une fenêtre contextuelle distincte.
researchclaude-sonnet-4.6Agent de recherche approfondie. Génère un rapport basé sur des informations dans votre base de code, dans des référentiels pertinents et sur le web.
rubber-duckmodèle complémentaireUtilisez un modèle complémentaire pour fournir une critique constructive des propositions, des conceptions, des implémentations ou des tests. Identifie les points faibles et suggère des améliorations. Lors de l’utilisation de Claude, il utilise un modèle GPT ; lors de l’utilisation de GPT, il utilise Claude Opus 4.7. N’apporte jamais de modifications directes au code. Disponible uniquement en mode expérimental.
taskclaude-haiku-4.5Exécution de commandes (tests, builds, lints). Retourne un résumé bref en cas de réussite, et la sortie complète en cas d’échec.

Champs frontmatter personnalisés d’assistant

ChampTypeObligatoireDescription
descriptionficelleOuiDescription affichée dans la liste des agents et l'outil task.
inferbooléenNonAutoriser la délégation automatique par l’agent principal. Par défaut : true.
mcp-serversobjetNonServeurs MCP à connecter. Utilise le même schéma que ~/.copilot/mcp-config.json.
modelficelleNonModèle IA pour cet agent. Lorsqu’il n’est pas défini, hérite du modèle de l’assistant parent. Lorsque le modèle de session est défini Auto sur (serveur sélectionné), les sous-éléments héritent toujours du modèle de session résolu, quel que soit ce champ.
nameficelleNonNom complet. La valeur par défaut est le nom de fichier.
toolschaîne de caractères[]NonOutils disponibles pour l’agent. Valeur par défaut : ["*"] (tous les outils).

Emplacements d’agent personnalisés

ÉtendueLieu
Projet
          `.github/agents/` ou `.claude/agents/` |

| Utilisateur | ~/.copilot/agents/ ou ~/.claude/agents/ | | Plug-in | <plugin>/agents/ |

les agents de niveau Project sont prioritaires sur les agents au niveau de l’utilisateur. Les agents de plug-in ont la priorité la plus basse.

Limites des sous-agents

L'interface CLI impose des limites de profondeur et de concurrence pour empêcher la génération incontrôlée d’agents.

LimitePar défautVariable d'environnement
Profondeur maximale6COPILOT_SUBAGENT_MAX_DEPTH
Nombre maximal simultané32COPILOT_SUBAGENT_MAX_CONCURRENT
          **La profondeur** compte le nombre d’agents imbriqués entre eux. Lorsque la limite de profondeur est atteinte, l’agent le plus interne ne peut pas générer de sous-agents supplémentaires. 
          **La concurrence** correspond au nombre de sous-agents exécutés simultanément dans l’ensemble de l’arborescence de session. Lorsque la limite est atteinte, les nouvelles demandes de sous-agent sont rejetées jusqu'à ce qu'un agent actif ait terminé son opération. Les valeurs sont limitées entre `1` et `256`.

Réponses d’approbation des autorisations

Lorsque l’interface CLI demande l’autorisation d’exécuter une opération, vous pouvez répondre avec les clés suivantes.

CléRésultat
yAutorisez cette requête spécifique une seule fois.
nRefuser cette demande spécifique une seule fois.
!Autorisez toutes les demandes similaires pour le reste de la session.
#Refuser toutes les demandes similaires pour le reste de la session.
?Affichez des informations détaillées sur la demande.

Les approbations de session sont réinitialisées lorsque vous exécutez ou démarrez /clear une nouvelle session.

Supervision OpenTelemetry

          Copilot pour CLI peut exporter des traces et des métriques via [OpenTelemetry (OTel](https://opentelemetry.io/) ), ce qui vous donne une visibilité sur les interactions de l’agent, les appels LLM, les exécutions d’outils et l’utilisation des jetons. Tous les noms et attributs de signal suivent les [conventions sémantiques OTel GenAI](https://github.com/open-telemetry/semantic-conventions/blob/main/docs/gen-ai/).

OTel est désactivé par défaut avec une surcharge nulle. Elle s’active quand l’une des conditions suivantes est remplie :

  • COPILOT_OTEL_ENABLED=true
  • OTEL_EXPORTER_OTLP_ENDPOINT est défini
  • COPILOT_OTEL_FILE_EXPORTER_PATH est défini

Variables d’environnement OTel

VariablePar défautDescription
COPILOT_OTEL_ENABLEDfalseActivez explicitement OTel. Non obligatoire si OTEL_EXPORTER_OTLP_ENDPOINT est défini.
OTEL_EXPORTER_OTLP_ENDPOINTURL du point de terminaison OTLP. La définition de ce paramètre active automatiquement OTel.
COPILOT_OTEL_EXPORTER_TYPEotlp-httpType d’exportateur : otlp-http ou file. Sélectionne file automatiquement quand COPILOT_OTEL_FILE_EXPORTER_PATH est défini.
OTEL_SERVICE_NAMEgithub-copilotNom du service dans les attributs de ressource.
OTEL_RESOURCE_ATTRIBUTESAttributs de ressource supplémentaires en tant que paires séparées par key=value des virgules. Utilisez l’encodage de pourcentage pour les caractères spéciaux.
OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENTfalseCapturez le contenu complet de l’invite et de la réponse. Voir capture de contenu.
OTEL_LOG_LEVELNiveau du journal de diagnostic OTel : NONE, ERROR``WARN``INFO``DEBUG``VERBOSE``ALL.
COPILOT_OTEL_FILE_EXPORTER_PATHÉcrivez tous les signaux dans ce fichier sous forme de lignes JSON. La définition de ce paramètre active automatiquement OTel.
COPILOT_OTEL_SOURCE_NAMEgithub.copilotNom de l’étendue d’instrumentation pour le traceur et le compteur.
OTEL_EXPORTER_OTLP_HEADERSEn-têtes d’authentification pour l’exportateur OTLP (par exemple, Authorization=Bearer token).

Traces

Le runtime émet un arbre de spans hiérarchiques pour chaque interaction de l’agent. Chaque arborescence contient un span racine invoke_agent, avec des spans enfants chat et execute_tool.

          `invoke_agent` attributs d’étendue

Encapsule l'intégralité de l'appel de l'agent : appels LLM et exécutions d'outils pour chaque message utilisateur.

  • **Les sessions de niveau supérieur **utilisent le type d’étendue CLIENT (appel de service distant) avec server.address et server.port.
  • Les appels de sous-agents (par exemple, explore, task) utilisent le type d’étendue INTERNAL (en cours de traitement) sans attributs de serveur.
CaractéristiqueDescriptionType d’étendue
gen_ai.operation.nameinvoke_agentLes deux
gen_ai.provider.nameFournisseur (par exemple, , github``anthropic)Les deux
gen_ai.agent.idIdentificateur de sessionLes deux
gen_ai.agent.nameNom de l’agent (le cas échéant)Les deux
gen_ai.agent.descriptionDescription de l’agent (le cas échéant)Les deux
gen_ai.agent.versionVersion du runtimeLes deux
gen_ai.conversation.idIdentificateur de sessionLes deux
gen_ai.request.modelModèle demandéLes deux
gen_ai.response.finish_reasons
          `["stop"]` ou `["error"]` | Les deux |

| gen_ai.usage.input_tokens | Nombre total de jetons d’entrée (toutes les itérations) | Les deux | | gen_ai.usage.output_tokens | Nombre total de jetons de sortie (tous les tours) | Les deux | | gen_ai.usage.cache_read.input_tokens | Lecture des jetons d’entrée mis en cache | Les deux | | gen_ai.usage.cache_creation.input_tokens | Jetons d’entrée créés et mis en cache | Les deux | | github.copilot.turn_count | Nombre d’allers-retours LLM | Les deux | | github.copilot.cost | Coût monétaire | Les deux | | github.copilot.aiu | Unités IA consommées | Les deux | | server.address | Nom d’hôte du serveur | CLIENT uniquement | | server.port | Port du serveur | CLIENT uniquement | | error.type | Nom de la classe d’erreur (en cas d’erreur) | Les deux | | gen_ai.input.messages | Messages d’entrée complets au format JSON (capture de contenu uniquement) | Les deux | | gen_ai.output.messages | Messages de sortie complets au format JSON (capture de contenu uniquement) | Les deux | | gen_ai.system_instructions | Contenu de commande système en tant que JSON (capture de contenu uniquement) | Les deux | | gen_ai.tool.definitions | Schémas d’outil en tant que JSON (capture de contenu uniquement) | Les deux |

          `chat` attributs d’étendue

Un span par requête LLM. Catégorie d’étendue : CLIENT.

CaractéristiqueDescription
gen_ai.operation.namechat
gen_ai.provider.nameNom du fournisseur
gen_ai.request.modelModèle demandé
gen_ai.conversation.idIdentificateur de session
gen_ai.response.idID de réponse
gen_ai.response.modelModèle résolu
gen_ai.response.finish_reasonsRaisons d'arrêt
gen_ai.usage.input_tokensJetons d’entrée pour ce tour
gen_ai.usage.output_tokensJetons de sortie pour ce tour
gen_ai.usage.cache_read.input_tokensLecture des jetons mis en cache
gen_ai.usage.cache_creation.input_tokensJetons créés en cache
github.copilot.costCoût du tour
github.copilot.aiuUnités d’IA consommées pour ce tour
github.copilot.server_durationDurée côté serveur
github.copilot.initiatorInitiateur de demande
github.copilot.turn_idIdentifiant du tour
github.copilot.interaction_idIdentificateur d’interaction
github.copilot.time_to_first_chunkDurée de la première diffusion en continu, en secondes (diffusion en continu uniquement)
server.addressNom d’hôte du serveur
server.portPort du serveur
error.typeNom de la classe d’erreur (en cas d’erreur)
gen_ai.input.messagesMessages d’invite complets au format JSON (capture de contenu uniquement)
gen_ai.output.messagesMessages de réponse complets au format JSON (capture de contenu uniquement)
gen_ai.system_instructionsContenu de commande système en tant que JSON (capture de contenu uniquement)

          `execute_tool` attributs d’étendue

Un span par appel d’outil. Catégorie d’étendue : INTERNAL.

CaractéristiqueDescription
gen_ai.operation.nameexecute_tool
gen_ai.provider.nameNom du fournisseur (le cas échéant)
gen_ai.tool.nameNom de l’outil (par exemple, readFile)
gen_ai.tool.typefunction
gen_ai.tool.call.idIdentificateur d’appel de l’outil
gen_ai.tool.descriptionDescription de l’outil
error.typeNom de la classe d’erreur (en cas d’erreur)
gen_ai.tool.call.argumentsArguments d’entrée d’outil en tant que JSON (capture de contenu uniquement)
gen_ai.tool.call.resultSortie de l’outil au format JSON (capture de contenu uniquement)

Metrics

Métriques de convention GenAI

Unité de mesureTypeUnitéDescription
gen_ai.client.operation.durationHistogrammesDurée d’appel de l’API LLM et de l'invocation de l’agent
gen_ai.client.token.usageHistogrammetokensNombre de jetons par type (input/output)
gen_ai.client.operation.time_to_first_chunkHistogrammesTemps de réception du premier segment de diffusion en continu
gen_ai.client.operation.time_per_output_chunkHistogrammesLatence entre segments après le premier segment

Métriques spécifiques au fournisseur

Unité de mesureTypeUnitéDescription
github.copilot.tool.call.countCompteurcallsAppels d’outils par gen_ai.tool.name et success
github.copilot.tool.call.durationHistogrammesLatence d’exécution des outils par gen_ai.tool.name
github.copilot.agent.turn.countHistogrammeTourneAllers-retours LLM par invocation d’agent

Événements de span

Événements du cycle de vie enregistrés sur le span actif chat ou invoke_agent.

ÉvénementDescriptionAttributs clés
github.copilot.hook.startUn hook a commencé à s’exécuter
          `github.copilot.hook.type`, `github.copilot.hook.invocation_id` |

| github.copilot.hook.end | Un hook a été exécuté avec succès | github.copilot.hook.type, github.copilot.hook.invocation_id | | github.copilot.hook.error | Échec d’un hook | github.copilot.hook.type github.copilot.hook.invocation_id github.copilot.hook.error_message | | github.copilot.session.truncation | L’historique des conversations a été tronqué | github.copilot.token_limit, github.copilot.pre_tokens, github.copilot.post_tokens``github.copilot.pre_messages, github.copilot.post_messages, github.copilot.tokens_removed, github.copilot.messages_removed, github.copilot.performed_by | | github.copilot.session.compaction_start | Le compactage de l’histoire a commencé | Aucun | | github.copilot.session.compaction_complete | Compactage de l’historique terminé | github.copilot.success, , github.copilot.pre_tokens, github.copilot.post_tokens``github.copilot.tokens_removed, , github.copilot.messages_removed``github.copilot.message(capture de contenu uniquement) | | github.copilot.skill.invoked | Une fonctionnalité a été activée | github.copilot.skill.name github.copilot.skill.path github.copilot.skill.plugin_name github.copilot.skill.plugin_version | | github.copilot.session.shutdown | La session s’arrête | github.copilot.shutdown_type, github.copilot.total_premium_requests, , github.copilot.lines_added, github.copilot.lines_removed, github.copilot.files_modified_count | | github.copilot.session.abort | L’utilisateur a annulé l’opération actuelle | github.copilot.abort_reason | | exception | Erreur de session | github.copilot.error_type github.copilot.error_status_code github.copilot.error_provider_call_id |

Attributs des ressources

Tous les signaux portent ces attributs de ressource.

CaractéristiqueValeur
service.name
          `github-copilot` (configurable par `OTEL_SERVICE_NAME`) |

| service.version | Version du runtime |

Capture de contenu

Par défaut, aucun contenu d’invite, aucune réponse ni argument d’outil ne sont capturés : seules des métadonnées telles que les noms de modèles, le nombre de jetons et les durées sont enregistrées. Pour capturer du contenu complet, définissez OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true.

Avertissement

La capture de contenu peut inclure des informations sensibles telles que du code, du contenu de fichier et des invites utilisateur. Activez-le uniquement dans les environnements approuvés.

Lorsque la capture de contenu est activée, les attributs suivants sont renseignés.

CaractéristiqueContenu
gen_ai.input.messagesMessages d’invite complets (JSON)
gen_ai.output.messagesMessages de réponse complets (JSON)
gen_ai.system_instructionsContenu de l’invite système (JSON)
gen_ai.tool.definitionsSchémas d’outil (JSON)
gen_ai.tool.call.argumentsArguments d’entrée de l’outil
gen_ai.tool.call.resultSortie de l’outil

Lectures complémentaires