# Справочник команды GitHub Copilot CLI

Найдите команды и клавишные комбинации, которые помогут вам эффективно использовать Второй пилот CLI .

## Команды командной строки

| Command                  | Purpose                                                                                                                                           |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `copilot`                | Запустите интерактивный пользовательский интерфейс.                                                                                               |
| `copilot help [TOPIC]`   | Покажите справочную информацию. Темы помощи включают: `config`, `commands`, `environment`, `logging`, `monitoring``permissions`, , и `providers`. |
| `copilot init`           | Инициализируйте Copilot пользовательские инструкции для этого репозитория.                                                                        |
| `copilot login`          | Аутентифицируйтесь Copilot через поток устройств OAuth. Принимает `--host HOST` указать GitHub URL хоста (по умолчанию: `https://github.com`).    |
| `copilot login` \[ОПЦИЯ] | Аутентифицируйтесь Copilot через поток устройств OAuth. См. параметры [`copilot login`](#copilot-login-options).                                  |
| `copilot mcp`            | Управляйте конфигурациями MCP-сервера из командной строки.                                                                                        |
| `copilot plugin`         | Управляйте плагинами и маркетплейсами плагинов.                                                                                                   |
| `copilot update`         | Скачайте и установите последнюю версию.                                                                                                           |
| `copilot version`        | Откажите информацию о версии и проверьте обновления.                                                                                              |

###

```
          `copilot login` варианты
```

| Опция         | Purpose |
| ------------- | ------- |
| `--host HOST` |         |

```
          GitHub URL хоста (по умолчанию: `https://github.com`). Используйте это для аутентификации с GitHub Enterprise Cloud экземпляром, использующим data residency (например, `https://example.ghe.com`). |
```

\| `--config-dir PATH` | Установите каталог конфигурации (по умолчанию: `~/.copilot`).                                   |

Стандартный режим аутентификации — это веб-браузерный поток. После завершения аутентификационный токен надежно хранится в системном хранилище учетных данных. Если хранилище учетных данных не найдено, токен хранится в простом текстовом конфигурационном файле под `~/.copilot/`.

В качестве альтернативы Второй пилот CLI буду использовать токен аутентификации, находящийся в переменных окружения. Следующие параметры проверяются в порядке старшинства: `COPILOT_GITHUB_TOKEN`, `GH_TOKEN`, , `GITHUB_TOKEN`. Этот метод наиболее подходит для безголового использования, например, для автоматизации.

Поддерживаемые типы токенов включают fine-grained personal access tokens (v2 PAT) с разрешением «Copilot Requests», токены OAuth из Copilot приложения CLI и токены OAuth из GitHub CLI приложения (`gh`). Classic personal access tokens (`ghp_`) не поддерживается.

```
          **Примеры:**
```

```shell
# Authenticate with github.com
copilot login

# Authenticate with GitHub Enterprise Cloud (data residency)
copilot login --host https://example.ghe.com

# Use a fine-grained PAT via environment variable
COPILOT_GITHUB_TOKEN=github_pat_... copilot
```

## Глобальные ярлыки в интерактивном интерфейсе

| Shortcut                                                                                                                        | Purpose                                                                                                                                                                |
| ------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `@ FILENAME`                                                                                                                    | Включите содержимое файла в контекст.                                                                                                                                  |
| `# NUMBER`                                                                                                                      | Включите GitHub проблему или запрос в контекст.                                                                                                                        |
| `! COMMAND`                                                                                                                     | Выполните команду в локальной оболочке, обходя Copilot.                                                                                                                |
| `?`                                                                                                                             | Откройте быструю помощь (по пустому запросу).                                                                                                                          |
| <kbd>Esc</kbd>                                                                                                                  | Отменить текущую операцию.                                                                                                                                             |
| <kbd>CTRL</kbd>+<kbd>C</kbd>                                                                                                    | Отменить операцию / очистить вход. Нажмите дважды, чтобы выйти.                                                                                                        |
| <kbd>CTRL</kbd>+<kbd>D</kbd>                                                                                                    | Отключение.                                                                                                                                                            |
| <kbd>CTRL</kbd>+<kbd>G</kbd>                                                                                                    | Отредактировать запрос во внешнем редакторе (`$EDITOR`).                                                                                                               |
| <kbd>CTRL</kbd>+<kbd>L</kbd>                                                                                                    | Очистите экран.                                                                                                                                                        |
| <kbd>Ctrl</kbd>+<kbd>Enter</kbd> или <kbd>ctrl</kbd>+<kbd>Q</kbd>                                                               | Поставьте сообщение в очередь для отправки, пока агент занят.                                                                                                          |
| <kbd>CTRL</kbd>+<kbd>R</kbd>                                                                                                    | Обратный поиск по истории команд.                                                                                                                                      |
| <kbd>CTRL</kbd>+<kbd>V</kbd>                                                                                                    | Вставьте из буфера обмена в качестве вложения.                                                                                                                         |
| <kbd>Ctrl</kbd>+<kbd>Тогда X</kbd>`/`                                                                                           | После того как вы начали вводить подстрымку, это позволяет выполнить команду слэш — например, если вы хотите изменить модель без необходимости переписывать подсказку. |
| <kbd>Ctrl</kbd>+<kbd>Тогда X</kbd>`e`                                                                                           | Отредактировать запрос во внешнем редакторе (`$EDITOR`).                                                                                                               |
| <kbd>Ctrl</kbd>+<kbd>Тогда X</kbd>`o`                                                                                           | Откройте самую последнюю ссылку из таймлайна.                                                                                                                          |
| <kbd>CTRL</kbd>+<kbd>Z</kbd>                                                                                                    | Приостановите процесс в фоновый режим (Unix).                                                                                                                          |
| <kbd>Сдвиг</kbd>+<kbd>Enter</kbd> или <kbd>опция</kbd>+<kbd>Enter</kbd> (Mac) / <kbd>Alt</kbd>+<kbd>Enter</kbd> (Windows/Linux) | Вставьте новую строку во вход.                                                                                                                                         |
| <kbd>Shift</kbd>+<kbd>Вкладка</kbd>                                                                                             | Переключайтесь между стандартным, планным и автопилотным режимами.                                                                                                     |

## Ярлыки временной линии в интерактивном интерфейсе

| Shortcut                                    | Purpose                                                                                                               |
| ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| <kbd>Ctrl</kbd>+<kbd>О</kbd>                | Хотя в запросе ничего нет, оно расширяет недавние элементы в Copilotтаймлайне ответов, чтобы показать больше деталей. |
| <kbd>CTRL</kbd>+<kbd>E</kbd>                | Хотя в вводном запросе ничего нет, это расширяет все элементы в Copilotтаймлайне ответов.                             |
| <kbd>CTRL</kbd>+<kbd>T</kbd>                | Расширить/свернуть отображение рассуждений в ответах.                                                                 |
| <kbd>Page Up</kbd>/<kbd>Страница вниз</kbd> | Прокрутите хронологию вверх или вниз на одну страницу.                                                                |

## Навигационные ярлыки в интерактивном интерфейсе

| Shortcut                                                              | Purpose                                                                                         |
| --------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| <kbd>CTRL</kbd>+<kbd>A</kbd>                                          | Переместитесь к началу строки (при наборе).                                                     |
| <kbd>CTRL</kbd>+<kbd>B</kbd>                                          | Перейти к предыдущему персонажу.                                                                |
| <kbd>CTRL</kbd>+<kbd>E</kbd>                                          | Переместитесь в конец строки (при наборе).                                                      |
| <kbd>CTRL</kbd>+<kbd>F</kbd>                                          | Перейти к следующему персонажу.                                                                 |
| <kbd>CTRL</kbd>+<kbd>H</kbd>                                          | Удалить предыдущего персонажа.                                                                  |
| <kbd>Ctrl</kbd>+<kbd>К</kbd>                                          | Удалить с курсора до конца строки. Если курсор находится в конце строки, удалите разрыв строки. |
| <kbd>CTRL</kbd>+<kbd>U</kbd>                                          | Удалить с курсора в начало строки.                                                              |
| <kbd>Ctrl</kbd>+<kbd>Ж</kbd>                                          | Удалить предыдущее слово.                                                                       |
| <kbd>дом</kbd>                                                        | Перейдите к началу текста.                                                                      |
| <kbd>Конец</kbd>                                                      | Перейдём к концу текста.                                                                        |
| <kbd>Альтернатива</kbd>+<kbd>←</kbd>/<kbd>→</kbd> (Windows/Linux)<br> |                                                                                                 |

```
          <kbd>Опция</kbd>+<kbd>←</kbd>/<kbd>→</kbd> (Mac) | Двигайте курсор на слово.             |
```

\| <kbd>↑</kbd>/<kbd>↓</kbd>           | Просматривайте историю команд.                |

## Команды Slash в интерактивном интерфейсе

| Command                                                                                                                  | Purpose                                                                                                                                                                                            |
| ------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `/add-dir PATH`                                                                                                          | Добавьте каталог в разрешённый список для доступа к файлам.                                                                                                                                        |
| `/agent`                                                                                                                 | Просматривайте и выбирайте из доступных агентов (если они есть). См [. раздел AUTOTITLE](/ru/copilot/concepts/agents/copilot-cli/about-custom-agents).                                             |
| `/ask QUESTION`                                                                                                          | Задайте быстрый вопрос, не добавляя в историю разговоров. Доступно только в экспериментальном режиме.                                                                                              |
| `/allow-all [on\|off\|show]`, `/yolo [on\|off\|show]`                                                                    | Включите все права (инструменты, пути и URL).                                                                                                                                                      |
| `/changelog [summarize] [VERSION\|last N\|since VERSION]`, `/release-notes [summarize] [VERSION\|last N\|since VERSION]` | Отобразите журнал изменений CLI. По желанию укажите версию, количество последних релизов или начальную версию. Добавьте ключевое слово `summarize` для сводки, сгенерированной ИИ.                 |
| `/chronicle <standup\|tips\|improve\|reindex>`                                                                           | Инструменты и аналитика истории сессий. Доступно только в экспериментальном режиме.                                                                                                                |
| `/clear [PROMPT]`, , `/new [PROMPT]``/reset [PROMPT]`                                                                    | Запустите новую беседу.                                                                                                                                                                            |
| `/compact`                                                                                                               | Кратко изложите историю переписки, чтобы уменьшить использование контекстного окна. См [. раздел AUTOTITLE](/ru/copilot/concepts/agents/copilot-cli/context-management#compaction).                |
| `/context`                                                                                                               | Покажите использование токена контекстного окна и визуализацию. См [. раздел AUTOTITLE](/ru/copilot/concepts/agents/copilot-cli/context-management#checking-your-context-usage).                   |
| `/copy`                                                                                                                  | Скопируйте последний ответ в буфер обмена.                                                                                                                                                         |
| `/cwd`, `/cd [PATH]`                                                                                                     | Измените рабочий каталог или отобразите текущий каталог.                                                                                                                                           |
| `/delegate [PROMPT]`                                                                                                     | Делегировать изменения в удалённый репозиторий с помощью пулл-запроса, сгенерированного ИИ. См [. раздел AUTOTITLE](/ru/copilot/how-tos/copilot-cli/use-copilot-cli-agents/delegate-tasks-to-cca). |
| `/diff`                                                                                                                  | Проверьте изменения, внесённые в текущий каталог.                                                                                                                                                  |
| `/env`                                                                                                                   | Показывайте данные загруженной среды (инструкции, MCP-серверы, навыки, агенты, плагины, LSP, расширения).                                                                                          |
| `/exit`, `/quit`                                                                                                         | Выйдите из CLI.                                                                                                                                                                                    |
| `/experimental [on\|off\|show]`                                                                                          | Переключайте, устанавливайте или показывайте экспериментальные функции.                                                                                                                            |
| `/feedback`, `/bug`                                                                                                      | Дайте обратную связь о CLI.                                                                                                                                                                        |
| `/fleet [PROMPT]`                                                                                                        | Включить параллельное выполнение субагентов для выполнения частей задачи. См [. раздел AUTOTITLE](/ru/copilot/concepts/agents/copilot-cli/fleet).                                                  |
| `/help`                                                                                                                  | Покажите помощь по интерактивным командам.                                                                                                                                                         |
| `/ide`                                                                                                                   | Подключитесь к рабочему пространству IDE. См [. раздел AUTOTITLE](/ru/copilot/how-tos/copilot-cli/connecting-vs-code#managing-the-connection-with-the-ide-slash-command).                          |
| `/init`                                                                                                                  | Инициализируйте Copilot пользовательские инструкции и агентные функции для этого репозитория. См. инициализацию [Project для Copilot](#project-initialization-for-copilot).                        |
| `/instructions`                                                                                                          | Просмотр и переключение пользовательских файлов инструкций.                                                                                                                                        |
| `/keep-alive [on\|busy\|NUMBERm\|NUMBERh]`                                                                               | Предотвратить переход машины в спящий режим: пока сессия CLI активна, пока агент занят или в течение определённого времени. Доступно только в экспериментальном режиме.                            |
| `/list-dirs`                                                                                                             | Отобразите все каталоги, для которых разрешён доступ к файлам.                                                                                                                                     |
| `/login`                                                                                                                 | Войдите в .Copilot                                                                                                                                                                                 |
| `/logout`                                                                                                                | Выйти из Copilot.                                                                                                                                                                                  |
| `/lsp [show\|test\|reload\|help] [SERVER-NAME]`                                                                          | Управляйте конфигурацией сервера языка.                                                                                                                                                            |
| `/mcp [show\|add\|edit\|delete\|disable\|enable\|auth\|reload] [SERVER-NAME]`                                            | Управление конфигурацией сервера MCP. См [. раздел AUTOTITLE](/ru/copilot/how-tos/copilot-cli/customize-copilot/add-mcp-servers#managing-mcp-servers).                                             |
| `/model`, `/models [MODEL]`                                                                                              | Выберите модель ИИ, которую хотите использовать.                                                                                                                                                   |
| `/plan [PROMPT]`                                                                                                         | Создайте план реализации перед написанием кода.                                                                                                                                                    |
| `/plugin [marketplace\|install\|uninstall\|update\|list] [ARGS...]`                                                      | Управляйте плагинами и маркетплейсами плагинов. См [. раздел AUTOTITLE](/ru/copilot/concepts/agents/copilot-cli/about-cli-plugins).                                                                |
| `/pr [view\|create\|fix\|auto]`                                                                                          | Управление pull-запросами для текущей ветки. См [. раздел AUTOTITLE](/ru/copilot/how-tos/copilot-cli/manage-pull-requests).                                                                        |
| `/remote`                                                                                                                | Включите удалённый доступ к этой сессии из GitHub.com и GitHub Mobile. См [. раздел AUTOTITLE](/ru/copilot/how-tos/copilot-cli/steer-remotely).                                                    |
| `/rename [NAME]`                                                                                                         | Переименовать текущую сессию (автоматически генерирует имя, если оно опущено; псевдоним для `/session rename`).                                                                                    |
| `/research TOPIC`                                                                                                        | Проведите глубокое исследование с использованием GitHub поисковых и веб-источников. См [. раздел AUTOTITLE](/ru/copilot/concepts/agents/copilot-cli/research).                                     |
| `/reset-allowed-tools`                                                                                                   | Сбросьте список разрешённых инструментов.                                                                                                                                                          |
| `/restart`                                                                                                               | Перезапустить CLI, сохраняя текущую сессию.                                                                                                                                                        |
| `/resume [SESSION-ID]`, `/continue [SESSION-ID]`                                                                         | Переключитесь на другую сессию, выбрав из списка (по желанию укажите идентификатор сессии).                                                                                                        |
| `/review [PROMPT]`                                                                                                       | Запустите агент проверки кода для анализа изменений. См [. раздел AUTOTITLE](/ru/copilot/how-tos/copilot-cli/use-copilot-cli-agents/agentic-code-review).                                          |
| `/session [checkpoints [n]\|files\|plan\|rename NAME]`, `/sessions [checkpoints [n]\|files\|plan\|rename NAME]`          | Покажите информацию о сессии и резюме рабочего пространства. Используйте подкоманды для подробностей.                                                                                              |
| `/share [file\|html\|gist] [session\|research] [PATH]`, `/export [file\|html\|gist] [session\|research] [PATH]`          | Поделитесь сессией с файлом Markdown, интерактивным HTML-файлом или GitHub gist.                                                                                                                   |
| `/skills [list\|info\|add\|remove\|reload] [ARGS...]`                                                                    | Управляйте навыками для расширения возможностей. См [. раздел AUTOTITLE](/ru/copilot/how-tos/copilot-cli/customize-copilot/create-skills).                                                         |
| `/statusline`, `/footer`                                                                                                 | Настройте, какие элементы появляются в строке статуса.                                                                                                                                             |
| `/tasks`                                                                                                                 | Просмотр и управление фоновыми задачами (субагентами и shell-сессиями).                                                                                                                            |
| `/terminal-setup`                                                                                                        | Настройте терминал для поддержки многолинейного входа (<kbd>Shift</kbd>+<kbd>Enter</kbd> и <kbd>Ctrl</kbd>+<kbd>Enter</kbd>).                                                                      |
| `/theme [default\|dim\|high-contrast\|colorblind]`                                                                       | Просмотр или настройка цветового режима.                                                                                                                                                           |
| `/undo`, `/rewind`                                                                                                       | Перемотайте последний ход и отмените изменения в файле.                                                                                                                                            |
| `/update`, `/upgrade`                                                                                                    | Обновите CLI до последней версии.                                                                                                                                                                  |
| `/usage`                                                                                                                 | Отображайте метрики и статистику использования сессий.                                                                                                                                             |
| `/user [show\|list\|switch]`                                                                                             | Управляйте текущим GitHub пользователем.                                                                                                                                                           |
| `/version`                                                                                                               | Откажите информацию о версии и проверьте обновления.                                                                                                                                               |

Для полного списка доступных команд слэш введите `/help` в интерактивный интерфейс CLI.

## Параметры командной строки

| Опция                                        | Purpose                                                                                                                                                                                                                                                                                                                                                                         |
| -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--add-dir=PATH`                             | Добавьте каталог в разрешённый список для доступа к файлам (можно использовать несколько раз).                                                                                                                                                                                                                                                                                  |
| `--add-github-mcp-tool=TOOL`                 | Добавьте инструмент для включения для GitHub MCP-сервера вместо стандартного CLI-подмножества (можно использовать несколько раз). Используйте `*` для всех инструментов.                                                                                                                                                                                                        |
| `--add-github-mcp-toolset=TOOLSET`           | Добавьте набор инструментов для MCP-сервера GitHub вместо стандартного CLI-подмножества (можно использовать несколько раз). Используйте `all` для всех наборов инструментов.                                                                                                                                                                                                    |
| `--additional-mcp-config=JSON`               | Добавьте MCP-сервер только для этой сессии. Конфигурация сервера может быть предоставлена в виде JSON-строки или пути к файлу (префикс ).`@` Дополняет конфигурацию из `~/.copilot/mcp-config.json`. Переопределяет любую установленную конфигурацию сервера MCP с таким же именем. См [. раздел AUTOTITLE](/ru/copilot/how-tos/copilot-cli/customize-copilot/add-mcp-servers). |
| `--agent=AGENT`                              | Укажите a Пользовательский агент для использования. См [. раздел AUTOTITLE](/ru/copilot/concepts/agents/copilot-cli/about-custom-agents).                                                                                                                                                                                                                                       |
| `--allow-all`                                | Включить все права (эквивалент `--allow-all-tools --allow-all-paths --allow-all-urls`).                                                                                                                                                                                                                                                                                         |
| `--allow-all-paths`                          | Отключите верификацию пути файла и разрешите доступ к любому пути.                                                                                                                                                                                                                                                                                                              |
| `--allow-all-tools`                          | Разрешить всем инструментам работать автоматически без подтверждения. Требуется при программном использовании CLI (env: `COPILOT_ALLOW_ALL`).                                                                                                                                                                                                                                   |
| `--allow-all-urls`                           | Разрешите доступ ко всем URL без подтверждения.                                                                                                                                                                                                                                                                                                                                 |
| `--allow-tool=TOOL ...`                      | Инструменты, которые CLI имеет разрешение использовать. Не буду запрашивать разрешение. Для множества инструментов используйте список с кавычками, разделёнными запятыми. См [. раздел AUTOTITLE](/ru/copilot/how-tos/copilot-cli/allowing-tools#allowing-or-denying-permission-for-specific-tools).                                                                            |
| `--allow-url=URL ...`                        | Разрешите доступ к определённым URL или доменам. Для нескольких URL используйте список с кавычками, разделёнными запятыми.                                                                                                                                                                                                                                                      |
| `--autopilot`                                | Включите автопилот в режиме подсказок. См [. раздел AUTOTITLE](/ru/copilot/concepts/agents/copilot-cli/autopilot).                                                                                                                                                                                                                                                              |
| `--available-tools=TOOL ...`                 | Модели будут доступны только эти инструменты. Для множества инструментов используйте список с кавычками, разделёнными запятыми. См [. раздел AUTOTITLE](/ru/copilot/how-tos/copilot-cli/allowing-tools).                                                                                                                                                                        |
| `--banner`, `--no-banner`                    | Покажите или спрячьте баннер запуска.                                                                                                                                                                                                                                                                                                                                           |
| `--bash-env`                                 | Включите `BASH_ENV` поддержку bash-shells.                                                                                                                                                                                                                                                                                                                                      |
| `--config-dir=PATH`                          | Установите каталог конфигурации (по умолчанию: `~/.copilot`).                                                                                                                                                                                                                                                                                                                   |
| `--connect[=SESSION-ID]`                     | Подключитесь напрямую к удалённой сессии (по желанию укажите идентификатор сессии или задачи). Конфликты с `--resume` и `--continue`.                                                                                                                                                                                                                                           |
| `--continue`                                 | Возобновите последнюю сессию.                                                                                                                                                                                                                                                                                                                                                   |
| `--deny-tool=TOOL ...`                       | Инструменты, на которые CLI не имеет разрешения. Не буду запрашивать разрешение. Для множества инструментов используйте список с кавычками, разделёнными запятыми.                                                                                                                                                                                                              |
| `--deny-url=URL ...`                         | Отказ в доступе к определённым URL или доменам имеет приоритет над `--allow-url`. Для нескольких URL используйте список с кавычками, разделёнными запятыми.                                                                                                                                                                                                                     |
| `--disable-builtin-mcps`                     | Отключите все встроенные MCP-серверы (на данный момент: `github-mcp-server`).                                                                                                                                                                                                                                                                                                   |
| `--disable-mcp-server=SERVER-NAME`           | Отключите конкретный MCP-сервер (его можно использовать несколько раз).                                                                                                                                                                                                                                                                                                         |
| `--disallow-temp-dir`                        | Предотвратить автоматический доступ к временному каталогу системы.                                                                                                                                                                                                                                                                                                              |
| `--effort=LEVEL`, `--reasoning-effort=LEVEL` | Установите уровень усилия для рассуждения (`low`, `medium`, `high`).                                                                                                                                                                                                                                                                                                            |
| `--enable-all-github-mcp-tools`              | Включите все GitHub инструменты сервера MCP вместо стандартного подмножества CLI. Переопределяет и `--add-github-mcp-toolset``--add-github-mcp-tool` опции.                                                                                                                                                                                                                     |
| `--enable-reasoning-summaries`               | Запросите резюме рассуждений для моделей OpenAI, которые это поддерживают.                                                                                                                                                                                                                                                                                                      |
| `--excluded-tools=TOOL ...`                  | Эти инструменты не будут доступны для модели. Для множества инструментов используйте список с кавычками, разделёнными запятыми.                                                                                                                                                                                                                                                 |
| `--experimental`                             | Включите экспериментальные функции (используйте `--no-experimental` для отключения).                                                                                                                                                                                                                                                                                            |
| `-h`, `--help`                               | Помощь с отображением.                                                                                                                                                                                                                                                                                                                                                          |
| `-i PROMPT`, `--interactive=PROMPT`          | Начните интерактивную сессию и автоматически выполните этот запрос.                                                                                                                                                                                                                                                                                                             |
| `--log-dir=DIRECTORY`                        | Установите каталог файлов журналов (по умолчанию: `~/.copilot/logs/`).                                                                                                                                                                                                                                                                                                          |
| `--log-level=LEVEL`                          | Установите уровень логарифма (выборы: `none`, `error`, `warning`, `info`, `debug`, `all`, ). `default`                                                                                                                                                                                                                                                                          |
| `--max-autopilot-continues=COUNT`            | Максимальное количество сообщений продолжения в режиме автопилота (по умолчанию: неограниченно). См [. раздел AUTOTITLE](/ru/copilot/concepts/agents/copilot-cli/autopilot).                                                                                                                                                                                                    |
| `--mode=MODE`                                | Установите начальный режим агента (выборы: `interactive`, `plan`, `autopilot`). Нельзя объединить с `--autopilot` или `--plan`.                                                                                                                                                                                                                                                 |
| `--model=MODEL`                              | Задайте модель ИИ, которую хотите использовать. Пропускайте `auto` возможность Copilot автоматически выбирать лучшую доступную модель.                                                                                                                                                                                                                                          |
| `--mouse[=VALUE]`                            | Включите поддержку мыши в режиме альтернативного экрана. VALUE может быть `on` (по умолчанию) или `off`. При включении CLI фиксирует события мыши в альтернативном экране — колесо прокрутки, щелчки и т.д. При отключении сохраняется собственное поведение мыши терминала. После установки настройка сохраняется и записывается в ваш конфигурационный файл.                  |
| `--no-ask-user`                              | Отключите `ask_user` инструмент (агент работает автономно, не задавая вопросов).                                                                                                                                                                                                                                                                                                |
| `--no-auto-update`                           | Отключите автоматическую загрузку обновлений CLI.                                                                                                                                                                                                                                                                                                                               |
| `--no-bash-env`                              | Отключите `BASH_ENV` поддержку bash-shells.                                                                                                                                                                                                                                                                                                                                     |
| `--no-color`                                 | Отключите все цветовые выводы.                                                                                                                                                                                                                                                                                                                                                  |
| `--no-custom-instructions`                   | Отключите загрузку пользовательских инструкций из `AGENTS.md` и связанных файлов.                                                                                                                                                                                                                                                                                               |
| `--no-experimental`                          | Отключите экспериментальные функции.                                                                                                                                                                                                                                                                                                                                            |
| `--no-mouse`                                 | Отключите поддержку мыши.                                                                                                                                                                                                                                                                                                                                                       |
| `--no-remote`                                | Отключите удалённый доступ для этой сессии.                                                                                                                                                                                                                                                                                                                                     |
| `--output-format=FORMAT`                     | FORMAT может быть `text` (по умолчанию) или `json` (выводит JSONL: один JSON-объект на строку).                                                                                                                                                                                                                                                                                 |
| `-p PROMPT`, `--prompt=PROMPT`               | Выполните запрос программно (выходит после завершения). См [. раздел AUTOTITLE](/ru/copilot/how-tos/copilot-cli/automate-copilot-cli/run-cli-programmatically).                                                                                                                                                                                                                 |
| `--plan`                                     | Начинайте в режиме планирования. Сокращение для `--mode plan`. Нельзя объединить с `--mode` или `--autopilot`.                                                                                                                                                                                                                                                                  |
| `--plain-diff`                               | Отключите рендеринг rich diff (выделение синтаксиса через инструмент diff, указанный в конфигурации git).                                                                                                                                                                                                                                                                       |
| `--plugin-dir=DIRECTORY`                     | Загрузите плагин из локальной папки (можно использовать несколько раз).                                                                                                                                                                                                                                                                                                         |
| `--remote`                                   | Включите удалённый доступ к этой сессии из GitHub.com и GitHub Mobile. См [. раздел AUTOTITLE](/ru/copilot/how-tos/copilot-cli/steer-remotely).                                                                                                                                                                                                                                 |
| `--resume=SESSION-ID`                        | Возобновите предыдущую интерактивную сессию, выбрав из списка (по желанию укажите идентификатор сессии или уникальный префикс из 7+ шестнадцатеричных символов).                                                                                                                                                                                                                |
| `-s`, `--silent`                             | Выводите только ответ агента (без статистики использования), что полезно для скриптов с `-p`.                                                                                                                                                                                                                                                                                   |
| `--screen-reader`                            | Включите оптимизацию экранных читателей.                                                                                                                                                                                                                                                                                                                                        |
| `--secret-env-vars=VAR ...`                  | Редактировать переменную среды из серверных сред shell и MCP (можно использовать несколько раз). Для множества переменных используйте список с кавычками, разделёнными запятыми. Значения в `GITHUB_TOKEN` переменных среды и `COPILOT_GITHUB_TOKEN` по умолчанию удалены из вывода.                                                                                            |
| `--share=PATH`                               | Поделитесь сессией с файлом Markdown после завершения программной сессии (по умолчанию путь: `./copilot-session-<ID>.md`).                                                                                                                                                                                                                                                      |
| `--share-gist`                               | Поделитесь сессией с секретной GitHub основой после завершения программной сессии.                                                                                                                                                                                                                                                                                              |
| `--stream=MODE`                              | Включите или отключите режим стриминга (выбор режима: `on` или `off`).                                                                                                                                                                                                                                                                                                          |
| `-v`, `--version`                            | Покажите информацию о версии.                                                                                                                                                                                                                                                                                                                                                   |
| `--yolo`                                     | Включить все права (эквивалент `--allow-all`).                                                                                                                                                                                                                                                                                                                                  |

Для полного списка команд и опций запустите `copilot help`.

> \[!NOTE]
> Опции `--remote`, `--no-remote`, и `--connect` требуют, чтобы функция удалённых сессий была доступна на вашем аккаунте.

## Значения доступности инструментов

Опции и `--excluded-tools` поддерживают `--available-tools` следующие значения:

### Оболочные инструменты

| Имя инструмента                   | Описание                      |
| --------------------------------- | ----------------------------- |
| `bash` / `powershell`             | Выполнение команд             |
| `read_bash` / `read_powershell`   | Чтение выхода из сессии shell |
| `write_bash` / `write_powershell` | Отправьте ввод в shell-сессию |
| `stop_bash` / `stop_powershell`   | Завершить оболочную сессию    |
| `list_bash` / `list_powershell`   | Список активных сессий shell  |

### Инструменты управления файлами

| Имя инструмента | Описание                                                                  |
| --------------- | ------------------------------------------------------------------------- |
| `view`          | Читать файлы или каталоги                                                 |
| `create`        | Создание новых файлов                                                     |
| `edit`          | Редактировать файлы через замену строк                                    |
| `apply_patch`   | Применить патчи (используемые некоторыми моделями вместо `edit`/`create`) |

### Инструменты для делегирования агентов и задач

| Имя инструмента | Описание                             |
| --------------- | ------------------------------------ |
| `task`          | Запуск субагентов                    |
| `read_agent`    | Проверьте статус агента по биографии |
| `list_agents`   | Список доступных агентов             |

### Другие инструменты

| Имя инструмента   | Описание                                |
| ----------------- | --------------------------------------- |
| `grep` (или `rg`) | Поиск текста в файлах                   |
| `glob`            | Найдите файлы, соответствующие шаблонам |
| `web_fetch`       | Извлечение и разбор веб-контента        |
| `skill`           | Вызов пользовательских навыков          |
| `ask_user`        | Задайте пользователю вопрос             |

## Шаблоны разрешений инструментов

Опции и `--allow-tool` принимают `--deny-tool` шаблоны разрешений в формате `Kind(argument)`. Аргумент необязательн — его исключение соответствует всем подобным инструментам.

| Kind    | Описание                | Примеры паттернов |
| ------- | ----------------------- | ----------------- |
| `shell` | Выполнение команд shell |                   |

```
          `shell(git push)`, , `shell(git:*)``shell` |
```

\| `write` | Создание или модификация файлов |
`write`, `write(src/*.ts)` |
\| `read` | Чтение файлов или каталогов |
`read`, `read(.env)` |
\| SERVER-NAME | Вызов инструмента MCP-сервера |
`MyMCP(create_issue)`, `MyMCP` |
\| `url` | Доступ к URL через web-fetch или shell |
`url(github.com)`, `url(https://*.api.com)` |
\| `memory` | Хранение фактов в памяти агента | `memory` |

Для `shell` правил суффикс `:*` совпадает с командным стволом, за которым следует пробел, предотвращая частичные совпадения. Например, `shell(git:*)` совпадение `git push` и `git pull` но не совпадает `gitea`с .

Правила отказа всегда имеют приоритет над правилами допуска, даже если `--allow-all` они установлены.

```shell
# Allow all git commands except git push
copilot --allow-tool='shell(git:*)' --deny-tool='shell(git push)'

# Allow a specific MCP server tool
copilot --allow-tool='MyMCP(create_issue)'

# Allow all tools from a server
copilot --allow-tool='MyMCP'
```

## Переменные среды

| Variable                           | Описание                                                                                                                                                                                                                                                                                                                                        |
| ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `COPILOT_MODEL`                    | Задайте модель ИИ.                                                                                                                                                                                                                                                                                                                              |
| `COPILOT_ALLOW_ALL`                | Установите на `true` автоматическое разрешение всех разрешений (эквивалентно `--allow-all`).                                                                                                                                                                                                                                                    |
| `COPILOT_AUTO_UPDATE`              | Настройте на `false` отключение автоматических обновлений.                                                                                                                                                                                                                                                                                      |
| `COPILOT_CUSTOM_INSTRUCTIONS_DIRS` | Список дополнительных каталогов для пользовательских инструкций, разделённых запятой.                                                                                                                                                                                                                                                           |
| `COPILOT_SKILLS_DIRS`              | Список дополнительных каталогов с разделёнными запятой для навыков.                                                                                                                                                                                                                                                                             |
| `COPILOT_EDITOR`                   | Команда редактора для интерактивного редактирования (проверено после `$VISUAL` и `$EDITOR`). По умолчанию `vi` — если ничего не установлено.                                                                                                                                                                                                    |
| `COPILOT_GITHUB_TOKEN`             | Маркер проверки подлинности. Имеет приоритет над `GH_TOKEN` и `GITHUB_TOKEN`.                                                                                                                                                                                                                                                                   |
| `COPILOT_HOME`                     | Переопределите конфигурацию и каталог состояний. По умолчанию: `$HOME/.copilot`.                                                                                                                                                                                                                                                                |
| `COPILOT_CACHE_HOME`               | Переопределить каталог кэша (используемый для кэшей маркетплейса, автоматического обновления пакетов и других эфемерных данных). См. [Каталог конфигурации CLI GitHub Copilot](/ru/copilot/reference/copilot-cli-reference/cli-config-dir-reference#changing-the-location-of-the-configuration-directory) для стандартных параметров платформы. |
| `COPILOT_SUBAGENT_MAX_DEPTH`       | Максимальная глубина вложения субагентов. По умолчанию: `6`. Диапазон: `1`–`256`.                                                                                                                                                                                                                                                               |
| `COPILOT_SUBAGENT_MAX_CONCURRENT`  | Максимальное количество параллельных субагентов по всему дереву сессий. По умолчанию: `32`. Диапазон: `1`–`256`.                                                                                                                                                                                                                                |
| `GH_TOKEN`                         | Маркер проверки подлинности. Имеет приоритет над `GITHUB_TOKEN`.                                                                                                                                                                                                                                                                                |
| `GITHUB_TOKEN`                     | Маркер проверки подлинности.                                                                                                                                                                                                                                                                                                                    |
| `USE_BUILTIN_RIPGREP`              | Настройте на `false` использование системного ripgrep вместо комплектной версии.                                                                                                                                                                                                                                                                |
| `PLAIN_DIFF`                       | Настройте на `true` отключение рендеринга rich diff.                                                                                                                                                                                                                                                                                            |
| `COLORFGBG`                        | Запасной вариант для обнаружения фона на тёмных/светлых терминалах.                                                                                                                                                                                                                                                                             |

## Настройки конфигурационных файлов

Настройки каскадно переходят от пользователя к репозиторию и локально, при этом более специфические области объёмов перемещают более общие. Флаги командной строки и переменные среды всегда имеют наибольшее значение.

| Объем       | Местоположение                        | Purpose                                                                                                                    |
| ----------- | ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| User        | `~/.copilot/config.json`              | Глобальные стандарты для всех репозиториев. Используйте `COPILOT_HOME` переменную среды для указания альтернативного пути. |
| Репозиторий | `.github/copilot/settings.json`       | Конфигурация общего репозитория (фиксирована в репозитории).                                                               |
| Локальный   | `.github/copilot/settings.local.json` | Личные перемены (добавьте это к `.gitignore`).                                                                             |

### Пользовательские настройки (`~/.copilot/config.json`)

| Ключ          | Тип        | По умолчанию | Описание                                 |
| ------------- | ---------- | ------------ | ---------------------------------------- |
| `allowedUrls` | `string[]` | `[]`         | URL или домены разрешены без подсказки.  |
| `autoUpdate`  | `boolean`  | `true`       | Автоматически скачивайте обновления CLI. |
| `banner`      |            |              |                                          |

```
          `"always"`
          \|
          `"once"`
          \|
          `"never"`
         | `"once"` | Частота анимированного отображения баннеров. |
```

\| `bashEnv` | `boolean` | `false` | Включите `BASH_ENV` поддержку bash-shells. |
\| `beep` | `boolean` | `true` | Воспроизведите звуковой сигнал, когда требуется внимание. |
\| `compactPaste` | `boolean` | `true` | Сверните большие пасты в компактные токены. |
\| `custom_agents.default_local_only` | `boolean` | `false` | Используйте только местных кастомных агентов. |
\| `denied_urls` | `string[]` | `[]` | URL или домены, заблокированные (имеют приоритет над `allowed_urls`). |
\| `experimental` | `boolean` | `false` | Включить экспериментальные функции. |
\| `includeCoAuthoredBy` | `boolean` | `true` | Добавьте `Co-authored-by` трейлер к git-коммитам, сделанным агентом. |
\| `companyAnnouncements` | `string[]` | `[]` | Пользовательские сообщения отображаются случайным образом при запуске. |
\| `logLevel` |
`"none"`
|
`"error"`
|
`"warning"`
|
`"info"`
|
`"debug"`
|
`"all"`
|
`"default"`
\| `"default"` | Веду многословность. |
\| `model` | `string` | изменяется | Модель ИИ для использования (см. `/model` команду). Настройте `"auto"` так, чтобы автоматически Copilot выбирать лучшую доступную модель. |
\| `powershellFlags` | `string[]` | `["-NoProfile", "-NoLogo"]` | Флаги передавались в PowerShell (`pwsh`) при запуске. Только для Windows. |
\| `effortLevel` | `string` | `"medium"` | Уровень усилий по рассуждению для расширенного мышления (например, `"low"`, , `"medium"``"high"``"xhigh"`, ). Более высокие уровни требуют больше вычислений. |
\| `mergeStrategy` |
`"rebase"`
|
`"merge"`
\| — | Стратегия разрешения конфликтов для `/pr fix conflicts`. При установке в `"rebase"`, конфликты разрешаются путем перебазировки на базовую ветвь. При установке в `"merge"`, базовая ветвь объединяется с ветвью признаков. Если не настроено, отображается диалог picker. |
\| `renderMarkdown` | `boolean` | `true` | Render Markdown на выходе терминала. |
\| `screenReader` | `boolean` | `false` | Включите оптимизацию экранных читателей. |
\| `stream` | `boolean` | `true` | Включите потоковые ответы. |
\| `storeTokenPlaintext` | `boolean` | `false` | Храните токены аутентификации в открытом тексте в конфигурационном файле, когда системный ключ недоступен. |
\| `streamerMode` | `boolean` | `false` | Скрыть имена моделей и детали квот (полезно при демонстрации Второй пилот CLI). |
\| `theme` |
`"auto"`
|
`"dark"`
|
`"light"`
\| `"auto"` | Терминальная цветовая тема. |
\| `mouse` | `boolean` | `true` | Включите поддержку мыши в режиме альтернативного экрана. |
\| `respectGitignore` | `boolean` | `true` | Исключите gitignored файлы из `@` выбора файлов. |
\| `disableAllHooks` | `boolean` | `false` | Отключите все крючки. |
\| `hooks` | `object` | — | Встроенные определения хуков на уровне пользователя. |
\| `copyOnSelect` | `boolean` |
`true` (macOS), `false` (другое) | Автоматически копируйте выбранный мышью текст в системный буфер обмена в альтернативном экране. |
\| `statusLine` | `object` | — | Пользовательский отбор строки статуса.
`type`: должно быть `"command"`.
`command`: путь к скрипту, который получает session JSON на stdin и печатает статусный контент в stdout.
`padding`: необязательные левые пробелы. |
\| `suppress_init_folders` | `string[]` | `[]` | Папки, где `/init` предложение было отвергнуто. Управляется автоматически .`/init suppress` |
\| `updateTerminalTitle` | `boolean` | `true` | Покажите текущее намерение в названии терминала. |

### Настройки репозитория (`.github/copilot/settings.json`)

Настройки репозитория применимы ко всем, кто работает в репозитории. На уровне репозитория поддерживаются только ключи, перечисленные в следующей таблице. Любые другие ключи — включая те, что действительны в пользовательском конфигурационном файле — молча игнорируются.

| Ключ                     | Тип                       | Поведение слияния                                                               | Описание                                                                                      |
| ------------------------ | ------------------------- | ------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
| `companyAnnouncements`   | `string[]`                | Замена — репозиторий имеет приоритет                                            | Сообщения появляются случайно при запуске.                                                    |
| `disableAllHooks`        | `boolean`                 | Репозиторий имеет приоритет                                                     | Отключите все крючки.                                                                         |
| `enabledPlugins`         | `Record<string, boolean>` | Merged — репозиторий переопределяет пользователя для того же ключа              | Автоматическая установка декларативного плагина.                                              |
| `extraKnownMarketplaces` | `Record<string, {...}>`   | Merged — репозиторий переопределяет пользователя для того же ключа              | Маркетплейсы плагинов, доступные в этом репозитории.                                          |
| `hooks`                  | `object`                  | Конкатенированные — крючки репозиторий выполняются после пользовательских хуков | Определения крючков, ограниченные этим репозиторием. См. [ссылку на Хукса](#hooks-reference). |
| `mergeStrategy`          |                           |                                                                                 |                                                                                               |

```
          `"rebase"`
          \|
          `"merge"`
         | Репозиторий имеет приоритет | Стратегия разрешения конфликтов для `/pr fix conflicts`. |
```

### Локальные настройки (`.github/copilot/settings.local.json`)

Создавайте `.github/copilot/settings.local.json` в репозитории личные перемены, которые не должны быть закреплены. Добавить этот файл в `.gitignore`.

Локальный конфигурационный файл использует ту же схему, что и файл конфигурации репозитория (`.github/copilot/settings.json`), и имеет приоритет над ней.

## Project инициализация для Copilot

Когда вы используете команду `copilot init`, или команду слэш `/init` в интерактивной сессии, Copilot он анализирует вашу кодовую базу и записывает или обновляет `.github/copilot-instructions.md` файл в репозитории. Этот пользовательский файл инструкций содержит конкретные рекомендации по проекту, которые улучшат будущие сессии CLI.

Обычно вы используете `copilot init`, или `/init`, когда начинаете новый проект или Второй пилот CLI в существующем репозитории.

```
          `copilot-instructions.md` Файл, который создаётся или обновляется, обычно документирует:
```

* Команды сборки, тестирования и ворса.
* Архитектура высокого уровня.
* Специфичные для кодовой базы конвенции.

Если файл уже существует, он Copilot предлагает улучшения, которые можно применить или отклонить.

CLI ищет `copilot-instructions.md` файл при запуске, и если он отсутствует, отображается сообщение:

>

```
          💡 Инструкции второго пилота не найдено. Запустите /init, чтобы сгенерировать copilot-instructions.md файл для этого проекта.
```

Если вы не хотите создавать этот файл, вы можете навсегда скрыть это сообщение при запуске, используя `/init suppress` команду slash, которая добавляет `suppress_init_folders` параметры для этого репозитория в ваш Copilot конфигурационный файл.

Дополнительные сведения см. в разделе [Добавление пользовательских инструкций репозитория для GitHub Copilot](/ru/copilot/how-tos/configure-custom-instructions/add-repository-instructions).

## Ссылка на Hooks

Хуки — это внешние команды, которые выполняются в определённых жизненных точках сессии, обеспечивая индивидуальную автоматизацию, управление безопасностью и интеграции. Файлы конфигурации крюков загружаются автоматически из `.github/hooks/*.json` вашего репозитория.

### Формат конфигурации крючка

Конфигурационные файлы крючка используют формат JSON с версией `1`.

#### Командные крючки

Командные хуки запускают shell-скрипты и поддерживаются на всех типах хуков.

```json
{
  "version": 1,
  "hooks": {
    "preToolUse": [
      {
        "type": "command",
        "bash": "your-bash-command",
        "powershell": "your-powershell-command",
        "cwd": "optional/working/directory",
        "env": { "VAR": "value" },
        "timeoutSec": 30
      }
    ]
  }
}
```

| Поле         | Тип         | Обязательный                | Описание                                                                 |
| ------------ | ----------- | --------------------------- | ------------------------------------------------------------------------ |
| `type`       | `"command"` | Да                          | Этот параметр должен содержать значение `"command"`.                     |
| `bash`       | струна      | Один из `bash`/`powershell` | Команда shell для Unix.                                                  |
| `powershell` | струна      | Один из `bash`/`powershell` | Команда shell для Windows.                                               |
| `cwd`        | струна      | Нет                         | Рабочая папка для команды (относительно корня репозитория или абсолюта). |
| `env`        | объект      | Нет                         | Переменные среды для установки (поддерживает расширение переменных).     |
| `timeoutSec` | число/номер | Нет                         | Время ожидания в секундах. По умолчанию: `30`.                           |

#### Подсказочные зацепки

Подсказочные крючки автоматически отправляют текст так, будто его написал сам пользователь. Они поддерживаются только включёнными `sessionStart` и запускаются до того, как какой-либо первоначальный запрос пройдёт через `--prompt`. Текст может быть подсказкой на естественном языке или командой слэша.

```json
{
  "version": 1,
  "hooks": {
    "sessionStart": [
      {
        "type": "prompt",
        "prompt": "Your prompt text or /slash-command"
      }
    ]
  }
}
```

| Поле     | Тип        | Обязательный | Описание                                                                               |
| -------- | ---------- | ------------ | -------------------------------------------------------------------------------------- |
| `type`   | `"prompt"` | Да           | Этот параметр должен содержать значение `"prompt"`.                                    |
| `prompt` | струна     | Да           | Текст для отправки — это может быть сообщение на естественном языке или команда слэша. |

### События с крючками

| Event                 | Срабатывает, когда                                                                                                                                                                                                                                                   | Обработка выхода                                                                                                    |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `sessionStart`        | Начинается новая или возобновлённая сессия.                                                                                                                                                                                                                          | Нет                                                                                                                 |
| `sessionEnd`          | Сессия заканчивается.                                                                                                                                                                                                                                                | Нет                                                                                                                 |
| `userPromptSubmitted` | Пользователь отправляет запрос.                                                                                                                                                                                                                                      | Нет                                                                                                                 |
| `preToolUse`          | Перед тем, как каждый инструмент сработает.                                                                                                                                                                                                                          | Да — можно разрешать, отрицать или изменять.                                                                        |
| `postToolUse`         | После успешного завершения каждого инструмента.                                                                                                                                                                                                                      | Да — можно заменить успешный результат (только программные хуки SDK).                                               |
| `postToolUseFailure`  | После того, как инструмент завершается с неудачей.                                                                                                                                                                                                                   | Да — может предоставить навигацию по восстановлению через `additionalContext` (код `2` выхода для командных хуков). |
| `agentStop`           | Главный агент завершает ход.                                                                                                                                                                                                                                         | Да — может блокировать и заставлять продолжение.                                                                    |
| `subagentStop`        | Субагент завершает.                                                                                                                                                                                                                                                  | Да — может блокировать и заставлять продолжение.                                                                    |
| `subagentStart`       | Появляется субагент (до его запуска). Возвраты `additionalContext` предшествуют запросу субагента. Поддерживает `matcher` фильтрацию по имени агента.                                                                                                                | Нет — нельзя блокировать создание.                                                                                  |
| `preCompact`          | Вот-вот начнётся уплотнение контекста (ручное или автоматическое). Поддерживают `matcher` фильтрацию по триггерам (`"manual"` или `"auto"`).                                                                                                                         | Нет — только уведомление.                                                                                           |
| `permissionRequest`   | Перед показом диалога разрешения пользователю, после проверки правил не найдётся совпадения с разрешением или отказом. Поддерживает `matcher` regex на `toolName`.                                                                                                   | Да — можно разрешить или отклонить программно.                                                                      |
| `errorOccurred`       | Ошибка возникает во время выполнения.                                                                                                                                                                                                                                | Нет                                                                                                                 |
| `notification`        | Срабатывает асинхронно, когда CLI отправляет системное уведомление (завершение оболочки, завершение работы агента или простоя, запросы разрешения, диалоги вызова). Удар и забыть: никогда не блокирует сессию. Поддерживает `matcher` regex на `notification_type`. | Опционально — можно вводить `additionalContext` в сессию.                                                           |

### Полезные нагрузки для ввода событий hook

Каждое событие с крючком доставляет JSON-полезную нагрузку обработчику крючков. Поддерживаются два формата полезной нагрузки, выбираемых по имени события, используемому в конфигурации крючка:

* **camelCase format** — Настройте имя события в camelCase (например, `sessionStart`). Поля используют CamelCase.

***

```
          VS Code совместимый формат** — Настройте имя события в PascalCase (например, `SessionStart`). Поля используют snake_case для соответствия VS CodeCopilot формату расширения.
```

#### `sessionStart` / `SessionStart`

```
          **Ввод CamelCase:**
```

```typescript
{
    sessionId: string;
    timestamp: number;      // Unix timestamp in milliseconds
    cwd: string;
    source: "startup" | "resume" | "new";
    initialPrompt?: string;
}
```

```
          **
          VS Code Совместимый вход:**
```

```typescript
{
    hook_event_name: "SessionStart";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    source: "startup" | "resume" | "new";
    initial_prompt?: string;
}
```

#### `sessionEnd` / `SessionEnd`

```
          **Ввод CamelCase:**
```

```typescript
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    reason: "complete" | "error" | "abort" | "timeout" | "user_exit";
}
```

```
          **
          VS Code Совместимый вход:**
```

```typescript
{
    hook_event_name: "SessionEnd";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    reason: "complete" | "error" | "abort" | "timeout" | "user_exit";
}
```

#### `userPromptSubmitted` / `UserPromptSubmit`

```
          **Ввод CamelCase:**
```

```typescript
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    prompt: string;
}
```

```
          **
          VS Code Совместимый вход:**
```

```typescript
{
    hook_event_name: "UserPromptSubmit";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    prompt: string;
}
```

#### `preToolUse` / `PreToolUse`

```
          **Ввод CamelCase:**
```

```typescript
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    toolName: string;
    toolArgs: unknown;
}
```

```
          **
          VS Code Совместимый вход:**
```

При настройке с именем `PreToolUse`события PascalCase полезная нагрузка использует snake\_case имена полей, чтобы соответствовать формату VS CodeCopilot расширения:

```typescript
{
    hook_event_name: "PreToolUse";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    tool_name: string;
    tool_input: unknown;    // Tool arguments (parsed from JSON string when possible)
}
```

#### `postToolUse` / `PostToolUse`

```
          **Ввод CamelCase:**
```

```typescript
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    toolName: string;
    toolArgs: unknown;
    toolResult: {
        resultType: "success";
        textResultForLlm: string;
    }
}
```

```
          **
          VS Code Совместимый вход:**
```

```typescript
{
    hook_event_name: "PostToolUse";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    tool_name: string;
    tool_input: unknown;
    tool_result: {
        result_type: "success" | "failure" | "denied" | "error";
        text_result_for_llm: string;
    }
}
```

#### `postToolUseFailure` / `PostToolUseFailure`

```
          **Ввод CamelCase:**
```

```typescript
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    toolName: string;
    toolArgs: unknown;
    error: string;
}
```

```
          **
          VS Code Совместимый вход:**
```

```typescript
{
    hook_event_name: "PostToolUseFailure";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    tool_name: string;
    tool_input: unknown;
    error: string;
}
```

#### `agentStop` / `Stop`

```
          **Ввод CamelCase:**
```

```typescript
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    transcriptPath: string;
    stopReason: "end_turn";
}
```

```
          **
          VS Code Совместимый вход:**
```

```typescript
{
    hook_event_name: "Stop";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    transcript_path: string;
    stop_reason: "end_turn";
}
```

#### `subagentStart`

```
          **Входные данные:**
```

```typescript
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    transcriptPath: string;
    agentName: string;
    agentDisplayName?: string;
    agentDescription?: string;
}
```

#### `subagentStop` / `SubagentStop`

```
          **Ввод CamelCase:**
```

```typescript
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    transcriptPath: string;
    agentName: string;
    agentDisplayName?: string;
    stopReason: "end_turn";
}
```

```
          **
          VS Code Совместимый вход:**
```

```typescript
{
    hook_event_name: "SubagentStop";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    transcript_path: string;
    agent_name: string;
    agent_display_name?: string;
    stop_reason: "end_turn";
}
```

#### `errorOccurred` / `ErrorOccurred`

```
          **Ввод CamelCase:**
```

```typescript
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    error: {
        message: string;
        name: string;
        stack?: string;
    };
    errorContext: "model_call" | "tool_execution" | "system" | "user_input";
    recoverable: boolean;
}
```

```
          **
          VS Code Совместимый вход:**
```

```typescript
{
    hook_event_name: "ErrorOccurred";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    error: {
        message: string;
        name: string;
        stack?: string;
    };
    error_context: "model_call" | "tool_execution" | "system" | "user_input";
    recoverable: boolean;
}
```

#### `preCompact` / `PreCompact`

```
          **Ввод CamelCase:**
```

```typescript
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    transcriptPath: string;
    trigger: "manual" | "auto";
    customInstructions: string;
}
```

```
          **
          VS Code Совместимый вход:**
```

```typescript
{
    hook_event_name: "PreCompact";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    transcript_path: string;
    trigger: "manual" | "auto";
    custom_instructions: string;
}
```

###

```
          `preToolUse` Контроль принятия решений
```

Крюк `preToolUse` может управлять выполнением инструмента, записывая JSON-объект в stdout.

| Поле                 | Ценности | Описание |
| -------------------- | -------- | -------- |
| `permissionDecision` |          |          |

```
          `"allow"`, , `"deny"``"ask"` | Работает ли инструмент. Пустой выход использует стандартное поведение. |
```

\| `permissionDecisionReason` | струна | Агенту показали разум. Требуется при принятии решения `"deny"`. |
\| `modifiedArgs` | объект | Замените аргументы инструментов вместо оригиналов. |

###

```
          `agentStop`
           / 
          `subagentStop` Контроль принятия решений
```

| Поле       | Ценности | Описание |
| ---------- | -------- | -------- |
| `decision` |          |          |

```
          `"block"`, `"allow"` | 
          `"block"` заставляет другого агента поступить, используя `reason` это как подсказку. |
```

\| `reason` | струна | Подсказка для следующего хода, когда `decision` .`"block"` |

###

```
          `permissionRequest` Контроль принятия решений

          `permissionRequest` Крючок срабатывает, когда вот-вот появится диалог разрешения на уровне инструмента. Он запускается после того, как проверки разрешений на основе правил не находят совпадения с разрешением или отказом. Используйте его для программного одобрения или отклонения вызовов инструментов — особенно полезно в режимах pipe (`-p`) и CI, где нет интерактивного запроса.

          **Матчер:** Необязательный регулярный выражение, тестируемое против `toolName`. При установке крюк срабатывает только при совпадающих названиях инструментов.
```

Выводите JSON в stdout, чтобы контролировать решение о разрешении:

| Поле       | Ценности | Описание |
| ---------- | -------- | -------- |
| `behavior` |          |          |

```
          `"allow"`, `"deny"` | Одобрить или отклонить этот инструмент. |
```

\| `message` | струна | Причина возвращалась к LLM при отказе. |
\| `interrupt` | булевый | В `true` сочетании с `"deny"`, агент полностью останавливается. |

Вернуть пустой выход или `{}` переключиться на стандартное поведение (показать пользовательский диалог или отказаться в режиме трубы). Выходной код `2` рассматривается как отказ; если крюк также выводит JSON на stdout, эти поля объединяются с решением отказа.

###

```
          `notification` Крюк

          `notification` Крюк срабатывает асинхронно, когда CLI издаёт системное уведомление. Эти хуки — это система «убери и забудь»: они никогда не блокируют сессию, а любые ошибки фиксируются и пропускаются.

          **Входные данные:**
```

```typescript
{
    sessionId: string;
    timestamp: number;
    cwd: string;
    hook_event_name: "Notification";
    message: string;           // Human-readable notification text
    title?: string;            // Short title (e.g., "Permission needed", "Shell completed")
    notification_type: string; // One of the types listed below
}
```

```
          **Типы уведомлений:**
```

| Тип                        | Когда он срабатывает                                                                |
| -------------------------- | ----------------------------------------------------------------------------------- |
| `shell_completed`          | Заканчивается фоновая (асинхронная) команда shell                                   |
| `shell_detached_completed` | Завершается отделённая оболочная сессия                                             |
| `agent_completed`          | Фоновый субагент заканчивает (выполнен или неудачно)                                |
| `agent_idle`               | Агент фона заканчивает ход и переходит в состояние простоя (ожидание `write_agent`) |
| `permission_prompt`        | Агент запрашивает разрешение на запуск инструмента                                  |
| `elicitation_dialog`       | Агент запрашивает дополнительную информацию у пользователя                          |

```
          **Выходные данные:**
```

```typescript
{
    additionalContext?: string; // Injected into the session as a user message
}
```

Если `additionalContext` он возвращается, текст вводится в сессию в виде предварительного пользовательского сообщения. Это может запустить дальнейшую обработку агентов, если сессия находится в простое. Возврат `{}` или опустошение выхода, чтобы не предпринимать действия.

```
          **Матчер:** Опциональный регуляр на `notification_type`. Паттерн закреплён как `^(?:pattern)$`. Опустите `matcher` все типы уведомлений.
```

### Имена инструментов для подбора крючков

| Имя инструмента | Описание                           |
| --------------- | ---------------------------------- |
| `bash`          | Выполнять команды оболочки (Unix). |
| `powershell`    | Выполнять команды shell (Windows). |
| `view`          | Чтение содержимого файла.          |
| `edit`          | Изменять содержимое файла.         |
| `create`        | Создавайте новые файлы.            |
| `glob`          | Ищите файлы по шаблону.            |
| `grep`          | Поиск по содержимому файла.        |
| `web_fetch`     | Загружайте веб-страницы.           |
| `task`          | Запускайте задачи субагентов.      |

Если настраивать несколько хуков одного типа, они выполняются по порядку. Для `preToolUse`, если какой-либо крюк возвращается `"deny"`, инструмент блокируется. Для командных хуков выход с кодом `postToolUseFailure` приводит к возврату stderr в качестве руководства `2` по восстановлению для помощника. Сбои с крючками (ненулевые коды выхода или тайм-ауты) фиксируются и пропускаются — они никогда не блокируют выполнение агентов.

## Конфигурация сервера MCP

MCP-серверы предоставляют дополнительные инструменты агенту CLI. Настройте постоянные серверы в `~/.copilot/mcp-config.json`. Используйте `--additional-mcp-config` для добавления серверов на одну сессию.

###

```
          `copilot mcp` Подкомандование
```

Используйте `copilot mcp` управление конфигурациями MCP-сервера из командной строки без запуска интерактивной сессии.

| Subcommand            | Описание                                                                                                                                |
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `list [--json]`       | Перечислите все настроенные MCP-серверы, сгруппированные по источнику.                                                                  |
| `get <name> [--json]` | Покажите конфигурацию и инструменты для конкретного сервера.                                                                            |
| `add <name>`          | Добавьте сервер в пользовательскую конфигурацию. Пишет на `~/.copilot/mcp-config.json`.                                                 |
| `remove <name>`       | Удалите сервер пользовательского уровня. Серверы рабочего пространства должны быть напрямую редактированы в их конфигурационных файлах. |

```
          **
          `copilot mcp add` Параметры:**
```

| Опция                    | Описание                                                                              |
| ------------------------ | ------------------------------------------------------------------------------------- |
| `-- <command> [args...]` | Команда и аргументы для локальных (stdio) серверов.                                   |
| `--url <url>`            | URL для удалённых серверов.                                                           |
| `--type <type>`          | Тип транспорта: `local`, `stdio`, `http`, или `sse`.                                  |
| `--env KEY=VALUE`        | Переменная окружения (повторяющая).                                                   |
| `--header KEY=VALUE`     | HTTP-заголовок для удалённых серверов (повторяется).                                  |
| `--tools <tools>`        | Фильтр инструментов: `"*"` для всех, список с разделёнными запятами или `""` для них. |
| `--timeout <ms>`         | Время ожидания в миллисекундах.                                                       |
| `--json`                 | Выход добавил конфигурацию в формате JSON.                                            |
| `--show-secrets`         | Покажите полные значения переменных среды и заголовка.                                |
| `--config-dir <path>`    | Путь к каталогу конфигурации.                                                         |

> \[!CAUTION]

```
          `--show-secrets` Можно печатать чувствительные значения переменных среды и заголовков в ваш терминал или логи. Используйте эту опцию только в доверенных условиях и избегайте копирования, вставки или иного фиксации результатов в общих логах или истории.
```

### Типы транспорта

| Тип               | Описание                                          | Обязательные поля |
| ----------------- | ------------------------------------------------- | ----------------- |
| `local` / `stdio` | Локальный процесс связывается через stdin/stdout. |                   |

```
          `command`, `args` |
```

\| `http` | Удалённый сервер с использованием потокового HTTP-транспорта. | `url` |
\| `sse` | Удалённый сервер с использованием Server-Sent Events Transport. | `url` |

### Поля конфигурации локального сервера

| Поле      | Обязательный | Описание                                                                                  |
| --------- | ------------ | ----------------------------------------------------------------------------------------- |
| `command` | Да           | Команда запускать сервер.                                                                 |
| `args`    | Да           | Аргументы команд (массивы).                                                               |
| `tools`   | Да           | Инструменты для включения: `["*"]` для всех, или список конкретных названий инструментов. |
| `env`     | Нет          | переменные среды Поддержка `$VAR`, `${VAR}`, и `${VAR:-default}` расширение.              |
| `cwd`     | Нет          | Рабочая директория сервера.                                                               |
| `timeout` | Нет          | Тайм-аут вызова инструментов — в миллисекундах.                                           |
| `type`    | Нет          |                                                                                           |

```
          `"local"` или `"stdio"`. По умолчанию: `"local"`. |
```

### Поля конфигурации удалённых серверов

| Поле   | Обязательный | Описание |
| ------ | ------------ | -------- |
| `type` | Да           |          |

```
          `"http"` или `"sse"`. |
```

\| `url` | Да | URL сервера. |
\| `tools` | Да | Инструменты для включения. |
\| `headers` | Нет | HTTP-заголовки. Поддерживает переменное расширение. |
\| `oauthClientId` | Нет | Статический идентификатор клиента OAuth (пропускает динамическую регистрацию). |
\| `oauthPublicClient` | Нет | Является ли клиент OAuth публичным. По умолчанию: `true`. |
\| `oidc` | Нет | Включить инъекцию токена OIDC. Когда `true`, вводит `GITHUB_COPILOT_OIDC_MCP_TOKEN` переменную среды (локальные серверы) или `Bearer``Authorization` заголовок (удалённые серверы). |
\| `timeout` | Нет | Тайм-аут вызова инструментов — в миллисекундах. |

### OAuth повторная аутентификация

Удалённые MCP-серверы, использующие OAuth, могут показывать `needs-auth` статус после истечения срока действия токена или необходимости другого аккаунта. Используйте `/mcp auth <server-name>` для запуска нового потока OAuth. Это открывает запрос аутентификации в браузере, позволяющий войти в систему или сменить аккаунт. После завершения процесса сервер автоматически подключается.

### Фильтровое отображение

Контролировать, как обрабатывается вывод инструмента MCP с помощью `filterMapping` поля в конфигурации сервера.

| Режим               | Описание                                               |
| ------------------- | ------------------------------------------------------ |
| `none`              | Без фильтрации.                                        |
| `markdown`          | Форматируйте выход как Markdown.                       |
| `hidden_characters` | Удалите скрытые или управляющие символы. По умолчанию. |

### Встроенные MCP-серверы

CLI включает встроенные MCP-серверы, доступные без дополнительной настройки.

| Сервер              | Описание |
| ------------------- | -------- |
| `github-mcp-server` |          |

```
          GitHub Интеграция с API: проблемы, pull requests, коммиты, поиск по коду и GitHub Actions. |
```

\| `playwright` | Автоматизация браузера: навигация, клик, ввод, скриншот и обработка форм. |
\| `fetch` | HTTP-запросы через инструмент `fetch` . |
\| `time` | Временные утилисы: `get_current_time` и `convert_time`. |

Используйте `--disable-builtin-mcps` для отключения всех встроенных серверов или `--disable-mcp-server SERVER-NAME` для отключения конкретного сервера.

### Уровни доверия сервера MCP

MCP-серверы загружаются из нескольких источников, каждый с разным уровнем доверия.

| Исходный материал                                            | Уровень доверия            | Обязательная проверка         |
| ------------------------------------------------------------ | -------------------------- | ----------------------------- |
| Built-in                                                     | Высокий                    | Нет                           |
| Хранилище (`.github/mcp.json`)                               | Средняя                    | Рекомендуется                 |
| Рабочее пространство (`.mcp.json`)                           | Средняя                    | Рекомендуется                 |
| Пользовательская конфигурация (`~/.copilot/mcp-config.json`) | Определённый пользователем | Ответственность пользователей |
| Удаленные серверы                                            | Низкий                     | Всегда                        |

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

### Список разрешений корпоративного MCP

```
          GitHub Enterprise организации могут применять список разрешений для разрешённых MCP-серверов. При активном режиме CLI оценивает каждый нестандартный сервер по корпоративной политике перед подключением.
```

Когда обнаруживается GitHub Enterprise политика реестра (или `MCP_ENTERPRISE_ALLOWLIST` включен флаг экспериментальной функции), CLI:

1. Вычисляет отпечаток пальца для каждого настроенного нестандартного сервера на основе его команды, аргументов и удалённых URL.
2. Отправляет отпечатки пальцев в конечную точку оценки корпоративного списка разрешений.
3. Разрешено только серверы, чьи отпечатки одобрены; все остальные блокируются сообщением с названием Enterprise.

Эта проверка является fail-closed: если конечная точка оценки недоступна или возвращает ошибку, нестандартные серверы блокируются до проверки политики.

Когда сервер блокируется корпоративным списком разрешений, CLI отображает:

```text
MCP server "SERVER-NAME" was blocked by your enterprise "ENTERPRISE-NAME".
Contact your enterprise administrator to add this server to the allowlist.
```

Встроенные серверы по умолчанию всегда освобождаются от контроля по спискам разрешений.

### Миграция из `.vscode/mcp.json`

Если ваш проект использует `.vscode/mcp.json` (формат конфигурации MCP VS Code), переходите на `.mcp.json` для GitHub Copilot CLI. Миграция переназначает `servers` ключ на `mcpServers`.

```
          **Раковины POSIX (bash, zsh, fish и другие):**
```

```shell
jq '{mcpServers: .servers}' .vscode/mcp.json > .mcp.json
```

Требует [`jq`](https://jqlang.github.io/jq/).

```
          **PowerShell:**
```

```powershell
pwsh -NoProfile -Command "`$json = Get-Content '.vscode/mcp.json' -Raw | ConvertFrom-Json; `$content = ([pscustomobject]@{ mcpServers = `$json.servers } | ConvertTo-Json -Depth 100); [System.IO.File]::WriteAllText('.mcp.json', `$content, (New-Object System.Text.UTF8Encoding `$false))"
```

В Windows замените `pwsh` на `powershell`, если используете Windows PowerShell вместо PowerShell Core.

## Справочник по навыкам

Навыки — это файлы Markdown, которые расширяют возможности CLI. Каждый навык находится в отдельном каталоге с `SKILL.md` файлом. При вызове (через `/SKILL-NAME` агента или автоматически) содержание навыка вводится в разговор.

### Фронтматические поля навыков

| Поле                       | Тип                  | Обязательный | Описание                                                                                                                                                                 |
| -------------------------- | -------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `name`                     | струна               | Да           | Уникальный идентификатор навыка. Только буквы, цифры и дефисы. Максимум 64 символов.                                                                                     |
| `description`              | струна               | Да           | Что делает навык и когда его использовать. Максимум 1024 символов.                                                                                                       |
| `allowed-tools`            | string или string\[] | Нет          | Список инструментов с разделёнными запятыми или YAML-массив инструментов, которые автоматически разрешены, когда навык активен. Используйте `"*"` для всех инструментов. |
| `user-invocable`           | булевый              | Нет          | Могут ли пользователи вызвать навык с `/SKILL-NAME`помощью . По умолчанию: `true`.                                                                                       |
| `disable-model-invocation` | булевый              | Нет          | Помешайте агенту автоматически вызвать этот навык. По умолчанию: `false`.                                                                                                |

### Места навыков

Навыки загружаются из этих мест в порядке приоритета (первым найденным выигрывает дублирующиеся имена).

| Местоположение             | Объем             | Описание                                                                                               |
| -------------------------- | ----------------- | ------------------------------------------------------------------------------------------------------ |
| `.github/skills/`          | Project           | Project-специфичные навыки.                                                                            |
| `.agents/skills/`          | Project           | Альтернативное местоположение проекта.                                                                 |
| `.claude/skills/`          | Project           | Место, совместимое с Claude.                                                                           |
| Родитель `.github/skills/` | Inherited         | Поддержка родительского каталога Monorepo.                                                             |
| `~/.copilot/skills/`       | Личная информация | Личные навыки для всех проектов.                                                                       |
| `~/.agents/skills/`        | Личная информация | Навыки агента, общие для всех проектов.                                                                |
| `~/.claude/skills/`        | Личная информация | Личное местоположение, совместимое с Клод.                                                             |
| Каталоги плагинов          | Плагин            | Навыки из установленных плагинов.                                                                      |
| `COPILOT_SKILLS_DIRS`      | Настройка         | Дополнительные каталоги (разделены запятой).                                                           |
| (в комплекте с CLI)        | Built-in          | Навыки поставляются вместе с CLI. Самый низкий приоритет — может быть отменён любым другим источником. |

### Команды (альтернативный формат навыка)

Команды являются альтернативой навыкам, хранящимся в отдельных `.md` файлах в `.claude/commands/`. Имя команды происходит от имени файла. Командные файлы используют упрощённый формат (поле не `name` требуется) и поддерживают `description`, `allowed-tools`, и `disable-model-invocation`. Команды имеют меньший приоритет, чем умения с таким же названием.

## Ссылка на таможенных агентов

Пользовательские агенты — это специализированные AI-агенты, определённые в файлах Markdown. Имя файла (без расширения) становится идентификатором агента. Используйте `.agent.md` или `.md` как расширение файла.

### Встроенные агенты

| Агент             | Модель по умолчанию    | Описание                                                                                                                                                                                             |
| ----------------- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `code-review`     | Клод-сонет-4.5         | Высокий анализ кодов по соотношению сигнал/шум. Анализирует различия на наличие ошибок, проблем с безопасностью и логических ошибок.                                                                 |
| `rubber-duck`     | Комплементарная модель | Используйте дополнительную модель для конструктивной критики предложений, дизайнов, реализаций или тестов. Выявляет слабые места и предлагает улучшения. Доступно только в экспериментальном режиме. |
| `explore`         | Клод-хайку-4.5         | Быстрое исследование кодовой базы. Ищет файлы, читает код и отвечает на вопросы. Возвращает сфокусированные ответы менее 300 слов. Безопасно запускать параллельно.                                  |
| `general-purpose` | Клод-сонет-4.5         | Полноценный агент для сложных многоступенчатых задач. Работает в отдельном контекстном окне.                                                                                                         |
| `research`        | Клод-сонет-4.6         | Агент глубоких исследований. Генерирует отчёт на основе информации из вашей кодовой базы, в соответствующих репозиториях и в интернете.                                                              |
| `task`            | Клод-хайку-4.5         | Выполнение команд (тесты, сборки, ворсы). Возвращает краткое резюме по успеху, полный результат по неудачам.                                                                                         |

### Фронтматэрные поля пользовательского агента

| Поле          | Тип       | Обязательный | Описание                                                                                                                                                                                                                        |
| ------------- | --------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `description` | струна    | Да           | Описание указано в списке агентов и `task` инструменте.                                                                                                                                                                         |
| `infer`       | булевый   | Нет          | Разрешить автоматическую делегацию основным агентом. По умолчанию: `true`.                                                                                                                                                      |
| `mcp-servers` | объект    | Нет          | MCP-серверы для подключения. Использует ту же схему, что и `~/.copilot/mcp-config.json`.                                                                                                                                        |
| `model`       | струна    | Нет          | Модель ИИ для этого агента. Когда не установлено, наследует модель внешнего агента. Когда модель сессии установлена в `Auto` (выбрано сервером), субагенты всегда наследуют разрешённую модель сессии независимо от этого поля. |
| `name`        | струна    | Нет          | Отображаемое имя. По умолчанию используется имя файла.                                                                                                                                                                          |
| `tools`       | строка\[] | Нет          | Инструменты, доступные агенту. По умолчанию: `["*"]` (все инструменты).                                                                                                                                                         |

### Местоположение кастомных агентов

| Объем   | Местоположение |
| ------- | -------------- |
| Project |                |

```
          `.github/agents/` или `.claude/agents/` |
```

\| User |
`~/.copilot/agents/` или `~/.claude/agents/` |
\| Плагин | `<plugin>/agents/` |

Агенты уровня Project имеют приоритет над агентами пользовательского уровня. Агенты плагинов имеют самый низкий приоритет.

### Ограничения субагентов

CLI устанавливает ограничения на глубину и параллельность, чтобы предотвратить появление неуправляемых агентов.

| Ограничение               | По умолчанию | Переменная среды                  |
| ------------------------- | ------------ | --------------------------------- |
| Максимальная глубина      | `6`          | `COPILOT_SUBAGENT_MAX_DEPTH`      |
| Максимальная совместность | `32`         | `COPILOT_SUBAGENT_MAX_CONCURRENT` |

```
          **Глубина** определяет, сколько агентов вложено друг в друга. При достижении предела глубины самый внутренний агент не может создавать новые субагенты. 
          **Параллельность** подсчитывает, сколько субагентов работает одновременно на протяжении всего дерева сессий. При достижении лимита новые запросы субагентов отклоняются до тех пор, пока активный агент не завершит работу. Значения фиксируются между `1` и `256`.
```

## Ответы на одобрение разрешений

Когда CLI запросит разрешение на выполнение операции, вы можете ответить следующими клавишами.

| Ключ | Эффект                                           |
| ---- | ------------------------------------------------ |
| `y`  | Разрешите этот конкретный запрос один раз.       |
| `n`  | Откажитесь в этой конкретной просьбе один раз.   |
| `!`  | Разрешите все похожие запросы до конца сессии.   |
| `#`  | Отклоняйте все подобные запросы до конца сессии. |
| `?`  | Покажите подробную информацию о запросе.         |

Одобрения сессий сбрасываются, когда вы запускаете `/clear` или начинаете новую сессию.

## Мониторинг OpenTelemetry

```
          Второй пилот CLI может экспортировать трассы и метрики через [OpenTelemetry](https://opentelemetry.io/) (OTel), что даёт вам видимость взаимодействия с агентами, вызовы LLM, выполнение инструментов и использование токенов. Все имена и атрибуты сигналов следуют [семантическим конвенциям OTel GenAI](https://github.com/open-telemetry/semantic-conventions/blob/main/docs/gen-ai/).
```

OTel по умолчанию выключен без накладных расходов. Он активируется при выполнении любого из следующих условий:

* `COPILOT_OTEL_ENABLED=true`
* `OTEL_EXPORTER_OTLP_ENDPOINT` задано
* `COPILOT_OTEL_FILE_EXPORTER_PATH` задано

### Переменные среды OTel

| Variable                                             | По умолчанию     | Описание                                                                                                                                      |
| ---------------------------------------------------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `COPILOT_OTEL_ENABLED`                               | `false`          | Явно включите OTel. Не обязательно, если `OTEL_EXPORTER_OTLP_ENDPOINT` установлено.                                                           |
| `OTEL_EXPORTER_OTLP_ENDPOINT`                        | —                | URL конечной точки OTLP. Настройка этого автоматически включает OTel.                                                                         |
| `COPILOT_OTEL_EXPORTER_TYPE`                         | `otlp-http`      | Тип экспортера: `otlp-http` или `file`. Автоматический `file` выбор при `COPILOT_OTEL_FILE_EXPORTER_PATH` установлении.                       |
| `OTEL_SERVICE_NAME`                                  | `github-copilot` | Имя сервиса в атрибутах ресурса.                                                                                                              |
| `OTEL_RESOURCE_ATTRIBUTES`                           | —                | Дополнительные атрибуты ресурсов в виде пар, разделённых `key=value` по запятым. Используйте процентное кодирование для специальных символов. |
| `OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT` | `false`          | Собирайте полный контент с подсказками и ответами. См. [Захват контента](#content-capture).                                                   |
| `OTEL_LOG_LEVEL`                                     | —                | Уровень диагностического лога OTel: `NONE`, `ERROR`, `WARN`, `INFO`, `DEBUG``VERBOSE`, , . `ALL`                                              |
| `COPILOT_OTEL_FILE_EXPORTER_PATH`                    | —                | Запишите все сигналы в этот файл как JSON-строки. Настройка этого автоматически включает OTel.                                                |
| `COPILOT_OTEL_SOURCE_NAME`                           | `github.copilot` | Название приборного прицела для трассера и счетчика.                                                                                          |
| `OTEL_EXPORTER_OTLP_HEADERS`                         | —                | Заголовки аутентификации для экспортера OTLP (например, `Authorization=Bearer token`).                                                        |

### Traces

Время выполнения создаёт иерархическое дерево span для каждого взаимодействия агента. Каждое дерево содержит корневый `invoke_agent` размах, с `chat` и `execute_tool` дочерними spans.

####

```
          `invoke_agent` Атрибуты размаха
```

Обворачивает весь вызов агента: все LLM-вызовы и выполнение инструментов для одного пользовательского сообщения.

* **Верхнеуровневые сессии** используют span kind `CLIENT` (удалённый вызов сервиса) с `server.address` и `server.port`.
* **Вызовы субагентов** (например, explore, task) используют span kind `INTERNAL` (in-process) без атрибутов сервера.

| Атрибут                          | Описание                                    | Вид размаха |
| -------------------------------- | ------------------------------------------- | ----------- |
| `gen_ai.operation.name`          | `invoke_agent`                              | Both        |
| `gen_ai.provider.name`           | Провайдер (например, `github`, `anthropic`) | Both        |
| `gen_ai.agent.id`                | Идентификатор сессии                        | Both        |
| `gen_ai.agent.name`              | Имя агента (если доступно)                  | Both        |
| `gen_ai.agent.description`       | Описание агента (если доступно)             | Both        |
| `gen_ai.agent.version`           | Версия среды выполнения                     | Both        |
| `gen_ai.conversation.id`         | Идентификатор сессии                        | Both        |
| `gen_ai.request.model`           | Запрошенная модель                          | Both        |
| `gen_ai.response.finish_reasons` |                                             |             |

```
          `["stop"]` или `["error"]` | Both |
```

\| `gen_ai.usage.input_tokens` | Общее количество входных жетонов (все ходы) | Both |
\| `gen_ai.usage.output_tokens` | Общее количество токенов выхода (все ходы) | Both |
\| `gen_ai.usage.cache_read.input_tokens` | Кэшированные входные токены считываются | Both |
\| `gen_ai.usage.cache_creation.input_tokens` | Созданы кэшированные входные токены | Both |
\| `github.copilot.turn_count` | Количество поездок с LLM туда и обратно | Both |
\| `github.copilot.cost` | Денежные затраты | Both |
\| `github.copilot.aiu` | Потраченные единицы ИИ | Both |
\| `server.address` | Имя хоста сервера | Только `CLIENT` |
\| `server.port` | Порт сервера | Только `CLIENT` |
\| `error.type` | Имя класса ошибки (по ошибке) | Both |
\| `gen_ai.input.messages` | Полные вводные сообщения в формате JSON (только захват контента) | Both |
\| `gen_ai.output.messages` | Полный вывод сообщений в формате JSON (только захват контента) | Both |
\| `gen_ai.system_instructions` | Системный запрос контента в формате JSON (только захват контента) | Both |
\| `gen_ai.tool.definitions` | Схемы инструментов в формате JSON (только захват контента) | Both |

####

```
          `chat` Атрибуты размаха
```

Один проём на запрос LLM. Размах видов: `CLIENT`.

| Атрибут                                    | Описание                                                          |
| ------------------------------------------ | ----------------------------------------------------------------- |
| `gen_ai.operation.name`                    | `chat`                                                            |
| `gen_ai.provider.name`                     | Имя поставщика                                                    |
| `gen_ai.request.model`                     | Запрошенная модель                                                |
| `gen_ai.conversation.id`                   | Идентификатор сессии                                              |
| `gen_ai.response.id`                       | Идентификатор ответа                                              |
| `gen_ai.response.model`                    | Разрешённая модель                                                |
| `gen_ai.response.finish_reasons`           | Причины остановки                                                 |
| `gen_ai.usage.input_tokens`                | Входные токены на этом ходу                                       |
| `gen_ai.usage.output_tokens`               | Токены выхода в этом ходу                                         |
| `gen_ai.usage.cache_read.input_tokens`     | Кэшированные токены считываются                                   |
| `gen_ai.usage.cache_creation.input_tokens` | Созданные кэшированные токены                                     |
| `github.copilot.cost`                      | Стоимость хода                                                    |
| `github.copilot.aiu`                       | Юниты искусственного интеллекта потратили этот ход                |
| `github.copilot.server_duration`           | Длительность на стороне сервера                                   |
| `github.copilot.initiator`                 | Инициатор запроса                                                 |
| `github.copilot.turn_id`                   | Идентификатор поворота                                            |
| `github.copilot.interaction_id`            | Идентификатор взаимодействия                                      |
| `github.copilot.time_to_first_chunk`       | Время до первого стриминга, за секунды (только для стриминга)     |
| `server.address`                           | Имя хоста сервера                                                 |
| `server.port`                              | Порт сервера                                                      |
| `error.type`                               | Имя класса ошибки (по ошибке)                                     |
| `gen_ai.input.messages`                    | Полные запросы в формате JSON (только захват контента)            |
| `gen_ai.output.messages`                   | Полные ответные сообщения в формате JSON (только захват контента) |
| `gen_ai.system_instructions`               | Системный запрос контента в формате JSON (только захват контента) |

####

```
          `execute_tool` Атрибуты размаха
```

Один размах на вызов инструмента. Размах видов: `INTERNAL`.

| Атрибут                      | Описание                                                            |
| ---------------------------- | ------------------------------------------------------------------- |
| `gen_ai.operation.name`      | `execute_tool`                                                      |
| `gen_ai.provider.name`       | Имя поставщика (если доступно)                                      |
| `gen_ai.tool.name`           | Имя инструмента (например, `readFile`)                              |
| `gen_ai.tool.type`           | `function`                                                          |
| `gen_ai.tool.call.id`        | Идентификатор вызова инструмента                                    |
| `gen_ai.tool.description`    | Описание инструмента                                                |
| `error.type`                 | Имя класса ошибки (по ошибке)                                       |
| `gen_ai.tool.call.arguments` | Аргументы ввода инструмента в формате JSON (только захват контента) |
| `gen_ai.tool.call.result`    | Вывод инструмента в формате JSON (только захват контента)           |

### Metrics

#### Метрики конвенции GenAI

| Единица измерения                               | Тип         | Единица измерения | Описание                                    |
| ----------------------------------------------- | ----------- | ----------------- | ------------------------------------------- |
| `gen_ai.client.operation.duration`              | Гистограмма | s                 | Длительность вызова LLM API и вызова агента |
| `gen_ai.client.token.usage`                     | Гистограмма | tokens            | Подсчёт жетонов по типу (`input`/`output`)  |
| `gen_ai.client.operation.time_to_first_chunk`   | Гистограмма | s                 | Пора получить первый стриминговый блок      |
| `gen_ai.client.operation.time_per_output_chunk` | Гистограмма | s                 | Задержка между блоками после первого чанка  |

#### Метрики, специфичные для поставщика

| Единица измерения                   | Тип         | Единица измерения | Описание                                                     |
| ----------------------------------- | ----------- | ----------------- | ------------------------------------------------------------ |
| `github.copilot.tool.call.count`    | Счетчик     | calls             | Вызовы инструментов с `gen_ai.tool.name` помощью и `success` |
| `github.copilot.tool.call.duration` | Гистограмма | s                 | Задержка выполнения инструмента по `gen_ai.tool.name`        |
| `github.copilot.agent.turn.count`   | Гистограмма | Ходы              | Туда и обратно на LLM на вызов агента                        |

### Временные события

События жизненного цикла, зафиксированные на активном `chat` или `invoke_agent` промежуточном цикле.

| Event                       | Описание     | Ключевые атрибуты |
| --------------------------- | ------------ | ----------------- |
| `github.copilot.hook.start` | Начался крюк |                   |

```
          `github.copilot.hook.type`, `github.copilot.hook.invocation_id` |
```

\| `github.copilot.hook.end` | Крюк выполнен успешно |
`github.copilot.hook.type`, `github.copilot.hook.invocation_id` |
\| `github.copilot.hook.error` | Крюк не сработал |
`github.copilot.hook.type`, , `github.copilot.hook.invocation_id``github.copilot.hook.error_message` |
\| `github.copilot.session.truncation` | История разговоров была сокращена |
`github.copilot.token_limit`, `github.copilot.pre_tokens`, `github.copilot.post_tokens``github.copilot.pre_messages``github.copilot.post_messages``github.copilot.tokens_removed``github.copilot.messages_removed``github.copilot.performed_by` |
\| `github.copilot.session.compaction_start` | Начало уплотнения в истории | Нет |
\| `github.copilot.session.compaction_complete` | Завершено уплотнение истории |
`github.copilot.success`, `github.copilot.pre_tokens`, `github.copilot.post_tokens`, `github.copilot.tokens_removed``github.copilot.messages_removed`, , ( `github.copilot.message` только захват контента) |
\| `github.copilot.skill.invoked` | Был вызван навык |
`github.copilot.skill.name`, , `github.copilot.skill.path``github.copilot.skill.plugin_name``github.copilot.skill.plugin_version` |
\| `github.copilot.session.shutdown` | Сессия закрывается |
`github.copilot.shutdown_type`, `github.copilot.total_premium_requests`, , `github.copilot.lines_added`, `github.copilot.lines_removed``github.copilot.files_modified_count` |
\| `github.copilot.session.abort` | Пользователь отменил текущую операцию | `github.copilot.abort_reason` |
\| `exception` | Ошибка сессии |
`github.copilot.error_type`, , `github.copilot.error_status_code``github.copilot.error_provider_call_id` |

### Атрибуты ресурсов

Все сигналы несут эти атрибуты ресурсов.

| Атрибут        | Ценность |
| -------------- | -------- |
| `service.name` |          |

```
          `github-copilot` (настраивается через `OTEL_SERVICE_NAME`) |
```

\| `service.version` | Версия среды выполнения |

### Захват контента

По умолчанию не фиксируется содержимое запросов, ответы или аргументы инструментов — только метаданные, такие как названия моделей, количество токенов и длительность. Чтобы охватить полный контент, установите `OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true`.

> \[!WARNING]
> Захват контента может включать чувствительную информацию, такую как код, содержимое файлов и пользовательские подсказки. Включайте это только в доверенных средах.

Когда включено захват контента, заполняются следующие атрибуты.

| Атрибут                      | Content                               |
| ---------------------------- | ------------------------------------- |
| `gen_ai.input.messages`      | Полные сообщения с подсказками (JSON) |
| `gen_ai.output.messages`     | Полные ответные сообщения (JSON)      |
| `gen_ai.system_instructions` | Содержимое системных подсказок (JSON) |
| `gen_ai.tool.definitions`    | Схемы инструментов (JSON)             |
| `gen_ai.tool.call.arguments` | Аргументы ввода инструментов          |
| `gen_ai.tool.call.result`    | Вывод инструментов                    |

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

* [GitHub Copilot CLI](/ru/copilot/how-tos/copilot-cli)
* [Ссылка на плагин GitHub Copilot CLI](/ru/copilot/reference/copilot-cli-reference/cli-plugin-reference)
* [GitHub Copilot CLI программный справочник](/ru/copilot/reference/copilot-cli-reference/cli-programmatic-reference)
* [Каталог конфигурации CLI GitHub Copilot](/ru/copilot/reference/copilot-cli-reference/cli-config-dir-reference)