Skip to main content
Select language: current language is Russian
Поискайте или спросите Copilot
Открыть меню
Свернуть боковую панельРазвернуть боковую панель

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

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

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

CommandPurpose
copilotЗапустите интерактивный пользовательский интерфейс.
copilot completion SHELLПечатайте скрипт оболочки для выбранной оболочки, который можно использовать для включения завершения вкладки для Второй пилот CLI. Поддерживаемые оболочки: bash, zsh, . fish См. Использование copilot completion.
copilot help [TOPIC]Покажите справочную информацию. Темы помощи включают: billing, 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 mcpУправляйте конфигурациями MCP-сервера из командной строки.
copilot pluginУправляйте плагинами и маркетплейсами плагинов.
copilot plugins listНеинтерактивно проверяйте каждый подключаемый модуль, сервер MCP, навык, источник инструкций и сервер языка, обнаруженные для текущего рабочего каталога, те же ресурсы, что и панель мониторинга подключаемых модулей в интерфейсе командной строки. См. Использование copilot plugins list.
copilot skillУправляйте навыками агента из командной строки (перечислять, добавлять и удалять навыки). См . раздел AUTOTITLE.
copilot updateСкачайте и установите последнюю версию.
copilot versionОткажите информацию о версии и проверьте обновления.

copilot login варианты

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

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

В качестве альтернативы Второй пилот 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_) не поддерживается.

Примеры:

# 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

С использованием copilot completion

Команда copilot completion SHELL выводит скрипт для указанной оболочки (bash, zsh или fish).

Используя этот скрипт (или записывая его в каталог завершения вашей оболочки), вы можете включить завершение вкладок в терминале для copilot подкоманд, опций команд и известных значений для опций команд.

Примеры использования

Bash (только текущая сессия):

Bash
source <(copilot completion bash)

Bash (постоянный, Linux):

Bash
copilot completion bash | sudo tee /etc/bash_completion.d/copilot

Zsh — запишите результат в каталог на вашем $fpath. Перезагрузите оболочку после выполнения этой команды:

Shell
copilot completion zsh > "${fpath[1]}/_copilot"

Рыба:

Shell
copilot completion fish > ~/.config/fish/completions/copilot.fish

С использованием copilot plugins list

Выполните проверку copilot plugins list каждого подключаемого модуля, сервера MCP, навыка, источника инструкций и сервера языка, обнаруженного для текущего рабочего каталога. Выходные данные группируются по типу, а затем по области конфигурации (пользователь, репозиторий, организация, подключаемый модуль, встроенный или неизвестный).

# List everything for the current workspace
copilot plugins list

# Only MCP servers and skills
copilot plugins list --kind mcp --kind skill

# Only user-scoped resources, as JSON
copilot plugins list --scope user --json
ОпцияОписание
--kind KINDSФильтрация по типу. Повторяемые или разделенные запятыми: mcp, skill, instruction, plugin. lsp
--scope SCOPESФильтрация по области конфигурации. Повторяется или разделяется по запятым.
--jsonИспользуйте машинное чтение JSON вместо сгруппированного текста.
--config-dir=DIRECTORYПуть к каталогу конфигурации. Этот параметр является устаревшим. Вместо этого используйте COPILOT_HOME.

Пользовательские агенты и перехватчики с областью сеанса не охватываются copilot plugins list; оба требуют динамического сеанса.

copilot plugins enable / copilot plugins disable

Включите или отключите подключаемый модуль, сервер MCP или навык по имени. Изменение сохраняется в конфигурации и применяется к будущим сеансам.

# Disable an MCP server
copilot plugins disable github --mcp

# Enable a skill
copilot plugins enable my-skill --skill

# Enable a plugin (default kind)
copilot plugins enable spark@copilot-plugins
ОпцияОписание
--pluginНацеливание подключаемого модуля (по умолчанию).
--mcpНацелим на сервер MCP.
--skillЦель навыка.
--config-dir=DIRECTORYПуть к каталогу конфигурации. Этот параметр является устаревшим. Вместо этого используйте COPILOT_HOME.

Инструкции имеют только область действия сеанса и не могут быть переключаются с помощью этих команд. Языковые серверы, агенты и перехватчики управляются в другом месте.

copilot plugins remove

Удалите подключаемый модуль, удалите сервер MCP или удалите навык по имени.

# Remove an MCP server
copilot plugins remove github --mcp

# Delete a personal or project skill
copilot plugins remove my-skill --skill

# Uninstall a plugin (default kind)
copilot plugins remove spark@copilot-plugins
ОпцияОписание
--pluginУдалите подключаемый модуль (по умолчанию).
--mcpУдалите сервер MCP.
--skillУдалите личный или проектный навык.
--config-dir=DIRECTORYПуть к каталогу конфигурации. Этот параметр является устаревшим. Вместо этого используйте COPILOT_HOME.

При этом --skillпередайте имя навыка или путь к добавленной вами пользовательской папке навыков. Имя навыка удаляет файлы этого навыка; Путь к пользовательскому каталогу отменяет регистрацию каталога и оставляет файлы на диске. Можно удалить только личные навыки и навыки проекта. Навыки, предоставляемые подключаемым модулем или встроенным набором, не могут быть удалены таким образом (отключить их вместо этого). Источники инструкций обнаруживаются на диске и не могут быть удалены здесь.

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

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

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

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

Ярлыки для сессионного выбора

Когда выбор сессии открыт (открыт через /resume или --continue):

ShortcutPurpose
^/Перемещайте выбор вверх или вниз.
ВведитеОткройте выбранную сессию.
sЦиклично сортируйте порядок сортировки: релевантность → создано → имя → последнее использование.
TabПереключайтесь между локальной и удалённой вкладками.
dУдалить выбранную сессию.
EscЗакрой пикер.

Сессии сортируются по следующим режимам:

РежимОписание
relevanceОценивает сессии по совпадению с текущим рабочим каталогом (по умолчанию).
last usedВ последнее время сначала модифицированные сессии.
createdНедавно я сначала создавал сессии.
nameПо алфавиту по названию сессии; Безымянные сессии сортируют до конца.

Сессии, уже открытые в другом окне, поднимаются наверх во всех нерелевантных режимах сортировки. Когда контекст рабочей директории отсутствует, relevance режим пропускается.

Ярлыки в режиме дифф

Когда режим дифференциала открыт (введён посредством /diff):

ShortcutPurpose
/ kПереместите выбор на одну строку вперёд.
/ jПереместите выбор на одну строку ниже.
/ hПерейти к предыдущему файлу.
/ lПерейти к следующему файлу.
Дом / gПерейдём к первой строке.
Конец / GПерейдём к последней строке.
Страница вверхПрокрутите на одну страницу вверх.
Страница внизПрокрутите одну страницу вниз.
CTRL+UПрокрутите полстраницы вверх.
CTRL+DПрокрутите вниз на полстраницы.
ClickВыберите нажатую линию дифференциала (требуется поддержка мыши).
Прокрутка мышиПрокрутите вверх или вниз.
Alt/Option+scrollПрокрутите одну строку в одно время для точного элемента управления.
cДобавьте или отредактируйте комментарий в выбранной строке.
sПоказать краткое описание комментариев (если есть комментарии).
bПереключайтесь между нестадированными изменениями и разницами ветвей.
wПереключение сокрытия изменений только в белом пробеле.
ВведитеПосылайте все комментарии (если есть комментарии).
rОбновите дифференциал (только удалённые сессии).
Esc / CTRL+CВыйди из режима дифференциала.
ShortcutPurpose
CTRL+AПереместитесь к началу строки (при наборе).
CTRL+BПерейти к предыдущему персонажу.
CTRL+EПереместитесь в конец строки (при наборе).
CTRL+FПерейти к следующему персонажу.
CTRL+HУдалить предыдущего персонажа.
Ctrl+КУдалить с курсора до конца строки. Если курсор находится в конце строки, удалите разрыв строки.
CTRL+UУдалить с курсора в начало строки.
Ctrl+ЖУдалить предыдущее слово.
домПереходите к началу текущей визуальной линии.
КонецПереместитесь к концу текущей визуальной линии.
CTRL+ДомПерейдите к началу текста.
CTRL+КонецПерейдём к концу текста.
Альтернатива+/ (Windows/Linux)
Опция+/ (Mac)Двигайте курсор на слово.
^/Просматривайте историю команд.
Вкладка / CTRL+YПримите текущее предложение по завершению inline.

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

Это команды косой черты, которые можно использовать в интерактивном сеансе CLI. Подмножество этих команд косой черты доступно клиентам, которые используют ИНТЕРФЕЙС командной строки через свой сервер ACP. Дополнительные сведения см. в разделе Copilot CLI ACP сервер.

CommandPurpose
/add-dir PATHДобавьте каталог в разрешённый список для доступа к файлам.
/after [DELAY PROMPT], /afterЗапланируйте неповторяющуюся подсказку, навык или расписанную команду слэш для текущей сессии (например /after 30m remind me the time , или /after 1h /chronicle standup). Без аргументов отображается менеджер расписания. Доступно только в экспериментальном режиме.
/agentПросматривайте и выбирайте из доступных агентов (если они есть). См . раздел AUTOTITLE.
/appЗапустите приложение GitHub Copilot, или покажите URL для скачивания, если приложение не установлено.
/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|skills create|skills review|skills status>Инструменты и аналитика истории сессий.
skills Подкомандам выбирает, просматривает и отслеживает состояние предложений навыков репозитория, созданных из наблюдаемого использования. См . раздел AUTOTITLE.
/clear [PROMPT], , /new [PROMPT]``/reset [PROMPT]Запустите новую беседу.
/clikit [COMPONENT]Предварительный просмотр бизнес-компонентов CLI (например, информация о квотах).
/compact [FOCUS-INSTRUCTIONS]Кратко изложите историю переписки, чтобы уменьшить использование контекстного окна. По желанию предоставляйте инструкции по фокусу для управления резюме — например, /compact focus on the auth module. См . раздел AUTOTITLE.
/contextПокажите использование токена контекстного окна и визуализацию. См . раздел AUTOTITLE.
/copyСкопируйте последний ответ в буфер обмена.
/cwd, /cd [PATH]Измените рабочий каталог или отобразите текущий каталог.
/delegate [PROMPT]Делегировать изменения в удалённый репозиторий с помощью пулл-запроса, сгенерированного ИИ. См . раздел AUTOTITLE.
/diffПроверьте изменения в текущем каталоге; Автоматически переключается на разницу ветвей, когда рабочее дерево чисто (экспериментально).
/downgrade VERSIONСкачайте и перезапустите в определённой CLI-версии. Доступно для командных аккаунтов.
/envПоказывайте данные загруженной среды (инструкции, MCP-серверы, навыки, агенты, хуки, плагины, LSP, расширения).
/every [INTERVAL PROMPT], /everyЗапланируйте повторяющуюся подсказку, навык или команду слэша для текущей сессии (например /every 1h run tests , или /every 1d /chronicle standup). Без аргументов отображается менеджер расписания. Доступно только в экспериментальном режиме.
/exit, /quitВыйдите из CLI.
/extensions [manage|mode], /extensionУправляйте расширениями CLI.
/experimental [on|off|show]Переключайте, устанавливайте или показывайте экспериментальные функции.
/feedback, /bugДайте обратную связь о CLI.
/fleet [PROMPT]Включить параллельное выполнение субагентов для выполнения частей задачи. См . раздел AUTOTITLE.
/helpПокажите помощь по интерактивным командам.
/ideПодключитесь к рабочему пространству IDE. См . раздел AUTOTITLE.
/initИнициализируйте Copilot пользовательские инструкции и агентные функции для этого репозитория. См. инициализацию Project для Copilot.
/instructionsПросмотр и переключение пользовательских файлов инструкций.
/keep-alive [on|off|busy|DURATION], /caffeinate [on|off|busy|DURATION]Предотвратить переход машины в спящий режим: пока сессия CLI активна, пока агент занят или в течение определённого времени. Принимает длительности, такие как 30, 30m, 2h``1d , (голые числа по умолчанию — минуты).
/limitsОткройте диалоговое окно "Ограничения интерактивного ответа".
/limits set max-ai-credits VALUEЗадайте обратимое максимальное значение для кредитов ИИ, разрешенных для каждого ответа. Ограничения ответа — это мягкие ограничения, которые сбрасываются для каждого сообщения пользователя. См . раздел AUTOTITLE.
/limits unset [max-ai-credits|all]Удалите определенный предел ответа или все ограничения ответа.
/list-dirsОтобразите все каталоги, для которых разрешён доступ к файлам.
/loginВойдите в .Copilot
/logoutВыйти из Copilot.
/lsp [show|test|reload|logs|help] [SERVER-NAME]Управляйте конфигурацией сервера языка. Подкоманда logs открывает панель журнала служб LSP в реальном времени.
/mcp [list|show|add|edit|delete|disable|enable|auth|reload|search] [SERVER-NAME]Управление конфигурацией сервера MCP.
list (псевдоним ls) печатает список настроенных серверов с состоянием подключения и динамическим состоянием, а также доступен только для чтения, поэтому он может работать, пока агент занят обработкой поворота; все остальные вложенные команды блокируются до завершения поворота. Изолированные локальные серверы показывают connected (sandboxed) состояние. См . раздел AUTOTITLE.
/model [--repo|--local] [MODEL], /modelsВыберите модель ИИ, которую вы хотите использовать, или выберите "Авто". --repo/--local Закрепляет модель по умолчанию в параметрах репозитория вместо текущего сеанса. Нажмите клавишу TAB в модели с вариантом длинного контекста, чтобы переключить его столбец контекста между окном по умолчанию и длинным контекстом. См . раздел AUTOTITLE.
/permissions [show|reset]Просмотр или очистка инструмента в памяти и одобрения пути для текущей сессии.
/plan [PROMPT]Создайте план реализации перед написанием кода.
/plugin [marketplace|install|uninstall|update|list] [ARGS...]Управляйте плагинами и маркетплейсами плагинов.
list (псевдоним ls, включая голую /plugin) доступен только для чтения и может выполняться, пока агент занят обработкой поворота; все остальные вложенные командлеты блокируются до завершения поворота. См . раздел AUTOTITLE.
/pr [view|create|fix|auto|automerge]Управление pull-запросами для текущей ветки.
auto запускает запрос на вытягивание зеленым цветом и останавливается; automerge (псевдоним: agentmerge) приводит запрос на вытягивание зеленым цветом и объединяет его. См . раздел AUTOTITLE.
/refine TEXTПереопределите примерно составленный запрос на четкий запрос для проверки. Запустите без аргументов (с помощью ctrl+X/refine), чтобы очистить текущее поле ввода. Может быть особенно полезным для запросов, введенных в речи.
/remote [on|off]Покажите статус пульта дистанционного управления (если аргумент не предусмотрен), включите удалённое управление (on), или завершите удалённое соединение (off). См . раздел AUTOTITLE.
/rename [NAME]Переименовать текущую сессию (автоматически генерирует имя, если оно опущено; псевдоним для /session rename).
/research TOPICПроведите глубокое исследование с использованием GitHub поисковых и веб-источников. См . раздел AUTOTITLE.
/reset-allowed-toolsСбросьте список разрешённых инструментов.
/restartПерезапустить CLI, сохраняя текущую сессию.
/resume [SESSION-ID], /continue [SESSION-ID]Переключитесь на другую сессию, выбрав из списка (по желанию укажите идентификатор сессии).
/review [PROMPT]Запустите агент проверки кода для анализа изменений. См . раздел AUTOTITLE.
/rubber-duck [PROMPT]Обратитесь к агенту по резиновой утке для получения второго мнения по планам, нормам и тестам. См . раздел AUTOTITLE.
/sandbox [enable|disable]Включить, отключить или настроить песочницу на уровне ОС, которая ограничивает доступ к файловой системе и сети для команд shell, серверов MCP/LSP и встроенных файловых/веб-инструментов. Запускайте /sandbox без аргументов, чтобы открыть диалог с политикой.
/search [QUERY], /find [QUERY]Ищите по таймлайну разговора. Доступно только в экспериментальном режиме.
/security-review [PROMPT]Запустите специализированную проверку безопасности активных изменений локального кода и возвращайте приоритетные результаты уязвимостей с предложениями по исправлению. Эта команда не является полным аудитом безопасности репозитория.
/session [info|checkpoints [n]|files|plan|rename [NAME]|cleanup|prune|delete [ID]|delete-all], /sessions [info|checkpoints [n]|files|plan|rename [NAME]|cleanup|prune|delete [ID]|delete-all]Показывайте информацию о сессиях и управляйте сессиями.
info Подкоманда показывает детали сессии, включая ссылку на сессию (когда доступна). Подкоманды: info, checkpoints, files, plan, rename, cleanup``prune``delete``delete-all.
/settings [--repo|--local] [show KEY|KEY|KEY VALUE],
/config [--repo|--local] [show KEY|KEY|KEY VALUE]
Откройте диалоговое окно параметров, откройте его с фокусом на определенном параметре (), задайте встроенный параметр (KEY``KEY VALUE) или отобразите текущее значение параметра (show KEY). В диалоговом окне показаны вкладки "Пользователь", "Репозиторий" и "Репозиторий" (локальный) — переключатель совкладкой TAB/SHIFT+; параметр переопределен в другой области, в которой отображается имя значка, для которого выигрывается область. Добавьте --repo или --local в целевой .github/copilot/settings.json или .github/copilot/settings.local.json вместо файла параметров пользователя, например /settings --repo model gpt-5.2. Таким образом можно задать только переопределимые ключи . Строки, управляемые активной организацией или управляемой политикой MDM, отображаются только для чтения с тегом (managed) . См . раздел AUTOTITLE.
/share [link|off|file|html|gist|research] [...], /export [...]Предоставление общего доступа к текущему сеансу. Без подкоманда создает общую ссылку GitHub при входе и синхронизации (возвращается к экспорту файла Markdown в противном случае).
off останавливает общий доступ.
link — явный псевдоним потока ссылок по умолчанию; link off останавливает общий доступ к ссылкам.
file [session|research] [PATH] экспортирует в файл Markdown.
html [session|research] [PATH] экспортирует в HTML-файл.
gist [session|research]
GitHub создает gist.
research [PATH] экспортирует отчет исследования.
/skills [list|info|add|remove|reload] [ARGS...]Управляйте навыками для расширения возможностей. См . раздел AUTOTITLE.
/statusline, /footerНастройте, какие элементы появляются в строке статуса.
/subagents, /agentsНастройте модели подагентов по умолчанию и для каждого агента. См . раздел AUTOTITLE.
/tasksПросмотр и управление задачами (субагентами и оболочными командами).
/terminal-setupНастройте терминал для поддержки многолинейного входа (Shift+Enter и Ctrl+Enter).
/theme [default|github|dim|high-contrast|colorblind]Просмотр или настройка цветового режима.
/tuikit [colors|icons|select|tabbar]Предварительный просмотр компонентов TUIkit-систем дизайна и цветовых токенов.
/undo, /rewindПеремотайте последний ход и отмените изменения в файле. Отслеживание файлов осуществляется через слой инструментов и не требует Git.
/update, /upgradeОбновите CLI до последней версии.
/usageОтображайте метрики и статистику использования сессий, включая итоги токенов по моделям.
/user [show|list|switch]Управляйте текущим GitHub пользователем.
/versionОткажите информацию о версии и проверьте обновления.
/voice [on|off|models|devices]Переключение режима голосовой связи, просмотр доступных моделей голосовой связи или выбор устройства ввода (микрофона).
/fork [NAME], /branch [NAME]Форковать текущую сессию в новую сессию, по желанию с именем. Доступно только в экспериментальном режиме.
/worktree [branch|task]Создайте новую рабочую полосу HEAD Git и переключитесь на нее, оставив незафиксированные изменения в текущем рабочем потоке. Передайте имя ветви, описание задачи (поддерживаемое многостроочное, используемое в качестве открывающего запроса в новом рабочем потоке) или опустите аргумент для автоматического создания имени ветви из беседы. Требуется репозиторий Git. Доступно только в экспериментальном режиме.
/move [branch|task]Переместите незафиксированные изменения в новую рабочую полосу Git и переключитесь на нее. Передайте имя ветви, описание задачи (поддерживаемое многостроочное, используемое в качестве открывающего запроса в новом рабочем потоке) или опустите аргумент для автоматического создания имени ветви из беседы. Требуется репозиторий Git. Доступно только в экспериментальном режиме.

Для полного списка доступных команд слэш введите /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.
--agent=AGENTУкажите a Пользовательский агент для использования. См . раздел AUTOTITLE.
--allow-allВключить все права (эквивалент --allow-all-tools --allow-all-paths --allow-all-urls).
--allow-all-mcp-server-instructionsВключите инструкции инициализации со всех MCP-серверов в системную подсказку. По умолчанию заранее включены только разрешённые серверные инструкции; Инструкции других серверов получаются по требованию.
--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 используйте список с кавычками, разделёнными запятыми.
--acpНачинайте как сервер протокола Agent Client.
--attachment PATHПрикрепите файл к начальному запросу (можно использовать несколько раз). Файлы изображений принимаются, но для успешной отправки требуется выбранная модель и политика организации, позволяющая ввод видений.
--autopilotВключите продолжение автопилота — агент продолжает работать до task_complete вызова, затем возвращается в интерактивный режим. См . раздел AUTOTITLE.
--available-tools=TOOL ...Модели будут доступны только эти инструменты. Для множества инструментов используйте список с кавычками, разделёнными запятыми. См . раздел AUTOTITLE.
--banner, --no-bannerПокажите или спрячьте баннер запуска.
--bash-envВключите BASH_ENV поддержку bash-shells.
-C DIRECTORYСначала меняйте рабочую директорию, прежде чем делать что-либо ещё.
--connect[=SESSION-ID]Подключитесь напрямую к удалённой сессии (по желанию укажите идентификатор сессии или задачи). Конфликты с --resume и --continue.
--context TIER.Задайте уровень контекстного окна для многоуровневых моделей ценообразования (переопределяет сохраненный параметр и учитывается в свежих интерактивных сеансах). Варианты: «по умолчанию», «long_context».
--config-dir=DIRECTORYЭта опция настройки каталога конфигурации устарела. Используйте COPILOT_HOME переменную окружения.
--continueВозобновите последнюю сессию в текущем рабочем каталоге, вернувшись к глобально самой последней сессии. Конфликтует с --resume.
--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``xhigh, max, ).
max — самый глубокий уровень для Anthropic моделей.
--enable-all-github-mcp-toolsВключите все GitHub инструменты сервера MCP вместо стандартного подмножества CLI. Переопределяет и --add-github-mcp-toolset``--add-github-mcp-tool опции.
--enable-memoryВключите память в режиме запроса (по умолчанию отключено).
--enable-reasoning-summariesЗапросите резюме рассуждений для моделей OpenAI, которые это поддерживают.
--excluded-tools=TOOL ...Эти инструменты не будут доступны для модели. Для множества инструментов используйте список с кавычками, разделёнными запятыми.
--experimentalВключите экспериментальные функции (используйте --no-experimental для отключения).
--extension-sdk-path DIRECTORYПереопределите пакет @github/copilot-sdk , внедрённый в подпроцессы расширения, с помощью локальной copilot-sdk/ папки. Некорректные пути возвращаются к связанному SDK.
-h, --helpПомощь с отображением.
-i PROMPT, --interactive=PROMPTНачните интерактивную сессию и автоматически выполните этот запрос.
--log-dir=DIRECTORYУстановите каталог файлов журналов (по умолчанию: ~/.copilot/logs/).
--log-level=LEVELУстановите уровень логарифма (выборы: none, error, warning, info, debug, all, ). default
--max-ai-credits=CREDITSЗадайте мягкое максимальное значение для кредитов ИИ, разрешенных для каждого ответа. Ограничение сбрасывается для каждого сообщения пользователя и может быть настроено в середине сеанса./limits См . раздел AUTOTITLE.
--max-autopilot-continues=COUNTМаксимальное количество сообщений продолжения в режиме автопилота (по умолчанию: неограниченно). Должно быть неотрицательное целое число; Неправильные значения (NaNотрицательные или дробные) отклоняются. См . раздел AUTOTITLE.
--mode=MODEУстановите начальный режим агента (выборы: interactive, plan, autopilot). Нельзя объединить с --autopilot или --plan.
--model=MODELЗадайте модель ИИ, которую хотите использовать. Передайте auto это как ценность, чтобы автоматически Copilot выбрать лучшую доступную модель. См . раздел AUTOTITLE.
--mouse[=VALUE]Включите или отключите поддержку мыши в интерактивном интерфейсе. VALUE может быть on (по умолчанию) или off. При включении CLI фиксирует события мыши — колесо прокрутки, клики и так далее — чтобы ориентироваться по собственному интерфейсу, например, прокручивать временную шкалу или кликать вкладки. При отключении сохраняется собственное поведение мыши терминала, такое как выбор текста и прокрутка назад. Когда вы явно устанавливаете эту опцию, значение сохраняется в вашем конфигурационном файле.
-n NAME, --name=NAMEДайте название новой сессии. Используется --resume``/resume для поиска сессий по названию.
--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Отключите удалённый доступ для этой сессии.
--no-remote-exportОтключите экспорт сессии в GitHub.com и GitHub Mobile (также отключает дистанционное управление).
--output-format=FORMATFORMAT может быть text (по умолчанию) или json (выводит JSONL: один JSON-объект на строку).
-p PROMPT, --prompt=PROMPTВыполните запрос программно (выходит после завершения). Сводка по выходу содержит подсказку copilot --resume=SESSION-ID для продолжения сеанса. См . раздел AUTOTITLE.
--planНачинайте в режиме планирования. Сокращение для --mode plan. Нельзя объединить с --mode или --autopilot.
--plain-diffОтключите рендеринг rich diff (выделение синтаксиса через инструмент diff, указанный в вашей конфигурации Git).
--plugin-dir=DIRECTORYЗагрузите плагин из локальной папки (можно использовать несколько раз).
--remoteВключите удалённый доступ к этой сессии из GitHub.com и GitHub Mobile. См . раздел AUTOTITLE.
--remote-exportЭкспортируйте сессию в GitHub.com и GitHub Mobile (только для чтения; не включает дистанционное управление).
-r, --resume[=VALUE]Возобновите предыдущую интерактивную сессию, выбрав из списка. По желанию укажите идентификатор сессии, префикс ID или имя сессии. Сопоставление имён точно и не зависит от регистра; при отсутствии явного совпадения сводки сводки возвращаются к автоматически сгенерированному резюме. Конфликтует с --continue.
-s, --silentВыводите только ответ агента (без статистики использования), что полезно для скриптов с -p.
--screen-readerВключите оптимизацию экранных читателей.
--secret-env-vars=VAR ...Редактировать переменную среды из серверных сред shell и MCP (можно использовать несколько раз). Для множества переменных используйте список с кавычками, разделёнными запятыми. Значения в GITHUB_TOKEN переменных среды и COPILOT_GITHUB_TOKEN по умолчанию удалены из вывода.
--session-id IDИспользуйте точный идентификатор сессии или задачи, если не хотите --resume, чтобы ' совпадало по префиксу ID или названию сессии. Если ID совпадает с существующей сессией или задачей, эта сессия или задача возобновляется. Если ничего не совпадает, новая сессия создаётся только тогда, когда значение является действительным UUID. Имена и префиксы ID не создают новых сессий. Не объединяйте эту опцию с другими вариантами выбора сессии или начала сессии, такими --resumeкак , --continueили --connect, потому что они конкурируют в выборе, какую сессию открыть или создать.
--sandboxВключите песочницу оболочки уровня ОС только для этого сеанса, не изменив сохраненный параметр песочницы. Полезно с -p. Доступно только в экспериментальном режиме.
--no-sandboxОтключите песочницу на уровне ОС только для этого сеанса, не изменив сохраненный параметр песочницы. Доступно только в экспериментальном режиме.
--share=PATHПоделитесь сессией с файлом Markdown после завершения программной сессии (по умолчанию путь: ./copilot-session-<ID>.md).
--share-gistПоделитесь сессией с секретной GitHub основой после завершения программной сессии.
--stream=MODEВключите или отключите режим потоковой передачи, который отображается Copilotпостепенно по мере её генерации, а не ждёт полного ответа (выбор режима: on или off, по умолчанию: on).
-v, --versionПокажите информацию о версии.
-w, --worktree[=NAME]Создайте или повторно используйте изолированное рабочее дерево Git в <repo>.worktrees/ разделе и начните сессию внутри него.
NAME необязательно — опустите его для автоматической генерации имени ветки. Конфликты с --resume, --continue, и --connect. Доступно только в экспериментальном режиме.
--yoloВключить все права (эквивалент --allow-all).

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

Примечание.

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

Вы можете использовать --remote``--resume <TASK-ID> его для возобновления удалённых задач локально. Это работает даже тогда, когда задание изначально создавалось вне Git-репозитория.

Примечание.

Когда permissions.disableBypassPermissionsMode установлено на "disable", все флаги разрешения (--allow-all-tools, --allow-all-paths, --allow-all-urls``--allow-all``--yolo, ) подавляются при запуске и не могут быть использованы для предоставления повышенных разрешений.

Три источника могут устанавливать это ограничение в порядке постоянности:

Исходный материалОбъемОчистка с помощью смены аккаунта?
Пользовательские настройки (~/.copilot/settings.json)КомпьютерНет — применимо ко всем аккаунтам
Управляемые настройки (с сервера загружаются для каждой учетной записи)Учетная записьДа — очищено при переключении на другой аккаунт, который не отключает режим обхода
Политика MDM (список/реестр/файл)УстройствоНикогда — политика на уровне устройства, которую нельзя отменить коммутаторами аккаунтов

Для подробностей конфигурации MDM см. Каталог конфигурации CLI GitHub Copilot.

Поддерживаемые модели

Используйте --model=MODEL переменную COPILOT_MODEL окружения для выбора модели ИИ. Пропускайте auto возможность Copilot автоматически выбирать лучшую доступную модель.

Модельлучше всего подходит для
claude-sonnet-4.6Универсальное кодирование (по умолчанию)
gpt-5.4Задачи комплексного рассуждения
claude-haiku-4.5Быстрые, лёгкие операции
gpt-5.3-codexЗадачи, ориентированные на код
gemini-3.1-pro-previewПогуглите рассуждение Gemini
gemini-3.5-flashБыстрые ответы Google Gemini
mai-code-1-flashБыстрые, адаптивные задачи по программированию

Вы также можете переключаться между моделями во время интерактивной сессии с помощью /model команды слэш.

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

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

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

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

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

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

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

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

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

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

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

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

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

Для 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'

# Deny writes to a specific path (exact or trailing-path-segment match; no glob support yet)
copilot --deny-tool='write(secret.txt)'

--deny-tool='write(PATH)' область отрицания этого пути — другие записи не влияют на них. Совпадение разрешает асимметричные и сегменты ./.. и не учитывает регистр в macOS и Windows.

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

VariableОписание
COPILOT_ALLOW_ALLУстановите на true автоматическое разрешение всех разрешений (эквивалентно --allow-all).
COPILOT_AUTO_UPDATEНастройте на false отключение автоматических обновлений.
COPILOT_CACHE_HOMEПереопределить каталог кэша (используемый для кэшей маркетплейса, автоматического обновления пакетов и других эфемерных данных). См. Каталог конфигурации CLI GitHub Copilot для стандартных параметров платформы.
COPILOT_COMPUTER_USE_LINUXНастройте на подключение к computer-use MCP-серверу на дистрибутивах Linux, которые это поддерживают. Сервер computer-use недоступен на Alpine Linux (musl libc).
COPILOT_CUSTOM_INSTRUCTIONS_DIRSСписок дополнительных каталогов для пользовательских инструкций, разделённых запятой.
COPILOT_EDITORКоманда редактора для интерактивного редактирования (проверено после $VISUAL и $EDITOR). По умолчанию vi — если ничего не установлено.
COPILOT_ENABLE_HTTP2Установите или 1``true выберите HTTP/2 транспорт. По умолчанию — HTTP/1.1.
COPILOT_GH_HOST
GitHub Имя хоста только Второй пилот CLI для Only, перевышающее GH_HOST. Используй, когда GH_HOST цель GitHub Enterprise Server , но Copilot требуется аутентификацию по GitHub.com имени, или GitHub Enterprise Cloud при имени хозяина.
COPILOT_GITHUB_TOKENМаркер проверки подлинности. Имеет приоритет над GH_TOKEN и GITHUB_TOKEN.
COPILOT_HOMEПереопределите конфигурацию и каталог состояний. По умолчанию: $HOME/.copilot.
COPILOT_LARGE_OUTPUT_THRESHOLD_BYTESМаксимальный размер байтов UTF-8 для выходных данных средства, возвращаемых непосредственно в модель. Значение по умолчанию: 20480 (20 КиБ). См . раздел AUTOTITLE.
COPILOT_MODELЗадайте модель ИИ.
COPILOT_PROMPT_FRAMEНастройте на 1 включение декоративного интерфейса вокруг входного запроса или 0 отключение его. Переопределяет PROMPT_FRAME флаг экспериментальной функции для текущей сессии.
COPILOT_SKILLS_DIRSСписок дополнительных каталогов с разделёнными запятой для навыков.
COPILOT_STRIP_REASONING_ON_RESUMEУстановите или 0``false сохраните маркеры причины BYOK в возобновлении сеанса, а не отменять их. По умолчанию для их удаления.
COPILOT_SUBAGENT_MAX_CONCURRENTМаксимальное число параллельных подагентов на сеанс (по умолчанию: диапазон: 32``1256).
COPILOT_SUBAGENT_MAX_DEPTHМаксимальная глубина вложенных вложенных элементов (по умолчанию: , диапазон: 4``1128).
COPILOT_TASK_WAIT_TIMEOUT_SECONDSМаксимальное количество секунд -p-p --autopilot) ожидает завершения ожидающих фоновых агентов или команд оболочки перед выходом (по умолчанию: 600; 0 завершается немедленно без ожидания).
GH_HOST
GitHub Имя хоста для обоих GitHub CLI и Второй пилот CLI (по умолчанию: github.com). Установите имя GitHub Enterprise Cloud хоста для проживания с данными. Переопределите только COPILOT_GH_HOST для Второй пилот CLI For.
GH_TOKENМаркер проверки подлинности. Имеет приоритет над GITHUB_TOKEN.
GITHUB_COPILOT_PROMPT_MODE_EXTENSIONSНастройте на true загрузку расширений проекта и разрешите инструменты управления расширениями в режиме prompt (-p). По умолчанию отключён, чтобы предотвратить запуск кода расширения, управляемого репозиторием, без интерактивного доверия.
GITHUB_COPILOT_PROMPT_MODE_REPO_HOOKSУстановите на true загрузку крючков репозитория в режиме prompt (-p). Крючки репозитория также загружаются автоматически, когда папка уже доверена или COPILOT_ALLOW_ALL настроена.
GITHUB_COPILOT_PROMPT_MODE_WORKSPACE_MCPУстановите на true загрузку MCP источников рабочего пространства в режиме запроса (-p). По умолчанию отключено, чтобы предотвратить запуск MCP-серверов, управляемых репозиторием, без интерактивного доверия.
GITHUB_TOKENМаркер проверки подлинности.
PLAIN_DIFFНастройте на true отключение рендеринга rich diff.
USE_BUILTIN_RIPGREPНастройте на false использование системного ripgrep вместо комплектной версии.

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

Для подробной информации о настройках конфигурационных файлов — включая полный список пользовательских настроек, репозиториев, локальных настроек и их каскадного распределения — см. Каталог конфигурации CLI GitHub Copilot.

Примечание.

Настройки пользователя ранее хранились в ~/.copilot/config.json. Существующие настройки, редактируемые пользователем в этом месте, автоматически перемещаются при ~/.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.

Дополнительные сведения см. в разделе Добавление пользовательских инструкций репозитория для GitHub Copilot.

Пользовательские расположения инструкций

Второй пилот CLI загружает пользовательские инструкции из этих расположений одновременно (все объединяются):

МестоположениеNotes
CLAUDE.mdВ корне Git и cwd
GEMINI.mdВ корне Git и cwd
AGENTS.mdВ корне Git и cwd
.github/instructions/**/*.instructions.mdВ корне Git и cwd
.github/copilot-instructions.mdВ корне Git и cwd
$HOME/.copilot/copilot-instructions.md
$HOME/.copilot/instructions/**/*.instructions.md
COPILOT_CUSTOM_INSTRUCTIONS_DIRSДополнительные каталоги с помощью переменной среды.

Пользовательские инструкции импортируются

Файлы инструкций поддерживают @path импорт. Префикс строки, за которой @ следует путь, чтобы встраивать содержимое другого файла. Пути могут быть относительными к каталогу файла инструкции или абсолютным. Импорт разрешается рекурсивно, вплоть до ограничения глубины, с охранниками цикла и размера. Это поддерживается в AGENTS.md, CLAUDE.mdи .github/copilot-instructions.md.

Ссылка на Hooks

Для подробной информации о крючках — включая форматы конфигурации крючков, события крючков, входные полезные нагрузки и управление решением — см. раздел AUTOTITLE.

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

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

Локальные (stdio) серверы, которые создаются в песочнице (см /sandbox . команду косой черты), показывают connected (sandboxed) состояние и copilot mcp list``/mcp list, так как удаленные (HTTP/SSE) серверы никогда не являются изолированными. Доступно только в экспериментальном режиме.

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=VALUEHTTP-заголовок для удалённых серверов (повторяется).
--tools <tools>Фильтр инструментов: "*" для всех, список с разделёнными запятами или "" для них.
--timeout <ms>Время ожидания в миллисекундах.
--jsonВыход добавил конфигурацию в формате JSON.
--show-secretsПокажите полные значения переменных среды и заголовка.

Внимание

--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".
deferToolsНет
"auto" (по умолчанию) или "never". Настройте так, "never" чтобы инструменты этого сервера всегда были видимы, даже когда поиск активен.

Частный реестр npm

Используйте --registry в массиве args для извлечения пакета из приватного NPM-реестра — например, Artifactory или GitHub ленты пакетов:

{
    "mcpServers": {
        "my-internal-server": {
            "command": "npx",
            "args": [
                "--registry", "https://npm.pkg.github.com",
                "@my-org/internal-mcp-server"
            ],
            "tools": ["*"]
        }
    }
}

Флаг --registry и другие флаги конфигурации npm (--userconfig, , --prefix``--globalconfig, --cache``--node-options, , --workspace) -wрассматриваются как аргументы, используемые значением при вычислении отпечатка удостоверения сервера. Это гарантирует, что проверки списков разрешений и регистрации реестра корпоративных файлов работают корректно, когда эти флаги отображаются перед названием пакета.

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

ПолеОбязательныйОписание
typeДа
"http" или "sse".
urlДаURL сервера.
toolsДаИнструменты для включения.
headersНетHTTP-заголовки. Поддерживает переменное расширение.
oauthClientIdНетСтатический идентификатор клиента OAuth (пропускает динамическую регистрацию).
oauthPublicClientНетЯвляется ли клиент OAuth публичным. По умолчанию: true. Настроено на false конфиденциальные клиенты с хранящейся тайной.
oauthGrantTypeНетOAuth тип гранта: "authorization_code" (по умолчанию, браузерный поток) или "client_credentials" (полностью без головы, без браузера или обратного вызова).
oidcНетВключить инъекцию токена OIDC. Когда true, CLI вводит токены OIDC для любого GITHUB_COPILOT_OIDC_MCP_TOKEN или GITHUB_COPILOT_OIDC_MCP_TOKEN_<SUFFIX> переменного, на которое ссылается блок сервера env (локальные серверы), или отправляет токен в виде Bearer``Authorization заголовка (удалённые серверы). Для локальных серверов предпочитайте варианты с суффиксами (например, ${GITHUB_COPILOT_OIDC_MCP_TOKEN_MY_SVC}) для присвоения уникального имени переменной для каждого сервера.
timeoutНетТайм-аут вызова инструментов — в миллисекундах.
deferToolsНет
"auto" (по умолчанию) или "never". Настройте так, "never" чтобы инструменты этого сервера всегда были видимы, даже когда поиск активен.

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

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

Безголовый OAuth (client_credentials грант)

Для случаев использования CI или cron, когда браузер недоступен, установите oauthGrantType: "client_credentials". Этот подход включает следующие этапы.

  • oauthClientId—статический идентификатор клиента, выдаваемый поставщиком MCP.
  • oauthPublicClient: false—клиент конфиденциальный.
  • Хранится client_secret в системном ключе (настраивается один раз через /mcp пользовательский интерфейс или записывается в хранилище учетных данных OAuth).

При настройке CLI полностью пропускает браузер, сервер обратного вызова, PKCE и динамическую регистрацию клиента. На каждом 401 он отправляется grant_type=client_credentials напрямую на обнаруженный токен сервера.

{
    "mcpServers": {
        "headless-api": {
            "type": "http",
            "url": "https://api.example.com/mcp",
            "tools": ["*"],
            "oauthClientId": "YOUR-CLIENT-ID",
            "oauthPublicClient": false,
            "oauthGrantType": "client_credentials"
        }
    }
}

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

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

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

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

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

СерверОписание
github-mcp-server
GitHub Интеграция с API: проблемы, pull requests, метки, коммиты, поиск по коду и GitHub Actions.
playwrightАвтоматизация браузера: навигация, клик, ввод, скриншот и обработка форм.
fetchHTTP-запросы через инструмент fetch .
timeВременные утилисы: get_current_time и convert_time.
computer-useЗапись скриншота и автоматизация мыши/клавиатуры. Недоступно на Alpine Linux (musl libc). Настройте COPILOT_COMPUTER_USE_LINUX на выбор на других дистрибутивах Linux, где он доступен.

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

GitHub Инструменты серверов MCP

Он github-mcp-server предоставляет следующие инструменты.

ToolsОписание
get_file_contents, search_codeПросматривайте файлы репозитория.
list_issues, , issue_read``search_issuesОтслеживание проблем.
get_pull_request, , list_pull_requests``get_pull_request_filesПулл-реквесты.
list_commits, get_commitСделай историю коммитов.
list_workflow_runs, get_workflow_run_logs
GitHub Actions.
get_label, , list_label``label_writeУправление лейблом.

Наименование серверов MCP

Имена серверов могут содержать любые печатные символы, включая пробелы, символы Unicode и пунктуацию. Контрольные символы (U+0000–U+001F, U+007F) и закрывающая распорка (}) не разрешены. Имена серверов используются как префиксы для имён инструментов — например, сервер с именем my-server создаёт имена инструментов, такие как my-server-fetch, а сервер с именем My Server — .My Server-fetch

Очистка названий инструментов MCP

Имена серверов и инструментов MCP очищаются перед отправкой в модель. Символы, недопустимые в названиях инструментов (кроме a-z, A-Z, 0-9``-``_), заменяются на .- Символы Unicode кодируются в Punycode. Символ также заменён на@, - чтобы избежать конфликтов с кодированием Punycode.

Объединённое имя (serverName-toolName) ограничено 64 символами. Когда усечение вызывает коллизию имён, добавляется числовой суффикс (например, my-server-tool2, my-server-tool3) для обеспечения уникальности.

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

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

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

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

Приоритет загрузки сервера MCP

MCP-серверы из разных источников объединяются в порядке приоритета (сначала выше). Когда серверы имеют одинаковое имя, приоритет имеет источник с более высоким приоритетом.

  1. --additional-mcp-config Флаг (самый высокий)
  2. Серверы, предоставляемые плагинами
  3. Серверы рабочего пространства —.mcp.json и .github/mcp.json загружаемые от рабочей папки вверх до корня Git; требуют, чтобы папка была доверена
  4. ~/.copilot/mcp-config.json (самый низкий)

Примечание.

Серверы MCP в рабочем пространстве (.mcp.json и .github/mcp.json) загружаются как в интерактивном, так и в SDK-серверном режиме, при условии доверия к рабочей директории. Для получения дополнительной информации о доверии папок см. Разрешение и отказ в использовании инструментов.

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

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

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

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

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

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

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. Миграция переназначает 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.

Выходные данные сервера Stdio

Транспорт MCP stdio резервирует stdout исключительно для фреймов с разделителями новой линии JSON-RPC. Интерфейс командной строки автоматически фильтрует любые строки, отличные от JSON— журналы обычного текста, трассировки стека исключений или строки только пробелов, прежде чем передавать выходные данные в средство синтаксического анализа протокола.

Записывает все диагностические выходные данные в stderr, а не stdout. Сервер, который записывает журналы или сообщения об ошибках в stdout, может активировать цикл обратной связи синтаксического анализа ошибок, который останавливает подтверждение инициализации; Фильтр предотвращает это путем автоматического удаления кадров, отличных от JSON.

Линии длиной более 1 МБ обходят структурную проверку и перенаправляются as-is, чтобы избежать разделения или уменьшения превышения размеров, но допустимых кадров протокола (например, большой tools/list ответ).

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

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

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

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

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

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

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

Удалённые навыки проецируются наряду с местными навыками и следуют тому же приоритету, основанному на названии, если локальный навык имеет одинаковое название.

Если два подключаемых модуля предоставляют навыки с одинаковым именем, оба они сосуществуют с использованием имен вызовов с поддержкой подключаемых модулей, таких как /my-plugin/search и /other-plugin/search. Голое имя направляется в подключаемый модуль с более высоким приоритетом. Это относится только к навыкам; команды сохраняют дедупликацию на основе стандартных уровней, где выигрывает более высокий приоритет источника.

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

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

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

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

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

АгентМодель по умолчаниюОписание
code-reviewКлод-сонет-4.5Высокий анализ кодов по соотношению сигнал/шум. Анализирует различия на наличие ошибок, проблем с безопасностью и логических ошибок. Не буду менять код.
exploreКлод-хайку-4.5Быстрое исследование кодовой базы. Ищет файлы, читает код и отвечает на вопросы. Возвращает сфокусированные ответы менее 300 слов. Безопасно запускать параллельно.
general-purposeКлод-сонет-4.5Полноценный агент для сложных многоступенчатых задач. Работает в отдельном контекстном окне.
researchКлод-хайку-4.5Проводит тщательный поиск на основе инструкций. Ищет GitHub репозитории, подбирает файлы, проверяет заявления и сообщает подробные результаты с цитатами.
rubber-duckКомплементарная модельИспользуйте дополнительную модель для конструктивной критики предложений, дизайнов, реализаций или тестов. Выявляет слабые места и предлагает улучшения. См . раздел AUTOTITLE.
security-reviewКлод-сонет-4.5Обзор кода, ориентированный на безопасность. Анализирует изменения на наличие уязвимостей высокой уверенности в 11 категориях. Это отмечает проблемы только с >80% уверенностью в эксплуатации. Сообщает о тяжести и оценках уверенности. Не буду менять код.
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/
Плагин<plugin>/agents/

Для агентов с проектной областью действия CLI идёт вверх от текущего рабочего каталога к корню Git, загружаясь .github/agents/ и .claude/agents/ загружая каталоги на каждом уровне предков. Это означает, что каждый пакет или подкаталог в монорепо может вводить своих собственных агентов. Когда на пути существует несколько .github/agents/ каталогов, все загружаются, при этом самый глубокий каталог получает наивысший приоритет. .github/agents/ Конвенция имеет приоритет .claude/agents/ на том же уровне. Агенты пользовательского уровня имеют меньший приоритет, чем агенты на уровне проекта. Агенты плагинов имеют самый низкий приоритет.

Обмен данными агента

Используйте list_agents``write_agent и используйте пользовательские агенты для инспекции близлежащих агентов и координации работы в сессии с несколькими агентами.

Метки отношений в list_agents

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

ЭтикеткаЗначениеИспользуйте его для
"self"Текущий агентПодтвердите, какая запись представляет активного агента
"sibling"Агент, запущенный тем же родителемКоординация с одноранговыми агентами через write_agent
"child"Агент, запущенный текущим агентомОтслеживайте последующие работы, делегированные текущим агентом

Перечень с областью объёма

Используйте scope on list_agents , чтобы сузить список перед выбором целей.

scope ЗначениеReturnsИспользуйте его для
ОпущеноБлижайшие агенты в текущем контекстеСмотрите рабочий набор по умолчанию для текущего рабочего процесса
"siblings"Только братья-агентыНайдите peer-агенты, запущенные одним и тем же родителем
"children"Единственные дочерние агенты текущего агентаПересмотр работ, делегированной текущим агентом
"all"Все видимые агентыПроверьте полное дерево сессий, не используя его для координации

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

list_agents(scope="siblings")
list_agents(scope="children")
list_agents(scope="all")

Обмежённые сообщения

Используйте scope для write_agent передачи одного сообщения нескольким связанным агентам.

Используйте обмежённые сообщения только от субагента, работающего внутри родительской сессии с включенной общей связью между братьями и сестрами. В сессиях верхнего уровня выбирайте агентов с явными agent_id значениями.

scope ЗначениеОтправляетИспользуйте его для
"siblings"Все видимые агенты-братья и сестрыКоординировать работу коллег в совместной сессии
"children"Все детские агенты текущего агентаОтправьте то же последующие сообщения на делегированную работу

Если область совпадает с слишком большим количеством агентов, write_agent возвращается ошибка и вместо этого запрашивает явные agent_id значения из list_agents .

write_agent(scope="children", message="Re-check your findings against the updated schema.")
write_agent(scope="siblings", message="Post status when your current check completes.")
write_agent(agent_id="explore-auth", message="Focus on token refresh flow and report only confirmed issues.")

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

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

ОграничениеПо умолчаниюМакс.
Максимальная глубина6256
Максимальная совместностьна основе плана32

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

Лимит по умолчанию зависит от вашего Copilot тарифа:

PlanМаксимальная совместность
Бесплатное / Образование2
Pro / Pro+4
Макс.8
Бизнес16
Предприятие32
Выставление счетов в зависимости от использования.32

Пользователи выставления счетов на основе использования могут переопределить эти ограничения с subagents.maxConcurrency помощью параметров и subagents.maxDepth параметров:

{
    "subagents": {
        "maxConcurrency": 16,
        "maxDepth": 10
    }
}

Значения за пределами допустимого диапазона зажаты: maxConcurrency ограничена 32``maxDepth и ограничена256. Эти параметры игнорируются для планов, которые не используют выставление счетов на основе использования. См. раздел параметров файла конфигурации.

Агенты-помощники

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

Добавьте sidekick: блок к любому определению агента, чтобы сделать его агентом-помощником:

---
name: Context Gatherer
description: Gathers relevant context when the working directory changes
sidekick:
    triggers:
        - session.context_changed
        - event: user.message
          limit: 1
    behavior: persistent
    maxSendsPerTurn: 2
---

Gather useful context about the current repository and working directory.
Summarize recent changes and any relevant project structure.

Триггеры Sidekick

Каждая запись является triggers либо строкой имени события, которая вызывает неограниченное количество раз, либо объект с event и необязательным limit.

EventОписание
user.messageВыстреляет на каждое сообщение пользователя.
session.context_changedСрабатывает при изменении рабочего каталога, репозитория или ветки (например, после cd или переключения веток Git).
Поле триггераТипПо умолчаниюОписание
eventstringОбязательныйТип события сеанса, запускающий этот агент.
limitnumberUnlimitedМаксимальное количество раз, когда этот триггер может запускаться на сеанс. Должно быть положительным целым числом при установке.

Поля конфигурации помощников

ПолеТипПо умолчаниюОписание
triggers
string[] или object[]ОбязательныйТипы событий сессий, которые запускают этот агент. Требуется по крайней мере один триггер.
behaviorstring"restart"
"restart": отменить все предыдущие запуски и начать с чистого листа на каждом триггере.
"persistent": сохранять тот же долговечный цикл и доставлять новые сообщения в существующий цикл вместо перезапуска.
maxSendsPerTurnnumber1Максимальное количество отправленных сообщений на каждый триггер. В "persistent" режиме каждое доставленное пользовательское сообщение сбрасывает этот бюджет.

Такое "restart" поведение подходит для агентов, собирающих контекст без статуса. Такое "persistent" поведение подходит агентам, которые накапливают состояние по ходам.

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

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

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

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

ОпцияОбъемСохраняемость
ОднаждыОдноразовое использованиеНет
Это местоПока не будет ручной очисткиСохраняется на диске по месту
ВсегдаПостоянныйФайл конфигурации

Опция This location появляется, когда CLI может определить ключ местоположения (корень Git или текущий каталог). Он сохраняет одобрение для диска, так что то же разрешение автоматически получается при следующей работе с этой директорией без повторного запроса.

Используйте /permissions reset для очистки одобрений в памяти для текущей сессии.

Security

Режим планирования

/plan запускает сеанс анализа только для чтения, который предотвращает выполнение операций записи и команд оболочки, позволяя полностью исследовать базу кода. Изменение вызовов средства — редактор записывает файлы, не планирующие файлы, apply_patch изменяя команды оболочки и создание запроса на вытягивание, жестко блокируются на уровне инструментов, а не просто не рекомендуется системным запросом. Подагенты, рожденные из сеанса в режиме плана, наследуют то же ограничение. Операции чтения и записи в сам файл плана по-прежнему разрешены.

Анализ безопасности командования

Команды оболочки анализируются перед выполнением для выявления потенциально опасных паттернов:

  • Удаление файла (rm -rf)
  • Модификации системы (sudo, chmod 777)
  • Сетевая эвакуация (curl с чувствительными путями)
  • Доступ к учётным данным (чтение .env, SSH-ключи)
  • Встроенные переменные среды, которые переопределяют опасные переменные (например, PATH=..., LD_PRELOAD=...)

Команды высокого риска отображают дополнительные предупреждения и требуют явного подтверждения.

Отрицающий переменные среды

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

КатегорияПримеры
Инъекция динамического связывающего элемента
LD_*, DYLD_* (все префиксы)
Настройки конфигов, индексируемые в Git,
GIT_CONFIG_COUNT, GIT_CONFIG_KEY_*, GIT_CONFIG_VALUE_* (все GIT_CONFIG_ префиксы)
Внешние программные хуки Git
GIT_EXTERNAL_DIFF, GIT_PROXY_COMMAND
Переопределения конфигурационных файлов Git
GIT_CONFIG, , GIT_CONFIG_GLOBAL``GIT_CONFIG_SYSTEM
Shell PATH и файлы запуска
PATH, , BASH_ENV``ENV
Существующие заблокированные вариации
PAGER, , , , , , GIT_PAGER, GIT_EDITOR``VISUAL``EDITOR``GIT_SSH``GIT_SSH_COMMAND``GIT_ASKPASS``BROWSER``GH_BROWSER

web_fetch Защита SSRF

Инструмент обеспечивает защиту от web_fetch подделки запросов на стороне сервера (SSRF) перед выполнением любого HTTP-запроса:

  • Протокольный лист разрешений: разрешены только http:// URL-адреса https:// . file:// а другие схемы отклоняются.
  • IP-блоклист: Запросы на адреса loopback (127.x.x.x, ::1), частные диапазоны RFC-1918 (10.x, 172.16–31.x, 192.168.x) и облачные метаданные (например, 169.254.169.254) блокируются IP-литеральной проверкой и предварительным разрешением DNS.
  • Автоматических перенаправления нет: 3xx перенаправления не следуют автоматически. URL целевого направления повторно проверяется по тому же IP-блоку перед переходом.

Чтобы обеспечить web_fetch доступ localhost во время разработки — например, для локального сервера документации — установите следующую переменную среды:

export COPILOT_WEB_FETCH_ALLOW_LOCALHOST=1

Мониторинг OpenTelemetry

Второй пилот CLI может экспортировать трассы и метрики через OpenTelemetry (OTel), что даёт вам видимость взаимодействия с агентами, вызовы LLM, выполнение инструментов и использование токенов. Все имена и атрибуты сигналов следуют семантическим конвенциям OTel GenAI.

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

  • COPILOT_OTEL_ENABLED=true
  • OTEL_EXPORTER_OTLP_ENDPOINT задано
  • COPILOT_OTEL_FILE_EXPORTER_PATH задано

Конфигурацию OTel можно также задать в VS Codeили в корпоративном managed-settings.json файле. См. сведения о включении мониторинга OTel в VS Code документации и Справочник по управляемым параметрам предприятия.

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

VariableПо умолчаниюОписание
COPILOT_OTEL_ENABLEDfalseЯвно включите OTel. Не обязательно, если OTEL_EXPORTER_OTLP_ENDPOINT установлено.
OTEL_EXPORTER_OTLP_ENDPOINTURL конечной точки OTLP. Настройка этого автоматически включает OTel.
COPILOT_OTEL_EXPORTER_TYPEotlp-httpТип экспортера: otlp-http или file. Автоматический file выбор при COPILOT_OTEL_FILE_EXPORTER_PATH установлении.
OTEL_EXPORTER_OTLP_PROTOCOLhttp/jsonOTLP протокол HTTP-провода: http/json или http/protobuf. Это касается otlp-http только экспортера.
OTEL_EXPORTER_OTLP_TRACES_PROTOCOLПереопределите OTEL_EXPORTER_OTLP_PROTOCOL только для трассировок.
OTEL_EXPORTER_OTLP_METRICS_PROTOCOLПереопределите OTEL_EXPORTER_OTLP_PROTOCOL только для метрик.
OTEL_SERVICE_NAMEgithub-copilotИмя сервиса в атрибутах ресурса.
OTEL_RESOURCE_ATTRIBUTESДополнительные атрибуты ресурсов в виде пар, разделённых key=value по запятым. Используйте процентное кодирование для специальных символов.
OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENTfalseСобирайте полный контент с подсказками и ответами. См. Захват контента.
OTEL_LOG_LEVELУровень диагностического лога OTel: NONE, ERROR, WARN, INFO, DEBUG``VERBOSE, , . ALL
COPILOT_OTEL_FILE_EXPORTER_PATHЗапишите все сигналы в этот файл как JSON-строки. Настройка этого автоматически включает OTel.
COPILOT_OTEL_SOURCE_NAMEgithub.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.nameinvoke_agentBoth
gen_ai.provider.nameПровайдер (например, github, anthropic)Both
gen_ai.agent.idСтабильный идентификатор определения агента, когда он известен; Использование верхнего уровня по умолчанию github.copilot.defaultBoth
gen_ai.agent.nameИмя агента (если доступно)Both
gen_ai.agent.descriptionОписание агента (если доступно)Both
gen_ai.agent.versionВерсия определения агента, когда она известна; в остальном runtime версияBoth
gen_ai.conversation.idИдентификатор сессииBoth
enduser.pseudo.idПсевдонимный Copilot идентификатор пользователя из analytics_tracking_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.namechat
gen_ai.provider.nameИмя поставщика
gen_ai.request.modelЗапрошенная модель
gen_ai.request.streamИспользовался ли режим стриминга (только стриминг)
gen_ai.conversation.idИдентификатор сессии
gen_ai.response.finish_reasonsПричины остановки
gen_ai.response.idИдентификатор ответа
gen_ai.response.modelРазрешённая модель
gen_ai.response.time_to_first_chunkВремя до первого стриминга, за секунды (только для стриминга)
gen_ai.usage.cache_creation.input_tokensСозданные кэшированные токены
gen_ai.usage.cache_read.input_tokensКэшированные токены считываются
gen_ai.usage.input_tokensВходные токены на этом ходу
gen_ai.usage.output_tokensТокены выхода в этом ходу
github.copilot.costСтоимость хода
github.copilot.aiuЮниты искусственного интеллекта потратили этот ход
github.copilot.server_durationДлительность на стороне сервера
github.copilot.initiatorИнициатор запроса
github.copilot.turn_idИдентификатор поворота
github.copilot.interaction_idИдентификатор взаимодействия
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.nameexecute_tool
gen_ai.provider.nameИмя поставщика (если доступно)
gen_ai.tool.nameИмя инструмента (например, readFile)
gen_ai.tool.typefunction
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 на вызов агента
github.copilot.mcp.server.connection.countСчетчикПопытокЗавершенные попытки подключения сервера MCP по транспорту и результату
github.copilot.code.lines_addedСчетчикобводыСтроки, добавленные средствами редактирования файлов, записанными в режиме реального времени
github.copilot.code.lines_removedСчетчикобводыСтроки, удаленные средства редактирования файлов, записанные в режиме реального времени

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

События жизненного цикла, зафиксированные на активном 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Вывод инструментов

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

Morty Proxy This is a proxified and sanitized view of the page, visit original site.