{"meta":{"title":"Configuration par défaut (interface CLI groupée)","intro":"Les kits sdk Node.js et .NET incluent l’interface CLI Copilot en tant que dépendance. Votre application est fournie avec tout ce dont elle a besoin, sans installation ou configuration supplémentaire requise.","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/bundled-cli","title":"Interface CLI groupée"}],"documentType":"article"},"body":"# Configuration par défaut (interface CLI groupée)\n\nLes kits sdk Node.js et .NET incluent l’interface CLI Copilot en tant que dépendance. Votre application est fournie avec tout ce dont elle a besoin, sans installation ou configuration supplémentaire requise.\n\n<!-- markdownlint-disable GHD046 GHD005 -->\n\n<!-- Suppressed: GHD046 (outdated release terminology), GHD005 (hardcoded data variable) -->\n\nLe sdk Python recommande une étape de téléchargement unique après l’installation :\n\n```bash\npython -m copilot download-runtime\n```\n\nCela télécharge le runtime correspondant et le met en cache localement. Si vous ignorez cette étape, le Kit de développement logiciel (SDK) tente de le télécharger automatiquement lors de la première utilisation en tant que secours.\n\n**Meilleur pour :** La plupart des applications : applications de bureau, outils autonomes, utilitaires CLI, prototypes, etc.\n\n## Fonctionnement\n\nLorsque vous installez le Kit de développement logiciel (SDK), le runtime Copilot est inclus automatiquement (Node.js, .NET) ou téléchargé via `python -m copilot download-runtime` (Python). Le kit de développement logiciel (SDK) le démarre comme processus enfant et communique via stdio. Il n’y a rien d’supplémentaire à configurer.\n\n![Diagramme : Organigramme montrant le processus décrit.](/assets/images/help/copilot/copilot-sdk/setup-bundled-cli-diagram-0.png)\n\n**Principales caractéristiques :**\n\n* Le fichier binaire CLI est inclus dans le Kit de développement logiciel (SDK) : aucune installation distincte n’est nécessaire\n* Le Kit de développement logiciel (SDK) gère la version cli pour garantir la compatibilité\n* Les utilisateurs s’authentifient via votre application (ou utilisent env vars / BYOK)\n* Les sessions sont gérées par utilisateur sur leur ordinateur\n\n## Démarrage rapide\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\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 import PermissionHandler\n\nclient = CopilotClient()\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!\")\nprint(response.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> Contrairement à Node.js, Python et .NET, le Kit de développement logiciel (SDK) Go n’inclut pas d’interface CLI comme dépendance automatique. Sans chemin explicite, `NewClient(nil)` utilise une CLI intégrée si disponible, puis bascule sur `copilot` sur `PATH`. Pour intégrer une interface en ligne de commande, exécutez l’[outil bundler](https://github.com/github/copilot-sdk/tree/main/go/README.md#distributing-your-application-with-an-embedded-github-copilot-cli) lors de la compilation. Vous pouvez également définir `COPILOT_CLI_PATH` ou faire pointer `Connection` vers un binaire existant. Pour plus d’informations, consultez [Configuration de l’interface CLI locale](/fr/copilot/how-tos/copilot-sdk/setup/local-cli).\n\n```golang\nclient := copilot.NewClient(nil)\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 d, ok := response.Data.(*copilot.AssistantMessageData); ok {\n    fmt.Println(d.Content)\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\nawait using var client = new CopilotClient();\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 class=\"ghd-codetab\" data-lang=\"java\" data-label=\"Java\"><div class=\"ghd-codetab-fallback-label\" role=\"heading\" aria-level=\"3\">Java</div>\n\n> \\[!NOTE]\n> Le sdk Java ne regroupe pas ni n’incorpore l’interface CLI Copilot. Installez le CLI séparément et rendez `copilot` accessible dans votre `PATH`, ou indiquez son emplacement avec `setCliPath(...)` (ou connectez-vous à un serveur CLI en cours d’exécution avec `setCliUrl(...)`).\n\n```java\nimport com.github.copilot.CopilotClient;\nimport com.github.copilot.rpc.*;\n\nvar client = new CopilotClient(new CopilotClientOptions()\n    // Point to the CLI binary installed on the system\n    .setCliPath(\"/path/to/vendor/copilot\")\n);\nclient.start().get();\n\nvar session = client.createSession(new SessionConfig()\n    .setModel(\"gpt-5.4\")\n    .setOnPermissionRequest(PermissionHandler.APPROVE_ALL)\n).get();\n\nvar response = session.sendAndWait(new MessageOptions()\n    .setPrompt(\"Hello!\")).get();\nSystem.out.println(response.getData().content());\n\nclient.stop().get();\n```\n\n</div>\n\n</div>\n\n## Stratégies d’authentification\n\nVous devez décider de la façon dont vos utilisateurs s’authentifient. Voici les modèles courants :\n\n![Diagramme : Organigramme montrant le processus décrit.](/assets/images/help/copilot/copilot-sdk/setup-bundled-cli-diagram-1.png)\n\n### Option A : informations d’identification de l’utilisateur connecté (la plus simple)\n\nL’utilisateur se connecte à l’interface CLI une seule fois, et votre application utilise ces informations d’identification. Aucun code supplémentaire n’est nécessaire : il s’agit du comportement par défaut.\n\n```typescript\nconst client = new CopilotClient();\n// Default: uses signed-in user credentials\n```\n\n### Option B : jeton via une variable d’environnement\n\nEnvoyez votre application avec des instructions pour définir un jeton, ou définissez-la par programmation :\n\n```typescript\nconst client = new CopilotClient({\n    env: {\n        COPILOT_GITHUB_TOKEN: getUserToken(),  // Your app provides the token\n    },\n});\n```\n\n### Option C : BYOK (aucune authentification GitHub nécessaire)\n\nSi vous gérez vos propres clés de fournisseur de modèles, les utilisateurs n'ont pas besoin d'GitHub comptes du tout :\n\n```typescript\nconst client = new CopilotClient();\n\nconst session = await client.createSession({\n    model: \"gpt-5.4\",\n    provider: {\n        type: \"openai\",\n        baseUrl: \"https://api.openai.com/v1\",\n        apiKey: process.env.OPENAI_API_KEY,\n    },\n});\n```\n\nPour plus d’informations, consultez **[autoTITLE](/fr/copilot/how-tos/copilot-sdk/auth/byok)** .\n\n## Gestion des sessions\n\nLes applications souhaitent généralement des sessions nommées afin que les utilisateurs puissent reprendre les conversations :\n\n```typescript\nconst client = new CopilotClient();\n\n// Create a session tied to the user's project\nconst sessionId = `project-${projectName}`;\nconst session = await client.createSession({\n    sessionId,\n    model: \"gpt-5.4\",\n});\n\n// User closes app...\n// Later, resume where they left off\nconst resumed = await client.resumeSession(sessionId);\n```\n\nL’état de session persiste à l’adresse `~/.copilot/session-state/{sessionId}/`.\n\n## Quand se déplacer\n\n| Besoin                                                                                          | Guide suivant |\n| ----------------------------------------------------------------------------------------------- | ------------- |\n| Utilisateurs se connectant avec des comptes GitHub                                              |               |\n| [configuration de GitHub OAuth](/fr/copilot/how-tos/copilot-sdk/setup/github-oauth)             |               |\n| Exécuter sur un serveur au lieu d’ordinateurs utilisateur                                       |               |\n| [Configuration des services principaux](/fr/copilot/how-tos/copilot-sdk/setup/backend-services) |               |\n| Utilisez vos propres clés de modèle                                                             |               |\n| [BYOK (apportez votre propre clé)](/fr/copilot/how-tos/copilot-sdk/auth/byok)                   |               |\n\n## Étapes suivantes\n\n* **[BYOK (apportez votre propre clé)](/fr/copilot/how-tos/copilot-sdk/auth/byok)** : Utilisez vos propres clés de fournisseur de modèles\n* **[Reprise de session et persistance](/fr/copilot/how-tos/copilot-sdk/features/session-persistence)** : Gestion avancée des sessions\n* **[Créez votre première application avec Copilot](/fr/copilot/how-tos/copilot-sdk/getting-started)** : Créer une application complète"}