Egonex-AI / Understand-Anything

Egonex-AI/Understand-Anything

open_in_new前往仓库

将任何代码转化为可探索、搜索和提问的交互式知识图谱,支持Claude Code、Codex、Cursor、Copilot、Gemini CLI等工具,注重教学价值而非视觉效果。

项目概览

项目概述

Understand Anything 是一个开源工具,旨在将任何代码库、知识库或文档转化为交互式知识图谱,使用户能够探索、搜索并提问。它通过多智能体流水线分析项目,构建包含文件、函数、类和依赖关系的知识图谱,并提供交互式仪表盘进行可视化。该项目支持多种 AI 编码平台,如 Claude Code、Codex、Cursor、Copilot、Gemini CLI 等。

核心功能

  • 交互式知识图谱:将代码库可视化为可探索的图谱,节点可点击、搜索和浏览。
  • 业务逻辑理解:切换到领域视图,查看代码如何映射到实际业务流程。
  • 知识库分析:支持分析 Karpathy 风格的 LLM wiki,提取实体、关系和主张。
  • 引导式导览:自动生成架构导览,按依赖顺序学习代码库。
  • 模糊与语义搜索:按名称或含义搜索,如“哪些部分处理认证?”。
  • Diff 影响分析:在提交前查看更改对系统的影响。
  • 角色自适应 UI:根据用户角色(初级开发、PM、高级用户)调整仪表盘细节。
  • 层可视化:按架构层自动分组,带颜色图例。
  • 语言概念:在上下文中解释 12 种编程模式(泛型、闭包、装饰器等)。

适用与不适用场景

适用场景:

  • 新团队成员快速了解大型代码库。
  • 开发者理解业务逻辑与代码的映射。
  • 分析个人知识库(Obsidian、Logseq 等)并可视化知识关联。
  • 在提交前评估代码更改的影响范围。
  • 生成新员工入职指南。

不适用场景:

  • 需要实时、动态更新的代码分析(该工具基于静态分析)。
  • 对代码进行修改或重构(仅提供理解,不提供编辑功能)。
  • 处理非 Markdown 或非代码文件(如二进制文件)的知识库。
  • 在没有 Node.js 环境或无法访问 LLM 的情况下使用(部分功能需要 LLM)。

技术架构与依赖

  • 语言:TypeScript
  • 包管理:pnpm workspaces
  • 核心引擎:Tree-sitter(确定性静态分析)+ LLM(语义分析)混合架构
  • 前端:React 18、Vite、TailwindCSS v4、React Flow、Zustand
  • 其他:web-tree-sitter、Fuse.js、Zod、Dagre
  • 支持的语言:TypeScript、JavaScript、Python、Go、Rust、Java、Ruby、PHP、C/C++、C# 等(通过 LanguageConfig 配置)
  • 非代码文件:Markdown、YAML、JSON、TOML、Dockerfile、SQL、Terraform 等 26+ 种类型

安装与快速开始

Claude Code(原生)

/plugin marketplace add Egonex-AI/Understand-Anything
/plugin install understand-anything

其他平台(Codex、OpenCode、Gemini CLI 等)

macOS / Linux:

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):

iwr -useb https://raw.githubusercontent.com/Egonex-AI/Understand-Anything/main/install.ps1 | iex

分析代码库

/understand

启动仪表盘

/understand-dashboard

典型使用方法

  • 提问:/understand-chat How does the payment flow work?
  • 分析更改影响:/understand-diff
  • 深入解释文件:/understand-explain src/auth/login.ts
  • 生成入职指南:/understand-onboard
  • 提取业务领域:/understand-domain
  • 分析知识库:/understand-knowledge ~/path/to/wiki
  • 增量更新:/understand(默认增量,只重新分析更改的文件)
  • 自动更新:/understand --auto-update(提交后自动更新)
  • 限定子目录:/understand src/frontend

配置与部署要点

  • 数据目录:知识图谱保存在 .ua/ 目录(旧版本为 .understand-anything/)。
  • 忽略文件:支持 .understandignore 文件,使用 .gitignore 语法排除文件。
  • 语言设置:使用 --language 参数生成指定语言的内容(如 zh)。
  • 本地模型:可通过 Ollama 等本地模型提供商进行隐私或企业部署。
  • 团队共享:将 .ua/ 目录(除 intermediate/ 和 diff-overlay.json)提交到仓库,团队成员可跳过分析直接查看图谱。
  • 大图谱:10MB 以上建议使用 git-lfs 跟踪。
  • 无 LLM 查看:使用 npx https://github.com/Egonex-AI/Understand-Anything/releases/latest/download/understand-anything-viewer.tgz /path/to/project 仅需 Node.js >= 18。

限制、风险与许可证

  • Token 消耗:首次 /understand 分析整个代码库可能消耗大量 token,建议使用订阅计划或本地模型。
  • LLM 生成错误:知识图谱可能包含不完美数据,仪表盘会显示警告并尝试自动修复。
  • 许可证:MIT License,版权所有 Yuxiang Lin 和 Infinite Universe, Inc.。
  • 依赖:需要 Node.js >= 18(查看器)或 >= 22(开发),pnpm >= 10。

官方链接

信息来源和分析时间

  • 信息来源:GitHub 仓库 README、CONTRIBUTING.md、docs/ 目录下的实现计划文档、最新发布信息。
  • 分析时间:2026-07-10(基于最新发布 v2.9.0 的日期)。