Skip to main content

Référence des commandes CLI de GitHub Copilot

Recherchez les commandes et les raccourcis clavier pour vous aider à utiliser Copilot 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, et permissions.
copilot initInitialisez Copilot instructions personnalisées pour ce référentiel.
copilot updateTéléchargez et installez la dernière version.
copilot versionAffichez les informations de version et recherchez les mises à jour.
copilot loginAuthentifiez-vous avec Copilot via le flux de dispositif OAuth. Accepte --host HOST de spécifier l’URL de l’hôte GitHub (par défaut : https://github.com).
copilot logoutDéconnectez-vous de GitHub et supprimez les informations d’identification stockées.
copilot pluginGérez les plug-ins et les places de marché de plug-ins.

Raccourcis globaux dans l’interface interactive

ShortcutObjectif
@ FILENAMEIncluez le contenu du fichier dans le contexte.
          <kbd>Ctrl</kbd>+<kbd>X</kbd> puis `/`  | Une fois que vous avez commencé à taper une saisie, cela vous permet d’exécuter une commande de barre oblique (par exemple, si vous souhaitez modifier le modèle sans avoir à réécrire votre saisie. |

| Échap | Annulez l’opération actuelle. | | ! COMMAND | Exécutez une commande dans votre interpréteur de commandes local, en contournant Copilot. | | Ctrl+C | Annuler l’opération / effacer la saisie. Appuyez deux fois pour quitter. | | Ctrl+D | Arrêt. | | Ctrl+L | Effacez l’écran. | | Maj+Tab | Alternez 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 de l’invite, cela développe les éléments récents dans la chronologie de réponse de Copilot pour afficher plus de détails.
ctrl+eBien qu’il n’y ait rien dans l’entrée d’invite, cela développe tous les éléments présents dans l’historique des réponses de Copilot.
ctrl+tDévelopper/réduire l’affichage du raisonnement dans les réponses.
ShortcutObjectif
          <kbd>Ctrl</kbd>+<kbd>Un</kbd>        | Passez au début de la ligne (lors de la saisie). |

| Ctrl+B | Passez au caractère précédent. | | Ctrl+E | Passez à la fin de la ligne (lors de la saisie). | | Ctrl+F | Passez au caractère suivant. | | Ctrl+G | Modifiez la commande dans un éditeur externe. | | Ctrl+H | Supprimez le caractère précédent. | | Ctrl+K | Effacer du curseur à la fin de la ligne. Si le curseur se trouve à la fin de la ligne, supprimez le saut de ligne. | | Ctrl+U | Supprimer depuis le curseur jusqu'au début de la ligne. | | Ctrl+W | Supprimez le mot précédent. | | Accueil | Passez au début de la ligne actuelle. | | Fin | Déplacez-vous à la fin de la ligne actuelle. | | Ctrl+Début | Accédez au début du texte. | | Ctrl+Fin | Passez à la fin du texte. | | Meta+/ | Déplacez le curseur par un mot. | | / | Naviguez dans l’historique des commandes. |

Commandes de 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).
          `/allow-all`, `/yolo`                               | Activez toutes les autorisations (outils, chemins et URL). |

| /clear, /new | Effacez l’historique des conversations. | | /compact | Résumez l’historique des conversations pour réduire l’utilisation de la fenêtre de contexte. | | /context | Afficher l’utilisation et la visualisation des jetons de fenêtre de contexte. | | /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. | | /diff | Passez en revue les modifications apportées dans le répertoire actif. | | /exit, /quit | Quittez l’interface CLI. | | /experimental [on\|off] | Activer/désactiver les fonctionnalités expérimentales. | | /feedback | 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. | | /init | Initialisez Copilot instructions personnalisées et fonctionnalités agentiques pour ce référentiel. | | /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] [SERVER-NAME] | Gérez la configuration du serveur MCP. | | /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. | | /rename NAME | Renommez la session active (alias pour /session rename). | | /reset-allowed-tools | Réinitialisez la liste des outils autorisés. | | /resume [SESSION-ID] | Basculez vers une autre session en choisissant dans une liste (spécifiez éventuellement un ID de session). | | /review [PROMPT] | Exécutez l’agent de révision de code pour analyser les modifications. | | /session [checkpoints [n]\|files\|plan\|rename NAME] | Afficher les informations de session et un résumé de l’espace de travail. Utilisez les sous-commandes pour plus d’informations. | | /share [file\|gist] [PATH] | Partagez la session sur un fichier Markdown ou un gist GitHub. | | /skills [list\|info\|add\|remove\|reload] [ARGS...] | Gérez les compétences afin d'améliorer les capacités. | | /terminal-setup | Configurez le terminal pour la prise en charge des entrées multilignes (Maj+Entrée et Ctrl+Entrée). | | /theme [show\|set\|list] [auto\|THEME-ID] | Affichez ou configurez le thème du terminal. | | /usage | Affichez les métriques et statistiques d’utilisation de session. | | /user [show\|list\|switch] | Gérez l’utilisateur actuel GitHub. |

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
--acpDémarrez le serveur de protocole client agent.
--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 permettant d’activer le serveur GitHub 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 le serveur GitHub 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 @). Augmente la configuration à partir de ~/.copilot/mcp-config.json. Remplace toute configuration de serveur MCP installée avec le même nom.
--agent=AGENTSpécifiez un assistant personnalisé à utiliser.
--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.
--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.
--alt-screen=VALUEUtilisez la mémoire tampon d’écran de remplacement du terminal (on ou off).
--autopilotActivez la continuité de l'autopilotage en mode invite. 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.
--bannerAffichez 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).
--continueReprendre la session la plus récente.
--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).
--disable-parallel-tools-executionDésactivez l’exécution parallèle d’outils (LLM peut toujours effectuer des appels d’outils parallèles, mais ils seront exécutés séquentiellement).
--disallow-temp-dirEmpêchez l’accès automatique au répertoire temporaire système.
--enable-all-github-mcp-toolsActivez tous 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.
--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`, `--help`                     | Afficher l'aide. |

| -i PROMPT, --interactive=PROMPT | Démarrez une session interactive et exécutez automatiquement cette invite. | | --log-dir=DIRECTORY | Définissez le répertoire du fichier journal (par défaut : ~/.copilot/logs/). | | --log-level=LEVEL | Définissez le niveau du journal (choix : none, error, warning, info, debug, all, default). | | --max-autopilot-continues=COUNT | Nombre maximal de messages de continuation en mode Autopilot (valeur par défaut : illimitée). Consultez « Autoriser GitHub Copilot CLI à fonctionner de manière autonome ». | | --model=MODEL | Définissez le modèle IA que vous souhaitez utiliser. | | --no-alt-screen | Désactivez la mémoire tampon d’écran de remplacement du terminal. | | --no-ask-user | Désactivez l’outil (l’agent ask_user fonctionne de manière autonome sans poser de questions). | | --no-auto-update | Désactivez le téléchargement automatique des mises à jour CLI. | | --no-bash-env | Désactivez la prise en charge des shells bash BASH_ENV. | | --no-color | Désactivez toutes les sorties de couleur. | | --no-custom-instructions | Désactivez le chargement d'instructions personnalisées de AGENTS.md et des fichiers associés. | | --no-experimental | Désactivez les fonctionnalités expérimentales. | | --output-format=FORMAT | Format peut être text (par défaut) ou json (génère JSONL : un objet JSON par ligne). | | -p PROMPT, --prompt=PROMPT | Exécutez une commande par programmation (se termine après achèvement). | | --plain-diff | Dé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). | | --resume=SESSION-ID | Reprenez une session interactive précédente en choisissant dans une liste (spécifiez éventuellement un ID de session). | | -s, --silent | Affichez uniquement la réponse de l’agent (sans statistiques d’utilisation), utile pour l’écriture de scripts avec -p. | | --screen-reader | Activez les optimisations du lecteur d’écran. | | --secret-env-vars=VAR ... | Variable d’environnement dont vous souhaitez appliquer la valeur dans la sortie. Pour plusieurs variables, utilisez une liste séparée par des virgules entre guillemets. Les valeurs dans les variables d’environnement et COPILOT_GITHUB_TOKEN de variables d’environnement GITHUB_TOKEN sont modifiées par défaut. | | --share=PATH | Partagez 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-gist | Partagez une session sur un secret GitHub gist après la fin d’une session programmatique. | | --stream=MODE | Activer ou désactiver le mode de diffusion en continu (choix de mode : on ou off). | | -v, --version | Afficher les informations de version. | | --yolo | Activez toutes les autorisations (équivalentes à --allow-all). |

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

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
shellExécution de commandes shell
          `shell(git push)`, , `shell(git:*)``shell` |

| write | Création ou modification de fichier | write, write(src/*.ts) | | read | Lectures de fichiers ou de répertoires | read, read(.env) | | SERVER-NAME | Appel de l’outil serveur MCP | MyMCP(create_issue), MyMCP | | url | Accès URL via web-fetch ou via le shell | url(github.com), url(https://*.api.com) | | memory | Stockage des faits dans la mémoire de l’agent | memory |

Pour shell les règles, le :* suffixe correspond à la tige de 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
COPILOT_MODELDéfinissez le modèle IA.
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_CUSTOM_INSTRUCTIONS_DIRSListe séparée par des virgules de répertoires supplémentaires pour obtenir des instructions personnalisées.
COPILOT_SKILLS_DIRSListe séparée par des virgules de répertoires supplémentaires pour les compétences.
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_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. | | GH_TOKEN | Jeton d’authentification. Est prioritaire sur GITHUB_TOKEN. | | GITHUB_TOKEN | Jeton d’authentification. | | USE_BUILTIN_RIPGREP | Définir à false, pour utiliser le ripgrep du système au lieu de la version groupée. | | PLAIN_DIFF | Définissez sur true pour désactiver le rendu des différences enrichies. | | COLORFGBG | Solution de repli pour la détection de terminal à arrière-plan clair/foncé. | | COPILOT_CLI_ENABLED_FEATURE_FLAGS | Liste séparée par des virgules des indicateurs de fonctionnalité à activer (par exemple). "SOME_FEATURE,SOME_OTHER_FEATURE" |

Paramètres du fichier de configuration

Les paramètres se déploient de l'utilisateur au référentiel puis au local, avec des étendues plus spécifiques remplaçant des étendues plus générales. Les indicateurs de ligne de commande et les variables d’environnement sont toujours prioritaires.

ÉtendueLieuObjectif
Utilisateur~/.copilot/config.jsonValeurs par défaut globales pour tous les référentiels. Utilisez la variable d’environnement COPILOT_HOME pour spécifier un autre chemin d’accès.
Référentiel.github/copilot/settings.jsonConfiguration du dépôt partagé (enregistrée dans le dépôt).
Local.github/copilot/settings.local.jsonRemplacements personnels (ajouter cela à .gitignore).

Paramètres utilisateur (~/.copilot/config.json)

CléTypePar défautDescription
allowed_urlsstring[][]URL ou domaines autorisés sans invite.
alt_screenbooleanfalseUtilisez la mémoire tampon d’écran de remplacement du terminal.
auto_updatebooleantrueTéléchargez automatiquement les mises à jour cli.
banner
          `"always"`
          \|
          `"once"`
          \|
          `"never"`
         | `"once"` | Fréquence d’affichage de bannière animée. |

| bash_env | boolean | false | Activez la BASH_ENV prise en charge des interpréteurs de commandes bash. | | beep | boolean | true | Émettez un bip sonore lorsque l'attention est nécessaire. | | compact_paste | boolean | true | Convertissez les collages de données volumineux en éléments compacts. | | custom_agents.default_local_only | boolean | false | Utilisez uniquement des agents personnalisés locaux. | | denied_urls | string[] | [] | URL ou domaines bloqués (précédence sur allowed_urls). | | experimental | boolean | false | Activer les fonctionnalités expérimentales. | | include_coauthor | boolean | true | Ajoutez une Co-authored-by bande-annonce aux validations Git effectuées par l’agent. | | companyAnnouncements | string[] | [] | Messages personnalisés affichés de manière aléatoire au démarrage. | | log_level | "none" | "error" | "warning" | "info" | "debug" | "all" | "default" | "default" | Niveau de verbosité de la journalisation. | | model | string | varies | Modèle IA à utiliser (voir la /model commande). | | powershell_flags | string[] | ["-NoProfile", "-NoLogo"] | Indicateurs passés à PowerShell (pwsh) au démarrage. Windows uniquement. | | reasoning_effort | "low" | "medium" | "high" | "xhigh" | "medium" | Niveau d’effort de raisonnement pour la pensée approfondie. Les niveaux supérieurs utilisent davantage de calcul. | | render_markdown | boolean | true | Affichez Markdown dans la sortie du terminal. | | screen_reader | boolean | false | Activez les optimisations du lecteur d’écran. | | stream | boolean | true | Activez les réponses de diffusion en continu. | | store_token_plaintext | boolean | false | Stockez les jetons d’authentification en texte clair dans le fichier config lorsqu’aucun trousseau système n’est disponible. | | streamer_mode | boolean | false | Masquer les noms de modèles d’aperçu et les informations sur le quota (utile lors de l’enregistrement). | | theme | "auto" | "dark" | "light" | "auto" | Thème de couleur du terminal. | | trusted_folders | string[] | [] | Dossiers ayant un accès aux fichiers pré-autorisé. | | update_terminal_title | boolean | true | Afficher l’intention actuelle dans le titre du terminal. |

Paramètres du référentiel (.github/copilot/settings.json)

Les paramètres du référentiel s’appliquent à tous ceux qui travaillent dans le référentiel. Seul un sous-ensemble de paramètres est pris en charge au niveau du référentiel. Les clés non prises en charge sont ignorées.

CléTypeComportement de la fusionDescription
companyAnnouncementsstring[]Remplacé : le référentiel est prioritaireMessages affichés de manière aléatoire au démarrage.
enabledPluginsRecord<string, boolean>Fusionné : le référentiel supplante l’utilisateur pour la même cléInstallation automatique du plug-in déclaratif.
extraKnownMarketplacesRecord<string, {...}>Fusionné : le référentiel supplante l’utilisateur pour la même cléLes places de marché de plug-in disponibles dans ce référentiel.
marketplacesRecord<string, {...}>Fusionné : le référentiel supplante l’utilisateur pour la même cléPlaces de marchés de plugins (déconseillées—utilisez extraKnownMarketplaces).

Paramètres locaux (.github/copilot/settings.local.json)

Créez .github/copilot/settings.local.json dans le référentiel pour les remplacements personnels qui ne doivent pas être validés. Ajoutez ce fichier à .gitignore.

Le fichier de configuration local utilise le même schéma que le fichier de configuration du référentiel (.github/copilot/settings.json) et est prioritaire sur celui-ci.

Informations de référence sur les hooks

Les hooks sont des commandes externes qui s’exécutent à des points de cycle de vie spécifiques pendant une session, ce qui permet 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.

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
      }
    ]
  }
}
TerrainTypeObligatoireDescription
type"command"OuiDoit être "command".
bashficelleL'un de bash/powershellCommande Shell pour Unix.
powershellficelleL'un de bash/powershellCommande Shell pour Windows.
cwdficelleNonRépertoire de travail de la commande (par rapport à la racine du référentiel ou absolu).
envobjetNonVariables d’environnement à définir (prend en charge l’expansion des variables).
timeoutSecnombreNonDélai d’expiration en secondes. Par défaut : 30.

Points d’accroche 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 slash.

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

Événements de hook

ÉvénementSe déclenche quandSortie traitée
sessionStartUne session nouvelle ou reprise commence.Non
sessionEndLa session se termine.Non
userPromptSubmittedL’utilisateur envoie une invite.Non
preToolUseAvant l’exécution de chaque outil.Oui : peut autoriser, refuser ou modifier.
postToolUseUne fois chaque outil terminé.Non
agentStopL’agent principal termine un tour.Oui : peut bloquer et forcer la continuation.
subagentStopUn sous-agent s'achève.Oui : peut bloquer et forcer la continuation.
errorOccurredUne erreur se produit pendant l’exécution.Non

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

TerrainValeursDescription
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. Obligatoire lorsque la décision est "deny". | | modifiedArgs | objet | Remplacez les arguments de l’outil à utiliser au lieu des arguments d’origine. |

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

| reason | ficelle | Demander le tour suivant quand decision est "block". |

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

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

TerrainObligatoireDescription
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 $VAR, ${VAR} et ${VAR:-default} expansion.
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

TerrainObligatoireDescription
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. | | timeout | Non | Délai d’expiration des appels de l’outil en millisecondes. |

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-serverGitHub Intégration de l’API : problèmes, pull requests, commits, recherche de code et GitHub Actions.
playwrightAutomatisation du navigateur : naviguez, cliquez, tapez, capture d’écran et gestion des formulaires.
fetchRequêtes HTTP via l’outil fetch .
timeUtilitaires 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.

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, .vscode/mcp.json)MoyenneRecommandé
Conteneur de développement (.devcontainer/devcontainer.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.

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 frontmatter de 'Skill'

TerrainTypeObligatoireDescription
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 à partir de ces emplacements dans l’ordre de priorité (les premières victoires trouvées pour les 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 de l’annuaire parent monorepo.
~/.copilot/skills/PersonnelCompétences personnelles pour tous les projets.
~/.claude/skills/PersonnelLieu 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).

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.

Informations de référence sur les agents 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.5Révision de code signal-à-bruit élevée. Analyse les différences pour les bogues, les problèmes de sécurité et les erreurs logiques.
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 s'exécuter en parallèle.
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.
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’agent

TerrainTypeObligatoireDescription
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’agent externe.
nameficelleNonNom d'affichage. 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 au niveau du projet sont prioritaires sur les agents au niveau de l’utilisateur. Les agents de plug-in ont la priorité la plus basse.

Réponses d’approbation d’autorisation

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.

FlagNiveauDescription
AUTOPILOT_MODEexperimentalMode d’opération autonome.
BACKGROUND_AGENTSstaffExécutez des agents en arrière-plan.
QUEUED_COMMANDSstaffCommandes en file pendant l’exécution de l’agent.
LSP_TOOLSonOutils du Language Server Protocol.
PLAN_COMMANDonMode de planification interactive.
AGENTIC_MEMORYonMémoire persistante entre les sessions.
CUSTOM_AGENTSonDéfinitions d’agent personnalisées.

Surveillance OpenTelemetry

Copilot CLI peut exporter des traces et des métriques via OpenTelemetry (OTel), 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.

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 invoke_agent segment racine, avec chat et execute_tool segments enfants.

          `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. Catégorie d’étendue : CLIENT.

CaractéristiqueDescription
gen_ai.operation.nameinvoke_agent
gen_ai.provider.nameFournisseur (par exemple, , github``anthropic)
gen_ai.agent.idIdentificateur de session
gen_ai.agent.nameNom de l’agent (sous-agents uniquement)
gen_ai.agent.descriptionDescription de l’agent (sous-agents uniquement)
gen_ai.agent.versionVersion du runtime
gen_ai.conversation.idIdentificateur de session
gen_ai.request.modelModèle demandé
gen_ai.response.modelModèle résolu
gen_ai.response.idID de la dernière réponse
gen_ai.response.finish_reasons
          `["stop"]` ou `["error"]` |

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

          `chat` attributs d’étendue

Une étendue 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 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 de tour
github.copilot.aiuUnités IA consommées ce tour-ci
github.copilot.server_durationDurée côté serveur
github.copilot.initiatorInitiateur de demande
github.copilot.turn_idIdentifiant de tour
github.copilot.interaction_idIdentificateur d’interaction
server.addressNom d’hôte du serveur
server.portPort du serveur
error.typeNom de la classe Error (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

Une étendue 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 Error (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.countCompteurappelsAppels 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 appel d’agent

Événements d’étendue

Événements de cycle de vie enregistrés sur le chat actif ou l’étendue invoke_agent.

ÉvénementDescriptionAttributs clés
github.copilot.session.truncationL’historique des conversations a été tronqué
          `github.copilot.token_limit`, `github.copilot.pre_tokens`, , `github.copilot.post_tokens`, `github.copilot.tokens_removed`, `github.copilot.messages_removed` |

| 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.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 les métadonnées telles que les noms de modèles, les nombres 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

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli)
    
  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-plugin-reference)
    
  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-programmatic-reference)