Skip to main content

Каталог конфигурации CLI GitHub Copilot

Найдите информацию о ~/.copilot каталоге, где Второй пилот CLI хранятся конфигурации, данные сессий и настройки.

Второй пилот CLI Хранит свою конфигурацию, историю сессий, журналы и настройки в одном каталоге на вашем компьютере. По умолчанию эта папка ( ~/.copilot то есть $HOME/.copilot).

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

Обзор каталога

Каталог ~/.copilot содержит следующие элементы верхнего уровня.

ПутьТипОписание
agents/DirectoryОпределения персональных кастомных агентов
config.jsonФайлАвтоматически управляемое состояние приложения (аутентификация, установленные плагины и другие внутренние данные)
copilot-instructions.mdФайлЛичные индивидуальные инструкции (применяются ко всем сессиям)
extensions/DirectoryПерсональные расширения, загруженные CLI
hooks/DirectoryСкрипты с крючками на уровне пользователя
ide/DirectoryСостояние интеграции IDE
installed-plugins/DirectoryУстановленные файлы плагинов
instructions/DirectoryДополнительные личные *.instructions.md дела
logs/DirectoryФайлы журнала сессии
lsp-config.jsonФайлОпределения серверов LSP на уровне пользователя
mcp-config.jsonФайлОпределения серверов MCP на уровне пользователя
mcp-oauth-config/DirectoryРезервное хранилище токена MCP OAuth и регистрационного резерва
mcp-secrets/DirectoryЛокальное резервное хранилище и индекс секретных заполнятелей MCP
permissions-config.jsonФайлСохранённые права на инструменты и каталоги для каждого проекта
plugin-data/DirectoryПостоянные данные для установленных плагинов
session-state/DirectoryИстория сессий и данные рабочего пространства
command-history-state/DirectoryДанные истории командования
session-store.dbФайлБаза данных SQLite для данных между сессиями
settings.jsonФайлВаши личные настройки конфигурации
skills/DirectoryОпределения личных индивидуальных навыков

Примечание.

Не все эти предметы появляются сразу. Некоторые создаются по запросу при первом использовании конкретной функции — например, installed-plugins/ появляются только после установки первого плагина.

Файлы, редактируемые пользователем

Следующие файлы предназначены для прямого редактирования вами или управления с помощью команд CLI.

settings.json

Это основной конфигурационный файл для Второй пилот CLI. В течение сессии вы можете использовать интерактивную /settings команду для изменения конкретных значений или запустить /settings KEY VALUE её для установки одного значения. См . раздел AUTOTITLE. В качестве альтернативы можно редактировать settings.json файл напрямую в текстовом редакторе. Файл поддерживает JSON с комментариями (JSONC).

По умолчанию этот файл находится в ~/.copilot каталоге, который является пользовательской конфигурационной директорией. Он содержит глобальные пользовательские настройки по умолчанию для всех репозиториев. Вы можете изменить расположение этой директории, установив COPILOT_HOME переменную окружения на другой путь.

Примечание.

Настройки, редактируемые пользователем, изначально хранились в config.json. Они были перенесены на settings.json. Любые пользовательские настройки, появляющиеся при config.json запуске, автоматически мигрируются в settings.json.

Примечание.

Если settings.json не удается прочитать, проанализировать или проверить, Второй пилот CLI игнорирует недопустимые значения (распознанные config.json значения по-прежнему объединяются) и отображает предупреждение о запуске на временной шкале, определяющей ошибку. Исправлена обнаруженная проблема для восстановления затронутых параметров.

Полный список настроек и их взаимодействие с конфигурацией на уровне репозитория см. раздел «Настройки конфигурационных файлов » позже в этой статье.

Совет

Запусти copilot help config в терминале для быстрой справки.

copilot-instructions.md

Личные индивидуальные инструкции, которые применимы ко всем вашим сессиям, независимо от того, над каким проектом вы работаете. Этот файл работает так же, как репозиторий copilot-instructions.md , но применяется глобально.

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

instructions/

Здесь храните дополнительные личные инструкции в виде *.instructions.md файлов. Они загружаются вместе copilot-instructions.md и применяются ко всем вашим сессиям. Вы можете организовать инструкции по темам — например, ~/.copilot/instructions/code-style.instructions.md.

mcp-config.json

Определяет серверы MCP (Model Context Protocol), доступные на уровне пользователя. Эти серверы доступны во всех ваших сессиях, независимо от того, в каком вы каталоге проектов. Project-уровневые конфигурации MCP (в .mcp.json или .github/mcp.json) имеют приоритет над определениями на уровне пользователя при конфликте имён серверов.

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

lsp-config.json

Определяет серверы Language Server Protocol (LSP), доступные на уровне пользователя. Эти серверы предоставляют агенту языковой интеллект (диагностику, завершение и т.д.). Управляйте этим файлом с помощью /lsp команды slash или редактируйте его напрямую.

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

agents/

Здесь храните личные определения пользовательских агентов в виде .agent.md файлов. Агенты, размещённые в этом каталоге, доступны во всех ваших сессиях. Агенты Project уровня (в .github/agents/) имеют приоритет перед личными агентами, если у них одинаковое имя.

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

skills/

Здесь храните личные индивидуальные определения навыков. Каждый навык находится в подкаталоге, содержащем SKILL.md файл — например, ~/.copilot/skills/my-skill/SKILL.md. Личные навыки доступны во всех ваших сессиях. Навыки Project Level имеют приоритет над личными, если у них одинаковое название.

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

hooks/

Здесь можно хранить скрипты с крючками на уровне пользователя. Эти зацепки применимы ко всем вашим сессиям. Вы также можете задать крючки в строке в пользовательском конфигурационном файле (~/.copilot/settings.json) с помощью ключа hooks . Хуки уровня репозитория (in .github/hooks/) загружаются вместе с пользовательскими хуками.

Дополнительные сведения см. в разделе Использование крючков с интерфейс командной строки GitHub Copilot.

extensions/

Храните файлы расширений пользовательского уровня здесь. Расширения в этом каталоге доступны между сессиями.

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

Автоматически управляемые файлы

Следующие пункты управляются CLI. Обычно не стоит редактировать их вручную.

config.json

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

Примечание.

Ранние версии Второй пилот CLI хранили как пользовательские настройки, так и состояние приложения в config.json. Настройки, редактируемые пользователем, теперь расположены в settings.json. Любые пользовательские настройки config.json при запуске автоматически переносятся в settings.json. Поля прикладного состояния — такие loggedInUsersкак , installedPlugins, firstLaunchAt, и staff— остаются в config.json и не мигрированы.

permissions-config.json

Сохраняет сохранённые решения по инструменту и разрешению каталога, организованные по расположению проекта. Когда вы одобряете инструмент или предоставляете доступ к каталогу текущего местоположения, CLI фиксирует решение здесь, чтобы вас больше не запросили в том же репозитории или каталоге.

Примечание.

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

Расположение файла

Второй пилот CLI Разрешает файл из каталога конфигурации.

PrioritySourceИспользуемый файл
1--config-dir=DIRECTORYDIRECTORY/permissions-config.json
2COPILOT_HOME$COPILOT_HOME/permissions-config.json
3Default~/.copilot/permissions-config.json

Интерфейс командной строки использует только первый применимый каталог конфигурации в этом порядке. Он также не загружается permissions-config.json из расположений с более низким приоритетом.

Этот --config-dir вариант — наследие. Предпочитаю COPILOT_HOME , когда нужно менять каталог конфигурации.

В Windows стандартный файл обычно выглядит:

C:\Users\YOUR-USER\.copilot\permissions-config.json

Старые сборки использовали файл без расширения под названием permissions-config. Если permissions-config.json его нет, а файл без расширения есть, CLI всё равно учитывает наследственный файл. Используйте permissions-config.json для новых правок.

Предыдущие локации конфигурации на базе XDG мигрируются ~/.copilot при запуске, когда COPILOT_HOME она не настроена.

Ключи местоположения

Объект верхнего уровня locations определяется абсолютным путём.

  • Для репозитория Git используйте корень Git, используемый для определения разрешений.
  • Связанные рабочие деревья разрешаются на основной корень репозитория, поэтому они разделяют права с основным деревом работы.
  • Подмодули используют собственную рабочую директорию.
  • Для каталога, который не входит в репозиторий Git, используйте нормализованный текущий рабочий каталог.

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

CLI загружает одобрения соответствующего места при начале сессии и изменении активного рабочего каталога.

Схема

Файл должен содержать объект JSON.

ПолеТипОбязательныйDefaultДопустимые значенияОписание
locationsObjectНет{}Ключи абсолютных путейКарта ключей местоположения для сохраненных одобрений.
locations.<key>ObjectНет{}Любой абсолютный ключ местоположенияСохранены одобрения для одного репозитория или каталога.
locations.<key>.tool_approvalsМассивНет[]Объекты утвержденияИнструменты одобрены для этого места.
locations.<key>.allowed_directoriesМассив строкНет[]Пути абсолютных каталоговДополнительные каталоги, к которым может получить доступ путевой врата для этого места. Каждый каталог должен существовать, когда CLI применяет конфигурацию.
locations.<key>.tool_approvals[].kindStringДаNone
commands, read``write``mcp``mcp-sampling``memory``custom-tool``extension-management``extension-permission-accessВыбирает тип одобрения.
commandIdentifiersМассив строкДа, для commandsNoneИдентификаторы командОболоченные идентификаторы команд для одобрения.
serverNameStringДа, для mcp и mcp-samplingNoneИмя сервера MCPMCP-сервер для одобрения.
toolNameСтрока или nullДа, для mcpNoneНазвание инструмента MCP, или nullИнструмент MCP для одобрения. Используйте null для одобрения всех инструментов на сервере.
toolNameStringДа, для custom-toolNoneПользовательское имя инструментаПользовательский инструмент для одобрения по точному названию.
operationStringНет, для extension-managementУпущенныйНазвание операции расширенияОперация по управлению расширением для утверждения. Исключить это поле для утверждения всех операций по управлению расширением.
extensionNameStringДа, для extension-permission-accessNoneИмя расширенияРасширение, доступ к возможностям с ограничением разрешений одобрен.

permissions-config.json не поддерживает правила отказа, правила «спросить», режимы по умолчанию, правила URL, фильтрацию инструментов или совместную политику репозитория. Для таких действий используйте командные опции, такие --deny-toolкак , --available-tools, --excluded-tools``--allow-url, и --deny-url. Правила сохранения URL хранятся в settings.json, а не в permissions-config.json.

Неизвестные поля не входят в схему. CLI может их игнорировать, а последующие записи могут их удалять.

Виды одобрения

Каждый элемент должен tool_approvals быть одним из следующих объектов.

kindОбязательные поляНеобязательные поляMeaning
commandscommandIdentifiersNoneОдобряет совпадающие идентификаторы команд shell.
readNoneNoneОдобряет запросы на инструменты чтения. Интерактивные сессии CLI уже автоматически одобряют чтение, поэтому обычно это не обязательно.
writeNoneNoneОдобряет запросы на создание и инструменты для модификации файлов. Запрос на путь всё равно может применяться для путей вне разрешённых каталогов.
mcp
serverName, toolNameNoneОдобряет один инструмент MCP или все инструменты на сервере, когда toolName это null.
mcp-samplingserverNameNoneОдобряет запросы на выборку MCP для одного сервера.
memoryNoneNoneОдобряет запросы на запись и голосование по памяти.
custom-tooltoolNameNoneОдобряет кастомный инструмент под точным названием.
extension-managementNoneoperationУтверждает управление расширением. Если operation опущено, все операции управления расширением совпадают.
extension-permission-accessextensionNameNoneОдобряет доступ расширения к возможностям с ограничением разрешений.

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

Сопоставление команд оболочки

permissions-config.json не поддерживает регулярные выражения или общие шаблоны глобов. Строковые значения совпадают буквально, за исключением того, что :* значение оболочки commandIdentifiers соответствует тексту до :*того, как само по себе или за ним следует пробел и больше текста. Равнина * не имеет особого смысла, поэтому git* не соответствует git status.

РисунокСовпаденияНе соответствует
git statusgit statusgit status --short
git:*
git, , git status``git pushgitea
gh pr:*
gh pr, , gh pr view``gh pr creategh repo view

Сопоставление каталогов

allowed_directories Записи позволяют Второй пилот CLI получать доступ к путям внутри этих каталогов без отдельного запроса на путь. Они не одобряют саму работу инструмента. Например, редактирование файла в разрешённой папке всё равно может требовать write одобрения.

Каждая allowed_directories запись должна быть абсолютной, непустой и доступной папкой. CLI разрешает симлинки перед сравнением путей, блокирует сетевые пути UNC, если они не являются локальными путями расширенной длины, сравнивает пути без падежа в Windows и сравнивает пути с учетом регистра на других платформах. Если запись не может быть применена, CLI фиксирует предупреждение и пропускает эту запись.

Примеры

Разрешите все подкоманды Git и получите доступ к дополнительной локальной директории:

JSON
{
  "locations": {
    "C:\\src\\my-repo": {
      "tool_approvals": [
        {
          "kind": "commands",
          "commandIdentifiers": ["git:*"]
        }
      ],
      "allowed_directories": ["C:\\src\\shared-docs"]
    }
  }
}

Разрешите выбранные команды, всё ещё спрашивая перед записью файла:

JSON
{
  "locations": {
    "/Users/YOUR-USER/src/my-repo": {
      "tool_approvals": [
        {
          "kind": "commands",
          "commandIdentifiers": [
            "git status",
            "git diff",
            "git log",
            "npm test",
            "npm run build"
          ]
        }
      ]
    }
  }
}

Approve file writes и один MCP-сервер для репозитория:

JSON
{
  "locations": {
    "/home/YOUR-USER/src/my-repo": {
      "tool_approvals": [
        {
          "kind": "write"
        },
        {
          "kind": "mcp",
          "serverName": "github-mcp-server",
          "toolName": null
        }
      ]
    }
  }
}

Одобрить один MCP-инструмент, запись в памяти и доступ к разрешениям расширения:

JSON
{
  "locations": {
    "C:\\src\\my-repo": {
      "tool_approvals": [
        {
          "kind": "mcp",
          "serverName": "github-mcp-server",
          "toolName": "search_code"
        },
        {
          "kind": "memory"
        },
        {
          "kind": "extension-permission-access",
          "extensionName": "my-extension"
        }
      ]
    }
  }
}

session-state/

Содержит данные истории сессий, организованные по идентификатору сессии в подкаталогах. Каждый каталог сессии хранит журнал событий (events.jsonl) и артефакты рабочего пространства (планы, контрольные точки, отслеживаемые файлы). Эти данные позволяют возобновить сессию (--resume или --continue).

Удаление файлов из этой папки удаляет только локальные копии. Если у вас синхронизированы сессии с аккаунтом GitHub , синхронизированные данные хранятся отдельно и не зависят от локального удаления файлов. Вы можете удалить или скрыть синхронизированные сессии из GitHub.com. Дополнительные сведения см. в разделе О интерфейс командной строки GitHub Copilot данных сессии.

command-history-state/

Содержит данные истории команд, используемые для обратного поиска (Ctrl R+) и навигации по истории в интерактивном интерфейсе. Этот каталог управляется автоматически и не подлежит редактированию.

session-store.db

База данных SQLite, используемая CLI для межсессионных данных, таких как индексация контрольных точек и поиск. Этот файл управляется автоматически и не должен редактироваться.

Если вы удалите этот файл, его можно восстановить с помощью команды /chronicle reindex . Реиндексация также синхронизирует данные сессии с аккаунтом.

logs/

Содержит лог-файлы для сессий CLI. Каждая сессия создаёт лог-файл с названием process-{timestamp}-{pid}.log. Эти файлы полезны для отладки.

CLI также может создавать логи, специфичные для расширения, в разделе logs/extensions/.

Это отдельно от ~/.copilot/extensions/, где хранится код расширений, созданный пользователем.

Совет

Чтобы найти файл журнала вашей текущей сессии, зарегистрируйте /session интерактивную сессию. Вывод включает полный путь к файлу журнала, а также другие детали сессии, такие как идентификатор сессии, длительность и рабочий каталог.

installed-plugins/

Содержит файлы для установленных вами плагинов. Плагины, установленные на маркетплейсе, хранятся в .installed-plugins/{marketplace-name}/{plugin-name}/ Напрямую установленные плагины хранятся в .installed-plugins/_direct/ Управляйте плагинами с copilot plugin помощью команд, а не редактировать эту папку напрямую.

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

plugin-data/

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

ide/

Содержит файлы блокировки и состояние для интеграций с IDE (например, при Второй пилот CLI подключении к Visual Studio Code). Этот каталог управляется автоматически.

mcp-oauth-config/

Содержит резервные файлы MCP OAuth, регистрационные и резервные файлы PKCE при недоступном хранилище, поддерживаемом брелоком. Этот каталог управляется автоматически.

mcp-secrets/

Содержит резервное хранилище файлов и индекс секретных заполняющих MCP, когда хранилище с защитой связки ключей недоступно. Этот каталог управляется автоматически.

Изменение расположения каталога конфигурации

Чтобы переопределить местоположение по умолчанию ~/.copilot , установите COPILOT_HOME переменную среды на путь к нужной вам директории.

Bash
export COPILOT_HOME=/path/to/my/copilot-config

Вещи, которые следует учитывать

  • COPILOT_HOME заменяет весь ~/.copilot путь. Значение должно быть полным путём к нужной директории, которую вы хотите использовать для конфигурационных файлов и подкаталогов.

  • Изменение каталога означает, что ваша существующая конфигурация, история сессий, установленные плагины и сохранённые права не будут найдены в новом месте. Скопируйте или переместите содержимое ~/.copilot в новый адрес, если хотите сохранить его.

  • Каталог кэша (используемый для маркетплейс-кэшей, автоматического обновления пакетов и других временных данных) следует платформным конвенциям и не подвергается COPILOT_HOMEвлиянию . Он расположен по адресу:

    • macOS:~/Library/Caches/copilot
    • Linux: $XDG_CACHE_HOME/copilot или ~/.cache/copilot
    • Windows:%LOCALAPPDATA%/copilot

    Чтобы отдельно переопределить каталог кэша, установите COPILOT_CACHE_HOME.

Что можно безопасно удалить

ЭлементБезопасно ли удалить?Эффект
agents/, , skills/``hooks/Не рекомендуетсяВы потеряете свои личные настройки. Сначала отойди.
config.jsonС осторожностьюСбрасывает состояние приложения, включая аутентификацию. Вам потребуется повторная аутентификацию, и CLI повторно обнаружит внутреннее состояние при следующем запуске.
copilot-instructions.md, instructions/Не рекомендуетсяВы потеряете свои индивидуальные инструкции. Сначала отойди.
extensions/Не рекомендуетсяВы потеряете свои личные продления. Сначала отойди.
installed-plugins/Не рекомендуетсяИспользуйте copilot plugin uninstall вместо этого, чтобы метаданные плагина config.json оставались точными.
logs/ДаФайлы журналов создаются заново каждую сессию. Удаление их не имеет функционального эффекта.
lsp-config.jsonНе рекомендуетсяВы потеряете определения сервера LSP на уровне пользователя. Сначала отойди.
mcp-config.jsonНе рекомендуетсяВы потеряете определения сервера MCP на уровне пользователя. Сначала отойди.
mcp-oauth-config/С осторожностьюПроходит через резервный штат MCP OAuu. Возможно, потребуется повторная аутентификация MCP-серверов.
mcp-secrets/С осторожностьюОчищает местное секретное резервное состояние MCP и карты. Серверы MCP с секретной поддержкой могут потребовать перенастройки.
permissions-config.jsonС осторожностьюСбрасывает все сохранённые права. CLI снова подскаже вам одобрение инструментов и каталогов.
plugin-data/ДаПостоянные данные плагина создаются по мере необходимости.
session-state/С осторожностьюУдаление удаляет историю сессий. Вы больше не сможете возобновить прошлые занятия.
command-history-state/С осторожностьюУдаление удаляет историю команд. Вы больше не сможете искать предыдущие команды с помощью Ctrl+R.
session-store.dbС осторожностьюУдаление удаляет данные между сессиями. Файл воссоздаётся автоматически.
settings.jsonС осторожностьюВсе пользовательские настройки сбрасываются до стандартных настроек. Вам нужно будет перенастроить настройки.

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

Настройки применяются в следующем порядке (позже переопределяются раньше):

  1. Встроенные значения по умолчанию
  2. Управляемые настройки Mobile Управление устройствами (MDM)
  3. Пользовательские настройки (~/.copilot/settings.json)
  4. Настройки репозитория (.github/copilot/settings.json)
  5. Локальные настройки (.github/copilot/settings.local.json)
  6. Переменные среды
  7. Флаги командной строки

Управляемые настройки MDM загружаются при запуске и объединяются с пользовательскими настройками как базовая база политики. Для большинства клавиш пользовательские настройки могут переопределить эту базовую линию. Для permissions.disableBypassPermissionsMode, MDM-значение "disable" всегда выигрывает. Для получения дополнительной информации см. управляемые настройки MDM.

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

CLI также читает и для общего кросс-инструментального подмножества настроек репозитория (таких .claude/settings.jsonкак , .claude/settings.local.json, companyAnnouncements, disableAllHooks, и enabledPlugins).extraKnownMarketplaces``hooks

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

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

КлючТипDefaultОписание
allowedUrlsstring[][]URL или домены разрешены без подсказки. Поддерживает точные URL-адреса, шаблоны доменов и поддомены с уайлдкардом (например, "*.github.com").
askUserbooleantrueПозвольте агенту задавать уточняющие вопросы. Настроен false на полностью автономную работу. Также можно установить с --no-ask-user.
autoUpdatebooleantrueАвтоматически скачивайте обновления CLI.
autoUpdatesChannel
"stable"
|
"prerelease"
"stable"Канал обновлений. Настроен на "prerelease" получение обновлений до релиза.
banner
"always"
|
"once"
|
"never"
"once"Частота анимированного отображения баннеров.
bashEnvbooleanfalseВключите BASH_ENV поддержку bash-shells. Также можно задать с --bash-env помощью или --no-bash-env.
beepbooleantrueВоспроизведите звуковой сигнал, когда требуется внимание.
beepOnSchedulebooleantrueВоспроизведите звуковой сигнал, когда запланированный /every или /after забег заканчивается.
builtInAgents.rubberDuckbooleantrueВключить субагент «резиновая утка», который даёт противоположную обратную связь по планам агента.
builtInAgents.rubberDuckAutoInvokebooleanfalseВключите проактивное подсказывание для автоматического вызова резиновой утки. Настроен на true дополнительные подталкивания в виде резиновой утки во время поворотов агента.
colorMode
"default"
|
"github"
|
"dim"
|
"high-contrast"
|
"colorblind"
"github"Устаревший псевдоним для theme. Предпочитать theme.
commandHistoryMaxSizenumber50Максимальное количество последних команд, сохраненных для журнала ввода и обратного поиска. Должно быть целым числом между 1 и 1000.
compactPastebooleantrueСвернуть большие пасты (более 10 строк) в компактные токены.
companyAnnouncementsstring[][]Пользовательские сообщения отображаются случайным образом при запуске. Одно сообщение выбирается случайным образом каждый раз при запуске CLI. Полезно для командных объявлений или напоминаний.
continueOnAutoModebooleanfalseАвтоматически переключается в автоматический режим при ограничении скорости. Когда trueошибки допустимого лимита скорости вызывают автоматическое переключение в авторежим и повторную попытку. Это не относится к глобальным тарифным лимитам или провайдерам BYOK.
copyOnSelectboolean
true (macOS), false (другое)Автоматически скопируйте выбранный мышью текст в системный буфер обмена.
customAgents.defaultLocalOnlybooleanfalseИспользуйте только локальные кастомные агенты (без удалённых агентов организации или корпоративных агентов).
deniedUrlsstring[][]URL или домены, которые всегда отклоняются. Правила отказа имеют приоритет над правилами допуска.
disableAllHooksbooleanfalseОтключите все хуки (как на уровне репозитория, так и на уровне пользователя).
disabledMcpServersstring[][]Имена серверов MCP нужно отключить. Указанные серверы настроены, но не запущены.
disabledSkillsstring[][]Имена навыков нужно отключить. Перечисленные навыки открываются, но не загружаются.
dynamicRetrieval{ skills?: boolean }сброситьУправление по категориям динамического поиска инструкций на основе вложения. Настройте skills на false отключение поиска навыков.
effortLevelstring"medium"Уровень усилий для рассуждения для расширенного мышления: "low", "medium", "high", или "xhigh". Более высокие уровни требуют больше вычислений.
enabledMcpServersstring[][]Включите встроенные серверы MCP, отключенные по умолчанию.
enabledPluginsRecord<string, boolean>{}Автоматическая установка декларативного плагина. Клавиши — это спецификации плагинов; значения — true (включено) или false (отключено).
experimentalbooleanfalseВключить экспериментальные функции. Также можно включить с --experimental помощью командной строки или /experimental команды слэш.
extraKnownMarketplacesRecord<string, {...}>{}Дополнительные маркетплейсы плагинов. Каждый ключ является названием маркетплейса; значение указывает источник ("directory", "git", или "github").
footerobjectУправляет, какие предметы появляются в строке статуса. Подключения включают showModelEffort, showDirectory, showBranch, showContextWindow, showQuota, showAgent, showAiUsed``showCodeChanges``showUsername``showSandbox``showYolo, и showCustom (все ).boolean Управляется командой /statusline слэша.
hooksobjectВстроенные определения хуков на уровне пользователя, с ключом по названию события. Использует ту же схему, что и .github/hooks/*.json файлы. См . раздел AUTOTITLE.
ide.autoConnectbooleantrueАвтоматически подключайтесь к рабочему пространству IDE при запуске. Когда false, вы всё ещё можете подключиться вручную с помощью команды /ide .
ide.openDiffOnEditbooleantrueОткрывайте дифференциации редактирования файлов в подключённом IDE для утверждения. Когда false, одобрения редактирования файлов отображаются только в терминале.
includeCoAuthoredBybooleantrueДобавьте Co-authored-by трейлер к git-коммитам, сделанным агентом.
keepAlive
"on"
|
"off"
|
"busy"
"off"Режим keep-alive применяется при запуске CLI.
"on" Всегда препятствует системе спящей, "busy" не даёт спящему только во время работы агента и "off" отключает поддержание жизни. Также можно настраивать с /keep-alive помощью команды слэша.
logLevel
"none"
|
"error"
|
"warning"
|
"info"
|
"debug"
|
"all"
|
"default"
"default"Веду многословность.
mergeStrategy
"rebase"
|
"merge"
Стратегия разрешения конфликтов для /pr fix conflicts. При установке в "rebase", конфликты разрешаются путем перебазировки на базовую ветвь. При установке в "merge", базовая ветвь объединяется с ветвью признаков. Если не настроено, отображается диалог picker.
modelstringизменяетсяМодель искусственного интеллекта для использования. Настройте "auto" так, чтобы автоматически Copilot выбирать лучшую доступную модель. Управляется командой /model слэша.
mousebooleantrueВключите поддержку мыши. Также можно задать с --mouse помощью или --no-mouse.
permissions.disableBypassPermissionsModestringПри установке на "disable", все флаги разрешения (--allow-all-tools, --allow-all-paths, --allow-all-urls``--allow-all``--yolo, , ) подавляются при запуске и не могут быть использованы для предоставления повышенных разрешений.
pinnedPromptsbooleantrueЗакрепите запрос пользователя текущего раздела непосредственно под верхней панелью при прокрутке временной шкалы, поэтому он остается ясным, к каким запросам относится видимый результат. Только пользовательский интерфейс CLI не влияет на запросы, отправленные в модель.
powershellFlagsstring[]["-NoProfile", "-NoLogo"]Флаги передавались в PowerShell при запуске. В Windows CLI предпочитает PowerShell 7+ (pwsh) и возвращается к Windows PowerShell (powershell.exe), когда pwsh недоступен. Только для Windows.
proxyKerberosServicePrincipalstringсброситьИмя принципа сервиса (SPN) для аутентификации прокси Kerberos/Negotiate, переопределяя производное HTTP/<proxy-host>.
proxyUrlstringсброситьПрокси-URL для HTTP(S)-запросов (например, http://proxy.corp.example:3128). Переопределяется HTTP_PROXY переменными окружающей среды или HTTPS_PROXY (любой корпус).
remote
"on"
|
"off"
"on"Контролирует синхронизацию сессий и удалённый доступ. Настройте так, "off" чтобы данные сессии оставались локальными и отключили удалённое управление. Также можно задать с --remote помощью или --no-remote.
renderHexColorsbooleantrueОтображение шестизначных шестнадцатеричных цветовых кодов, написанных как встроенный код (например, `#FF0000`) в виде цветовых образцов.
renderMarkdownbooleantrueRender Markdown на выходе терминала.
remoteExportbooleantrueЭкспортируйте сессии удалённо, когда доступна синхронизация сессий. По false умолчанию установлен отказ от удалённого экспорта. Настройка remoteSessions , установленная на true, или флаг --remote , всё равно включает экспорт и управление вне зависимости от этой настройки.
respectGitignorebooleantrueИсключите gitignored файлы из выбора @ упоминаний файлов. Когда false, picker включает файлы, обычно исключаемые ..gitignore
sandbox.allowBypassbooleantrueРазрешите изолированным командам запрашивать обход для определенных операций (создает запрос на разрешение), чтобы такие инструменты, как grep и glob работа, когда песочница в противном случае блокировала их. Установите для false отказа.
sandbox.enabledbooleanfalseОграничить команды оболочки, серверы MCP/LSP и встроенные файлы или веб-инструменты в изолированной среде с ограниченным доступом к файловой системе и сети. Включите его из диалогового /sandbox окна или с помощью /sandbox enable.
sandbox.gitAuthbooleantrueВставьте учетные данные Git в песочницу, чтобы команды, выполняемые внутри него, могли пройти проверку подлинности с помощью Git. Установите для false отказа.
sandbox.ghAuthbooleantrueВставьте GitHub CLI () учетные данные в песочницу, чтобы команды, выполняемые внутри него, могли пройти проверку подлинности с помощью GitHub CLI.gh Установите для false отказа.
sandbox.userPolicy.network.allowLocalNetworkbooleantrueРазрешить изолированным командам доступ к адресам локальной сети (например, локальным серверам разработки). Установите для false отказа.
sandbox.userPolicy.seatbelt.keychainAccessbooleanfalseтолько macOS. Предоставьте изолированным командам доступ к цепочке ключей системы. Можно также переключать из диалогового /sandbox окна.
screenReaderbooleanfalseВключите оптимизацию экранных читателей.
scrollbarbooleantrueПокажите полосу прокрутки в режиме прокрутки. Настройте на false скрытие и используйте всю ширину клеммы.
shellShortcutbooleanfalseПозвольте пользователю $ открыть интерактивную оболочку, корневую в рабочем каталоге сеанса (активируется только для локального, доверенного, простоя сеанса в реальном TTY). Только для пользователей или управляемых областей— не переопределяемый репозиторий.
showTimestampsbooleantrueОтображение меток HH:mm времени рядом с пользовательскими сообщениями на временной шкале.
showTipsOnStartupbooleantrueПоказывайте случайную подсказку команд при запуске CLI.
skillDirectoriesstring[][]Дополнительные каталоги для поиска определений пользовательских навыков (в дополнение к ~/.copilot/skills/).
statusLineobjectПользовательский отбор строки статуса.
type: должно быть "command".
command: путь к исполняемому скрипту, который принимает session JSON на stdin и печатает статус-контент в stdout.
padding: необязательное количество пробелов с левым заполнением.
stayInAutopilotbooleanfalseОставаться в режиме автопилота после завершения каждой задачи. При включении следующего запроса после завершения задачи также обрабатывается в режиме autopilot. Дополнительные сведения см. в разделе Позволяя GitHub Copilot CLI работать автономно.
storeTokenPlaintextbooleanfalseРазрешить хранить токены аутентификации в открытом тексте, config.json когда системный ключ недоступен.
streambooleantrueВключите потоковые ответы.
streamerModebooleanfalseСкрытие имен моделей предварительного просмотра, сведений о квоте, меток времени запроса и уведомления об обновлении. Полезно при демонстрации Второй пилот CLI или совместном использовании экрана.
subagents.agentsobject{}Конфигурация модели для каждого агента, с ключом по имени агента. Каждое значение является объектом с необязательными model полями (строка), effortLevel (строка) и contextTier ("default", "long_context", или "inherit") поля. Установите любое поле так, "inherit" чтобы использовать значение родительской сессии во время отправки. Используйте /subagents команду slash для интерактивной настройки этих настроек.
subagents.disabledSubagentsstring[][]Имена агентов, чтобы не быть отправленными. Только rubber-duck агент нельзя отключить через эту настановку. Все остальные встроенные агенты — включая explore, task, code-review, general-purpose``research, , и security-review— могут быть отключены.
subagents.maxConcurrencynumberна основе планаМаксимальное число параллельных подагентов для этого сеанса. Учитывается только для пользователей выставления счетов на основе использования; игнорируется для всех остальных планов. Обрезанный в 32. См . раздел AUTOTITLE.
subagents.maxDepthnumber6Максимальная глубина вложения субагентов. Учитывается только для пользователей выставления счетов на основе использования; игнорируется для всех остальных планов. Обрезанный в 256. См . раздел AUTOTITLE.
tabs.enabledbooleantrueПокажите панель вкладок главной комнаты. Настроил false на то, чтобы полностью это скрыть.
tabs.hidestring[][]Идентификаторы вкладок для скрытия. Принятые значения: "copilot", "agents", "issues", "pull-requests"``"gists" , (совпадение без падежа).
tabs.sortstring[][]Порядок отображения вкладок. Вкладки, не указанные, сохраняют свой относительный порядок по умолчанию после перечисленных вкладок. Неизвестные идентификаторы игнорируются.
terminalProgressbooleantrueEmit OSC 9; 4 индикатора прогресса терминала, пока агент работает. Поддерживаемые терминалы включают Терминал Windows, iTerm2, Ghostty и ConEmu.
theme
"default"
|
"github"
|
"dim"
|
"high-contrast"
|
"colorblind"
"github"Цветовая палитра для выходных данных терминала. Управляется командами /settings и /theme слэш.
colorMode является устаревшим псевдонимом для этого параметра.
toolSearchbooleanЗависящие от модели и признаковПоиск инструментов управления (отложенная загрузка инструментов). Настройте toolSearch: false на отказ от поиска по инструментам.
updateTerminalTitlebooleantrueПокажите текущее намерение во вкладке терминала или в заголовке окна.

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

Настройки репозитория применимы ко всем, кто работает в репозитории. Они привержены хранилищу и делятся ими с сотрудниками.

Примечание.

Ключи, связанные с плагинами, в конфигурационном файле репозитория (enabledPlugins и ) также считываются не только extraKnownMarketplacesCopilot облачный агент.Второй пилот CLI Это позволяет активировать одни и те же плагины для обоих клиентов из одного файла. Для получения дополнительной информации о плагинах см. О GitHub Copilot плагинах.

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

КлючТипПоведение слиянияОписание
companyAnnouncementsstring[]Замена — репозиторий имеет приоритетСообщения появляются случайно при запуске.
contextTier
"default"
|
"long_context"
Замена — репозиторий имеет приоритетЗакрепление уровня контекста по умолчанию.
deniedUrlsstring[]Объединение— репозиторий может добавлять записи, никогда не удалятьURL-адреса или домены заблокированы.
disableAllHooksbooleanРепозиторий имеет приоритетОтключите все крючки.
disabledMcpServersstring[]Объединение— репозиторий может добавлять записи, никогда не удалятьСерверы MCP настроены, но не запущены.
disabledSkillsstring[]Объединение— репозиторий может добавлять записи, никогда не удалятьНавыки обнаружены, но не загружены.
effortLevelstringЗамена — репозиторий имеет приоритетЗакрепление усилий по умолчанию по поводу причин.
enabledPluginsRecord<string, boolean>Merged — репозиторий переопределяет пользователя для того же ключаАвтоматическая установка декларативного плагина.
extraKnownMarketplacesRecord<string, {...}>Merged — репозиторий переопределяет пользователя для того же ключаМаркетплейсы плагинов, доступные в этом репозитории.
hooksobjectMerged — репозиторий переопределяет пользователя для того же ключаОпределения крючков, ограниченные этим репозиторием. См . раздел AUTOTITLE.
includeCoAuthoredBybooleanЗамена — репозиторий имеет приоритет
Co-authored-by Добавьте трейлер для фиксаций.
mergeStrategy
"rebase"
|
"merge"
Замена — репозиторий имеет приоритетСтратегия разрешения конфликтов для /pr fix conflicts.
modelstringЗамена — репозиторий имеет приоритетЗакрепление модели по умолчанию для этого репозитория.
respectGitignorebooleanТолько для ужесточения— репозиторий может включать, никогда не отключатьИсключите gitignored файлы из выбора @ упоминаний файлов.

model, effortLevelи contextTier переопределения применяются только в том случае, если рабочий каталог является доверенным.

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

Список разрешений моделей уровня репозитория (.github/allowed_models.txt)

Ограничение того, какие встроенные модели репозитория могут использовать с списком .github/allowed_models.txtразрешений обычного текста, разрешенным из корневого каталога текущего рабочего каталога (или рабочего каталога за пределами репозитория).

Каждая строка — это шаблон глоба, соответствующий идентификаторам модели, или fallback: директива, именующая модель, используемую, если настроенная или запрошенная модель не разрешена:

# .github/allowed_models.txt
fallback: gpt-5.2
gpt-5.2
gpt-5.4
claude-sonnet-*
ПравилоОписание
*Разрешить все модели (по умолчанию, если файл отсутствует).
MODEL-IDРазрешить точный идентификатор модели.
GLOB-PATTERNРазрешить идентификаторы модели, соответствующие глобу (например, claude-sonnet-*).
fallback: MODEL-IDТребуется ровно один раз. Модель используется, если активная модель Copilot не разрешена.
#Строка комментариев.

Негабаритные шаблоны () не поддерживаются, резервная модель должна быть точным идентификатором (!patternа не глобом), а резервная модель должна соответствовать одной из настроенных глобов. Второй пилот CLI Повторно оценивает политику /cd и отклоняет недопустимый файл с ошибкой перед выполнением.

Список разрешений управляет только Copilotвстроенными моделями. Не удается отфильтровать пользовательские модели, добавленные с помощью метода "Ключи API" (BYOK). Модели BYOK остаются в списке и выбираются независимо от настроенных шаблонов, и fallback: директива никогда не применяется к ним. Дополнительные сведения см. в разделе [AUTOTITLE и Включение пользовательских моделей для GitHub Copilot в организации](/copilot/how-tos/administer-copilot/manage-for-organization/enable-custom-models).

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

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

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

Управляемые настройки MDM

ИТ-администраторы могут запускать базовую политику с помощью управляемых настроек Mobile Управление устройствами (MDM) вместо необходимости конфигурации для каждого пользователя. Эти настройки применяют устройства по умолчанию для поддерживаемых клавиш и загружаются до пользовательских настроек.

Второй пилот CLI также загружает параметры, управляемые сервером при запуске, в дополнение к MDM. Параметры, управляемые устройством (MDM) и управляемые сервером, разрешаются на один ключ: значение MDM выигрывает для всех заданных ключей, а значение сервера заполняется ключами MDM не задано. Это позволяет организации задать определенную политику с помощью MDM (например, permissions), получая другие управляемые значения по умолчанию (например, model) с сервера.

Длительные сеансы повторно извлекает и повторно применяет управляемые параметры почасово, поэтому изменения политики, например, организация, включающая permissions.disableBypassPermissionsMode, вступают в силу без перезапуска сеанса.

Источники управляемых настроек MDM

Второй пилот CLI читает управляемые настройки из специализированных для платформы MDM или файловых локаций.

PlatformТип источникаLocation
macOSPlist MDMcom.github.copilot
macOSФайл/Library/Application Support/GitHubCopilot/managed-settings.json
WindowsРеестр MDMHKLM\SOFTWARE\Policies\GitHubCopilot
WindowsФайл%ProgramFiles%\GitHubCopilot\managed-settings.json
LinuxФайл/etc/github-copilot/managed-settings.json

Примечание.

В системах Второй пилот CLI POSIX отклоняет управляемые настройки на основе файлов, которые являются символическими ссылками, не принадлежащими root, или записываемыми по всему миру.

Формат файла

Пишите управляемые настройки на основе файлов в формате JSON.

{
    "model": "auto",
    "permissions": {
        "disableBypassPermissionsMode": "disable"
    }
}

Примечание.

model — это ключ верхнего уровня. Старые конфигурации, вложенные в нее по-прежнему permissions.model работают, — среда выполнения возвращается в это расположение, когда ключ верхнего уровня model отсутствует, но записывает новые конфигурации на model верхнем уровне.

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

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

КлючОписание
allowedMcpServersСписок разрешенных пользователей серверов MCP может загружаться, сопоставляется serverUrl``serverCommand``serverNameили . Доверенные сторонние серверы (например, встроенный GitHub сервер MCP) всегда освобождаются. Если этот ключ не задан, все серверы, не используемые по умолчанию; Пустой массив отрицает все из них. См. список разрешений и запретов управляемого сервера MCP.
deniedMcpServersСписок запретов серверов MCP, которые никогда не должны загружаться, совпадают с тем же способом, что allowedMcpServersи серверы MCP. Соответствующий сервер, не используемый по умолчанию, блокируется независимо от списка разрешений. Запрет всегда выигрывает. См. список разрешений и запретов управляемого сервера MCP.
enabledPluginsВключите или отключите определённые плагины
extraKnownMarketplacesДобавьте доверенные маркетплейсы плагинов
modelУстановите модель по умолчанию для всех пользователей (переопределенную флагом --model или моделью возобновления сессии)
permissionsУстановка управляемых разрешений, включая disableBypassPermissionsMode
remoteControlУправление тем, можно ли управлять сеансами на этом устройстве с других устройств.
mode is "enabled", "disabled"or "requireSSO" (требуется githubDotComOrganizations , если задано).
shellShortcutПринудительное включение или принудительное отключение ярлыка интерактивной $ оболочки для всех пользователей. Управляемое значение всегда переопределяет собственный shellShortcut параметр пользователя.
strictKnownMarketplacesОграничьте плагины известными маркетплейсами
telemetryОтправка базовой конфигурации экспорта OpenTelemetry: enabled, endpoint, protocol, headers, resourceAttributes, captureContent``lockCaptureContentи serviceName. См . раздел AUTOTITLE.

Примечание.

Если remoteControl.mode есть "requireSSO", перечислить разрешенные организации в remoteControl.githubDotComOrganizations. Клиент должен быть авторизованным единым входом по крайней мере для одной из перечисленных GitHub.com организаций— он больше не должен быть авторизован для всех из них.

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

Администраторы могут управлять серверами MCP непосредственно с помощью управляемых параметров MDM, независимо от списка разрешений MCP предприятия.

Задайте allowedMcpServers и(или) deniedMcpServers в источнике управляемых параметров:

{
    "allowedMcpServers": [
        { "serverUrl": "https://mcp.example.com/*" },
        { "serverCommand": ["npx", "-y", "@example/mcp-server"] }
    ],
    "deniedMcpServers": [
        { "serverName": "untrusted-server" }
    ]
}

Каждая запись идентифицирует сервер точно одним из следующих совпадений.

СовпаденийСовпаденияNotes
serverUrlУдаленный сервер (HTTP/SSE) по URL-адресуПоддерживает * подстановочные знаки; схему и сопоставление узла без учета регистра, регистр пути с учетом регистра.
${VAR} ссылки развертываются перед сопоставлением.
serverCommandСервер stdio по точной команде и аргументам в порядке
${VAR} ссылки развертываются перед сопоставлением.
serverNameСервер по назначенной меткиЗаписи списка разрешений ограничены [A-Za-z0-9_-]+ (без подстановочных знаков); записи списка запретов принимают любую непустую строку.

Правила:

  • Доверенные сторонние серверы (например, встроенный GitHub сервер MCP) всегда освобождаются от обоих списков.
  • Unset allowedMcpServers разрешает все серверы, отличные от по умолчанию; Пустой массив блокирует все из них (запретить все).
  • Отмена набора или пустого deniedMcpServers ничего не блокирует.
  • Запрет всегда выигрывает— сопоставление deniedMcpServers сервера блокируется, даже если он также соответствует allowedMcpServers.
  • Для удаленных серверов совпадение должно поступать из serverUrl записи; serverName только при отсутствии serverUrl записей. Для серверов stdio совпадение должно поступать из serverCommand записи; serverName только при отсутствии serverCommand записей.

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