Introdução

O Claude Code é uma ferramenta poderosa, mas pode causar problemas se várias sessões tentarem acessar recursos compartilhados na mesma máquina. Este artigo apresenta um conjunto de hooks de segurança chamado claude-bulkhead, que ajuda a evitar essas colisões, garantindo que cada sessão tenha acesso exclusivo aos recursos necessários.

Como impedi que sessões paralelas do Claude Code derrubassem os servidores umas das outras

Funcionamento do claude-bulkhead

O claude-bulkhead não utiliza um daemon, mas sim um script Node que é executado antes de cada comando de shell. Este script lê o comando como sintaxe de shell e compara-o com os comandos em andamento em todas as sessões. Ele verifica quais processos e portas pertencem a qual sessão, quantos recursos (RAM) estão disponíveis e em qual árvore Git cada sessão está trabalhando.

Funcionamento Detalhado

Se houver uma colisão, o script bloqueia o comando atual e devolve ao Claude o motivo da colisão e um comando alternativo. Os possíveis comandos alternativos incluem:

  • Matar pelo PID: Se um processo está ocupando recursos, o script pode usar o PID para matar o processo específico.
  • Usar uma porta livre: Se uma porta está ocupada, o script pode usar uma porta disponível para o comando atual.
  • Esperar numa fila de RAM: Se a RAM está sobrecarregada, o script pode esperar até que haja espaço suficiente.
  • Commitar pelo nome do arquivo: Se o comando atual está comprometendo um arquivo que outra sessão está editando, o script pode usar o nome do arquivo para o commit.

Testes e Resultados

Para testar o claude-bulkhead, basta adicionar o plugin ao marketplace do Claude Code e executar o comando /bulkhead:scan 30d. Este comando testa as transcrições de comando em arquivos de projeto e verifica se os comandos em andamento estão bloqueados.

Limitações do claude-bulkhead

Embora o claude-bulkhead seja eficaz, ele não pode reproduzir portas e RAM a partir das transcrições. Isso significa que, se várias sessões tentarem acessar os mesmos recursos, o claude-bulkhead não poderá evitar a colisão.

Conclusão

O claude-bulkhead é uma ferramenta poderosa para controlar sessões paralelas do Claude Code em uma máquina compartilhada. Ele garante que cada sessão tenha acesso exclusivo aos recursos necessários, evitando colisões e garantindo que o sistema funcione de forma eficiente e sem problemas. Para testar o claude-bulkhead, siga as instruções fornecidas no README do projeto em português e em inglês.

ClaudeCodeImpediParalelasSessoes