Skip to main content

referência de plugin da CLI GitHub Copilot

Encontre comandos e detalhes de configuração para plug-ins da CLI.

Observação

Você pode encontrar ajuda para usar plug-ins entrando copilot plugin [SUBCOMMAND] --help no terminal.

Comandos da CLI

Você pode usar os seguintes comandos no terminal para gerenciar plug-ins para CLI do Copilot.

CommandDescrição
copilot plugin install SPECIFICATIONInstale um plug-in. Consulte Especificação do plugin para install o comando abaixo.
copilot plugin uninstall NAMERemover um plug-in
copilot plugin listListar plug-ins instalados
copilot plugin update NAMEAtualizar um plug-in
copilot plugin marketplace add SPECIFICATIONRegistrar um marketplace
copilot plugin marketplace listListar marketplaces registrados
copilot plugin marketplace browse NAMENavegue pelos plugins do marketplace
copilot plugin marketplace remove NAMECancelar o registro de um marketplace

Especificação do plug-in para install comando

FormatoExemploDescrição
Marketplaceplugin@marketplacePlug-in de um marketplace registrado
GitHubOWNER/REPORaiz de um GitHub repositório
GitHub SubdirOWNER/REPO:PATH/TO/PLUGINSubdiretório em um repositório
Git URLhttps://github.com/o/r.gitQualquer URL do Git
Caminho local
./my-plugin ou /abs/pathDiretório local

plugin.json

Todos os plug-ins consistem em um diretório de plug-in contendo, no mínimo, um arquivo de manifesto chamado plugin.json localizado na raiz do diretório do plug-in. Consulte Criando um plug-in para CLI do GitHub Copilot.

Campo obrigatório

CampoTipoDescrição
namecadeiaNome do plugin Kebab-case (apenas letras, números e hífens). Máximo de 64 chars.

Campos de metadados opcionais

CampoTipoDescrição
descriptioncadeiaBreve descrição. Máximo de 1024 caracteres.
versioncadeiaVersão semântica (por exemplo, 1.0.0).
authorobjeto
name (obrigatório), email (opcional), url (opcional).
homepagecadeiaURL da página inicial do plugin.
repositorycadeiaURL do repositório de origem.
licensecadeiaIdentificador de licença (por exemplo, MIT).
keywordscadeia de caracteres[]Pesquisar palavras-chave.
categorycadeiaCategoria de plug-in.
tagscadeia de caracteres[]Etiquetas adicionais.

Campos de caminho do componente

Elas indicam à CLI onde encontrar os componentes do seu plug-in. Todos são opcionais. A CLI usa convenções padrão se omitidas.

CampoTipoDefaultDescrição
agentscadeia de caracteres | cadeia de caracteres[]agents/Caminhos para diretórios de agente (.agent.md arquivos).
skillscadeia de caracteres | cadeia de caracteres[]skills/Caminhos para diretórios de habilidades (SKILL.md arquivos).
commandscadeia de caracteres | cadeia de caracteres[]Caminhos para diretórios de comando.
hooksobjeto string |Caminho para um arquivo de configuração de ganchos ou um objeto de ganchos embutido.
mcpServersobjeto string |Caminho para um arquivo de configuração MCP (por exemplo, .mcp.json) ou definições de servidor integradas.
lspServersobjeto string |Caminho para um arquivo de configuração LSP ou definições de servidor em linha.

Arquivo de exemplo plugin.json

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

marketplace.json

Você pode criar um marketplace de plug-ins, que as pessoas podem usar para descobrir e instalar seus plug-ins, criando um marketplace.json arquivo e salvando-o no .github/plugin/ diretório do repositório. Você também pode armazenar o marketplace.json arquivo em seu sistema de arquivos local. Por exemplo, salvar o arquivo como /PATH/TO/my-marketplace/.github/plugin/marketplace.json permite adicioná-lo à CLI usando o seguinte comando:

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

Observação

O CLI do Copilot também procura o arquivo marketplace.json no diretório .claude-plugin/.

Para obter mais informações, consulte Criando um marketplace de plugin para CLI do GitHub Copilot.

Arquivo de exemplo marketplace.json

JSON
{
  "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"
    }
  ]
}

Observação

O valor do source campo para cada plug-in é o caminho para o diretório do plug-in, em relação à raiz do repositório. Não é necessário usar ./ no início do caminho. Por exemplo, "./plugins/plugin-name" e "plugins/plugin-name" resolvem para o mesmo diretório.

Campos marketplace.json

Campos de nível superior

CampoTipoObrigatórioDescrição
namecadeiaSimNome do mercado de kebabs. Máximo de 64 chars.
ownerobjetoSim
{ name, email? } — informações do proprietário do marketplace.
pluginsmatrizSimLista de entradas de plug-in (consulte a tabela abaixo).
metadataobjetoNo{ description?, version?, pluginRoot? }

Campos de entrada de plug-in (objetos dentro da plugins matriz)

CampoTipoObrigatórioDescrição
namecadeiaSimNome do plugin Kebab-case. Máximo de 64 chars.
sourceobjeto string |SimOnde buscar o plug-in (caminho relativo GitHub ou URL).
descriptioncadeiaNoDescrição do plug-in. Máximo de 1024 caracteres.
versioncadeiaNoVersão do plug-in.
authorobjetoNo{ name, email?, url? }
homepagecadeiaNoURL da página inicial do plugin.
repositorycadeiaNoURL do repositório de origem.
licensecadeiaNoIdentificador de licença.
keywordscadeia de caracteres[]NoPesquisar palavras-chave.
categorycadeiaNoCategoria de plug-in.
tagscadeia de caracteres[]NoEtiquetas adicionais.
commandscadeia de caracteres | cadeia de caracteres[]NoCaminhos para diretórios de comando.
agentscadeia de caracteres | cadeia de caracteres[]NoCaminhos para diretórios de agente.
skillscadeia de caracteres | cadeia de caracteres[]NoCaminhos para diretórios de habilidades.
hooksobjeto string |NoCaminho para a configuração de hooks ou objeto de hooks inline.
mcpServersobjeto string |NoCaminho para a configuração do MCP ou definições do servidor em linha.
lspServersobjeto string |NoCaminho para a configuração do LSP ou definições do servidor em linha.
strictbooleanNoQuando true (o padrão), os plug-ins devem estar em conformidade com o esquema completo e as regras de validação. Quando false a validação relaxada é usada, permite mais flexibilidade, especialmente para instalações diretas ou plugins legados.

Locais de arquivos

ItemCaminho
Plug-ins instalados
~/.copilot/installed-plugins/MARKETPLACE/PLUGIN-NAME (instalado por meio de um marketplace) e ~/.copilot/installed-plugins/_direct/SOURCE-ID/ (instalado diretamente)
Cache do MarketplaceDiretório de cache de plataforma: ~/.cache/copilot/marketplaces/ (Linux) ~/Library/Caches/copilot/marketplaces/ (macOS). Substituível por COPILOT_CACHE_HOME.
Manifesto do Plugin
.plugin/plugin.json, plugin.jsonou .github/plugin/plugin.json``.claude-plugin/plugin.json (verificado nesta ordem)
Manifesto do Marketplace
marketplace.json, .plugin/marketplace.jsonou .github/plugin/marketplace.json``.claude-plugin/marketplace.json (verificado nesta ordem)
Agentes
agents/ (padrão, substituível no manifesto)
Habilidades
skills/ (padrão, substituível no manifesto)
Configuração de ganchos
hooks.json ou hooks/hooks.json
Configuração do MCP
.mcp.json, .github/mcp.json
Configuração de LSP
lsp.json ou .github/lsp.json

Ordem e precedência de carregamento

Se você instalar vários plug-ins, é possível que alguns agentes personalizados, habilidades, servidores MCP ou ferramentas fornecidas por meio de servidores MCP tenham nomes duplicados. Nessa situação, a CLI determina qual componente usar com base em uma ordem de precedência.

  • Agentes e habilidades use a precedência do primeiro encontrado.

    Se você tiver um agente personalizado no nível do projeto ou uma habilidade cujo nome ou ID sejam iguais a os de um plug-in que você instalar, o agente ou habilidade do plug-in será ignorado sem aviso. O plug-in não pode substituir configurações pessoais ou no nível do projeto. Os agentes personalizados são desduplicados usando seu ID, que é derivado de seu nome de arquivo (por exemplo, se o arquivo for nomeado reviewer.agent.md, a ID do agente será reviewer). As habilidades são desduplicadas pelo campo do nome dentro do arquivo SKILL.md.

  • Os servidores MCP usam a precedência "último a vencer".

    Se você instalar um plug-in que define um servidor MCP com o mesmo nome de servidor que um servidor MCP já instalado, a definição do plug-in terá precedência. Você pode usar a opção --additional-mcp-config de linha de comando para substituir uma configuração de servidor MCP com o mesmo nome, instalado usando um plug-in.

  • Ferramentas e agentes internos estão sempre presentes e não podem ser substituídos por componentes definidos pelo usuário.

O diagrama a seguir ilustra as regras de ordem e precedência de carregamento.

┌──────────────────────────────────────────────────────────────────┐
│  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)             │
  └─────────────────────────────────────────────────────────────────────┘

Leitura adicional