Copilot pour CLI stocke sa configuration, son historique de session, ses journaux et ses personnalisations dans un seul répertoire sur votre ordinateur. Par défaut, ce répertoire est ~/.copilot (autrement dit, $HOME/.copilot).
Cet article décrit le contenu de ce répertoire et la façon dont vous pouvez les utiliser.
Vue d’ensemble du répertoire
Le ~/.copilot répertoire contient les éléments de niveau supérieur suivants.
| Chemin | Type | Description |
|---|---|---|
agents/ | Répertoire | Définitions d’agents personnalisés personnels |
config.json | Fichier | État de l’application gérée automatiquement (authentification, plug-ins installés et autres données internes) |
copilot-instructions.md | Fichier | Instructions personnalisées personnelles (appliquées à toutes les sessions) |
extensions/ | Répertoire | Extensions personnelles chargées par l’interface CLI |
hooks/ | Répertoire | Scripts de hook au niveau de l’utilisateur |
ide/ | Répertoire | État d’intégration de l’IDE |
installed-plugins/ | Répertoire | Fichiers de plug-in installés |
instructions/ | Répertoire | Fichiers personnels *.instructions.md supplémentaires |
logs/ | Répertoire | Fichiers journaux de session |
lsp-config.json | Fichier | Définitions de serveur LSP au niveau de l’utilisateur |
mcp-config.json | Fichier | Définitions de serveur MCP au niveau de l’utilisateur |
mcp-oauth-config/ | Répertoire | Jeton OAuth MCP et stockage de repli pour l’inscription |
mcp-secrets/ | Répertoire | Stockage local de secours et index pour les espaces réservés des secrets MCP |
permissions-config.json | Fichier | Paramètres d'outils enregistrés et permissions des répertoires par projet |
plugin-data/ | Répertoire | Données persistantes pour les plug-ins installés |
session-state/ | Répertoire | Historique des sessions et données d’espace de travail |
command-history-state/ | Répertoire | Données d’historique des commandes |
session-store.db | Fichier | Base de données SQLite pour les données entre sessions |
settings.json | Fichier | Vos paramètres de configuration personnels |
skills/ | Répertoire | Définitions de compétences personnalisées personnelles |
Remarque
Tous ces éléments n’apparaissent pas immédiatement. Certaines sont créées à la demande la première fois que vous utilisez une fonctionnalité particulière, par exemple, installed-plugins/ s’affiche uniquement après avoir installé votre premier plug-in.
Fichiers modifiables par l’utilisateur
Les fichiers suivants sont conçus pour être modifiés directement ou gérés par le biais de commandes CLI.
settings.json
Il s’agit du fichier de configuration principal pour Copilot pour CLI. Dans une session, vous pouvez utiliser la commande interactive /settings pour modifier des valeurs spécifiques ou exécuter /settings KEY VALUE pour définir une valeur unique. Consultez « Modification des paramètres avec la /settings commande ». Vous pouvez également modifier le settings.json fichier directement dans un éditeur de texte. Le fichier prend en charge JSON avec des commentaires (JSONC).
Par défaut, ce fichier se trouve dans le ~/.copilot répertoire, qui est le répertoire de configuration au niveau de l’utilisateur. Il contient des valeurs par défaut globales au niveau de l’utilisateur pour tous les référentiels. Vous pouvez modifier l’emplacement de ce répertoire en définissant la COPILOT_HOME variable d’environnement sur un chemin différent.
Remarque
Les paramètres modifiables par l’utilisateur ont été stockés à l’origine dans config.json. Ils ont été déplacés vers settings.json. Tous les paramètres utilisateur présents au config.json démarrage sont automatiquement migrés vers settings.json.
Remarque
Si settings.json ne parvient pas à lire, analyser ou valider, Copilot pour CLI ignore les valeurs non valides (les valeurs config.json reconnues sont toujours fusionnées) et affiche un avertissement de démarrage dans la chronologie indiquant l’erreur. Corrigez le problème signalé pour restaurer les paramètres affectés.
Pour obtenir la liste complète des paramètres et la façon dont ils interagissent avec la configuration au niveau du référentiel, consultez les paramètres du fichier de configuration plus loin dans cet article.
Conseil
Exécutez copilot help config dans votre terminal pour obtenir une référence rapide.
copilot-instructions.md
Instructions personnalisées personnelles qui s’appliquent à toutes vos sessions, quel que soit le projet dans lequel vous travaillez. Ce fichier fonctionne de la même façon qu’au niveau copilot-instructions.md du référentiel, mais s’applique globalement.
Pour plus d’informations, consultez « Ajout d’instructions personnalisées de référentiel pour GitHub Copilot ».
instructions/
Stockez ici des fichiers d’instructions personnelles supplémentaires sous forme de *.instructions.md fichiers. Celles-ci sont chargées en même temps que copilot-instructions.md et s'appliquent à toutes vos sessions. Vous pouvez organiser des instructions par rubrique, par exemple ~/.copilot/instructions/code-style.instructions.md.
mcp-config.json
Définit les serveurs MCP (Model Context Protocol) disponibles au niveau de l’utilisateur. Ces serveurs sont disponibles dans toutes vos sessions, quel que soit le répertoire de projet dans lequel vous vous trouvez. Configurations MCP de niveau projet (dans .mcp.json ou .github/mcp.json) ont la priorité sur les définitions au niveau de l’utilisateur lorsque les noms de serveurs sont en conflit.
Pour plus d’informations, consultez « Ajout de serveurs MCP pour CLI GitHub Copilot ».
lsp-config.json
Définit les serveurs LSP (Language Server Protocol) disponibles au niveau de l’utilisateur. Ces serveurs fournissent une intelligence linguistique (diagnostics, autocomplétions, etc.) à l’agent. Gérez ce fichier à l’aide de la /lsp commande de barre oblique ou modifiez-le directement.
Pour plus d’informations, consultez « Ajout de serveurs LSP pour CLI GitHub Copilot ».
agents/
Stockez les définitions d’agent personnalisé personnelles ici sous forme de .agent.md fichiers. Les agents placés dans ce répertoire sont disponibles dans toutes vos sessions. Les agents de niveau projet (dans .github/agents/) sont prioritaires sur les agents personnels s’ils partagent le même nom.
Pour plus d’informations, consultez « Création et utilisation d’agents personnalisés pour CLI GitHub Copilot ».
skills/
Stockez les définitions de compétences personnalisées personnelles ici. Chaque compétence se trouve dans un sous-répertoire contenant un SKILL.md fichier, par exemple ~/.copilot/skills/my-skill/SKILL.md. Les compétences personnelles sont présentes dans toutes vos sessions. Les compétences de niveau projet ont la priorité sur les compétences personnelles si elles partagent le même nom.
Pour plus d’informations, consultez « Ajout de compétences d’agent pour CLI GitHub Copilot ».
hooks/
Stockez les scripts de hook au niveau de l’utilisateur ici. Ces hooks s’appliquent à toutes vos sessions. Vous pouvez également définir des hooks inline dans votre fichier de configuration utilisateur (~/.copilot/settings.json) à l’aide de la hooks clé. Les hooks au niveau du référentiel (in .github/hooks/) sont chargés en même temps que les hooks au niveau de l’utilisateur.
Pour plus d’informations, consultez « Utilisation de crochets avec CLI GitHub Copilot ».
extensions/
Stockez les fichiers d’extension au niveau de l’utilisateur ici. Les extensions de ce répertoire sont disponibles entre les sessions.
Vous pouvez créer manuellement des fichiers dans ce répertoire ou générer une extension, puis modifier le fichier généré.
Fichiers gérés automatiquement
Les éléments suivants sont gérés par l’interface CLI. Vous ne devez généralement pas les modifier manuellement.
config.json
Stocke l’état d’application interne géré automatiquement par l’interface CLI, notamment les données d’authentification, les métadonnées du plug-in installé et d’autres informations d’exécution. Vous ne devez normalement pas avoir besoin de modifier ce fichier.
Remarque
Les versions antérieures de Copilot pour CLI stockaient à la fois les paramètres utilisateur et l’état de l'application dans config.json. Les paramètres modifiables par l’utilisateur se trouvent désormais dans settings.json. Tous les paramètres utilisateur dans config.json au démarrage sont automatiquement migrés vers settings.json. Les champs d’état de l’application( tels que loggedInUsers, , installedPlugins``firstLaunchAtet staff) restent dans config.json et ne sont pas migrés.
permissions-config.json
Stocke vos décisions enregistrées concernant les autorisations d'outils et de répertoires, organisées par emplacement de projet. Lorsque vous approuvez un outil ou accordez l’accès à un répertoire pour l’emplacement actuel, l’interface CLI enregistre la décision ici afin de ne pas être invité à nouveau dans le même référentiel ou répertoire.
Remarque
Si vous souhaitez réinitialiser les autorisations d’un projet, vous pouvez supprimer l’entrée appropriée de ce fichier. Toutefois, la modification du fichier pendant l’exécution d’une session peut entraîner un comportement inattendu. L’interface CLI supprime automatiquement les entrées dont le chemin d’accès d’emplacement n’existe plus sur le disque.
Emplacement du fichier
Copilot pour CLI résout le fichier à partir du répertoire de configuration.
| Priority | Source | Fichier utilisé |
|---|---|---|
| 1 | --config-dir=DIRECTORY | DIRECTORY/ |
| 2 | COPILOT_HOME | $COPILOT_HOME/ |
| 3 | Default | ~/ |
L’interface CLI utilise uniquement le premier répertoire de configuration applicable dans cet ordre. Ne charge pas non plus permissions-config.json depuis des emplacements de priorité inférieure.
L’option --config-dir est une option héritée. Préférez COPILOT_HOME lorsque vous devez modifier le répertoire de configuration.
Sur Windows, le fichier par défaut est généralement :
C:\Users\YOUR-USER\.copilot\permissions-config.json
Les builds plus anciennes utilisaient un fichier sans extension nommé permissions-config. Si permissions-config.json n’existe pas, mais que le fichier sans extension existe, l’interface de ligne de commande continue de prendre en compte l’ancien fichier. Utiliser permissions-config.json pour les nouvelles modifications.
Les anciens emplacements de configuration basés sur XDG sont transférés vers ~/.copilot au démarrage lorsque COPILOT_HOME n’est pas défini.
Clés de localisation
L’objet locations de niveau supérieur a pour clé un chemin absolu.
- Pour un dépôt Git, utilisez la racine Git servant à définir la portée des autorisations.
- Les arborescences de travail liées renvoient à la racine du référentiel principal, de sorte qu’elles partagent les mêmes droits que l’arborescence de travail principale.
- Les sous-modules utilisent leur propre répertoire de travail.
- Pour un répertoire qui ne se trouve pas dans un référentiel Git, utilisez le répertoire de travail actuel normalisé.
La clé doit correspondre à l’emplacement où Copilot pour CLI s’exécute. Si la clé ne correspond pas, les approbations enregistrées ne s’appliquent pas.
L’interface CLI charge les approbations de l’emplacement correspondant lorsqu’une session démarre et lorsque le répertoire de travail actif change.
Schema
Le fichier doit contenir un objet JSON.
| Champ | Type | Obligatoire | Default | Valeurs autorisées | Description |
|---|---|---|---|---|---|
locations | Object | Non | {} | Clés de chemin d’accès absolus | Mappage des clés de localisation aux approbations enregistrées. |
locations.<key> | Object | Non | {} | Toute clé de localisation absolue | Approbations enregistrées pour un référentiel ou un répertoire. |
locations.<key>.tool_approvals | Array | Non | [] | Objets de validation | Outils approuvés pour cet emplacement. |
locations.<key>.allowed_directories | Tableau de chaînes | Non | [] | Chemins d’accès absolus au répertoire | Répertoires supplémentaires auxquels la porte de chemin d’accès peut accéder pour cet emplacement. Chaque répertoire doit exister lorsque l’interface CLI applique la configuration. |
locations.<key>.tool_approvals[].kind | String | Oui | None | ||
commands, read, write, mcp, mcp-sampling, memory, custom-tool, extension-management, extension-permission-access | Sélectionne le type d’approbation. | ||||
command | Tableau de chaînes | Oui, pour commands | None | Identificateurs de commande | Identifiants des commandes shell à approuver. |
serverName | String | Oui, pour mcp et mcp-sampling | None | Nom du serveur MCP | Serveur MCP à approuver. |
toolName | Chaîne ou null | Oui, pour mcp | None | Nom de l’outil MCP ou null | Outil MCP à approuver. Utilisez null pour approuver tous les outils sur le serveur. |
toolName | String | Oui, pour custom-tool | None | Nom de l’outil personnalisé | Outil personnalisé à approuver par son nom exact. |
operation | String | Non, pour extension-management | Omis | Nom de l’opération d’extension | Opération de gestion des extensions à approuver. Omettez ce champ pour approuver toutes les opérations de gestion des extensions. |
extensionName | String | Oui, pour extension-permission-access | None | Nom de l’extension | Extension dont l’accès aux fonctionnalités avec contrôle d’autorisation est approuvé. |
permissions-config.json ne prend pas en charge les règles de refus, les règles « ask », les modes par défaut, les règles d’URL, le filtrage d’outils ou la stratégie partagée locale du référentiel. Pour ces comportements, utilisez des options de ligne de commande telles que --deny-tool, , --available-tools``--excluded-tools, --allow-url, , et --deny-url. Les règles d’URL enregistrées sont stockées dans settings.json, et non dans permissions-config.json.
Les champs inconnus ne font pas partie du schéma. L’interface CLI peut les ignorer, et les écritures ultérieures peuvent les supprimer.
Types d’approbation
Chaque élément dans tool_approvals doit être l’un des objets suivants.
kind | Champs obligatoires | Champs facultatifs | Meaning |
|---|---|---|---|
commands | command | None | Approuve les identificateurs de commande shell correspondants. |
read | None | None | Approuve les demandes d’accès à l’outil de lecture. Les sessions CLI interactives approuvent déjà les lectures automatiquement, ce qui est généralement inutile. |
write | None | None | Approuve les demandes d’outils de création et de modification de fichier. Une invite de chemin peut encore s’appliquer à des chemins situés hors des répertoires autorisés. |
mcp | |||
serverName, toolName | None | Approuve un outil MCP, ou chaque outil sur le serveur quand toolName c’est null. | |
mcp-sampling | serverName | None | Approuve les demandes d’échantillonnage MCP pour un serveur. |
memory | None | None | Approuve les demandes d’écriture en mémoire et de vote. |
custom-tool | toolName | None | Approuve un outil personnalisé par son nom exact. |
extension-management | None | operation | Autorise la gestion des extensions. Si operation est omis, toutes les opérations de gestion des extensions s’appliquent. |
extension-permission-access | extensionName | None | Approuve l’accès d’une extension aux fonctionnalités de contrôle d’autorisation. |
Pour les approbations MCP, serverName doit correspondre exactement au nom du serveur MCP configuré. Utilisez le nom de serveur brut de votre configuration MCP, et non un préfixe de nom d’outil nettoyé.
Correspondance des commandes shell
permissions-config.json ne prend pas en charge les expressions régulières ni les motifs génériques de type glob. Les valeurs de chaîne sont mises en correspondance de manière littérale, sauf qu’un :* final dans une valeur d’interpréteur de commandes commandIdentifiers correspond au texte situé avant :*, soit seul, soit suivi d’un espace et d’autre texte. Une plaine * n’a pas de signification particulière, donc git* ne correspond git statuspas .
| Modèle | Correspondances | Ne correspond pas |
|---|---|---|
git status | git status | git status --short |
git:* | ||
git, git status, git push | gitea | |
gh pr:* | ||
gh pr, gh pr view, gh pr create | gh repo view |
Mise en correspondance des répertoires
Les allowed_directories entrées permettent à Copilot pour CLI d’accéder aux chemins situés dans ces répertoires sans demande distincte de chemin d’accès. Ils n’approuvent pas le fonctionnement même de l’outil. Par exemple, la modification d’un fichier dans un répertoire autorisé peut toujours nécessiter une write approbation.
Chaque allowed_directories entrée doit être un répertoire absolu, non vide et accessible. L’interface en ligne de commande (CLI) résout les liens symboliques avant de comparer les chemins d’accès, bloque les chemins réseau UNC sauf s’il s’agit de chemins locaux de longueur étendue, compare les chemins d’accès sans tenir compte de la casse sous Windows et les compare en tenant compte de la casse sur les autres plateformes. Si une entrée ne peut pas être appliquée, l’interface CLI enregistre un avertissement et ignore cette entrée.
Exemples
Autorisez toutes les sous-commandes Git et accédez à un répertoire local supplémentaire :
{
"locations": {
"C:\\src\\my-repo": {
"tool_approvals": [
{
"kind": "commands",
"commandIdentifiers": ["git:*"]
}
],
"allowed_directories": ["C:\\src\\shared-docs"]
}
}
}
{
"locations": {
"C:\\src\\my-repo": {
"tool_approvals": [
{
"kind": "commands",
"commandIdentifiers": ["git:*"]
}
],
"allowed_directories": ["C:\\src\\shared-docs"]
}
}
}
Autoriser les commandes sélectionnées tout en demandant toujours une confirmation avant toute écriture de fichier :
{
"locations": {
"/Users/YOUR-USER/src/my-repo": {
"tool_approvals": [
{
"kind": "commands",
"commandIdentifiers": [
"git status",
"git diff",
"git log",
"npm test",
"npm run build"
]
}
]
}
}
}
{
"locations": {
"/Users/YOUR-USER/src/my-repo": {
"tool_approvals": [
{
"kind": "commands",
"commandIdentifiers": [
"git status",
"git diff",
"git log",
"npm test",
"npm run build"
]
}
]
}
}
}
Approuver les écritures de fichiers et un serveur MCP pour un référentiel :
{
"locations": {
"/home/YOUR-USER/src/my-repo": {
"tool_approvals": [
{
"kind": "write"
},
{
"kind": "mcp",
"serverName": "github-mcp-server",
"toolName": null
}
]
}
}
}
{
"locations": {
"/home/YOUR-USER/src/my-repo": {
"tool_approvals": [
{
"kind": "write"
},
{
"kind": "mcp",
"serverName": "github-mcp-server",
"toolName": null
}
]
}
}
}
Approuvez un outil MCP, des écritures de mémoire et un accès aux autorisations d’extension :
{
"locations": {
"C:\\src\\my-repo": {
"tool_approvals": [
{
"kind": "mcp",
"serverName": "github-mcp-server",
"toolName": "search_code"
},
{
"kind": "memory"
},
{
"kind": "extension-permission-access",
"extensionName": "my-extension"
}
]
}
}
}
{
"locations": {
"C:\\src\\my-repo": {
"tool_approvals": [
{
"kind": "mcp",
"serverName": "github-mcp-server",
"toolName": "search_code"
},
{
"kind": "memory"
},
{
"kind": "extension-permission-access",
"extensionName": "my-extension"
}
]
}
}
}
session-state/
Contient des données d’historique de session, organisées par ID de session dans les sous-répertoires. Chaque répertoire de session stocke un journal des événements (events.jsonl) et des artefacts d’espace de travail (plans, points de contrôle, fichiers suivis). Ces données activent la reprise de session (--resume ou --continue).
La suppression de fichiers de ce répertoire supprime uniquement les copies locales. Si vous avez synchronisé des sessions avec votre GitHub compte, les données synchronisées sont stockées séparément et ne sont pas affectées par la suppression de fichier local. Vous pouvez supprimer ou masquer les sessions synchronisées à partir de GitHub.com. Pour plus d’informations, consultez « À propos des CLI GitHub Copilot données de session ».
command-history-state/
Contient les données d’historique des commandes utilisées pour la recherche inversée (Ctrl+R) et la navigation dans l’historique dans l’interface interactive. Ce répertoire est géré automatiquement et ne doit pas être modifié.
session-store.db
Base de données SQLite utilisée par l’interface CLI pour les données intersession, telles que l’indexation et la recherche de point de contrôle. Ce fichier est géré automatiquement et ne doit pas être modifié.
Si vous supprimez ce fichier, vous pouvez le reconstruire à l’aide de la /chronicle reindex commande. La réindexation synchronise également vos données de session avec votre compte.
logs/
Contient des fichiers journaux pour les sessions CLI. Chaque session crée un fichier journal nommé process-{timestamp}-{pid}.log. Ces fichiers sont utiles pour déboguer des problèmes.
L’interface CLI peut également créer des journaux propres à certaines extensions dans le répertoire logs/extensions/.
Ceci est distinct de ~/.copilot/extensions/, qui stocke le code d’extension créé par l’utilisateur.
Conseil
Pour trouver le fichier journal de votre session active, entrez /session dans une session interactive. La sortie inclut le chemin complet du fichier journal, ainsi que d’autres détails de session tels que l’ID de session, la durée et le répertoire de travail.
installed-plugins/
Contient les fichiers des plug-ins que vous avez installés. Les plug-ins installés à partir d’une Place de marché sont stockés sous installed-plugins/{marketplace-name}/{plugin-name}/. Les plug-ins directement installés sont stockés sous installed-plugins/_direct/. Gérez les plug-ins à l’aide copilot plugin des commandes plutôt que de modifier ce répertoire directement.
Pour plus d’informations, consultez « Référence du plug-in CLI GitHub Copilot ».
plugin-data/
Contient des données persistantes pour les plug-ins installés, organisées par nom de la Place de marché et du plug-in. Ces données sont gérées par les plug-ins eux-mêmes et ne doivent pas être modifiées manuellement.
ide/
Contient des fichiers de verrouillage et l'état pour les intégrations IDE (par exemple, lorsque Copilot pour CLI se connecte à Visual Studio Code). Ce répertoire est géré automatiquement.
mcp-oauth-config/
Contient les fichiers relatifs aux jetons OAuth MCP, à l’enregistrement et au mécanisme de secours PKCE lorsque le stockage basé sur le trousseau n’est pas disponible. Ce répertoire est géré automatiquement.
mcp-secrets/
Contient le stockage de secours sous forme de fichiers ainsi qu’un index des espaces réservés des secrets MCP lorsque le stockage basé sur le trousseau n’est pas disponible. Ce répertoire est géré automatiquement.
Modification de l’emplacement du répertoire de configuration
Pour remplacer l’emplacement par défaut ~/.copilot , définissez la COPILOT_HOME variable d’environnement sur le chemin du répertoire que vous souhaitez utiliser.
export COPILOT_HOME=/path/to/my/copilot-config
export COPILOT_HOME=/path/to/my/copilot-config
Éléments à prendre en compte
-
COPILOT_HOMEremplace l’intégralité du chemin d’accès~/.copilot. La valeur que vous définissez doit être le chemin complet du répertoire que vous souhaitez utiliser pour les fichiers de configuration et les sous-répertoires. -
La modification du répertoire signifie que votre configuration existante, l’historique des sessions, les plug-ins installés et les autorisations enregistrées sont introuvables dans le nouvel emplacement. Copiez ou déplacez le contenu de
~/.copilotvers le nouvel emplacement si vous souhaitez le conserver. -
Le répertoire de cache (utilisé pour les caches de la Place de marché, les packages de mise à jour automatique et d’autres données éphémères) suit les conventions de plateforme et n’est pas affecté par
COPILOT_HOME. Il se trouve à :- macOS :
~/Library/Caches/copilot - Linux :
$XDG_CACHE_HOME/copilotou~/.cache/copilot - Windows :
%LOCALAPPDATA%/copilot
Pour remplacer le répertoire du cache séparément, définissez
COPILOT_CACHE_HOME. - macOS :
Ce que vous pouvez supprimer en toute sécurité
| Élément | Sûr de supprimer ? | Résultat |
|---|---|---|
agents/, skills/, hooks/ | Non recommandé | Vous perdrez vos personnalisations personnelles. Sauvegardez d’abord. |
config.json | Avec précaution | Réinitialise l’état de l’application, y compris l’authentification. Il sera nécessaire de vous réauthentifier, et l’interface en ligne de commande (CLI) détectera de nouveau l’état interne lors du prochain lancement. |
copilot-instructions.md, instructions/ | Non recommandé | Vous perdrez vos instructions personnalisées personnelles. Sauvegardez d’abord. |
extensions/ | Non recommandé | Vous perdrez vos extensions personnelles. Sauvegardez d’abord. |
installed-plugins/ | Non recommandé | Utilisez copilot plugin uninstall à la place pour vous assurer que les métadonnées config.json du plug-in restent précises. |
logs/ | Oui | Les fichiers journaux sont recréés à chaque session. La suppression de ces éléments n’a aucun impact fonctionnel. |
lsp-config.json | Non recommandé | Vous perdrez vos définitions de serveur LSP au niveau de l’utilisateur. Sauvegardez d’abord. |
mcp-config.json | Non recommandé | Vous perdrez vos définitions de serveur MCP au niveau de l’utilisateur. Sauvegardez d’abord. |
mcp-oauth-config/ | Avec précaution | Supprime l’état local de secours de l’authentification OAuth MCP. Vous devrez peut-être ré-authentifier les serveurs MCP. |
mcp-secrets/ | Avec précaution | Supprime l’état local de secours des secrets MCP ainsi que les mappages associés. Les serveurs MCP sauvegardés par secret peuvent avoir besoin de reconfiguration. |
permissions-config.json | Avec précaution | Réinitialise toutes les autorisations enregistrées. L'interface CLI vous demandera à nouveau des approbations d'outils et de répertoires. |
plugin-data/ | Oui | Les données persistantes du plug-in sont recréations si nécessaire. |
session-state/ | Avec précaution | La suppression supprime l’historique des sessions. Vous ne pourrez plus reprendre les sessions passées. |
command-history-state/ | Avec précaution | La suppression supprime l’historique des commandes. Vous ne pourrez plus rechercher les commandes précédentes avec Ctrl+R. |
session-store.db | Avec précaution | La suppression supprime les données entre sessions. Le fichier est recréé automatiquement. |
settings.json | Avec précaution | Réinitialise toutes les préférences utilisateur aux valeurs par défaut. Vous devez reconfigurer vos paramètres. |
Paramètres du fichier de configuration
Les paramètres sont appliqués dans cet ordre (les suivants remplacent les précédents) :
- Valeurs par défaut intégrées
- Paramètres gérés par la gestion des appareils mobiles (MDM)
- Paramètres utilisateur (
~/.copilot/settings.json) - Paramètres du référentiel (
.github/copilot/settings.json) - Paramètres locaux (
.github/copilot/settings.local.json) - Variables d’environnement
- Indicateurs de ligne de commande
Les paramètres gérés par MDM sont chargés au démarrage et fusionnent avec les paramètres utilisateur comme base de référence de la stratégie. Pour la plupart des clés, les paramètres utilisateur peuvent remplacer cette ligne de base. Pour permissions.disableBypassPermissionsMode, une valeur MDM de "disable" prévaut toujours. Pour plus d’informations, consultez les paramètres managés MDM.
| Étendue | Location | Objectif |
|---|---|---|
| User | ~/ | 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/ | Configuration du dépôt partagé (enregistrée dans le dépôt). |
| Local | .github/ | Remplacements personnels (ajouter à .gitignore). |
L’interface CLI lit également .claude/settings.json et .claude/settings.local.json pour le sous-ensemble partagé de paramètres de dépôt commun à plusieurs outils (tels que companyAnnouncements, disableAllHooks, enabledPlugins, extraKnownMarketplaces et hooks).
Paramètres utilisateur (~/.copilot/settings.json)
Ces paramètres s’appliquent à toutes vos sessions et référentiels. Vous pouvez utiliser la /settings commande de barre oblique pour exécuter une boîte de dialogue interactive, ou utiliser des commandes de barre oblique spécifiques pour mettre à jour des valeurs individuelles ou modifier ce fichier directement.
| Clé | Type | Default | Description |
|---|---|---|---|
allowedUrls | string[] | [] | URL ou domaines autorisés sans invite. Prend en charge les URL exactes, les modèles de domaine et les sous-domaines génériques (par exemple). "*.github.com" |
askUser | boolean | true | Autoriser l’agent à poser des questions de clarification. Régler sur false pour un fonctionnement entièrement autonome. Peut également être défini avec --no-ask-user. |
autoUpdate | boolean | true | Téléchargez automatiquement les mises à jour cli. |
auto | |||
"stable" | |||
| | | |||
"prerelease" | |||
"stable" | Mettre à jour le canal. Définissez sur "prerelease" pour recevoir les mises à jour en préversion. | ||
banner | |||
"always" | |||
| | | |||
"once" | |||
| | | |||
"never" | |||
"once" | Fréquence d’affichage de bannière animée. | ||
bashEnv | boolean | false | Activez la BASH_ENV prise en charge des interpréteurs de commandes bash. Peut également être défini avec --bash-env ou --no-bash-env. |
beep | boolean | true | Émettez un bip sonore lorsque l'attention est nécessaire. |
beepOnSchedule | boolean | true | Émettre un bip sonore lorsqu’une exécution planifiée /every ou /after se termine. |
built | boolean | true | Active le sous-agent Rubber Duck, qui fournit des retours critiques concernant les plans élaborés par l’agent. |
built | boolean | false | Active des invites proactives permettant d’invoquer automatiquement le sous-agent Rubber Duck. Définissez cette option sur true pour recevoir davantage de suggestions invitant à consulter Rubber Duck au cours des interactions avec l’agent. |
colorMode | |||
"default" | |||
| | | |||
"github" | |||
| | | |||
"dim" | |||
| | | |||
"high-contrast" | |||
| | | |||
"colorblind" | |||
"github" | Alias obsolète pour theme. Préférer theme. | ||
command | number | 50 | Nombre maximal de commandes récentes conservées pour l’historique des entrées et la recherche inversée. Doit être un entier compris entre 1 et 1000. |
compactPaste | boolean | true | Réduisez les grands collages (plus de 10 lignes) en jetons compacts. |
company | string[] | [] | Messages personnalisés affichés de manière aléatoire au démarrage. Un message est sélectionné de façon aléatoire chaque fois que l’interface CLI démarre. Utile pour les annonces ou les rappels au sein de l'équipe. |
continue | boolean | false | Basculez automatiquement en mode automatique lorsque le taux est limité. Lorsque true, les erreurs de dépassement de débit admissibles déclenchent un passage automatique en mode automatique et une nouvelle tentative. Ne s’applique pas aux limites globales de taux ou aux fournisseurs BYOK. |
copyOnSelect | boolean | ||
true (macOS), false (autre) | Copiez automatiquement le texte sélectionné par la souris dans le Presse-papiers système. | ||
custom | boolean | false | Utilisez uniquement des agents personnalisés locaux (aucune organisation distante ni agent d’entreprise). |
deniedUrls | string[] | [] | URL ou domaines toujours refusés. Les règles de refus sont prioritaires sur les règles d’autorisation. |
disableAllHooks | boolean | false | Désactivez tous les hooks (au niveau du référentiel et au niveau de l’utilisateur). |
disabled | string[] | [] | Noms de serveur MCP à désactiver. Les serveurs répertoriés sont configurés, mais pas démarrés. |
disabledSkills | string[] | [] | Noms de compétences à désactiver. Les compétences répertoriées sont identifiées, mais non chargées. |
dynamicRetrieval | { skills?: boolean } | Non défini | Contrôle par catégorie de la récupération d’instructions dynamiques basée sur des incorporations. Définissez skills sur false pour désactiver la récupération pour les compétences. |
effortLevel | string | "medium" | Niveau d’effort de raisonnement pour la pensée étendue : "low", "medium", "high", ou "xhigh". Les niveaux supérieurs utilisent davantage de calcul. |
enabledMcpServers | string[] | [] | Activez les serveurs MCP intégrés qui sont désactivés par défaut. |
enabledPlugins | Record<string, boolean> | {} | Installation automatique du plug-in déclaratif. Les clés sont des spécifications de plug-in ; les valeurs sont true (activées) ou false (désactivées). |
experimental | boolean | false | Activer les fonctionnalités expérimentales. Peut également être activé avec l'option --experimental de ligne de commande ou la commande slash /experimental. |
extra | Record<string, {...}> | {} | Places de marché de plug-in supplémentaires. Chaque clé est un nom de place de marché ; la valeur spécifie la source ("directory", "git"ou "github"). |
footer | object | — | Contrôle les éléments qui apparaissent dans la ligne d’état. Les sous-clés incluent showModelEffort, showDirectory, showBranch, showContextWindow, showQuota, showAgent, showAiUsed, showCodeChanges, showUsername, showSandbox, showYolo et showCustom (toutes boolean). Géré par la /statusline commande slash. |
hooks | object | — | Définitions de hooks au niveau utilisateur intégrées, indexées par nom d'événement. Utilise le même schéma que les .github/ fichiers. Consultez « Utilisation de crochets avec CLI GitHub Copilot ». |
ide.autoConnect | boolean | true | Connectez-vous automatiquement à un espace de travail IDE au démarrage. Quand false, vous pouvez toujours vous connecter manuellement à l’aide de la commande /ide. |
ide.open | boolean | true | Ouvrez les différences de modification de fichier dans l’IDE connecté pour approbation. Lorsque false, les approbations de modification de fichier sont affichées uniquement dans le terminal. |
include | boolean | true | Ajoutez une mention Co-authored-by aux commits Git effectués par l’assistant.. |
keepAlive | |||
"on" | |||
| | | |||
"off" | |||
| | | |||
"busy" | |||
"off" | Mode maintien en vie appliqué au démarrage de l’interface CLI. | ||
"on" empêche toujours le système de se mettre en veille, "busy" empêche la mise en veille uniquement pendant l’exécution de l’agent, et "off" désactive le mode veille. Également configurable avec la commande /keep-alive slash. | |||
logLevel | |||
"none" | |||
| | | |||
"error" | |||
| | | |||
"warning" | |||
| | | |||
"info" | |||
| | | |||
"debug" | |||
| | | |||
"all" | |||
| | | |||
"default" | |||
"default" | Verbosité de la journalisation. | ||
mergeStrategy | |||
"rebase" | |||
| | | |||
"merge" | |||
| — | Stratégie de résolution des conflits pour /pr fix conflicts. Lorsqu’il est défini sur "rebase", les conflits sont résolus en appliquant un rebase sur la branche de base. Lorsque la valeur est définie "merge", la branche de base est fusionnée dans la branche de fonctionnalité. S’il n’est pas configuré, une boîte de dialogue sélecteur s’affiche. | ||
model | string | varie | Modèle IA à utiliser. Définissez cette option "auto" pour laisser Copilot choisir automatiquement le modèle le mieux disponible. Géré par la /model commande slash. |
mouse | boolean | true | Activez la prise en charge de la souris. Peut également être défini avec --mouse ou --no-mouse. |
permissions.disable | string | — | Lorsqu’il est défini sur "disable", toutes les options « allow-all » (--allow-all-tools, --allow-all-paths, --allow-all-urls, --allow-all, --yolo) sont désactivées au démarrage et ne peuvent pas être utilisées pour accorder des privilèges élevés. |
pinnedPrompts | boolean | true | Épinglez le prompt utilisateur de la section actuelle juste sous la barre supérieure lors du défilement de la chronologie, afin qu’il soit toujours clair à quelle requête correspond le résultat affiché. Concerne uniquement l’interface utilisateur CLI — n’a aucun effet sur les instructions envoyées au modèle. |
powershellFlags | string[] | ["-NoProfile", "-NoLogo"] | Indicateurs transmis à PowerShell au démarrage. Sur Windows, l’interface CLI préfère PowerShell 7+ (pwsh) et revient à Windows PowerShell (powershell.exe) quand pwsh n’est pas disponible. Windows uniquement. |
proxy | string | Non défini | Nom du principal de service (SPN) pour l’authentification proxy Kerberos/Negotiate, qui remplace celui dérivé HTTP/<proxy-host>. |
proxyUrl | string | Non défini | URL du proxy pour les requêtes HTTP(S) (par exemple, http:/). Remplacée par les variables d’environnement HTTP_PROXY ou HTTPS_PROXY (quelle que soit la casse). |
remote | |||
"on" | |||
| | | |||
"off" | |||
"on" | Contrôle la synchronisation de session et l’accès à distance. Réglez cette option sur "off" pour conserver les données de session uniquement en local et désactiver le contrôle distant. Peut également être défini avec --remote ou --no-remote. | ||
renderHexColors | boolean | true | Affichez des codes de couleur hexadécimaux à six chiffres écrits sous forme de code inline (par exemple `#FF0000`) en tant que nuances de couleurs. |
renderMarkdown | boolean | true | Affichez Markdown dans la sortie du terminal. |
remoteExport | boolean | true | Exportez des sessions à distance lorsque la synchronisation de session est disponible. Définir sur false pour refuser l’exportation à distance par défaut. Le paramètre remoteSessions, lorsqu’il est défini sur true, ou l’indicateur --remote, active toujours l’exportation et le pilotage, quel que soit ce paramètre. |
respectGitignore | boolean | true | Excluez les fichiers gitignored du @ sélecteur de mentions de fichier. Quand false, le sélecteur inclut des fichiers normalement exclus par .gitignore. |
sandbox.allow | boolean | true | Autoriser les commandes en bac à sable à demander un contournement pour des opérations spécifiques (affiche une invite d’autorisations) afin que les outils comme grep et glob continuent à fonctionner lorsque le bac à sable les bloque autrement. Définissez la valeur sur false pour vous désinscrire. |
sandbox.enabled | boolean | false | Limitez les commandes shell, les serveurs MCP/LSP et les outils de fichiers/web intégrés à un environnement en bac à sable avec un système de fichiers limité et un accès réseau. Activez-le à partir de la /sandbox boîte de dialogue ou avec /sandbox enable. |
sandbox.gitAuth | boolean | true | Injectez des informations d’identification Git dans le bac à sable afin que les commandes s’exécutant à l’intérieur de celle-ci puissent s’authentifier auprès de Git. Définissez la valeur sur false pour vous désinscrire. |
sandbox.ghAuth | boolean | true | Injectez les identifiants GitHub CLI (gh) dans le sandbox afin que les commandes qui y sont exécutées puissent s’authentifier auprès du GitHub CLI. Définissez la valeur sur false pour vous désinscrire. |
sandbox.user | boolean | true | Autoriser les commandes en bac à sable à atteindre les adresses de réseau local (par exemple, les serveurs de développement locaux). Définissez la valeur sur false pour vous désinscrire. |
sandbox.user | boolean | false | macOS uniquement. Accordez aux commandes en bac à sable l’accès au trousseau système. Peut également être activé à partir de la /sandbox boîte de dialogue. |
screenReader | boolean | false | Activez les optimisations du lecteur d’écran. |
scrollbar | boolean | true | Affichez la barre de défilement en affichages défilants. Définissez cette option sur false pour la masquer et utiliser toute la largeur du terminal. |
shellShortcut | boolean | false | Laissez un seul $ à l’invite ouvrir un interpréteur de commandes interactif rooté dans le répertoire de travail de la session (s’active uniquement pour une session locale, approuvée, inactive sur un TTY réel). Uniquement à portée utilisateur ou gérée — non redéfinissable au niveau du dépôt. |
showTimestamps | boolean | true | Afficher les horodatages HH:mm atténués à côté des messages des utilisateurs dans la chronologie. |
showTipsOnStartup | boolean | true | Afficher une astuce de commande aléatoire au démarrage du CLI. |
skillDirectories | string[] | [] | Répertoires supplémentaires pour rechercher des définitions de compétences personnalisées (en plus de ~/). |
statusLine | object | — | Affichage de la ligne d’état personnalisée. |
type: doit être "command". | |||
command: chemin d’accès à un script exécutable qui reçoit le json de session sur stdin et imprime le contenu d’état sur stdout. | |||
padding : nombre facultatif d’espaces de remplissage à gauche. | |||
stayInAutopilot | boolean | true | Restez en mode Autopilot une fois chaque tâche terminée. Lorsque cette option est activée, l’invite suivante que vous entrez une fois qu’une tâche est terminée est également gérée en mode Autopilot. Pour plus d’informations, consultez « Autoriser GitHub Copilot CLI à fonctionner de manière autonome ». |
store | boolean | false | Autorisez la conservation des jetons d’authentification en clair dans config.json lorsqu’aucun trousseau système n’est accessible. |
stream | boolean | true | Activez les réponses de diffusion en continu. |
streamerMode | boolean | false | Masquer les noms des modèles en préversion, les détails du quota, les horodatages des prompts et la notification de mise à jour disponible. Utile lors de la démonstration Copilot pour CLI ou du partage d’écran. |
subagents.agents | object | {} | Configuration du modèle par agent, indexée par nom d’agent. Chaque valeur est un objet avec des champs facultatifs model (chaîne), effortLevel (chaîne) et contextTier ("default", "long_context"ou "inherit") . Définissez n’importe quel champ sur "inherit" pour utiliser la valeur de la session parente au moment de l’envoi. Utilisez la /subagents commande barre oblique pour configurer ces paramètres de manière interactive. |
subagents.disabled | string[] | [] | Liste des noms d’agents à empêcher d’être exécutés. Seul l’agent rubber-duck ne peut pas être désactivé via ce paramètre. Tous les autres agents intégrés( y compris explore, , task, code-review``general-purpose, researchet security-review) peuvent être désactivés. |
subagents.max | number | basé sur un plan | Nombre maximal de sous-agents simultanés pour cette session. Uniquement honoré pour les utilisateurs de facturation basés sur l’utilisation ; ignoré pour tous les autres plans. Plafonné à 32. Consultez « Référence de commande CLI pour GitHub Copilot ». |
subagents.max | number | 6 | Profondeur maximale d’imbrication des sous-agents. Uniquement honoré pour les utilisateurs de facturation basés sur l’utilisation ; ignoré pour tous les autres plans. Plafonné à 256. Consultez « Référence de commande CLI pour GitHub Copilot ». |
tabs.enabled | boolean | true | Affichez la barre d’onglets d’accueil. Définissez-le sur false pour le masquer entièrement. |
tabs.hide | string[] | [] | Identificateurs d’onglet à masquer. Valeurs acceptées : "copilot", "agents", "issues", "pull-requests", "gists" (insensible à la casse). |
tabs.sort | string[] | [] | Ordre dans lequel les onglets sont affichés. Les onglets non répertoriés conservent leur ordre relatif par défaut après les onglets répertoriés. Les identificateurs inconnus sont ignorés. |
terminalProgress | boolean | true | Émettre des indicateurs de progression de terminal OSC 9;4 pendant que l’agent travaille. Les terminaux pris en charge incluent Terminal Windows, iTerm2, Ghostty et ConEmu. |
theme | |||
"default" | |||
| | | |||
"github" | |||
| | | |||
"dim" | |||
| | | |||
"high-contrast" | |||
| | | |||
"colorblind" | |||
"github" | Palette de couleurs pour la sortie du terminal. Géré par les commandes /settings et /theme slash. | ||
colorMode est un alias déconseillé pour ce paramètre. | |||
toolSearch | boolean | en fonction du modèle et des fonctionnalités | Contrôle la recherche d’outils (chargement différé des outils). Définissez toolSearch: false pour désactiver la recherche d’outils. |
update | boolean | true | Afficher l’intention actuelle dans l’onglet terminal ou le titre de la fenêtre. |
Conseil
Exécutez copilot help sandbox pour obtenir la documentation de référence complète du bac à sable, y compris les hôtes compatibles (macOS Seatbelt, bubblewrap sous Linux et Windows) ainsi que toutes les clés de configuration sandbox.
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. Ils sont commités dans le référentiel et partagés avec les collaborateurs.
Remarque
Les clés liées au plug-in dans le fichier de configuration du référentiel (enabledPlugins et extraKnownMarketplaces) sont également lues par Agent cloud Copilot, pas seulement Copilot pour CLI. Cela vous permet d’activer les mêmes plug-ins pour les deux clients à partir d’un seul fichier. Pour plus d’informations sur les plug-ins, consultez À propos des GitHub Copilot plug-ins.
Seules les clés répertoriées dans le tableau suivant sont prises en charge au niveau du référentiel. Toutes les autres clés, y compris les clés valides dans le fichier de configuration utilisateur, sont ignorées en mode silencieux. Chaque clé prise en charge dispose d’une stratégie de fusion directionnelle qui garantit que la surcharge reste fermée en cas d’échec et sécurisée.
| Clé | Type | Comportement de la fusion | Description |
|---|---|---|---|
company | string[] | Remplacé : le référentiel est prioritaire | Messages affichés de manière aléatoire au démarrage. |
contextTier | |||
"default" | |||
| | | |||
"long_context" | |||
| Remplacé : le référentiel est prioritaire | Épinglez le niveau de contexte par défaut. | ||
deniedUrls | string[] | Union : le référentiel peut ajouter des entrées, mais jamais en supprimer | URL ou domaines bloqués. |
disableAllHooks | boolean | Le référentiel est prioritaire | Désactivez tous les crochets. |
disabled | string[] | Union : le référentiel peut ajouter des entrées, mais jamais en supprimer | Serveurs MCP configurés, mais pas démarrés. |
disabledSkills | string[] | Union : le référentiel peut ajouter des entrées, mais jamais en supprimer | Compétences découvertes, mais pas chargées. |
effortLevel | string | Remplacé : le référentiel est prioritaire | Fixez l’effort de raisonnement par défaut. |
enabledPlugins | Record<string, boolean> | Fusionné : le référentiel supplante l’utilisateur pour la même clé | Installation automatique du plug-in déclaratif. |
extra | 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. |
hooks | object | Fusionné : le référentiel supplante l’utilisateur pour la même clé | Définitions de hooks limitées à ce référentiel. Consultez « Utilisation de crochets avec CLI GitHub Copilot ». |
include | boolean | Remplacé : le référentiel est prioritaire | Ajoutez un trailer Co-authored-by aux commits. |
mergeStrategy | |||
"rebase" | |||
| | | |||
"merge" | |||
| Remplacé : le référentiel est prioritaire | Stratégie de résolution des conflits pour /pr fix conflicts. | ||
model | string | Remplacé : le référentiel est prioritaire | Épinglez le modèle par défaut pour ce dépôt. |
respectGitignore | boolean | Activation uniquement — le dépôt peut l’activer, jamais le désactiver | Excluez les fichiers gitignored du @ sélecteur de mentions de fichier. |
model, effortLevel, et contextTier ne s’appliquent que lorsque le répertoire de travail est de confiance.
Un plug-in activé uniquement par le biais de ce enabledPlugins référentiel est limité à ce référentiel : il installe et s’active automatiquement dans le référentiel déclarant, mais reste désactivé globalement, de sorte qu’il n’est jamais activé dans des projets non liés. Lorsque vous quittez le dépôt, ou que le dépôt désactive le plugin, son serveur MCP s’arrête et ses agents ainsi que ses compétences sont désactivés pour la session.
Liste d’autorisation des modèles au niveau du dépôt (.github/allowed_models.txt)
Limitez les modèles intégrés qu’un dépôt est autorisé à utiliser à l’aide d’une liste d’autorisation en texte brut dans .github/allowed_models.txt, située à la racine du dépôt correspondant au répertoire de travail actuel (ou dans le répertoire de travail lui-même en dehors d’un dépôt).
Chaque ligne est un motif glob appliqué aux ID de modèle, ou une directive fallback: indiquant le modèle à utiliser lorsque le modèle configuré ou demandé n’est pas autorisé :
# .github/allowed_models.txt
fallback: gpt-5.2
gpt-5.2
gpt-5.4
claude-sonnet-*
| Rule | Description |
|---|---|
* | Autoriser tous les modèles (par défaut lorsqu’aucun fichier n’est présent). |
MODEL-ID | Autoriser un ID de modèle précis. |
GLOB-PATTERN | Autoriser les identifiants de modèle qui correspondent au motif glob (par exemple, claude-sonnet-*). |
fallback: MODEL-ID | Obligatoire exactement une seule fois. Le modèle Copilot utilise lorsque le modèle actif n’est pas autorisé. |
# | Ligne de commentaire. |
Les motifs négatifs (!pattern) ne sont pas pris en charge, le modèle de secours doit être un ID exact (et non un glob), et le modèle de secours doit lui-même correspondre à l’un des globs configurés.
Copilot pour CLI réévalue la stratégie sur /cd et rejette un fichier non valide avec une erreur avant l’exécution.
La liste d’autorisation ne concerne que les modèles intégrés de Copilot. Il ne peut pas filtrer les modèles personnalisés ajoutés à l’aide de la méthode BYOK (Bring Your Own API Keys). Les modèles BYOK restent répertoriés et sélectionnables, quels que soient les modèles que vous configurez, et la fallback: directive ne s’applique jamais à ces modèles. Pour plus d’informations, consultez « Activation de modèles personnalisés pour GitHub Copilot dans votre entreprise » et « Activation de modèles personnalisés pour GitHub Copilot dans votre organisation ».
Paramètres locaux (.github/copilot/settings.local.json)
Créez .github/copilot/settings.local.json dans le dépôt, 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.
Paramètres gérés par MDM
Les administrateurs informatiques peuvent déployer une stratégie de référence à l’aide des paramètres gérés par la gestion des appareils mobiles (MDM), au lieu d’exiger une configuration pour chaque utilisateur. Ces paramètres définissent les valeurs par défaut au niveau de l’appareil pour les clés prises en charge et sont chargés avant les paramètres utilisateur.
Copilot pour CLI charge également les paramètres gérés par le serveur au démarrage, en plus de MDM. Les paramètres gérés par l’appareil (MDM) et par le serveur sont appliqués par clé : la valeur de MDM prévaut pour toute clé qu’il définit, et la valeur du serveur complète les clés que MDM laisse non définies. Cela permet à une organisation de définir une stratégie via mdm (par exemple) permissionstout en recevant d’autres valeurs par défaut managées (par exemple, model) à partir du serveur.
Les sessions de longue durée récupèrent et réappliquent les paramètres managés toutes les heures, de sorte que les modifications de stratégie (par exemple, une organisation qui l’active permissions.disableBypassPermissionsMode) prennent effet sans redémarrer la session.
Sources des paramètres gérés par MDM
Copilot pour CLI lit les paramètres gérés depuis des emplacements MDM propres à la plate-forme ou basés sur des fichiers.
| Platform | Type de source | Location |
|---|---|---|
| macOS | Plist MDM | com.github.copilot |
| macOS | Fichier | / |
| Windows | Registre MDM | HKLM\ |
| Windows | Fichier | %Program |
| Linux | Fichier | / |
Remarque
Sur les systèmes POSIX, Copilot pour CLI rejette les paramètres gérés stockés dans des fichiers qui sont des liens symboliques, qui n’appartiennent pas à root ou qui sont accessibles en écriture à tous.
Format de fichier
Écrire des paramètres managés basés sur des fichiers en tant que JSON.
{
"model": "auto",
"permissions": {
"disableBypassPermissionsMode": "disable"
}
}
Remarque
model est une clé de niveau supérieur. Les configurations plus anciennes qui l’ont imbriquée comme permissions.model fonctionnent toujours , le runtime revient à cet emplacement lorsque la clé de niveau model supérieur est absente, mais écrivez de nouvelles configurations avec model au niveau supérieur.
Clés prises en charge
Seules les clés suivantes sont prises en charge dans les paramètres managés MDM.
| Clé | Description |
|---|---|
allowedMcpServers | Liste d’autorisation des serveurs MCP que les utilisateurs peuvent charger, correspondant à serverUrl, serverCommand ou serverName. Les serveurs internes approuvés (par exemple, le serveur MCP intégré GitHub ) sont toujours exemptés. Le fait de laisser cette clé non définie autorise tous les serveurs non par défaut ; un tableau vide les refuse tous. Consultez la liste d’autorisation/refus du serveur MCP managé. |
deniedMcpServers | Liste de refus des serveurs MCP qui ne doivent jamais être chargés, mis en correspondance de la même manière que allowedMcpServers. Un serveur non défini par défaut correspondant est bloqué quelle que soit la liste d’autorisation : le refus l’emporte toujours. Consultez la liste d’autorisation/refus du serveur MCP managé. |
enabledPlugins | Activer ou désactiver des plug-ins spécifiques |
extra | Ajouter des places de marché de plug-in approuvées |
model | Définir un modèle par défaut pour tous les utilisateurs (remplacé par l’indicateur --model ou un modèle de session repris) |
permissions | Définir des autorisations managées, notamment disable |
remoteControl | Déterminez si les sessions sur cet appareil peuvent être contrôlées à partir d’autres appareils. |
mode est "enabled", "disabled"ou "requireSSO" (nécessite github quand défini). | |
shellShortcut | Forcer l’activation ou forcer la désactivation du $ raccourci d’interpréteur de commandes interactif pour tous les utilisateurs. Une valeur managée remplace toujours le propre shellShortcut paramètre de l’utilisateur. |
strict | Restreindre les plug-ins aux places de marché connues |
telemetry | Configuration d’exportation OpenTelemetry Push de référence : enabled, endpoint, protocol, headers, resource, captureContent, lock et serviceName. Consultez « Référence de commande CLI pour GitHub Copilot ». |
Remarque
Lorsque remoteControl.mode est "requireSSO", listez les organisations autorisées dans remoteControl.githubDotComOrganizations. Le client doit être autorisé pour l’authentification unique (SSO) pour au moins une organisation répertoriée GitHub.com ; il n’a plus besoin de l’être pour toutes.
Liste d’autorisation/refus du serveur MCP managé
Les administrateurs peuvent gérer directement les serveurs MCP via les paramètres gérés par MDM, indépendamment de la liste d’autorisation MCP de l’entreprise.
Définissez allowedMcpServers et/ou deniedMcpServers dans une source de paramètres managés :
{
"allowedMcpServers": [
{ "serverUrl": "https://mcp.example.com/*" },
{ "serverCommand": ["npx", "-y", "@example/mcp-server"] }
],
"deniedMcpServers": [
{ "serverName": "untrusted-server" }
]
}
Chaque entrée identifie un serveur à l’aide d’un seul des critères de correspondance suivants.
| Matcher | Correspondances | Remarques |
|---|---|---|
serverUrl | Un serveur distant (HTTP/SSE) par URL | Prend en charge les * caractères génériques ; le schéma et l’hôte sont mis en correspondance sans tenir compte de la casse, le chemin en tenant compte de la casse. |
${VAR} les références se développent avant la mise en correspondance. | ||
serverCommand | Un serveur stdio à partir de sa commande exacte et de ses arguments exacts, dans l’ordre | |
${VAR} les références se développent avant la mise en correspondance. | ||
serverName | Un serveur selon son libellé attribué | Les entrées de la liste d’autorisation sont limitées à [A-Za-z0-9_-]+ (aucun joker); les entrées de la liste de refus acceptent toute chaîne non vide. |
Règlement:
- Les serveurs internes approuvés (par exemple, le serveur MCP intégré GitHub ) sont toujours exemptés des deux listes.
- Unset
allowedMcpServersautorise tous les serveurs non par défaut ; un tableau vide les bloque tous (deny-all). - Non défini ou vide
deniedMcpServersne bloque rien. - Le refus l’emporte toujours—un serveur correspondant à
deniedMcpServersest bloqué même s’il correspond aussi àallowedMcpServers. - Pour les serveurs distants, une correspondance doit provenir d’une
serverUrlentrée ;serverNamecompte uniquement lorsqu’aucune entrée n’existeserverUrl. Pour les serveurs stdio, une correspondance doit provenir d’uneserverCommandentrée ;serverNamecompte uniquement lorsqu’aucune entrée n’existeserverCommand.