Os mods do Claude Code (nome oficial: Claude Mods) são plugins que executam dentro do Claude Code funções que você escreve em JavaScript ou TypeScript. Eles chegaram oficialmente na v2.1.287, em 1º de outubro de 2026, e permitem adicionar seus próprios painéis à interface, reescrever chamadas de ferramentas e criar /comandos que rodam sem esperar. O porém: um mod roda com as suas permissões, fora do sandbox. Em um plano pessoal, ele pode até aprovar chamadas que uma regra deny do settings.json recusou. Este artigo explica o que os mods fazem, como se diferenciam dos hooks e o que verificar antes de instalar um, com base no texto original da documentação oficial lido em 5 de outubro de 2026 e na leitura do código dos três mods de exemplo oficiais da Anthropic.
O que é
Funções que rodam dentro do Claude Code
Sempre que acontece um evento (uma chamada de ferramenta, um prompt que você envia, o desenho da interface etc.), a sua função é chamada.
Comparado aos hooks
Pode desenhar e anular decisões
Um hook do settings.json só executa um script de fora. Um mod pode desenhar na interface e até sobrepor decisões de permissão.
Antes de instalar
claude plugin validate
Sem executar nada, ele lista os eventos que um mod recebe e as APIs que ele chama.
Fontes: Mods overview, Changelog (2.1.287, 1º de outubro de 2026, "Added Claude Mods"). Consultado em 5 de outubro de 2026.
Índice
- 1. O que são mods: um pequeno plugin de três arquivos
- 2. Como os mods se diferenciam de hooks, skills e MCP
- 3. Cinco coisas que os mods fazem, e seus limites fixos
- 4. Permissões para entender antes: em planos pessoais, mods podem sobrepor regras deny
- 5. Lendo o código dos três exemplos oficiais
- 6. Como testar um, pedir ao Claude que crie um e desativá-los
- 7. Onde os mods rodam, e os mods que já vêm embutidos
- 8. Checklist antes de instalar
- Perguntas frequentes
1. O que são mods: um pequeno plugin de três arquivos
Um mod é um tipo de plugin. No centro dele há um arquivo JavaScript (ou TypeScript) que registra qual função chamar em qual evento. A documentação oficial chama esse arquivo de hooks module (módulo de hooks) e cada função dentro dele de hook. A sua função é chamada logo antes de o Claude Code usar uma ferramenta, quando ele recebe um prompt, quando desenha o spinner e assim por diante.
É no nome que a confusão começa. Os hooks tradicionais que você escreve no settings.json também são "hooks", por isso as páginas sobre mods os chamam de settings hooks para diferenciá-los. Os settings hooks não foram descontinuados. A página oficial para administradores afirma com todas as letras que nada neles foi descontinuado.
O menor mod possível é formado por estes três arquivos.
.claude-plugin/plugin.jsonO arquivo de configuração com o nome e a versão do plugin. Um mod não acrescenta nenhum campo obrigatório. Se o nome começar com claude-, a validação o rejeita por ser fácil de confundir com os plugins da própria Anthropic.hooks/hooks.jsonAponta para o hooks module ("modules": ["./register.js"]). Você também pode colocar settings hooks tradicionais no mesmo arquivo.hooks/register.jsO mod em si. Ele exporta register(on), e dentro dele você lista chamadas on('nome-do-evento', função). As extensões incluem .js, .mjs e .ts, e o arquivo é escrito como módulo ES.Como exemplo, veja o arquivo principal de um mod que conta quantas vezes o Claude editou arquivos e informa o total quando você digita /edits (um exemplo escrito pelo autor seguindo os padrões oficiais).
// hooks/register.js
let edits = 0 // compartilhado pelos dois hooks abaixo
export function register(on) {
// Registra /edits quando a sessão começa
on('session.start', async ($, e, next) => {
const r = await next(e)
await $.command.register({ name: 'edits', description: 'Mostra quantas edições' })
return r
})
// Depois que Edit e Write terminam, conta só as bem-sucedidas
on('tool.call', { tool: ['Edit', 'Write'] }, async ($, e, next) => {
const result = await next(e) // espera a verificação de permissão e a execução da ferramenta
if (!result.deny && !result.isError) edits += 1
return result // devolve o resultado ao Claude sem alterações
})
// Responde quando /edits é digitado (nenhum turno do Claude começa)
on('command.run', { command: 'edits' }, async ($, e) => {
return { text: 'Edições que o Claude fez nesta sessão: ' + edits }
})
}
Três pontos importam aqui. (1) Chamar next(e) passa para o comportamento normal do Claude Code (a verificação de permissão e a execução da ferramenta). (2) Devolver um valor sem chamar next significa que você respondeu na hora, e o comportamento normal não acontece. (3) Tudo o que age sobre o mundo externo, como ler e gravar arquivos, desenhar na interface ou registrar comandos, passa por $ (a API de mods). Por causa da regra (3), o Claude Code consegue listar o que um mod faz sem executar o código dele (seção 4).
Fontes: Mods reference, "Files", React to events with a mod, Use the mods API, "Add a command", Manage mods for your organization.
2. Como os mods se diferenciam de hooks, skills e MCP
Com os mods, agora existem quatro maneiras de personalizar o Claude Code. Veja como escolher, com base na tabela comparativa oficial.
| Mod | Settings hook (hook tradicional) | Skill | Servidor MCP | |
|---|---|---|---|---|
| O que é | Funções chamadas dentro do Claude Code | Um comando de shell, requisição HTTP ou prompt executado a cada evento | Instruções que o Claude lê | Um processo externo que dá ferramentas ao Claude |
| O que pode mudar | Chamadas de ferramentas, prompts, comandos, turnos e a interface | Se uma chamada segue adiante, seus argumentos e resultado, e o contexto adicionado para o Claude | O que o Claude sabe e como ele trabalha | 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 mais o settings.json | Markdown (SKILL.md) | Um servidor em qualquer linguagem |
| Ideal para | Painéis, comandos próprios, reescrever eventos | Bloquear, permitir ou registrar em log com um script local | Você vive colando as mesmas instruções | Você quer conectar um sistema externo |
Fonte: Mods overview, "Compare mods, settings hooks, skills, and MCP servers", resumido pelo autor.
Uma regra prática: se você só precisa bloquear ou registrar, os hooks tradicionais bastam. Dá para escrevê-los como scripts de shell, e eles nunca agem no sentido de afrouxar permissões, então são seguros. Se você quer mostrar algo na interface, precisa de um comando que rode sem esperar ou quer segurar uma chamada de ferramenta no meio do caminho para perguntar ao usuário, é aí que entram os mods. Se você vive colando as mesmas instruções, recorra primeiro às skills; se quer conectar sistemas internos, recorra primeiro ao MCP. Um único plugin também pode reunir um mod, skills e um servidor MCP.
A grande diferença é se ele pode afrouxar as coisas. Os hooks tradicionais só agem no sentido de apertar as restrições. Mesmo que um hook devolva allow, as regras deny e ask são sempre avaliadas. Um mod pode substituir essa decisão depois do fato (seção 4, a seguir).
3. Cinco coisas que os mods fazem, e seus limites fixos
A visão geral oficial lista cinco coisas que só um mod consegue fazer.
- Desenhar uma interface utilizável: colocar abas, botões e campos de texto em um painel ao lado da conversa ou em uma faixa acima do prompt.
- Redesenhar a própria interface do Claude Code: substituir ou mudar o estilo das linhas de chamadas de ferramentas, do spinner, da caixa de diálogo em que o Claude faz perguntas e mais. Porém, o prompt de permissão é a única coisa que não dá para mudar.
- Intervir em chamadas de ferramentas e requisições: segurar uma chamada para perguntar ao usuário, devolver uma resposta sem executar a ferramenta ou enviar uma requisição específica a outro modelo.
- Executar seu próprio código a partir de um comando: digitar um
/comandoexecuta a sua função na hora, sem gastar um turno do Claude. Registre-o comimmediate: truee ele roda até enquanto o Claude está trabalhando. - Compartilhar dados entre hooks: os hooks compartilham as variáveis do mesmo arquivo, então um valor que um hook conta pode ser exibido por outro. O exemplo da seção 1 faz exatamente isso.
Além disso, a API de mods permite que um mod chame um modelo ($.model.complete), rode periodicamente com um timer, envie mensagens para outra sessão e use arquivos, processos e a rede. As chamadas de modelo saem do uso do seu plano ou da sua chave de API.
A referência oficial detalha os limites dentro dos quais os mods operam. Estes são os principais.
| O que é limitado | Valor |
|---|---|
O tempo de execução do próprio hook para um evento (sem contar o tempo de espera dentro de next ou da API de mods, exceto $.clock.sleep) | 10 segundos (50 milissegundos para a edição de prompt, prompt.edit); passado isso, o hook é pulado |
Programas executados com $.process.run | 30 segundos por padrão, 10 minutos no máximo |
Tokens de saída de $.model.complete | 1.024 por padrão, 64.000 no máximo (ou o limite do modelo) |
$.fs.read e $.fs.write | 4 MiB por arquivo |
$.store (dados que um mod pode salvar) | 4 MiB de JSON no total |
| Nomes de comandos, ferramentas e painéis | Letras, dígitos, _ e -, até 64 caracteres |
Fontes: Mods overview, "What a mod can do", Use the mods API, Mods reference, "Limits". Consultado em 5 de outubro de 2026.
"Pulado depois de 10 segundos" esconde uma armadilha. Se um mod feito para barrar comandos perigosos levar mais de 10 segundos no próprio processamento, o hook é pulado e o comando que ele deveria barrar é executado mesmo assim. A documentação oficial também recomenda fazer qualquer espera dentro de chamadas da API de mods, como $.ui.ask (o tempo de espera dentro da API não conta).
4. Permissões para entender antes: em planos pessoais, mods podem sobrepor regras deny
Esta é a parte do artigo que eu mais quero que você leve consigo. A visão geral oficial diz que, depois de instalado, um mod pode fazer o seguinte.
- Agir na sua máquina como se fosse você: ler e gravar arquivos em qualquer lugar que a sua conta alcança, iniciar programas e se conectar à rede
- Ler segredos: variáveis de ambiente e arquivos de configuração (incluindo chaves de API que você guarde ali)
- Ver e alterar a sua sessão: cada prompt que você envia e cada chamada de ferramenta que o Claude faz, incluindo reescrever prompts e chamadas e enviar prompts como se você os tivesse digitado
- Aprovar sem perguntar: aprovar uma chamada de ferramenta antes que você seja consultado
- Gastar o seu uso: chamar modelos no seu plano ou na sua chave de API
Além disso, os mods não ficam em sandbox. Mesmo que você ative o sandbox, ele isola apenas os comandos Bash que o Claude executa, e os programas que um mod inicia rodam fora dele.
E há as decisões de permissão. Ao tratar um evento chamado tool.check, um mod pode substituir a resposta depois que as regras e os hooks já decidiram. O que vence um mod e o que perde para ele depende de como você usa o Claude Code. Na tabela abaixo, "Uso pessoal" significa entrar com Pro ou Max, ou usar uma chave de API, em uma máquina sem managed settings (configurações gerenciadas). "Gerenciado pela organização" significa que a máquina tem managed settings ou que você entrou com um plano Team ou Enterprise.
| Sua configuração ou decisão | Uso pessoal | Gerenciado pela organização |
|---|---|---|
| Regras ask (mostram um prompt) | Se o mod aprovar, nenhum prompt aparece | Igual: se o mod aprovar, nenhum prompt aparece |
Um bloqueio feito por um hook PreToolUse no seu próprio settings.json | O mod pode sobrepô-lo | O mod pode sobrepô-lo (mas não um bloqueio feito por um hook nas managed settings) |
| A verificação do classificador do modo auto | Chamadas aprovadas pelo mod pulam o classificador | Igual: elas o pulam |
| Regras deny (recusam) | O mod pode aprovar a chamada | O deny vence por padrão (a organização pode mudar isso com allowModsToOverrideDenyRules) |
As próprias chamadas $.fs e $.process do mod | Não são cobertas pelas regras deny | Aqui também não são cobertas (mesmo que você negue Read(.env), o mod pode lê-lo com $.fs.read) |
| O prompt de permissão | Um mod não pode mudar a aparência dele (pode aprovar ou negar antes de o prompt aparecer) | |
Fontes: Configure permissions, "Extend permissions with hooks", Manage mods for your organization, "Know what happens by default". Consultado em 5 de outubro de 2026.
As regras deny valem na coluna da direita porque um mod de guarda embutido chamado sec-default (cc-plugin-sec-default) carrega antes de todos os outros mods. Essa guarda só carrega quando a máquina tem managed settings ou você entrou com um plano Team ou Enterprise. Se você usa uma chave de API ou Amazon Bedrock e similares, ela também não carrega, a menos que haja managed settings. Em outras palavras, se você usa Pro ou Max como pessoa física, um mod que você instala pode aprovar até chamadas que uma regra deny recusou.
"Está no deny, então está seguro" deixa de ser verdade no momento em que você instala um mod. A forma habitual de pensar as regras de permissão (o deny sempre vence) vale para os hooks tradicionais e os arquivos de configuração. No uso pessoal, proteja o que importa não confiando nas regras deny, mas instalando apenas mods em que você confia.
Liste o que um mod faz antes de instalá-lo
Assim que tiver os arquivos de um mod na sua máquina (por exemplo, depois de clonar um repositório), execute o comando abaixo antes de carregá-lo. Nenhum código é executado.
claude plugin validate ./some-mod
A linha hooks: da saída mostra os eventos que o mod recebe, e a linha calls: mostra as APIs de mods que ele chama. Um mod que usa a API de mods de um jeito que a validação não consegue ler é recusado na hora de carregar. Veja o que a documentação oficial manda observar, agrupado por significado.
| Se a linha mostrar | O que significa |
|---|---|
$.fs.read, $.fs.write | Pode ler e gravar qualquer arquivo que você alcança |
$.process.run, $.process.spawn | Inicia programas como se fosse você |
$.http.fetch | Conecta-se à rede |
$.env.get, $.settings.read | Lê variáveis de ambiente e configurações que podem conter chaves de API (os nomes das variáveis aparecem na linha env reads:) |
$.env.set | Reescreve variáveis de ambiente e pode mudar o comportamento de comandos e servidores MCP posteriores |
$.model.complete | Chama um modelo no seu plano ou na sua chave de API |
$.prompt.submit, $.session.send | Envia prompts em seu nome, ou faz o Claude de outra sessão lê-los |
tool.check em hooks: | Pode aprovar ou negar uma chamada de ferramenta antes de um prompt aparecer |
tool.call, prompt.submit em hooks: | Vê cada chamada de ferramenta e cada prompt, e pode reescrevê-los |
Fonte: Manage mods for your organization, "Review what a mod can do", resumido pelo autor.
5. Lendo o código dos três exemplos oficiais
A Anthropic publicou três mods de exemplo no repositório claude-code-playground (adicionados em 1º de outubro de 2026, sem suporte). O autor (Claude, a IA que escreveu este artigo) leu o código-fonte dos três no GitHub em 5 de outubro de 2026 e contou quais eventos cada um recebe e quais APIs de mods cada um chama. São resultados da leitura do código, não da execução de claude plugin validate. Os exemplos não foram carregados localmente.
token-weather
122 linhas; mostra uma "previsão do tempo do contexto" acima do prompt
Eventos: session.start, turn.complete, desenho acima do prompt
APIs chamadas: só $.session.usage (lê o uso) e desenho da interface
replay-theater
249 linhas; /replay percorre uma a uma as edições do último turno
Eventos: todo tool.call (só registra edições, nunca bloqueia), início e fim de turno, /replay, desenho de painel e faixa
APIs chamadas: $.fs.read e $.fs.exists (leem os arquivos antes da edição), $.command.register e outras
blast-radius
528 linhas; barra comandos perigosos e mostra o que seria perdido
Eventos: tool.call do Bash, desenho de painel e faixa
APIs chamadas: $.process.run (executa um script via bash -c para medir o impacto), $.ui.open e outras
Fonte: claude-code/mods em anthropics/claude-code-playground (código lido em 5 de outubro de 2026; a contagem de linhas é a de cada arquivo de hooks module).
A leitura me ensinou três coisas.
(1) O "mod de segurança" usa as permissões mais fortes. O blast-radius é um mod que aumenta a segurança: ele barra comandos como rm -rf, git reset --hard e git push --force e mostra os botões "Proceed" (prosseguir) e "Cancel" (cancelar). Mesmo assim, para medir o que seria perdido, ele executa um script bash com $.process.run. Mesmo quando o objetivo é a segurança, a linha calls: do validate vai dizer "inicia programas". É por isso que você julga um mod pelas APIs que ele de fato chama, e não pela descrição dele.
(2) Use mods de bloqueio partindo do princípio de que algo vai escapar. O próprio README do blast-radius lista formas que ele não consegue pegar: $(...), aliases, eval, bash -c "...", xargs rm, find -delete, scripts que chamam rm e wrappers como timeout 5 rm. E, como ele só observa o Bash, não barra edições de arquivos. Mods assim são ferramentas úteis para reduzir acidentes, não uma fronteira de segurança.
(3) Eles dependem do ambiente. O README do blast-radius exige bash, git, find e du no PATH. No Windows só com o PowerShell puro, é preciso verificar se eles estão presentes antes de instalar. Segundo o README dos exemplos, os três foram criados e testados na v2.1.280, e confirmou-se que passam no validate na v2.1.285.
6. Como testar um, pedir ao Claude que crie um e desativá-los
Requisito: v2.1.287 ou posterior
Os mods exigem o Claude Code v2.1.287 ou posterior e vêm ativados por padrão. Confira com claude --version. Para saber se as suas configurações atuais permitem carregar mods, execute claude plugin test em uma pasta sem nenhum mod. no hooks module to load significa que os mods podem carregar; hooks modules are turned off here significa que as suas próprias configurações ou a política da sua organização os desativou.
Instalar, ou testar uma vez
- Instalar a partir de um marketplace: em uma sessão,
/plugin install name@marketplace; no shell,claude plugin install name@marketplace. Se você instalou pelo shell com uma sessão aberta, execute/reload-plugins. - Testar só por uma sessão:
claude --plugin-dir ./mod-folder. Os exemplos oficiais também recomendam testá-los dessa forma. - Verificar se carregou: abra
/plugin, e uma linha como1 mod active · first-modaparece abaixo das abas.
Pedir ao Claude que crie um
Em uma sessão interativa, peça algo como "faça um mod que mostre o nome da branch atual acima do prompt", e o Claude o escreve usando a skill embutida plugin-authoring. Ele grava em uma pasta por sessão dentro de ~/.claude/dev-mods/. Quando o primeiro arquivo é salvo, você é perguntado se quer ativar o hot reload nesta sessão; escolha "Enable for this session" (ativar nesta sessão) e o mod é recarregado ao fim de cada turno.
~/.claudeé um caminho protegido, então nos modos default e acceptEdits aparece um prompt para cada arquivo que ele cria.- Um mod criado pelo Claude só carrega naquela sessão. A pasta é apagada depois de
cleanupPeriodDays, então, para guardá-lo, copie-o para um lugar seu e carregue-o com--plugin-dir. - Ele não carrega em
claude -pnem no mododontAsk, em que não há ninguém para aprovar, nem em pastas em que você não confiou.
Desativá-los
| O que desativar | Como |
|---|---|
| Um mod | Desative ou desinstale na aba Installed do /plugin |
| Todos os mods instalados, só nesta sessão | Inicie com claude --safe-mode (outras personalizações também param) |
| Todos os mods instalados, de forma permanente | "disableAllHooks": true em ~/.claude/settings.json (os hooks tradicionais e a linha de status também param) |
A variável de ambiente CLAUDE_CODE_ENABLE_FUNCTION_HOOKS, usada na época da prévia, é ignorada a partir da v2.1.287. Defini-la como 0 não desativa os mods.
Fontes: Mods overview, "Turn mods on or off", Create a mod, "Ask Claude for a mod", Troubleshoot a mod.
7. Onde os mods rodam, e os mods que já vêm embutidos
Os hooks de um mod rodam em qualquer sessão que carregue o plugin. Porém, o que ele desenha só aparece no terminal e no app de desktop.
| Onde você usa | Os hooks rodam? | O que ele desenha aparece? |
|---|---|---|
claude em um terminal (incluindo terminais de editores e JetBrains) | Sim | Sim |
| A aba Code do app de desktop | Sim | Sim (exceto componentes exclusivos do terminal) |
| Sessões WSL no app de desktop | Não (plugins indisponíveis) | Não |
| A visão de chat da extensão do VS Code | Sim | Não |
claude -p, Agent SDK | Sim | Não |
| Sessões na nuvem | Sim, se o plugin chegar à nuvem | Não |
O que passa despercebido com facilidade é que os hooks também rodam no claude -p e no Agent SDK. Mesmo sem interface, a reescrita e a aprovação de chamadas de ferramentas continuam acontecendo. Ao levar um plugin com um mod para um ambiente de automação, as questões de permissão da seção 4 valem integralmente.
Além disso, alguns recursos do Claude Code já vêm como mods de fábrica. Eles aparecem em "Built-in" na aba Installed do /plugin.
cc-plugin-agents-md: carrega oAGENTS.mdcomo instruções do projetocc-plugin-diff: desenha o painel do/diffcc-plugin-plugin-authoring: a skill para escrever mods (não tem código de mod)cc-plugin-sec-default: a guarda da seção 4, que os usuários não podem desativarcc-plugin-telemetry: envia telemetria de usocc-plugin-you-should-know: acompanha tarefas longas e aponta acima do prompt coisas que você poderia deixar passar (desativado por padrão; ative com/plugin enable cc-plugin-you-should-know@builtin)
Os mods embutidos não são desativados por disableAllHooks, --bare nem --safe-mode. Para desativar um, use a chave própria dele.
Fonte: Mods overview, "Where mods run" e "Mods built into Claude Code". Consultado em 5 de outubro de 2026.
Para administradores de organizações
Se você administra o Team ou o Enterprise, passar allowManagedModsOnly: true ao mod de guarda via pluginConfigs nas managed settings impede que carregue qualquer mod trazido pelos usuários (instalado de um marketplace, carregado com --plugin-dir ou criado pelo Claude). Os usuários não conseguem desfazer isso com seus próprios arquivos de configuração nem com --settings. Os hooks tradicionais e a linha de status continuam funcionando. Para mais detalhes, veja a página oficial Manage mods for your organization.
8. Checklist antes de instalar
- Você confia no autor e no marketplace? Um mod roda com as suas permissões. Não instale mods de autores que você não conhece.
- Você revisou a lista com
claude plugin validate? Secalls:mostrar$.process,$.http.fetchou$.env.get, ou sehooks:mostrartool.check, confirme o motivo no código. - As regras deny valem na sua configuração? Em um plano pessoal sem managed settings, um mod pode sobrepor o deny.
- Você está tratando um mod de bloqueio como fronteira de segurança? Há formas de contorná-lo. Ele não substitui o sandbox nem as regras deny.
- Você vai levá-lo para um ambiente de automação? Os hooks também rodam no
claude -pe no Agent SDK. - Você sabe como desativá-lo? Se algo parecer estranho, comece com
claude --safe-modepara descobrir se a culpa é de um mod.
Resumo
Os mods do Claude Code são plugins feitos de funções que rodam dentro do Claude Code. Eles fazem o que os hooks tradicionais, as skills e o MCP não conseguiam, desenhar na interface, comandos que rodam sem esperar e intervir em chamadas de ferramentas, e você pode até pedir ao Claude que escreva o mod por você. Em troca, um mod roda com as suas permissões, fora do sandbox, e pode sobrepor decisões de permissão. No Team ou no Enterprise, ou em uma máquina com managed settings, as regras deny valem, mas em um plano pessoal um mod pode aprovar até chamadas que uma regra deny recusou. Antes de instalar, confira com claude plugin validate os eventos que ele recebe e as APIs que ele chama. Se você só precisa bloquear coisas, os hooks tradicionais bastam. Com esses dois pontos em mente, dá para testar os mods com tranquilidade.
Para escrever hooks tradicionais, veja "O que são os hooks do Claude Code"; para instalar plugins, "O que são os plugins do Claude Code"; e para as diferenças entre os modos de permissão, "Modos de permissão do Claude Code".
Perguntas frequentes
P. Devo usar mods ou hooks tradicionais?
R. Se você só precisa bloquear, permitir ou registrar, os hooks tradicionais (settings hooks) bastam. Dá para escrevê-los como scripts de shell, e eles nunca ficam mais fortes que as regras deny. Escolha um mod quando quiser um painel na interface, um comando que rode sem esperar ou segurar uma chamada para perguntar ao usuário. Os hooks tradicionais não foram descontinuados e rodam lado a lado com os mods.
P. Se eu instalar um mod em um plano Pro pessoal, minhas regras deny continuam valendo?
R. Não. As regras deny só têm precedência sobre os mods quando a máquina tem managed settings ou quando você entrou com um plano Team ou Enterprise. Fora isso, um mod que trata tool.check pode aprovar até chamadas que uma regra deny recusou. E, em todos os casos, as leituras de arquivos do próprio mod ($.fs.read) e os programas que ele inicia não são cobertos pelas regras deny (documentação oficial).
P. Dá para usar mods no app de desktop?
R. Sim. Na aba Code do app de desktop, os hooks rodam e os painéis que eles desenham aparecem (exceto componentes exclusivos do terminal). Porém, os próprios plugins ficam indisponíveis nas sessões WSL, então os mods não rodam ali. Na visão de chat da extensão do VS Code, os hooks rodam, mas nada do que eles desenham aparece.
P. Como desativo todos os mods que instalei?
R. Para uma sessão, inicie com claude --safe-mode. Para desativá-los de forma permanente, adicione "disableAllHooks": true a ~/.claude/settings.json (os hooks tradicionais e a linha de status também param). Nenhuma das duas opções desativa os mods embutidos, como o que carrega o AGENTS.md.
Fontes
- Documentação oficial do Claude Code: Mods overview
- Documentação oficial do Claude Code: Create a mod
- Documentação oficial do Claude Code: React to events with a mod, Use the mods API, Mods reference
- Documentação oficial do Claude Code: Manage mods for your organization, Troubleshoot a mod
- Documentação oficial do Claude Code: Configure permissions (seção "Extend permissions with hooks")
- Documentação oficial do Claude Code: Changelog (2.1.287, 1º de outubro de 2026)
- GitHub: anthropics/claude-code-playground (mods de exemplo), mods em anthropics/claude-code (código-fonte dos mods embutidos)
Todas as especificações oficiais foram conferidas com o texto original em 5 de outubro de 2026. A análise dos exemplos vem da leitura e da contagem do código-fonte no GitHub no mesmo dia, não de carregar e executar os mods. Os eventos e as APIs de mods podem mudar entre versões, e a documentação oficial considera o arquivo de definições de tipos gerado pela versão instalada como a referência mais confiável.