Sobre o projeto

Swarm é um plano de controle local-first projetado para desenvolvedores que executam múltiplos agentes de codificação de IA simultaneamente. Ele roda como um único daemon na sua máquina, lendo os hooks, transcrições e logs de sessão que agentes como Claude Code, Codex CLI, Gemini CLI, Grok, Aider e opencode já produzem — exigindo zero alterações de instrumentação em seus repositórios. Todo o estado reside em ~/.swarm/ e o painel vincula-se a 127.0.0.1, então nada sai da sua máquina, nenhuma conta é necessária e funciona offline. O valor central é observabilidade e coordenação. A visão Fleet mostra cada sessão em todos os projetos em tempo real: qual agente está rodando, em qual branch, o que está fazendo agora, modelo, tokens de saída, tamanho do contexto, custo e idade. Uma sessão que começa a repetir um comando com falha recebe um selo Stuck e uma notificação de desktop. A visão Session transmite o raciocínio e as chamadas de ferramentas de um agente ao vivo, com custo por turno, taxa de cache hit, parcela de pensamento e um histograma de ferramentas. O Replay percorre as chamadas de ferramentas uma a uma com entrada e saída completas, e uma sessão encerrada pode ser retomada de onde parou. O Board serve como um livro-razão de coordenação para um projeto. Ele rastreia tarefas de um backlog em markdown, GitHub Issues ou Linear, com portões de aprovação/reprovação e ações Run/Dispatch. As reivindicações de tarefas são mantidas em worktrees git isolados, cada um com branch, drift, estado sujo/não enviado e a sessão dentro dele. Recursos de runtime — portas, servidores de desenvolvimento, bancos de dados — são mantidos como singletons nomeados. Incidentes registram cada comando que as regras questionaram ou negaram, com uma ação Codify que transforma um em uma regra .swarm.toml e uma lição CLAUDE.md. Regras são salvaguardas sobre os comandos Bash que uma sessão do Claude Code executa: shared_tree, destructive_git, pattern_kill, protected_ports, no_foreign_worktree e claim_required_to_write. Cada uma é definida como ask, deny ou off por repositório em .swarm.toml. Uma negação é retornada ao Claude Code como uma negação real de permissão. Portas mantidas como recursos são protegidas automaticamente. Essas são salvaguardas contra acidentes, não uma sandbox. Swarm também pode gerar agentes: swarm run --task X reivindica uma tarefa e gera claude -p em seu worktree, controlável por stdin e interrompível por pid. swarm dispatch --ready entrega cada tarefa reivindicável à sua própria execução, N por vez. Perfis de execução (full, no-edits, read-only) limitam o que um agente gerado pode fazer. Portões declarados em .swarm.toml são executados no worktree da tarefa — saída 0 passa, a cauda da saída é a evidência. Toda sessão que pausa deixa uma transferência automática (auto-handoff) com arquivos editados, último comando de verificação e última solicitação; a próxima sessão nesse worktree a recebe injetada no início. Um agente que encontra uma decisão que somente um humano pode tomar chama swarm_ask; a pergunta aparece na página da sessão com opções como botões, o Fleet mostra um selo Asking, uma notificação de desktop é disparada e a resposta chega ao agente sozinha. Fluxos de trabalho declarativos em .swarm.toml avançam automaticamente: etapas run geram um agente, etapas gate devem passar para continuar, e pr envia o branch e abre o pull request. Mensagens agente-a-agente via swarm_send alcançam outra sessão por id, quem quer que esteja segurando uma tarefa, ou a sessão líder. A visão PRs fornece uma fila de merge unificada entre GitHub e GitLab, lida através do seu CLI gh ou glab já autenticado. Nenhum token é armazenado. O Timeline mostra faixas de sessão por projeto, coloridas por agente, ao longo de 3 a 72 horas. Spend e Stats detalham o custo por projeto, modelo, agente e tarefa, com uma tabela de orçamento de contexto classificando as sessões por quanto contexto elas releem. Orçamentos por repositório impõem tetos diários ou semanais que avisam, perguntam ou param. Outcomes rastreiam se o trabalho sobreviveu: sessões juntam-se a um branch, o branch ao seu PR, o PR a mesclado ou revertido, pontuado por modelo e por agente com taxa de merge, tempo mediano para merge e dólares por merge. Um grafo bipartido ao vivo mostra sessões em execução contra os arquivos que elas tocam; um arquivo que duas sessões seguram com pelo menos um escritor fica vermelho — um conflito de merge que você ainda pode prevenir. Swarm está disponível como CLI (bunx @ra3orblade/swarm setup), aplicativo desktop (macOS assinado e notarizado, Windows, Linux .deb/.rpm) e um servidor MCP que permite que os agentes se coordenem. O daemon de equipe (swarm-teamd) é um segundo serviço auto-hospedado para configurações multi-máquina, encaminhando eventos de auditoria, resumos de gastos e reivindicações — nunca o texto da transcrição, a menos que uma máquina opte por isso. O pacote de equipe tem código-fonte disponível sob FSL-1.1-ALv2, convertendo para Apache-2.0 dois anos após cada lançamento; todo o resto é Apache-2.0.