Cranot/roam-code

Local codebase intelligence CLI + MCP server for AI coding agents: SQLite code graph, 28 languages, 287 commands, 246 MCP tools, change-safety gates, audit evidence, zero API keys.

📚 什麼是 roam‑code

roam‑code 是一個基於 Python 的本地執行靜態分析工具包,專為 程式碼代理(LLM 驅動的程式碼生成工具)設計。它建立程式碼庫中符號(函數、類別、匯入及其相互關係)的可搜尋地圖,讓代理能詢問「誰呼叫了這個函數?」或「這個變更會影響哪些測試?」等問題,而無需逐一讀取所有檔案。

此工具 不進行任何遠端模型呼叫;所有繁重工作皆在您的機器上完成。它以 CLI(roam)形式提供,並可選地作為 MCP(Model-Control-Protocol)伺服器運行,讓代理可透過標準工具呼叫介面與之通訊。


🔧 核心功能(如 README 所述)

功能 作用 使用方式
索引 / roam init 解析整個程式庫,建立涵蓋 28 種語言、287 個指令與 246 個 MCP 工具的符號圖。 在程式庫根目錄執行 roam init(或使用 roam index 進行輕量建構)。
**預飛行檢查 (roam preflight <symbol>) ** 評估變更的 爆炸半徑(可能受影響的符號/檔案數量),並報告相關測試、複雜度、耦合度等。 roam preflight open_db – 回傳包含具體數字的風險評估結果。
健康摘要 (roam health) 提供程式碼結構、發現項目與整體「健康分數」的快速概覽。 索引完成後執行 roam health
**搜尋 (roam search <name>) ** 在索引圖中按名稱搜尋符號。 roam search handleSave
驗證 (roam verify …) 對變更檔案執行一系列靜態檢查:命名規範、匯入有效性、複雜度、密鑰外洩、慣用模式警告等。 roam verify --auto(自動為變更檔案選擇檢查項目)或使用更細緻的旗標。
MCP 伺服器 (roam-code[mcp]) 透過網路套接字公開相同查詢,讓基於 LLM 的代理可作為工具呼叫。 使用 pip install "roam-code[mcp]" 安裝並啟動伺服器;代理可透過 MCP 呼叫 roam 命令。
Claude Code 鈎子 (roam hooks claude) 自動將執行前上下文(呼叫者、最近變更)注入 Claude Code 提示詞,並在模型完成後驗證結果。 roam hooks claude --write 啟用,--uninstall 移除。
Roam Guard 一個 PR 門禁,記錄執行的檢查、其結果,並在出現關鍵發現時阻止合併。 在 CI 中使用 roam verify --auto;可設定為在特定嚴重性下失敗。
效能 索引為一次性成本;後續更新非常快速。基準測試(2026 年 5 月–7 月)顯示,導航類查詢的 LLM 輪次減少高達 80%,令牌數與成本大幅降低。 請參閱 README 中的詳細基準表格以獲取具體數字。

🚀 通常採用方式

  1. 新增至程式庫 – 在專案的虛擬環境中執行 pip install "roam-code[mcp]"
  2. 建立索引 – 在程式庫根目錄執行 roam init(大型程式碼庫首次執行可能需一分鐘)。
  3. 連接你的代理 – 啟用 MCP 伺服器或 Claude 特定鈎子,讓 LLM 能在推理過程中請求 roam 資料。
  4. 在 CI 中執行檢查 – 使用 roam verify --auto(或自訂檢查集)在合併前強制執行「門禁」。
  5. 迭代 – 變更後,執行 roam preflight <symbol> 查看潛在影響,再提交。

📊 為何對 AI 輔助開發至關重要

  • 本地化、隱私保護 – 無需 API 金鑰,無遙測資料;分析完全在本地完成。
  • 代理為中心 – 提供結構化、符號級別的上下文,LLM 可直接使用,減少通常所需的「搜尋-開啟檔案」步驟。
  • 語言無關 – 支援 28 種程式語言,適用於多語言單體程式庫。
  • 門禁機制 – 可作為 CI 流水線的一部分,防止高風險變更被合併,補足人工程式碼審查。

📦 快速入門(四個指令)

pip install "roam-code[mcp]"   # CLI + 可選 MCP 伺服器
cd /path/to/your/repo
roam init                       # 建構索引與設定
roam health                     # 查看健康快照
roam preflight <symbol>         # 編輯前評估風險

TL;DR

roam‑code 是一個免費、開源的靜態分析引擎,將程式碼庫轉化為符號及其關係的可搜尋圖。它讓基於 LLM 的程式碼代理能提出精確、低令牌的問題,並可在 CI 中強制執行安全門禁——所有操作均無需將原始碼傳出機器外部。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案