前言

我先说结论:这个插件是我最近用过很离谱的东西。

事情是这样的。我有个博客项目,199 个文件,自己写的自己当然清楚。但我最近发现了一个叫 Understand Anything 的 Claude Code 插件,据说能"自动分析代码库生成知识图谱"。

听起来挺唬人的,我心想不就是扫个目录嘛,能有多厉害?

然后我跑了一下。

它把我 199 个文件的项目拆成了 298 个节点、184 条依赖边、9 个架构层,还给我生成了一条 13 步的学习路线。

我盯着仪表盘看了十分钟,有种"我写的代码被 AI 从头到尾读了一遍然后画了张地图"的感觉。它知道哪个文件是 API 客户端的核心,哪个组件被哪些页面依赖。

关键是——我什么都没配置,就跑了一个命令。

这篇文章就来聊聊这个插件到底是什么、怎么装、怎么用,以及它分析我的项目后到底给出了什么。

它到底能做什么

先说核心能力:

你给它一个代码库,它给你一张知识图谱。

不是文件列表,不是目录树,而是一张真正的——每个文件、函数、类都是节点,它们之间的导入、调用、依赖关系都是边。然后它还会自动识别你的项目架构分层,生成一条引导式学习路线。

整个过程全自动,不需要你写任何配置。

分析结果一览

拿我的博客项目 Kirameku 举例。它跑完之后,我得到了这些:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

节点统计(298 个):

类型 数量 说明
file 186 源代码文件
function 98 函数/方法
config 9 配置文件
document 4 文档文件
class 1 类/接口

边统计(184 条):

类型 数量 说明
contains 104 文件包含函数/类
depends_on 38 运行时依赖
imports 28 导入关系
exports 9 导出关系
documents 3 文档关联
configures 2 配置关联

自动识别的架构层(9 层):

层级 文件数 说明
工具与游戏层 58 35+ 工具箱应用 + 18 款小游戏
UI 页面层 43 博客核心页面 + 花园实验区 + 小说阅读
资源层 25 WebP 图片 + Live2D 模型配置
组件层 32 可复用 UI 组件(布局/音乐/照片/特效)
API 层 17 统一 HTTP 客户端 + 各业务域 API
配置层 9 Next.js/TS/ESLint 配置
数据层 6 静态数据 + 类型声明
内容层 4 博客文章
状态管理层 5 5 个 React Context Provider

学习路线(13 步):

从根布局开始,到首页、API 层、状态管理、工具箱、花园、小说阅读、社交功能、最后到部署配置。像一份自动写的项目导览。

这些全都是 AI 自己分析出来的,我没做任何标注。

安装

前置条件

  • Node.js ≥ 22(推荐 24+)
  • pnpm ≥ 10
  • Claude Code(CLI 或桌面版都行)

Claude Code 安装

在 Claude Code 中依次运行:

/plugin marketplace add Lum1104/Understand-Anything
/plugin install understand-anything

装完就完事了,插件会自动注册所有命令。

其他平台

这个插件不只支持 Claude Code,还支持一堆 AI 编码工具:

平台 安装方式
Claude Code 插件市场
Cursor 克隆仓库自动发现
VS Code + GitHub Copilot 克隆仓库自动发现
Copilot CLI copilot plugin install
Codex / Gemini CLI / OpenCode 等 一行脚本安装

Codex、Gemini CLI 等平台用一行命令装:

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/Lum1104/Understand-Anything/main/install.sh | bash

# Windows (PowerShell)
iwr -useb https://raw.githubusercontent.com/Lum1104/Understand-Anything/main/install.ps1 | iex

基本用法

1. 分析项目

进入你的项目目录,运行:

/understand

没了。就这一个命令。

插件会自动走完 7 个阶段:扫描文件 → 识别语言框架 → 分批分析 → 建立依赖 → 识别架构 → 生成路线 → 保存图谱。

输出保存在 .understand-anything/knowledge-graph.json

2. 中文输出

默认输出是英文。加 --language 参数切换语言:

/understand --language zh

支持的语言:en(默认)、zhzh-TWjakoru

这个参数会影响:节点摘要和描述、仪表盘 UI 的标签和按钮、学习路线的解释说明。

3. 打开仪表盘

分析完之后,启动可视化:

/understand-dashboard

浏览器会自动打开一个交互式页面。你可以:

  • 浏览节点:点击查看每个文件的摘要、标签、复杂度
  • 探索依赖:看文件之间的导入、调用关系
  • 切换层级:按架构层过滤,只看 API 层或只看 UI 层
  • 走学习路线:跟着 Tour 一步步理解项目
  • 语义搜索:搜索"哪些部分处理身份验证?"就能找到相关节点

4. 增量更新

改了代码之后再跑 /understand,它会自动检测哪些文件变了,只重新分析那些文件。不用全量重建,速度很快。

还可以开启自动更新:

/understand --auto-update

这会安装一个 post-commit 钩子,每次 git 提交后自动增量更新图谱。

进阶用法

基于知识图谱问答

分析完之后,你可以直接问项目相关的问题:

/understand-chat "这个项目的 API 层是怎么组织的?"
/understand-chat "首页用了哪些组件?"
/understand-chat "音乐播放器的状态管理方案是什么?"

AI 会基于知识图谱里的节点和边来回答,不是泛泛而谈,而是基于实际代码结构。

分析变更影响

提交代码前,看看这次改动影响了哪些模块:

/understand-diff

深入理解某个文件

对某个文件有疑问?直接问:

/understand-explain app/api/client.ts

生成新人指南

要给新同事介绍项目:

/understand-onboard

它会生成一份结构化的项目导览,从入口文件开始,一步步带你了解整个项目。

提取业务领域

想看代码如何映射到业务流程:

/understand-domain

它会识别出业务领域、流程和处理步骤,以水平图的形式展示。

分析知识库

指向一个 Markdown wiki:

/understand-knowledge ~/path/to/wiki

它会把你的 wiki 转化为可导航的知识图谱,带社区聚类和隐式关系发现。

指定子目录

只想分析某个子目录:

/understand src/frontend

大型 monorepo 可以用这个来缩小分析范围。

强制全量重建

/understand --full

跳过某些文件

项目根目录下有个 .understand-anything/.understandignore 文件,语法跟 .gitignore 一样。把不想分析的文件加进去就行。

比如我的项目有很多 Live2D 模型资源(二进制文件、动画文件),我就把它们排除了:

# .understandignore
public/live2d/model/
public/live2d/jsdelivr/

团队共享

图谱就是一份 JSON 文件,提交到 git 之后,团队成员可以跳过分析直接用。

# .gitignore 中排除临时文件
.understand-anything/intermediate/
.understand-anything/diff-overlay.json

大型图谱(10 MB 以上)建议用 git-lfs 跟踪。

它是怎么工作的

Tree-sitter + LLM 混合分析

插件用了一种很聪明的分工:

  • Tree-sitter(确定性)—— 把源码解析成语法树,提取结构性事实:导入、导出、函数定义、类定义、调用点、继承关系。这些是确定性的,同样的代码永远得到同样的结果。
  • LLM(语义)—— 读取解析后的结构和源码,生成 Tree-sitter 做不了的事:通俗易懂的摘要、标签、架构层归属、学习路线。

正因为这个分工,图谱在结构层面是可复现的(同样的代码总是产生同样的边),同时在语义层面又能捕捉意图(一个文件是「为了什么」存在,而不仅仅是它 import 了什么)。

多智能体架构

/understand 命令背后有 5 个 AI 代理协作:

代理 职责
project-scanner 扫描项目文件,检测语言和框架
file-analyzer 提取代码结构,生成图节点和边
architecture-analyzer 识别架构层
tour-builder 生成引导式学习路径
graph-reviewer 验证图的完整性和引用完整性

文件分析器并行运行(最多 3 个并发),所以分析速度还不错。

适用场景

接手新项目

最直接的用法。跑一遍 /understand,5 分钟内对项目架构有个整体认知,比翻 README 快多了。

代码审查

PR 改了一堆文件,用 /understand-diff 看看这次改动影响了哪些模块,依赖关系有没有变化。

写文档

知识图谱里的节点摘要、架构分层、学习路线,稍微整理一下就是一份不错的项目文档。

技术分享

要给别人介绍项目?把仪表盘打开,边点边讲,比 PPT 直观多了。

新人 onboarding

/understand-onboard 生成的项目导览,比你自己写的新人文档靠谱多了——因为它是基于实际代码结构生成的,不会遗漏。

局限性

说几个目前的不足:

  • 大项目会慢文件越多分析越久,100 个文件大概 20 分钟,500 个文件可能要 40 分钟甚至更久
  • AI 分析有上限:特别复杂的业务逻辑,AI 可能理解得不够深
  • 静态分析为主:运行时的调用关系(比如动态 import、反射)分析不到
  • 图谱体积:大型项目的图谱 JSON 可能超过 10 MB,需要用 git-lfs

总结

Understand Anything 的核心价值是把"看代码"这件事从人工翻阅变成了 AI 自动分析 + 可视化探索

你不需要手动画架构图,不需要写文档解释项目结构,不需要花一周时间通读代码库。跑一个命令,等几分钟,打开仪表盘,一切都在那里。

对于个人项目、小团队项目来说,它能帮你快速建立对代码库的整体认知。对于大型项目,它至少能给你一个起点——知道该从哪里开始看。

安装简单,用法简单,输出直观。如果你经常需要接手新项目或者给别人介绍项目,强烈建议试试。

项目地址:https://github.com/Lum1104/Understand-Anything

在线演示:https://understand-anything.com/demo/

我的博客项目完整代码在 GitHub,欢迎 star~

本文基于 Understand Anything v2.7.5 编写,功能和接口可能随版本更新有所变化。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐