Sobre el proyecto

Plumb es un servidor MCP, distribuido como un único binario Go bajo licencia MIT, que proporciona a los agentes de codificación una capa de inteligencia estilo IDE dentro de ciertos límites. Su README establece cuatro pilares en orden de prioridad: fiabilidad de escritura, coordinación multiagente, inteligencia semántica y eficiencia contextual. Seguridad de escritura. Cada escritura se prepara en un archivo temporal y luego se renombra en su lugar, siendo consciente de enlaces simbólicos y tolerante a CRLF. Un bloqueo por ruta en el daemon serializa las escrituras concurrentes al mismo archivo entre sesiones y ventanas de chat. Las transacciones multiples aplican ediciones en muchos archivos con un rollback atómico si falla un paso, y los guardias mtime/sha rechazan ediciones obsoletas antes de sobrescribir cambios más recientes. El comando serve es un proxy stdio reconectable: si el daemon falla o se bloquea, se reinicia y se replay del handshake, y el README indica que las escrituras en curso nunca se reprocesan silenciosamente. Coordinación. Como un solo daemon atiende a todos los agentes, las sesiones pueden verse y mensajearse entre sí. La conciencia entre pares está activada por defecto: workspace_sessions enumera sesiones activas y las escrituras que el daemon registró para ellas, distinguiendo escrituras fallidas o rechazadas. Un buzón agente-a-agente (leave_note, check_messages) está activo por defecto dentro del mismo workspace, con mensajes entregados en resultados de herramientas ordinarias en lugar de sondeo. Intenciones consultivas (share_intent, opt-in bajo [collab] intents) marcan cuándo la escritura de un par toca una ruta reclamada, y se etiquetan explícitamente como afirmaciones no verificadas que nunca bloquean nada. Hallazgos duraderos (share_findings, opt-in) convierten los aprendizajes de sesión en memoria de proyecto buscable y sin secretos. El README enfatiza que la seguridad de escritura no depende de que los agentes cooperen. Inteligencia semántica. Las herramientas de refactorización respaldadas por LSP incluyen rename_symbol, replace_symbol_body y safe_delete_symbol. Los diagnósticos de servidores de lenguaje reales como gopls y pyright se añaden a cada escritura. La búsqueda de símbolos está acotada al proyecto, excluyendo ruido de stdlib y dependencias. Los controles contextuales permiten a un agente leer símbolos o rangos de líneas en lugar de archivos enteros, y session_start inicializa workspace, rama, commits recientes, diagnósticos y memoria de proyecto en un solo viaje. El acceso se rige por una lista blanca de rutas por conexión con raíces de solo lectura y lectura-escritura más gating git escalonado; las operaciones git destructivas y de red están desactivadas por defecto. El README publica cifras medidas en docs/use-cases.md, regeneradas por un script, y también documenta una limitación: read_multiple_files cuesta aproximadamente 1.31x más payload que leer archivos nativamente. El soporte de lenguajes se describe en niveles más que en un solo número. Go (gopls) y Python (pyright) son ciudadanos de primera clase, probados en CI contra binarios reales con herramientas LSP y de escritura completas. Java, Rust, Swift, TypeScript/JavaScript, Zig, Kotlin y HTML se enumeran como validados siempre que sus servidores estén en PATH; HTML se señala como sin acceso al sistema de archivos. Un índice tree-sitter integrado cubre 31 o más lenguajes para búsqueda clasificada, contornos y exploración de topología sin servidor de lenguaje. La validación con binarios reales se declara para macOS y Linux; Windows está en seguimiento pero aún no soportado porque el daemon usa sockets Unix. Arquitectura. plumb serve hace proxy sobre plumb.sock hacia un único daemon compartido en segundo plano que mantiene los servidores de lenguaje calientes entre chats. SQLite almacena una stats.db global para estadísticas de herramientas y resúmenes episódicos, además de topology.db y memory.db por proyecto bajo el directorio .plumb/ de cada workspace. El README dice que expone 58 herramientas; las más usadas incluyen session_start, workspace_symbols, get_definition, find_references, rename_symbol, edit_file, transaction_apply y diagnostics, mientras que el resto cubre acceso filesystem, jerarquías LSP, git escalonado, índice Topology local opcional y memoria. Ejecutar plumb sin argumentos abre un panel TUI que muestra llamadas de herramientas, salud del daemon, estadísticas por herramienta y logs en streaming. Instalación y configuración. Instalar vía Homebrew, go install, o binarios preconstruidos de releases; los binarios preconstruidos para macOS no están aún notariados. plumb setup escribe configuración MCP para clientes como claude-code, claude-desktop, codex, gemini y cursor. La configuración usa config.toml global o por proyecto o variables de entorno, con plumb config show reportando valores resueltos y procedencia; opciones de ejemplo incluyen estrict edits requiriendo una lectura previa y límite de tasa por minuto para bucles descontrolados. Estado. Plumb es pre-1.0, con seguridad de escritura, el daemon resiliente, el índice de topología y la memoria de proyecto descritos como de uso diario. La hoja de ruta enumera lanzamientos temáticos 0.10 a 0.19, con 0.19.x como última versión 0.x antes de 1.0, y el soporte nativo para Windows postergado a 1.1. Se referencian guías de contribución, AGENTS.md, código de conducta y licencia MIT, y la prosa sigue el inglés australiano.