# Lokale CLI-Einrichtung

Verwenden Sie eine bestimmte CLI-Binärdatei anstelle der automatischen CLI-Verwaltung des SDK. Dies ist eine erweiterte Option– Sie geben den CLI-Pfad explizit an, und Sie sind dafür verantwortlich, die Versionskompatibilität mit dem SDK sicherzustellen.

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

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

**Verwenden Sie dies, wenn:** Sie eine bestimmte CLI-Version festlegen müssen oder mit dem Go SDK arbeiten (das nicht automatisch eine CLI enthält).

## So funktioniert es

Standardmäßig enthalten die Node.js, Python und .NET SDKs ihre eigene CLI-Abhängigkeit (siehe [Standardsetup (gebündelte CLI)](/de/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/setup/bundled-cli)). Wenn Sie dies außer Kraft setzen müssen , z. B. um eine vom System installierte CLI zu verwenden, können Sie die `Connection` Option verwenden.

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

**Wichtige Merkmale:**

* Sie geben explizit den binären CLI-Pfad an.
* Sie sind für die CLI-Versionskompatibilität mit dem SDK verantwortlich.
* Die Authentifizierung verwendet die Anmeldeinformationen des angemeldeten Benutzers aus dem System-Schlüsselbund (oder Umgebungsvariablen)
* Die Kommunikation erfolgt über stdio

## Konfiguration

### Verwenden einer lokalen CLI-Binärdatei

<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({
    cliPath: "/usr/local/bin/copilot",
});

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_events import AssistantMessageData
from copilot.session import PermissionHandler

client = CopilotClient({
    "cli_path": "/usr/local/bin/copilot",
})
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!")
if response:
    match response.data:
        case AssistantMessageData() as data:
            print(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]
> Das Go SDK versendet keine CLI automatisch. Installieren Sie `copilot` auf `PATH`, setzen Sie die Umgebungsvariable `COPILOT_CLI_PATH`, betten Sie eine CLI mit dem [Bundler-Tool](https://github.com/github/copilot-sdk/tree/main/go/README.md#distributing-your-application-with-an-embedded-github-copilot-cli) ein oder verweisen Sie mit `StdioConnection.Path` auf eine installierte Binärdatei.

```golang
client := copilot.NewClient(&copilot.ClientOptions{
    Connection: copilot.StdioConnection{Path: "/usr/local/bin/copilot"},
})
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 response != nil {
    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
var client = new CopilotClient(new CopilotClientOptions
{
    Connection = RuntimeConnection.ForStdio(path: "/usr/local/bin/copilot"),
});

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>

## Zusätzliche Optionen

```typescript
const client = new CopilotClient({
    cliPath: "/usr/local/bin/copilot",

    // Set log level for debugging
    logLevel: "debug",

    // Pass extra CLI arguments
    cliArgs: ["--log-dir=/tmp/copilot-logs"],

    // Set working directory
    cwd: "/path/to/project",
});
```

## Verwenden von Umgebungsvariablen

Statt der Schlüsselkette können Sie sich über Umgebungsvariablen authentifizieren. Dies ist nützlich für CI oder wenn Sie keine interaktive Anmeldung wünschen.

```bash
# Set one of these (in priority order):
export COPILOT_GITHUB_TOKEN="gho_xxxx"   # Recommended
export GH_TOKEN="gho_xxxx"               # GitHub CLI compatible
export GITHUB_TOKEN="gho_xxxx"           # GitHub Actions compatible
```

Das SDK nimmt diese automatisch auf – es sind keine Codeänderungen erforderlich.

## Verwalten von Sitzungen

Sitzungen sind standardmäßig temporär. Um reaktivierbare Sitzungen zu erstellen, geben Sie Ihre eigene Sitzungs-ID an:

```typescript
// Create a named session
const session = await client.createSession({
    sessionId: "my-project-analysis",
    model: "gpt-5.4",
});

// Later, resume it
const resumed = await client.resumeSession("my-project-analysis");
```

Der Sitzungszustand wird lokal unter `~/.copilot/session-state/{sessionId}/` gespeichert.

## Einschränkungen

| Einschränkung              | Einzelheiten                                                                           |
| -------------------------- | -------------------------------------------------------------------------------------- |
| **Versionskompatibilität** | Sie müssen sicherstellen, dass Ihre CLI-Version mit dem SDK kompatibel ist.            |
| **Einzelner Benutzer**     | Anmeldeinformationen sind an die Person gebunden, die sich bei der CLI angemeldet hat. |
| **Nur lokal**              | Die CLI wird auf demselben Computer wie Ihre App ausgeführt.                           |
| **Kein Mehrfachmandant**   | Mehrere Benutzer können nicht aus einer CLI-Instanz bedient werden                     |

## Nächste Schritte

* **[Standardsetup (gebündelte CLI)](/de/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/setup/bundled-cli)**: Verwenden der integrierten CLI des SDK (empfohlen für die meisten Anwendungsfälle)
* **[Erstellen Sie Ihre erste Copilot-gestützte App](/de/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/getting-started)**: Erstellen einer vollständigen interaktiven App
* **[Authentication](/de/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/auth/authenticate)**: Alle Authentifizierungsmethoden im Detail