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.

v2.9.0发布于 2026-07-10 09:36 UTC91,821star +674 / 7 天7,828fork同步于 2026-11-10 11:18 UTC

怎么上手

由 README 提炼,执行前请确认
/plugin marketplace add Egonex-AI/Understand-Anything
/plugin install understand-anything
/understand
硬件要求按 README 说明

README 未说明

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

把任意代码库或文档变成可交互知识图谱,帮你快速看懂陌生项目

把任意代码库转成可交互的知识图谱,支持浏览、搜索和提问,兼容 Claude Code、Cursor、Copilot 等主流 AI 编程工具。

核心能力

  • 多智能体流水线抽取文件、函数、类与依赖关系
  • 生成可点击搜索的交互式 Dashboard 图谱
  • 按 API、Service、Data 等架构层自动分组着色
  • 支持模糊与语义搜索,按含义定位代码
  • 按依赖顺序自动生成架构导览路线

容易踩的坑

首次 /understand 会分析整个代码库,大项目消耗大量 token,建议用订阅或本地模型;Codex 平台用 $understand 而非 /understand;非 Claude Code 平台需先跑 install.sh 并重启 CLI/IDE

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v2.9.0
  1. 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 @gruming

    Point 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_token edges). Deterministic parsing via the Figma REST API, LLM enrichment via a new design-analyzer agent, screen thumbnails in the dashboard sidebar, incremental UP_TO_DATE re-runs, and FIGMA_TOKEN kept 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 compatible

    Analysis 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.ps1 vibe 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 persisted merge-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.md and 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), /understand pipeline 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

  2. 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 --language flag. 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. MobileLayout is now wrapped in the provider so mobile screens localize too.
    • Output language read from the same outputLanguage config key for consistency between generated content and chrome.

    Unified install script (#123)

    Replaced the per-platform installer pile with a single install.sh / install.ps1 that 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_by edges + dashboard badge (#122 / issue #113)

    A deterministic tested_by linker 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:

    • imports edges recovered when file-analyzer batches drop them (05fd423).
    • tested_by malformed 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).
    • .understandignore exclusions actually applied in Phase 0 of auto-update (5304ff0).
    • build-fingerprints.mjs bundled 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_TOKEN override (1779cbd)

    The dev server's access token can be overridden via env var for embedded/CI use cases without editing config.


    Other contributions s

  3. 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.json endpoint, 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 printf instead of echo to pipe TOOL_INPUT into 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.json files load unchanged.
    • applyDagreLayout is @deprecated and slated for removal next release.

    Full changelog

    v2.3.1...v2.5.0

  4. v2.3.12026-04-12 · 2026-04-12 07:25 UTC
    查看更新说明

    What's New

    /understand-knowledge — Knowledge Base Analysis

    New 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.

    .understandignore Support

    User-configurable file exclusion for /understand analysis:

    • IgnoreFilter — runtime filtering with hardcoded defaults (node_modules, build outputs, lock files, binaries) plus layered .understandignore files from .understand-anything/ and project root
    • IgnoreGenerator — auto-generates a starter .understandignore by parsing your existing .gitignore and detecting project directories
    • New Phase 0.5 in the /understand workflow pauses for user confirmation after generating the ignore file

    /understand Pipeline 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-update flags
    • 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 fileCategory assignment
    • 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
  5. 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-domain skill 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, StepNode with domain-aware NodeInfo sidebar
    • Domain overview and detail drill-down views with auto-widened spacing for long edge labels
    • New core types: domain, flow, step node types and domain-specific edge types
    • saveDomainGraph / loadDomainGraph persistence 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 foreignObject with 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

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    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 /understand analyzes 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
    • Uninstall:
      • macOS / Linux: ./install.sh --uninstall <platform>
      • Windows: & "$HOME/.understand-anything/repo/install.ps1" -Uninstall <platform>

    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 the understand agent 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

    PlatformStatusInstall Method
    Claude Code✅ NativePlugin marketplace
    Cursor✅ SupportedAuto-discovery
    VS Code + GitHub Copilot✅ SupportedAuto-discovery
    Copilot CLI✅ SupportedPlugin install
    Codex✅ Supportedinstall.sh codex
    OpenCode✅ Supportedinstall.sh opencode
    OpenClaw✅ Supportedinstall.sh openclaw
    Antigravity✅ Supportedinstall.sh antigravity
    Gemini CLI✅ Supportedinstall.sh gemini
    Pi Agent✅ Supportedinstall.sh pi
    Vibe CLI✅ Supportedinstall.sh vibe
    Hermes✅ Supportedinstall.sh hermes
    Cline✅ Supportedinstall.sh cline
    KIMI CLI✅ Supportedinstall.sh kimi
    Trae✅ Supportedinstall.sh trae
    Nanobot✅ Supportedinstall.sh nanobot
    Kiro CLI / IDE✅ Supportedinstall.sh kiro
    Devin✅ Supporteddevin 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 importMap during 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:

    AgentRoleUsed By
    project-scannerDiscovers files, detects languages and frameworks/understand
    file-analyzerExtracts functions, classes, imports; produces graph nodes and edges/understand
    architecture-analyzerIdentifies architectural layers/understand
    tour-builderGenerates guided learning tours/understand
    graph-reviewerValidates graph completeness and referential integrity. Runs inline by default; use --review for full LLM review/understand
    domain-analyzerExtracts business domains, flows, and process steps/understand-domain
    article-analyzerExtracts 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:

    1. Fork the repository
    2. Create a feature branch (git checkout -b feature/my-feature)
    3. Run the tests (pnpm --filter @understand-anything/core test)
    4. Commit your changes and open a pull request

    Please open an issue first for major changes so we can discuss the approach.


    Star History