{"meta":{"title":"Configuration de l’interface CLI locale","intro":"Utilisez un binaire CLI spécifique au lieu de la gestion automatique de l’interface CLI du Kit de développement logiciel (SDK). Il s’agit d’une option avancée : vous fournissez explicitement le chemin d’accès CLI et vous êtes responsable de la compatibilité de la version avec le Kit de développement logiciel (SDK).","product":"GitHub Copilot","breadcrumbs":[{"href":"/fr/copilot","title":"GitHub Copilot"},{"href":"/fr/copilot/how-tos","title":"Procédures"},{"href":"/fr/copilot/how-tos/copilot-sdk","title":"Kit de développement logiciel (SDK) Copilot"},{"href":"/fr/copilot/how-tos/copilot-sdk/setup","title":"Configurer le Kit de développement logiciel (SDK) Copilot"},{"href":"/fr/copilot/how-tos/copilot-sdk/setup/local-cli","title":"Interface CLI locale"}],"documentType":"article"},"body":"# Configuration de l’interface CLI locale\n\nUtilisez un binaire CLI spécifique au lieu de la gestion automatique de l’interface CLI du Kit de développement logiciel (SDK). Il s’agit d’une option avancée : vous fournissez explicitement le chemin d’accès CLI et vous êtes responsable de la compatibilité de la version avec le Kit de développement logiciel (SDK).\n\n<!-- markdownlint-disable GHD046 GHD005 -->\n\n<!-- Suppressed: GHD046 (outdated release terminology), GHD005 (hardcoded data variable) -->\n\n**À utiliser lorsque :** vous devez fixer une version spécifique de la CLI ou travailler avec le SDK Go (qui n’inclut pas automatiquement d’interface en ligne de commande).\n\n## Fonctionnement\n\nPar défaut, les sdk Node.js, Python et .NET incluent leur propre dépendance CLI (voir [Configuration par défaut (interface CLI groupée)](/fr/copilot/how-tos/copilot-sdk/setup/bundled-cli)). Si vous devez remplacer cela, par exemple, pour utiliser une interface CLI installée par le système, vous pouvez utiliser l’option `Connection` .\n\n![Diagramme : Organigramme montrant le processus décrit.](/assets/images/help/copilot/copilot-sdk/setup-local-cli-diagram-0.png)\n\n**Principales caractéristiques :**\n\n* Vous fournissez explicitement le chemin binaire CLI\n* Vous êtes responsable de la compatibilité de la version CLI avec le Kit de développement logiciel (SDK)\n* L’authentification utilise les identifiants de l’utilisateur connecté stockés dans le trousseau système (ou les variables d’environnement)\n* La communication s’effectue via stdio\n\n## Paramétrage\n\n### Utilisation d’un binaire CLI local\n\n<div class=\"ghd-codetabs\">\n<div class=\"ghd-codetab\" data-lang=\"typescript\" data-label=\"TypeScript\"><div class=\"ghd-codetab-fallback-label\" role=\"heading\" aria-level=\"3\">TypeScript</div>\n\n```typescript\nimport { CopilotClient } from \"@github/copilot-sdk\";\n\nconst client = new CopilotClient({\n    cliPath: \"/usr/local/bin/copilot\",\n});\n\nconst session = await client.createSession({ model: \"gpt-5.4\" });\nconst response = await session.sendAndWait({ prompt: \"Hello!\" });\nconsole.log(response?.data.content);\n\nawait client.stop();\n```\n\n</div>\n\n<div class=\"ghd-codetab\" data-lang=\"python\" data-label=\"Python\"><div class=\"ghd-codetab-fallback-label\" role=\"heading\" aria-level=\"3\">Python</div>\n\n```python\nfrom copilot import CopilotClient\nfrom copilot.session_events import AssistantMessageData\nfrom copilot.session import PermissionHandler\n\nclient = CopilotClient({\n    \"cli_path\": \"/usr/local/bin/copilot\",\n})\nawait client.start()\n\nsession = await client.create_session(on_permission_request=PermissionHandler.approve_all, model=\"gpt-5.4\")\nresponse = await session.send_and_wait(\"Hello!\")\nif response:\n    match response.data:\n        case AssistantMessageData() as data:\n            print(data.content)\n\nawait client.stop()\n```\n\n</div>\n\n<div class=\"ghd-codetab\" data-lang=\"go\" data-label=\"Go\"><div class=\"ghd-codetab-fallback-label\" role=\"heading\" aria-level=\"3\">Go</div>\n\n> \\[!NOTE]\n> Le Kit de développement logiciel (SDK) Go n’envoie pas automatiquement une interface CLI. Installez `PATH` sur `copilot`, définissez la variable d’environnement `COPILOT_CLI_PATH`, intégrez une interface en ligne de commande à l’aide de l’[outil bundler](https://github.com/github/copilot-sdk/tree/main/go/README.md#distributing-your-application-with-an-embedded-github-copilot-cli), ou faites pointer `StdioConnection.Path` vers un binaire installé.\n\n```golang\nclient := copilot.NewClient(&copilot.ClientOptions{\n    Connection: copilot.StdioConnection{Path: \"/usr/local/bin/copilot\"},\n})\nif err := client.Start(ctx); err != nil {\n    log.Fatal(err)\n}\ndefer client.Stop()\n\nsession, _ := client.CreateSession(ctx, &copilot.SessionConfig{Model: \"gpt-5.4\"})\nresponse, _ := session.SendAndWait(ctx, copilot.MessageOptions{Prompt: \"Hello!\"})\nif response != nil {\n    if d, ok := response.Data.(*copilot.AssistantMessageData); ok {\n        fmt.Println(d.Content)\n    }\n}\n```\n\n</div>\n\n<div class=\"ghd-codetab\" data-lang=\"dotnet\" data-label=\".NET\"><div class=\"ghd-codetab-fallback-label\" role=\"heading\" aria-level=\"3\">.NET</div>\n\n```csharp\nvar client = new CopilotClient(new CopilotClientOptions\n{\n    Connection = RuntimeConnection.ForStdio(path: \"/usr/local/bin/copilot\"),\n});\n\nawait using var session = await client.CreateSessionAsync(\n    new SessionConfig { Model = \"gpt-5.4\" });\n\nvar response = await session.SendAndWaitAsync(\n    new MessageOptions { Prompt = \"Hello!\" });\nConsole.WriteLine(response?.Data.Content);\n```\n\n</div>\n\n</div>\n\n## Options supplémentaires\n\n```typescript\nconst client = new CopilotClient({\n    cliPath: \"/usr/local/bin/copilot\",\n\n    // Set log level for debugging\n    logLevel: \"debug\",\n\n    // Pass extra CLI arguments\n    cliArgs: [\"--log-dir=/tmp/copilot-logs\"],\n\n    // Set working directory\n    cwd: \"/path/to/project\",\n});\n```\n\n## Utilisation de variables d’environnement\n\nAu lieu du trousseau d'accès, vous pouvez vous authentifier via des variables d’environnement. Ceci est utile pour la CI ou lorsque vous ne souhaitez pas d’authentification interactive.\n\n```bash\n# Set one of these (in priority order):\nexport COPILOT_GITHUB_TOKEN=\"gho_xxxx\"   # Recommended\nexport GH_TOKEN=\"gho_xxxx\"               # GitHub CLI compatible\nexport GITHUB_TOKEN=\"gho_xxxx\"           # GitHub Actions compatible\n```\n\nLe Kit de développement logiciel (SDK) les récupère automatiquement, sans modification du code nécessaire.\n\n## Gestion des sessions\n\nLes sessions par défaut sont éphémères. Pour créer des sessions pouvant être reprise, fournissez votre propre ID de session :\n\n```typescript\n// Create a named session\nconst session = await client.createSession({\n    sessionId: \"my-project-analysis\",\n    model: \"gpt-5.4\",\n});\n\n// Later, resume it\nconst resumed = await client.resumeSession(\"my-project-analysis\");\n```\n\nL’état de session est stocké localement à l’adresse `~/.copilot/session-state/{sessionId}/`.\n\n## Limitations\n\n| Limitation                     | Détails                                                                                                  |\n| ------------------------------ | -------------------------------------------------------------------------------------------------------- |\n| **Compatibilité des versions** | Vous devez vous assurer que votre version cli est compatible avec le Kit de développement logiciel (SDK) |\n| **Utilisateur unique**         | Les informations d’identification sont liées à la personne qui s’est connectée à l’interface CLI         |\n| **Local uniquement**           | L’interface CLI s’exécute sur la même machine que votre application                                      |\n| **Pas de multi-locataire**     | Impossible de servir plusieurs utilisateurs à partir d’une instance CLI                                  |\n\n## Étapes suivantes\n\n* **[Configuration par défaut (interface CLI groupée)](/fr/copilot/how-tos/copilot-sdk/setup/bundled-cli)** : Utiliser l’interface CLI intégrée du SDK (recommandée pour la plupart des cas d’usage)\n* **[Créez votre première application avec Copilot](/fr/copilot/how-tos/copilot-sdk/getting-started)** : Créer une application interactive complète\n* **[Authentification](/fr/copilot/how-tos/copilot-sdk/auth/authenticate)** : toutes les méthodes d’authentification en détail"}