# Standardsetup (gebündelte CLI)

Die Node.js und .NET SDKs enthalten die Copilot CLI als Abhängigkeit – Ihre App enthält alles, was sie benötigt, ohne zusätzliche Installation oder Konfiguration erforderlich.

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

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

Das Python SDK empfiehlt nach der Installation einen einmaligen Downloadschritt:

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

Dadurch wird die passende Laufzeit heruntergeladen und lokal zwischengespeichert. Wenn Sie diesen Schritt überspringen, versucht das SDK, es automatisch bei der ersten Verwendung als Fallback herunterzuladen.

**Am besten geeignet für:** Die meisten Anwendungen – Desktop-Apps, eigenständige Tools, CLI-Dienstprogramme, Prototypen und vieles mehr.

## So funktioniert es

Wenn Sie das SDK installieren, ist die Copilot-Laufzeit automatisch enthalten (Node.js, .NET) oder wird über `python -m copilot download-runtime` heruntergeladen (Python). Das SDK startet ihn als untergeordneten Prozess und kommuniziert über stdio. Es gibt nichts Zusätzliches zu konfigurieren.

![Diagramm: Flussdiagramm mit dem beschriebenen Prozess.](/assets/images/help/copilot/copilot-sdk/setup-bundled-cli-diagram-0.png)

**Wichtige Merkmale:**

* CLI-Binärdatei ist im SDK enthalten – keine separate Installation erforderlich
* Das SDK verwaltet die CLI-Version, um die Kompatibilität sicherzustellen.
* Benutzer authentifizieren sich über Ihre App (oder verwenden Sie env vars / BYOK)
* Sitzungen werden pro Benutzer auf ihrem Computer verwaltet.

## Schnellstart

<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]
> Im Gegensatz zu Node.js, Python und .NET enthält das Go SDK keine CLI als automatische Abhängigkeit. Wenn kein expliziter Pfad angegeben ist, verwendet `NewClient(nil)` eine eingebettete CLI, wenn verfügbar, und greift andernfalls auf `copilot` unter `PATH` zurück. Um eine CLI einzubetten, führen Sie das [Bundler-Tool](https://github.com/github/copilot-sdk/tree/main/go/README.md#distributing-your-application-with-an-embedded-github-copilot-cli) zur Buildzeit aus. Sie können auch `Connection` festlegen oder ein `COPILOT_CLI_PATH` auf eine vorhandene Binärdatei verweisen lassen. Einzelheiten findest du unter [Lokale CLI-Einrichtung](/de/enterprise-cloud@latest/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]
> Das Java SDK bündelt oder bettet die Copilot CLI nicht ein. Installieren Sie die CLI separat und machen Sie `copilot` entweder in Ihrem `PATH` verfügbar oder legen Sie seinen Speicherort mit `setCliPath(...)` fest (oder verbinden Sie sich mit einem laufenden CLI-Server über `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>

## Authentifizierungsstrategien

Sie müssen entscheiden, wie Sich Ihre Benutzer authentifizieren. Hier sind die allgemeinen Muster:

![Diagramm: Flussdiagramm mit dem beschriebenen Prozess.](/assets/images/help/copilot/copilot-sdk/setup-bundled-cli-diagram-1.png)

### Option A: Anmeldeinformationen des Benutzers (am einfachsten)

Der Benutzer meldet sich einmal bei der CLI an, und Ihre App verwendet diese Anmeldeinformationen. Kein zusätzlicher Code erforderlich – dies ist das Standardverhalten.

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

### Option B: Token über Umgebungsvariable

Senden Sie Ihre App mit Anweisungen zum Festlegen eines Tokens, oder legen Sie sie programmgesteuert fest:

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

### Option C: BYOK (keine GitHub Authentifizierung erforderlich)

Wenn Sie Ihre eigenen Modellanbieterschlüssel verwalten, benötigen Benutzer überhaupt keine GitHub Konten:

```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,
    },
});
```

Ausführliche Informationen finden Sie im **[Bring Your Own Key (BYOK)](/de/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/auth/byok)** .

## Sitzungsverwaltung

Apps möchten in der Regel benannte Sitzungen, damit Benutzer Unterhaltungen fortsetzen können:

```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);
```

Der Sitzungszustand bleibt bei `~/.copilot/session-state/{sessionId}/`.

## Wann muss ich fortfahren?

| Bedarf                                                                                                              | Nächster Leitfaden |
| ------------------------------------------------------------------------------------------------------------------- | ------------------ |
| Benutzer, die sich mit GitHub-Konten anmelden                                                                       |                    |
| [Einrichtung von GitHub OAuth](/de/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/setup/github-oauth)          |                    |
| Auf einem Server anstelle von Benutzercomputern ausführen                                                           |                    |
| [Einrichtung von Back-End-Diensten](/de/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/setup/backend-services) |                    |
| Verwenden Sie Ihre eigenen Modellschlüssel                                                                          |                    |
| [Bring Your Own Key (BYOK)](/de/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/auth/byok)                      |                    |

## Nächste Schritte

* **[Bring Your Own Key (BYOK)](/de/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/auth/byok)**: Eigene Schlüssel des Modellanbieters verwenden
* **[Wiederaufnahme und Persistenz der Sitzung](/de/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/features/session-persistence)**: Erweiterte Sitzungsverwaltung
* **[Erstellen Sie Ihre erste Copilot-gestützte App](/de/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/getting-started)**: Erstellen einer vollständigen App