{"meta":{"title":"référence programmatique du CLI GitHub Copilot","intro":"Recherchez les options d’exécution Copilot CLI par programmation.","product":"GitHub Copilot","breadcrumbs":[{"href":"/fr/copilot","title":"GitHub Copilot"},{"href":"/fr/copilot/reference","title":"Informations de référence"},{"href":"/fr/copilot/reference/copilot-cli-reference","title":"Copilot CLI référence"},{"href":"/fr/copilot/reference/copilot-cli-reference/cli-programmatic-reference","title":"Informations de référence sur la programmation CLI"}],"documentType":"article"},"body":"# référence programmatique du CLI GitHub Copilot\n\nRecherchez les options d’exécution Copilot CLI par programmation.\n\nOutre l’exécution Copilot CLI de manière interactive, vous pouvez également passer directement une invite à la CLI en une seule commande, sans entrer de session interactive. Cela vous permet d’utiliser Copilot par programmation dans les scripts, les pipelines CI/CD et les workflows d’automatisation. Pour plus d’informations, consultez « [Exécution GitHub Copilot CLI par programmation](/fr/copilot/how-tos/copilot-cli/automate-copilot-cli/run-cli-programmatically) ».\n\nCet article décrit les options de ligne de commande et les variables d’environnement particulièrement pertinentes lors de l’exécution Copilot CLI par programme.\n\nPour afficher la liste complète des options disponibles, consultez [Référence de commande CLI pour GitHub Copilot](/fr/copilot/reference/copilot-cli-reference/cli-command-reference#command-line-options) ou entrez la commande suivante dans votre terminal :\n\n```shell copy\ncopilot help\n```\n\n## Options de ligne de commande\n\nIl existe un certain nombre d’options de ligne de commande particulièrement utiles lors de l’exécution Copilot CLI par programme.\n\n| Choix                        | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |\n| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| `-p PROMPT`                  | Exécutez une invite en mode non interactif. L’interface CLI exécute l’invite et se ferme lorsque vous avez terminé.                                                                                                                                                                                                                                                                                                                                                            |\n| `-s`                         | Supprimez les statistiques et la décoration, ne laissant que la réponse de l’agent. Idéal pour rediriger la sortie dans des scripts.                                                                                                                                                                                                                                                                                                                                           |\n| `--add-dir=DIRECTORY`        | Ajoutez un répertoire à la liste des chemins autorisés. Cela peut être utilisé plusieurs fois pour ajouter plusieurs répertoires. Utile lorsque l’agent doit lire/écrire en dehors du répertoire de travail actuel.                                                                                                                                                                                                                                                            |\n| `--agent=AGENT`              | Spécifiez un custom agent à utiliser.                                                                                                                                                                                                                                                                                                                                                                                                                                          |\n| `--allow-all` (ou `--yolo`)  | Accordez toutes les autorisations à la CLI. Équivalent à `--allow-all-tools --allow-all-paths --allow-all-urls`.                                                                                                                                                                                                                                                                                                                                                               |\n| `--allow-all-paths`          | Désactivez entièrement la vérification du chemin d’accès au fichier. Alternative plus simple au `--add-dir` moment où les restrictions de chemin d’accès ne sont pas nécessaires.                                                                                                                                                                                                                                                                                              |\n| `--allow-all-tools`          | Autoriser chaque outil à s’exécuter sans autorisation explicite pour chaque outil.                                                                                                                                                                                                                                                                                                                                                                                             |\n| `--allow-all-urls`           | Autorisez l’accès à toutes les URL sans autorisation explicite pour chaque URL.                                                                                                                                                                                                                                                                                                                                                                                                |\n| `--allow-tool=TOOL ...`      | Accordez de manière sélective l’autorisation pour un outil spécifique. Pour plusieurs outils, utilisez une liste séparée par des virgules entre guillemets.                                                                                                                                                                                                                                                                                                                    |\n| `--allow-url=URL ...`        | Autoriser l’agent à extraire une URL ou un domaine spécifique. Utile lorsqu’un flux de travail a besoin d’un accès web aux points de terminaison connus. Pour plusieurs URL, utilisez une liste séparée par des virgules entre guillemets.                                                                                                                                                                                                                                     |\n| `--attachment=PATH ...`      | Joignez un fichier (image ou document natif) à l’invite initiale. Valide uniquement en mode non interactif. Peut être utilisé plusieurs fois pour joindre plusieurs fichiers.                                                                                                                                                                                                                                                                                                  |\n| `--available-tools=TOOL ...` | Limitez le modèle aux outils que vous listez uniquement ; tous les autres outils ne sont pas disponibles. Utile pour définir étroitement ce que l’agent peut faire dans un flux de travail automatisé. Pour plusieurs outils, utilisez une liste séparée par des virgules entre guillemets.                                                                                                                                                                                    |\n| `--deny-tool=TOOL ...`       | Refuser un outil spécifique. Utile pour restreindre ce que l’agent peut faire dans un flux de travail verrouillé. Pour plusieurs outils, utilisez une liste séparée par des virgules entre guillemets.                                                                                                                                                                                                                                                                         |\n| `--deny-url=URL ...`         | Refuser l’accès à une URL ou un domaine spécifique. Prend la priorité sur `--allow-url`. Pour plusieurs URL, utilisez une liste séparée par des virgules entre guillemets.                                                                                                                                                                                                                                                                                                     |\n| `--excluded-tools=TOOL ...`  | Supprimez des outils spécifiques parmi ceux mis à la disposition du modèle. Pour plusieurs outils, utilisez une liste séparée par des virgules entre guillemets.                                                                                                                                                                                                                                                                                                               |\n| `--fleet`                    | Exécutez le prompt en mode flotte, afin que Copilot utilise des sous-agents parallèles pour travailler sur différentes parties de la tâche. Combinez avec `-p` pour une automatisation sans interaction, `-i` pour une session interactive, ou une invite via un pipe. Non pris en charge en mode serveur ACP. Consultez « [Accélération de l’achèvement de la tâche avec la \\`/fleet\\` commande](/fr/copilot/how-tos/copilot-cli/use-copilot-cli/speed-up-task-completion) ». |\n| `--model=MODEL`              | Choisissez le modèle IA (par exemple, `gpt-5.4` ou `claude-haiku-4.5`). Utile pour épingler un modèle dans des flux de travail reproductibles. Voir [Choisir un modèle](#choosing-a-model) ci-dessous.                                                                                                                                                                                                                                                                         |\n| `--no-ask-user`              | Empêchez l’agent de suspendre la recherche d’une entrée utilisateur supplémentaire.                                                                                                                                                                                                                                                                                                                                                                                            |\n| `--output-format=FORMAT`     | Définissez le format de sortie : `text` (valeur par défaut) ou `json`. Avec `json`, l’interface CLI émet JSONL (un objet JSON par ligne), qui est pratique pour analyser la sortie de l’agent dans les scripts.                                                                                                                                                                                                                                                                |\n| `--secret-env-vars=VAR ...`  | Variable d’environnement dont vous souhaitez masquer la valeur dans la sortie. Pour plusieurs variables, utilisez une liste séparée par des virgules entre guillemets. Indispensable pour éviter que des secrets ne soient divulgués dans les journaux. Les valeurs dans les variables d'environnement `GITHUB_TOKEN` et `COPILOT_GITHUB_TOKEN` sont cachées par défaut.                                                                                                       |\n| `--share=PATH`               | Exportez la transcription de session vers un fichier Markdown après l’achèvement non interactif (valeur par défaut `./copilot-session-<ID>.md`). Utile pour l’audit ou l’archivage de ce que l’agent a fait. Notez que les transcriptions de session peuvent contenir des informations sensibles.                                                                                                                                                                              |\n| `--share-gist`               | Publiez la transcription de la session en tant que \"secret gist\" sur GitHub après la fin. Pratique pour partager des résultats à partir de CI. Notez que les transcriptions de session peuvent contenir des informations sensibles.                                                                                                                                                                                                                                            |\n\n## Exécution de flux de travail dynamiques\n\nPermet `copilot workflow run WORKFLOW-NAME` d’exécuter un flux de travail dynamique à partir d’un script. Pour en savoir plus sur les flux de travail dynamiques, consultez [Flux de travail dynamiques](/fr/copilot/concepts/agent-capabilities/agent-powered-workflows-and-operations/dynamic-workflows).\n\nUtiliser `--args` pour json inline ou un chemin d’accès `@`de fichier JSON préfixé. Les arguments ne sont pas lus à partir d’une entrée standard.\n\n```shell copy\ncopilot workflow run WORKFLOW-NAME \\\n  --args @workflow-input.json \\\n  --silent --output-format json\n```\n\nConfigurez l’authentification et accordez les autorisations d’outil requises avant d’exécuter la commande. Options partagées telles que `--model`, , `--allow-url``--allow-tool`et `--add-dir` appliquer. La commande n’affiche pas les invites d’approbation d’autorisation. Les options d’invite de commande et de mode de session telles que `-p`, `-i`, `--agent`, `--fleet`, `--autopilot`, `--resume` et `--continue` ne sont pas prises en charge avec `workflow run`.\n\nLes extensions de projet sont chargées uniquement à partir de dossiers de confiance ou avec un consentement explicite. Dans l’automatisation, `GITHUB_COPILOT_PROMPT_MODE_EXTENSIONS=true` autorise le chargement des extensions de projet pour cet appel. Activez cette option uniquement pour le code d’un dépôt auquel vous faites confiance. Il n’accorde pas d’autorisations d’outil.\n\nPour toutes les options spécifiques au flux de travail, consultez [Référence de commande CLI pour GitHub Copilot](/fr/copilot/reference/copilot-cli-reference/cli-command-reference#using-copilot-workflow-run).\n\n### Sortie du flux de travail\n\nAvec `--output-format json`, la sortie standard utilise JSONL. Lorsque l’exécution se termine ou s’arrête, l’enregistrement final comporte les champs suivants. Ajoutez `--silent` pour supprimer la progression et d’autres enregistrements d’événements.\n\n| Champ                                                                         | Description                                                                                                                    |\n| ----------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |\n| `type`                                                                        | A toujours la valeur `workflow.result`.                                                                                        |\n| `data.name`                                                                   | Nom du flux de travail.                                                                                                        |\n| `data.run.runId`                                                              | Identificateur de l’exécution.                                                                                                 |\n| `data.run.status`                                                             | État d’exécution final : `completed`, , `halted``paused`, `cancelled`ou `error`.                                               |\n| `data.run.result`                                                             | Valeur retournée, le cas échéant. Omis lorsqu’il `--result-file` est fourni.                                                   |\n| `data.run.pauseInfo`, `data.run.reason`, `data.run.error`, `data.run.failure` | Informations supplémentaires sur la raison pour laquelle une exécution a été suspendue ou arrêtée, lorsqu’elle est disponible. |\n| `data.resultFile`                                                             | Chemin d’accès du fichier de résultats demandé, inclus uniquement après l’écriture du fichier de résultats.                    |\n\nAvec `--result-file PATH`, le fichier contient uniquement la valeur retournée, en tant que JSON. Une exécution suspendue, ayant échoué ou interrompue ne remplace pas un fichier de résultats existant. Une exécution achevée qui ne renvoie aucune valeur n’écrit pas de fichier de résultats.\n\nLes erreurs et les diagnostics des exécutions qui ne se terminent pas sont écrits sur la sortie d’erreur standard, y compris en mode silencieux. Une erreur avant le démarrage du flux de travail ou une interruption peut mettre fin à la commande sans enregistrement JSON final.\n\n### Codes de sortie du flux de travail\n\n| Code de sortie | Meaning                                                                                                                                                                                                                                                                         |\n| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `0`            | Le flux de travail s’est terminé correctement et tout fichier de résultats demandé a été écrit correctement. Un flux de travail qui ne retourne aucune valeur ne peut également s’exécuter correctement sans créer de fichier de résultats.                                     |\n| `1`            | L’exécution n’a pas terminé, y compris une pause, une limite qui a arrêté l’exécution, l’annulation ou l’échec. Également utilisé pour les erreurs de commande générales, telles qu’une syntaxe de ligne de commande non valide ou une impossibilité d’enregistrer le résultat. |\n| `2`            | Le flux de travail n’a pas été trouvé ou ses arguments n’ont pas pu être lus, analysés en tant que JSON ou validés par rapport aux entrées acceptées du flux de travail.                                                                                                        |\n| `130`          | La commande a été interrompue `SIGINT` par ou `SIGTERM`, par exemple, en appuyant <kbd>sur Ctrl</kbd>+<kbd>C</kbd>.                                                                                                                                                             |\n\nVérifiez le code de sortie avant de consommer un fichier de résultats. Un fichier de résultats antérieur peut toujours exister après une exécution infructueuse. Un enregistrement final dont `data.run.status` la valeur est définie `completed` ne garantit pas que le fichier de résultats a été enregistré avec succès.\n\n## Outils pour l’option `--allow-tool`\n\nVous pouvez spécifier différents types d’outils avec l’option `--allow-tool` .\n\n| Type d’outil | Qu’est-ce qu’il contrôle ?                                                                                                                                                                                                                                              |\n| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| shell        | Exécution de commandes shell.                                                                                                                                                                                                                                           |\n| write        | Création ou modification de fichiers.                                                                                                                                                                                                                                   |\n| lire         | Lecture de fichiers ou de répertoires.                                                                                                                                                                                                                                  |\n| url          | Extraction de contenu à partir d’une URL.                                                                                                                                                                                                                               |\n| mémoire      | Stockage de nouveaux faits dans la mémoire persistante de l’agent. Cela n’affecte pas l’utilisation de souvenirs existants. Consultez « [À propos de la mémoire GitHub Copilot](/fr/copilot/concepts/agents/copilot-memory) ».                                          |\n| MCP-SERVER   | Appel d’outils à partir d’un serveur MCP spécifique. Utilisez le nom configuré du serveur comme identificateur, par exemple `github`. Consultez « [Ajout de serveurs MCP pour GitHub Copilot CLI](/fr/copilot/how-tos/copilot-cli/customize-copilot/add-mcp-servers) ». |\n\n### Filtres d’outils\n\nLes types d’outils serveur `shell`, `write`, `url`, et MCP vous permettent de spécifier un filtre, entre parenthèses, pour contrôler quels outils spécifiques sont autorisés.\n\n<!-- markdownlint-disable -->\n\n| Type d’outil   | Exemple                                  | Explication de l’exemple                                                                                       |\n| -------------- | ---------------------------------------- | -------------------------------------------------------------------------------------------------------------- |\n| **Shell**      | `shell(git:*)`                           | Autoriser toutes les sous-commandes Git (`git push`, `git status`etc.).                                        |\n|                | `shell(npm test)`                        | Autorisez la commande exacte `npm test`.                                                                       |\n| **écrire**     | `write(.github/copilot-instructions.md)` | Autoriser l’interface CLI à écrire dans ce chemin spécifique.                                                  |\n|                | `write(README.md)`                       | Autoriser l’interface CLI à écrire dans n’importe quel fichier dont le chemin se termine par `/README.md`.     |\n| **url**        | `url(github.com)`                        | Autoriser l’interface CLI à accéder aux URL HTTPS sur github.com.                                              |\n|                | `url(http://localhost:3000)`             | Autoriser l’interface CLI à accéder au serveur de développement local avec un protocole et un port explicites. |\n|                | `url(https://*.github.com)`              | Autoriser l’interface CLI à accéder à n’importe quel GitHub sous-domaine (par exemple, `api.github.com`).      |\n|                | `url(http://gfffhd546355cb0764ecasupcfuvp5ccf065f0.ffgi.yc2.bjmu.edu.cn/copilot/*)` | Autorisez l’accès à la Copilot documentation sur ce site.                                                      |\n| **MCP-SERVER** | `github(create_issue)`                   | Autorisez uniquement l’outil `create_issue` à partir du `github` serveur MCP.                                  |\n\n<!-- markdownlint-enable -->\n\n> \\[!NOTE]\n> Les caractères génériques ne sont pris en charge que pour que `shell` corresponde à toutes les sous-commandes d’un outil spécifié, pour `url` au début du nom d’hôte afin de correspondre à n’importe quel sous-domaine, ou à la fin d’un chemin d’accès pour correspondre à n’importe quel suffixe de chemin d’accès, comme indiqué dans le tableau précédent.\n\n## Variables d'environnement\n\nVous pouvez utiliser des variables d’environnement pour configurer différents aspects du comportement de l’interface CLI lors de l’exécution par programmation. Cela est particulièrement utile pour définir la configuration dans les flux de travail CI/CD ou d’autres environnements automatisés où vous ne souhaiterez peut-être pas spécifier certaines options directement dans la ligne de commande.\n\n| Variable                                | Description                                                                                                                                                                                                                                                                        |\n| --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `COPILOT_ALLOW_ALL`                     | Définir sur `true` pour les autorisations complètes                                                                                                                                                                                                                                |\n| `COPILOT_MODEL`                         | Définir le modèle (par exemple, , `gpt-5.4``claude-haiku-4.5`)                                                                                                                                                                                                                     |\n| `COPILOT_HOME`                          | Définir le répertoire du fichier de configuration CLI (`~/.copilot` par défaut)                                                                                                                                                                                                    |\n| `COPILOT_AUTO_UPDATE`                   | Définissez sur `false` pour désactiver les mises à jour automatiques. Utile dans les environnements CI et autres environnements automatisés où vous souhaitez figer la version du CLI.                                                                                             |\n| `COPILOT_GITHUB_TOKEN`                  | Jeton d’authentification (priorité la plus élevée)                                                                                                                                                                                                                                 |\n| `GH_TOKEN`                              | Jeton d’authentification (deuxième priorité)                                                                                                                                                                                                                                       |\n| `GITHUB_TOKEN`                          | Jeton d’authentification (troisième priorité)                                                                                                                                                                                                                                      |\n| `GITHUB_COPILOT_PROMPT_MODE_EXTENSIONS` | Définissez cette option `true` pour autoriser le chargement des extensions de projet pour une exécution d’invite ou de flux de travail direct. Utilisez ceci uniquement pour le code d’un dépôt auquel vous faites confiance. Cela ne confère pas d’autorisations pour les outils. |\n\nPour plus d’informations sur les variables d’environnement pour Copilot CLI, utilisez la commande `copilot help environment` dans votre terminal.\n\n## Choix d’un modèle\n\nLorsque vous envoyez une invite en mode non interactif Copilot CLI, le modèle utilisé par le CLI pour générer une réponse s’affiche dans la sortie de la réponse (si l’option `-s`, ou `--silent`, n’est pas utilisée).\n\nVous pouvez utiliser l’option `--model` pour spécifier le modèle IA que l’interface CLI doit utiliser. Cela vous permet de choisir le modèle le mieux adapté à votre demande, en tenant compte de critères tels que la vitesse, le coût et les capacités.\n\nPar exemple, pour des tâches simples, telles que l’explication d’un code ou la génération d’un résumé, vous pouvez choisir un modèle rapide et à moindre coût tel qu’un modèle Claude Haiku :\n\n```bash copy\ncopilot -p \"What does this project do?\" -s --model claude-haiku-4.5\n```\n\nPour des tâches plus complexes qui nécessitent un raisonnement plus approfondi, comme le débogage ou le refactorisation du code, vous pouvez choisir un modèle plus puissant, tel qu’un modèle GpT Codex :\n\n```bash copy\ncopilot -p \"Fix the race condition in the worker pool\" \\\n  --model gpt-5.3-codex \\\n  --allow-tool='write, shell'\n```\n\n> \\[!NOTE]\n> Pour afficher les chaînes de modèle pour tous les modèles disponibles, exécutez la `/model` commande dans une session interactive Copilot CLI . Pour obtenir la liste complète des modèles et des clients qui les prennent en charge, consultez [Modèles IA pris en charge dans GitHub Copilot](/fr/copilot/reference/ai-models/supported-models).\n\nVous pouvez également définir la `COPILOT_MODEL` variable d’environnement pour spécifier un modèle pour la durée de la session shell.\n\nPour conserver une sélection de modèle entre les sessions d’interpréteur de commandes, vous pouvez définir la `model` clé dans le fichier de configuration CLI. Ce fichier se trouve à l’emplacement `~/.copilot/settings.json` (ou `$COPILOT_HOME/settings.json` si vous avez défini la variable d’environnement `COPILOT_HOME` ). Certains modèles vous permettent également de définir un niveau d’effort de raisonnement, qui contrôle le temps passé par le modèle à penser avant de répondre.\n\n```json copy\n{\n  \"model\": \"gpt-5.3-codex\",\n  \"effortLevel\": \"low\"\n}\n```\n\n> \\[!TIP]\n> Le moyen le plus simple de définir un modèle de manière permanente dans le fichier de configuration est de définir la `/model` commande oblique dans une session interactive. Le choix que vous effectuez avec cette commande est écrit dans le fichier de configuration.\n\n### Priorité du modèle\n\nLors de la détermination du modèle à utiliser pour une invite donnée, l’interface CLI recherche les spécifications de modèle dans l’ordre de priorité suivant (du plus haut au plus bas) :\n\n* Où un agent personnalisé est utilisé : le modèle spécifié dans la définition de l’agent personnalisé (le cas échéant).\n* Option `--model` de ligne de commande.\n* Variable d’environnement `COPILOT_MODEL`.\n* Clé `model` dans le fichier de configuration (`~/.copilot/settings.json` ou `$COPILOT_HOME/settings.json`).\n* Modèle par défaut de l’interface CLI.\n\n## Utilisation d’agents personnalisés\n\nVous pouvez déléguer le travail à un agent spécialisé à l’aide de l’option `--agent` . Pour plus d’informations, consultez « [Création et utilisation d’agents personnalisés pour GitHub Copilot CLI](/fr/copilot/how-tos/copilot-cli/customize-copilot/create-custom-agents-for-cli) ».\n\nDans cet exemple, l’agent `code-review` est utilisé. Cela nécessite qu’un agent personnalisé ait été créé avec ce nom.\n\n```bash\ncopilot -p \"Review the latest commit\" \\\n  --allow-tool='shell' \\\n  --agent code-review\n```\n\n## Lectures complémentaires\n\n* [GitHub Copilot CLI](/fr/copilot/how-tos/copilot-cli)\n* [Référence de commande CLI pour GitHub Copilot](/fr/copilot/reference/copilot-cli-reference/cli-command-reference)\n* [Référence du plug-in CLI GitHub Copilot](/fr/copilot/reference/copilot-cli-reference/cli-plugin-reference)"}