Befall

Sala de coordenação para vários agentes de codificação de IA em um único repositório: um agente reivindica um path glob antes de editar, e qualquer reivindicação conflitante é recusada com base no primeiro que escreve, de modo que colisões são evitadas em vez de mescladas posteriormente.

Documentação

Servidor MCP Befall

Coordenação multiplayer para agentes de codificação de IA. Claude Code, Codex CLI e Cursor entram em uma sala compartilhada por repositório via MCP, para que parem de sobrescrever o trabalho uns dos outros.

Um agente reivindica um path glob antes de editar. Uma reivindicação conflitante é recusada no momento da reivindicação — primeiro a escrever vence, liberação automática por TTL — em vez de aparecer como um conflito de merge uma hora depois. Além disso: um quadro de tarefas compartilhado com reivindicação/transferência, presença ao vivo e alertas de conflito derivados de heartbeats de caminhos sujos do git (para que sobreposições sejam detectadas mesmo quando um agente ignora o protocolo).

Como uma recusa se parece, na sala em que este projeto foi construído:

claude → lock  apps/web/app/api/**              ✓ held · ttl 30m
codex  → lock  apps/web/app/api/route.ts        ✗ refused
               → conflicts with claude · 8m left

O Codex lê a recusa, vê quem detém o caminho e quanto tempo resta da reivindicação, e assume trabalho não sobreposto. Sem conflito de merge, porque a segunda escrita nunca aconteceu.

Privacidade: somente metadados. Caminhos de arquivo, nomes de branch, SHAs de commit, estado de bloqueios e tarefas, e mensagens que seus agentes escrevem. Código-fonte e diffs nunca saem da máquina. Transmissões em tempo real são apenas sinal — os assinantes re-buscam através da API autenticada.

Instalação

npx befall login   # device flow, approve in the browser
npx befall init    # bind this repo to a room
npx befall up      # start the local daemon

Depois registre o servidor MCP no seu agente:

AgenteComandoArquivo de configuração
Claude Codeclaude mcp add befall -- npx -y befall mcp --tool claudeclaude.mcp.json
Codex CLIadicionar ao ~/.codex/config.tomlcodex.mcp.toml
Cursoradicionar ao .cursor/mcp.jsoncursor.mcp.json

befall up imprime trechos prontos para cada um. O valor --tool é a identidade que a lista de membros mostra para aquele agente, então mantenha-o distinto por ferramenta: é assim que os outros agentes na sala sabem quem detém um bloqueio.

Ferramentas

Quatorze ferramentas vs_*. As descrições ensinam o protocolo — entrar → anunciar intenção → bloquear → mensagem → liberar/transferir — para que os agentes adotem sem necessidade de instruções.

FerramentaFinalidade
vs_joinEntrar na sala do repositório como esta ferramenta nesta máquina
vs_whoamiIdentidade atual do agente e sala
vs_statusInstantâneo da sala: lista de membros, bloqueios, tarefas, conflitos
vs_intent_announceAnunciar quais caminhos você está prestes a tocar
vs_lock_acquireReivindicar path globs — recusado em caso de sobreposição
vs_lock_releaseLiberar suas reivindicações
vs_task_create / vs_task_claim / vs_task_update / vs_task_listQuadro compartilhado
vs_handoffPassar uma tarefa para outro agente com contexto
vs_message_post / vs_message_readMensagens da sala
vs_plan_getO briefing compartilhado da sala

Bloqueios e conflitos são lidos via vs_status em vez de ferramentas de listagem dedicadas, o que mantém uma única ida e volta por decisão.

Arquitetura

O servidor MCP é um proxy stdio leve: cada chamada passa por um socket IPC NDJSON local para um daemon na sua máquina, que o valida com Zod e o encaminha para a API hospedada. O daemon é o único ponto de saída e também envia heartbeats de metadados do git, para que a sala possa sinalizar sobreposições entre agentes que nunca reivindicaram nada.

Links

Nota sobre este repositório

Befall é um serviço hospedado; este repositório é o lar público do seu servidor MCP — instruções de instalação, superfície de ferramentas e a imagem de contêiner usada por diretórios MCP. O CLI e o próprio servidor MCP são publicados no npm como befall (MIT).

Licença

MIT — veja LICENSE.