# Ссылка на плагин GitHub Copilot CLI

Найдите команды и детали конфигурации для плагинов CLI.

> \[!NOTE]
> Помощь по использованию плагинов можно найти `copilot plugin [SUBCOMMAND] --help` в терминале.

Для обзора того, что такое плагины и как они работают между Copilot клиентами, см. [О GitHub Copilot плагинах](/ru/copilot/concepts/agents/about-plugins).

## Команды CLI

Вы можете использовать следующие команды в терминале для управления плагинами для Copilot CLI.
`copilot plugins` (plural) — это устаревший псевдоним для обоих `copilot plugin`команд.

| Command                                                          | Описание                                                                                                                                                                                                                         |
| ---------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `copilot plugin install SPECIFICATION` (псевдоним `add`)         | Установите плагин. См. [спецификацию плагина для `install` команды](#plugin-specification-for-install-command) ниже.                                                                                                             |
| `copilot plugin uninstall NAME` (псевдонимы `remove`, `rm`)      | Удалить плагин                                                                                                                                                                                                                   |
| `copilot plugin list`                                            | Список установленных плагинов                                                                                                                                                                                                    |
| `copilot plugin update NAME`                                     | Обновите именованный плагин. Используйте `--all` обновление всех установленных плагинов сразу.                                                                                                                                   |
| `copilot plugin enable NAME`                                     | Включите ранее отключенный подключаемый модуль. Изменение сохраняется в конфигурации и применяется к будущим сеансам. Это работает для установок Marketplace и прямых установок (из `owner/repo`URL-адреса или локального пути). |
| `copilot plugin disable NAME`                                    | Отключите подключаемый модуль, не удаляя его. Подключение `--plugin-dir` остается только для чтения, так как оно не имеет постоянной активации для изменения.                                                                    |
| `copilot plugin marketplace add SPECIFICATION`                   | Регистрация Marketplace. Собственное имя Marketplace из манифеста `marketplace.json` становится его ключом регистрации. Нет возможности задать пользовательское локальное имя.                                                   |
| `copilot plugin marketplace list`                                | Список зарегистрированных торговых площадок                                                                                                                                                                                      |
| `copilot plugin marketplace browse NAME`                         | Просмотр плагинов маркетплейса                                                                                                                                                                                                   |
| `copilot plugin marketplace update [NAME]` (псевдоним `refresh`) | Повторное получение каталога подключаемых модулей Marketplace. Не следует `NAME` обновлять каталоги каждой зарегистрированной платформы.                                                                                         |
| `copilot plugin marketplace remove NAME`                         | Отмена регистрации marketplace. Отклонено, если подключаемые модули из Marketplace по-прежнему установлены; передайте `--force` эти подключаемые модули, чтобы удалить эти подключаемые модули.                                  |

Прежде чем `copilot plugin` был разделен на отдельные команды по ресурсам, `copilot plugins` также проверил и переключил серверы MCP, навыки, инструкции и языковые серверы с помощью `--kind`, `--scope``--mcp`и `--skill` флагов. Эти перекрестные флаги были удалены. Используйте вместо этого выделенные [`copilot mcp`](/ru/copilot/reference/copilot-cli-reference/cli-command-reference#copilot-mcp-subcommand)команды, [`copilot skill`](/ru/copilot/reference/copilot-cli-reference/cli-command-reference#managing-skills-non-interactively)[`copilot instruction`](/ru/copilot/reference/copilot-cli-reference/cli-command-reference#using-copilot-instruction)а [`copilot lsp`](/ru/copilot/reference/copilot-cli-reference/cli-command-reference#using-copilot-lsp) также команды.
`copilot plugin list --json` теперь выдает плоский массив подключаемых модулей вместо предыдущего `{ plugins, errors }` объекта.

> \[!NOTE]
> Подключаемый модуль или Marketplace, закрепленный организацией или управляемой политикой MDM (`enabledPlugins`,), `extraKnownMarketplaces`не может быть повторно включен, отключен или переназначирован локально — управляемое значение выигрывает для этой записи. Панель `/plugin` мониторинга помечает эти строки значком `Managed` и отказывается от конфликтующего переключателя. См [. раздел AUTOTITLE](/ru/copilot/reference/copilot-cli-reference/cli-config-dir-reference#mdm-managed-settings).
>
> Подключаемый модуль, активация которого в настоящее время определяется наложением текущего репозитория `enabledPlugins` , отклоняет `copilot plugin enable`/`disable` вместо автоматического сохранения глобального значения, которое не будет влиять на этот репозиторий. Ошибка называет файл параметров, который фактически управляет подключаемым модулем. См [. раздел AUTOTITLE](/ru/copilot/reference/copilot-cli-reference/cli-config-dir-reference#repository-settings-githubcopilotsettingsjson).

### Спецификация плагина для `install` команды

| Формат                        | Пример                       | Описание                                  |
| ----------------------------- | ---------------------------- | ----------------------------------------- |
| Маркетплейс                   | `plugin@marketplace`         | Плагин с зарегистрированного маркетплейса |
| GitHub                        | `OWNER/REPO`                 | Корень GitHub репозитория                 |
| GitHub  вложенный каталог     | `OWNER/REPO:PATH/TO/PLUGIN`  | Подкаталог в репозитории                  |
| URL-адрес Git                 | `https://github.com/o/r.git` | Любой URL в Git                           |
| Местный маршрут               |                              |                                           |
| `./my-plugin` или `/abs/path` | Местный справочник           |                                           |

### `copilot plugin list` варианты

| Опция                    | Описание                                                                                                  |                                           |
| ------------------------ | --------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
| `--json`                 | Выведите неструктурированный массив JSON подключаемых модулей вместо текста.                              |                                           |
| `--config-dir=DIRECTORY` | Путь к каталогу конфигурации. Этот параметр является устаревшим. Вместо этого используйте `COPILOT_HOME`. | <!-- markdownlint-disable-line GHD046 --> |

Каждая `--json` строка имеет фигуру `{ name, marketplace?, version?, enabled, source, installedFrom? }`.

### `copilot plugin enable`/`disable` параметры

| Опция                    | Описание                                                                                                  |                                           |
| ------------------------ | --------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
| `--config-dir=DIRECTORY` | Путь к каталогу конфигурации. Этот параметр является устаревшим. Вместо этого используйте `COPILOT_HOME`. | <!-- markdownlint-disable-line GHD046 --> |

### `copilot plugin install` варианты

Чтобы установить навык вместо подключаемого модуля, используйте [`copilot skill add`](/ru/copilot/reference/copilot-cli-reference/cli-command-reference#managing-skills-non-interactively) вместо него — это не установка подключаемого модуля и не проходит через Marketplace.

| Опция                    | Описание                                                                                                  |                                           |
| ------------------------ | --------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
| `--config-dir=DIRECTORY` | Путь к каталогу конфигурации. Этот параметр является устаревшим. Вместо этого используйте `COPILOT_HOME`. | <!-- markdownlint-disable-line GHD046 --> |

Серверы MCP устанавливаются из настроенного политикой реестра, для которого требуется проверка подлинности и интерактивная запись секрета. Используйте представление `/mcp` панели мониторинга в **Интернете** или [`copilot mcp add`](/ru/copilot/reference/copilot-cli-reference/cli-command-reference#copilot-mcp-subcommand) команду, чтобы добавить серверы MCP вместо `copilot plugin install`него.

### `copilot plugin update` варианты

| Опция                    | Описание                                                                                                  |                                           |
| ------------------------ | --------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
| `--all`                  | Обновление каждого установленного подключаемого модуля                                                    |                                           |
| `--config-dir=DIRECTORY` | Путь к каталогу конфигурации. Этот параметр является устаревшим. Вместо этого используйте `COPILOT_HOME`. | <!-- markdownlint-disable-line GHD046 --> |

> \[!NOTE]
> Подключаемые модули с исходным путем в локальном (источнике каталога) marketplace загружаются в реальном каталоге. Изменение одного из них вступает в силу `/restart` или в новом сеансе без `copilot plugin update` необходимости.

Сторонние подключаемые модули , установленные из встроенной `awesome-copilot` marketplace, автоматически обновляются в начале каждого сеанса в доверенном рабочем каталоге. Отключите это поведение с параметром `autoUpdate` (задано `false`значением) или переменной `COPILOT_AUTO_UPDATE=false` среды. Автоматическое обновление также пропускается по умолчанию в CI. См [. раздел AUTOTITLE](/ru/copilot/reference/copilot-cli-reference/cli-config-dir-reference#configuration-file-settings).

> \[!NOTE]
> `copilot-plugins` ранее поставляется в качестве второй встроенной платформы по умолчанию вместе с `awesome-copilot`. Теперь это обычный, не по умолчанию Marketplace (`github/copilot-plugins`), с которым вы регистрируетесь самостоятельно `copilot plugin marketplace add github/copilot-plugins`. Если вы установили подключаемые модули из него перед этим изменением, однократная миграция добавляет его в собственный `extraKnownMarketplaces``autoUpdate: true` с тем, чтобы эти подключаемые модули продолжали обновляться. Новая установка, которая никогда не использовалась `copilot-plugins` , должна зарегистрировать ее вручную перед установкой подключаемых модулей из него.

Вы добавили marketplace самостоятельно, чтобы выбрать одно и то же автоматическое обновление сеанса, задав `autoUpdate: true` запись в параметрах `extraKnownMarketplaces` пользователя. Эта возможность применяется только к интерактивным сеансам, `-p` а сеансы SDK и сервера не обновляются автоматически. Он учитывается из собственных параметров пользователя или управляемых параметров (MDM/server), но параметр уровня `autoUpdate` репозитория принимается и игнорируется— он не может включить или перенаправить автоматическое обновление для Marketplace. При столкновении с тем же именем встроенная первая сторона Marketplace выигрывает, а затем управляемую запись (которая заменяет всю ту же именованную запись пользователя, поэтому управляемая запись без `"autoUpdate": true` удаления согласия пользователя), а затем собственная запись пользователя. См. [параметры репозитория](/ru/copilot/reference/copilot-cli-reference/cli-config-dir-reference#repository-settings-githubcopilotsettingsjson).

В интерактивном режиме `/plugin` помечает установленный подключаемый модуль или Marketplace, когда более новая версия доступна выше, и предлагает действие **обновления** с панели мониторинга, чтобы извлечь ее.

### `copilot plugin marketplace` (псевдоним `marketplaces`) вложенные комманды

Встроенная `awesome-copilot` платформа Marketplace по умолчанию поставляется со средой выполнения и не может быть удалена.

| Subcommand                            | Описание                                                                                    |
| ------------------------------------- | ------------------------------------------------------------------------------------------- |
| `list [--json]`                       | Вывод списка всех зарегистрированных marketplace, включая встроенную платформу по умолчанию |
| `add SOURCE`                          | Добавление Marketplace (`owner/repo`, `owner/repo#ref`URL-адреса или локального пути)       |
| `remove NAME [--force]`               | Удаление Marketplace; `--force` также удаляет подключаемые модули, полученные из него       |
| `browse NAME [--json]`                | Вывод списка подключаемых модулей, предлагаемых каталогом Marketplace                       |
| `update [NAME]` (псевдоним `refresh`) | Обновите каталог подключаемых модулей для одного marketplace или все, если `NAME` опущен    |

В интерактивном режиме запустите `/plugin marketplace update [NAME]` (псевдоним`/plugin marketplace refresh`) или нажмите <kbd>клавишу R</kbd> в представлении `/plugin` Панели мониторинга **Marketplace**, чтобы обновить каждый зарегистрированный каталог Marketplace.

## `plugin.json`

Все подключаемые модули состоят из каталога подключаемого модуля, содержащего файл манифеста с именем `plugin.json`. Для подключаемых модулей агента требуется манифест в корневом каталоге подключаемого модуля. Корневой каталог `plugin.json` , предназначенный для подключаемых модулей агента, имеет приоритет над `.plugin/plugin.json``.claude-plugin/plugin.json` спецификацией §5.1. Устаревшие подключаемые модули поддерживают альтернативные расположения, перечисленные в [расположениях файлов](#file-locations). См [. раздел AUTOTITLE](/ru/copilot/how-tos/copilot-cli/customize-copilot/plugins-creating).

Copilot CLI поддерживает как устаревший манифест подключаемого модуля, так и манифест подключаемых модулей агента.
Copilot CLIраспознает канонические `$schema` значения для подключаемых модулей агента (Open Plugin Spec) версии 1.0.0 () и версии 1.1.0 (`https://agent-plugins.org/schemas/1.0.0/plugin.schema.json``https://agent-plugins.org/schemas/1.1.0/plugin.schema.json`), выбрав подключаемый модуль в семантику подключаемых модулей агента. Манифест без одного из этих точных значений использует устаревший формат и загружается как раньше. Если подключаемый модуль объявляет версию подключаемых модулей агента, которая Copilot CLI не поддерживается, интерфейс командной строки отклоняет подключаемый модуль, а не автоматически возвращается в устаревший режим. Отклоненный подключаемый модуль не вносит никаких перехватчиков, серверов LSP, серверов MCP, навыков, команд, агентов, правил или каталогов расширений.

### Поля манифеста подключаемого модуля агента 1.0

Подключаемые модули агента 1.0 определяют схему закрытого манифеста. Полные требования к формату см. в [спецификации подключаемых модулей агента 1.0](https://github.com/agentplugins/agent-plugins-spec/blob/main/spec/1.0.0.md).

Допустимы следующие поля:

| Поле          | Тип       | Обязательный | Описание                                                                                                                                                               |
| ------------- | --------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `$schema`     | струна    | Да           | Должен быть URL-адрес распознаваемых подключаемых `$schema` модулей агента (версия 1.0.0 или v1.1.0). Неподдерживаемые версии подключаемых модулей агента отклоняются. |
| `name`        | струна    | Да           | Имя подключаемого модуля. См. [ограничения имени](#name-constraints).                                                                                                  |
| `version`     | струна    | Нет          | Строка версии. Рекомендуется использовать семантическое управление версиями.                                                                                           |
| `description` | струна    | Нет          | Краткое описание.                                                                                                                                                      |
| `author`      | объект    | Нет          | Необязательные `name`поля и `email``url` строковые поля.                                                                                                               |
| `homepage`    | струна    | Нет          | Домашняя страница или документация подключаемого модуля.                                                                                                               |
| `repository`  | струна    | Нет          | Исходный репозиторий.                                                                                                                                                  |
| `license`     | струна    | Нет          | Идентификатор лицензии. Рекомендуется использовать идентификатор SPDX.                                                                                                 |
| `keywords`    | строка\[] | Нет          | Ключевые слова поиска и обнаружения.                                                                                                                                   |
| `extensions`  | объект    | Нет          | Данные для конкретного клиента, ключом к которым относятся пространство имен обратного домена.                                                                         |

Неизвестные поля верхнего уровня сообщаются и игнорируются. Поля пути компонента, такие как `agents`, `skills`, `mcpServers``hooks`и `lspServers` не являются полями манифеста агента 1.0.

#### Ограничения имен

Имя подключаемого модуля агента 1.0 должно:

* Содержит от 1 до 64 символов.
* Содержит только строчные буквы ASCII, цифры, дефисы и периоды.
* Начало и конец буквенно-цифровым символом.
* Не содержит `--` или `..`.

#### Components

Подключаемые модули агента 1.0 определяют два переносимых типа компонентов:

* Навыки в непосредственных `skills/` подкаталогах, содержащих `SKILL.md` файл.
* Серверы MCP в `mcp.json` корневом каталоге подключаемого модуля.

Эти расположения исправлены и не могут быть настроены в `plugin.json`. Загрузка навыков выполняется только из `skills/`-- нет резервного копирования корневых `SKILL.md` модулей (устаревшие подключаемые модули возвращаются в корневой `SKILL.md` каталог, если каталог не `skills/` существует). Корневой каталог `mcp.json` должен объявить распознаваемую версию подключаемых `$schema` модулей агента (соответствующую той же версии, что `plugin.json`и ) в своем `$schema` поле. Конверт верхнего уровня закрыт, и каждая запись сервера проверяется на соответствие схеме транспорта; Недопустимые записи сервера пропускаются по отдельности, пока допустимые записи по-прежнему загружаются. Интерфейс командной строки принимает `stdio``streamable-http``sse` и имена транспорта MCP.

Для `stdio` серверов интерфейс командной строки предоставляет `PLUGIN_ROOT` и `PLUGIN_DATA` в подпроцессной среде. Он расширяется `${PLUGIN_ROOT}` и `${PLUGIN_DATA}``COPILOT_PLUGIN_DATA` (а также `CLAUDE_PLUGIN_DATA` псевдонимы) в значениях `env` и псевдонимах `cwd`сервера`args`.
`PLUGIN_DATA` указывает на постоянный, записываемый каталог для установленного подключаемого модуля. Удаленные и `sse``streamable-http` серверные `http`значения конфигурации передаются буквально без расширения заполнителей или переменных среды.

Подключаемые модули агента 1.0 не определяют переносимых агентов, перехватчиков, команд, правил или серверов LSP. Они остаются клиентом. Данные манифеста, относящиеся к клиенту, относятся к `extensions`ключу с помощью пространства имен обратного домена. Файлы, относящиеся к клиенту, принадлежат в каталоге верхнего уровня с тем же пространством имен. Клиенты игнорируют пространства имен, которые они не поддерживают.

Copilot CLI считывает компоненты, относящиеся к клиенту, из `com.github.copilot` каталога:

| Компонент               | Местонахождение                       |
| ----------------------- | ------------------------------------- |
| Пользовательские агенты | `com.github.copilot/agents/`          |
| Команды слэш            | `com.github.copilot/commands/`        |
| Правила                 | `com.github.copilot/rules/`           |
| Хуки                    | `com.github.copilot/hooks/hooks.json` |
| LSP-серверы             | `com.github.copilot/lsp.json`         |

Эти расположения применяются только к подключаемым модулям агента 1.0. Устаревшие подключаемые модули продолжают использовать собственные расположения компонентов и поля пути манифеста.

### Пример файла подключаемых модулей агента 1.0 `plugin.json`

```json copy
{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "my-dev-tools",
  "description": "React development utilities",
  "version": "1.2.0",
  "author": {
    "name": "Jane Doe",
    "email": "jane@example.com"
  },
  "license": "MIT",
  "keywords": ["react", "frontend"]
}
```

### Устаревшие поля манифеста

#### Обязательное поле

| Поле   | Тип    | Описание                                                                             |
| ------ | ------ | ------------------------------------------------------------------------------------ |
| `name` | струна | Имя подключаемого модуля Kebab (только буквы, цифры и дефисы). Не более 64 символов. |

#### Опциональные поля метаданных

| Поле                                                                  | Тип       | Описание                                   |
| --------------------------------------------------------------------- | --------- | ------------------------------------------ |
| `description`                                                         | струна    | Краткое описание. Максимум 1024 персонажа. |
| `version`                                                             | струна    | Семантическая версия (например, `1.0.0`).  |
| `author`                                                              | объект    |                                            |
| `name` (обязательно), `email` (по желанию), `url` (по необходимости). |           |                                            |
| `homepage`                                                            | струна    | URL главной страницы плагина.              |
| `repository`                                                          | струна    | URL репозитория исходного кода.            |
| `license`                                                             | струна    | Идентификатор лицензии (например, `MIT`).  |
| `keywords`                                                            | строка\[] | Ключевые слова поиска.                     |
| `category`                                                            | струна    | Категория плагинов.                        |
| `tags`                                                                | строка\[] | Дополнительные теги.                       |

#### Поля пути компонентов

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

| Поле                          | Тип                 | По умолчанию                                                                                                                                                                                                                         | Описание                                                                                  |
| ----------------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------- |
| `agents`                      | String \| string\[] | `agents/`                                                                                                                                                                                                                            | Пути к директориям агентов (`.agent.md` файлы).                                           |
| `skills`                      | String \| string\[] | `skills/`                                                                                                                                                                                                                            | Пути к каталогам навыков (`SKILL.md` файлам).                                             |
| `commands`                    | String \| string\[] | —                                                                                                                                                                                                                                    | Пути к директориям команд.                                                                |
| `hooks`                       | Строковый \| объект | —                                                                                                                                                                                                                                    | Путь к файлу конфигурации перехватчиков или объект встроенного перехватчика.              |
| `extensions`                  |                     |                                                                                                                                                                                                                                      |                                                                                           |
| \| строка строки\[] \| объект | —                   | Пути к каталогам расширений. Используйте `{ paths: [...], exclusive: true }` для подавления встроенных расширений. В [манифестах подключаемых модулей агента 1.0](#agent-plugins-10-manifest-fields) это поле имеет другое значение. |                                                                                           |
| `mcpServers`                  | Строковый \| объект | —                                                                                                                                                                                                                                    | Путь к файлу конфигурации MCP (например, `.mcp.json`или встроенным определениям сервера). |
| `lspServers`                  | Строковый \| объект | —                                                                                                                                                                                                                                    | Путь к файлу конфигурации LSP или встроенным определениям сервера.                        |

#### Серверы MCP, отправляемые подключаемым модулем

Агент, упакованный внутри подключаемого модуля, может объявить свой собственный `mcp-servers` в своем интерфейсном режиме, определив сервер MCP только для этого агента, а не предоставлять его через общую `mcpServers` конфигурацию подключаемого модуля. В этом `mcp-servers` блоке `${PLUGIN_ROOT}` (или его `${CLAUDE_PLUGIN_ROOT}`/`${COPILOT_PLUGIN_ROOT}` псевдонимы) расширяется в корневом каталоге подключаемого модуля, поэтому сервер `command` или `args` может указывать на скрипт, упакованный с подключаемым модулем:

```markdown
---
name: Plugin Linter
description: Runs the plugin's bundled linter via its own MCP server
mcp-servers:
    plugin-linter:
        command: node
        args: ["${PLUGIN_ROOT}/tools/serve.js"]
        tools: ["*"]
---

You are a linting specialist for this plugin's bundled rules.
```

Эта подстановка применяется только в интерфейсном интерфейсе агента, отправляемого подключаемым модулем, но не распространяется `mcp-servers` на `${PLUGIN_DATA}` переменные среды сервера или к ним. У рабочих областей и агентов пользователей нет корневого модуля подключаемого модуля, поэтому интерфейсный элемент остается неизменным.

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

Чтобы включить серверы LSP (Language Server Protocol) в плагин, создайте `lsp-config/servers.json` файл в каталоге плагинов или укажите путь или встроенный объект с помощью `lspServers` поля в `plugin.json`.

Пример `lsp-config/servers.json` (или встроенный через `lspServers` ):`plugin.json`

```json
{
    "lspServers": {
        "my-lsp": {
            "command": "my-language-server",
            "fileExtensions": { ".myext": "mylang" }
        }
    }
}
```

Для кроссплатформенной поддержки используйте `bash` и `powershell` вместо `command`:

```json
{
    "lspServers": {
        "my-lsp": {
            "bash": "${PLUGIN_ROOT}/scripts/start-lsp.sh",
            "powershell": "${PLUGIN_ROOT}/scripts/start-lsp.ps1",
            "fileExtensions": { ".myext": "mylang" }
        }
    }
}
```

| Поле                    | Тип       | Обязательный | Описание                                                                                                |
| ----------------------- | --------- | ------------ | ------------------------------------------------------------------------------------------------------- |
| `command`               | струна    | \*           | Исполняемый файл для запуска языкового сервера.                                                         |
| `bash`                  | струна    | \*           | Bash script для запуска сервера (Linux/macOS); Выполнено с `bash -c SCRIPT`помощью .                    |
| `powershell`            | струна    | \*           | скрипт PowerShell для запуска сервера (Windows); выполняется через `pwsh -c SCRIPT`.                    |
| `cwd`                   | струна    | Нет          | Рабочий справочник. Абсолютный или относительно конфигурационного файла. Поддерживает `${PLUGIN_ROOT}`. |
| `args`                  | строка\[] | Нет          | Аргументы для передачи `command` (игнорируются для `bash` и `powershell`).                              |
| `env`                   | объект    | Нет          | Переменные среды для установки при спавне сервера.                                                      |
| `fileExtensions`        | объект    | Да           | Отображение расширений файлов на языковые идентификаторы (например, `{ ".ts": "typescript" }`).         |
| `rootUri`               | струна    | Нет          | Project корень относительно корня git (по умолчанию: `.`).                                              |
| `initializationOptions` | any       | Нет          | Опции отправляются на сервер в запросе LSP `initialize` .                                               |

(\*) По крайней мере один из `command`, `bash`, или `powershell` обязательно. Когда указаны оба `bash` и `powershell`, платформенно соответствующий выбор выбирается автоматически (PowerShell на Windows, Bash в других местах).

Используйте `${PLUGIN_ROOT}` для ссылки на пути в каталоге плагинов.

## `marketplace.json`

Вы можете создать маркетплейс плагинов — который пользователи смогут использовать для поиска и установки ваших плагинов — создав `marketplace.json` файл и сохранив его в `.github/plugin/` каталоге репозитория. Вы также можете хранить файл `marketplace.json` в локальной файловой системе. Например, сохранение файла как `/PATH/TO/my-marketplace/.github/plugin/marketplace.json` позволяет добавить его в CLI с помощью следующей команды:

```shell
copilot plugin marketplace add /PATH/TO/my-marketplace
```

> \[!NOTE]
> Copilot CLI также ищет `marketplace.json` файл в `.claude-plugin/` каталоге.

Дополнительные сведения см. в разделе [Создание маркетплейса плагинов для GitHub Copilot CLI](/ru/copilot/how-tos/copilot-cli/customize-copilot/plugins-marketplace).

### Пример файла `marketplace.json`

```json copy
{
  "name": "my-marketplace",
  "owner": {
    "name": "Your Organization",
    "email": "plugins@example.com"
  },
  "metadata": {
    "description": "Curated plugins for our team",
    "version": "1.0.0"
  },
  "plugins": [
    {
      "name": "frontend-design",
      "description": "Create a professional-looking GUI ...",
      "version": "2.1.0",
      "source": "./plugins/frontend-design"
    },
    {
      "name": "security-checks",
      "description": "Check for potential security vulnerabilities ...",
      "version": "1.3.0",
      "source": "./plugins/security-checks"
    }
  ]
}
```

> \[!NOTE]
> Значение `source` поля для каждого плагина — это путь к каталогу плагина относительно корня репозитория. Не обязательно использовать `./` его в начале пути. Например `"./plugins/plugin-name"` , и `"plugins/plugin-name"` разрешить в одну и ту же папку.

### `marketplace.json` Поля

#### Поля верхнего уровня

| Поле                                                      | Тип    | Обязательный | Описание                                                                                                                                                                     |
| --------------------------------------------------------- | ------ | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`                                                    | струна | Да           | Название рынка кебаб-кейс. Максимум 64 персонажа. Точки также принимаются (например, `acme.tools`для [подключаемых модулей агента 1.0](#agent-plugins-10-manifest-fields) ). |
| `owner`                                                   | объект | Да           |                                                                                                                                                                              |
| `{ name, email? }` — информация о владельце маркетплейса. |        |              |                                                                                                                                                                              |
| `plugins`                                                 | массив | Да           | Список записей плагинов (см. таблицу ниже).                                                                                                                                  |
| `metadata`                                                | объект | Нет          | `{ description?, version?, pluginRoot? }`                                                                                                                                    |

#### Поля ввода плагинов (объекты внутри `plugins` массива)

| Поле          | Тип                 | Обязательный | Описание                                                                                                                                                                                                                           |
| ------------- | ------------------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`        | струна              | Да           | Имя плагина для кебаб-кейса. Максимум 64 персонажа. Точки также принимаются для [подключаемых модулей агента 1.0](#agent-plugins-10-manifest-fields) .                                                                             |
| `source`      | Строковый \| объект | Да           | Где получить плагин (относительный путь GitHub, , или URL).                                                                                                                                                                        |
| `description` | струна              | Нет          | Описание плагина. Максимум 1024 персонажа.                                                                                                                                                                                         |
| `version`     | струна              | Нет          | Версия плагина.                                                                                                                                                                                                                    |
| `author`      | объект              | Нет          | `{ name, email?, url? }`                                                                                                                                                                                                           |
| `homepage`    | струна              | Нет          | URL главной страницы плагина.                                                                                                                                                                                                      |
| `repository`  | струна              | Нет          | URL репозитория исходного кода.                                                                                                                                                                                                    |
| `license`     | струна              | Нет          | Идентификатор лицензии.                                                                                                                                                                                                            |
| `keywords`    | строка\[]           | Нет          | Ключевые слова поиска.                                                                                                                                                                                                             |
| `category`    | струна              | Нет          | Категория плагинов.                                                                                                                                                                                                                |
| `tags`        | строка\[]           | Нет          | Дополнительные теги.                                                                                                                                                                                                               |
| `commands`    | String \| string\[] | Нет          | Пути к директориям команд.                                                                                                                                                                                                         |
| `agents`      | String \| string\[] | Нет          | Пути к каталогам агентов.                                                                                                                                                                                                          |
| `skills`      | String \| string\[] | Нет          | Пути к каталогам навыков.                                                                                                                                                                                                          |
| `hooks`       | Строковый \| объект | Нет          | Путь к конфигурации перехватчиков или объекту встроенных перехватчиков.                                                                                                                                                            |
| `mcpServers`  | Строковый \| объект | Нет          | MCP-серверы активируются при установке плагина. Принимает встроенную карту сервера или путь к файлу конфигурации JSON. Используется, когда источник плагина не поставляет собственную конфигурацию MCP.                            |
| `lspServers`  | Строковый \| объект | Нет          | Путь к конфигурации LSP или встроенным определениям сервера.                                                                                                                                                                       |
| `strict`      | булевый             | Нет          | Когда `true` (по умолчанию) плагины должны соответствовать полным правилам схемы и валидации. Когда `false`используется расслабленная валидация, что даёт больше гибкости — особенно для прямых установок или устаревших плагинов. |

#### Типы источников подключаемого модуля

`source` Поле в записи подключаемого GitHub модуля принимает относительную строку пути или объект, описывающий репозиторий или источник URL-адреса Git:

```json
{
    "source": {
        "source": "github",
        "repo": "owner/repo",
        "ref": "v1.0.0",
        "path": "plugins/my-plugin"
    }
}
```

`github`
`url` Оба типа источников принимают необязательное `sha` поле для закрепления установок в точной фиксации в дополнение к (или вместо`ref`) :

```json
{
    "source": {
        "source": "github",
        "repo": "owner/repo",
        "sha": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3",
        "path": "plugins/my-plugin"
    }
}
```

`sha` должно быть полной 40-символьной фиксацией SHA. Закрепление к `sha` воспроизводимым установкам, которые являются иммунными для принудительной отправки или перемещения тегов или ветвей.

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

| Элемент                                                                                                                                                         | Путь                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Установленные плагины                                                                                                                                           |                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `~/.copilot/installed-plugins/MARKETPLACE/PLUGIN-NAME` (установлен через маркетплейс) и `~/.copilot/installed-plugins/_direct/SOURCE-ID/` (установлен напрямую) |                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| Кэш маркетплейса                                                                                                                                                | Каталог кэша платформы: `~/.cache/copilot/marketplaces/` (Linux), `~/Library/Caches/copilot/marketplaces/` (macOS). Переобоймо с `COPILOT_CACHE_HOME`помощью .                                                                                                                                                                                                                                                                                    |
| Манифест плагинов                                                                                                                                               | Подключаемые модули агента (версии 1.0.0 или версии 1.1.0): `plugin.json` в корневом каталоге подключаемого модуля. Корневой манифест, предназначенный для подключаемых модулей агента, имеет приоритет над `.plugin/plugin.json``.claude-plugin/plugin.json` спецификацией §5.1. Устаревшие подключаемые модули: `.plugin/plugin.json`, `plugin.json`, `.github/plugin/plugin.json`или `.claude-plugin/plugin.json` (установлен в этом порядке). |
| Манифест рынка                                                                                                                                                  |                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `marketplace.json`, `.plugin/marketplace.json`, `.github/plugin/marketplace.json`, или `.claude-plugin/marketplace.json` (отмечено в таком порядке)             |                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| Агенты                                                                                                                                                          | Устаревшие подключаемые модули: `agents/` (по умолчанию, переопределяется в манифесте).                                                                                                                                                                                                                                                                                                                                                           |
| Навыки                                                                                                                                                          | Подключаемые модули агента: `skills/` (исправлено, корневая резервная версия отсутствует `SKILL.md` ). Устаревшие подключаемые модули: `skills/` (по умолчанию, переопределяемые в манифесте), возвращаясь к корневому каталогу `SKILL.md` , если каталог не `skills/` существует.                                                                                                                                                                |
| Конфигурация крючков                                                                                                                                            | Устаревшие подключаемые модули: `hooks.json` или `hooks/hooks.json`.                                                                                                                                                                                                                                                                                                                                                                              |
| Конфигурация MCP                                                                                                                                                | Подключаемые модули агента: `mcp.json`. Устаревшие подключаемые модули: `.mcp.json`, `.github/mcp.json`или поле манифеста `mcpServers` .                                                                                                                                                                                                                                                                                                          |
| Конфигурация LSP                                                                                                                                                | Устаревшие подключаемые модули: `lsp.json` или `.github/lsp.json`.                                                                                                                                                                                                                                                                                                                                                                                |
| Данные плагинов                                                                                                                                                 | Для подключаемых модулей агента 1.0 MCP-серверов `${PLUGIN_DATA}` (также доступных как `${COPILOT_PLUGIN_DATA}` и `${CLAUDE_PLUGIN_DATA}`) указывает на постоянный, записываемый каталог, уникальный для каждого установленного подключаемого модуля. Используйте это для специфических для плагинов данных во время выполнения вместо путей внутри каталога кэша установленных плагинов.                                                         |

## Порядок загрузки и приоритет

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

* **Агенты и навыки** используют приоритет «первый-найденный-выигрышный».

  Если у вас есть кастомный агент или навык проектного уровня с тем же именем или идентификатором, что и в плагине, который вы устанавливаете, агент или навык в плагине молча игнорируются. Плагин не может отменять конфигурации на уровне проекта или личные настройки. Пользовательские агенты дедуплифицируются с помощью их идентификатора, который выводится из имени файла (например, если файл имеет имя `reviewer.agent.md`, идентификатор агента — `reviewer`). Навыки дедуплифицируются по полю имени внутри `SKILL.md` файла.

* **Серверы MCP** используют приоритет последних побед.

  Если вы установите плагин, который определяет MCP-сервер с тем же именем сервера, что и уже установленный вами MCP-сервер, определение плагина имеет приоритет. Вы можете использовать `--additional-mcp-config` опцию командной строки, чтобы переопределить конфигурацию MCP-сервера с таким же названием, установленную через плагин. Если два или более подключаемых модулей объявляют сервер MCP с одинаковым именем, интерфейс командной строки использует версию из подключаемого модуля, загруженного последней, и отображает предупреждение об именовании каждого предыдущего подключаемого модуля, определяемого им.

* **Встроенные инструменты и агенты** всегда присутствуют и не могут быть переопределены пользовательскими компонентами.

Следующая схема иллюстрирует правила порядка загрузки и приоритета.

```text
┌──────────────────────────────────────────────────────────────────┐
│  BUILT-IN - HARDCODED, ALWAYS PRESENT                            │
│  • tools: bash, view, apply_patch, glob, rg, task, ...           │
│  • agents: explore, task, code-review, general-purpose, research │
└────────────────────────┬─────────────────────────────────────────┘
                         │
  ┌──────────────────────▼──────────────────────────────────────────────┐
  │  CUSTOM AGENTS - FIRST LOADED IS USED (dedup by ID)                 │
  │  1. ~/.copilot/agents/           (user, .github convention)         │
  │  2. <project>/.github/agents/    (project)                          │
  │  3. <parents>/.github/agents/    (inherited, monorepo)              │
  │  4. <project>/.claude/agents/    (project)                          │
  │  5. <parents>/.claude/agents/    (inherited, monorepo)              │
  │  6. <add-dir>/.github/agents/    (added root, --add-dir)            │
  │  7. PLUGIN: agents/ dirs         (plugin, by install order)         │
  │  8. Remote org/enterprise agents (remote, via API)                  │
  └──────────────────────┬──────────────────────────────────────────────┘
                         │
  ┌──────────────────────▼──────────────────────────────────────────────┐
  │  AGENT SKILLS - FIRST LOADED IS USED (dedup by name)                │
  │  1. <project>/.github/skills/        (project)                      │
  │  2. <project>/.agents/skills/        (project)                      │
  │  3. <project>/.claude/skills/        (project)                      │
  │  4. <parents>/.github/skills/ etc.   (inherited)                    │
  │  5. ~/.copilot/skills/               (personal-copilot)             │
  │  6. ~/.agents/skills/                (personal-agents)              │
  │  7. PLUGIN: skills/ dirs             (plugin)                       │
  │  8. COPILOT_SKILLS_DIRS env + config (custom)                       │
  │  --- then commands (.claude/commands/), skills override commands ---│
  └──────────────────────┬──────────────────────────────────────────────┘
                         │
  ┌──────────────────────▼──────────────────────────────────────────────┐
  │  MCP SERVERS - LAST LOADED IS USED (dedup by server name)           │
  │  1. ~/.copilot/mcp-config.json       (lowest priority)              │
  │  2. PLUGIN: MCP configs              (plugins)                      │
  │  3. --additional-mcp-config flag     (highest priority)             │
  └─────────────────────────────────────────────────────────────────────┘
```

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

* [О стандартах плагинов, управляемых корпоративным предприятием](/ru/copilot/concepts/enterprise/plugin-standards)
* [GitHub Copilot CLI](/ru/copilot/how-tos/copilot-cli)
* [Справочник команды GitHub Copilot CLI](/ru/copilot/reference/copilot-cli-reference/cli-command-reference)
* [GitHub Copilot CLI программный справочник](/ru/copilot/reference/copilot-cli-reference/cli-programmatic-reference)