Skip to main content

О GitHub Copilot CLI

Узнайте об использовании Copilot из командной строки.

Кто может использовать эту функцию?

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

Введение

Интерфейс командной строки (CLI) для GitHub Copilot позволяет использовать Copilot непосредственно из терминала. Его можно использовать для ответов на вопросы, написание и отладку кода, а также взаимодействие с GitHub.com. Например, вы можете попросить Copilot внести изменения в project и создать pull request.

GitHub Copilot CLI даёт вам быстрый access к мощному агенту ИИ, не покидая терминал. Это поможет вам быстрее выполнять задачи, работая от вашего имени, и вы можете работать итеративно с GitHub Copilot CLI для создания нужного кода.

Поддерживаемые операционные системы

Инструкции по установке см. в разделе Установка GitHub Copilot CLI.

Режимы использования

GitHub Copilot CLI имеет два пользовательских интерфейса: интерактивный и программный.

Интерактивный интерфейс

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

Скриншот приветственного сообщения в интерактивном интерфейсе Copilot.

Интерактивный интерфейс имеет два режима. Помимо стандартного режима запроса/выполнения, есть режим планирования , в котором Copilot строит структурированный план реализации задачи, которую вы хотите выполнить.

Нажмите Shift+Tab , чтобы переключаться между режимами. В режиме плана Copilot анализирует ваш запрос, задаёт уточняющие вопросы для понимания объёма и требований, а также составляет план перед написанием кода. Это помогает выявлять недоразумения до написания кода и сохранять контроль над сложными, многоступенчатыми задачами.

Программный интерфейс

Вы также можете передать CLI одну строку прямо в командной строке. CLI выполняет задание и затем выходит.

Чтобы использовать CLI программно, включите -p в команду опцию OR --prompt . Чтобы позволить Copilot изменять и выполнять файлы, следует использовать одну из описанных позже в статье опций одобрения — см . раздел Разрешение инструментов без ручного одобрения ). Рассмотрим пример.

Bash
copilot -p "Show me this week's commits and summarize them" --allow-tool='shell(git)'

Кроме того, можно использовать скрипт для вывода параметров командной строки и передачи copilotэтого значения. Рассмотрим пример.

Bash
./script-outputting-options.sh | copilot

Внимание

Если вы используете опцию автоматического одобрения, например --allow-all-tools, Copilot имеет тот же access к файлам на вашем компьютере, и может запускать любые shell-команды, которые вы можете выполнить, без предварительного одобрения. Ознакомьтесь с рекомендациями по безопасности в этой статье.

Варианты использования для GitHub Copilot CLI

В следующих разделах приведены примеры задач, которые можно выполнить с помощью GitHub Copilot CLI.

Локальные задачи

  • Из каталога project вы можете попросить Copilot внести изменения в код в project. Рассмотрим пример.

    Change the background-color of H1 headings to dark blue

    Copilot находит CSS-файл, в котором определены заголовки H1 и изменяет значение цвета.

  • Попросите Copilot сообщить об изменениях в файле:

    Show me the last 5 changes made to the CHANGELOG.md file. Who changed the file, when, and give a brief summary of the changes they made

  • Используйте Copilot, чтобы улучшить код или документацию в вашем project.

    • Suggest improvements to content.js

    • Rewrite the readme in this project to make it more accessible to newcomers

  • Используйте Copilot для выполнения операций Git.

    • Commit the changes to this repo

    • Revert the last commit, leaving the changes unstaged

  • Попросите Copilot создать приложение с нуля, например в качестве доказательства концепции.

    Use the create-next-app kit and tailwind CSS to create a next.js app. The app should be a dashboard built with data from the GitHub API. It should track this project's build success rate, average build duration, number of failed builds, and automated test pass rate. After creating the app, give me easy to follow instructions on how to build, run, and view the app in my browser.

  • Попросите Copilot объяснить, почему внесенные изменения не работают должным образом, или сообщите Copilot, чтобы устранить проблему с последним изменением. Рассмотрим пример.

    You said: "The application is now running on http://localhost:3002 and is fully functional!" but when I browse to that URL I get "This site can't be reached"

Задачи, связанные с GitHub.com

  • Получение и отображение сведений о работе из GitHub.com.

    • List my open PRs

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

    • List all open issues assigned to me in OWNER/REPO

  • Попросите Copilot работать над проблемой:

    I've been assigned this issue: https://github.com/octo-org/octo-repo/issues/1234. Start working on this for me in a suitably named branch.

  • Попросите Copilot внести изменения в файл и вызвать запрос на вытягивание по GitHub.com.

    • In the root of this repo, add a Node script called user-info.js that outputs information about the user who ran the script. Create a pull request to add this file to the repo on GitHub.

    • Create a PR that updates the README at https://github.com/octo-org/octo-repo, changing the subheading "How to run" to "Example usage"

    Copilot создает запрос на вытягивание GitHub.com от вашего имени. Вы помечены как автор запроса на вытягивание.

  • Попросите Copilot создать проблему для GitHub.com.

    Raise an improvement issue in octo-org/octo-repo. In src/someapp/somefile.py the `file = open('data.txt', 'r')` block opens a file but never closes it.

  • Попросите Copilot проверить изменения кода в запросе на вытягивание.

    Check the changes made in PR https://github.com/octo-org/octo-repo/pull/57575. Report any serious errors you find in these changes.

    Copilot отвечает в ИНТЕРФЕЙСе командной строки с сводкой о любых проблемах, которые он находит.

  • Управление запросами на вытягивание из GitHub Copilot CLI.

    • Merge all of the open PRs that I've created in octo-org/octo-repo

    • Close PR #11 on octo-org/octo-repo

  • Найдите определенные типы проблем.

    Use the GitHub MCP server to find good first issues for a new team member to work on from octo-org/octo-repo

    Примечание.

    Если вы знаете, что конкретный сервер MCP может достичь определенной задачи, то указание его в запросе может помочь Copilot, чтобы доставить нужные результаты.

  • Найдите определенные рабочие процессы GitHub Actions .

    List any Actions workflows in this repo that add comments to PRs

  • Создайте рабочий процесс GitHub Actions .

    Branch off from main and create a GitHub Actions workflow that will run on pull requests, or can be run manually. The workflow should run eslint to check for problems in the changes made in the PR. If warnings or errors are found these should be shown as messages in the diff view of the PR. I want to prevent code with errors from being merged into main so, if any errors are found, the workflow should cause the PR check to fail. Push the new branch and create a pull request.

Направлять разговор

Вы можете взаимодействовать с Copilot, пока он думает, чтобы направить разговор:

  •         **Поставить дополнительные сообщения в очередь**: отправить последующие сообщения, чтобы направить разговор в другом направлении, или поставить в очередь дополнительные инструкции для Copilot обработки после завершения текущего ответа. Это делает разговоры более естественными и помогает контролировать ситуацию.
    
  •         **Встроенная обратная связь при отказе**: Когда вы отклоняете запрос на разрешение инструмента, вы можете предоставить Copilot встроенную обратную связь об отказе, чтобы он мог адаптировать свой подход, не останавливаясь полностью. Это делает разговор более естественным, когда вы хотите отвести Copilot от определённых действий.
    

Автоматическое управление контекстом

GitHub Copilot CLI автоматически управляет контекстом вашего разговора:

  •         **Автоуплотнение**: Когда ваш разговор приближается к 95% лимита токенов, Copilot автоматически сжимает вашу историю в фоне, не прерывая ваш рабочий процесс. Это позволяет проводить практически бесконечное количество сессий.
    
  •         **Ручное управление**: используйте `/compact` для ручного сжатия контекста в любое время. Нажмите <kbd>Escape</kbd> , чтобы отменить, если передумаете.
    
  •         **Визуализировать использование**: команда `/context` показывает подробный разбивку использования токенов, чтобы вы могли понять, как используется контекстное окно.
    

Customizing GitHub Copilot CLI

Вы можете настраивать GitHub Copilot CLI несколькими способами:

  •         **Пользовательские инструкции**: Пользовательские инструкции позволяют предоставить Copilot дополнительный контекст на вашем project и помочь создать, протестировать и проверять изменения. Теперь все пользовательские файлы инструкций объединяются, а не используют резервные варианты на основе приоритетов. Дополнительные сведения см. в разделе [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/add-custom-instructions).
    
  •         **Model Context Protocol (MCP) серверы**: MCP-серверы позволяют предоставлять Copilot access различным источникам данных и инструментам. Дополнительные сведения см. в разделе [AUTOTITLE](/copilot/how-tos/use-copilot-agents/use-copilot-cli#add-an-mcp-server).
    
  •         **Пользовательские агенты**: Пользовательские агенты позволяют создавать различные специализированные версии Copilot для разных задач. Например, вы можете настроить Copilot, чтобы стать экспертом фронтенд-инженера, следующего рекомендациям вашей команды. GitHub Copilot CLI включает специализированные Пользовательские агенты, которым он автоматически делегирует общие задачи. Дополнительные сведения см. в разделе [AUTOTITLE](/copilot/how-tos/use-copilot-agents/use-copilot-cli#use-custom-agents).
    
  •         **Крючки**: Хуки позволяют выполнять пользовательские команды shell в ключевых точках выполнения агента, добавляя проверку, логирование, сканирование безопасности или автоматизацию рабочих процессов. См [. раздел AUTOTITLE](/copilot/concepts/agents/coding-agent/about-hooks).
    
  •         **Навыки**: Навыки позволяют развивать способность Copilot выполнять специализированные задачи с помощью инструкций, скриптов и ресурсов. Дополнительные сведения см. в разделе [AUTOTITLE](/copilot/concepts/agents/about-agent-skills).
    
  •         **Память второго пилота**: Память второго пилота позволяет Copilot построить устойчивое понимание вашего репозитория, храня «память» — это фрагменты информации о конвенциях, шаблонах и предпочтениях кодирования, которые Copilot выводит по мере своей работы. Это снижает необходимость многократно объяснять контекст в ваших подсказках и делает будущие сессии более продуктивными. Дополнительные сведения см. в разделе [AUTOTITLE](/copilot/concepts/agents/copilot-memory).
    

Вопросы безопасности

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

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

Доверенные каталоги

Доверенные каталоги управляют, где Второй пилот CLI может читать, изменять и выполнять файлы.

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

Область разрешений является эвристической и GitHub не гарантирует, что все файлы за пределами доверенных каталогов будут защищены. См. раздел «Снижение рисков».

При запуске сеанса GitHub Copilot CLI вам будет предложено подтвердить, что вы доверяете файлам и ниже каталог, из которого вы запустили CLI. См . раздел AUTOTITLE.

Разрешенные средства

При первом использовании Copilot необходимо использовать средство, которое можно использовать для изменения или выполнения файла: данных, многократно используемых в cli.tools-needing-approval %}, будет спрашивать, следует ли разрешить использовать это средство.

Как правило, можно выбрать один из трех вариантов:

1. Yes
2. Yes, and approve TOOL for the rest of the running session
3. No, and tell Copilot what to do differently (Esc)
          **Вариант 1** позволяет Copilot выполнять эту конкретную команду только на этот раз. В следующий раз, когда он должен использовать этот инструмент, он попросит вас снова.

          **Вариант 2** позволяет Copilot снова использовать это средство, не запрашивая разрешение, в течение текущего сеанса. Он будет запрашивать ваше утверждение еще раз в новых сеансах или, если вы возобновляете текущий сеанс в будущем. Если выбрать этот параметр, то вы разрешаете Copilot использовать этот инструмент в любом случае, если он считает, что подходит. Например, если Copilot запрашивает разрешение на выполнение команды, и вы выбираете вариант 2, то Copilot может выполнять любую `rm ./this-file.txt` команду `rm`(например, `rm -rf ./*`) во время текущего выполнения этого сеанса, не запрашивая утверждение.

          **Вариант 3** отменяет предложенную команду и позволяет сообщить Copilot попробовать другой подход.

Разрешение использования средств без утверждения вручную

Существует три варианта командной строки, которые вы можете использовать — как в интерактивных, так и в программных сессиях — чтобы определить инструменты, которые Copilot может использовать без вашего одобрения:

  • --allow-all-tools

    Позволяет Copilot использовать любое средство без запроса на утверждение.

    Например, вы можете использовать эту опцию с программным вызовом CLI, чтобы Copilot выполнять любую команду. Рассмотрим пример.

    copilot -p "Revert the last commit" --allow-all-tools
    
  • --deny-tool

    Не позволяет Copilot использовать определенное средство.

    Этот параметр имеет приоритет над параметрами и --allow-all-tools параметрами--allow-tool.

  • --allow-tool

    Позволяет Copilot использовать определенное средство без запроса на утверждение.

Использование параметров утверждения

Для --deny-tool этих --allow-tool параметров требуется один из следующих аргументов:

  • 'shell(COMMAND)'

    Например, copilot --deny-tool='shell(rm)' не позволяет Copilot использовать любую rm команду.

    Для git и gh команд можно указать определенную подкоманда первого уровня, чтобы разрешить или запретить. Рассмотрим пример.

    copilot --deny-tool='shell(git push)'
    

    Спецификация инструмента является необязательной. Например, copilot --allow-tool='shell' позволяет Copilot использовать любую команду оболочки без отдельного утверждения.

  • 'write'

    Этот аргумент разрешает или запрещает средства, отличные от команд оболочки, разрешение на изменение файлов.

    Например, copilot --allow-tool='write' позволяет Copilot изменять файлы без отдельного утверждения.

  • 'MCP_SERVER_NAME'

    Этот аргумент разрешает или запрещает средства на указанном сервере MCP, где MCP_SERVER_NAME указано имя настроенного сервера MCP. Средства с сервера указываются в скобках, используя имя средства, зарегистрированного на сервере MCP. Использование имени сервера без указания средства разрешает или запрещает все средства с этого сервера.

    Например, copilot --deny-tool='My-MCP-Server(tool_name)' не позволяет Copilot использовать средство, вызываемого tool_name с вызываемого My-MCP-Serverсервера MCP.

    Вы можете найти имя MCP-сервера, зайдя /mcp в интерактивный интерфейс CLI и выбрав сервер из отображаемого списка.

Объединение параметров утверждения

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

Например, чтобы запретить Copilot использовать rm команды и git push команды, но автоматически разрешать все остальные средства, используйте следующее:

copilot --allow-all-tools --deny-tool='shell(rm)' --deny-tool='shell(git push)'

Чтобы предотвратить использование Copilot с помощью средства tool_name с именованного My-MCP-Serverсервера MCP, но разрешить использовать все другие средства с этого сервера без отдельного утверждения, используйте следующее:

copilot --allow-tool='My-MCP-Server' --deny-tool='My-MCP-Server(tool_name)'

Последствия автоматического утверждения средства

Важно учитывать последствия безопасности использования параметров командной строки утверждения. Эти параметры позволяют Copilot выполнять команды, необходимые для выполнения запроса, не предоставляя возможность просматривать и утверждать эти команды перед их выполнением. Хотя это упрощает рабочие процессы и позволяет выполнять бессерверную операцию интерфейса командной строки, это повышает риск непреднамеренных действий, которые могут привести к потере или повреждению данных или другим проблемам безопасности.

Вы можете контролировать, какие инструменты Второй пилот CLI использовать, отвечая на запросы одобрения, когда Copilot пытается использовать инструмент, указывая права с помощью флагов командной строки или (в интерактивной сессии) используя команды слэш (например /allow-all , и /yolo. См . раздел AUTOTITLE.

Устранение рисков

Вы можете снизить риски, связанные с использованием опций автоматического одобрения, запустив Второй пилот CLI в ограниченной среде — такой как виртуальная машина, контейнер или выделенная система — с строго контролируемыми правами и сетевыми access. Это ограничивает любые потенциальные повреждения, которые могут возникнуть при предоставлении Copilot выполнять команды, которые вы не проверили и проверили.

Известные ограничения политики MCP сервера

Второй пилот CLI в настоящее время не поддерживает следующие MCP-серверные политики на уровне организации:

  •         **MCP-серверы в Copilot**, который определяет, могут ли MCP-серверы вообще использовать Copilot.
    
  •         **URL реестра MCP**, который контролирует, с какого реестра Copilot будет использоваться MCP-серверы.
    

Для получения дополнительной информации об этих полисах см. Использование MCP-сервера в вашей компании.

Использование модели

Модель по умолчанию, используемая для GitHub Copilot CLI, — это Клод Соннет 4.5. оставляет за собой право изменить эту модель.

Вы можете изменить модель, используемую GitHub Copilot CLI, используя /model команду слэш или --model командную строку. Введите эту команду, затем выберите модель из списка.

Каждый раз, когда вы отправляете запрос в Copilot в интерактивном интерфейсе Второй пилот CLI, и каждый раз, когда вы программно используете Второй пилот CLI, ваша ежемесячная квота в Copilot премиум-запросов уменьшается на единицу, умноженную на множитель, указанный в скобках в списке модели. Например, Claude Sonnet 4.5 (1x) означает, что с этой моделью каждый раз, когда вы отправляете запрос, ваша квота премиум-запросов сокращается на один. Сведения о запросах уровня "Премиум" см. в разделе Запросы в GitHub Copilot.

Используйте Второй пилот CLI через ACP

ACP (Agent Client Protocol) — это открытый стандарт для взаимодействия с агентами ИИ. Он позволяет использовать Второй пилот CLI в качестве агента в любых сторонних инструментах, IDE или системах автоматизации, поддерживающих этот протокол.

Дополнительные сведения см. в разделе Сервер ACP Copilot CLI.

Обратная связь

Если у вас есть отзывы о GitHub Copilot CLI, сообщите нам, используя /feedback команду косой черты в интерактивном сеансе и выбрав один из вариантов. Вы можете выполнить частный опрос отзывов, отправить отчет об ошибке или предложить новую функцию.

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

  •         [AUTOTITLE](/copilot/how-tos/set-up/install-copilot-cli)
    
  •         [AUTOTITLE](/copilot/how-tos/use-copilot-agents/use-copilot-cli)
    
  •         [AUTOTITLE](/enterprise-cloud@latest/copilot/responsible-use/copilot-cli)