Claude Code agindo diferente: é o modelo ou o mod que você instalou?

Resposta rápida

Se o Claude Code começou a agir diferente, a causa pode ser o seu setup ou o próprio agente. Desde o anúncio dos mods do Claude Code (1 de outubro de 2026), um plugin pode reescrever prompt, trocar recurso nativo e adicionar interface, sem sandbox. Para descobrir a origem, repita a mesma tarefa em claude –safe-mode. Se o problema some, a culpa está nas personalizações: isole os mods com "disableAllHooks": true e depois teste um plugin por vez no /plugin. Se persiste, confira versão e modelo em /status e só então reporte, levando o safe mode como evidência

Fala aí, beleza? Antes de culpar o modelo, descubra se a mudança veio da camada que você mesmo instalou 🙂

No dia 1 de outubro de 2026 a Anthropic anunciou os mods do Claude Code: pequenas funções em TypeScript que mudam o funcionamento do agente

Um mod consegue reescrever um prompt, adicionar interface nova, substituir um recurso nativo ou adicionar funcionalidade nova

Resultado: aquele "o Claude Code ficou diferente hoje" agora tem DUAS causas possíveis

Ou é o seu setup (mods, plugins, hooks, skills e por aí vai), ou é o próprio Claude Code mudando por baixo

E se liga: isso também não é a mesma coisa que "o modelo piorou", porque existe uma diferença entre agente e modelo que muita gente mistura

Neste post te passo um roteiro pra separar as duas coisas antes de abrir issue em qualquer projeto, seja no do mod, seja no do Claude Code

Bora?

Por que um mod consegue mudar o comportamento do Claude Code?

Primeiro o porquê, depois o como

O Claude Code emite eventos o tempo todo: quando chama uma ferramenta, quando pede permissão, quando desenha uma parte da tela

O mod é uma função ligada a um desses eventos

Ela pode rodar antes do evento, depois dele, no lugar dele, ou ainda envolver o evento inteiro

Se você já mexeu com middleware em backend, é bem semelhante: a requisição passa por uma camada sua antes de chegar no destino, e essa camada pode mudar tudo 😛

Na prática, um mod pode:

  • Reescrever um prompt
  • Adicionar interface nova
  • Substituir um recurso nativo
  • Adicionar funcionalidade nova

Os mods vêm distribuídos dentro de plugins, então você instala e compartilha como qualquer plugin (o formato é nome-do-plugin@nome-do-marketplace)

Eles funcionam no Claude Code CLI e no app desktop

E se liga numa diferença que vai importar mais pra frente: plugin também pode trazer hooks, e hook NÃO é a mesma coisa que mod

O mod é a função em TypeScript ligada aos eventos do Claude Code, o hook é outra camada, que aparece no /hooks

Um mesmo plugin pode trazer os dois, por isso o diagnóstico abaixo trata cada um no seu lugar

E aqui vem o ponto que pouca gente lê: mods não têm sandbox

Eles rodam com o MESMO acesso à máquina que o próprio Claude Code: ler e gravar arquivos, iniciar processos, fazer requisições de rede

Ou seja, um mod mal escrito (ou mal intencionado) mexe em muiiito mais coisa do que só o texto da resposta

Qual a versão mínima para usar mods?

Esse é o primeiro dado a conferir quando algo parece estranho:

Onde Versão mínima para mods
Terminal (CLI) Claude Code v2.1.287 ou superior
App desktop a partir da v2.1.286

Abaixo disso, nem adianta procurar o problema no mod, ele não vai rodar do jeito que você espera

Roteiro de diagnóstico: mesma tarefa, com e sem a camada extra

A ideia é simples, é um teste de controle

Você pega exatamente a mesma tarefa e roda com o setup completo e depois sem nada personalizado

Se o comportamento muda, a causa está no seu setup. Se não muda, olha pro Claude Code

Vamos ver na prática?

  1. Registre o sintoma e a tarefa exata que produz ele

Anota o prompt, o repositório, o arquivo e o que você esperava versus o que aconteceu

Sem isso, não tem como repetir igual depois

O erro comum deste passo: comparar tarefas "parecidas" em vez da mesma tarefa. Um agente nem sempre responde igual entre uma execução e outra, então se o prompt muda, você não sabe mais o que está comparando

  1. Confira o que realmente carregou na sessão

Antes de desligar qualquer coisa, olha o que está ativo:

/status
/hooks
/mcp
/skills
/context
/doctor

O /status mostra as fontes de configuração ativas e o modelo em uso

O /hooks lista os hooks ativos, o /mcp os servidores MCP e o /skills as skills carregadas (inclusive aquelas que você escreveu e talvez nem lembre, e o jeito de escrever uma skill muda o que o modelo segue)

O /context mostra o que está ocupando a janela de contexto por categoria e o /doctor faz um checkup do setup, apontando configurações inválidas

O erro comum deste passo: olhar só o /plugin e esquecer que MCP, skills e CLAUDE.md também mudam o comportamento

  1. Repita a tarefa em safe mode
claude --safe-mode

Também dá pra ativar pela variável CLAUDE_CODE_SAFE_MODE

O safe mode (adicionado no Claude Code CLI 2.1.169, em junho de 2026) inicia a sessão com todas as personalizações desligadas: CLAUDE.md, skills, plugins, hooks, servidores MCP e comandos e agentes personalizados

Autenticação, escolha de modelo, ferramentas nativas e permissões continuam funcionando

Como interpretar:

  • O problema sumiu? A causa está em alguma dessas camadas de personalização
  • O problema continua? Pula direto pra seção sobre mudanças do próprio Claude Code, lá embaixo

O erro comum deste passo: esquecer de sair do safe mode, instalar um mod depois e achar que ele quebrou. No safe mode nenhum plugin instalado carrega 😅

  1. Isole a camada de mods e hooks

Se o problema sumiu no safe mode, o próximo corte é desligar mods e hooks, deixando o resto (CLAUDE.md, skills, MCP) ligado

No ~/.claude/settings.json, defina:

{
  "disableAllHooks": true
}

Que interruptor é esse? Ele vale pras duas camadas, cada documentação descreve um lado:

  • A doc de mods diz que ele desliga todos os mods em todas as sessões
  • A doc de hooks diz que ele desliga todos os hooks em todos os escopos, justamente pra depurar quando um hook causa comportamento inesperado

Ou seja, esse passo NÃO separa mod de hook, ele derruba os dois de uma vez

Se com isso o problema some, achou a camada: é algum mod ou algum hook, e o passo 5 (plugin por plugin) aponta qual

Se continua, a causa está em outra personalização (CLAUDE.md, skill, MCP…)

O erro comum deste passo: deixar o disableAllHooks ligado depois do diagnóstico e passar dias se perguntando por que nenhum mod nem hook roda, já vi gente se ferrar assim haha

  1. Isole o plugin, um por vez

Volta o disableAllHooks pra desligado e vai na aba Installed do /plugin

Desative (ou desinstale) um plugin, roda a tarefa, e repete com o próximo

Se você instalou ou atualizou algum mod pelo shell com a sessão aberta, roda isso na sessão:

/reload-plugins

Sem ele, o mod só carrega na próxima vez que o Claude Code iniciar

O erro comum deste passo: esquecer o /reload-plugins e achar que a mudança não pegou, aí você culpa o plugin errado

  1. Gere evidência com o log de debug

Quando precisar provar o que aconteceu (pra você ou pro autor do plugin), inicia assim:

claude --debug

Ou escolhendo onde salvar o log:

claude --debug-file <caminho>

O log tem uma linha pra cada módulo carregado ou recusado, cada hook que falhou e cada resultado recusado

Outra opção é rodar /debug dentro da sessão, seguido da descrição do que está acontecendo: ele liga o log de debug e pede pro Claude diagnosticar

O erro comum deste passo: mandar um print da resposta estranha em vez do trecho do log. O print mostra o sintoma, o log mostra a causa

Uma ferramenta foi bloqueada e você não sabe quem bloqueou?

Sintoma: uma chamada de ferramenta é recusada sem motivo aparente

Causa: um hook trazido por algum plugin retornou exit code 2, que bloqueia a chamada (aqui é hook mesmo, não mod: lembra que um plugin pode trazer as duas coisas)

Solução: lê o FIM da mensagem de erro

Quando é hook de plugin, ela termina com:

This hook comes from the <plugin> plugin

Pronto, ali está o nome do culpado. Desativa esse plugin no /plugin e testa de novo

Como prevenir: depois de instalar plugin novo, dá uma olhada no /hooks pra saber o que passou a rodar na sua sessão

Desliguei o plugin, mas o mod continua agindo: por quê?

Sintoma: você desligou o plugin em ~/.claude/settings.json e ele segue carregando

Causa: uma fonte com precedência maior está ativando o plugin, por exemplo as configurações do projeto

O seu arquivo de usuário perde pra essa fonte, então o "desligado" não vale ali

Solução: defina o id do plugin como false em .claude/settings.local.json

Esse arquivo tem precedência maior que o arquivo do projeto, então é ele que recusa um plugin ativado pelo projeto

Depois confere em /status quais fontes de configuração estão ativas

Como prevenir: ao clonar repositório de terceiros, dá uma olhada nas configurações do projeto antes de sair usando. Lembra: mod não tem sandbox

O mod parece não fazer nada?

Sintoma: o mod está instalado e não muda nada

Causas possíveis:

  • A sessão foi aberta com --safe-mode, e aí nenhum plugin carrega
  • A instalação ou atualização foi feita pelo shell com a sessão aberta e ninguém rodou /reload-plugins
  • A versão está abaixo da mínima (v2.1.287 no terminal, v2.1.286 no desktop)

Solução: reinicia sem a flag, roda /reload-plugins, confere a versão e abre com --debug pra ver se o módulo foi recusado (o log tem uma linha pra cada módulo carregado ou recusado)

Como prevenir: depois de instalar, abre com --debug e confirma que o módulo aparece como carregado no log

Se aparece como recusado (ou nem aparece), ele não está rodando, simples assim 🙂

Safe mode não resolveu: quando a mudança vem do próprio Claude Code

Sintoma: o comportamento estranho continua mesmo com todas as personalizações desligadas

Causa possível: mudança do lado do produto

E isso não é teoria

No dia 23/04/2026 a Anthropic publicou um postmortem atribuindo as reclamações de qualidade do Claude Code a três mudanças:

Mudança Quando começou Quando foi resolvida
Esforço de raciocínio padrão reduzido de high para medium 4 de março revertido em 7 de abril
Bug de cache que apagava o raciocínio anterior a cada turno 26 de março corrigido em 10 de abril
Instrução no system prompt para reduzir verbosidade 16 de abril revertida em 20 de abril

Tudo foi resolvido em 20/04, na v2.1.116

E o detalhe importante: API e pesos do modelo não foram afetados

Ou seja, o modelo era o mesmo. O que mudou foi o agente em volta dele

Por que a degradação parecia irregular?

Cada mudança atingiu um tráfego diferente em momentos diferentes

Então o efeito somado pareceu uma degradação ampla e inconsistente: um dia tava ruim pra você e ok pro seu colega, no outro invertia

É exatamente o tipo de coisa que faz a gente culpar o próprio setup sem motivo… ou culpar o modelo sem motivo

Solução: confere versão e modelo em /status e, aí sim, reporta, levando o resultado do safe mode como evidência

Com isso você mostra que não é mod, não é plugin e não é CLAUDE.md

Como prevenir: mantém o Claude Code atualizado e anota a versão no momento em que notar a mudança

Sem a versão anotada, fica bem difícil cruzar com qualquer correção que saia depois

Antes de abrir a issue, rode o teste de controle

Recapitulando a ordem:

  1. Reproduzir o sintoma com a mesma tarefa
  2. Conferir o que carregou (/status, /hooks, /mcp, /skills, /context, /doctor)
  3. Rodar em claude --safe-mode
  4. Isolar a camada de mods e hooks com "disableAllHooks": true
  5. Isolar o plugin, um por vez, no /plugin
  6. Gerar o log com --debug ou --debug-file

Se a causa for um mod, reporta pro autor do plugin com o trecho do --debug que mostra o módulo ou hook problemático

Se não for o seu setup, reporta pro Claude Code com versão, modelo e o resultado do safe mode

Issue com essas três informações é MUITO mais fácil de resolver do que "ficou burro do nada" haha

E fica o lembrete: mods rodam sem sandbox, com o mesmo acesso à máquina que o Claude Code

Instala só de fonte confiável, beleza?

É isso, até o próximo post! 😀

Perguntas frequentes

Como saber se um mod do Claude Code está causando o problema e não o modelo?

Roda a mesma tarefa em safe mode com claude –safe-mode. Se o sintoma some, a causa está em alguma camada de personalização (mod, hook, skill, MCP). Se continua, o problema não está no seu setup

Dá pra desativar só um mod específico sem mexer nos outros?

Dá sim. Vai na aba Installed do /plugin e desative ou desinstale o plugin daquele mod. Depois roda a tarefa de novo pra confirmar se o sintoma sumiu

Por que instalei um mod e ele não aparece funcionando na sessão aberta?

Se você instalou ou atualizou o mod pelo shell com a sessão já aberta, precisa rodar /reload-plugins nessa sessão. Sem isso, ele só carrega na próxima vez que o Claude Code iniciar

Qual versão do Claude Code eu preciso pra usar mods?

No terminal, a versão mínima é a v2.1.287. No app desktop, mods funcionam a partir da v2.1.286. Abaixo disso o mod simplesmente não roda

Desativei um plugin no settings.json mas ele continua carregando, o que fazer?

Provavelmente uma fonte com precedência maior, como as configurações do projeto, está ativando esse plugin. Pra recusar, defina o id como false em .claude/settings.local.json, que tem precedência maior que o arquivo do projeto

A degradação do Claude Code em 2026 tinha relação com mods instalados pelo usuário?

Não. A Anthropic publicou um postmortem em 23/04/2026 atribuindo as reclamações a três mudanças de produto: esforço de raciocínio reduzido, um bug de cache e uma instrução de verbosidade no system prompt. Nada disso tinha relação com mods ou hooks do usuário, e tudo foi resolvido na v2.1.116



Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 30min

Blog | Mais populares