Lum1104/Understand-Anything 是一個面向程式碼理解的開源工具。它可以把程式碼庫、知識庫或文件分析成可互動的知識圖譜,讓你在 Dashboard 中搜尋、瀏覽節點,並圍繞專案結構繼續提問。
如果你剛接手一個大型專案,最難的往往不是「沒有程式碼」,而是不知道從哪裡開始讀。Understand Anything 的思路是先掃描專案,提取檔案、函式、類別、依賴和業務域關係,再生成視覺化圖譜,幫助你從全域結構進入細節。
適合先解決什麼問題
它比較適合下面幾類場景:
- 快速理解陌生程式碼庫的模組結構;
- 給新成員生成 onboarding 導覽;
- 在重構前查看依賴和影響範圍;
- 在程式碼審查前理解改動波及面;
- 把團隊知識庫或專案文件轉成可探索的關係圖;
- 給 Codex、Claude Code、Cursor、Copilot 等 AI 編程環境補充專案上下文。
對於中大型專案,它更像一張「專案地圖」:不是替你做最終判斷,而是幫你更快找到入口。
安裝方式
在 Claude Code 中,可以直接透過插件市場安裝:
|
|
它也支援 Codex、Cursor、VS Code + GitHub Copilot、Copilot CLI、Gemini CLI、OpenCode、OpenClaw、Antigravity、Vibe CLI、Trae 等平台。
macOS / Linux 可以使用安裝腳本:
|
|
如果要直接安裝到 Codex:
|
|
Windows PowerShell:
|
|
安裝腳本會把倉庫 clone 到:
|
|
並為對應平台建立必要連結。安裝完成後,通常需要重新啟動 CLI 或 IDE。
第一次分析程式碼庫
進入目標專案目錄後,執行:
|
|
它會掃描專案,提取檔案、函式、類別和依賴關係,並生成知識圖譜檔案:
|
|
如果你希望生成中文節點說明和中文 Dashboard UI,可以指定語言:
|
|
專案也支援其他語言選項,例如:
|
|
第一次執行時,如果沒有顯式指定 --language,工具會根據目前對話語言進行偵測,並在需要時詢問確認。選擇會保存到:
|
|
後續執行會沿用這個設定。
先分析哪些目錄
如果專案是 monorepo,第一次不一定要直接分析整個倉庫。更穩妥的方式是先從關鍵目錄試跑,觀察耗時和圖譜品質。
可以優先選擇這些目錄:
src/:多數單體應用的核心業務程式碼;apps/:monorepo 中的前端、後端或獨立應用入口;packages/:共享函式庫、SDK、元件庫或基礎模組;services/:微服務專案中的服務目錄;backend/、frontend/:前後端分離專案的主要邊界;docs/或wiki/:需要分析知識庫時再單獨處理。
例如只分析前端應用目錄:
|
|
或者只分析共享套件:
|
|
這樣可以避免第一次就掃描完整 monorepo,尤其適合依賴複雜、歷史套件很多、生成結果可能很大的專案。
打開 Dashboard
生成圖譜後,執行:
|
|
Dashboard 會打開一個互動式頁面,你可以在裡面:
- 平移和縮放專案知識圖譜;
- 搜尋檔案、函式、類別或語義相關內容;
- 點擊節點查看摘要、關係和程式碼;
- 按架構層級查看 API、Service、Data、UI、Utility 等分組;
- 跟隨自動生成的導覽理解專案結構。
讀陌生專案時,可以先從 Dashboard 的搜尋入口開始。例如先搜 auth、payment、api、database、router,再沿著節點關係繼續展開。
常用命令
除了 /understand 和 /understand-dashboard,比較常用的命令還有:
|
|
這些命令大致對應幾類任務:
/understand-chat:圍繞程式碼庫提問;/understand-diff:分析目前改動影響哪些系統部分;/understand-explain:深入解釋某個檔案或函式;/understand-onboard:生成新成員導覽;/understand-domain:提取業務域、流程和步驟;/understand-knowledge:分析知識庫或 wiki。
如果是第一次用,建議順序是:
|
|
這樣可以先建立全域視圖,再進入具體問題。
常見工作流
快速接手陌生專案
先在專案根目錄執行:
|
|
然後打開 Dashboard:
|
|
先看架構層級和依賴關係,再執行:
|
|
這條路線適合新成員入門,也適合你臨時接手一個維護任務。
解釋關鍵檔案
如果你已經知道某個檔案很重要,但看不懂它在系統裡的位置,可以執行:
|
|
然後結合 Dashboard 查看它連接到哪些模組。這樣比只讀單個檔案更容易理解上下游關係。
提交前做影響分析
改完程式碼後,先執行:
|
|
它可以幫助你判斷目前改動可能影響哪些模組。這個結果不能替代測試,但適合在提交前做一次結構層面的自查。
給團隊共享專案地圖
Understand Anything 生成的圖譜本質上是 JSON。團隊可以考慮提交必要的 .understand-anything/ 檔案,讓其他成員跳過首次分析流程。
通常適合提交的是:
|
|
不建議提交的是本地中間檔案和臨時分析結果:
|
|
如果生成的圖譜很大,可以搭配 Git LFS:
|
|
團隊共享圖譜時還要注意兩點:第一,圖譜會隨程式碼變化過期,需要有人維護更新;第二,圖譜裡可能包含檔案路徑、函式名、業務描述和部分語義摘要,私有專案提交前要確認是否適合進入倉庫。
和傳統架構文件有什麼區別
傳統架構文件通常是靜態的,優點是表達清楚,適合沉澱決策背景;缺點是很容易和程式碼實作脫節。專案迭代幾個月後,文件裡的模組邊界、呼叫關係和真實程式碼可能已經不一致。
Understand Anything 更像自動生成的專案理解層。它從程式碼和文件中抽取結構關係,再透過知識圖譜展示出來。它的優勢是能跟隨專案重新生成,適合快速建立目前視圖;缺點是解釋內容仍需要人工複核,不能替代架構師寫下來的設計取捨、歷史背景和團隊約定。
更實用的組合是:
- 用傳統架構文件記錄目標設計、約束、決策和演進背景;
- 用 Understand Anything 生成目前程式碼結構、依賴關係和可搜尋圖譜;
- 當兩者不一致時,把差異當作一次文件或架構債務檢查。
和 Sourcegraph、DeepWiki、Cursor 怎麼區分
這些工具都能幫助理解程式碼,但適合的入口不同。
Sourcegraph 更偏程式碼搜尋、跨倉庫跳轉和符號級檢索,適合在大量倉庫中快速定位實作。DeepWiki 更偏把倉庫變成可閱讀的自動化文件,適合先獲得文件化概覽。Cursor 的專案理解能力更貼近編輯器內編碼體驗,適合邊寫邊問、邊改邊補上下文。
Understand Anything 的特點是把程式碼庫顯式轉成知識圖譜,並提供 Dashboard、導覽、影響分析和知識庫分析。它適合你想「先看專案地圖,再進入程式碼細節」的場景。
簡單說:
- 想跨倉庫搜尋程式碼:優先看 Sourcegraph;
- 想快速讀自動生成的專案文件:可以看 DeepWiki;
- 想在編輯器裡邊寫邊問:Cursor 更順手;
- 想把程式碼結構、依賴和業務關係變成圖譜:Understand Anything 更貼合。
這不是硬評測,更多是入口差異。實際工作裡可以組合使用。
隱私與私有倉庫風險
對私有程式碼庫使用這類工具前,先確認所接入 AI 平台的資料策略。需要重點看:
- 程式碼片段、檔案路徑、函式名是否會送到外部模型;
- 生成的摘要和圖譜是否包含敏感業務資訊;
- 企業帳號、團隊帳號和個人帳號的資料保留策略是否不同;
- 是否允許在目前專案中使用外部 LLM;
.understand-anything/生成檔案是否會被提交到遠端倉庫。
如果專案涉及客戶資料、商業機密、未公開產品邏輯或合規要求,建議先在脫敏樣例、開源專案或內部允許的目錄上試用,再決定是否接入真實私有倉庫。
什麼時候不適合用
Understand Anything 不是所有專案都需要。下面幾種情況可以先不引入:
- 專案很小,直接讀程式碼比生成圖譜更快;
- 程式碼結構非常混亂,而且缺少命名、模組和文件線索,生成結果可能難以解釋;
- 團隊沒人維護圖譜,生成一次後長期不更新;
- 你只需要查一個函式或一個錯誤,不需要全域專案地圖;
- 私有倉庫的安全策略不允許把程式碼上下文送給外部 AI 服務;
- 目前任務已經有清晰入口,引入額外工具反而增加流程成本。
比較穩妥的做法是先在關鍵目錄試跑,確認圖譜品質、耗時和隱私邊界後,再決定是否分析整個倉庫。
背後的實現思路
Understand Anything 採用 Tree-sitter 與 LLM 結合的方式:
- Tree-sitter 負責確定性結構分析,例如 import/export、函式、類別、呼叫點、繼承關係;
- LLM 負責語義層內容,例如自然語言摘要、標籤、架構分層、業務域映射、導覽說明;
/understand會編排多個 agent,包括專案掃描、檔案分析、架構分析、導覽生成和圖譜校驗;- 增量更新只重新分析發生變化的檔案,適合持續維護知識圖譜。
這種組合能減少「純靠 LLM 猜專案結構」的問題,同時保留自然語言解釋帶來的可讀性。
使用邊界
這類工具適合輔助理解,但不應該替代工程判斷:
- 圖譜品質取決於專案結構、語言支援和解析結果;
- LLM 生成的業務解釋需要人工複核;
- 大型倉庫第一次分析可能需要較長時間;
- 對私有程式碼庫使用前,要確認所接入 AI 平台的資料與隱私策略;
- 小型專案未必需要完整圖譜,直接讀程式碼可能更快。
小結
Understand Anything 的價值在於把「讀程式碼」變成「探索專案地圖」。安裝後先執行 /understand 生成圖譜,再用 /understand-dashboard 瀏覽結構,配合 /understand-chat、/understand-diff、/understand-explain 處理具體問題。
如果你經常接觸陌生程式碼庫、維護大型專案,或者需要給團隊做 onboarding,它值得試用。尤其是在 Codex、Claude Code、Cursor、Copilot 等 AI 編程環境裡,這類知識圖譜工具可能會成為程式碼理解工作流的一部分。