# Configuração padrão (CLI empacotada)

Os SDKs de Node.js e .NET incluem a CLI Copilot como uma dependência— seu aplicativo é fornecido com tudo o que precisa, sem nenhuma instalação ou configuração adicional necessária.

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

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

O SDK do Python recomenda uma etapa de download única após a instalação:

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

Isso baixa o runtime correspondente e o armazena em cache localmente. Se você ignorar essa etapa, o SDK tentará baixá-la automaticamente no primeiro uso como um fallback.

**Melhor para:** A maioria das aplicações—aplicativos para desktop, ferramentas autônomas, utilitários de linha de comando, protótipos e muito mais.

## Como funciona

Quando você instala o SDK, o ambiente de execução do Copilot é incluído automaticamente (Node.js, .NET) ou baixado via `python -m copilot download-runtime` (Python). O SDK o inicia como um processo filho e se comunica via stdio. Não há nada extra para configurar.

![Diagrama: Fluxograma mostrando o processo descrito.](/assets/images/help/copilot/copilot-sdk/setup-bundled-cli-diagram-0.png)

**Principais características:**

* O binário da CLI está incluído com o SDK — nenhuma instalação separada é necessária
* O SDK gerencia a versão da CLI para garantir a compatibilidade
* Os usuários se autenticam por meio de seu aplicativo (ou usam env vars/BYOK)
* As sessões são gerenciadas por usuário em seu computador

## Início rápido

<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]
> Ao contrário de Node.js, Python e .NET, o SDK do Go não inclui uma CLI como uma dependência automática. Sem um caminho explícito, `NewClient(nil)` usa uma CLI incorporada quando disponível e, em seguida, recorre a `copilot` em `PATH`. Para incorporar uma CLI, execute a [bundler tool](https://github.com/github/copilot-sdk/tree/main/go/README.md#distributing-your-application-with-an-embedded-github-copilot-cli) em tempo de compilação. Você também pode definir `COPILOT_CLI_PATH` ou apontar um `Connection` para um binário existente. Confira [Configuração da CLI local](/pt/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/setup/local-cli) para obter detalhes.

```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]
> O SDK do Java não agrupa ou insira a CLI do Copilot. Instale a CLI separadamente e disponibilize `copilot` em seu `PATH` local ou defina seu local com `setCliPath(...)` (ou conecte-se a um servidor da CLI em execução com `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>

## Estratégias de autenticação

Você precisa decidir como os usuários se autenticarão. Aqui estão os padrões comuns:

![Diagrama: Fluxograma mostrando o processo descrito.](/assets/images/help/copilot/copilot-sdk/setup-bundled-cli-diagram-1.png)

### Opção A: credenciais de entrada do usuário (mais simples)

O usuário entra na CLI uma vez e seu aplicativo usa essas credenciais. Nenhum código extra é necessário, esse é o comportamento padrão.

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

### Opção B: token via variável de ambiente

Envie seu aplicativo com instruções para definir um token ou defina-o programaticamente:

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

### Opção C: BYOK (nenhuma autenticação GitHub necessária)

Se você gerenciar suas próprias chaves do provedor de modelos, os usuários não precisarão de contas do GitHub de forma alguma:

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

Consulte o **[BYOK (Bring Your Own Key - traga sua própria chave)](/pt/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/auth/byok)** para obter detalhes completos.

## Gerenciamento de sessão

Normalmente, os aplicativos desejam sessões nomeadas para que os usuários possam retomar conversas:

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

O estado da sessão persiste em `~/.copilot/session-state/{sessionId}/`.

## Quando seguir em frente

| Necessidade                                                                                                              | Próximo Guia |
| ------------------------------------------------------------------------------------------------------------------------ | ------------ |
| Usuários entrando com contas GitHub                                                                                      |              |
| [Configuração do OAuth do GitHub](/pt/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/setup/github-oauth)            |              |
| Executar em um servidor em vez de computadores de usuário                                                                |              |
| [Configuração de serviços de back-end](/pt/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/setup/backend-services)   |              |
| Use as próprias chaves de modelo                                                                                         |              |
| [BYOK (Bring Your Own Key - traga sua própria chave)](/pt/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/auth/byok) |              |

## Próximas Etapas 

* **[BYOK (Bring Your Own Key - traga sua própria chave)](/pt/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/auth/byok)**: use suas próprias chaves de provedor de modelo
* **[Retomada e persistência da sessão](/pt/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/features/session-persistence)**: Gerenciamento avançado de sessão
* **[Crie seu primeiro aplicativo com tecnologia do Copilot](/pt/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/getting-started)**: Criar um aplicativo completo