Introdução
Plug-ins são pacotes que estendem a funcionalidade de Copilot CLI. Confira Sobre plug-ins GitHub Copilot.
Observação
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 e um plugin.json arquivo de manifesto. O Agent Plugins 1.0 requer o arquivo de manifesto na raiz do plug-in. Plugins legados oferecem suporte a locais adicionais para manifesto. Um plug-in também pode conter qualquer combinação de agentes, habilidades, ganchos e configurações de servidor MCP.
Copilot CLI dá suporte a dois formatos de plug-in:
- Plugins de agentes 1.0, um formato portátil para habilidades e servidores MCP. Declarar o canônico
$schemaemplugin.jsonfaz com que o plug-in adote esse formato. - O formato herdado Copilot , que dá suporte a componentes Copilotespecíficos e caminhos de componente configuráveis. Um manifesto sem os Plug-ins
$schemado Agente continua a usar esse formato.
Há suporte para ambos os formatos. Escolha Plug-ins do Agente 1.0 quando quiser tornar as habilidades e os servidores MCP portáteis entre clientes compatíveis. Escolha o formato herdado quando precisar de caminhos de componente personalizados ou se estiver mantendo um plug-in específico existente Copilot. No Agent Plugins 1.0, as habilidades e os servidores MCP são portáteis, e componentes específicos de Copilot, como agentes, comandos, regras, hooks e servidores LSP, vêm do diretório com.github.copilot no plugin.
Criando um plug-in
-
Crie um diretório para o plug-in.
-
Escolha um formato de plug-in e adicione um
plugin.jsonarquivo de manifesto à raiz do diretório.Para criar um plug-in do Agent Plugins 1.0, inclua a tag canônica
$schema:
Exemplo de arquivo plug-ins do agente 1.0 plugin.json
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.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"]
}
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.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"]
}
O esquema permite apenas $schema, , name, version, description, author, homepage, , repository, license, keywordse extensions como campos de nível superior. Campos de nível superior desconhecidos são relatados e ignorados. O extensions campo é um mapa de dados específicos do cliente chaveados pelo namespace de domínio reverso.
Para criar um plug-in legado, omita os Plug-ins de agente $schema. Você pode usar campos de caminho do componente no manifesto:
Exemplo de arquivo legado plugin.json
{
"name": "my-dev-tools",
"description": "React development utilities",
"agents": "agents/",
"skills": ["skills/", "extra-skills/"],
"hooks": "hooks.json",
"mcpServers": ".mcp.json"
}
{
"name": "my-dev-tools",
"description": "React development utilities",
"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.
-
Adicione componentes ao plug-in.
Em um plug-in do Agent Plugins 1.0, as habilidades devem ser subdiretórios imediatos de
skills/, e cada habilidade deve conter um arquivoSKILL.md. A configuração do MCP deve estar emmcp.jsonna raiz do plug-in. Você não pode substituir esses locais emplugin.json. componentes específicos de Copilot ficam no diretóriocom.github.copilot, comocom.github.copilot/agents/para agentes personalizados ecom.github.copilot/hooks/hooks.jsonpara hooks.Em um plug-in legado, use os locais padrão dos componentes ou os caminhos dos componentes configurados em
plugin.json.Por exemplo:
-
Adicione um agente criando um
NAME.agent.mdarquivo em umagentssubdiretório. Em um plug-in do Agent Plug-ins 1.0, crie o arquivo emcom.github.copilot/agents/. Em um plug-in legado, crie-o emagents/.Markdown --- name: my-agent description: Helps with specific tasks tools: ["bash", "edit", "view"] --- You are a specialized assistant that...
--- name: my-agent description: Helps with specific tasks tools: ["bash", "edit", "view"] --- You are a specialized assistant that... -
Adicione uma habilidade criando um
skills/NAMEsubdiretório do diretório do plug-in, ondeNAMEestá o nome da sua habilidade. Em seguida, dentro desse subdiretório, crie umSKILL.mdarquivo que defina a habilidade.Por exemplo, para desenvolver uma skill chamada "deploy", crie o seguinte
skills/deploy/SKILL.md:Markdown --- name: deploy description: Deploy the current project to... --- Instructions for the skill...
--- name: deploy description: Deploy the current project to... --- Instructions for the skill... -
Para um plugin do Agent Plugins 1.0, adicione servidores MCP em um arquivo
mcp.jsonraiz. A configuração do MCP usa seu próprio esquema de Plug-ins do Agente:JSON { "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json", "mcpServers": { "deployment-api": { "type": "streamable-http", "url": "https://deploy.example.com/mcp" }, "local-validator": { "type": "stdio", "command": "node", "args": ["${PLUGIN_ROOT}/server/index.js"], "cwd": "${PLUGIN_ROOT}", "env": { "DATA_DIR": "${PLUGIN_DATA}/validator" } } } }{ "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json", "mcpServers": { "deployment-api": { "type": "streamable-http", "url": "https://deploy.example.com/mcp" }, "local-validator": { "type": "stdio", "command": "node", "args": ["${PLUGIN_ROOT}/server/index.js"], "cwd": "${PLUGIN_ROOT}", "env": { "DATA_DIR": "${PLUGIN_DATA}/validator" } } } }O nome de transporte
streamable-httpé aceito por servidores HTTP de streaming. Para servidoresstdio, Copilot CLI fornece as variáveis de ambientePLUGIN_ROOTePLUGIN_DATAe expande${PLUGIN_DATA}e${PLUGIN_ROOT}emargs, valores deenvecwd.
-
-
Instale o plug-in localmente, para que você possa testá-lo à medida que o desenvolve.
Por exemplo, onde
./my-pluginestá o caminho para o diretório do plug-in, insira:Shell copilot plugin install ./my-plugin
copilot plugin install ./my-plugin -
Verifique se o plug-in foi carregado com êxito exibindo sua lista de plug-ins instalados:
Shell copilot plugin list
copilot plugin listOu você pode iniciar uma nova sessão interativa e inserir:
Copilot prompt /plugin list
/plugin list -
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 prompt /agent
/agentPara verificar se as habilidades definidas no plug-in foram carregadas, insira:
Copilot prompt /skills list
/skills list -
Use a funcionalidade fornecida pelos componentes do plug-in para verificar se cada componente funciona conforme o esperado.
-
Faça iterações no desenvolvimento do plug-in, conforme necessário.
Importante
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 copilot plugin install ./my-plugin
copilot plugin install ./my-plugin -
Depois de concluir o teste, você poderá desinstalar a versão local do plug-in inserindo:
Shell copilot plugin uninstall NAME
copilot plugin uninstall NAMEObservação
Para desinstalar um plug-in, use o nome do plug-in conforme especificado no
namecampo do arquivo de manifesto do plug-inplugin.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.