Monte o marketplace.json
Para outra pessoa instalar, o mod precisa estar num marketplace: um catálogo que diz quais plugins existem e onde está cada um. É um arquivo só, .claude-plugin/marketplace.json, na raiz do repositório.
O kit da Prompt Advisers (MIT) é um bom modelo: um repositório, um marketplace, dez plugins em plugins/.
🆕 Novo aqui? Marketplace
O marketplace é a lista de plugins que o Claude Code sabe instalar. Você o adiciona uma vez (de uma pasta ou de um repositório) e depois instala plugins dele pelo nome <plugin>@<marketplace>. O nome depois do @ é o name do marketplace.json, não o nome do repositório.
{
"name": "claude-mods-kit",
"owner": {
"name": "Prompt Advisers"
},
"plugins": [
{
"name": "terminal-pet",
"source": "./plugins/terminal-pet",
"description": "A pixel-art crab above the prompt that reacts live to what Claude is doing. /pet for commands."
},
{
"name": "coral-skin",
"source": "./plugins/coral-skin",
"description": "Coral, ink and cream reskin of Claude Code with risk-coded tool rows. Toggle with /skin."
},
source é um caminho relativo à raiz do repositório, sempre começando por ./. O name de cada entrada é o mesmo do plugin.json daquele plugin.| Campo | No kit | No mod do Rafa |
|---|---|---|
name | claude-mods-kit | rafa-mods |
owner.name | Prompt Advisers | o nome dele ou da agência |
plugins[].source | ./plugins/<nome> | ./mods/<nome> |
plugins[].description | uma frase, com o comando | idem, em português |
Publique num repositório
Com o marketplace.json na raiz, o repositório inteiro vira o marketplace. Quem quer instalar faz duas coisas: adiciona o marketplace pelo dono/repo e instala o plugin pelo nome.
O --scope diz onde a instalação vale: user (todos os seus projetos), project (o projeto, e quem clonar o repositório) ou local (só você, só neste projeto). O módulo 1.3 detalha cada um.
Como ler o desenho: só a caixa âmbar é trabalho seu. As duas azuis são os comandos de quem instala. A caixa cinza lembra que a instalação vale para a próxima sessão, não para a que já está aberta.
No terminal, em qualquer pasta (o espelho INEMA do kit):
claude plugin marketplace add inematds/claude-mods-starter-kit --scope user claude plugin install terminal-pet@claude-mods-kit --scope user
Resultado esperado (pela documentação do kit):
o marketplace claude-mods-kit fica registrado e o terminal-pet aparece em claude plugin list. Abra uma sessão nova para o caranguejo aparecer acima do prompt.
claude plugin list e procure terminal-pet. Para desfazer: claude plugin disable terminal-pet@claude-mods-kit --scope user.✓ Repositório pronto
- ✓
.claude-plugin/marketplace.jsonna raiz - ✓ Uma pasta por mod, cada uma com o seu
plugin.json - ✓
claude plugin validateok na raiz e em cada mod
✗ Erros comuns
- ✗ Instalar com o nome do repositório depois do
@ - ✗
sourcesem./ou apontando para fora do repositório - ✗ Esperar o mod na sessão que já estava aberta
Atualize sem quebrar quem usa
A referência oficial separa dois casos. Um marketplace que é uma pasta sua, com source relativo, é lido da própria pasta: edite, rode /reload-plugins e pronto, sem versão nova nem reinstalar.
Todo o resto (marketplace vindo de repositório, URL, git, npm) roda a cópia feita na instalação. Uma mudança sua só chega a quem usa como versão ou commit novo, por claude plugin update e depois /reload-plugins.
Suba a versão no plugin.json
De "version": "0.1.0" para "0.1.1" numa correção. O model-router do kit, por exemplo, está em 0.1.1.
Rode o checar antes do commit
validate, tsc e test, como no módulo 4.3. Quem instala recebe exatamente o que você publicou.
Publique no repositório
Commit e push. O marketplace é o próprio repositório.
Quem usa atualiza
claude plugin update, depois /reload-plugins na sessão. claude plugin list mostra em Read from: de onde cada plugin é lido.
✓ Muda sem quebrar
- ✓ Campo novo no
userConfig, comdefault - ✓ Argumento novo num comando que já existe
- ✓ Texto de mensagem mais claro
✗ Quebra quem usa
- ✗ Renomear o comando (e colidir com outro)
- ✗ Trocar a chave de um valor salvo em
$.store - ✗ Mudar o
namedo plugin
💡 Desenvolva pela pasta, publique pelo repositório
Enquanto mexe, use --plugin-dir (hot-reload) ou um marketplace de pasta (/reload-plugins). Só quando passar no checar, suba a versão e publique. Assim quem instalou pelo repositório nunca recebe um meio-termo.
Revise antes de compartilhar
O guia guides/BUILD-YOUR-OWN.md do kit tem uma seção "Review before sharing" que resume o cuidado: um plugin público é código que outras pessoas vão rodar, com as permissões do Claude Code delas. As ações dele precisam ser fáceis de inspecionar.
Na prática, o Rafa revisa a pasta do mod duas vezes: uma procurando o que tirar, outra conferindo o que precisa estar.
✗ Tire do repositório
- ✗ Arquivos de settings
- ✗ Transcrições de conversa, handoffs, marcadores
- ✗ Caminhos pessoais (
/home/rafa/...) - ✗ Chaves e tokens
- ✗ Prints com dados pessoais e caches gerados
✓ Deixe no repositório
- ✓ O código-fonte e os testes
- ✓ Instruções de instalar, ligar e desligar
- ✓ Uma data clara de compatibilidade (a versão do Claude Code)
- ✓ A licença preservada
⚠️ O .claude-plugin/types/ é gerado
Quando o mod carrega por --plugin-dir, o Claude Code escreve os tipos da sua versão em .claude-plugin/types/. Eles são da sua instalação, não do mod: quem instalar recebe os da versão dela. Confira se a pasta entra ou não no commit, de propósito.
Abra claude na raiz do seu repositório de mods e cole:
Leia todos os arquivos de mods/ e .claude-plugin/marketplace.json. Liste qualquer caminho pessoal, chave, token, e-mail, transcrição de conversa ou arquivo de settings que encontrar, com o arquivo e a linha. Não altere nada.
Faça o projeto final
O projeto final junta as quatro trilhas num mod seu. O exemplo é o do Rafa: ver o que o Claude toca no repositório e não perder trabalho entre sessões. Escolha a sua ideia, mas cumpra os sete itens.
Como ler o desenho: as sete caixas azuis são os requisitos; cada uma vem de um módulo do curso. A linha âmbar embaixo é a prova: sem ela, o projeto não está pronto.
| Requisito | Onde você aprendeu |
|---|---|
Comando /x que responde sem modelo | 1.4 e 3.4 |
| Faixa ou painel | 3.2 e 3.3 |
Estado em $.state (com contrato) | 2.3 |
Teste com claude plugin test, mocks antes do $ | 4.2 |
claude plugin validate ok | 1.2 e 4.3 |
| Botão ou comando de desligar | 3.3 e 4.1 |
| README: o que faz, como ligar e desligar, opções, limites | este módulo |
No terminal, troque <pasta> pela pasta do seu mod e <comando> pelo nome do seu comando:
claude plugin validate <pasta> claude plugin test <pasta> claude -p "/<comando>" --plugin-dir <pasta>
✔ Validation passed; o test mostra 0 fail; e o claude -p devolve a resposta do seu comando prefixada com o nome do plugin, como o recibo-sessao: do módulo 4.3. Os três juntos são a prova do projeto.Siga para os próximos passos
Você terminou o curso técnico. Daqui, três direções: mais fundo nos hooks clássicos e nos plugins de produção, mais perto da guarda com o agent runtime, ou de volta ao código dos dois kits, agora lendo como autor.
E lembre a regra do começo: a API está em acesso antecipado. A cada versão nova do Claude Code, rode o checar nos seus mods e leia o arquivo de tipos antes de culpar o código.
Automação & Hooks no Claude Code
Os hooks clássicos do settings.json, que o mod enxerga como classic.<Nome>.
Plugins de produção
O passo seguinte ao mod: plugins do Claude Code pensados para uso em produção.
Curso INEMA Agent Runtime
A trilha 4 trata de guarda e painel para agentes, o mesmo terreno do módulo 4.1.
Curso básico de mods
A versão para quem não programa.
Em breve
💡 Os dois kits continuam sendo o melhor material
Leia os mods que você ainda não abriu: github.com/inematds/inema-mods (18 mods em português) e github.com/inematds/claude-mods-starter-kit (o Claude Mods Starter Kit, da Prompt Advisers, licença MIT). Cada um tem testes: eles mostram o comportamento melhor que qualquer README.
Teste rápido (opcional): o Rafa publicou uma correção no repositório do marketplace dele. Um colega que instalou pelo repositório ainda vê o comportamento antigo. O que falta?
🎓 Resumo do módulo
Fim do curso:
Você completou as quatro trilhas de Mods do Claude Code — o curso técnico.