Skip to main content
Skip to content

GitHub Copilot CLI программный справочник

Найдите варианты программного запуска Copilot CLI .

Помимо интерактивного запуска Copilot CLI , вы также можете передавать запрос напрямую в CLI одной командой, не входя в интерактивную сессию. Это позволяет программно использовать Copilot скрипты, CI/CD конвейеры и автоматизацию. Дополнительные сведения см. в разделе Программный запуск GitHub Copilot CLI.

В этой статье описываются командные строки и переменные среды, которые особенно актуальны при программном запуске Copilot CLI .

Чтобы увидеть полный список доступных опций, смотрите Справочник команды GitHub Copilot CLI или введите следующую команду в вашем терминале:

Shell
copilot help

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

Существует ряд опций командной строки, которые особенно полезны при программном запуске Copilot CLI .

ОпцияОписание
-p PROMPTВыполните запрос в неинтерактивном режиме. CLI запускает подсказку и уходит после завершения.
-sПодавлять характеристики и декорации, выдавая только реакцию агента. Идеально подходит для прокладки вывода в скриптах.
--add-dir=DIRECTORYДобавьте каталог в список разрешённых путей. Это можно использовать несколько раз для добавления нескольких каталогов. Полезно, когда агенту нужно читать/записывать вне текущей рабочей директории.
--agent=AGENTУкажите a custom agent для использования.
--allow-all (или --yolo)Разрешите CLI все права. Эквивалентно --allow-all-tools --allow-all-paths --allow-all-urls.
--allow-all-pathsПолностью отключите проверку пути по файлу. Это более простая альтернатива, чем --add-dir когда ограничения по пути не нужны.
--allow-all-toolsРазрешить каждому инструменту работать без явного разрешения для каждого инструмента.
--allow-all-urlsРазрешить доступ ко всем URL без явного разрешения для каждого URL.
--allow-tool=TOOL ...Избирательно предоставляйте разрешение на конкретный инструмент. Для множества инструментов используйте список с кавычками, разделёнными запятыми.
--allow-url=URL ...Позвольте агенту получить определённый URL или домен. Полезно, когда рабочий процесс требует веб-доступа к известным конечным точкам. Для нескольких URL используйте список с кавычками, разделёнными запятыми.
--attachment=PATH ...Вложите файл (изображение или собственный документ) к начальному запросу. Допустимо только в неинтерактивном режиме. Можно использовать несколько раз для присоединения нескольких файлов.
--available-tools=TOOL ...Ограничьте модель только указанными вами инструментами; все остальные средства недоступны. Полезно для тесного определения того, что агент может сделать в автоматизированном рабочем процессе. Для множества инструментов используйте список с кавычками, разделёнными запятыми.
--deny-tool=TOOL ...Откажитесь от конкретного инструмента. Полезно для ограничения возможностей агента в закрытом рабочем процессе. Для множества инструментов используйте список с кавычками, разделёнными запятыми.
--deny-url=URL ...Запретить доступ к определенному URL-адресу или домену. Имеет приоритет над --allow-url. Для нескольких URL используйте список с кавычками, разделёнными запятыми.
--excluded-tools=TOOL ...Удалите определенные инструменты из доступных для модели. Для множества инструментов используйте список с кавычками, разделёнными запятыми.
--fleetЗапустите запрос в режиме парка, поэтому Copilot для работы с отдельными частями задачи используется параллельные подагенты. Объединение с -p неинтерактивной автоматизацией для -i интерактивного сеанса или запроса с каналом. Не поддерживается в режиме сервера ACP. См . раздел AUTOTITLE.
--model=MODELВыберите модель ИИ (например gpt-5.4 , или claude-haiku-4.5). Полезно для закрепления модели в воспроизводимых рабочих процессах. См. раздел «Выбор модели » ниже.
--no-ask-userПредотвратите паузу агента для получения дополнительного пользовательского ввода.
--output-format=FORMATЗадайте выходной формат: text (по умолчанию) или json. С помощью jsonинтерфейса командной строки интерфейс командной строки выдает JSONL (один объект JSON на строку), что удобно для анализа выходных данных агента в скриптах.
--secret-env-vars=VAR ...Переменная среды, значение которой вы хотите скрыть в выводе. Для множества переменных используйте список с кавычками, разделёнными запятыми. Это необходимо для предотвращения раскрытия секретов в логах. Значения в GITHUB_TOKEN переменных и COPILOT_GITHUB_TOKEN среды по умолчанию заредактированы.
--share=PATHЭкспортируйте транскрипт сессии в файл markdown после неинтерактивного завершения (по умолчанию )../copilot-session-<ID>.md Полезно для аудита или архивирования того, что сделал агент. Обратите внимание, что расшифровки сессий могут содержать конфиденциальную информацию.
--share-gistОпубликуйте расшифровку сессии в виде секретного GitHub gist после её завершения. Удобно для обмена результатами CI. Обратите внимание, что расшифровки сессий могут содержать конфиденциальную информацию.

Выполнение динамических рабочих процессов

Используется copilot workflow run WORKFLOW-NAME для запуска динамического рабочего процесса из скрипта. Сведения о динамических рабочих процессах см. в разделе Динамические рабочие процессы.

Используется --args для встроенного JSON или пути к файлу @JSON с префиксом. Аргументы не считываются из стандартных входных данных.

Shell
copilot workflow run WORKFLOW-NAME \
  --args @workflow-input.json \
  --silent --output-format json

Настройте проверку подлинности и предоставьте необходимые разрешения средства перед выполнением команды. Общие параметры, такие как --model, --allow-url``--allow-toolи --add-dir применяются. Команда не отображает запросы на утверждение разрешений. Параметры командной строки и режима сеанса, такие как -p, -i, --agent, --fleet``--autopilotи --continue``--resumeне поддерживаютсяworkflow run.

Project расширения загружаются только из доверенных папок или с явным согласием. В автоматизации GITHUB_COPILOT_PROMPT_MODE_EXTENSIONS=true разрешает загрузку расширений проекта для этого вызова. Это можно включить только для кода репозитория, которому вы доверяете. Он не предоставляет разрешения на инструмент.

Сведения обо всех параметрах, относящихся к рабочему процессу, см. в разделе Справочник команды GitHub Copilot CLI.

Выходные данные рабочего процесса

При --output-format jsonиспользовании стандартных выходных данных используется JSONL. Когда выполнение завершится или останавливается, последняя запись содержит следующие поля. Добавьте --silent для подавления хода выполнения и других записей событий.

ПолеОписание
typeВсегда workflow.result.
data.nameИмя рабочего процесса.
data.run.runIdИдентификатор запуска.
data.run.statusПоследнее состояние выполнения: completed, halted, paused``cancelledили error.
data.run.resultВозвращаемое значение, если таковое имеется. Опущен при --result-file указании.
data.run.pauseInfo, data.run.reason, data.run.error, data.run.failureДополнительные сведения о том, почему выполнение приостановлено или остановлено при наличии.
data.resultFileЗапрошенный путь к файлу результатов, включенный только после успешной записи файла результата.

В --result-file PATHфайле содержится только возвращаемое значение в формате JSON. Приостановленный, неудачный или прерванный запуск не заменяет существующий файл результатов. Завершенный запуск, возвращающий значение, не записывает файл результата.

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

Коды выхода рабочего процесса

Код выходаЗначение
0Рабочий процесс успешно выполнен, и любой запрошенный файл результата был успешно записан. Рабочий процесс, возвращающий значение, также не может завершиться успешно, не создавая файл результатов.
1Выполнение не завершилось, включая паузу, ограничение, которое остановило выполнение, отмену или сбой. Также используется для общих ошибок команд, таких как недопустимый синтаксис командной строки или сбой сохранения результата.
2Рабочий процесс не найден или его аргументы не могут быть прочитаны, проанализированы как JSON или проверены на основе принятых входных данных рабочего процесса.
130Команда была прервана SIGINT или SIGTERM, например, нажав клавиши CTRL+C.

Проверьте код выхода перед использованием результирующих файлов. Более ранний файл результатов по-прежнему может существовать после неудачного выполнения. Последняя запись с data.run.status набором, чтобы completed не гарантировать успешное сохранение файла результата.

Инструменты для этой --allow-tool опции

С помощью этой --allow-tool опции можно задать различные типы инструментов.

Такой инструментЧто он контролирует
оболочкаВыполнение команд shell.
писатьСоздание или изменение файлов.
readЧтение файлов или каталогов.
URL-адресЗагрузка контента по URL.
memoryХранение новых фактов в постоянной памяти агента. Это не влияет на использование существующих воспоминаний. См . раздел AUTOTITLE.
MCP-SERVERВызов инструментов с конкретного MCP-сервера. Используйте настроенное имя сервера в качестве идентификатора — например, github. См . раздел AUTOTITLE.

Инструментальные фильтры

Типы shellинструментов , write, urlи MCP позволяют задавать фильтр в скобках, чтобы контролировать, какие именно инструменты разрешены.

Такой инструментПримерОбъяснение примера
раковинаshell(git:*)Разрешить все подкоманды Git (git push, git status, и т.д.).
shell(npm test)Разрешите точную команду npm test.
писатьwrite(.github/copilot-instructions.md)Позвольте CLI записывать по этому конкретному пути.
write(README.md)Позвольте CLI записывать в любой файл, путь которого заканчивается на /README.md.
urlurl(github.com)Разрешите CLI получать доступ к HTTPS-URL на github.com.
url(http://localhost:3000)Разрешите CLI получить доступ к локальному серверу разработчика с явным протоколом и портом.
url(https://*.github.com)Разрешите CLI получать доступ к любому GitHub поддомену (например, api.github.com).
url(https://docs.github.com/copilot/*)Разрешите доступ к Copilot документации на этом сайте.
MCP-SERVERgithub(create_issue)Разрешите только инструмент create_issue с github сервера MCP.

Примечание.

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

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

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

VariableОписание
COPILOT_ALLOW_ALLНастройте на true полные разрешения
COPILOT_MODELЗадайте модель (например, gpt-5.4, claude-haiku-4.5)
COPILOT_HOMEЗадайте папку для конфигурационного файла CLI (~/.copilot по умолчанию)
COPILOT_AUTO_UPDATEНастройте на false отключение автоматических обновлений. Полезно в CI и других автоматизированных средах, где требуется закрепить версию ИНТЕРФЕЙСА командной строки.
COPILOT_GITHUB_TOKENТокен аутентификации (высший приоритет)
GH_TOKENТокен аутентификации (второй приоритет)
GITHUB_TOKENТокен аутентификации (третий прецедент)
GITHUB_COPILOT_PROMPT_MODE_EXTENSIONSЗадайте для true разрешения загрузки расширений проекта для запроса или прямого выполнения рабочего процесса. Используйте это только для кода репозитория, которому вы доверяете. Это не предоставляет разрешения средства.

Для получения полной информации о переменных окружения Copilot CLIиспользуйте команду copilot help environment в вашем терминале.

Выбор модели

Когда вы отправляете запрос в Copilot CLI неинтерактивном режиме, модель, которую CLI использует для генерации ответа, отображается в выходе ответа (если -sопция , или --silent, не используется).

Вы можете использовать --model опцию, чтобы указать, какую модель ИИ должен использовать CLI. Это позволяет выбрать модель, которая лучше всего соответствует вашему запросу, учитывая такие факторы, как скорость, стоимость и возможности.

Например, для простых задач, таких как объяснение кода или создание резюме, вы можете выбрать быструю, более дешевую модель, например, модель Клода Хайку:

Bash
copilot -p "What does this project do?" -s --model claude-haiku-4.5

Для более сложных задач, требующих более глубокого мышления — например, отладки или рефакторинга кода — вы можете выбрать более мощную модель, например, модель GPT Codex:

Bash
copilot -p "Fix the race condition in the worker pool" \
  --model gpt-5.3-codex \
  --allow-tool='write, shell'

Примечание.

Чтобы просмотреть строки модели для всех доступных моделей, выполните /model команду в интерактивном Copilot CLI сеансе. Полный список моделей и клиентов, поддерживающих их, см. в разделе Поддерживаемые модели ИИ в GitHub Copilot.

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

Чтобы сохранить выбор модели между сессиями оболочки, можно установить model ключ в конфигурационном файле CLI. Этот файл находится по адресу ~/.copilot/settings.json (или $COPILOT_HOME/settings.json если вы установили переменную COPILOT_HOME среды). Некоторые модели также позволяют установить уровень усилия для рассуждения, который контролирует, сколько времени модель тратит на размышления перед ответом.

JSON
{
  "model": "gpt-5.3-codex",
  "effortLevel": "low"
}

Совет

Самый простой способ установить модель в конфигурационном файле — использовать /model команду slash в интерактивной сессии. Выбор, который вы делаете с помощью этой команды, записывается в конфигурационный файл.

Приоритет модели

При определении модели, которую использовать для заданного запроса, CLI проверяет спецификации модели в следующем порядке приоритета (от самого высокого к наименьшему):

  • Где используется пользовательский агент: модель, указанная в определении пользовательского агента (если таковая есть).
  • Опция командной --model строки.
  • Переменная среды COPILOT_MODEL.
  • Ключ model в конфигурационном файле (~/.copilot/settings.json или $COPILOT_HOME/settings.json).
  • Стандартная модель CLI.

Использование кастомных агентов

Вы можете делегировать работу специализированному агенту, используя эту --agent опцию. Дополнительные сведения см. в разделе Создание и использование пользовательских агентов для GitHub Copilot CLI.

В этом примере code-review используется агент. Для этого требуется, чтобы с этим именем был создан пользовательский агент.

copilot -p "Review the latest commit" \
  --allow-tool='shell' \
  --agent code-review

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