# Создание плагина для GitHub Copilot CLI

Создайте плагин для обмена настройками в удобном для установки пакете.

## Введение

Плагины — это пакеты, расширяющие функциональность Copilot CLI. См [. раздел AUTOTITLE](/ru/copilot/concepts/agents/about-plugins).

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

## Структура плагинов

Подключаемый модуль состоит из каталога с определенной структурой и файлом манифеста `plugin.json` . Для подключаемых модулей агента 1.0 требуется манифест в корневом каталоге подключаемого модуля. Устаревшие подключаемые модули поддерживают дополнительные расположения манифестов. Подключаемый модуль также может содержать любое сочетание агентов, навыков, перехватчиков и конфигураций сервера MCP.

Copilot CLI поддерживает два формата подключаемых модулей:

* Подключаемые модули агента 1.0— переносимый формат для навыков и серверов MCP. Объявление канонического `$schema` элемента при `plugin.json` выборе подключаемого модуля в этом формате.
* Устаревший Copilot формат, который поддерживает Copilotспециальные компоненты и настраиваемые пути к компонентам. Манифест без подключаемых `$schema` модулей агента продолжает использовать этот формат.

Поддерживаются оба формата. Выберите подключаемые модули агента 1.0, если вы хотите сделать навыки и серверы MCP переносимыми между совместимыми клиентами. Выберите устаревший формат, если требуется пользовательский путь к компонентам или поддерживает существующий Copilotподключаемый модуль. В подключаемых модулях агента 1.0 навыки и серверы MCP переносятся и являются конкретными компонентами, Copilotтакими как агенты, команды, правила, перехватчики и серверы LSP из `com.github.copilot` каталога в подключаемом модуле.

## Создание плагина

1. Создайте папку для вашего плагина.

2. Выберите формат подключаемого модуля, а затем добавьте `plugin.json` файл манифеста в корневой каталог.

   Чтобы создать подключаемый модуль агента 1.0, добавьте канонический `$schema`код:

**Пример файла подключаемых модулей агента 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"]
}
```

Схема разрешает только `$schema`поля , `name`, `version``repository``description``homepage``license``author``keywords`и `extensions` как поля верхнего уровня. Неизвестные поля верхнего уровня сообщаются и игнорируются. Поле `extensions` — это карта данных, определенных клиентом, ключом к которым является пространство имен обратного домена.

Чтобы создать устаревший подключаемый модуль, опустите подключаемые `$schema`модули агента. Поля пути компонента можно использовать в манифесте:

**Пример устаревшего `plugin.json` файла**

```json copy
{
  "name": "my-dev-tools",
  "description": "React development utilities",
  "agents": "agents/",
  "skills": ["skills/", "extra-skills/"],
  "hooks": "hooks.json",
  "mcpServers": ".mcp.json"
}
```

Для подробностей полного набора полей, которые вы можете включить в этот файл, смотрите [Ссылка на плагин GitHub Copilot CLI](/ru/copilot/reference/copilot-cli-reference/cli-plugin-reference#pluginjson).

1. Добавьте компоненты в подключаемый модуль.

   В подключаемом модуле подключаемого `SKILL.md` модуля агента 1.0 навыки должны быть непосредственными подкаталогами`skills/`, и каждый навык должен содержать файл. Конфигурация MCP должна находиться в `mcp.json` корневом каталоге подключаемого модуля. Вы не можете переопределить эти расположения в `plugin.json`.
   Copilot-specific components go in the `com.github.copilot` directory, например `com.github.copilot/agents/` для пользовательских агентов и `com.github.copilot/hooks/hooks.json` для перехватчиков.

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

   Рассмотрим пример.

   1. Добавьте агента, создав `NAME.agent.md` файл в подкаталоге `agents` . В подключаемом модуле подключаемого модуля агента 1.0 создайте файл в `com.github.copilot/agents/`. В устаревшем подключаемом модуле создайте его в `agents/`.

      ```markdown copy
      ---
      name: my-agent
      description: Helps with specific tasks
      tools: ["bash", "edit", "view"]
      ---

      You are a specialized assistant that...
      ```

   2. Добавьте навык, создав `skills/NAME` подкаталог вашей папки плагинов, где `NAME` находится название вашего навыка. Затем в этой подкаталоге создайте `SKILL.md` файл, который определяет навык.

      Например, чтобы создать навык «развернуть», создайте `skills/deploy/SKILL.md`:

      ```markdown copy
      ---
      name: deploy
      description: Deploy the current project to...
      ---

      Instructions for the skill...
      ```

   3. Для подключаемого модуля подключаемого модуля агента 1.0 добавьте серверы MCP в корневой `mcp.json` файл. Конфигурация MCP использует собственную схему подключаемых модулей агента:

      ```json copy
      {
       "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json",
       "mcpServers": {
         "deployment-api": {
           "type": "streamable-http",
           "url": "https://deploy.example.com/mcp"
         },
         "local-validator": {
           "type": "stdio",
           "command": "node",
           "args": ["${PLUGIN_ROOT}/server/index.js"],
           "cwd": "${PLUGIN_ROOT}",
           "env": {
             "DATA_DIR": "${PLUGIN_DATA}/validator"
           }
         }
       }
      }
      ```

      Имя `streamable-http` транспорта принимается для потоковых HTTP-серверов. Для `stdio` серверов предоставляются `PLUGIN_ROOT` и переменные среды, Copilot CLI а также `PLUGIN_DATA` развертываются `${PLUGIN_ROOT}` и `${PLUGIN_DATA}``args`в , `env` значениях и `cwd`.

2. Установите плагин локально, чтобы тестировать его по ходу разработки.

   Например, где `./my-plugin` находится путь к вашему каталогу плагинов, введите:

   ```shell copy
   copilot plugin install ./my-plugin
   ```

3. Проверьте, что плагин успешно загрузился, просмотрев список установленных плагинов:

   ```shell copy
   copilot plugin list
   ```

   Или вы можете начать новую интерактивную сессию и войти:

   ```copilot copy
   /plugin list
   ```

4. Убедитесь, что агенты, навыки, крючки и конфигурации MCP-серверов, которые вы определили, загружены правильно.

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

   ```copilot copy
   /agent
   ```

   Чтобы проверить, что навыки, определённые в плагине, загружены, введите:

   ```copilot copy
   /skills list
   ```

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

6. По мере необходимости развивайте плагины.

   > \[!IMPORTANT]
   > Когда вы устанавливаете плагин, его компоненты кэшуются, и CLI читает данные из кэша для следующих сессий. Чтобы восстановить изменения, внесённые в локальный плагин, установите его снова:
   >
   > ```shell copy
   > copilot plugin install ./my-plugin
   > ```

7. После завершения тестирования вы можете удалить локальную версию плагина, введя в:

   ```shell copy
   copilot plugin uninstall NAME
   ```

   > \[!NOTE]
   > Чтобы удалить плагин, используйте имя плагина, указанное в `name` поле файла манифеста `plugin.json` плагина, а не путь к папке плагина.

## Распространение вашего плагина

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

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

* [Документация по разработке подключаемых модулей агента](https://agent-plugins.org/plugin-authors)
* [Поиск и установка плагинов для GitHub Copilot CLI](/ru/copilot/how-tos/copilot-cli/customize-copilot/plugins-finding-installing)
* [Ссылка на плагин GitHub Copilot CLI](/ru/copilot/reference/copilot-cli-reference/cli-plugin-reference)