首次 /understand 会分析整个代码库,大项目消耗大量 token,建议用订阅或本地模型;Codex 平台用 $understand 而非 /understand;非 Claude Code 平台需先跑 install.sh 并重启 CLI/IDE
Understand-Anything
Egonex-AIMIT活跃维护把任意代码库转成可交互的知识图谱,支持浏览、搜索和提问,兼容 Claude Code、Cursor、Copilot 等主流 AI 编程工具。
Graphs that teach > graphs that impress. Turn any code into an interactive knowledge graph you can explore, search, and ask questions about. Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and more.
/plugin marketplace add Egonex-AI/Understand-Anything
/plugin install understand-anything
/understandREADME 未说明
把任意代码库或文档变成可交互知识图谱,帮你快速看懂陌生项目
把任意代码库转成可交互的知识图谱,支持浏览、搜索和提问,兼容 Claude Code、Cursor、Copilot 等主流 AI 编程工具。
核心能力
- 多智能体流水线抽取文件、函数、类与依赖关系
- 生成可点击搜索的交互式 Dashboard 图谱
- 按 API、Service、Data 等架构层自动分组着色
- 支持模糊与语义搜索,按含义定位代码
- 按依赖顺序自动生成架构导览路线
容易踩的坑
- v2.9.0v2.9.0 — Figma design graphs + .ua data directory最新正式版2026-07-10 · 2026-07-10 09:36 UTC
Highlights
New analysis mode:
/understand-figma(#559) — by @grumingPoint the tool at a Figma file and get the same navigable knowledge graph you get for code: pages → screens → components/variants/instances, plus a light design-system model (design tokens and
uses_tokenedges). Deterministic parsing via the Figma REST API, LLM enrichment via a newdesign-analyzeragent, screen thumbnails in the dashboard sidebar, incrementalUP_TO_DATEre-runs, andFIGMA_TOKENkept strictly in the request header. Schema additions are backward compatible (6 node types, 3 edge types,kind:"design"). Follow-up fixes landed for real-API style-key bridging, published component keys, kind-scoped alias normalization, and dashboard edge-category filters.Data directory renamed to
.ua/— fully backward compatibleAnalysis artifacts now live in
.ua/instead of.understand-anything/. Projects analyzed by older versions need no migration: when a legacy.understand-anything/directory exists it keeps being used for both reads and writes. The resolution rule is implemented once in core (resolveUaDir) and honored by every bundled script, skill, agent definition, hook, and the dashboard dev server.New language support
- Dart (#435) and C++ test/benchmark ignore patterns (#480, #466) — by @thejesh23
- Scala (#553, from #493) and Swift (#537) — by @KumamuKuma
- Kotlin (#347) — by @tirth8205
- Modern TS type-declaration extraction fixes (#532) — by @jiang4wqy
New platform support
- Kiro (#364) — by @smjeong84
- Nanobot (#419) — by @chengyongru
- Trae (#235) — by @ZebangCheng
- Windows
install.ps1vibe support (#550) and Windows test portability (#531, #538, #551) — by @KumamuKuma
Merge-pipeline reliability
- Structural subdomain edges (
contains_flow/flow_step/cross_domain) are no longer silently dropped: loud warnings, a persistedmerge-report.json, and automatic retry on the next run (#529). - Batch files that load but contribute zero nodes/edges are flagged in the phase report instead of vanishing into a partial merge (#484).
- Karpathy wiki parser handles title-case
Index.md/Log.mdand article-root-prefixed[[wiki/...]]links (#342). - Cross-layer container layout cache fix (#541) — by @computersniper; UTF-8 domain context on Windows (#524) — by @multimail-dev; Phase 7 cleanup and scan-result preservation fixes (#387, #332) — by @tirth8205 and @ZebangCheng.
Security hardening
- Skill-injection ReDoS hardening (#557) — by @jiang4wqy
- Recursive subagent dispatch prevention (#560) — by @crow-1412
Pipeline performance & DX
- Semantic batching and output chunking (#204),
/understandpipeline perf (#346) — by @tirth8205 - Conversation-language auto-detection on first run (#378) — by @BozhengLong
- Config schema validation tests (#471) — by @yiziff; CI on Node 24 runtimes.
Full Changelog: https://github.com/Egonex-AI/Understand-Anything/compare/v2.7.3...v2.9.0
- v2.7.32026-05-19 · 2026-05-19 07:13 UTC
查看更新说明
Highlights
Localized analysis output —
--language(#142, #145) — by @zhushen12580/understand(and friends) now accept a--languageflag. Architecture summaries, node descriptions, tours, and onboarding content are generated in the language you ask for, end-to-end through the agent pipeline. Documented across every README.Dashboard i18n (#142 stack + 9d1318a)
The dashboard UI ships translation files alongside the analysis pipeline:
- All UI strings (sidebar, code viewer, search, tours, mobile layout) routed through
I18nProvider. - New: Russian (
ru) joins the existing locales.MobileLayoutis now wrapped in the provider so mobile screens localize too. - Output language read from the same
outputLanguageconfig key for consistency between generated content and chrome.
Unified install script (#123)
Replaced the per-platform installer pile with a single
install.sh/install.ps1that detects the target CLI (Claude Code, Codex, Cursor, Copilot CLI, opencode, Gemini CLI, KIMI, Cline, Hermes, Mistral vibe) and wires up the right symlinks and config. Uninstall is robust against partial state; reparse deletes are guarded.New platform support
- KIMI CLI (#134) — install + skill plumbing.
- Cline (#116) — install + skill plumbing.
- Hermes (#91) — open-source agent compatibility, README refresh.
- Mistral vibe (#127, by @3ng7n33r) — install script entry.
Test-coverage visualization —
tested_byedges + dashboard badge (#122 / issue #113)A deterministic
tested_bylinker runs during merge, with a swap-then-supplement strategy that recovers edges the per-file batches drop and a max-weight Pass-1 dedup. Tested files now render a small badge on their node card so you can spot uncovered code at a glance.Dashboard file/class dual-view toggle (#132) — by @Xingkai98
Toggle between file-level and class-level structural views to cut clutter on large object-oriented codebases. View-state resets are scoped so the toggle stays sane when switching layers, and the detail toolbar hides in domain view where it doesn't apply.
Customizable heading font (#121) — by @Buzzwoo-Ecom-Team
Theme settings expose a heading-font override so teams can match their internal design system without forking.
Mobile layout + responsive dashboard (880e223)
The dashboard now has a real mobile layout instead of a horizontally-scrolling desktop. Sidebar collapses, the code viewer adapts to portrait, and tour navigation works on touch.
Closed 12 sources of silent data loss in graph extraction (c49c46d)
A pipeline-wide audit identified twelve places where nodes or edges were being quietly dropped during batched file analysis and merging. All twelve are now closed and covered:
importsedges recovered when file-analyzer batches drop them (05fd423).tested_bymalformed tags coerced before adding (fdfa331, issue #113).- File-analyzer preserves language and falls back when imports unresolved (
7834f9b). - Canonical edge direction persisted during merge so dedup doesn't lose half the edges (
f71bad5, in 2.7.1). - Fingerprints merge made unambiguous in Phase 3d so re-runs converge (
dd8b724, in 2.7.2). .understandignoreexclusions actually applied in Phase 0 ofauto-update(5304ff0).build-fingerprints.mjsbundled and Phase 7 reordered so incremental updates work on fresh installs (e7af9ae, in 2.7.3).
Auto-update / incremental pipeline (2.7.x line)
Structural fingerprinting (
--auto-update/--no-auto-update) became real in the 2.7 line: only changed files re-run through analysis, fingerprints merge deterministically, and Phase 0 honors.understandignore. Big speedup on repeat runs against large repos.Dashboard
ACCESS_TOKENoverride (1779cbd)The dev server's access token can be overridden via env var for embedded/CI use cases without editing config.
Other contributions s
- All UI strings (sidebar, code viewer, search, tours, mobile layout) routed through
- v2.5.0v2.5.0 — Dashboard layout overhaul (ELK + lazy containers)2026-05-04 · 2026-05-04 01:58 UTC
查看更新说明
Highlights
Source code viewer (#108) — by @arkaigrowth
Slide-up code panel with syntax highlighting; double-click a file node to open. Path-allowlisted via the dev server's
/file-content.jsonendpoint, gated by an access token. Thanks @arkaigrowth for designing and shipping this!Dashboard graph layout overhaul (#111)
Replaces dagre with ELK across all structural-style views and reshapes the layer-detail view around folder/community containers that lazy-expand on demand. Fixes the long-standing horizontal-sprawl problem where layers with 50+ nodes rendered as a single ~14000px row.
- Containers: layer-detail nodes are grouped by folder (Louvain community detection as fallback when folders are too flat). Each container renders as a translucent gold-bordered atom with the folder name and child count.
- Two-stage lazy layout: Stage 1 lays out container atoms only (~125ms even at 500 nodes). Stage 2 runs ELK per container on demand — when you click, when you zoom past 1.0, or when search/focus/tour lands a hit inside.
- Edge aggregation: cross-container edges collapse into a single weighted edge with count. Expanding a container inflates them back to file→file. Edges anchored to collapsed containers stay anchored to the container atom so nothing silently disappears.
- Visual overlays: containers light up for search hits (count badge), diff impact (red border), and focus/selection (gold border).
- Keyboard accessible: containers are real disclosure buttons (
role="button",aria-expanded, Enter/Space). - Performance: dashboard main bundle stays at ~62KB gzipped (ELK split into a parallel-loaded chunk).
Other contributions since v2.3.1
Huge thanks to everyone who improved the project this cycle:
- #95 — @0xnayuta: harden plugin root resolution across install modes.
- #97 — @xiaolai: use
printfinstead ofechoto pipeTOOL_INPUTinto grep. - #98 — @xiaolai: log skipped invalid gitignore patterns to stderr.
- #103 — @ZebangCheng: fix hero image extension in the Astro homepage.
- #105 — @gustn99: README link refresh (Claude Code plugin).
- #110 — @LukasWana: file permissions on
extract-domain-context.py.
Other improvements
- File double-click also navigates the graph; sidebar composition preserved when reopening the slide-up code viewer.
- DomainGraphView migrated to ELK with LR direction preserved.
- WarningBanner now distinguishes graph data errors (asks your agent to fix the JSON) from dashboard rendering bugs (links to the issue tracker).
Compat
- No graph schema changes. Existing
.understand-anything/knowledge-graph.jsonfiles load unchanged. applyDagreLayoutis@deprecatedand slated for removal next release.
Full changelog
v2.3.1...v2.5.0 - v2.3.12026-04-12 · 2026-04-12 07:25 UTC
查看更新说明
What's New
/understand-knowledge— Knowledge Base AnalysisNew skill for analyzing Karpathy-pattern LLM wiki knowledge bases. Detects raw sources and wiki markdown with wikilinks, then produces interactive knowledge graphs with entity extraction, implicit relationships, and topic clustering across five phases (DETECT → SCAN → ANALYZE → MERGE → SAVE).
Comes with two new agents:
- article-analyzer — extracts implicit knowledge from wiki articles: entities (people, tools, papers), claims (decisions, assertions), and semantic edges (
builds_on,contradicts,exemplifies,authored_by,cites) - assemble-reviewer — post-merge quality reviewer that recovers dropped nodes/edges, remaps unknown types, and verifies cross-batch consistency
A dedicated KnowledgeGraphView dashboard component provides force-directed visualization with search, tour highlighting, and relationship-typed edge styling.
.understandignoreSupportUser-configurable file exclusion for
/understandanalysis:- IgnoreFilter — runtime filtering with hardcoded defaults (node_modules, build outputs, lock files, binaries) plus layered
.understandignorefiles from.understand-anything/and project root - IgnoreGenerator — auto-generates a starter
.understandignoreby parsing your existing.gitignoreand detecting project directories - New Phase 0.5 in the
/understandworkflow pauses for user confirmation after generating the ignore file
/understandPipeline Improvements- Subdomain graph merging (Phase 0) — merges multiple domain-specific graphs into one unified graph with deduplication
- Batch graph merging — new Python script with ID normalization, complexity mapping, and detailed fix reports
- Incremental updates — structural fingerprinting with
--auto-update/--no-auto-updateflags - Language/framework context injection for architecture analysis
- Expanded review paths — inline validation vs. full LLM review via
--review
Schema & Type Expansion
- Node types expanded from 13 → 21 (added
domain,flow,step,article,entity,topic,claim,source) - Edge types expanded to 35 covering structural, behavioral, data flow, dependency, semantic, infrastructure, domain, and knowledge relationships
- Type aliases for flexible input (
func→function,doc→document, etc.)
Project Scanner Improvements
- Now handles non-code files (configs, docs, infrastructure, data) with explicit
fileCategoryassignment - Deterministic script-based file discovery with improved language and framework detection
Documentation & Internationalization
- Korean (
README.ko-KR.md) and Spanish (README.es-ES.md) README translations - Animated showcase GIFs for structural and domain views
- Multi-platform badges (Codex, Copilot, Gemini CLI, OpenCode)
Fixes
- Dashboard URL now includes access token
- Connected edges highlight correctly on node selection
- Stable layout and scoped infrastructure filter in graph view
- Marketplace JSON schema validation fixes
- Edge weight coercion for graph merge scripts
- article-analyzer — extracts implicit knowledge from wiki articles: entities (people, tools, papers), claims (decisions, assertions), and semantic edges (
- v2.1.02026-04-03 · 2026-04-03 02:54 UTC
查看更新说明
What's New in v2.1.0
Business Domain Knowledge Graph
A brand new domain graph view that maps your codebase's business logic — domains, flows, and process steps — so you can understand what the software does alongside how it's built.
- New
/understand-domainskill extracts business domain knowledge using a dedicated domain-analyzer agent - Domain graph view in the dashboard with a view mode toggle pill to switch between architecture and domain graphs
- Custom node components:
DomainClusterNode,FlowNode,StepNodewith domain-aware NodeInfo sidebar - Domain overview and detail drill-down views with auto-widened spacing for long edge labels
- New core types:
domain,flow,stepnode types and domain-specific edge types saveDomainGraph/loadDomainGraphpersistence functions in core
Bug Fixes
- Missing node types in layer detail view — function/class nodes now correctly appear in layer detail (#65, #66)
- Deterministic node ID normalization — parallel batch analyzer output now produces consistent IDs regardless of execution order (#65)
- All 13 node types handled — edge cross-variant resolution and dropped edge traceability for generated graphs (#65)
- Step ID normalization improved with additional test coverage
- Redundant bottom bar (CodeViewer) no longer appears on node click (#55)
- POSIX-compatible hooks — replaced bash herestring with POSIX pipe for broader shell support (#64)
- 24 prompt engineering audit issues fixed across all 7 agents
- 8 dashboard audit issues addressed across components
New Platform Support
- VS Code + GitHub Copilot agent skills support (#52)
Dashboard Enhancements
- PNG export fix: replaced
foreignObjectwith clean SVG primitives (#50) - Node type filters, path finder, and tooltips (#50)
- Header legends now horizontally scrollable on overflow
Other
- CI: added PR workflow for build, test, and type-check
- Prompt templates moved into agent definitions for prompt integrity
- Docs updated across all README translations
Community Contributors
- @fishinakleinbottle — deterministic normalization for generated graphs (#65)
- @pablospe — POSIX-compatible hooks fix (#64)
- @GarfieldHuang — VS Code + GitHub Copilot plugin (#52)
- @berkcangumusisik — dashboard export, filtering & path finder (#50)
Full Changelog: https://github.com/Lum1104/Understand-Anything/compare/v2.0.0...v2.1.0
- New
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
You just joined a new team. The codebase is 200,000 lines of code. Where do you even start?
Understand Anything is a Claude Code Plugin that analyzes your project with a multi-agent pipeline, builds a knowledge graph of every file, function, class, and dependency, then gives you an interactive dashboard to explore it all visually. Stop reading code blind. Start seeing the big picture.
The goal isn't a graph that wows you with how complex your codebase is — it's a graph that quietly teaches you how every piece fits together.
✨ Features
[!NOTE] Want to skip the reading? Try the live demo in our homepage — a fully interactive dashboard you can pan, zoom, search, and explore right in your browser.
Explore the structural graph
Navigate your codebase as an interactive knowledge graph — every file, function, and class is a node you can click, search, and explore. Select any node to see plain-English summaries, relationships, and guided tours.
Understand business logic
Switch to the domain view and see how your code maps to real business processes — domains, flows, and steps laid out as a horizontal graph.
Analyze knowledge bases
Point /understand-knowledge at a Karpathy-pattern LLM wiki and get a force-directed knowledge graph with community clustering. The deterministic parser extracts wikilinks and categories from index.md, then LLM agents discover implicit relationships, extract entities, and surface claims — turning your wiki into a navigable graph of interconnected ideas.
🚀 Quick Start
1. Install the plugin
/plugin marketplace add Egonex-AI/Understand-Anything
/plugin install understand-anything
Using a local model? For privacy or enterprise setups, point your platform at a local model provider such as Ollama — follow their integration guide to change the model provider.
2. Analyze your codebase
/understand
A multi-agent pipeline scans your project, extracts every file, function, class, and dependency, then builds a knowledge graph saved to .ua/knowledge-graph.json. (Projects that already have a .understand-anything/ directory keep using it — it stays the data directory when present, so nothing needs migrating.)
Heads up on token usage: The initial
/understandanalyzes your whole codebase and can consume a significant number of tokens on large projects. We recommend running it on a token plan / subscription, or using a local model (see above) for initialization. Subsequent runs are incremental by default — only changed files are re-analyzed — so they use far fewer tokens.
Localized output: Use --language to generate content in your preferred language:
# Generate Chinese content (知识图节点描述和 Dashboard UI)
/understand --language zh
# Supported languages: en (default), zh, zh-TW, ja, ko, ru, vi
On the first run in a project — when you don't pass --language and no language is stored yet — /understand detects the language you're conversing in. If it isn't English, it asks you to confirm (or override) before generating; English conversations are unaffected. Your choice is saved to .ua/config.json and reused on every later run.
The --language parameter affects:
- Node summaries and descriptions in the knowledge graph
- Dashboard UI labels, buttons, and tooltips
- Guided tour explanations
3. Explore the dashboard
/understand-dashboard
An interactive web dashboard opens with your codebase visualized as a graph — color-coded by architectural layer, searchable, and clickable. Select any node to see its code, relationships, and a plain-English explanation.
4. Keep learning
# Ask anything about the codebase
/understand-chat How does the payment flow work?
# Analyze impact of your current changes
/understand-diff
# Deep-dive into a specific file or function
/understand-explain src/auth/login.ts
# Generate an onboarding guide for new team members
/understand-onboard
# Extract business domain knowledge (domains, flows, steps)
/understand-domain
# Analyze a Karpathy-pattern LLM wiki knowledge base
/understand-knowledge ~/path/to/wiki
# Re-run anytime — incremental by default (only re-analyzes changed files)
/understand
# Auto-update on every commit via a post-commit hook
/understand --auto-update
# Scope to a subdirectory (for huge monorepos)
/understand src/frontend
🌐 Multi-Platform Installation
Understand-Anything works across multiple AI coding platforms.
Claude Code (Native)
/plugin marketplace add Egonex-AI/Understand-Anything
/plugin install understand-anything
One-line install (Codex / OpenCode / OpenClaw / Antigravity / Gemini CLI / Pi Agent / Vibe CLI / VS Code Copilot / Hermes / Cline / KIMI CLI / Trae / Nanobot / Kiro / Devin)
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/Egonex-AI/Understand-Anything/main/install.sh | bash
# or skip the prompt by passing the platform:
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
The installer clones the repo to ~/.understand-anything/repo and creates the right symlinks for the chosen platform. Restart your CLI/IDE afterwards.
Note on invoking skills: the invocation prefix differs per platform. Most platforms use slash commands (
/understand), but Codex uses$instead — type$understand, not/understand. If neither prefix is recognized on your platform, just ask in plain language: "Use the understand skill to analyze this project."
- Supported
<platform>values:gemini,codex,opencode,pi,openclaw,antigravity,vibe,vscode,hermes,cline,kimi,trae,nanobot,kiro,devin - Update later:
- macOS / Linux:
./install.sh --update - Windows:
& "$HOME/.understand-anything/repo/install.ps1" -Update
- macOS / Linux:
- Uninstall:
- macOS / Linux:
./install.sh --uninstall <platform> - Windows:
& "$HOME/.understand-anything/repo/install.ps1" -Uninstall <platform>
- macOS / Linux:
Cursor
Cursor auto-discovers the plugin via .cursor-plugin/plugin.json when this repo is cloned. No manual installation needed — just clone and open in Cursor.
If auto-discovery doesn't pick it up, install it manually: open Cursor Settings → Plugins, paste https://github.com/Egonex-AI/Understand-Anything into the search field, and add it from there.
VS Code + GitHub Copilot
/plugin marketplace add Egonex-AI/Understand-Anything
/plugin install understand-anything@understand-anything
VS Code with GitHub Copilot (v1.108+) auto-discovers the plugin via .copilot-plugin/plugin.json when this repo is cloned. No manual installation needed — just clone and open in VS Code.
For personal skills (available across all projects), run the install.sh above with the vscode platform.
Copilot CLI
copilot plugin install Egonex-AI/Understand-Anything:understand-anything-plugin
Kiro CLI / IDE
curl -fsSL https://raw.githubusercontent.com/Egonex-AI/Understand-Anything/main/install.sh | bash -s kiro
After installation:
- Kiro CLI:
kiro-cli chat --agent understand "Analyze this project" - Kiro IDE: The skills are symlinked into
~/.kiro/skills/and theunderstandagent is written to~/.kiro/agents/understand.json, so both are available after restarting the IDE.
For personal skills (available across all projects), run the install.sh above with the kiro platform.
Devin
Devin support comes in two parts: a plugin that generates graphs, and an optional MCP server for querying them and opening dashboards.
Plugin (recommended). You get the namespaced /understand-anything:* skills, the post-commit auto-update hooks, and the analysis subagents. Devin loads the plugin through its Claude-plugin compatibility:
devin auth login # plugin management requires sign-in
devin plugins install Egonex-AI/Understand-Anything#understand-anything-plugin
Then, in any project:
/understand-anything:understand
Skills only. This uses the one-line installer above with the devin platform. It symlinks the skills into ~/.agents/skills/, which Devin loads globally, and gives you un-namespaced /understand, /understand-chat, etc. It does not register the auto-update hooks.
MCP server (optional). It serves an existing graph to Devin (status / search / explain / diff / onboard / dashboard). Build the workspace once (pnpm install && pnpm -r build), then register the server in the project's .devin/config.json:
{
"mcpServers": {
"understand-anything": {
"command": "node",
"args": ["/absolute/path/to/Understand-Anything/understand-anything-plugin/packages/mcp/bin/understand-anything-mcp.mjs"]
}
}
}
The full tool reference and examples for other clients are in understand-anything-plugin/packages/mcp/README.md.
Platform Compatibility
| Platform | Status | Install Method |
|---|---|---|
| Claude Code | ✅ Native | Plugin marketplace |
| Cursor | ✅ Supported | Auto-discovery |
| VS Code + GitHub Copilot | ✅ Supported | Auto-discovery |
| Copilot CLI | ✅ Supported | Plugin install |
| Codex | ✅ Supported | install.sh codex |
| OpenCode | ✅ Supported | install.sh opencode |
| OpenClaw | ✅ Supported | install.sh openclaw |
| Antigravity | ✅ Supported | install.sh antigravity |
| Gemini CLI | ✅ Supported | install.sh gemini |
| Pi Agent | ✅ Supported | install.sh pi |
| Vibe CLI | ✅ Supported | install.sh vibe |
| Hermes | ✅ Supported | install.sh hermes |
| Cline | ✅ Supported | install.sh cline |
| KIMI CLI | ✅ Supported | install.sh kimi |
| Trae | ✅ Supported | install.sh trae |
| Nanobot | ✅ Supported | install.sh nanobot |
| Kiro CLI / IDE | ✅ Supported | install.sh kiro |
| Devin | ✅ Supported | devin plugins install or install.sh devin |
📦 Share the Graph with Your Team
The graph is just JSON — commit it once, and teammates skip the pipeline. Good for onboarding, PR reviews, and docs-as-code.
Example: GoogleCloudPlatform/microservices-demo — Go / Java / Python / Node reference with a committed graph.
What to commit: everything in .ua/ except intermediate/ and diff-overlay.json (those are local scratch). (Legacy projects use .understand-anything/ — substitute that directory name below if it's the one present.)
.ua/intermediate/
.ua/diff-overlay.json
Keep it fresh: enable /understand --auto-update — a post-commit hook incrementally patches the graph so each commit lands with a matching graph. Or re-run /understand manually before releases.
Large graphs (10 MB+): track with git-lfs.
git lfs install
git lfs track ".ua/*.json"
git add .gitattributes .ua/
View the dashboard without Claude Code
Once a graph has been generated and committed, anyone on the team can open it with one command — no Claude Code, no LLM, no API key. Only Node.js (>= 18) is required:
npx https://github.com/Egonex-AI/Understand-Anything/releases/latest/download/understand-anything-viewer.tgz /path/to/analyzed/project
The terminal prints a tokenized URL (http://127.0.0.1:5173/?token=…) and opens the full interactive dashboard in your browser. The project directory (default: current directory) must contain the committed data directory (.ua/, or legacy .understand-anything/). Everything is served read-only from local disk — no LLM calls, no data leaves your machine.
Working from a clone instead? pnpm install && pnpm --filter @understand-anything/core build, then GRAPH_DIR=/path/to/analyzed/project pnpm dev:dashboard does the same via the Vite dev server.
🔧 Under the Hood
Tree-sitter + LLM hybrid
Static analysis and LLMs do what each does best:
- Tree-sitter (deterministic) — parses source into a concrete syntax tree and extracts structural facts: imports, exports, function/class definitions, call sites, inheritance. Pre-resolved into an
importMapduring the scan phase and passed to file-analyzers so they don't re-derive imports from source. Same input → same output, every run. Also powers fingerprint-based change detection for incremental updates. - LLM (semantic) — reads the parsed structure alongside the original source to produce what parsers can't: plain-English summaries, tags, architectural layer assignments, business-domain mapping, guided tours, language concept callouts.
This split is why the graph is reproducible on the structural side (the same code always yields the same edges) while still capturing intent on the semantic side (what a file is for, not just what it imports).
Multi-Agent Pipeline
The /understand command orchestrates 5 specialized agents, /understand-domain adds a 6th, and /understand-knowledge adds a 7th:
| Agent | Role | Used By |
|---|---|---|
project-scanner | Discovers files, detects languages and frameworks | /understand |
file-analyzer | Extracts functions, classes, imports; produces graph nodes and edges | /understand |
architecture-analyzer | Identifies architectural layers | /understand |
tour-builder | Generates guided learning tours | /understand |
graph-reviewer | Validates graph completeness and referential integrity. Runs inline by default; use --review for full LLM review | /understand |
domain-analyzer | Extracts business domains, flows, and process steps | /understand-domain |
article-analyzer | Extracts entities, claims, and implicit relationships from wiki articles | /understand-knowledge |
File analyzers run in parallel, up to 5 concurrent workers and 20–30 files per batch.
The pipeline also supports incremental updates: only files changed since the last run are re-analyzed.
🎥 Community
A community-made walkthrough by Better Stack.
Made a video, blog post, or tutorial? Open an issue or PR — happy to feature it here.
🤝 Contributing
Contributions are welcome! Here's how to get started:
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Run the tests (
pnpm --filter @understand-anything/core test) - Commit your changes and open a pull request
Please open an issue first for major changes so we can discuss the approach.