Skip to main content

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

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

Примечание.

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

Команды CLI

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

CommandDescription
copilot plugin install SPECIFICATIONУстановите плагин. См. спецификацию плагина для install команды ниже.
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 команды

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

plugin.json

Все плагины состоят из каталога плагинов, содержащая, как минимум, файл манифеста, plugin.json расположенный в корне папки плагинов. См . раздел AUTOTITLE.

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

ПолеТипDescription
nameструнаИмя плагина для kebab-case (только буквы, цифры, дефисы). Максимум 64 персонажа.

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

ПолеТипDescription
descriptionструнаКраткое описание. Максимум 1024 персонажа.
versionструнаСемантическая версия (например, 1.0.0).
authorобъект
          `name` (обязательно), `email` (по желанию), `url` (по необходимости). |

| homepage | струна | URL главной страницы плагина. | | repository | струна | URL репозитория исходного кода. | | license | струна | Идентификатор лицензии (например, MIT). | | keywords | строка[] | Ключевые слова поиска. | | category | струна | Категория плагинов. | | tags | строка[] | Дополнительные теги. |

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

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

ПолеТипПо умолчаниюDescription
agentsString | string[]agents/Пути к директориям агентов (.agent.md файлы).
skillsString | string[]skills/Пути к каталогам навыков (SKILL.md файлам).
commandsString | string[]Пути к директориям команд.
hooksСтроковый | объектПуть к конфигурационному файлу hooks или объекту inline hooks.
mcpServersСтроковый | объектПуть к конфигурационному файлу MCP (например, .mcp.json), или встроенные определения сервера.
lspServersСтроковый | объектПуть к конфигурационному файлу LSP или встроенным определениям сервера.

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

JSON
{
  "name": "my-dev-tools",
  "description": "React development utilities",
  "version": "1.2.0",
  "author": {
    "name": "Jane Doe",
    "email": "[email protected]"
  },
  "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 с помощью следующей команды:

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

Примечание.

Интерфейс командной строки Copilot также ищет marketplace.json файл в .claude-plugin/ каталоге.

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

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

JSON
{
  "name": "my-marketplace",
  "owner": {
    "name": "Your Organization",
    "email": "[email protected]"
  },
  "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"
    }
  ]
}

Примечание.

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

          `marketplace.json` Поля

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

ПолеТипОбязательноDescription
nameструнаДаНазвание рынка кебаб-кейс. Максимум 64 персонажа.
ownerобъектДа
          `{ name, email? }` — информация о владельце маркетплейса. |

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

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

ПолеТипОбязательноDescription
nameструнаДаИмя плагина для кебаб-кейса. Максимум 64 персонажа.
sourceСтроковый | объектДаГде получить плагин (относительный путь, GitHub или URL).
descriptionструнанетОписание плагина. Максимум 1024 персонажа.
versionструнанетВерсия плагина.
authorобъектнет{ name, email?, url? }
homepageструнанетURL главной страницы плагина.
repositoryструнанетURL репозитория исходного кода.
licenseструнанетИдентификатор лицензии.
keywordsстрока[]нетКлючевые слова поиска.
categoryструнанетКатегория плагинов.
tagsстрока[]нетДополнительные теги.
commandsString | string[]нетПути к директориям команд.
agentsString | string[]нетПути к каталогам агентов.
skillsString | string[]нетПути к каталогам навыков.
hooksСтроковый | объектнетПуть к хукам, конфиг или объект встроенных хуков.
mcpServersСтроковый | объектнетПуть к конфигурации MCP или встроенным определениям сервера.
lspServersСтроковый | объектнетПуть к конфигурациям LSP или встроенным определениям сервера.
strictбулевыйнетЕсли это ошибка, плагин не нуждается в своём plugin.jsonсобственном . Значение по умолчанию: true.

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

ItemПуть
Установленные плагины
          `~/.copilot/installed-plugins/` и `~/.copilot/installed-plugins/_direct`. |

| Кэш маркетплейса | ~/.copilot/state/marketplace-cache/ | | Манифест плагинов | plugin.json, .github/plugin/plugin.json или .claude-plugin/plugin.json | | Манифест рынка | .github/plugin/marketplace.json или .claude-plugin/marketplace.json | | Агенты | agents/ (по умолчанию, можно отменить в манифесте) | | Skills | 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-сервера с таким же названием, установленную через плагин.

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

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

┌─────────────────────────────────────────────────────────┐
│  BUILT-IN - HARDCODED, ALWAYS PRESENT                   │
│  • tools: bash, view, apply_patch, glob, rg, task, ...  │
│  • agents: explore, task, code-review, general-purpose  │
└────────────────────────┬────────────────────────────────┘
                         │
  ┌──────────────────────▼──────────────────────────────────────────────┐
  │  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. ~/.claude/agents/            (user, .claude convention)         │
  │  5. <project>/.claude/agents/    (project)                          │
  │  6. <parents>/.claude/agents/    (inherited, monorepo)              │
  │  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. ~/.claude/skills/                (personal-claude)              │
  │  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. .vscode/mcp.json                 (workspace)                    │
  │  3. PLUGIN: MCP configs              (plugins)                      │
  │  4. --additional-mcp-config flag     (highest priority)             │
  └─────────────────────────────────────────────────────────────────────┘