Commandes de ligne de commande
| Command | Objectif |
|---|---|
copilot | Lancez l’interface utilisateur interactive. |
copilot help [topic] | Affichez les informations d’aide. Les rubriques d’aide incluent : config, , commands``environment, logging, et permissions. |
copilot init | Initialisez Copilot instructions personnalisées pour ce référentiel. |
copilot update | Téléchargez et installez la dernière version. |
copilot version | Affichez les informations de version et recherchez les mises à jour. |
copilot login | Authentifiez-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 logout | Déconnectez-vous de GitHub et supprimez les informations d’identification stockées. |
copilot plugin | Gérez les plug-ins et les places de marché de plug-ins. |
Raccourcis globaux dans l’interface interactive
| Shortcut | Objectif |
|---|---|
@ FILENAME | Incluez 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
| Shortcut | Objectif |
|---|---|
| ctrl+o | Bien 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+e | Bien 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+t | Développer/réduire l’affichage du raisonnement dans les réponses. |
Raccourcis de navigation dans l’interface interactive
| Shortcut | Objectif |
|---|
<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
| Command | Objectif |
|---|---|
/add-dir PATH | Ajoutez un répertoire à la liste autorisée pour l’accès aux fichiers. |
/agent | Parcourez 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
| Choix | Objectif |
|---|---|
--acp | Démarrez le serveur de protocole client agent. |
--add-dir=PATH | Ajoutez un répertoire à la liste autorisée pour l’accès aux fichiers (peut être utilisé plusieurs fois). |
--add-github-mcp-tool=TOOL | Ajoutez 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=TOOLSET | Ajoutez 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=JSON | Ajoutez 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=AGENT | Spécifiez un assistant personnalisé à utiliser. |
--allow-all | Activez toutes les autorisations (équivalentes à --allow-all-tools --allow-all-paths --allow-all-urls). |
--allow-all-paths | Dé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-tools | Autoriser 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-urls | Autoriser 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=VALUE | Utilisez la mémoire tampon d’écran de remplacement du terminal (on ou off). |
--autopilot | Activez 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. |
--banner | Affichez la bannière de démarrage. |
--bash-env | Activez la BASH_ENV prise en charge des interpréteurs de commandes bash. |
--config-dir=PATH | Définissez le répertoire de configuration (par défaut : ~/.copilot). |
--continue | Reprendre 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-mcps | Désactivez tous les serveurs MCP intégrés (actuellement : github-mcp-server). |
--disable-mcp-server=SERVER-NAME | Désactivez un serveur MCP spécifique (peut être utilisé plusieurs fois). |
--disable-parallel-tools-execution | Dé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-dir | Empêchez l’accès automatique au répertoire temporaire système. |
--enable-all-github-mcp-tools | Activez 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. |
--experimental | Activer 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.
| Type | Description | Exemples de modèles |
|---|---|---|
shell | Exé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
| Variable | Description |
|---|---|
COPILOT_MODEL | Définissez le modèle IA. |
COPILOT_ALLOW_ALL | Définir sur true pour autoriser toutes les autorisations automatiquement (équivalent à --allow-all). |
COPILOT_AUTO_UPDATE | Définissez sur false pour désactiver les mises à jour automatiques. |
COPILOT_CUSTOM_INSTRUCTIONS_DIRS | Liste séparée par des virgules de répertoires supplémentaires pour obtenir des instructions personnalisées. |
COPILOT_SKILLS_DIRS | Liste séparée par des virgules de répertoires supplémentaires pour les compétences. |
COPILOT_EDITOR | Commande 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.
| Étendue | Lieu | Objectif |
|---|---|---|
| Utilisateur | ~/.copilot/config.json | Valeurs 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.json | Configuration du dépôt partagé (enregistrée dans le dépôt). |
| Local | .github/copilot/settings.local.json | Remplacements personnels (ajouter cela à .gitignore). |
Paramètres utilisateur (~/.copilot/config.json)
| Clé | Type | Par défaut | Description |
|---|---|---|---|
allowed_urls | string[] | [] | URL ou domaines autorisés sans invite. |
alt_screen | boolean | false | Utilisez la mémoire tampon d’écran de remplacement du terminal. |
auto_update | boolean | true | Té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é | Type | Comportement de la fusion | Description |
|---|---|---|---|
companyAnnouncements | string[] | Remplacé : le référentiel est prioritaire | Messages affichés de manière aléatoire au démarrage. |
enabledPlugins | Record<string, boolean> | Fusionné : le référentiel supplante l’utilisateur pour la même clé | Installation automatique du plug-in déclaratif. |
extraKnownMarketplaces | Record<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. |
marketplaces | Record<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
}
]
}
}
| Terrain | Type | Obligatoire | Description |
|---|---|---|---|
type | "command" | Oui | Doit être "command". |
bash | ficelle | L'un de bash/powershell | Commande Shell pour Unix. |
powershell | ficelle | L'un de bash/powershell | Commande Shell pour Windows. |
cwd | ficelle | Non | Répertoire de travail de la commande (par rapport à la racine du référentiel ou absolu). |
env | objet | Non | Variables d’environnement à définir (prend en charge l’expansion des variables). |
timeoutSec | nombre | Non | Dé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"
}
]
}
}
| Terrain | Type | Obligatoire | Description |
|---|---|---|---|
type | "prompt" | Oui | Doit être "prompt". |
prompt | ficelle | Oui | Texte à soumettre : il peut s'agir d'un message en langage naturel ou d'une commande slash. |
Événements de hook
| Événement | Se déclenche quand | Sortie traitée |
|---|---|---|
sessionStart | Une session nouvelle ou reprise commence. | Non |
sessionEnd | La session se termine. | Non |
userPromptSubmitted | L’utilisateur envoie une invite. | Non |
preToolUse | Avant l’exécution de chaque outil. | Oui : peut autoriser, refuser ou modifier. |
postToolUse | Une fois chaque outil terminé. | Non |
agentStop | L’agent principal termine un tour. | Oui : peut bloquer et forcer la continuation. |
subagentStop | Un sous-agent s'achève. | Oui : peut bloquer et forcer la continuation. |
errorOccurred | Une 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.
| Terrain | Valeurs | Description |
|---|---|---|
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
| Terrain | Valeurs | Description |
|---|---|---|
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’outil | Description |
|---|---|
bash | Exécuter des commandes shell (Unix). |
powershell | Exécuter des commandes shell (Windows). |
view | Lire le contenu du fichier. |
edit | Modifiez le contenu du fichier. |
create | Créez des fichiers. |
glob | Recherchez des fichiers par modèle. |
grep | Rechercher le contenu du fichier. |
web_fetch | Récupérer des pages web. |
task | Exé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
| Type | Description | Champs obligatoires |
|---|---|---|
local / stdio | Processus 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
| Terrain | Obligatoire | Description |
|---|---|---|
command | Oui | Commande pour démarrer le serveur. |
args | Oui | Arguments de commande (tableau). |
tools | Oui | Outils à activer : ["*"] pour tous ou une liste de noms d’outils spécifiques. |
env | Non | Variables d'environnement. Prend en charge $VAR, ${VAR} et ${VAR:-default} expansion. |
cwd | Non | Répertoire de travail du serveur. |
timeout | Non | Délai d’expiration des appels de l’outil en millisecondes. |
type | Non |
`"local"` ou `"stdio"`. Par défaut : `"local"`. |
Champs de configuration de serveur distant
| Terrain | Obligatoire | Description |
|---|---|---|
type | Oui |
`"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.
| Mode | Description |
|---|---|
none | Aucun filtrage. |
markdown | Formater la sortie en Markdown. |
hidden_characters | Supprimez 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.
| Serveur | Description |
|---|---|
github-mcp-server | GitHub Intégration de l’API : problèmes, pull requests, commits, 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.
Niveaux d’approbation du serveur MCP
Les serveurs MCP sont chargés à partir de plusieurs sources, chacun avec un niveau de confiance différent.
| Origine | Niveau de confiance | Révision requise |
|---|---|---|
| Intégré | Élevé | Non |
Référentiel (.github/mcp.json) | Moyenne | Recommandé |
Espace de travail (.mcp.json, .vscode/mcp.json) | Moyenne | Recommandé |
Conteneur de développement (.devcontainer/devcontainer.json) | Moyenne | Recommandé |
Configuration utilisateur (~/.copilot/mcp-config.json) | User-defined | Responsabilité de l’utilisateur |
| Serveurs distants | Faible | Toujours |
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'
| Terrain | Type | Obligatoire | Description |
|---|---|---|---|
name | ficelle | Oui | Identificateur unique de la compétence. Lettres, chiffres et traits d’union uniquement. 64 caractères maximum. |
description | ficelle | Oui | Que fait la compétence et quand l’utiliser. Nombre maximal de 1024 caractères. |
allowed-tools | chaîne ou chaîne[] | Non | Liste 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-invocable | booléen | Non | Indique si les utilisateurs peuvent appeler la compétence avec /SKILL-NAME. Par défaut : true. |
disable-model-invocation | booléen | Non | Empê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 | Étendue | Description |
|---|---|---|
.github/skills/ | Projet | Compétences spécifiques au projet. |
.agents/skills/ | Projet | Autre emplacement du projet. |
.claude/skills/ | Projet | Emplacement compatible avec Claude. |
Parent .github/skills/ | Inherited | Prise en charge de l’annuaire parent monorepo. |
~/.copilot/skills/ | Personnel | Compétences personnelles pour tous les projets. |
~/.claude/skills/ | Personnel | Lieu personnel compatible avec Claude. |
| Répertoires de plug-in | Plug-in | Compétences des plug-ins installés. |
COPILOT_SKILLS_DIRS | Personnalisée | Ré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
| Agent | Modèle par défaut | Description |
|---|---|---|
code-review | claude-sonnet-4.5 | Révision de code signal-à-bruit élevée. Analyse les différences pour les bogues, les problèmes de sécurité et les erreurs logiques. |
explore | claude-haiku-4.5 | Exploration 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-purpose | claude-sonnet-4.5 | Agent de capacité complète pour les tâches multi-étapes complexes. S’exécute dans une fenêtre contextuelle distincte. |
research | claude-sonnet-4.6 | Agent 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. |
task | claude-haiku-4.5 | Exé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
| Terrain | Type | Obligatoire | Description |
|---|---|---|---|
description | ficelle | Oui | Description affichée dans la liste des agents et l'outil task. |
infer | booléen | Non | Autoriser la délégation automatique par l’agent principal. Par défaut : true. |
mcp-servers | objet | Non | Serveurs MCP à connecter. Utilise le même schéma que ~/.copilot/mcp-config.json. |
model | ficelle | Non | Modèle IA pour cet agent. Lorsqu’il n’est pas défini, hérite du modèle de l’agent externe. |
name | ficelle | Non | Nom d'affichage. La valeur par défaut est le nom de fichier. |
tools | chaîne de caractères[] | Non | Outils disponibles pour l’agent. Valeur par défaut : ["*"] (tous les outils). |
Emplacements d’agent personnalisés
| Étendue | Lieu |
|---|---|
| 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 |
|---|---|
y | Autorisez cette requête spécifique une seule fois. |
n | Refuser 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.
| Flag | Niveau | Description |
|---|---|---|
AUTOPILOT_MODE | experimental | Mode d’opération autonome. |
BACKGROUND_AGENTS | staff | Exécutez des agents en arrière-plan. |
QUEUED_COMMANDS | staff | Commandes en file pendant l’exécution de l’agent. |
LSP_TOOLS | on | Outils du Language Server Protocol. |
PLAN_COMMAND | on | Mode de planification interactive. |
AGENTIC_MEMORY | on | Mémoire persistante entre les sessions. |
CUSTOM_AGENTS | on | Dé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
| Variable | Par défaut | Description |
|---|---|---|
COPILOT_OTEL_ENABLED | false | Activez explicitement OTel. Non obligatoire si OTEL_EXPORTER_OTLP_ENDPOINT est défini. |
OTEL_EXPORTER_OTLP_ENDPOINT | — | URL du point de terminaison OTLP. La définition de ce paramètre active automatiquement OTel. |
COPILOT_OTEL_EXPORTER_TYPE | otlp-http | Type d’exportateur : otlp-http ou file. Sélectionne file automatiquement quand COPILOT_OTEL_FILE_EXPORTER_PATH est défini. |
OTEL_SERVICE_NAME | github-copilot | Nom du service dans les attributs de ressource. |
OTEL_RESOURCE_ATTRIBUTES | — | Attributs 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_CONTENT | false | Capturez le contenu complet de l’invite et de la réponse. Voir capture de contenu. |
OTEL_LOG_LEVEL | — | Niveau 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_NAME | github.copilot | Nom de l’étendue d’instrumentation pour le traceur et le compteur. |
OTEL_EXPORTER_OTLP_HEADERS | — | En-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éristique | Description |
|---|---|
gen_ai.operation.name | invoke_agent |
gen_ai.provider.name | Fournisseur (par exemple, , github``anthropic) |
gen_ai.agent.id | Identificateur de session |
gen_ai.agent.name | Nom de l’agent (sous-agents uniquement) |
gen_ai.agent.description | Description de l’agent (sous-agents uniquement) |
gen_ai.agent.version | Version du runtime |
gen_ai.conversation.id | Identificateur de session |
gen_ai.request.model | Modèle demandé |
gen_ai.response.model | Modèle résolu |
gen_ai.response.id | ID 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éristique | Description |
|---|---|
gen_ai.operation.name | chat |
gen_ai.provider.name | Nom du fournisseur |
gen_ai.request.model | Modèle demandé |
gen_ai.conversation.id | Identificateur de session |
gen_ai.response.id | ID de réponse |
gen_ai.response.model | Modèle résolu |
gen_ai.response.finish_reasons | Raisons d'arrêt |
gen_ai.usage.input_tokens | Jetons d’entrée ce tour |
gen_ai.usage.output_tokens | Jetons de sortie pour ce tour |
gen_ai.usage.cache_read.input_tokens | Lecture des jetons mis en cache |
gen_ai.usage.cache_creation.input_tokens | Jetons créés en cache |
github.copilot.cost | Coût de tour |
github.copilot.aiu | Unités IA consommées ce tour-ci |
github.copilot.server_duration | Durée côté serveur |
github.copilot.initiator | Initiateur de demande |
github.copilot.turn_id | Identifiant de tour |
github.copilot.interaction_id | Identificateur d’interaction |
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’invite complets au format JSON (capture de contenu uniquement) |
gen_ai.output.messages | Messages de réponse 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) |
`execute_tool` attributs d’étendue
Une étendue par appel d’outil. Catégorie d’étendue : INTERNAL.
| Caractéristique | Description |
|---|---|
gen_ai.operation.name | execute_tool |
gen_ai.provider.name | Nom du fournisseur (le cas échéant) |
gen_ai.tool.name | Nom de l’outil (par exemple, readFile) |
gen_ai.tool.type | function |
gen_ai.tool.call.id | Identificateur d’appel de l’outil |
gen_ai.tool.description | Description de l’outil |
error.type | Nom de la classe Error (en cas d’erreur) |
gen_ai.tool.call.arguments | Arguments d’entrée d’outil en tant que JSON (capture de contenu uniquement) |
gen_ai.tool.call.result | Sortie de l’outil au format JSON (capture de contenu uniquement) |
Metrics
Métriques de convention GenAI
| Unité de mesure | Type | Unité | Description |
|---|---|---|---|
gen_ai.client.operation.duration | Histogramme | s | Durée d’appel de l’API LLM et de l'invocation de l’agent |
gen_ai.client.token.usage | Histogramme | tokens | Nombre de jetons par type (input/output) |
gen_ai.client.operation.time_to_first_chunk | Histogramme | s | Temps de réception du premier segment de diffusion en continu |
gen_ai.client.operation.time_per_output_chunk | Histogramme | s | Latence entre segments après le premier segment |
Métriques spécifiques au fournisseur
| Unité de mesure | Type | Unité | Description |
|---|---|---|---|
github.copilot.tool.call.count | Compteur | appels | Appels d’outils par gen_ai.tool.name et success |
github.copilot.tool.call.duration | Histogramme | s | Latence d’exécution des outils par gen_ai.tool.name |
github.copilot.agent.turn.count | Histogramme | Tourne | Allers-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énement | Description | Attributs clés |
|---|---|---|
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.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éristique | Valeur |
|---|---|
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éristique | Contenu |
|---|---|
gen_ai.input.messages | Messages d’invite complets (JSON) |
gen_ai.output.messages | Messages de réponse complets (JSON) |
gen_ai.system_instructions | Contenu de l’invite système (JSON) |
gen_ai.tool.definitions | Schémas d’outil (JSON) |
gen_ai.tool.call.arguments | Arguments d’entrée de l’outil |
gen_ai.tool.call.result | Sortie 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)