Skip to main content

Referência do plugin da CLI do 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.

ComandoDESCRIÇÃO
copilot plugin install SPECIFICATIONInstale um plug-in. Consulte Especificação do plugin para 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 update --allAtualizar todos os plug-ins instalados
copilot plugin disable NAMEDesabilitar temporariamente um plug-in sem desinstalá-lo
copilot plugin enable NAMEHabilitar novamente um plug-in desabilitado
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 comando

FormatoExampleDESCRIÇÃO
Marketplaceplugin@marketplacePlug-in de um marketplace registrado
GitHubOWNER/REPORaiz de um repositório GitHub
GitHub subdirOWNER/REPO:PATH/TO/PLUGINSubdiretório em um repositório
Git URLhttps://github.com/o/r.gitQualquer URL do Git
Caminho localouDiretó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 localizado na raiz do diretório do plug-in. Confira AUTOTITLE.

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, ).
authorobjeto(obrigatório), (opcional), (opcional).
homepagecadeiaURL da página inicial do plugin.
repositorycadeiaURL do repositório de origem.
licensecadeiaIdentificador de licença (por exemplo, ).
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.

CampoTipoPadrãoDESCRIÇÃO
agentscadeia de caracteres cadeia de caracteres[]agents/Caminhos para diretórios de agente ( arquivos).
skillscadeia de caracteres cadeia de caracteres[]skills/Caminhos para diretórios de habilidades ( arquivos).
commandscadeia de caracteres cadeia de caracteres[]Caminhos para diretórios de comando.
hooksobjeto stringCaminho para um arquivo de configuração de ganchos ou um objeto de ganchos embutido.
mcpServersobjeto stringCaminho para um arquivo de configuração MCP (por exemplo, ) ou definições de servidor integradas.
lspServersobjeto stringCaminho para um arquivo de configuração LSP ou definições de servidor em linha.

Arquivo de exemplo

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 arquivo e salvando-o no diretório do repositório. Você também pode armazenar o arquivo em seu sistema de arquivos local. Por exemplo, salvar o arquivo como permite adicioná-lo à CLI usando o seguinte comando:

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

Observação

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

Para saber mais, confira AUTOTITLE.

Arquivo de exemplo

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

Campos de nível superior

CampoTipoObrigatórioDESCRIÇÃO
namecadeiaYesNome do mercado de kebabs. Máximo de 64 chars.
ownerobjetoYes— informações do proprietário do marketplace.
pluginsmatrizYesLista de entradas de plug-in (consulte a tabela abaixo).
metadataobjetoNão{ description?, version?, pluginRoot? }

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

CampoTipoObrigatórioDESCRIÇÃO
namecadeiaYesNome do plugin Kebab-case. Máximo de 64 chars.
sourceobjeto stringYesOnde buscar o plug-in (caminho relativo, GitHub ou URL).
descriptioncadeiaNãoDescrição do plug-in. Máximo de 1024 caracteres.
versioncadeiaNãoVersão do plug-in.
authorobjetoNão{ name, email?, url? }
homepagecadeiaNãoURL da página inicial do plugin.
repositorycadeiaNãoURL do repositório de origem.
licensecadeiaNãoIdentificador de licença.
keywordscadeia de caracteres[]NãoPesquisar palavras-chave.
categorycadeiaNãoCategoria de plug-in.
tagscadeia de caracteres[]NãoEtiquetas adicionais.
commandscadeia de caracteres cadeia de caracteres[]NãoCaminhos para diretórios de comando.
agentscadeia de caracteres cadeia de caracteres[]NãoCaminhos para diretórios de agente.
skillscadeia de caracteres cadeia de caracteres[]NãoCaminhos para diretórios de habilidades.
hooksobjeto stringNãoCaminho para a configuração de hooks ou objeto de hooks inline.
mcpServersobjeto stringNãoCaminho para a configuração do MCP ou definições do servidor em linha.
lspServersobjeto stringNãoCaminho para a configuração do LSP ou definições do servidor em linha.
strictbooleanNãoQuando (o padrão), os plug-ins devem estar em conformidade com o esquema completo e as regras de validação. Quando a validação relaxada é usada, permite mais flexibilidade, especialmente para instalações diretas ou plugins legados.

Locais de arquivos

ItemCaminho
Plug-ins instalados(instalado por meio de um marketplace) e (instalado diretamente)
Cache do Marketplace~/.copilot/state/marketplace-cache/
Manifesto do Plugin, ou
Manifesto do Marketplaceou
Agents(padrão, substituível no manifesto)
Skills(padrão, substituível no manifesto)
Configuração de ganchosou
Configuração do MCPou
Configuração LSPou

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 , a ID do agente será ). As habilidades são desduplicadas pelo campo do nome dentro do arquivo .

  • 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 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. ~/.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)             │
  └─────────────────────────────────────────────────────────────────────┘