Claude Code lança mods, que reescrevem prompts e interface

Em 1º de outubro, a Anthropic adicionou ao Claude Code um mecanismo de extensão chamado mods. Segundo o blog oficial, um mod é uma pequena função em TypeScript que se conecta aos eventos do Claude Code e pode reescrever prompts, adicionar elementos de interface, substituir funções já existentes ou simplesmente acrescentar uma função nova. O recurso funciona tanto na CLI quanto no app de desktop, exigindo Claude Code 2.1.287 ou superior.

A distribuição segue o sistema de plugins já existente: instala-se pelo marketplace de plugins do Claude, ou executando /plugin durante a sessão. Para compartilhar um mod próprio com outras pessoas, basta empacotá-lo como plugin e enviá-lo ao marketplace.

Quais pontos ele alcança

No Claude Code, cada chamada de ferramenta, pedido de permissão ou renderização de uma área da tela dispara um evento; um mod pode rodar antes ou depois desse evento, ou substituí-lo por completo. A lista oficial de capacidades inclui:

  • reescrever o prompt que chega ao modelo;
  • interceptar, reescrever ou repetir chamadas de ferramenta;
  • aprovar ou negar pedidos de permissão;
  • remover partes do resultado de uma ferramenta antes que o Claude as leia;
  • adicionar botões e campos de entrada à interface.

O tutorial de introdução no blog para desenvolvedores foi escrito por Addy Osmani e detalha melhor o processamento do modelo. Cada hook é um elo numa cadeia de middleware e pode ser escrito de três formas: chamar next(e) primeiro e só depois examinar o resultado — isso é observar; passar adiante um evento com campos alterados — isso é reescrever; não chamar next() e simplesmente retornar {deny: "reason"} — isso é responder. Os eventos cobertos incluem chamadas de ferramenta, envio de prompt, início e fim de um turno, comandos de barra e a renderização da interface.

O exemplo do tutorial é um mod de cerca de 80 linhas chamado Token Weather. Ele desenha acima do campo de entrada uma espécie de “previsão do tempo do contexto”: troca o ícone de clima conforme a proporção de uso da janela de contexto, mostra a contagem atual de tokens e a porcentagem, acompanhada de um minigráfico de linha dos últimos 12 turnos, e indica o quanto subiu em relação ao turno anterior. A parte de interface usa o componente AbovePrompt.

Dos hooks aos mods

O Claude Code já tinha settings hooks: cada evento dispara um comando shell, trocando JSON via stdin e stdout. É simples, mas tem um custo — cada execução é um processo novo, que não guarda nada do que aconteceu antes.

Os mods são carregados uma vez no início da sessão e permanecem residentes depois disso. O tutorial lista três diferenças: conseguem salvar estado, renderizar uma interface que muda dinamicamente e chamar as próprias funções do Claude Code, como abrir um painel ou registrar um comando. Para desenhar o gráfico de linha dos 12 turnos, o Token Weather depende justamente desse estado residente; com um shell hook, seria preciso escrever os dados em disco manualmente.

Olhando essa linha de evolução, a extensibilidade do Claude Code foi construída em camadas: primeiro vieram o CLAUDE.md e os settings hooks, depois o marketplace /plugin, e há poucos dias o suporte ao AGENTS.md também foi implementado como um plugin embutido. Os mods transformam o hook de “um script externo conectado” em “um trecho de código rodando dentro do processo”, ampliando bastante o alcance das modificações possíveis.

Limites de segurança

Com mais alcance, vem mais risco. O blog oficial é direto sobre isso:

Mods run with the same access to your machine as Claude Code itself. They aren't sandboxed, and you should only install mods from sources you trust.

(Os mods têm o mesmo acesso à sua máquina que o próprio Claude Code. Eles não rodam em sandbox, e você só deve instalar mods de fontes em que confia.)

O tutorial descreve o ambiente de execução em outra passagem: o módulo roda em seu próprio ambiente isolado, sem DOM e sem Node, e toda operação externa precisa passar pela interface $. Olhando as duas passagens juntas, fica claro: o que é isolado é o runtime, não as permissões. Basta um mod receber um evento de permissão para que ele possa clicar em “aprovar” no lugar do usuário.

Os planos Team e Enterprise, além de máquinas com configurações gerenciadas, carregam primeiro um mod embutido chamado sec-default, que bloqueia ações de alto risco de mods instalados pelo usuário, como sobrescrever regras de negação de permissão; administradores também podem limitar, no painel enterprise, quais marketplaces podem ser instalados. Contas individuais não têm essa camada de proteção por padrão. Para equipes na China continental, onde a barreira de conta e rede para usar o Claude Code já é alta, os mods devem funcionar no curto prazo mais como uma ferramenta extra de personalização para equipes que já usam o produto; a velocidade com que o ecossistema de mods de terceiros vai crescer depende de quão permissiva for a revisão do marketplace.

Fontes: blog oficial da Anthropic Claude, tutorial de introdução do blog de desenvolvedores do Claude, CocoLoop; o tutorial oficial foi conferido quanto aos requisitos de versão, tipos de evento e número de linhas do código de exemplo.