Como fazer um Mod do Claude Code segurar um comando de shell arriscado antes de ele rodar (o exemplo Blast Radius)

O Blast Radius é o mod de exemplo da Anthropic que segura comandos perigosos (rm -rf, git reset –hard, git clean, git push –force e migrations) antes de rodarem. Ele intercepta o tool.call do Bash, calcula o que o comando tocaria e abre um painel com Proceed e Cancel. O foco começa no Cancel, e sem resposta em 10 minutos o comando é recusado. Os Claude Code mods exigem a v2.1.287 ou mais nova. Atenção ao bug aberto na v2.1.288 (Issue #99130) e ao travamento de 10 minutos no claude -p
Deixar o agente rodar rm -rf ou um git push --force sem freio nenhum é tipo entregar a chave do carro e ir dormir no banco de trás…
Funciona até o dia que não funciona haha
Fala aí, beleza? Os mods chegaram ao Claude Code na versão 2.1.287, publicada no npm em 1º de outubro de 2026, e a documentação oficial já cita um exemplo muito massa: o Blast Radius
Ele segura um comando de shell arriscado, mostra o que esse comando mudaria e te dá dois botões: seguir ou cancelar 🙂
Neste post vou te mostrar o padrão por trás disso (interceptar a chamada de ferramenta antes dela rodar) e como instalar o exemplo oficial, passo a passo
Bora?
O que é um Mod do Claude Code e por que ele consegue barrar um comando?
Um mod é um módulo pequeno em TypeScript ou JavaScript, entregue dentro de um plugin comum
A graça dele é que ele intercepta eventos do Claude Code: chamadas de ferramenta, prompts, turnos, slash commands e até o desenho da UI
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 120 aulas
- 4 projetos
- 9h 48min
E é aí que mora o poder de barrar um comando
Quando o Claude decide chamar o Bash, isso vira um evento tool.call, e o mod fica no meio do caminho entre a decisão e a execução
Se você conhece middleware de servidor web, é bem semelhante: a requisição passa por você antes de chegar no destino, e você decide se ela segue 😀
As três respostas do tool.call:
No evento tool.call o mod tem três jeitos de responder:
- Observar: deixa passar do jeito que veio, só olhando
- Reescrever: troca o comando por uma versão mais segura antes de seguir
- Negar: não chama o
nexte devolve um{ deny }com o motivo
O contrato, de forma resumida, fica assim:
// observar: segue normalmente
await next(e)
// reescrever: segue com um comando mais seguro
next({ ...e, command: safer })
// negar: NÃO chama next e explica o motivo
return { deny: "motivo que o Claude vai ler" }
E o detalhe mais legal: o Claude lê o motivo da negação como resultado da ferramenta
Ou seja, ele não fica perdido sem saber por que o comando não rodou, ele recebe a explicação e pode ajustar o plano
O que o Blast Radius mostra antes de cada comando perigoso?
O Blast Radius fica no repositório claude-code-playground da Anthropic, na pasta claude-code/mods/blast-radius
Quando o Claude chama o Bash com certos comandos, ele para a chamada, calcula o que o comando tocaria e abre um painel
O que aparece depende do comando:
| Comando | O que o painel mostra |
|---|---|
rm -r, rm -f, rm -rf |
Os arquivos que seriam apagados, com quantidade e tamanho total |
git reset --hard |
Os arquivos com mudanças não commitadas |
git clean |
Os caminhos não rastreados que seriam removidos |
git push --force (também -f, --force-with-lease, +ref) |
Os commits do branch remoto que seu HEAD não tem e que o push descartaria |
manage.py migrate, db:migrate, alembic upgrade, prisma migrate |
As migrations pendentes |
Se liga nesse detalhe que faz MUITA diferença: se a linha de comando muda de pasta antes, com cd dir &&, pushd/popd ou git -C dir, o Blast Radius faz a medição nessa pasta
Sem isso, a medição podia olhar o diretório errado e te mostrar "nada vai ser apagado" quando na real ia sumir uma pasta inteira kkk
Pré-requisitos para instalar o Blast Radius:
Antes de sair instalando, confere essa lista:
- Claude Code v2.1.287 ou mais novo: é a versão em que os mods chegaram
- bash, git, find e du no PATH: o Blast Radius usa essas ferramentas pra fazer as checagens
Tome cuidado com o bug da v2.1.288:
A documentação diz que os mods vêm ligados por padrão
Porém, tem um bug aberto (a Issue #99130): na v2.1.288 uma chave remota de rollout desliga os mods de plugins instalados, enquanto os mods embutidos carregam mesmo assim
A mensagem de log cita the rollout switch served off
Então se você instalou tudo certinho e o painel nunca aparece, olha o log antes de achar que fez algo errado

VPS Hostinger para seu sistema
10% OFF extraVPS com SSD NVMe e backups semanais. O cupom MATHEUSHORADECODAR é aplicado automaticamente pelo link.
Ver planos com 10% OFF →Inspecione antes de instalar:
A doc recomenda instalar mods só de fontes confiáveis e inspecionar antes com:
claude plugin validate
Mesmo sendo um exemplo da própria Anthropic, vale criar o hábito, porque (como você vai ver mais pra frente) mod não é sandbox
Passo a passo: instalar o Blast Radius no Claude Code
- Clone o repositório oficial:
git clone https://github.com/anthropics/claude-code-playground.git
- Entre na pasta dos mods:
cd claude-code-playground/claude-code/mods
Erro comum deste passo: pular o cd e seguir pro próximo comando na raiz do repositório
- Adicione a pasta como marketplace de plugins:
claude plugin marketplace add ./
Erro comum deste passo: o ./ aponta pra pasta atual, então se você não estiver dentro de claude-code/mods, ele vai apontar pro lugar errado
- Instale o Blast Radius no escopo do usuário:
claude plugin install blast-radius@claude-code-playground-mods --scope user
Erro comum deste passo: faltar find ou du no PATH, já que o mod depende deles (junto com bash e git) pra medir o estrago
- Se você já tinha uma sessão do Claude Code aberta, recarregue os plugins dentro dela:
/reload-plugins
Erro comum deste passo: esquecer o /reload-plugins e achar que o mod não funciona, quando na real a sessão só não carregou ele ainda
E se mesmo assim nada acontecer e você estiver na v2.1.288, lembra do bug da chave de rollout que falei ali em cima 😛
Como usar o painel Proceed / Cancel sem rodar o comando por engano?
O fluxo é simples
O Claude chama o Bash com um comando coberto, o Blast Radius segura a chamada e abre o painel com dois botões:
- Proceed: roda o comando
- Cancel: recusa o comando
E aqui vem a parte que eu acho muito bem pensada: o foco começa no Cancel
Ou seja, apertar Enter recusa o comando, não roda
Pra escolher, você tem algumas opções:
- Apertar 1 pra Proceed ou 2 pra Cancel
- Clicar no botão
- Usar Tab até o botão e apertar Enter
E se você não responder?
Se ninguém responder em 10 minutos, o comando é recusado
Interromper o turno com Esc também recusa
Nos dois casos o Claude vê a recusa e o motivo, então ele sabe que o comando não rodou
Erro comum: estar no automático, apertando Enter pra tudo, e achar que Enter confirma
Aqui ele faz o contrário, e isso é bom! O padrão seguro é não fazer nada destrutivo
O padrão por trás do Blast Radius para você criar o seu próprio Mod
O Blast Radius é um exemplo, mas a ideia por trás dele serve pra muiiito mais coisa
A técnica demonstrada tem três partes:
- Segurar o
tool.callaté o usuário responder: a chamada fica parada enquanto o painel está aberto - Retornar
{ deny }com um motivo útil: em vez de só barrar, o mod explica pro Claude por que barrou, e ele consegue usar isso pra mudar de estratégia - Rodar as checagens de dry-run via
$.process.run: passando os caminhos como argumentos, pra que nada neles rode como shell
E esse último ponto é o mais importante, se liga
Que dry-run? É a simulação: antes de deixar o rm -rf rodar, o mod precisa descobrir quais arquivos ele apagaria
Só que esses caminhos vêm do comando que o Claude gerou
Se o mod montasse uma string e mandasse pro shell, um nome de arquivo malicioso podia virar comando, e aí a ferramenta de segurança vira a própria brecha xD
Passando os caminhos como argumentos, eles são tratados só como dados
É a mesma ideia do modo plano no Claude Code: segurar o agente antes da ação irreversível, só que aqui o freio fica no comando em si
Pra criar o seu, a melhor referência é ler o código na pasta claude-code/mods/blast-radius do repositório e adaptar o padrão pros comandos perigosos do seu projeto

Crie sistemas com IA para vender
Prompts, modelos e checklists para criar e publicar seu sistema com IA e preparar a oferta para o primeiro cliente.
Quero o e-book gratuito Receba o livro e os bônus no seu e-mail.Problema conhecido: rm -rf travado 10 minutos só no modo não interativo (claude -p)
Sintoma: no modo não interativo (claude -p), um rm -rf segurado sempre espera os 10 minutos inteiros e depois é recusado, mesmo quando não apagaria nada
Causa: no modo não interativo não tem ninguém pra responder o painel, então o comando fica esperando até estourar o tempo (está registrado na Issue #2 do claude-code-playground)
Solução: não tem correção confirmada até aqui, então o caminho é evitar que o mod carregue nessas execuções
- Desativar o plugin na aba Installed do
/plugin - Ou usar
"disableAllHooks": trueem~/.claude/settings.json
Só lembra que o disableAllHooks desliga todos os mods que você instalou, em todas as sessões, então não esquece de voltar depois
Cuidados de segurança: um Mod não é sandbox
Essa parte é ULTRA importante, então lê com calma
Mods não rodam em sandbox
Eles têm o mesmo acesso à máquina que o próprio Claude Code: leem arquivos, enxergam chaves de API em variáveis de ambiente, veem todo prompt e podem aprovar chamadas de ferramenta por você
E mais: com o sandbox ligado, ele isola os comandos Bash do Claude, mas um processo iniciado por um mod roda fora dele
Regras de deny vencem o mod, mas com uma pegadinha:
As regras de deny e os hooks gerenciados têm precedência, então um mod do usuário não consegue aprovar uma chamada que uma regra de deny recusa
Porém, as regras de deny não valem pro $.fs e o $.process do próprio mod
Exemplo: com Read(.env) negado, um mod ainda consegue ler o arquivo via $.fs.read
Por isso o claude plugin validate e a regra de instalar só de fonte confiável não são frescura
Como desligar os mods:
- Todos os mods que você instalou, em todas as sessões:
"disableAllHooks": trueem~/.claude/settings.json - Um mod específico: desative ou desinstale o plugin dele na aba Installed do
/plugin
Mods embutidos não podem ser desinstalados
E nas empresas?
Nas managed settings dá pra usar:
allowManagedModsOnly: bloqueia mods instalados pelo usuárioallowManagedHooksOnly: mais amplodisableAllHooks: desliga tudo
Além disso, um guard embutido, o sec-default@builtin, carrega antes dos mods do usuário quando há managed settings ou login em plano Team/Enterprise
Vale a pena usar o Blast Radius?
Pra quem deixa o agente rodar comandos no terminal, é um freio muito massa
Ele não bloqueia tudo no escuro: mostra o que vai ser apagado, quais commits somem, quais migrations vão rodar, e só aí você decide
E o design é conservador do jeito certo: foco no Cancel, recusa depois de 10 minutos sem resposta, Esc também recusa
As ressalvas são reais, então não ignora:
- O bug da chave de rollout na v2.1.288 pode desligar o mod sem você perceber
- No
claude -pele trava 10 minutos em cadarm -rfsegurado - Mod não é sandbox, então confiança na fonte é obrigatória
O próximo passo é instalar, rodar o claude plugin validate e abrir o código na pasta blast-radius pra entender o padrão
Depois disso, adaptar pros comandos perigosos do seu projeto fica bem mais tranquilo 😀
E aí, vai deixar o agente rodar rm -rf sem freio ainda? haha
Até o próximo post!
Perguntas frequentes
Qual a versão mínima do Claude Code pra usar o Blast Radius?
Precisa do Claude Code v2.1.287 ou mais novo, que foi quando os mods chegaram, publicado no npm em 1º de outubro de 2026. Antes dessa versão o evento tool.call que o Blast Radius usa nem existe. Vale só confirmar que não caiu na v2.1.288 com o bug da chave de rollout que falamos no post.
O que acontece se eu não responder ao painel do Blast Radius?
Se ninguém clicar em Proceed ou Cancel em 10 minutos, o comando é recusado automaticamente. Apertar Esc pra interromper o turno também recusa o comando na hora. Ou seja, o padrão seguro é sempre negar quando fica em dúvida.
O Blast Radius roda em sandbox, tipo isolado da minha máquina?
Não. Mods não rodam em sandbox e têm o mesmo acesso à máquina que o próprio Claude Code, incluindo arquivos e variáveis de ambiente. Mesmo com o sandbox do Claude Code ligado isolando o Bash, um processo que o mod inicia roda fora desse isolamento, por isso a doc recomenda inspecionar com claude plugin validate antes de instalar.
Dá pra usar o Blast Radius no modo claude -p, sem interação?
Dá, mas tem um problema conhecido registrado na Issue #2 do repositório claude-code-playground. No claude -p um rm -rf segurado sempre espera os 10 minutos inteiros antes de ser recusado, mesmo quando o comando não ia apagar nada. Então em automações sem interação humana isso pode travar o fluxo por bem mais tempo que o esperado.
Como desativo o Blast Radius sem precisar desinstalar?
Pela aba Installed do /plugin dá pra desativar ou desinstalar só esse plugin, já que ele não é um mod embutido. Se quiser desligar TODOS os mods instalados de uma vez, em qualquer sessão, basta colocar "disableAllHooks": true no arquivo ~/.claude/settings.json.
Uma regra de deny consegue travar o Blast Radius mesmo ele querendo deixar passar?
Sim, quando o assunto é a chamada de ferramenta do Claude. As regras de deny e os hooks gerenciados têm precedência, então se uma regra de deny recusa uma chamada, o Blast Radius (ou qualquer mod do usuário) não consegue aprovar essa chamada por cima. O limite é outro: as regras de deny não valem para o $.fs e o $.process do próprio mod. Por exemplo, com Read(.env) negado, o Claude não lê o arquivo, mas um mod ainda consegue ler via $.fs.read, porque aí não é uma chamada de ferramenta do Claude passando pelo deny.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 30min
Blog | Mais populares
Bateu o limite de uso do Claude Code? Como retomar a tarefa sem refazer tudo
Bateu o limite de uso do Claude Code? Veja como retomar a tarefa de onde parou com /usage, CLAUDE.md e --continue, sem refazer nada.
Como pagar o Claude Code no Brasil: cartão, dólar, IOF e quanto fica em reais
Claude Code preço Brasil na prática: câmbio, IOF de 3,5% e quanto fica na fatura. Planos Pro e Max convertidos em reais e como pagar com cartão.

O que é o JEV e para que ele serve no Claude Code?
O que é JEV no Claude Code? Entenda o modelo da TypeSafe AI, como instalar a skill e quanto custa por milhão de tokens.
