Understand Anything
将任意代码库、知识库或文档转化为可探索、可搜索、可对话的交互式知识图谱
支持 Claude Code、Codex、Cursor、Copilot、Gemini CLI 等多平台。
English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Türkçe | Русский
An open-source project from Egonex
Originally created by Lum1104.
---
**当你刚加入一个新团队,面对 20 万行代码,你从哪里开始?**
Understand Anything 是一个 [Claude Code Plugin](https://code.claude.com/docs/en/plugins-reference#plugins-reference),通过多智能体(multi-agent)架构分析你的项目,构建包含文件、函数、类以及依赖关系的知识图谱,并提供一个可视化交互界面,帮助你理解整个系统。不再”盲读代码”,而是从全局视角理解系统结构。
> **目标不是用代码库的复杂程度来惊艳你 —— 而是默默告诉你每一块是怎么拼在一起的。**
---
## ✨ 核心功能
> [!NOTE]
> **想直接体验?** 在我们的[主页](https://understand-anything.com/)试试[在线演示](https://understand-anything.com/demo/) — 一个可以平移、缩放、搜索和探索的全交互式仪表盘。
### 探索代码结构图
将你的代码库以交互式知识图谱的形式呈现——每个文件、函数和类都是可点击、可搜索、可探索的节点。选择任意节点即可查看通俗易懂的摘要、依赖关系和引导式学习路径。
### 理解业务逻辑
切换到领域视图,查看代码如何映射到真实的业务流程——以水平图的形式展示领域、流程和步骤。
### 分析知识库
将 `/understand-knowledge` 指向一个 [Karpathy 模式的 LLM Wiki](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f),即可获得带有社区聚类的力导向知识图谱。确定性解析器从 `index.md` 中提取 wikilinks 和分类,然后 LLM 代理发现隐式关系、提取实体并挖掘论断——将你的 wiki 转化为可导航的互联思想图谱。
🧭 引导式学习
自动生成架构学习路径,按依赖顺序学习。
|
🔍 语义搜索
支持模糊搜索 + 语义搜索,例如搜索"哪些部分处理身份验证?"即可在整个图中获取相关结果。
|
📊 变更影响分析
提交更改前,查看更改会影响系统的哪些部分。了解更改对整个代码库的连锁反应。
|
🎭 用户角色自适应 UI
根据用户类型(初级开发 / 项目经理 / 高级用户)调整其详细程度。
|
🏗️ 层级可视化
按架构层级自动分组 — API,服务,数据,UI, 系统工具 — 并附有颜色编码图例。
|
📚 语言概念
12 种编程模式(泛型、闭包、装饰器等)将在上下文中逐一解释。
|
---
## 🚀 快速开始
### 1. 安装插件
```bash
/plugin marketplace add Egonex-AI/Understand-Anything
/plugin install understand-anything
```
### 2. 分析你的代码库
```bash
/understand
```
多智能体(multi-agent)架构会:扫描你的项目,提取函数 / 类 / 依赖,构建知识图谱保存至`.understand-anything/knowledge-graph.json`.
**本地化输出:** 使用 `--language` 参数生成中文内容:
```bash
# 生成中文内容(知识图节点描述和 Dashboard UI)
/understand --language zh
# 支持的语言:en(默认)、zh、zh-TW、ja、ko、ru
```
`--language` 参数会影响:
- 知识图谱中的节点摘要和描述
- Dashboard UI 的标签、按钮和提示
- 导览路线的解释说明
### 3. 打开数据看板
```bash
/understand-dashboard
```
打开交互式网页数据看板,您的代码库将以图表形式呈现 — 按架构层级进行颜色编码,支持搜索和点击。选择任意节点即可查看其代码、关系以及简明易懂的解释。
### 4. 深度使用
```bash
# 询问任意代码库的问题
/understand-chat How does the payment flow work?
# 分析当前修改的影响
/understand-diff
# 深入理解某个文件
/understand-explain src/auth/login.ts
# 为新团队成员生成指南
/understand-onboard
# 提取业务领域知识(领域、流程、步骤)
/understand-domain
# 分析 Karpathy 模式的 LLM Wiki 知识库
/understand-knowledge ~/path/to/wiki
# 直接重跑即可 —— 默认增量更新,只分析变更的文件
/understand
# 安装 post-commit 钩子,每次提交自动增量更新
/understand --auto-update
# 大型 monorepo?把分析范围限定到某个子目录
/understand src/frontend
```
---
## 🌐 多平台支持
Understand-Anything 可在多个 AI 编码平台上运行。
### Claude Code(原生)
```bash
/plugin marketplace add Egonex-AI/Understand-Anything
/plugin install understand-anything
```
### 一行命令安装(Codex / OpenCode / OpenClaw / Antigravity / Gemini CLI / Pi Agent / Vibe CLI / VS Code Copilot / Hermes / Cline / KIMI CLI / Nanobot)
**macOS / Linux:**
```bash
curl -fsSL https://raw.githubusercontent.com/Egonex-AI/Understand-Anything/main/install.sh | bash
# 也可以直接传入平台名跳过交互提示:
curl -fsSL https://raw.githubusercontent.com/Egonex-AI/Understand-Anything/main/install.sh | bash -s codex
```
**Windows(PowerShell):**
```powershell
iwr -useb https://raw.githubusercontent.com/Egonex-AI/Understand-Anything/main/install.ps1 | iex
```
安装脚本会将仓库克隆到 `~/.understand-anything/repo`,并为所选平台创建相应的符号链接。安装完成后请重启 CLI 或 IDE。
- 支持的 `` 取值:`gemini`、`codex`、`opencode`、`pi`、`openclaw`、`antigravity`、`vibe`、`vscode`、`hermes`、`cline`、`kimi`、`nanobot`
- 后续更新:`./install.sh --update`
- 卸载:`./install.sh --uninstall `
### Cursor
克隆此仓库后,Cursor 会自动通过 `.cursor-plugin/plugin.json`文件发现插件。无需手动安装 — 只需克隆并在 Cursor 中打开即可。
若自动发现未生效,可手动安装:打开 **Cursor Settings → Plugins**,在搜索框中粘贴 `https://github.com/Egonex-AI/Understand-Anything` 并添加。
### VS Code + GitHub Copilot
安装 GitHub Copilot 扩展(v1.108+)后,VS Code 会通过 `.copilot-plugin/plugin.json` 自动发现插件,克隆后直接在 VS Code 中打开即可,无需手动安装。
若需要在所有项目中使用(个人技能),运行上面的 `install.sh` 并选择 `vscode` 平台即可。
### Copilot CLI
```bash
copilot plugin install Egonex-AI/Understand-Anything:understand-anything-plugin
```
### 多平台兼容
| 平台 | 状态 | 安装方式 |
|----------|--------|----------------|
| Claude Code | ✅ 原生 | 插件市场 |
| Cursor | ✅ 支持 | 自动发现 |
| VS Code + GitHub Copilot | ✅ 支持 | 自动发现 |
| Copilot CLI | ✅ 支持 | 插件安装 |
| Codex | ✅ 支持 | `install.sh codex` |
| OpenCode | ✅ 支持 | `install.sh opencode` |
| OpenClaw | ✅ 支持 | `install.sh openclaw` |
| Antigravity | ✅ 支持 | `install.sh antigravity` |
| Gemini CLI | ✅ 支持 | `install.sh gemini` |
| Pi Agent | ✅ 支持 | `install.sh pi` |
| Vibe CLI | ✅ 支持 | `install.sh vibe` |
| Hermes | ✅ 支持 | `install.sh hermes` |
| Cline | ✅ 支持 | `install.sh cline` |
| KIMI CLI | ✅ 支持 | `install.sh kimi` |
| Nanobot | ✅ 支持 | `install.sh nanobot` |
---
## 📦 与团队共享知识图谱
图谱就是一份 JSON 文件——**提交一次,团队成员就可以跳过整条流水线**。适合新人上手、PR 评审和 docs-as-code 工作流。
> **示例:** [GoogleCloudPlatform/microservices-demo](https://github.com/GoogleCloudPlatform/microservices-demo) —— 包含已提交图谱的 Go / Java / Python / Node 多语言参考项目。
**需要提交的内容:** `.understand-anything/` 下的全部文件,*除了* `intermediate/` 和 `diff-overlay.json`(这些是本地临时文件)。
```gitignore
.understand-anything/intermediate/
.understand-anything/diff-overlay.json
```
**保持最新:** 启用 `/understand --auto-update` —— 一个 post-commit 钩子会增量更新图谱,每次提交都能得到匹配的图谱版本。也可以在发布前手动重跑 `/understand`。
**大型图谱(10 MB 以上):** 使用 **git-lfs** 跟踪。
```bash
git lfs install
git lfs track ".understand-anything/*.json"
git add .gitattributes .understand-anything/
```
---
## 🔧 技术原理
### Tree-sitter + LLM 混合分析
把确定性的事情交给静态分析,把需要语义理解的事情交给 LLM:
- **Tree-sitter(确定性)** —— 将源码解析为具体语法树,提取结构性事实:导入、导出、函数 / 类定义、调用点、继承关系。在 scan 阶段预先解析为 `importMap` 并传给 file-analyzer,避免它们再从源码推导一次 import。同样的输入永远得到同样的输出,并作为增量更新的指纹基础。
- **LLM(语义)** —— 读取解析后的结构以及原始源码,生成解析器做不了的事:plain-English 摘要、标签、架构层归属、业务领域映射、引导路径、语言概念标注。
正因为这个分工,图谱在结构层面是可复现的(同样的代码总是产生同样的边),同时在语义层面又能捕捉意图(一个文件是「为了什么」存在,而不仅仅是它 import 了什么)。
### 多智能体架构
`/understand` 命令调用 5 个 agent,`/understand-domain` 额外增加第 6 个:
| Agent | 职责 |
|-------|------|
| `project-scanner` | 扫描项目文件,检测语言和框架 |
| `file-analyzer` | 提取代码结构(函数、类和导入),生成图节点和边 |
| `architecture-analyzer` | 识别架构层 |
| `tour-builder` | 生成引导式学习路径 |
| `graph-reviewer` | 验证图的完整性和引用完整性 |
| `domain-analyzer` | 提取业务领域、流程和处理步骤(由 `/understand-domain` 使用) |
| `article-analyzer` | 从 wiki 文章中提取实体、论断和隐式关系(由 `/understand-knowledge` 使用) |
文件分析器并行运行(最多 3 个并发)。支持增量更新 — 仅重新分析自上次运行以来发生更改的文件。
---
## 🎥 社区
由 **Better Stack** 制作的社区视频教程。
在 YouTube 上观看 →
写过视频、博客或教程?提个 issue 或 PR —— 我们很乐意把它放在这里。
---
## 🤝 贡献
欢迎贡献!以下是贡献指南:
1. Fork 项目
2. 新建分支 (`git checkout -b feature/my-feature`)
3. 运行测试 (`pnpm --filter @understand-anything/core test`)
4. 提交更改并创建一个PR请求
对于重大变更,请先提交 issue,以便我们讨论解决方案。
---
不再盲读代码,而是理解整个系统
## Star 历史记录
感谢每一位使用过、贡献过的朋友 —— 知道它替你们省下了一些时间,就是当初做它最值得的理由。
MIT License © Yuxiang Lin and Infinite Universe, Inc.