{"meta":{"title":"Настройка по умолчанию (в комплекте CLI)","intro":"SDK Node.js и .NET включают Copilot CLI как зависимость — ваше приложение поставляется со всем необходимым, без дополнительной установки или настройки.","product":"GitHub Copilot","breadcrumbs":[{"href":"/ru/copilot","title":"GitHub Copilot"},{"href":"/ru/copilot/how-tos","title":"Инструкции"},{"href":"/ru/copilot/how-tos/copilot-sdk","title":"Второй пилот SDK"},{"href":"/ru/copilot/how-tos/copilot-sdk/setup","title":"Настройте Copilot SDK"},{"href":"/ru/copilot/how-tos/copilot-sdk/setup/bundled-cli","title":"Комплектный CLI"}],"documentType":"article"},"body":"# Настройка по умолчанию (в комплекте CLI)\n\nSDK Node.js и .NET включают Copilot CLI как зависимость — ваше приложение поставляется со всем необходимым, без дополнительной установки или настройки.\n\n<!-- markdownlint-disable GHD046 GHD005 -->\n\n<!-- Suppressed: GHD046 (outdated release terminology), GHD005 (hardcoded data variable) -->\n\nPython SDK рекомендует сделать шаг для одноразовой загрузки после установки:\n\n```bash\npython -m copilot download-runtime\n```\n\nЭто скачает соответствующее время выполнения и кэширует его локально. Если вы пропустите этот шаг, SDK попытается скачать его автоматически при первом использовании как запасной вариант.\n\n**Лучше всего для:** Большинство приложений — настольные приложения, отдельные инструменты, утилиты CLI, прототипы и многое другое.\n\n## Принцип работы\n\nКогда вы устанавливаете SDK, Copilot время выполнения включается автоматически (Node.js, .NET) или загружается через `python -m copilot download-runtime` (Python). SDK запускает его как дочерний процесс и общается через stdio. Нечего дополнительно настраивать.\n\n![Диаграмма: блок-схема, показывающая описанный процесс.](/assets/images/help/copilot/copilot-sdk/setup-bundled-cli-diagram-0.png)\n\n**Ключевые характеристики:**\n\n* Бинарный файл CLI входит в комплект SDK — отдельная установка не требуется\n* SDK управляет версией CLI для обеспечения совместимости\n* Пользователи аутентифицируются через ваше приложение (или используют env vars / BYOK)\n* Сессии управляются каждому пользователю на их машине\n\n## Быстрый старт\n\n<div class=\"ghd-codetabs\">\n<div class=\"ghd-codetab\" data-lang=\"typescript\" data-label=\"TypeScript\"><div class=\"ghd-codetab-fallback-label\" role=\"heading\" aria-level=\"3\">TypeScript</div>\n\n```typescript\nimport { CopilotClient } from \"@github/copilot-sdk\";\n\nconst client = new CopilotClient();\n\nconst session = await client.createSession({ model: \"gpt-5.4\" });\nconst response = await session.sendAndWait({ prompt: \"Hello!\" });\nconsole.log(response?.data.content);\n\nawait client.stop();\n```\n\n</div>\n\n<div class=\"ghd-codetab\" data-lang=\"python\" data-label=\"Python\"><div class=\"ghd-codetab-fallback-label\" role=\"heading\" aria-level=\"3\">Python</div>\n\n```python\nfrom copilot import CopilotClient\nfrom copilot.session import PermissionHandler\n\nclient = CopilotClient()\nawait client.start()\n\nsession = await client.create_session(on_permission_request=PermissionHandler.approve_all, model=\"gpt-5.4\")\nresponse = await session.send_and_wait(\"Hello!\")\nprint(response.data.content)\n\nawait client.stop()\n```\n\n</div>\n\n<div class=\"ghd-codetab\" data-lang=\"go\" data-label=\"Go\"><div class=\"ghd-codetab-fallback-label\" role=\"heading\" aria-level=\"3\">Go</div>\n\n> \\[!NOTE]\n> В отличие от Node.js, Python и .NET пакет SDK Go не включает ИНТЕРФЕЙС командной строки в качестве автоматической зависимости. Без явного пути `NewClient(nil)` использует внедренный интерфейс командной строки при наличии, а затем возвращается к `copilot``PATH`нему. Чтобы внедрить интерфейс командной строки, запустите [средство пакета](https://github.com/github/copilot-sdk/tree/main/go/README.md#distributing-your-application-with-an-embedded-github-copilot-cli) во время сборки. Вы также можете задать `COPILOT_CLI_PATH` или указать точку `Connection` в существующем двоичном файле. Дополнительные сведения см. в разделе [Локальная настройка CLI](/ru/copilot/how-tos/copilot-sdk/setup/local-cli) .\n\n```golang\nclient := copilot.NewClient(nil)\nif err := client.Start(ctx); err != nil {\n    log.Fatal(err)\n}\ndefer client.Stop()\n\nsession, _ := client.CreateSession(ctx, &copilot.SessionConfig{Model: \"gpt-5.4\"})\nresponse, _ := session.SendAndWait(ctx, copilot.MessageOptions{Prompt: \"Hello!\"})\nif d, ok := response.Data.(*copilot.AssistantMessageData); ok {\n    fmt.Println(d.Content)\n}\n```\n\n</div>\n\n<div class=\"ghd-codetab\" data-lang=\"dotnet\" data-label=\".NET\"><div class=\"ghd-codetab-fallback-label\" role=\"heading\" aria-level=\"3\">.NET</div>\n\n```csharp\nawait using var client = new CopilotClient();\nawait using var session = await client.CreateSessionAsync(\n    new SessionConfig { Model = \"gpt-5.4\" });\n\nvar response = await session.SendAndWaitAsync(\n    new MessageOptions { Prompt = \"Hello!\" });\nConsole.WriteLine(response?.Data.Content);\n```\n\n</div>\n\n<div class=\"ghd-codetab\" data-lang=\"java\" data-label=\"Java\"><div class=\"ghd-codetab-fallback-label\" role=\"heading\" aria-level=\"3\">Java</div>\n\n> \\[!NOTE]\n> Java SDK не объединяет и не встраивает Copilot CLI. Установите интерфейс командной строки отдельно и выберите `copilot``PATH` его расположение или установите его расположение с `setCliPath(...)` помощью (или подключитесь к работающему серверу CLI).`setCliUrl(...)`\n\n```java\nimport com.github.copilot.CopilotClient;\nimport com.github.copilot.rpc.*;\n\nvar client = new CopilotClient(new CopilotClientOptions()\n    // Point to the CLI binary installed on the system\n    .setCliPath(\"/path/to/vendor/copilot\")\n);\nclient.start().get();\n\nvar session = client.createSession(new SessionConfig()\n    .setModel(\"gpt-5.4\")\n    .setOnPermissionRequest(PermissionHandler.APPROVE_ALL)\n).get();\n\nvar response = session.sendAndWait(new MessageOptions()\n    .setPrompt(\"Hello!\")).get();\nSystem.out.println(response.getData().content());\n\nclient.stop().get();\n```\n\n</div>\n\n</div>\n\n## Стратегии аутентификации\n\nВам нужно решить, как ваши пользователи будут аутентифицироваться. Вот распространённые закономерности:\n\n![Диаграмма: блок-схема, показывающая описанный процесс.](/assets/images/help/copilot/copilot-sdk/setup-bundled-cli-diagram-1.png)\n\n### Вариант А: авторизованные учетные данные пользователя (самое простое)\n\nПользователь входит в CLI один раз, и ваше приложение использует эти учетные данные. Лишний код не требуется — это поведение по умолчанию.\n\n```typescript\nconst client = new CopilotClient();\n// Default: uses signed-in user credentials\n```\n\n### Вариант B: токен через переменную среды\n\nОтправьте в приложение инструкции по установке токена или программно:\n\n```typescript\nconst client = new CopilotClient({\n    env: {\n        COPILOT_GITHUB_TOKEN: getUserToken(),  // Your app provides the token\n    },\n});\n```\n\n### Вариант C: BYOK (авторизация на GitHub не требуется)\n\nЕсли вы сами управляете ключами провайдера моделей, пользователям вообще не нужны аккаунты GitHub:\n\n```typescript\nconst client = new CopilotClient();\n\nconst session = await client.createSession({\n    model: \"gpt-5.4\",\n    provider: {\n        type: \"openai\",\n        baseUrl: \"https://api.openai.com/v1\",\n        apiKey: process.env.OPENAI_API_KEY,\n    },\n});\n```\n\nСм. **[БЁК (принеси свой ключ)](/ru/copilot/how-tos/copilot-sdk/auth/byok)** для полной информации.\n\n## Управление сеансами\n\nПриложения обычно хотят иметь именованные сессии, чтобы пользователи могли возобновлять разговоры:\n\n```typescript\nconst client = new CopilotClient();\n\n// Create a session tied to the user's project\nconst sessionId = `project-${projectName}`;\nconst session = await client.createSession({\n    sessionId,\n    model: \"gpt-5.4\",\n});\n\n// User closes app...\n// Later, resume where they left off\nconst resumed = await client.resumeSession(sessionId);\n```\n\nСостояние сессии сохраняется при `~/.copilot/session-state/{sessionId}/`.\n\n## Когда двигаться дальше\n\n| Необходимость                                                                          | Следующее руководство |\n| -------------------------------------------------------------------------------------- | --------------------- |\n| Пользователи входят через аккаунты GitHub                                              |                       |\n| [Настройка GitHub OAuth](/ru/copilot/how-tos/copilot-sdk/setup/github-oauth)           |                       |\n| Запускайте на сервере, а не на пользовательских машинах                                |                       |\n| [Настройка серверных сервисов](/ru/copilot/how-tos/copilot-sdk/setup/backend-services) |                       |\n| Используйте свои собственные модели                                                    |                       |\n| [БЁК (принеси свой ключ)](/ru/copilot/how-tos/copilot-sdk/auth/byok)                   |                       |\n\n## Дальнейшие действия\n\n* **[БЁК (принеси свой ключ)](/ru/copilot/how-tos/copilot-sdk/auth/byok)**: Используйте свои собственные ключи поставщика моделей\n* **[Возобновление сессии и сохранение](/ru/copilot/how-tos/copilot-sdk/features/session-persistence)**: Продвинутое управление сессиями\n* **[Создайте своё первое приложение на базе Copilot](/ru/copilot/how-tos/copilot-sdk/getting-started)**: Создайте полноценное приложение"}