Об этом проекте

Plumb — MCP-сервер, поставляемый в виде одного Go-бинарника под лицензией MIT, который добавляет агентам для кодинга IDE-подобный слой интеллекта внутри защитных ограничений. В README заявлены четыре приоритетных столпа: надёжность записей, координация мультиагентного взаимодействия, семантический интеллект и эффективность контекста. Безопасность записей. Каждая запись staged-ируется во временном файле с последующим переименованием на место; подход описывается как symlink-aware и CRLF-tolerant. Перепутьный лок в демоне сериализует конкурентные записи в один файл между сессиями и чат-окнами. Многофайловые транзакции применяют правки сразу к множеству файлов с атомарным откатом при сбое шага, а mtime/sha- guards отбрасывают устаревшие правки до того, как они перезапишут более свежие изменения. Команда serve — это per reconnecting stdio proxy: при падении или зависании демона он respawns с повторным handshakом, а README утверждает, что in-flight записи никогда не перезапускаются молчаливо. Координация. Поскольку один демон обслуживает всех агентов, сессии могут видеть и сообщать друг другу. Peer awareness включена по умолчанию: workspace_sessions показывает активные сессии и записи, которые демон для них записал, различая failed/refused записи. Agent-to-agent mailbox (leave_note, check_messages) включена по умолчанию в рамках одного workspace, сообщения доставляются через обычные tool results, а не polling. Advisory intents (share_intent, opt-in под [collab] intents) маркируют случаи, когда правка пиров касается claimed path, и явно помечены как unverified claims, которые ничего не блокируют. Durable findings (share_findings, opt-in) превращают learnings сессии в searchable, secret-scrubbed project memory. В README подчёркивается, что write safety не зависит от cooperation агентов. Семантический интеллект. LSP-backed tools рефакторинга включают rename_symbol, replace_symbol_body и safe_delete_symbol. Diagnostics от реальных language servers, таких как gopls и pyright, добавляются к каждой записи. Symbol search scoped to проекту, исключая stdlib и dependency noise. Context controls позволяют агенту читать символы или диапазоны строк вместо целых файлов, а session_start bootstraps workspace, ветку, недавние коммиты, diagnostics и project memory за один round trip. Доступ регулируется per-connection path allowlist с read-only и read-write roots плюс tiered git gating; destructive и сетевые git-операции выключены по умолчанию. В README публикуются измеренные метрики в docs/use-cases.md, перегенерируемые скриптом, а также документируется потеря: read_multiple_files обходится примерно на 1.31x дороже payload, чем чтение файлов нативно. Поддержка языков описана tiers, а не одним числом. Go (gopls) и Python (pyright) — first-class, CI-tested против реальных бинарников с полным LSP и write tools. Java, Rust, Swift, TypeScript/JavaScript, Zig, Kotlin и HTML перечислены как validated при условии, что их серверы есть в PATH; HTML отмечен как не имеющий filesystem access. Встроенный tree-sitter индекс покрывает 31+ язык для ranked search, outlines и topology graph exploration без language server. Real-binary validation заявлена для macOS и Linux; Windows отслеживается, но пока не поддержана, поскольку демон использует Unix sockets. Архитектура. plumb serve проксирует через plumb.sock на один shared background daemon, который keep language servers warm между чатами. SQLite хранит глобальный stats.db для tool stats и episodic summaries, а также per-project topology.db и memory.db под каждой .plumb/ директорией workspace. README заявляет 58 exposed tools; часто используемые включают session_start, workspace_symbols, get_definition, find_references, rename_symbol, edit_file, transaction_apply и diagnostics, остальные покрывают filesystem access, LSP hierarchies, tiered git, optional local Topology index и память. Запуск plumb без аргументов открывает TUI dashboard с tool calls, health демона, per-tool stats и streamable logs. Установка и конфигурация. Установить через Homebrew, go install или prebuilt release binaries; prebuilt macOS binaries пока не notarised. plumb setup пишет MCP configuration для клиентов вроде claude-code, claude-desktop, codex, gemini и cursor. Конфигурация использует глобальный или per-project config.toml либо environment variables, plumb config show отчитывает resolved values и provenance; sample options включают strict edits (требуется prior read) и per-minute rate limit для runaway loops. Статус. Plumb — pre-1.0, write safety, устойчивый демон, topology index и project memory описаны как в daily use. Roadmap включает themed releases 0.10–0.19, причём 0.19.x — последний 0.x перед 1.0, а native Windows support отложен до 1.1. Ссылки на contributing guidance, AGENTS.md, code of conduct и MIT лицензию; проза следует Australian English.