Команды командной строки
| Command | Purpose |
|---|---|
copilot | Запустите интерактивный пользовательский интерфейс. |
copilot help [topic] | Покажите справочную информацию. Темы помощи включают: config, commands, environment, logging``permissions, , и providers. |
copilot init | Инициализируйте Copilot пользовательские инструкции для этого репозитория. |
copilot update | Скачайте и установите последнюю версию. |
copilot version | Откажите информацию о версии и проверьте обновления. |
copilot login | Аутентифицируйтесь Copilot через поток устройств OAuth. Принимает --host HOST указать GitHub URL хоста (по умолчанию: https://github.com). |
copilot logout | Выйдите из GitHub системы и удалите сохранённые учетные данные. |
copilot plugin | Управляйте плагинами и маркетплейсами плагинов. |
copilot mcp | Управляйте конфигурациями MCP-сервера из командной строки. |
Глобальные ярлыки в интерактивном интерфейсе
| Shortcut | Purpose |
|---|---|
@ FILENAME | Включите содержимое файла в контекст. |
<kbd>Ctrl</kbd>+<kbd>Тогда X</kbd>`/` | После того как вы начали вводить подстрымку, это позволяет выполнить команду слэш — например, если вы хотите изменить модель без необходимости переписывать подсказку. |
|
Esc | Отменить текущую операцию. |
| ! COMMAND | Выполните команду в локальной оболочке, обходя Copilot. |
|
CTRL+C | Отменить операцию / очистить вход. Нажмите дважды, чтобы выйти. |
|
CTRL+D | Отключение. |
|
CTRL+L | Очистите экран. |
|
Shift+Вкладка | Переключайтесь между стандартным, планным и автопилотным режимами. |
Ярлыки временной линии в интерактивном интерфейсе
| Shortcut | Purpose |
|---|
<kbd>Ctrl</kbd>+<kbd>О</kbd> | Хотя в запросе ничего нет, оно расширяет недавние элементы в Copilotтаймлайне ответов, чтобы показать больше деталей. |
| CTRL+E | Хотя в вводном запросе ничего нет, это расширяет все элементы в Copilotтаймлайне ответов. | | CTRL+T | Расширить/свернуть отображение рассуждений в ответах. |
Навигационные ярлыки в интерактивном интерфейсе
| Shortcut | Purpose |
|---|
<kbd>CTRL</kbd>+<kbd>A</kbd> | Переместитесь к началу строки (при наборе). |
| CTRL+B | Перейти к предыдущему персонажу. | | CTRL+E | Переместитесь в конец строки (при наборе). | | CTRL+F | Перейти к следующему персонажу. | | CTRL+G | Отредактируйте запрос во внешнем редакторе. | | CTRL+H | Удалить предыдущего персонажа. | | Ctrl+К | Удалить с курсора до конца строки. Если курсор находится в конце строки, удалите разрыв строки. | | CTRL+U | Удалить с курсора в начало строки. | | Ctrl+Ж | Удалить предыдущее слово. | | дом | Переходите к началу текущей линии. | | Конец | Переместитесь к концу текущей линии. | | Ctrl+Дома | Перейдите к началу текста. | | Ctrl+Конец | Перейдём к концу текста. | | Мета+←/→ | Двигайте курсор на слово. | | ↑/↓ | Просматривайте историю команд. |
Команды Slash в интерактивном интерфейсе
| Command | Purpose |
|---|---|
/add-dir PATH | Добавьте каталог в разрешённый список для доступа к файлам. |
/agent | Просматривайте и выбирайте из доступных агентов (если они есть). См . раздел AUTOTITLE. |
`/allow-all`, `/yolo` | Включите все права (инструменты, пути и URL). |
| /changelog [SUMMARIZE] [VERSION] | Откажите журнал изменений CLI с опциональным сводкой, сгенерированной ИИ. |
|
/clear [PROMPT], /new [PROMPT] | Запустите новую беседу. |
| /compact | Кратко изложите историю переписки, чтобы уменьшить использование контекстного окна. См . раздел AUTOTITLE. |
| /context | Покажите использование токена контекстного окна и визуализацию. См . раздел AUTOTITLE. |
| /copy | Скопируйте последний ответ в буфер обмена. |
|
/cwd, /cd [PATH] | Измените рабочий каталог или отобразите текущий каталог. |
| /delegate [PROMPT] | Делегировать изменения в удалённый репозиторий с помощью пулл-запроса, сгенерированного ИИ. См . раздел AUTOTITLE. |
| /diff | Проверьте изменения, внесённые в текущий каталог. |
|
/exit, /quit | Выйдите из CLI. |
| /experimental [on\|off\|show] | Переключайте, устанавливайте или показывайте экспериментальные функции. |
| /feedback | Дайте обратную связь о CLI. |
| /fleet [PROMPT] | Включить параллельное выполнение субагентов для выполнения частей задачи. См . раздел AUTOTITLE. |
| /help | Покажите помощь по интерактивным командам. |
| /ide | Подключитесь к рабочему пространству IDE. См . раздел AUTOTITLE. |
| /init | Инициализируйте Copilot пользовательские инструкции и агентные функции для этого репозитория. См. инициализацию Project для 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. |
|
/model, /models [MODEL] | Выберите модель ИИ, которую хотите использовать. |
|
/on-air, /streamer-mode | Переключение режима стримера (скрывает имена моделей предварительного просмотра). |
| /plan [PROMPT] | Создайте план реализации перед написанием кода. |
| /plugin [marketplace\|install\|uninstall\|update\|list] [ARGS...] | Управляйте плагинами и маркетплейсами плагинов. См . раздел AUTOTITLE. |
| /pr [view\|create\|fix\|auto] | Работайте с pull request-запросами для текущей ветки. |
| /remote | Включите удалённый доступ к этой сессии из GitHub.com и GitHub Mobile. См . раздел AUTOTITLE. |
| /rename [NAME] | Переименовать текущую сессию (автоматически генерирует имя, если оно опущено; псевдоним для /session rename). |
| /research TOPIC | Проведите глубокое исследование с использованием GitHub поисковых и веб-источников. См . раздел AUTOTITLE. |
| /reset-allowed-tools | Сбросьте список разрешённых инструментов. |
| /restart | Перезапустить CLI, сохраняя текущую сессию. |
| /resume [SESSION-ID] | Переключитесь на другую сессию, выбрав из списка (по желанию укажите идентификатор сессии). |
| /review [PROMPT] | Запустите агент проверки кода для анализа изменений. См . раздел AUTOTITLE. |
| /session [checkpoints [n]\|files\|plan\|rename NAME] | Покажите информацию о сессии и резюме рабочего пространства. Используйте подкоманды для подробностей. |
| /share [file\|gist] [session\|research] [PATH] | Поделитесь сессией в файле Markdown или GitHub в Gist. |
| /skills [list\|info\|add\|remove\|reload] [ARGS...] | Управляйте навыками для расширения возможностей. См . раздел AUTOTITLE. |
| /tasks | Просмотр и управление фоновыми задачами (субагентами и shell-сессиями). |
| /terminal-setup | Настройте терминал для поддержки многолинейного входа (Shift+Enter и Ctrl+Enter). |
| /theme [show\|set\|list] [auto\|THEME-ID] | Просмотрите или настройте тему терминала. |
|
/undo, /rewind | Перемотайте последний ход и отмените изменения в файле. |
| /update | Обновите CLI до последней версии. |
| /usage | Отображайте метрики и статистику использования сессий. |
| /user [show\|list\|switch] | Управляйте текущим GitHub пользователем. |
| /version | Откажите информацию о версии и проверьте обновления. |
Для полного списка доступных команд слэш введите /help в интерактивный интерфейс CLI.
Параметры командной строки
| Опция | Purpose |
|---|---|
--acp | Запустите сервер протокола Agent Client. |
--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. |
--agent=AGENT | Укажите a Пользовательский агент для использования. См . раздел AUTOTITLE. |
--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. |
--allow-url=URL ... | Разрешите доступ к определённым URL или доменам. Для нескольких URL используйте список с кавычками, разделёнными запятыми. |
--autopilot | Включите автопилот в режиме подсказок. См . раздел AUTOTITLE. |
--available-tools=TOOL ... | Модели будут доступны только эти инструменты. Для множества инструментов используйте список с кавычками, разделёнными запятыми. См . раздел AUTOTITLE. |
--banner | Покажите баннер стартапа. |
--bash-env | Включите BASH_ENV поддержку bash-shells. |
--config-dir=PATH | Установите каталог конфигурации (по умолчанию: ~/.copilot). |
--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-сервер (его можно использовать несколько раз). |
--disable-parallel-tools-execution | Отключите параллельное выполнение инструментов (LLM всё ещё может выполнять параллельные вызовы инструментов, но они будут выполняться последовательно). |
--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. |
| --mode=MODE | Установите начальный режим агента (выборы: interactive, plan, autopilot). Нельзя объединить с --autopilot или --plan. |
| --model=MODEL | Задайте модель ИИ, которую хотите использовать. |
| --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. |
| --plan | Начинайте в режиме планирования. Сокращение для --mode plan. Нельзя объединить с --mode или --autopilot. |
| --plain-diff | Отключите рендеринг rich diff (выделение синтаксиса через инструмент diff, указанный в конфигурации git). |
| --plugin-dir=DIRECTORY | Загрузите плагин из локальной папки (можно использовать несколько раз). |
| --remote | Включите удалённый доступ к этой сессии из GitHub.com и GitHub Mobile. См . раздел AUTOTITLE. |
| --resume=SESSION-ID | Возобновите предыдущую интерактивную сессию, выбрав из списка (по желанию укажите идентификатор сессии). |
|
-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.
Примечание.
Опции --remote and --no-remote требуют, чтобы функция удалённых сессий была доступна на вашем аккаунте.
Значения доступности инструментов
`--available-tools` Опции и `--excluded-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 | Задайте пользователю вопрос |
| report_intent | Сообщите о планах агента |
| show_file | Отобразите файл на видном месте |
| fetch_copilot_cli_documentation | Посмотрите документацию по CLI |
| update_todo | Обновление чек-листа задач |
| store_memory | Сохраняйте факты в разных сессиях |
| task_complete | Задача сигнала выполнена (только на автопилоте) |
| exit_plan_mode | Режим плана выхода |
| sql | Данные сессии запроса (экспериментальные) |
| lsp | Рефакторинг языкового сервера (экспериментальный) |
Шаблоны разрешений инструментов
Опции и --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 они установлены.
# 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 для стандартных параметров платформы. |
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 | Запасной вариант для обнаружения фона на тёмных/светлых терминалах. |
COPILOT_CLI_ENABLED_FEATURE_FLAGS | Список флагов признаков с разделёнными запятой для включения (например, "SOME_FEATURE,SOME_OTHER_FEATURE"). |
Настройки конфигурационных файлов
Настройки каскадно переходят от пользователя к репозиторию и локально, при этом более специфические области объёмов перемещают более общие. Флаги командной строки и переменные среды всегда имеют наибольшее значение.
| Объем | Местоположение | Purpose |
|---|---|---|
| User | ~/.copilot/config.json | Глобальные стандарты для всех репозиториев. Используйте COPILOT_HOME переменную среды для указания альтернативного пути. |
| Репозиторий | .github/copilot/settings.json | Конфигурация общего репозитория (фиксирована в репозитории). |
| Локальный | .github/copilot/settings.local.json | Личные перемены (добавьте это к .gitignore). |
Пользовательские настройки (~/.copilot/config.json)
| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
allowed_urls | 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). |
| enabledFeatureFlags | object | — | Включите или отключите флаги отдельных функций. Клавиши — это имена флагов; значения — true (включить) или false (явно отключить). Имеет приоритет над устаревшим feature_flags.enabled форматом массива. См. ссылку на флаг особенности. |
| experimental | boolean | false | Включить экспериментальные функции. |
| includeCoAuthoredBy | boolean | true | Добавьте Co-authored-by трейлер к git-коммитам, сделанным агентом. |
| companyAnnouncements | string[] | [] | Пользовательские сообщения отображаются случайным образом при запуске. |
| logLevel |
"none"
|
"error"
|
"warning"
|
"info"
|
"debug"
|
"all"
|
"default"
| "default" | Веду многословность. |
| model | string | изменяется | Модель ИИ для использования (см. /model команду). |
| powershellFlags | string[] | ["-NoProfile", "-NoLogo"] | Флаги передавались в PowerShell (pwsh) при запуске. Только для Windows. |
| effortLevel | string | "medium" | Уровень усилий по рассуждению для расширенного мышления (например, "low", , "medium"``"high"``"xhigh", ). Более высокие уровни требуют больше вычислений. |
| renderMarkdown | boolean | true | Render Markdown на выходе терминала. |
| screenReader | boolean | false | Включите оптимизацию экранных читателей. |
| stream | boolean | true | Включите потоковые ответы. |
| storeTokenPlaintext | boolean | false | Храните токены аутентификации в открытом тексте в конфигурационном файле, когда системный ключ недоступен. |
| streamerMode | boolean | false | Скрыть имена моделей и детали квот (полезно при демонстрации Copilot CLI). |
| theme |
"auto"
|
"dark"
|
"light"
| "auto" | Терминальная цветовая тема. |
| trusted_folders | string[] | [] | Папки с предварительно предоставленным доступом к файлам. |
| mouse | boolean | true | Включите поддержку мыши в режиме альтернативного экрана. |
| respectGitignore | boolean | true | Исключите gitignored файлы из @ выбора файлов. |
| disableAllHooks | boolean | false | Отключите все крючки. |
| hooks | object | — | Встроенные определения хуков на уровне пользователя. |
| updateTerminalTitle | boolean | true | Покажите текущее намерение в названии терминала. |
Настройки репозитория (.github/copilot/settings.json)
Настройки репозитория применимы ко всем, кто работает в репозитории. На уровне репозитория поддерживается только подмножество настроек. Неподдерживаемые ключи игнорируются.
| Ключ | Тип | Поведение слияния | Описание |
|---|---|---|---|
companyAnnouncements | string[] | Замена — репозиторий имеет приоритет | Сообщения появляются случайно при запуске. |
enabledPlugins | Record<string, boolean> | Merged — репозиторий переопределяет пользователя для того же ключа | Автоматическая установка декларативного плагина. |
extraKnownMarketplaces | Record<string, {...}> | Merged — репозиторий переопределяет пользователя для того же ключа | Маркетплейсы плагинов, доступные в этом репозитории. |
Локальные настройки (.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, когда начинаете новый проект или Copilot CLI в существующем репозитории.
`copilot-instructions.md` Файл, который создаётся или обновляется, обычно документирует:
- Команды сборки, тестирования и ворса.
- Архитектура высокого уровня.
- Специфичные для кодовой базы конвенции.
Если файл уже существует, он Copilot предлагает улучшения, которые можно применить или отклонить.
CLI ищет copilot-instructions.md файл при запуске, и если он отсутствует, отображается сообщение:
💡 Инструкции второго пилота не найдено. Запустите /init, чтобы сгенерировать copilot-instructions.md файл для этого проекта.
Если вы не хотите создавать этот файл, вы можете навсегда скрыть это сообщение при запуске, используя /init suppress команду slash, которая добавляет suppress_init_folders параметры для этого репозитория в ваш Copilot конфигурационный файл.
Дополнительные сведения см. в разделе Добавление пользовательских инструкций репозитория для GitHub Copilot.
Ссылка на Hooks
Хуки — это внешние команды, которые выполняются в определённых жизненных точках сессии, обеспечивая индивидуальную автоматизацию, управление безопасностью и интеграции. Файлы конфигурации крюков загружаются автоматически из .github/hooks/*.json вашего репозитория.
Формат конфигурации крючка
Конфигурационные файлы крючка используют формат JSON с версией 1.
Командные крючки
Командные хуки запускают shell-скрипты и поддерживаются на всех типах хуков.
{
"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. Текст может быть подсказкой на естественном языке или командой слэша.
{
"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:**
{
sessionId: string;
timestamp: number; // Unix timestamp in milliseconds
cwd: string;
source: "startup" | "resume" | "new";
initialPrompt?: string;
}
**
VS Code Совместимый вход:**
{
hook_event_name: "SessionStart";
session_id: string;
timestamp: string; // ISO 8601 timestamp
cwd: string;
source: "startup" | "resume" | "new";
initial_prompt?: string;
}
sessionEnd / SessionEnd
**Ввод CamelCase:**
{
sessionId: string;
timestamp: number;
cwd: string;
reason: "complete" | "error" | "abort" | "timeout" | "user_exit";
}
**
VS Code Совместимый вход:**
{
hook_event_name: "SessionEnd";
session_id: string;
timestamp: string; // ISO 8601 timestamp
cwd: string;
reason: "complete" | "error" | "abort" | "timeout" | "user_exit";
}
userPromptSubmitted / UserPromptSubmit
**Ввод CamelCase:**
{
sessionId: string;
timestamp: number;
cwd: string;
prompt: string;
}
**
VS Code Совместимый вход:**
{
hook_event_name: "UserPromptSubmit";
session_id: string;
timestamp: string; // ISO 8601 timestamp
cwd: string;
prompt: string;
}
preToolUse / PreToolUse
**Ввод CamelCase:**
{
sessionId: string;
timestamp: number;
cwd: string;
toolName: string;
toolArgs: unknown;
}
**
VS Code Совместимый вход:**
При настройке с именем PreToolUseсобытия PascalCase полезная нагрузка использует snake_case имена полей, чтобы соответствовать формату VS CodeCopilot расширения:
{
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:**
{
sessionId: string;
timestamp: number;
cwd: string;
toolName: string;
toolArgs: unknown;
toolResult: {
resultType: "success";
textResultForLlm: string;
}
}
**
VS Code Совместимый вход:**
{
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:**
{
sessionId: string;
timestamp: number;
cwd: string;
toolName: string;
toolArgs: unknown;
error: string;
}
**
VS Code Совместимый вход:**
{
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:**
{
sessionId: string;
timestamp: number;
cwd: string;
transcriptPath: string;
stopReason: "end_turn";
}
**
VS Code Совместимый вход:**
{
hook_event_name: "Stop";
session_id: string;
timestamp: string; // ISO 8601 timestamp
cwd: string;
transcript_path: string;
stop_reason: "end_turn";
}
subagentStart
**Входные данные:**
{
sessionId: string;
timestamp: number;
cwd: string;
transcriptPath: string;
agentName: string;
agentDisplayName?: string;
agentDescription?: string;
}
subagentStop / SubagentStop
**Ввод CamelCase:**
{
sessionId: string;
timestamp: number;
cwd: string;
transcriptPath: string;
agentName: string;
agentDisplayName?: string;
stopReason: "end_turn";
}
**
VS Code Совместимый вход:**
{
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:**
{
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 Совместимый вход:**
{
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:**
{
sessionId: string;
timestamp: number;
cwd: string;
transcriptPath: string;
trigger: "manual" | "auto";
customInstructions: string;
}
**
VS Code Совместимый вход:**
{
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 издаёт системное уведомление. Эти хуки — это система «убери и забудь»: они никогда не блокируют сессию, а любые ошибки фиксируются и пропускаются.
**Входные данные:**
{
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 | Агент запрашивает дополнительную информацию у пользователя |
**Выходные данные:**
{
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> | Путь к каталогу конфигурации. |
Внимание
`--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 требуют явного разрешения. Это относится даже к операциям только для чтения на внешних сервисах.
Миграция из .vscode/mcp.json
Если ваш проект использует .vscode/mcp.json (формат конфигурации MCP VS Code), переходите на .mcp.json для GitHub Copilot CLI. Миграция переназначает servers ключ на mcpServers.
**Раковины POSIX (bash, zsh, fish и другие):**
jq '{mcpServers: .servers}' .vscode/mcp.json > .mcp.json
Требует jq.
**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 | струна | Нет | Модель ИИ для этого агента. Когда не установлено, наследует модель внешнего агента. |
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
Copilot 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 | Собирайте полный контент с подсказками и ответами. См. Захват контента. |
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.
Предупреждение
Захват контента может включать чувствительную информацию, такую как код, содержимое файлов и пользовательские подсказки. Включайте это только в доверенных средах.
Когда включено захват контента, заполняются следующие атрибуты.
| Атрибут | 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 | Вывод инструментов |
Ссылка на флаг объектов
Флаги функций включают функциональность, которая пока не является общедоступной. Вы можете включить или отключить отдельные флаги тремя способами:
-
**Переменная среды**: Установите `COPILOT_CLI_ENABLED_FEATURE_FLAGS` список имён флагов, разделённый запятой (например, `"SOME_FEATURE,SOME_OTHER_FEATURE"`). -
**Slash команда**: Используйте `/experimental on` в интерактивной сессии для включения всех флагов экспериментального уровня. -
**Конфигурационный файл**: Добавить `enabledFeatureFlags` объект в `~/.copilot/config.json`. Установите флаг, чтобы `true` включить его или `false` явно отключить флаг, который иначе был бы активирован вашим уровнем.
{
"enabledFeatureFlags": {
"SOME_FEATURE": true,
"SOME_OTHER_FEATURE": false
}
}
Примечание.
Устаревший feature_flags.enabled формат массива по-прежнему поддерживается как запасной вариант, но enabledFeatureFlags имеет приоритет, когда присутствуют оба варианта.
| Flag | Уровень | Описание |
|---|---|---|
RUBBER_DUCK_AGENT | экспериментальный | Субагент «резиновая утка» для обратной связи противника по коду и дизайнам |
BACKGROUND_SESSIONS | экспериментальный | Несколько одновременных сессий с управлением фоном |
MULTI_TURN_AGENTS | экспериментальный | Многоповоротное сообщение субагента, передающее через write_agent |
EXTENSIONS | экспериментальный | Программные расширения с пользовательскими инструментами и крючками |
QUEUED_COMMANDS | Staff-или-экспериментальный | Команды очереди с помощью Ctrl+Enter во время работы агента |
PERSISTED_PERMISSIONS | Staff-или-экспериментальный | Сохранять права на использование инструментов по сессиям в каждом месте |
SESSION_STORE | Staff-или-экспериментальный | Хранилище сессий на основе SQLite для истории кросс-сессий |
COMPUTER_USE | Персонал | Встроенный компьютер использует MCP-сервер (захват экрана и управление мышью/клавиатурой) |
copilot-feature-agentic-memory | на | Инструменты постоянной памяти между сессиями |
COPILOT_SWE_AGENT_BACKGROUND_AGENTS | на | Выполнение задачи фонового агента |
Дополнительные материалы
-
[AUTOTITLE](/copilot/how-tos/copilot-cli) -
[AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-plugin-reference) -
[AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-programmatic-reference) -
[AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-config-dir-reference)