Skip to main content

Локальная настройка CLI

Используйте специфический бинарный CLI вместо комплектного CLI в SDK. Это расширенный вариант — вы указываете путь CLI явно и отвечаете за совместимость версий с SDK.

Используйте когда: Нужно закрепить конкретную версию CLI или работать с Go SDK (который не включает CLI).

Принцип работы

По умолчанию SDK Node.js, Python и .NET содержат собственную зависимость CLI (см. Настройка по умолчанию (в комплекте CLI)). Если вам нужно это переопределить — например, чтобы использовать установленный системой CLI — вы можете воспользоваться этой Connection опцией.

Диаграмма: блок-схема, показывающая описанный процесс.

Ключевые характеристики:

  • Вы явно указываете бинарный путь CLI
  • Вы отвечаете за совместимость версии CLI с SDK
  • Аутентификация использует учетные данные авторизованного пользователя из системного ключа (или env vars)
  • Связь происходит через stdio

Конфигурация

Использование локального бинарного файла CLI

Языки кода navigation

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

const client = new CopilotClient({
    cliPath: "/usr/local/bin/copilot",
});

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

await client.stop();

Дополнительные параметры

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

Использование переменных среды

Вместо связки ключей можно аутентифицироваться через переменные среды. Это полезно для CI или когда вы не хотите интерактивного входа.

# 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

SDK автоматически их принимает — изменения кода не требуются.

Управление сессиями

Сессии по умолчанию эфемерны. Чтобы создать возобновляемые сессии, укажите свой собственный идентификатор сессии:

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

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

Состояние сессии хранится локально в ~/.copilot/session-state/{sessionId}/.

Ограничения

LimitationСведения
Совместимость версийВы должны убедиться, что ваша версия CLI совместима с SDK
Одиночный пользовательУчетные данные привязаны к тому, кто вошёл в CLI
Только местныеCLI работает на том же компьютере, что и ваше приложение
Нет мультиарендатораНельзя обслуживать нескольких пользователей из одного инстанса CLI

Дальнейшие действия