Índice
No Claude Code, um conjunto de skills, subagentes, hooks e configuração MCP forma um plugin. Um catálogo com os nomes dos plugins e os locais de onde obtê-los é um marketplace. Juntos, eles permitem reutilizar procedimentos entre projetos ou compartilhar um conjunto de extensões com a equipe.
Este artigo acompanha você da instalação de um plugin existente à criação de uma skill de saudação e sua distribuição por um catálogo. Distinga três coisas: (1) o plugin e seu catálogo de distribuição ficam em níveis diferentes; (2) registrar um catálogo e instalar um plugin são operações separadas; (3) o sucesso de um comando de validação não garante comportamento correto ou segurança. As etapas seguem o guia oficial de criação.
Agrupe recursos e depois distribua
— Escolha skills, agentes, hooks e integrações MCP em um catálogo
Um plugin é um conjunto de recursos; um marketplace é seu catálogo de distribuição, como um repositório Git.
Registre o catálogo → instale plugins individuais → confira se os recursos necessários funcionam.
Ao criar os seus, valide o plugin e o catálogo antes de distribuí-los.
1. O que são plugins do Claude Code?
Um plugin empacota extensões do Claude Code em um diretório que você pode compartilhar e reutilizar. Não precisa ter todos os componentes: pode conter apenas uma skill.
| Componente | Local | Finalidade |
|---|---|---|
| Skills | skills/<name>/SKILL.md | Procedimentos selecionados automaticamente conforme a descrição e as configurações, ou por invocação explícita do usuário (Entenda as Skills) |
| Comandos de barra | commands/ | O formato Markdown antigo. Agora são tratados como skills; para novos conteúdos, recomenda-se skills/ |
| Subagentes | agents/ | Definições de agentes com funções separadas. Confira o carregamento em Custom Agents dentro de /context |
| Hooks | hooks/hooks.json | Executados conforme eventos e condições configurados, como PostToolUse |
| Servidores MCP | .mcp.json | Conexões com ferramentas e dados externos (MCP) |
| Manifesto | .claude-plugin/plugin.json | Nome, descrição, versão e outros metadados. Opcional quando se usa apenas a estrutura padrão |
Para procedimentos que você usa sozinho, o diretório .claude/skills/ do projeto pode bastar. Plugins ajudam quando você quer distribuir o mesmo conjunto para vários lugares e gerenciar suas atualizações. Também existem extensões como suporte a LSP e monitoramento, com requisitos de ambiente e via de distribuição. É mais fácil começar com uma skill pequena e verificá-la.
2. Estrutura de um plugin
Esta é a estrutura padrão de um plugin individual. Se houver manifesto, ele fica em .claude-plugin/plugin.json; skills/, agents/ e hooks/ pertencem à raiz do próprio plugin. O catálogo de distribuição, marketplace.json, é separado. O exemplo adiante o coloca em .claude-plugin/marketplace.json do marketplace.
my-plugin/
├── .claude-plugin/
│ └── plugin.json # metadados deste plugin
├── skills/
│ └── code-review/SKILL.md
├── agents/
│ └── security-reviewer.md
├── hooks/hooks.json
├── .mcp.json
└── README.md
Veja um exemplo de plugin.json. Você pode omitir totalmente o manifesto se usar apenas a estrutura padrão de diretórios. Se o fornecer, name é obrigatório; descrição e versão são opcionais.
{
"name": "my-first-plugin",
"description": "Um plugin de saudação para aprender o básico",
"version": "1.0.0",
"author": { "name": "Seu nome" }
}
O name também define o namespace da skill: neste exemplo, invoque /my-first-plugin:hello. Na distribuição armazenada em cache via Git, a versão de plugin.json tem prioridade, seguida da versão do plugin no catálogo. Se nenhuma existir, usa-se o SHA do commit resolvido da origem. Manter uma versão explícita inalterada impede que mudanças apenas no código tornem o plugin elegível para atualização. O carregamento direto de um diretório local e as fontes do tipo command seguem outras regras. Consulte a documentação de gerenciamento de versões.
3. Como usar /plugin e marketplaces
Comece com /plugin. Ele abre um gerenciador com as abas Discover, Installed, Marketplaces e Errors. Estes são os comandos básicos:
# Adicionar um marketplace (catálogo de distribuição)
/plugin marketplace add anthropics/claude-plugins-official
/plugin marketplace add ./my-marketplace # caminho local
/plugin marketplace add https://example.com/marketplace.json
# Escolher o escopo na interface, instalar e conferir o estado de ativação
/plugin install plugin-name@marketplace-name
/plugin enable plugin-name@marketplace-name
/plugin disable plugin-name@marketplace-name
/plugin uninstall plugin-name@marketplace-name
# Instalados por marketplaces (filtrar com --enabled / --disabled)
/plugin list
/plugin list --enabled
# Recarregar mudanças quando necessário e conferir o resultado
/reload-plugins
Adicionar um catálogo não instala plugins por si só. Instale-os individualmente após o registro. O comando interativo /plugin install permite escolher o escopo na tela de detalhes. O comando de shell claude plugin install usa user por padrão; informe --scope para alterá-lo.
Após instalar, confira se o resultado indica ativo, aguardando recarga ou erro de carregamento. A recarga pode ser adiada por seu efeito sobre o cache do prompt. Em sessões sem terminal, mudanças MCP de plugins podem só valer na próxima sessão. /plugin list cobre apenas instalações por marketplaces; não lista tudo que chega por sincronização ou diretórios de skills. Consulte as condições de instalação e recarga e, se o MCP não conectar, a solução de erros de conexão MCP.
4. O que é um marketplace?
Um marketplace é um catálogo com um .claude-plugin/marketplace.json que lista plugins e suas origens, fornecido por um repositório Git, caminho local ou arquivo hospedado. Há catálogos oficiais e comunitários.
Marketplaces oficial e comunitário
• Oficial (claude-plugins-official): tem curadoria da Anthropic. É registrado automaticamente na primeira inicialização interativa, mas uso não interativo anterior, restrições de rede ou políticas da organização podem impedir o registro. Se estiver ausente, confira essas condições e use /plugin marketplace add anthropics/claude-plugins-official em um ambiente onde isso seja permitido. Explore pelo Discover de /plugin ou pelo diretório oficial.
• Comunitário (claude-community): catálogo de propostas que passaram por validação automatizada e revisão de segurança. O repositório é anthropics/claude-plugins-community; adicione-o com /plugin marketplace add anthropics/claude-plugins-community. Instale usando /plugin install name@claude-community. Não confunda o nome do repositório com o nome registrado do catálogo.
Se faltar um catálogo, confira o registro; se faltar um plugin específico, confira nome e origem. Em um catálogo interno, também importa que os usuários possam acessar o repositório e o próprio plugin. Ao distribuir um arquivo JSON por URL, o conteúdo do plugin em caminhos relativos não é buscado nessa URL.
5. Crie e publique seu próprio plugin
Este exemplo cria uma skill de saudação. Comece com a estrutura abaixo. O diretório .claude-plugin externo serve ao catálogo; o interno, ao plugin individual. Execute os comandos a partir do diretório pai que contém my-marketplace.
my-marketplace/
├── .claude-plugin/
│ └── marketplace.json
└── plugins/
└── my-first-plugin/
├── .claude-plugin/
│ └── plugin.json
└── skills/
└── hello/
└── SKILL.md
(1) Salve o JSON da seção anterior no arquivo interno my-marketplace/plugins/my-first-plugin/.claude-plugin/plugin.json. (2) Salve o conteúdo abaixo em my-marketplace/plugins/my-first-plugin/skills/hello/SKILL.md. O exemplo usa disable-model-invocation: true para que a skill só seja usada quando invocada explicitamente.
---
name: hello
description: Dar uma saudação breve usando um nome
disable-model-invocation: true
---
Cumprimente o usuário brevemente.
Se houver argumentos, inclua esse nome na saudação.
Argumentos: $ARGUMENTS
(3) Escreva o catálogo no arquivo externo my-marketplace/.claude-plugin/marketplace.json. Os caminhos relativos de source são resolvidos em relação à raiz do marketplace, não ao diretório que contém marketplace.json.
{
"name": "my-plugins",
"owner": { "name": "Seu nome" },
"description": "Catálogo de prática para distribuir uma skill de saudação",
"plugins": [
{
"name": "my-first-plugin",
"source": "./plugins/my-first-plugin",
"description": "Uma skill que dá uma saudação breve usando um nome"
}
]
}
(4) Valide o catálogo e o plugin separadamente. O primeiro verifica o esquema do catálogo e o plugin.json de entradas locais, mas não lê cada arquivo de skill ou hook. O segundo também cobre arquivos dos diretórios padrão do plugin individual. Nenhuma dessas verificações garante execução correta ou segurança.
claude plugin validate ./my-marketplace
claude plugin validate ./my-marketplace/plugins/my-first-plugin
# Carregar o plugin individual nesta sessão para testá-lo
claude --plugin-dir ./my-marketplace/plugins/my-first-plugin
Na sessão interativa aberta, execute /my-first-plugin:hello Alex e confira se há uma saudação breve que inclua Alex. Uma verificação funcional significa examinar a saída e procurar efeitos colaterais indesejados, não apenas confirmar que o comando está visível. Se não carregar, confira os nomes nos dois JSONs, o caminho de origem e o local e o frontmatter de SKILL.md.
(5) Para testar também a via do catálogo, encerre a sessão de teste anterior e inicie o Claude Code sem --plugin-dir. Os comandos abaixo registram entradas na sua configuração: experimente em um projeto de prática e escolha o escopo de instalação.
/plugin marketplace add ./my-marketplace
/plugin install my-first-plugin@my-plugins
/my-first-plugin:hello Alex
(6) Para distribuir, publique o conteúdo de my-marketplace como raiz de um repositório Git que os usuários possam obter. Inclua no commit tanto o diretório plugins quanto o catálogo. Os usuários adicionam o owner/repo real e instalam o mesmo my-first-plugin@my-plugins. Essa estrutura com caminhos relativos funciona no registro por Git ou diretório local; não pode ser usada sem alterações com uma URL isolada de marketplace.json. Consulte como criar, distribuir e validar catálogos.
Você não precisa solicitar inclusão no catálogo oficial para distribuir pelo seu próprio repositório Git. Se também quiser aparecer no comunitário, autores individuais podem usar o formulário de envio do Console. O formulário de claude.ai exige organização Team/Enterprise e permissões administrativas. Enviar para community é diferente de aparecer no catálogo oficial com curadoria da Anthropic.
6. Escopos de instalação e segurança
Os escopos de instalação são user (todos os seus projetos), project (configurações compartilhadas do projeto) e local (só você neste projeto). Diferencie escolher o escopo interativamente do padrão user da CLI de shell. As configurações managed são controladas por administradores e restringem mudanças de configuração pelos usuários.
Equipes podem compartilhar origens e estado de ativação por extraKnownMarketplaces e enabledPlugins em .claude/settings.json. Porém, escrever configurações compartilhadas não equivale a concluir a instalação no computador de cada integrante. Cada membro precisa instalar plugins de fontes externas. Após confiar no projeto, confira registro do catálogo, permissões de acesso e resultado da instalação em cada ambiente.
⚠️ Segurança: plugins podem executar código arbitrário
As orientações oficiais de segurança explicam que plugins podem executar código arbitrário com seus privilégios. Itens do catálogo comunitário passam por validação automatizada e revisão de segurança, mas isso não garante o comportamento esperado. Confira publicador, skills, hooks e servidores MCP incluídos. Organizações podem limitar origens dos catálogos com strictKnownMarketplaces nas configurações managed; um array vazio rejeita fontes de marketplaces, inclusive a oficial. Esse ajuste não monitora todas as operações de rede ou de arquivos realizadas por um plugin. Vias como a sincronização de claude.ai também têm configurações separadas.
Resumo
Um plugin é uma unidade de distribuição de extensões; um marketplace é seu catálogo. Usuários registram o catálogo → instalam plugins individuais → conferem ativação e comportamento. Autores preparam plugin e catálogo → validam ambos → invocam o recurso → distribuem por um repositório acessível. Conferir escopos, permissões de acesso e a versão usada nas atualizações facilita reproduzir a configuração em outros lugares.
O registro automático do catálogo oficial tem condições, e itens revisados não têm garantia incondicional de funcionamento. Comece com um recurso necessário, verifique o resultado e depois amplie. Outros mecanismos relacionados estão em Hooks do Claude Code, Claude Agent Skills, MCP e Artifacts do Claude Code.
Perguntas frequentes
P. Qual a diferença entre plugin e skill?
R. Uma skill é um procedimento a executar; um plugin é uma unidade de distribuição que a agrupa com hooks, configuração MCP e outros componentes. Invoque explicitamente uma skill do plugin com /plugin-name:skill-name. A seleção automática depende da descrição e das configurações.
P. Não encontro o marketplace oficial.
R. O oficial, claude-plugins-official, é registrado automaticamente na primeira inicialização interativa, mas uso não interativo anterior, restrições de rede ou políticas gerenciadas podem impedir isso. Em um ambiente onde seja permitido, tente /plugin marketplace add anthropics/claude-plugins-official. Registrar o catálogo não instala plugins individuais.
P. Qualquer pessoa pode distribuir um plugin que criou?
R. Uma possibilidade é colocar o plugin e o catálogo em um repositório Git próprio e acessível. Solicitar inclusão em community é outra operação; autores individuais podem usar o formulário do Console. O envio por claude.ai tem requisitos de organização e permissões. Confira também se source do catálogo aponta para o local real do plugin.
P. Por que meu plugin não atualiza após mudar o código?
R. Na distribuição armazenada em cache via Git, a versão de plugin.json tem prioridade máxima. Mudar apenas a versão do catálogo, mantendo aquela fixa, não atualiza o plugin. Se nenhum fornecer uma versão, usa-se o SHA do commit Git resolvido, mas as operações de atualização e a referência da origem também importam. Carregamento direto de diretório local, fontes archive e fontes command seguem outras regras.
P. Um plugin é seguro se validate passar?
R. Não. Validar estrutura e configuração é diferente de testar comportamento real e segurança. Validar apenas o catálogo não inspeciona o corpo das skills nem arquivos semelhantes. Valide o plugin individual e teste recursos e efeitos colaterais. A revisão para inclusão em community também não substitui a verificação do publicador e do código incluído.