Nota:
SDK de Copilot actualmente está en Versión preliminar técnica. La funcionalidad y la disponibilidad están sujetas a cambios.
Conectar SDK de GitHub Copilot a tu CLI de inicio de sesión local es la manera más rápida de empezar a trabajar.
**Lo mejor para:** Proyectos personales, creación de prototipos, desarrollo local y aprendizaje del SDK.
Cómo funciona
Cuando instalas CLI de Copilot e inicias sesión, tus credenciales se almacenan en el llavero del sistema. El SDK inicia automáticamente la CLI como un proceso secundario y usa esas credenciales almacenadas. Características clave:
- El SDK genera automáticamente la CLI, sin necesidad de configuración.
- La autenticación usa las credenciales del usuario que ha iniciado sesión desde la cadena de claves del sistema.
- La comunicación se produce a través de stdio (stdin/stdout): no se abre ningún puerto de red.
- Las sesiones son locales en la máquina.
Inicio rápido
La configuración predeterminada no requiere ninguna opción.
Node.js/TypeScript
import { CopilotClient } from "@github/copilot-sdk";
const client = new CopilotClient();
const session = await client.createSession({ model: "gpt-4.1" });
const response = await session.sendAndWait({ prompt: "Hello!" });
console.log(response?.data.content);
await client.stop();
Python
from copilot import CopilotClient, PermissionHandler
client = CopilotClient()
await client.start()
session = await client.create_session(on_permission_request=PermissionHandler.approve_all, model="gpt-4.1")
response = await session.send_and_wait({"prompt": "Hello!"})
print(response.data.content)
await client.stop()
Go
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-4.1"})
response, _ := session.SendAndWait(ctx, copilot.MessageOptions{Prompt: "Hello!"})
fmt.Println(*response.Data.Content)
.NET
await using var client = new CopilotClient();
await using var session = await client.CreateSessionAsync(
new SessionConfig { Model = "gpt-4.1" });
var response = await session.SendAndWaitAsync(
new MessageOptions { Prompt = "Hello!" });
Console.WriteLine(response?.Data.Content);
El SDK controla todo: iniciar la CLI, autenticarse y administrar la sesión.
¿Cómo funciona esto internamente?
Para obtener más información sobre el orden de interacción entre los componentes, consulte el diagrama de secuencia en el github/copilot-sdkrepositorio.
Opciones de configuración
Aunque los valores predeterminados funcionan en la mayoría de los casos, puede personalizar la configuración local:
const client = new CopilotClient({
// Override CLI location (default: bundled with @github/copilot)
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",
});
Uso de variables de entorno
En lugar de la cadena de claves, puede autenticarse a través de variables de entorno. Esto es útil para CI o cuando no desea el inicio de sesión interactivo.
# Set one of these (in priority order):
export COPILOT_GITHUB_TOKEN="YOUR-GITHUB-TOKEN" # Recommended
export GH_TOKEN="YOUR-GITHUB-TOKEN" # GitHub CLI compatible
export GITHUB_TOKEN="YOUR-GITHUB-TOKEN" # GitHub Actions compatible
Reemplace YOUR-GITHUB-TOKEN con un GitHubpersonal access token válido o token OAuth. El SDK los recoge automáticamente; no se necesitan cambios en el código.
Administración de sesiones
Con la CLI local, las sesiones son efímeras de forma predeterminada. Para crear sesiones reanudables, proporcione un identificador de sesión:
// Create a named session
const session = await client.createSession({
sessionId: "my-project-analysis",
model: "gpt-4.1",
});
// Resume it in a later run
const resumed = await client.resumeSession("my-project-analysis");
El estado de sesión se almacena localmente en ~/.copilot/session-state/SESSION-ID/, donde SESSION-ID es el identificador de sesión que proporcionó.
Limitaciones
| Limitación | Detalles |
|---|
**Usuario único** | Las credenciales están vinculadas a quien haya accedido a la CLI. |
|
Solo local | La CLI se ejecuta en la misma máquina que la aplicación. |
|
Sin multiinquilino | No se pueden atender varios usuarios desde una instancia de la CLI. |
|
Requiere el inicio de sesión de la CLI | El usuario debe ejecutar copilot y autenticarse primero. |
Pasos siguientes
- Para enviar la aplicación a otros usuarios, consulta Uso de una CLI agrupada con el SDK de Copilot.
- Para admitir que varios usuarios inicien sesión con sus propias GitHub cuentas, consulte Uso de OAuth de GitHub con el SDK de Copilot.
- Para ejecutar el SDK en un servidor, consulte Configuración del SDK de Copilot para los servicios de back-end.
- Para su primer mensaje e instalación, consulte Introducción al SDK de Copilot.