프로젝트 소개

Plumb은 MIT 라이선스로 배포되는 단일 Go 바이너리로 패키지된 MCP 서버로, 감옥 안에 AI 코딩 에이전트에 IDE 스타일의 지능 계층을 제공합니다. README에는 네 가지 기둥이 우선순위 순으로 명시되어 있습니다: 쓰기 안전성, 다중 에이전트 조정, 의미론적 지능, 컨텍스트 효율성입니다. 쓰기 안전성. 모든 쓰기는 임시 파일에 스테이징된 후 심볼릭 링크 인식 및 CRLF 허용 방식으로 이동됩니다. 데몬의 경로별 잠금은 세션과 채팅 창 전체에서 동일한 파일에 대한 동시 쓰기를 직렬화합니다. 다중 파일 트랜잭션은 여러 파일에 걸쳐 편집을 적용하며 단계 실패 시 원자적 롤백을 수행하고, mtime/sha 가드는 신제품 변경사항을 덮어쓰기 전에 낡은 편집을 거부합니다. serve 명령어는 재연결 stdio 프록시로, 데몬이 충돌하거나 멈추면 respawning되고 핸드셰이크가 재생됩니다. README에 따르면 진행 중인 쓰기는 영원히 묵시적으로 재실행되지 않습니다. 조정. 하나의 데몬이 모든 에이전트를 서비스하므로 세션은 서로를 보고 메시지할 수 있습니다. 피어 인식은 기본적으로 활성화되어 있으며 workspace_sessions는 활성 세션과 데몬이 기록한 편집을 이름으로 표시하고 실패했거나 거부된 편집을 구분합니다. 에이전트 간 우편함(leave_note, check_messages)은 동일 워크스페이스 내에서 기본적으로 활성화되어 있으며 메시지는 폴링이 아닌 일반 도구 결과를 통해 전달됩니다. 자문 의도(share_intent, [collab] intents 하에서 옵트인)는 피어의 쓰기가 주장된 경로를Touches할 때 플래그를 설정하며 절대 어떤 것도 차단하지 않는 명시적으로 검증되지 않은 주장으로 표시됩니다. 영구 발견(share_findings, 옵트인)은 세션 학습을 검색 가능한,的秘密 스크러bed 프로젝트 메모리로 변환합니다. README는 쓰기 안전성이 에이전트의 협력에 의존하지 않는다고 강조합니다. 의미론적 지능. LSP 기반 리팩토링 도구에는 rename_symbol, replace_symbol_body, safe_delete_symbol이 포함됩니다. gopls와 pyright와 같은 실제 언어 서버의 진단은 모든 쓰기마다 추가됩니다. 심볼 검색은 표준 라이브러리와 의존성 노이즈를 제외하고 프로젝트 범위로 제한됩니다. 컨텍스트 제어는 에이전트가 전체 파일 대신 심볼이나 줄 범위를 읽을 수 있게 하며, session_start는 한 라운드 트립으로 워크스페이스, 브랜치, 최근 커밋, 진단 및 프로젝트 메모리를 부트스트랩합니다. 접근은 읽기 전용 및 읽기쓰기 루트와 계층적 git 게이트링이 있는 연결별 경로 허용목록에 의해 관리됩니다. 파괴적이고 네트워크 git 작업은 기본적으로 비활성화되어 있습니다. README는 docs/use-cases.md에 측정치를 게시하며 스크립트로 재생성됩니다. 또한 read_multiple_files이 파일을 원천적으로 읽는 것보다 약 1.31배 더 많은 페이로드 비용이 든다는 손실을 문서화합니다. 언어 지원은 하나의 숫자가 아닌 계층으로 설명됩니다. Go(gopls)와 Python(pyright)는 일급이며, 실제 바이너리와의 CI 테스트, 전체 LSP 및 쓰기 도구를 갖추고 있습니다. Java, Rust, Swift, TypeScript/JavaScript, Zig, Kotlin, HTML은 PATH에 서버가 제공되면 검증된 것으로 나열되며 HTML은 파일 시스템 접근 없이 제공됩니다. 내장 tree-sitter 인덱스는 31개 이상의 언어를 커버하여 계층 검색, 개요 및 토폴로지 그래프 탐색을 언어 서버 없이 가능하게 합니다. 실제 바이너리 검증은 macOS와 Linux에 대해 명시되며 Windows는 데몬이 Unix 소켓을 사용하므로 아직 지원되지 않아 추적 중입니다. 아키텍처. plumb serve는 플러임.sock을 통해 하나의 공유 백그라운드 데몬으로 프록시하여 언어 서버를 여러 채팅 전반에 걸쳐 온 상태로 유지합니다. SQLite는 전역 stats.db를 저장하고 에피소드 요약, 각 워크스페이스의 .plumb/ 디렉터리 하위에 위치하는 per-project topology.db 및 memory.db를 저장합니다. README에는 58개의 도구가 노출된다고 명시됩니다. 자주 사용되는 것에는 session_start, workspace_symbols, get_definition, find_references, rename_symbol, edit_file, transaction_apply, diagnostics가 포함되며 나머지는 파일 시스템 접근, LSP 계층, 계층적 git, 선택적 지역 Topology 인덱스 및 메모리를 다룹니다. 인자 없이 plumb을 실행하면 도구 호출, 데몬 상태, 도구별 통계, 스트리밍 로그를 보여주는 TUI 대시보드가 열립니다. 설치 및 구성. Homebrew, go install 또는 사전 빌드된 릴리즈 바이너리를 통해 설치할 수 있으며 사전 빌드된 macOS 바이너리는 아직 인증되지 않았습니다. plumb setup은 claude-code, claude-desktop, codex, gemini, cursor와 같은 클라이언트에 대한 MCP 구성을 작성합니다. 구성은 전역 또는 프로젝트별 config.toml 또는 환경 변수를 사용하며 plumb config show는 해석된 값과 출처를 보고합니다. 샘플 옵션으로는 이전 읽기를 요구하는 strict edits와 가속 루프 방지용 분당 비율 제한이 있습니다. 상태. Plumb은 1.0 이전이며 쓰기 안전성, 복원력 있는 데몬, 토폴로지 인덱스 및 프로젝트 메모리는 매일 사용 중으로 설명됩니다. 로드맵은 0.10부터 0.19까지 테마별 릴리즈를 나열하며 0.19.x는 1.0 이전 마지막 0.x 버전이고 본토 Windows 지원은 1.1로 연기되었습니다. 기여 지침, AGENTS.md, 행동 강령 및 MIT 라이선스가 참조되며 문체는 호주 영작법을 따릅니다.