WhatsApp

Bulkhead bloqueia padrões amplos de pkill -f antes que fechem apps no macOS

Conheça a regra broad-pattern do bulkhead, que bloqueia pkill -f arriscado e permite conferir a decisão sem executar o comando.

Por Jaime Linhares · 12/11/2026

O risco de um padrão amplo

O bulkhead reúne hooks que evitam conflitos entre sessões paralelas do Claude Code na mesma máquina. A versão 0.3.5 acrescentou uma proteção motivada por um erro específico no macOS. O agente queria encerrar um cat travado e executou pkill -f 'cat' -n -u 501. A intenção era atingir um processo, mas o padrão podia alcançar muito mais.

Com -f, o pkill compara o padrão com a linha de comando inteira. Como “cat” também aparece em caminhos como “/Applications”, a correspondência pode incluir processos de vários aplicativos abertos. O problema se agrava porque o pkill do BSD para de interpretar opções após o primeiro argumento que não é opção. Assim, -n e -u depois do padrão não restringem a busca como se poderia esperar.

O que a regra broad-pattern verifica

O relato cita três issues abertas no repositório do Claude Code: #100684, #90070 e #107867. Na medição relatada em #107867, a forma com opções depois do padrão correspondia a 122 processos. Com as opções antes do padrão, a correspondência era de um processo. O exemplo mostra por que a ordem dos argumentos importa e como um comando que parece direcionado pode ter um alcance inesperado.

A regra broad-pattern bloqueia pkill -f quando o padrão alcança um aplicativo de desktop, identificado por um processo dentro de um pacote .app. Ela também bloqueia correspondências com oito ou mais processos fora da árvore da própria sessão. Processos iniciados pela sessão não entram nessa contagem. Assim, ainda é possível encerrar um cat iniciado pela própria sessão. A proteção também vale com uma só sessão aberta.

Como conferir sem executar

Em vez de testar o pkill diretamente, use o comando de explicação do projeto. Ele mostra a decisão sem executar o comando avaliado. O exemplo documentado é npx claude-bulkhead explain -- "pkill -f 'cat' -n -u 501". A saída permite conferir se o padrão acionaria o bloqueio e ler o motivo antes de escolher outra forma de identificar o processo.

Quando bloqueia, o hook informa o motivo e orienta a usar o PID. Para inspecionar as correspondências antes de agir, o texto também recomenda pgrep -fl '<padrão>'. Essa consulta ajuda a entender o alcance antes de escolher um processo específico. A regra interrompe comandos potencialmente amplos e devolve a decisão ao agente, sem classificar cada processo como dispensável.

Instalação e compatibilidade

No Claude Code, a instalação indicada pelo autor usa /plugin marketplace add dooly6276/claude-bulkhead e, em seguida, /plugin install bulkhead@bulkhead. O projeto também declara suporte a Codex, Gemini CLI, Copilot CLI, Cursor e opencode. O caso concreto motivou uma regra para além da proteção original contra conflitos entre sessões paralelas. Consulte o repositório claude-bulkhead para acessar o projeto citado na fonte.

O repositório é licenciado sob MIT, implementado em Node.js e, segundo o texto, não tem dependências. Para quem configura agentes com acesso ao terminal, o exemplo mostra como um comando válido pode ter efeitos amplos quando um padrão encontra processos inesperados. Conferir a decisão com explain e preferir um PID específico ajuda a reduzir esse risco.

Visitar site
Informações deste conteúdo

Tecnologias: Claude Code, Codex, Cursor, Gemini, GitHub, IA, Node.js, macOS

Carreiras: Desenvolvedor Node.js, Desenvolvedor de Aplicações com IA, Especialista em Automação com IA

Idiomas: Português

Tags: aplicativos, claude, codex, cursor, gemini, github, ia