# referência de plugin da CLI GitHub Copilot

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

> \[!NOTE]
> 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.

| Command                                        | Descrição                                                                                                                          |
| ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `copilot plugin install SPECIFICATION`         | Instale um plug-in. Consulte [Especificação do plugin para `install` o comando](#plugin-specification-for-install-command) abaixo. |
| `copilot plugin uninstall NAME`                | Remover um plug-in                                                                                                                 |
| `copilot plugin list`                          | Listar plug-ins instalados                                                                                                         |
| `copilot plugin update NAME`                   | Atualizar um plug-in                                                                                                               |
| `copilot plugin marketplace add SPECIFICATION` | Registrar um marketplace                                                                                                           |
| `copilot plugin marketplace list`              | Listar marketplaces registrados                                                                                                    |
| `copilot plugin marketplace browse NAME`       | Navegue pelos plugins do marketplace                                                                                               |
| `copilot plugin marketplace remove NAME`       | Cancelar o registro de um marketplace                                                                                              |

### Especificação do plug-in para `install` comando

| Formato        | Exemplo                      | Descrição                            |
| -------------- | ---------------------------- | ------------------------------------ |
| Marketplace    | `plugin@marketplace`         | Plug-in de um marketplace registrado |
| GitHub         | `OWNER/REPO`                 | Raiz de um GitHub repositório        |
| GitHub  Subdir | `OWNER/REPO:PATH/TO/PLUGIN`  | Subdiretório em um repositório       |
| Git URL        | `https://github.com/o/r.git` | Qualquer URL do Git                  |
| Caminho local  |                              |                                      |

```
          `./my-plugin` ou `/abs/path`    | Diretó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](/pt/copilot/how-tos/copilot-cli/customize-copilot/plugins-creating).

### Campo obrigatório

| Campo  | Tipo   | Descrição                                                                        |
| ------ | ------ | -------------------------------------------------------------------------------- |
| `name` | cadeia | Nome do plugin Kebab-case (apenas letras, números e hífens). Máximo de 64 chars. |

### Campos de metadados opcionais

| Campo         | Tipo   | Descrição                                   |
| ------------- | ------ | ------------------------------------------- |
| `description` | cadeia | Breve descrição. Máximo de 1024 caracteres. |
| `version`     | cadeia | Versão semântica (por exemplo, `1.0.0`).    |
| `author`      | objeto |                                             |

```
          `name` (obrigatório), `email` (opcional), `url` (opcional). |
```

\| `homepage`   | cadeia    | URL da página inicial do plugin. |
\| `repository` | cadeia    | URL do repositório de origem. |
\| `license`    | cadeia    | Identificador de licença (por exemplo, `MIT`). |
\| `keywords`   | cadeia de caracteres\[]  | Pesquisar palavras-chave. |
\| `category`   | cadeia    | Categoria de plug-in. |
\| `tags`       | cadeia 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.

| Campo        | Tipo                                            | Default   | Descrição                                                                                                    |
| ------------ | ----------------------------------------------- | --------- | ------------------------------------------------------------------------------------------------------------ |
| `agents`     | cadeia de caracteres \| cadeia de caracteres\[] | `agents/` | Caminhos para diretórios de agente (`.agent.md` arquivos).                                                   |
| `skills`     | cadeia de caracteres \| cadeia de caracteres\[] | `skills/` | Caminhos para diretórios de habilidades (`SKILL.md` arquivos).                                               |
| `commands`   | cadeia de caracteres \| cadeia de caracteres\[] | —         | Caminhos para diretórios de comando.                                                                         |
| `hooks`      | objeto string \|                                | —         | Caminho para um arquivo de configuração de ganchos ou um objeto de ganchos embutido.                         |
| `mcpServers` | objeto string \|                                | —         | Caminho para um arquivo de configuração MCP (por exemplo, `.mcp.json`) ou definições de servidor integradas. |
| `lspServers` | objeto string \|                                | —         | Caminho para um arquivo de configuração LSP ou definições de servidor em linha.                              |

### Arquivo de exemplo `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`

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:

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

> \[!NOTE]
> 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](/pt/copilot/how-tos/copilot-cli/customize-copilot/plugins-marketplace).

### Arquivo de exemplo `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]
> 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

| Campo   | Tipo   | Obrigatório | Descrição                                      |
| ------- | ------ | ----------- | ---------------------------------------------- |
| `name`  | cadeia | Sim         | Nome do mercado de kebabs. Máximo de 64 chars. |
| `owner` | objeto | Sim         |                                                |

```
          `{ name, email? }` — informações do proprietário do marketplace. |
```

\| `plugins`  | matriz    | Sim      | Lista de entradas de plug-in (consulte a tabela abaixo). |
\| `metadata` | objeto   | No       | `{ description?, version?, pluginRoot? }` |

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

| Campo         | Tipo                                            | Obrigatório | Descrição                                                                                                                                                                                                                                              |
| ------------- | ----------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `name`        | cadeia                                          | Sim         | Nome do plugin Kebab-case. Máximo de 64 chars.                                                                                                                                                                                                         |
| `source`      | objeto string \|                                | Sim         | Onde buscar o plug-in (caminho relativo GitHub ou URL).                                                                                                                                                                                                |
| `description` | cadeia                                          | No          | Descrição do plug-in. Máximo de 1024 caracteres.                                                                                                                                                                                                       |
| `version`     | cadeia                                          | No          | Versão do plug-in.                                                                                                                                                                                                                                     |
| `author`      | objeto                                          | No          | `{ name, email?, url? }`                                                                                                                                                                                                                               |
| `homepage`    | cadeia                                          | No          | URL da página inicial do plugin.                                                                                                                                                                                                                       |
| `repository`  | cadeia                                          | No          | URL do repositório de origem.                                                                                                                                                                                                                          |
| `license`     | cadeia                                          | No          | Identificador de licença.                                                                                                                                                                                                                              |
| `keywords`    | cadeia de caracteres\[]                         | No          | Pesquisar palavras-chave.                                                                                                                                                                                                                              |
| `category`    | cadeia                                          | No          | Categoria de plug-in.                                                                                                                                                                                                                                  |
| `tags`        | cadeia de caracteres\[]                         | No          | Etiquetas adicionais.                                                                                                                                                                                                                                  |
| `commands`    | cadeia de caracteres \| cadeia de caracteres\[] | No          | Caminhos para diretórios de comando.                                                                                                                                                                                                                   |
| `agents`      | cadeia de caracteres \| cadeia de caracteres\[] | No          | Caminhos para diretórios de agente.                                                                                                                                                                                                                    |
| `skills`      | cadeia de caracteres \| cadeia de caracteres\[] | No          | Caminhos para diretórios de habilidades.                                                                                                                                                                                                               |
| `hooks`       | objeto string \|                                | No          | Caminho para a configuração de hooks ou objeto de hooks inline.                                                                                                                                                                                        |
| `mcpServers`  | objeto string \|                                | No          | Caminho para a configuração do MCP ou definições do servidor em linha.                                                                                                                                                                                 |
| `lspServers`  | objeto string \|                                | No          | Caminho para a configuração do LSP ou definições do servidor em linha.                                                                                                                                                                                 |
| `strict`      | boolean                                         | No          | Quando `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

| Item                | Caminho |
| ------------------- | ------- |
| 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 Marketplace    | Diretó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.json`ou `.github/plugin/plugin.json``.claude-plugin/plugin.json` (verificado nesta ordem) |
\| Manifesto do Marketplace |
`marketplace.json`, `.plugin/marketplace.json`ou `.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.

```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. ~/.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. ~/.agents/skills/                (personal-agents)              │
  │  7. ~/.claude/skills/                (personal-claude)              │
  │  8. PLUGIN: skills/ dirs             (plugin)                       │
  │  9. 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

* [CLI do GitHub Copilot](/pt/copilot/how-tos/copilot-cli)
* [referência de comando da CLI GitHub Copilot](/pt/copilot/reference/copilot-cli-reference/cli-command-reference)
* [referência programática do GitHub Copilot CLI](/pt/copilot/reference/copilot-cli-reference/cli-programmatic-reference)