# Criando um plug-in para GitHub Copilot CLI

Crie um plug-in para compartilhar personalizações em um pacote fácil de instalar.

## Introdução

Plug-ins são pacotes que estendem a funcionalidade de Copilot CLI. Confira [Sobre plug-ins GitHub Copilot](/pt/copilot/concepts/agents/about-plugins).

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

## Estrutura de plug-in

Um plug-in consiste em um diretório com uma estrutura específica. No mínimo, ele deve conter um `plugin.json` arquivo de manifesto na raiz do diretório. Ele também pode conter qualquer combinação de agentes, habilidades, ganchos e configurações de servidor MCP.

### Estrutura de plug-in de exemplo

```text
my-plugin/
├── plugin.json           # Required manifest
├── agents/               # Custom agents (optional)
│   └── helper.agent.md
├── skills/               # Skills (optional)
│   └── deploy/
│       └── SKILL.md
├── hooks.json            # Hook configuration (optional)
└── .mcp.json             # MCP server config (optional)
```

## Criando um plug-in

1. Crie um diretório para o plug-in.

2. Adicione um `plugin.json` arquivo de manifesto à raiz do diretório.

**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"
}
```

Para obter detalhes do conjunto completo de campos que você pode incluir neste arquivo, consulte [referência de plugin da CLI GitHub Copilot](/pt/copilot/reference/copilot-cli-reference/cli-plugin-reference#pluginjson).

1. Adicione alguns componentes ao plug-in criando os arquivos e diretórios apropriados para agentes, habilidades, ganchos e configurações de servidor MCP.

   Por exemplo:

   1. Adicione um agente criando um `NAME.agent.md` arquivo em um `agents` subdiretório.

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

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

   2. Adicione uma habilidade criando um `skills/NAME` subdiretório do diretório do plug-in, onde `NAME` está o nome da sua habilidade. Em seguida, dentro desse subdiretório, crie um `SKILL.md` arquivo que defina a habilidade.

      Por exemplo, para desenvolver uma skill chamada "deploy", crie o seguinte `skills/deploy/SKILL.md`:

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

      Instructions for the skill...
      ```

2. Instale o plug-in localmente, para que você possa testá-lo à medida que o desenvolve.

   Por exemplo, onde `./my-plugin` está o caminho para o diretório do plug-in, insira:

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

3. Verifique se o plug-in foi carregado com êxito exibindo sua lista de plug-ins instalados:

   ```shell copy
   copilot plugin list
   ```

   Ou você pode iniciar uma nova sessão interativa e inserir:

   ```copilot copy
   /plugin list
   ```

4. Verifique se os agentes, as habilidades, os ganchos e as configurações do servidor MCP definidos são carregados corretamente.

   Por exemplo, em uma sessão interativa, para verificar se os agentes personalizados definidos no plug-in foram carregados, insira:

   ```copilot copy
   /agent
   ```

   Para verificar se as habilidades definidas no plug-in foram carregadas, insira:

   ```copilot copy
   /skills list
   ```

5. Use a funcionalidade fornecida pelos componentes do plug-in para verificar se cada componente funciona conforme o esperado.

6. Faça iterações no desenvolvimento do plug-in, conforme necessário.

   > \[!IMPORTANT]
   > Quando você instala um plug-in, seus componentes são armazenados em cache e a CLI lê do cache para sessões subsequentes. Para pegar as alterações feitas em um plug-in local, instale-o novamente:
   >
   > ```shell copy
   > copilot plugin install ./my-plugin
   > ```

7. Depois de concluir o teste, você poderá desinstalar a versão local do plug-in inserindo:

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

   > \[!NOTE]
   > Para desinstalar um plug-in, use o nome do plug-in conforme especificado no `name` campo do arquivo de manifesto do plug-in `plugin.json` , não o caminho para o diretório do plug-in.

## Distribuindo seu plug-in

Para distribuir o plug-in, você pode adicioná-lo a um marketplace. Confira [Criando um marketplace de plugin para GitHub Copilot CLI](/pt/copilot/how-tos/copilot-cli/customize-copilot/plugins-marketplace).

## Leitura adicional

* [Localizando e instalando plug-ins para GitHub Copilot CLI](/pt/copilot/how-tos/copilot-cli/customize-copilot/plugins-finding-installing)
* [referência de plugin da CLI GitHub Copilot](/pt/copilot/reference/copilot-cli-reference/cli-plugin-reference)