Sobre o projeto
Plumb é um servidor MCP, entregue como um único binário Go sob a licença MIT, que fornece aos agentes de codificação uma camada de inteligência estilo IDE dentro de restrições controladas. Seu README apresenta quatro pilares em ordem de prioridade: confiabilidade de escrita, coordenação multiagente, inteligência semântica e eficiência contextual.
Segurança de escrita. Cada alteração é temporariamente organizada em arquivo separado e então renomeada para o local definitivo, com suporte a symlinks e tolerância a CRLF. Um bloqueio por caminho no daemon serializa escritas concorrentes ao mesmo arquivo entre sessões e janelas de chat. Transações multiarquivo aplicam edições em diversos arquivos com rollback atômico se alguma etapa falhar, e as verificações mtime/sha rejeitam alterações desatualizadas antes de sobrescreverem mudanças mais recentes. O comando serve funciona como proxy stdio reconectável: se o daemon travar ou suspender, é reiniciado e o handshake reconhecido; o README afirma que escritas em andamento nunca são silenciosamente repetidas.
Coordenação. Como um único daemon atende todos os agentes, sessões podem enxergar e trocar mensagens entre si. A consciência entre pares está habilitada por padrão: workspace_sessions lista sessões ativas e as escritas registradas pelo daemon, distinguindo escritas fracassadas ou recusadas. Uma caixa de correio entre agentes (leave_note, check_messages) também vem ativada por padrão no mesmo espaço de trabalho, com mensagens entregues via resultados normais de ferramentas em vez de polling. Intenções consultivas (share_intent, opt-in sob [collab] intents) sinalizam quando a escrita de um parceiro toca um caminho reivindicado, sendo explicitamente marcadas como reivindicações não verificadas que nunca bloqueiam nada. Achados duradouros (share_findings, opt-in) transformam aprendizados de sessão em memória pesquisável e com dados sensíveis ocultados. O README reforça que a segurança de escrita não depende da cooperação dos agentes.
Inteligência semântica. Ferramentas de refatoração com suporte LSP incluem rename_symbol, replace_symbol_body e safe_delete_symbol. Diagnósticos de language servers reais, como gopls e pyright, são anexados a cada escrita. A busca por símbolos é escopada ao projeto, excluindo ruídos da biblioteca padrão e dependências. Controles contextuais permitem que um agente leia símbolos ou intervalos de linhas ao invés de arquivos inteiros, e session_start inicializa espaço de trabalho, branch, commits recentes, diagnósticos e memória projetual em uma única viagem. O acesso é governado por uma lista de permissão de caminhos por conexão, com raízes somente-leitura e leitura-escrita, além de controle granulado via git; operações destrutivas e de rede no git vêm desabilitadas por padrão. O README publica figuras medidas em docs/use-cases.md, regeneradas por script, e documenta uma limitação: read_multiple_files consome cerca de 1.31x mais payload do que a leitura nativa de arquivos.
Suporte a linguagens é descrito em tiers. Go (gopls) e Python (pyright) são de primeira classe, testados em CI contra binários reais com ferramentas LSP e de escrita completas. Java, Rust, Swift, TypeScript/JavaScript, Zig, Kotlin e HTML estão listados como validados desde que seus servidores estejam no PATH; HTML tem suporte sem acesso ao sistema de arquivos. Um indexador tree-sitter embutido cobre mais de 31 linguagens para busca ranqueada, outlines e exploração de grafo de topologia sem necessidade de language server. Validação com binários reais é declarada para macOS e Linux; Windows está no roadmap mas ainda não suportado porque o daemon utiliza Unix sockets.
Arquitetura. plumb serve faz proxy por plumb.sock para um daemon de fundo compartilhado que mantém language servers aquecidos entre conversas. SQLite armazena um stats.db global para estatísticas de ferramentas e resumos episódicos, mais topology.db e memory.db por projeto sob o diretório .plumb/ de cada workspace. O README afirma que 58 ferramentas são expostas; as mais frequentes incluem session_start, workspace_symbols, get_definition, find_references, rename_symbol, edit_file, transaction_apply e diagnostics, enquanto as demais cobrem acesso ao filesystem, hierarquias LSP, git em tiers, index Topology opcional e memória. Executar plumb sem argumentos abre um painel TUI mostrando chamadas de ferramenta, saúde do daemon, estatísticas por ferramenta e logs em streaming.
Instalação e configuração. Instala-se via Homebrew, go install ou binários pré-construídos de release; binários macOS pré-construídos ainda não possuem notary. plumb setup gera configuração MCP para clientes como claude-code, claude-desktop, codex, gemini e cursor. A configuração usa config.toml global ou por projeto, ou variáveis de ambiente, com plumb config show reportando valores resolvidos e proveniência; opções de amostra incluem strict edits exigindo leitura prévia e rate limit por minuto para loops descontrolados.
Status. Plumb é pré-1.0, com segurança de escrita, daemon resiliente, index de topologia e memória projetual descritos como em uso diário. O roadmap prevê releases temáticos de 0.10 a 0.19, sendo 0.19.x o último 0.x antes do 1.0, e suporte nativo a Windows adiado para 1.1. Diretrizes de contribuição, AGENTS.md, código de conduta e licença MIT são referenciados, e o texto segue o inglês australiano.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.