Pular para o conteúdo
TRILHA 1

🧬 Anatomia

Abra um mod e veja o que tem dentro: três arquivos, uma função register e hooks com três parâmetros. Monte a pasta, carregue com --plugin-dir, instale por marketplace e termine com o seu primeiro mod funcionando, um comando que conta leituras.

4
Módulos
24
Tópicos
~2h20
Duração
Técnico
Nível
0 de 240%
📁 meu-mod/ plugin.json hooks.json starter.mjs três arquivos register(on, options) $ e next on('tool.call', …) on('command.run', …)

Mapa da trilha

Conteúdo detalhado

1.1Fundamento · ~35 min

🧬 O que é um mod por dentro

O que um mod é por dentro, onde ele roda e como ele se separa do hook clássico, da skill e do MCP.

0 de 60%
O que é:

Quando o Claude Code carrega um mod, ele importa o módulo, chama register(on, options) e passa a chamar os hooks registrados a cada evento.

Por que aprender:

Entender esse momento explica por que um mod pode mudar o que o Claude vê, desenha e faz sem tocar no código do Claude Code.

Conceitos-chave:

mod, plugin, function hook, register, carregamento.

O que é:

Mod roda dentro do processo, em um ambiente próprio; hook clássico é um comando de shell do settings.json; skill é instrução para o modelo; MCP é um servidor de ferramentas.

Por que aprender:

Escolher a forma errada custa caro: muita coisa que parece mod se resolve com uma skill, e vice-versa.

Conceitos-chave:

mod, hook clássico, skill, MCP, settings.json.

O que é:

A função exportada recebe on, para registrar hooks, e options, com os valores dos campos que o manifesto declara em userConfig.

Por que aprender:

É a única porta de entrada do mod: tudo o que ele faz começa nessa função.

Conceitos-chave:

register, on(evento, matcher?, hook), options, userConfig.

O que é:

Todo hook tem a forma ($, e, next): $ é a interface do engine, e é a entrada do evento e next(e) passa adiante na cadeia.

Por que aprender:

Esses três nomes aparecem em todo exemplo do curso; dominá-los é ler qualquer mod.

Conceitos-chave:

$, e, next, cadeia, resultado do evento.

O que é:

O módulo é um ES module que roda num ambiente próprio, sem DOM e sem Node; tudo fora dele é alcançado pelo $.

Por que aprender:

Evita o erro mais comum de quem chega: importar fs do Node ou usar import() dinâmico, que não carregam.

Conceitos-chave:

ES module, ambiente isolado, $ como única saída, import estático.

O que é:

O caminho do curso, do primeiro mod ao marketplace, e os dois kits usados: o Claude Mods Starter Kit (Prompt Advisers, MIT) e o inema-mods.

Por que aprender:

Você sabe de onde vem cada exemplo e em que versão foi conferido: Claude Code 2.1.289.

Conceitos-chave:

starter kit, inema-mods, versão 2.1.289, acesso antecipado.

Ver Completo
1.2Prático · ~35 min

🗂️ Estrutura de arquivos e manifesto

A árvore mínima: .claude-plugin/plugin.json, hooks/hooks.json e o módulo. Opções com userConfig e validação antes de carregar.

0 de 60%
O que é:

A pasta do mod com .claude-plugin/plugin.json, hooks/hooks.json e o módulo de hooks, mais tests/ quando houver teste.

Por que aprender:

Com a árvore certa o Claude Code acha o mod; com um nome trocado, nada carrega e nada avisa alto.

Conceitos-chave:

pasta do plugin, .claude-plugin, hooks/, tests/.

O que é:

O manifesto do plugin: name, version, description e, quando houver, userConfig e types.

Por que aprender:

O name vira o prefixo de comandos, ferramentas e estado; mudar depois quebra quem já usa.

Conceitos-chave:

plugin.json, name, version, manifesto.

O que é:

O hooks.json lista em modules o caminho do módulo, relativo ao próprio hooks.json, como {"modules":["./starter.mjs"]}.

Por que aprender:

É o elo entre o manifesto e o código; o validate mostra se ele aponta para o lugar certo.

Conceitos-chave:

hooks.json, modules, caminho relativo.

O que é:

O módulo pode ser .ts, .tsx, .jsx, .js, .mjs, .cjs, .mts ou .cts, e é sempre ES module; outro sufixo não carrega.

Por que aprender:

O kit começa em .mjs sem compilação; a partir da trilha 2 o curso usa .tsx tipado.

Conceitos-chave:

extensão, ES module, TypeScript, JSX com h.

O que é:

Campos declarados em userConfig no plugin.json viram linhas do menu de configuração e chegam ao mod em options.

Por que aprender:

Deixa o usuário ajustar o mod sem editar código, e cada mudança recarrega o módulo.

Conceitos-chave:

userConfig, options, pluginConfigs, /config.

O que é:

O comando lê o manifesto e o código do módulo como o engine leria e lista os hooks, as chamadas e o que seria recusado.

Por que aprender:

Pega o erro antes de abrir uma sessão: é o primeiro passo de todo ciclo de mudança.

Conceitos-chave:

claude plugin validate, hooks listados, calls, Validation passed.

Ver Completo
1.3Prático · ~35 min

🔄 Carregar, recarregar e instalar

Do --plugin-dir com hot-reload à instalação por marketplace, com escopo certo e desinstalação limpa.

0 de 60%
O que é:

A flag carrega o mod de uma pasta do disco só para aquela sessão; repita a flag para carregar vários.

Por que aprender:

É o jeito de desenvolver: nada fica instalado, e fechar a sessão desfaz tudo.

Conceitos-chave:

--plugin-dir, sessão, pasta local.

O que é:

Numa sessão interativa a pasta é vigiada: salvar um arquivo roda o register de novo num ambiente novo, e os timers antigos caem.

Por que aprender:

Você ajusta e vê na hora, sem reiniciar o Claude Code.

Conceitos-chave:

hot-reload, pasta vigiada, ambiente novo, timers.

O que é:

A variável de ambiente nomeia as mesmas pastas, com caminho absoluto, para sessões abertas pelo app desktop ou por um SDK.

Por que aprender:

No desktop não existe linha de comando para pôr a flag; a variável resolve.

Conceitos-chave:

CLAUDE_CODE_PLUGIN_DIRS, desktop, SDK, settings env.

O que é:

Registrar uma pasta ou repositório como marketplace e instalar o plugin dele com claude plugin install.

Por que aprender:

É como o mod chega às sessões de todo dia sem flag nenhuma.

Conceitos-chave:

marketplace, claude plugin marketplace add, claude plugin install.

O que é:

O escopo diz onde a instalação vale: para você em todo projeto, para o projeto inteiro ou só na sua cópia local.

Por que aprender:

Instalar no escopo errado espalha o mod onde não devia ou esconde de quem precisa.

Conceitos-chave:

--scope user, project, local.

O que é:

Desligar com claude plugin disable e remover a instalação sem deixar marketplace ou config esquecidos.

Por que aprender:

Mod que não sai direito vira suspeito de todo comportamento estranho depois.

Conceitos-chave:

claude plugin disable, remover a instalação, claude plugin list.

Ver Completo
1.4Prático · ~35 min

🚀 Seu primeiro mod: comando e contador

O starter-mod do kit da Prompt Advisers: o comando /readcount, o contador de leituras, validate, test e claude -p.

0 de 60%
O que é:

Copiar o modelo do kit da Prompt Advisers, que já traz manifesto, hooks.json, starter.mjs e um teste.

Por que aprender:

Começar de um mod que passa no validate e no test tira o atrito do primeiro dia.

Conceitos-chave:

starter-mod, cópia, read-counter-example.

O que é:

O starter.mjs registra o comando em session.start, conta leituras bem-sucedidas em tool.call com matcher Read e responde em command.run.

Por que aprender:

São três dos eventos mais usados, num arquivo curto que você lê inteiro.

Conceitos-chave:

session.start, tool.call, matcher, command.run, $.command.register.

O que é:

Rodar claude plugin validate e claude plugin test na pasta copiada e ler as duas saídas.

Por que aprender:

Você confirma que a cópia está íntegra antes de mudar uma linha.

Conceitos-chave:

Validation passed, 1 pass, 0 fail.

O que é:

Chamar /readcount com claude -p e --plugin-dir: o próprio mod responde, sem turno do modelo.

Por que aprender:

É o teste de fumaça mais barato que existe e vale para qualquer comando de mod.

Conceitos-chave:

claude -p, comando de barra, resposta sem modelo.

O que é:

Trocar o matcher do tool.call para contar outra ferramenta, como Edit ou Write, e rodar o teste de novo.

Por que aprender:

É a primeira mudança real: você vê o teste quebrar e sabe consertar.

Conceitos-chave:

matcher, tool, teste que falha, ajuste.

O que é:

Trocar o name do manifesto, o nome do comando e as mensagens para o mod virar seu.

Por que aprender:

Nome repetido colide com outros mods; seu nome é o prefixo de tudo o que o mod registra.

Conceitos-chave:

name, prefixo, colisão, README.

Ver Completo
← Voltar ao início Próxima trilha: Eventos e estado →