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

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

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

## Команды CLI

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

| Command                                        | Описание                                                                                                             |
| ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `copilot plugin install SPECIFICATION`         | Установите плагин. См. [спецификацию плагина для `install` команды](#plugin-specification-for-install-command) ниже. |
| `copilot plugin uninstall NAME`                | Удалить плагин                                                                                                       |
| `copilot plugin list`                          | Список установленных плагинов                                                                                        |
| `copilot plugin update NAME`                   | Обновить плагин                                                                                                      |
| `copilot plugin marketplace add SPECIFICATION` | Зарегистрируйте маркетплейс                                                                                          |
| `copilot plugin marketplace list`              | Список зарегистрированных торговых площадок                                                                          |
| `copilot plugin marketplace browse NAME`       | Просмотр плагинов маркетплейса                                                                                       |
| `copilot plugin marketplace remove NAME`       | Отменить регистрацию с маркетплейса                                                                                  |

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

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

```
          `./my-plugin` или `/abs/path`    | Местный справочник |
```

## `plugin.json`

Все плагины состоят из каталога плагинов, содержащая, как минимум, файл манифеста, `plugin.json` расположенный в корне папки плагинов. См [. раздел AUTOTITLE](/ru/copilot/how-tos/copilot-cli/customize-copilot/plugins-creating).

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

| Поле   | Тип    | Описание                                                                         |
| ------ | ------ | -------------------------------------------------------------------------------- |
| `name` | струна | Имя плагина для kebab-case (только буквы, цифры, дефисы). Максимум 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`      | Строковый \| объект | —            | Путь к конфигурационному файлу hooks или объекту inline hooks.                                  |
| `mcpServers` | Строковый \| объект | —            | Путь к конфигурационному файлу MCP (например, `.mcp.json`), или встроенные определения сервера. |
| `lspServers` | Строковый \| объект | —            | Путь к конфигурационному файлу LSP или встроенным определениям сервера.                         |

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

```json copy
{
  "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"],
  "agents": "agents/",
  "skills": ["skills/", "extra-skills/"],
  "hooks": "hooks.json",
  "mcpServers": ".mcp.json"
}
```

## `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]
> Второй пилот 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 персонажа. |
| `owner` | объект | Да           |                                                   |

```
          `{ name, email? }` — информация о владельце маркетплейса. |
```

\| `plugins`  | массив    | Да      | Список записей плагинов (см. таблицу ниже). |
\| `metadata` | объект   | Нет       | `{ description?, version?, pluginRoot? }` |

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

| Поле          | Тип                 | Обязательный | Описание                                                                                                                                                                                                                           |
| ------------- | ------------------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`        | струна              | Да           | Имя плагина для кебаб-кейса. Максимум 64 персонажа.                                                                                                                                                                                |
| `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 или встроенным определениям сервера.                                                                                                                                                                       |
| `lspServers`  | Строковый \| объект | Нет          | Путь к конфигурациям LSP или встроенным определениям сервера.                                                                                                                                                                      |
| `strict`      | булевый             | Нет          | Когда `true` (по умолчанию) плагины должны соответствовать полным правилам схемы и валидации. Когда `false`используется расслабленная валидация, что даёт больше гибкости — особенно для прямых установок или устаревших плагинов. |

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

| Элемент               | Путь |
| --------------------- | ---- |
| Установленные плагины |      |

```
          `~/.copilot/installed-plugins/MARKETPLACE/PLUGIN-NAME` (установлен через маркетплейс) и `~/.copilot/installed-plugins/_direct/SOURCE-ID/` (установлен напрямую) |
```

\| Кэш маркетплейса    | Каталог кэша платформы: `~/.cache/copilot/marketplaces/` (Linux), `~/Library/Caches/copilot/marketplaces/` (macOS). Переобоймо с `COPILOT_CACHE_HOME`помощью . |
\| Манифест плагинов      |
`.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/` (по умолчанию, можно отменить в манифесте) |
\| Конфигурация крючков  |
`hooks.json` или `hooks/hooks.json` |
\| Конфигурация MCP    |
`.mcp.json`, `.github/mcp.json` |
\| Конфигурация LSP    |
`lsp.json` или `.github/lsp.json` |

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

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

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

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

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

  Если вы установите плагин, который определяет MCP-сервер с тем же именем сервера, что и уже установленный вами MCP-сервер, определение плагина имеет приоритет. Вы можете использовать `--additional-mcp-config` опцию командной строки, чтобы переопределить конфигурацию 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. PLUGIN: agents/ dirs         (plugin, by install order)         │
  │  7. 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)             │
  └─────────────────────────────────────────────────────────────────────┘
```

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

* [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)