# Configuration par défaut (interface CLI groupée)

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.

<!-- markdownlint-disable GHD046 GHD005 -->

<!-- Suppressed: GHD046 (outdated release terminology), GHD005 (hardcoded data variable) -->

Le sdk Python recommande une étape de téléchargement unique après l’installation :

```bash
python -m copilot download-runtime
```

Cela 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.

**Meilleur pour :** La plupart des applications : applications de bureau, outils autonomes, utilitaires CLI, prototypes, etc.

## Fonctionnement

Lorsque 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.

![Diagramme : Organigramme montrant le processus décrit.](/assets/images/help/copilot/copilot-sdk/setup-bundled-cli-diagram-0.png)

**Principales caractéristiques :**

* Le fichier binaire CLI est inclus dans le Kit de développement logiciel (SDK) : aucune installation distincte n’est nécessaire
* Le Kit de développement logiciel (SDK) gère la version cli pour garantir la compatibilité
* Les utilisateurs s’authentifient via votre application (ou utilisent env vars / BYOK)
* Les sessions sont gérées par utilisateur sur leur ordinateur

## Démarrage rapide

<div class="ghd-codetabs">
<div class="ghd-codetab" data-lang="typescript" data-label="TypeScript"><div class="ghd-codetab-fallback-label" role="heading" aria-level="3">TypeScript</div>

```typescript
import { CopilotClient } from "@github/copilot-sdk";

const client = new CopilotClient();

const session = await client.createSession({ model: "gpt-5.4" });
const response = await session.sendAndWait({ prompt: "Hello!" });
console.log(response?.data.content);

await client.stop();
```

</div>

<div class="ghd-codetab" data-lang="python" data-label="Python"><div class="ghd-codetab-fallback-label" role="heading" aria-level="3">Python</div>

```python
from copilot import CopilotClient
from copilot.session import PermissionHandler

client = CopilotClient()
await client.start()

session = await client.create_session(on_permission_request=PermissionHandler.approve_all, model="gpt-5.4")
response = await session.send_and_wait("Hello!")
print(response.data.content)

await client.stop()
```

</div>

<div class="ghd-codetab" data-lang="go" data-label="Go"><div class="ghd-codetab-fallback-label" role="heading" aria-level="3">Go</div>

> \[!NOTE]
> 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).

```golang
client := copilot.NewClient(nil)
if err := client.Start(ctx); err != nil {
    log.Fatal(err)
}
defer client.Stop()

session, _ := client.CreateSession(ctx, &copilot.SessionConfig{Model: "gpt-5.4"})
response, _ := session.SendAndWait(ctx, copilot.MessageOptions{Prompt: "Hello!"})
if d, ok := response.Data.(*copilot.AssistantMessageData); ok {
    fmt.Println(d.Content)
}
```

</div>

<div class="ghd-codetab" data-lang="dotnet" data-label=".NET"><div class="ghd-codetab-fallback-label" role="heading" aria-level="3">.NET</div>

```csharp
await using var client = new CopilotClient();
await using var session = await client.CreateSessionAsync(
    new SessionConfig { Model = "gpt-5.4" });

var response = await session.SendAndWaitAsync(
    new MessageOptions { Prompt = "Hello!" });
Console.WriteLine(response?.Data.Content);
```

</div>

<div class="ghd-codetab" data-lang="java" data-label="Java"><div class="ghd-codetab-fallback-label" role="heading" aria-level="3">Java</div>

> \[!NOTE]
> 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(...)`).

```java
import com.github.copilot.CopilotClient;
import com.github.copilot.rpc.*;

var client = new CopilotClient(new CopilotClientOptions()
    // Point to the CLI binary installed on the system
    .setCliPath("/path/to/vendor/copilot")
);
client.start().get();

var session = client.createSession(new SessionConfig()
    .setModel("gpt-5.4")
    .setOnPermissionRequest(PermissionHandler.APPROVE_ALL)
).get();

var response = session.sendAndWait(new MessageOptions()
    .setPrompt("Hello!")).get();
System.out.println(response.getData().content());

client.stop().get();
```

</div>

</div>

## Stratégies d’authentification

Vous devez décider de la façon dont vos utilisateurs s’authentifient. Voici les modèles courants :

![Diagramme : Organigramme montrant le processus décrit.](/assets/images/help/copilot/copilot-sdk/setup-bundled-cli-diagram-1.png)

### Option A : informations d’identification de l’utilisateur connecté (la plus simple)

L’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.

```typescript
const client = new CopilotClient();
// Default: uses signed-in user credentials
```

### Option B : jeton via une variable d’environnement

Envoyez votre application avec des instructions pour définir un jeton, ou définissez-la par programmation :

```typescript
const client = new CopilotClient({
    env: {
        COPILOT_GITHUB_TOKEN: getUserToken(),  // Your app provides the token
    },
});
```

### Option C : BYOK (aucune authentification GitHub nécessaire)

Si vous gérez vos propres clés de fournisseur de modèles, les utilisateurs n'ont pas besoin d'GitHub comptes du tout :

```typescript
const client = new CopilotClient();

const session = await client.createSession({
    model: "gpt-5.4",
    provider: {
        type: "openai",
        baseUrl: "https://api.openai.com/v1",
        apiKey: process.env.OPENAI_API_KEY,
    },
});
```

Pour plus d’informations, consultez **[autoTITLE](/fr/copilot/how-tos/copilot-sdk/auth/byok)** .

## Gestion des sessions

Les applications souhaitent généralement des sessions nommées afin que les utilisateurs puissent reprendre les conversations :

```typescript
const client = new CopilotClient();

// Create a session tied to the user's project
const sessionId = `project-${projectName}`;
const session = await client.createSession({
    sessionId,
    model: "gpt-5.4",
});

// User closes app...
// Later, resume where they left off
const resumed = await client.resumeSession(sessionId);
```

L’état de session persiste à l’adresse `~/.copilot/session-state/{sessionId}/`.

## Quand se déplacer

| Besoin                                                                                          | Guide suivant |
| ----------------------------------------------------------------------------------------------- | ------------- |
| Utilisateurs se connectant avec des comptes GitHub                                              |               |
| [configuration de GitHub OAuth](/fr/copilot/how-tos/copilot-sdk/setup/github-oauth)             |               |
| Exécuter sur un serveur au lieu d’ordinateurs utilisateur                                       |               |
| [Configuration des services principaux](/fr/copilot/how-tos/copilot-sdk/setup/backend-services) |               |
| Utilisez vos propres clés de modèle                                                             |               |
| [BYOK (apportez votre propre clé)](/fr/copilot/how-tos/copilot-sdk/auth/byok)                   |               |

## Étapes suivantes

* **[BYOK (apportez votre propre clé)](/fr/copilot/how-tos/copilot-sdk/auth/byok)** : Utilisez vos propres clés de fournisseur de modèles
* **[Reprise de session et persistance](/fr/copilot/how-tos/copilot-sdk/features/session-persistence)** : Gestion avancée des sessions
* **[Créez votre première application avec Copilot](/fr/copilot/how-tos/copilot-sdk/getting-started)** : Créer une application complète