Visão geral de mods
Adicione painéis, comandos e regras de chamada de ferramentas ao Claude Code com um mod. Veja o que um mod pode fazer, como criar ou instalar um, e onde os mods são executados.
Um mod é um plugin que muda como o Claude Code se parece e se comporta. É feito de manipuladores de eventos em JavaScript ou TypeScript: Claude Code chama um quando um evento acontece, como uma chamada de ferramenta, um prompt enviado, ou uma parte da interface sendo desenhada, e o manipulador pode observar o evento, alterá-lo ou assumir o controle dele. Use um mod para adicionar um recurso próprio ao Claude Code, como um painel que mostra graficamente o quão cheio seu contexto está após cada solicitação. Para os arquivos em um mod e um exemplo completo, veja Como um mod funciona.
Os hooks existentes do Claude Code também são executados em eventos, como um comando shell, uma solicitação HTTP ou um prompt que você configura em um arquivo de configurações. Os manipuladores de um mod são funções que são executadas dentro do Claude Code em vez disso. Claude Code chama ambos os tipos de hooks: nessas páginas, "hook" significa um manipulador de um mod, e o tipo de arquivo de configurações é um "settings hook".
O que um mod pode fazer
Settings hooks, skills, linhas de status e servidores MCP funcionam de fora do Claude Code: cada um executa um script ou fornece ao Claude texto ou ferramentas. Um mod é executado dentro do Claude Code, então pode fazer coisas que eles não conseguem:
- Desenhar uma interface que você pode usar: um painel ao lado da transcrição ou uma faixa acima do prompt, com abas, botões e campos de texto. Veja Desenhar na interface.
- Redesenhar a própria interface do Claude Code: substituir ou reformatar partes que o Claude Code desenha, como a linha de uma chamada de ferramenta, o spinner ou o diálogo que o Claude faz perguntas. Veja Alterar o que o Claude Code já desenha.
- Intervir em uma chamada de ferramenta ou uma solicitação: por exemplo, manter uma chamada de ferramenta enquanto você faz uma pergunta ao usuário, responder sem executar a ferramenta ou enviar uma solicitação para um modelo diferente. Veja Guardar ou alterar uma chamada de ferramenta e Seguir um turno.
- Executar seu próprio código em um comando: um
/commandque executa sua função imediatamente, sem nenhum turno do Claude, mesmo enquanto o Claude está trabalhando. Veja Adicionar um comando ou uma ferramenta. - Compartilhar dados entre hooks: os hooks de um mod compartilham as variáveis em seu arquivo, então o que um hook registra, outro pode mostrar. Por exemplo, um hook pode contar chamadas de ferramenta enquanto outro mostra a contagem ao lado do spinner, ou um pode ler o uso de tokens de cada solicitação enquanto outro o mostra em gráfico em um painel. Veja Reagir a eventos.
Os mods funcionam no CLI do Claude Code e na aba Code do aplicativo Claude Desktop. Veja Onde os mods são executados para entender como eles se comportam em outros lugares, como na extensão VS Code, claude -p e sessões na nuvem. Se um settings hook, uma skill ou um servidor MCP já faz o que você precisa, compare-os antes de escrever um mod. Para gerenciar mods para uma organização, veja Gerenciar mods para sua organização.
Obter um mod
Você pode começar com um mod de três maneiras:
- Use um que você já tem: alguns dos próprios recursos do Claude Code são mods, como
/diff. Veja Mods integrados ao Claude Code. - Crie um: descreva o que você quer em uma sessão do Claude Code, e o Claude escreve o mod. Veja Peça ao Claude por um mod. Para aprender como o código de um mod funciona, escreva um você mesmo.
- Instale um: veja Instalar ou atualizar um mod
Instalar ou atualizar um mod
Um mod é código que é executado com suas permissões. Pode ler e escrever seus arquivos, iniciar processos e fazer solicitações de rede. Instale mods apenas de autores e marketplaces em que você confia. Veja Decidir se confia em um mod.
Um mod é instalado como um plugin, a partir de um marketplace. Forneça o nome do plugin, um @ e o nome do marketplace. Estes exemplos instalam um plugin chamado token-chart de um marketplace chamado your-org:
- Em uma sessão do Claude Code, execute
/plugin install token-chart@your-org. - No seu shell, execute
claude plugin install token-chart@your-org.
Instalar plugins cobre marketplaces, escopos, a extensão VS Code e o aplicativo Desktop, e manter plugins atualizados, tudo isso se aplica a um plugin que contém um mod sem alterações.
Se você instalar ou atualizar um mod do seu shell enquanto uma sessão está aberta, execute /reload-plugins nessa sessão para carregá-lo. Caso contrário, ele carrega na próxima vez que você iniciar o Claude Code.
Decidir se confia em um mod
Um mod é código que é executado com suas permissões, dentro do Claude Code. Instale mods apenas de autores e marketplaces em que você confia.
O que um mod pode alcançar
Um mod é executado com suas permissões, então antes de instalar um, saiba o que ele tem acesso. Uma vez carregado, um mod pode:
- Agir em sua máquina como você: ler e escrever arquivos em qualquer lugar que sua conta de usuário possa, iniciar programas e fazer solicitações de rede
- Ler seus segredos: variáveis de ambiente e arquivos de configurações, incluindo uma chave de API que você mantém em qualquer um deles
- Ver sua sessão: cada prompt que você envia e cada chamada de ferramenta que o Claude faz
- Alterar sua sessão: reescrever um prompt ou uma chamada de ferramenta, enviar um prompt como se você o tivesse digitado, ou enviar uma mensagem para outra de suas sessões
- Agir sem pedir a você: aprovar uma chamada de ferramenta antes de você ser perguntado
- Gastar seu uso: chamar um modelo em seu plano ou chave de API
Um mod que aprova chamadas de ferramenta pode aprovar uma que uma regra ask solicitaria, ou que um de seus próprios hooks PreToolUse bloqueou. Estender permissões com hooks lista o que tal mod pode aprovar, incluindo quando pode aprovar uma chamada que uma regra deny recusa.
Um mod pode reformatar grande parte da interface do Claude Code, mas não o prompt de permissão. Não pode alterar o que um prompt mostra a você.
Listar o que um mod faz antes de instalá-lo
Antes de instalar um mod, você pode listar quais eventos ele conecta e o que pede ao Claude Code para fazer, como ler um arquivo ou fazer uma solicitação de rede, sem executá-lo. Obtenha os arquivos do plugin primeiro, por exemplo clonando seu repositório. Depois, no seu shell, execute claude plugin validate no diretório do plugin:
claude plugin validate ./some-mod
As linhas hooks: e calls: na saída listam os eventos que o mod manipula e o que pede ao Claude Code para fazer. Revisar o que um mod pode fazer mostra a saída e quais chamadas procurar.
Ativar ou desativar mods
Os mods requerem Claude Code v2.1.287 ou posterior, e estão ativados por padrão. No seu shell, execute claude --version para verificar e atualize o Claude Code se o seu for mais antigo.
Para desativar mods, escolha quantos parar e por quanto tempo. Para ativá-los novamente, desfaça a mesma alteração:
- Um mod: desabilite ou desinstale seu plugin da aba Installed em
/plugin - Cada mod instalado, para uma sessão: inicie o Claude Code com
--safe-mode, que também deixa de fora suas outras personalizações - Cada mod que você instalou, em cada sessão: defina
"disableAllHooks": trueem~/.claude/settings.json. Seus settings hooks e linha de status personalizada também param. O que sua organização gerencia continua funcionando.
Se você usar o Claude Code através de uma organização, um administrador também pode limitar quais mods carregam. Os administradores começam em Impedir que mods instalados pelo usuário sejam carregados.
Para descobrir se mods podem carregar para você, veja Verificar se mods podem carregar.
Se você definiu CLAUDE_CODE_ENABLE_FUNCTION_HOOKS durante acesso antecipado, remova-o. Claude Code v2.1.287 e posterior o ignora, então defini-lo como 0 não mantém mods desativados.
Ver quais mods uma sessão carregou
Para ver quais mods uma sessão de terminal carregou, execute /plugin no prompt do Claude Code. Uma linha atenuada sob as abas fornece a contagem e os nomes, como 1 mod active · first-mod. Se um mod que você instalou não estiver nomeado lá, veja Descobrir por que um mod não faz nada.
Como um mod funciona
Um mod é um plugin cujo código registra manipuladores de eventos, chamados hooks. O Claude Code executa um hook quando seu evento acontece, como quando o Claude chama uma ferramenta ou quando o spinner é desenhado. Um mod pequeno tem três arquivos:
first-mod/
├── .claude-plugin/
│ └── plugin.json
└── hooks/
├── hooks.json
└── register.js
plugin.json: o manifesto do pluginhooks.json: aponta para seu arquivo de códigoregister.js: seu código, chamado de módulo hooks. Ele diz ao Claude Code em quais eventos executar suas funções.
Este é um register.js completo. Ele conta as chamadas de ferramenta que o Claude faz e mostra a contagem ao lado do spinner enquanto o Claude trabalha, como em Thinking · tool calls: 3….
// A contagem, compartilhada pelos dois hooks abaixo
let calls = 0
// Claude Code chama isso uma vez quando o mod carrega
export function register(on) {
// Executado cada vez que Claude está prestes a usar uma ferramenta
on('tool.call', async ($, e, next) => {
calls += 1
// Peça ao Claude Code para desenhar a interface novamente, para que a nova contagem apareça
$.ui.invalidate('ui.render')
// Deixe a ferramenta ser executada normalmente
return next(e)
})
// Executado cada vez que Claude Code desenha o spinner
on('ui.render', { component: 'Spinner' }, async ($, e, next) => {
// Mantenha o spinner do Claude Code, com a contagem adicionada após sua palavra
return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })
})
}
O arquivo registra dois hooks, e ambos usam a variável calls no topo:
- O hook
tool.callé executado cada vez que o Claude está prestes a usar uma ferramenta. Adiciona um acalls, pede ao Claude Code para desenhar a interface novamente e deixa a ferramenta ser executada normalmente. - O hook
ui.renderé executado cada vez que o Claude Code desenha o spinner. Mantém o próprio spinner do Claude Code e adiciona a contagem após a palavra.
Esta gravação mostra o mod em ação. Observe a linha do spinner acima da caixa de prompt: enquanto o Claude lista um diretório e lê dois arquivos, ele lê Thinking · tool calls: 1…, depois 2…, depois 3….
O que um hook pode fazer com um evento
O Claude Code executa seu hook antes de agir no evento, então o hook decide o que acontece a seguir. Ele tem três opções:
- Observar: notar o que está acontecendo e deixar continuar inalterado, como o hook
tool.callno exemplo faz - Reescrever: alterar o evento antes de continuar, como o hook
ui.renderfaz quando adiciona a contagem ao spinner - Responder: manipular o evento em si, para que o comportamento usual não seja executado, como recusar um comando
Para fazer qualquer coisa fora de seu próprio código, como desenhar, adicionar um comando, chamar um modelo, ler um arquivo, iniciar um processo ou fazer uma solicitação de rede, um hook chama a API de mods. Um hook não tem outra maneira de fazer essas coisas, é por isso que o Claude Code pode listar o que um mod faz antes de você instalá-lo.
Para o código por trás de cada opção, veja Reagir a eventos. Para o que um hook pode chamar, veja Usar a API de mods.
Onde os mods são executados
Os hooks de um mod são executados em todos os tipos de sessão que carregam o plugin. O desenho é mais restrito: apenas o terminal e o aplicativo Desktop mostram painéis, faixas e linhas substituídas de um mod. Esta tabela lista cada lugar onde você pode executar o Claude Code:
| Onde você executa o Claude Code | Hooks são executados | O que o mod desenha aparece |
|---|---|---|
claude em um terminal, incluindo o terminal integrado de um editor e o plugin JetBrains |
Sim | Sim |
| A aba Code do aplicativo Desktop, exceto em uma sessão WSL | Sim | Sim, exceto elementos que a tabela de elementos marca como apenas terminal |
| Uma sessão WSL no aplicativo Desktop | Não, porque plugins não estão disponíveis em sessões WSL | Não |
| O painel de chat da extensão VS Code | Sim | Não |
claude -p e o Agent SDK |
Sim | Não |
| Remote Control de claude.ai ou do aplicativo móvel | Sim, na sessão em sua máquina | No terminal em sua máquina |
| Uma sessão na nuvem | Sim, para um plugin que alcança a sessão na nuvem | Não |
Um mod que desenha pode verificar em qual aplicativo está sendo executado e voltar para uma linha na transcrição ou uma resposta de texto de comando onde nada desenha.
Controlar mods para sua organização
Os administradores decidem se mods são executados e quais, através de configurações gerenciadas. Gerenciar mods para sua organização cobre o que acontece por padrão, como revisar um mod e como aplicar uma política com um mod próprio.
Comparar mods, settings hooks, skills e servidores MCP
Mods, settings hooks, skills e servidores MCP se sobrepõem. Esta tabela mostra o que cada um é e quando escolhê-lo.
| Mod | Settings hook | Skill | Servidor MCP | |
|---|---|---|---|---|
| O que é | Funções em um plugin que o Claude Code chama em seu próprio processo | Um comando shell, solicitação HTTP ou prompt que o Claude Code executa em um evento de ciclo de vida | Um arquivo SKILL.md de instruções que o Claude lê |
Um processo ou serviço externo que fornece ferramentas ao Claude |
| O que pode alterar | Chamadas de ferramenta, prompts, comandos, turnos e o que a interface desenha | Se uma chamada de ferramenta ou prompt prossegue, argumentos de uma chamada de ferramenta e resultado, e contexto adicionado para o Claude | O que o Claude sabe e faz | Quais ferramentas o Claude tem |
| Pode desenhar na interface | Sim | Não | Não | Não |
| O que você escreve | JavaScript ou TypeScript | Um script e uma entrada settings.json |
Markdown | Um servidor em qualquer linguagem |
| Escolha quando | Você quer um painel, uma faixa acima do prompt, um comando personalizado ou reescrever um evento | Você quer bloquear, permitir ou registrar um evento com um script que você já tem | Você fica colando as mesmas instruções no chat | O Claude precisa alcançar um sistema externo |
Cada um dos outros tem sua própria página: Hooks, Skills e MCP. Um plugin pode conter todos os quatro, então um mod pode ser enviado no mesmo plugin que uma skill e um servidor MCP.
Mods integrados ao Claude Code
Alguns dos próprios recursos do Claude Code são mods. Para ver os que sua sessão tem, execute /plugin no prompt do Claude Code e vá para a aba Installed, que os lista em Built-in. Você não pode atualizar ou desinstalar um mod integrado, e a última coluna da tabela diz como desativar cada um. A linha mods active deixa mods integrados de fora.
Esta tabela lista cada entrada pelo nome que /plugin mostra:
Nome em /plugin |
O que faz | Onde está ativado | Como desativar |
|---|---|---|---|
cc-plugin-agents-md |
Carrega AGENTS.md como instruções do projeto |
Cada sessão, exceto as que não conseguem ler AGENTS.md |
Desabilite em /plugin ou escolha quais arquivos de instruções carregam |
cc-plugin-diff |
Assume o controle de /diff e desenha seu painel |
Sessões de terminal interativas | Desabilite em /plugin. /diff permanece, e a versão integrada do Claude Code do comando responde. |
cc-plugin-plugin-authoring |
Dá ao Claude a skill plugin-authoring para escrever mods. Contém uma skill e nenhum código de mod. |
A menos que a Anthropic tenha desativado mods instalados remotamente | Desabilite em /plugin |
cc-plugin-sec-default |
Guarda o que sua organização gerencia dos mods que um usuário instala | Onde o guarda carrega | Você não consegue. Um administrador define a ordem em configurações gerenciadas |
cc-plugin-telemetry |
Envia os registros de análise que o Claude Code e seus mods integrados registram | Onde a análise própria do Claude Code está ativada | Desabilite em /plugin ou desative a análise, por exemplo com DISABLE_TELEMETRY |
cc-plugin-you-should-know |
Executa um agente lateral que vigia você enquanto Claude trabalha em tarefas mais longas. Quando encontra algo que vale a pena saber que você pode perder, mostra uma nota acima do prompt. | Desativado por padrão. Listado em /plugin -> Installed -> Show disabled se disponível para sua organização. Ative com /plugin enable cc-plugin-you-should-know@builtin. |
Desabilite em /plugin |
As configurações e sinalizadores que param mods instalados, como disableAllHooks, --bare e --safe-mode, não param mods integrados.
Ler a fonte de mods integrados
A fonte de quatro desses mods é pública no diretório mods do repositório Claude Code. Cada um é um plugin completo com seu módulo hooks e testes:
diff: o painel/diff, com botões vinculados a ações de teclado e rolagem que o mod manipulaagents-md: carregaAGENTS.mdcomo instruções do projeto, com uma opçãouserConfigsec-default: o guarda descrito em Saber o que acontece por padrão, um modelo para um mod que aplica políticatelemetry: adiciona métodos que outros mods podem chamar e envia seus tipos
Próximos passos
- Criar um mod: construa um que conte chamadas de ferramenta, mostre a contagem ao lado do spinner e adicione um comando, e aprenda o loop de edição e recarga
- Desenhar na interface: painéis, a faixa acima do prompt, botões, campos de texto e estado
- Reagir a eventos: chamadas de ferramenta, prompts, turnos e a ordem em que mods são executados
- Usar a API de mods: comandos, ferramentas, chamadas de modelo, temporizadores e arquivos
- Testar um mod: testes automatizados que são executados sem uma sessão
- Solucionar problemas de um mod: as razões pelas quais um mod não faz nada e o log de depuração
- Gerenciar mods para sua organização: padrões, configurações gerenciadas, revisão de um mod e mods de política
- Referência de mods: cada evento, método, elemento e limite