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:
|
|
安装脚本会把仓库克隆到:
|
|
并为对应平台创建必要链接。安装完成后,通常需要重启 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 编程环境里,这类知识图谱工具可能会成为代码理解工作流的一部分。