Egonex-AI/Understand-AnythingPublic

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.

AI summary: Interactive knowledge graph generator that visualizes codebases and documentation for AI coding assistants.

Stars
77.9K
+101 today
Forks
6.5K
Watchers
243
Open issues
94
Open PRs
166
Contributors
~65
Commits
763
Branches
2

TypeScriptMITCreated Mar 15, 2026Last push 8d agoLatest release v2.9.0+892 stars this week+1.3K this month

Star history

since Jun 7, 2026
020K40K60KJun 2026Jun 2026Jul 2026Aug 2026
77.9K stars as of Aug 7, 2026, tracked back to Jun 7, 2026. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

commits per day, last 52 weeks
AugSepOctNovDecJanFebMarAprMayJunJulAugMonWedFri2025-08-09: 0 commits2025-08-10: 0 commits2025-08-11: 0 commits2025-08-12: 0 commits2025-08-13: 0 commits2025-08-14: 0 commits2025-08-15: 0 commits2025-08-16: 0 commits2025-08-17: 0 commits2025-08-18: 0 commits2025-08-19: 0 commits2025-08-20: 0 commits2025-08-21: 0 commits2025-08-22: 0 commits2025-08-23: 0 commits2025-08-24: 0 commits2025-08-25: 0 commits2025-08-26: 0 commits2025-08-27: 0 commits2025-08-28: 0 commits2025-08-29: 0 commits2025-08-30: 0 commits2025-08-31: 0 commits2025-09-01: 0 commits2025-09-02: 0 commits2025-09-03: 0 commits2025-09-04: 0 commits2025-09-05: 0 commits2025-09-06: 0 commits2025-09-07: 0 commits2025-09-08: 0 commits2025-09-09: 0 commits2025-09-10: 0 commits2025-09-11: 0 commits2025-09-12: 0 commits2025-09-13: 0 commits2025-09-14: 0 commits2025-09-15: 0 commits2025-09-16: 0 commits2025-09-17: 0 commits2025-09-18: 0 commits2025-09-19: 0 commits2025-09-20: 0 commits2025-09-21: 0 commits2025-09-22: 0 commits2025-09-23: 0 commits2025-09-24: 0 commits2025-09-25: 0 commits2025-09-26: 0 commits2025-09-27: 0 commits2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 0 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 0 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 45 commits2026-03-15: 15 commits2026-03-16: 4 commits2026-03-17: 6 commits2026-03-18: 3 commits2026-03-19: 12 commits2026-03-20: 4 commits2026-03-21: 10 commits2026-03-22: 2 commits2026-03-23: 11 commits2026-03-24: 9 commits2026-03-25: 4 commits2026-03-26: 7 commits2026-03-27: 23 commits2026-03-28: 38 commits2026-03-29: 12 commits2026-03-30: 1 commit2026-03-31: 2 commits2026-04-01: 2 commits2026-04-02: 26 commits2026-04-03: 6 commits2026-04-04: 4 commits2026-04-05: 2 commits2026-04-06: 1 commit2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 10 commits2026-04-10: 11 commits2026-04-11: 1 commit2026-04-12: 11 commits2026-04-13: 12 commits2026-04-14: 5 commits2026-04-15: 18 commits2026-04-16: 3 commits2026-04-17: 3 commits2026-04-18: 1 commit2026-04-19: 3 commits2026-04-20: 2 commits2026-04-21: 2 commits2026-04-22: 1 commit2026-04-23: 1 commit2026-04-24: 4 commits2026-04-25: 3 commits2026-04-26: 1 commit2026-04-27: 1 commit2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 4 commits2026-05-02: 0 commits2026-05-03: 35 commits2026-05-04: 8 commits2026-05-05: 3 commits2026-05-06: 8 commits2026-05-07: 5 commits2026-05-08: 1 commit2026-05-09: 6 commits2026-05-10: 1 commit2026-05-11: 7 commits2026-05-12: 6 commits2026-05-13: 0 commits2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 7 commits2026-05-19: 1 commit2026-05-20: 1 commit2026-05-21: 7 commits2026-05-22: 3 commits2026-05-23: 2 commits2026-05-24: 2 commits2026-05-25: 4 commits2026-05-26: 0 commits2026-05-27: 0 commits2026-05-28: 0 commits2026-05-29: 1 commit2026-05-30: 0 commits2026-05-31: 5 commits2026-06-01: 0 commits2026-06-02: 1 commit2026-06-03: 3 commits2026-06-04: 0 commits2026-06-05: 2 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 3 commits2026-06-10: 0 commits2026-06-11: 0 commits2026-06-12: 0 commits2026-06-13: 18 commits2026-06-14: 0 commits2026-06-15: 2 commits2026-06-16: 4 commits2026-06-17: 2 commits2026-06-18: 0 commits2026-06-19: 2 commits2026-06-20: 0 commits2026-06-21: 5 commits2026-06-22: 1 commit2026-06-23: 2 commits2026-06-24: 20 commits2026-06-25: 0 commits2026-06-26: 0 commits2026-06-27: 0 commits2026-06-28: 1 commit2026-06-29: 0 commits2026-06-30: 0 commits2026-07-01: 3 commits2026-07-02: 0 commits2026-07-03: 8 commits2026-07-04: 0 commits2026-07-05: 0 commits2026-07-06: 3 commits2026-07-07: 0 commits2026-07-08: 6 commits2026-07-09: 1 commit2026-07-10: 29 commits2026-07-11: 3 commits2026-07-12: 2 commits2026-07-13: 8 commits2026-07-14: 5 commits2026-07-15: 0 commits2026-07-16: 2 commits2026-07-17: 6 commits2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 4 commits2026-07-21: 4 commits2026-07-22: 0 commits2026-07-23: 0 commits2026-07-24: 0 commits2026-07-25: 0 commits2026-07-26: 0 commits2026-07-27: 1 commit2026-07-28: 4 commits2026-07-29: 0 commits2026-07-30: 0 commits2026-07-31: 0 commits2026-08-01: 0 commits2026-08-02: 0 commits2026-08-03: 0 commits2026-08-04: 0 commits2026-08-05: 0 commits2026-08-06: 0 commits2026-08-07: 0 commits2026-08-08: 0 commits
614 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Landmark project

    77,855 stars

  • Well documented

    High community health score

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

  • Repeat trending

    13 trending appearances

  • Top 10% tracked

    Rank 89 of 1058

What Understand-Anything does

This tool parses arbitrary codebases and text documents into navigable, interactive knowledge graphs. It integrates with various AI agents including Claude Code, Cursor, Copilot, and Gemini CLI to provide deep contextual understanding of complex software structures. By mapping dependencies, relationships, and structural hierarchies, it moves beyond linear text representations. The system uses these graphs to enable precise semantic search and answering for deep technical questions about large projects.

Software developers, architects, and technical leads who need to navigate complex, unfamiliar codebases or enhance the context available to their AI coding tools.

  • Codebase parsing: Extracts relationships and architecture from source code to form an interconnected graph.
  • Agent integration: Works seamlessly with popular AI coding environments like Cursor, Copilot, and Claude Code.
  • Interactive visualization: Provides a graphical interface for users to manually explore the structure of the target repository.
  • Semantic querying: Allows developers to ask natural language questions about the codebase based on the graph representation.
  • Multi-language support: Translates complex structures across multiple natural and programming languages.

Where teams use it

Codebase Onboarding

New team members exploring unfamiliar repositories to quickly understand component relationships.

Architecture Review

Senior engineers analyzing the structural dependencies of a large project to plan refactoring efforts.

Agent Context Injection

Feeding highly structured architectural data to LLM-powered tools to improve the accuracy of generated code.

Documentation Augmentation

Replacing static markdown files with dynamic graphs that reflect the current state of the software.

README

main branch

Understand Anything

Turn any codebase, knowledge base, or docs into an interactive knowledge graph you can explore, search, and ask questions about.
Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and more.

Understand Anything. Understand Anyone.
AI should help people, not replace them.

Understand Anything | Trendshift

English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Türkçe | Русский

Quick Start License: MIT Claude Code Codex Copilot Copilot CLI Gemini CLI OpenCode Vibe CLI Trae Homepage Live Demo Understand Anyone

Understand Anything — Turn any codebase into an interactive knowledge graph

An open-source project from Egonex
Originally created by Lum1104.


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.

🧭 Guided Tours

Auto-generated walkthroughs of the architecture, ordered by dependency. Learn the codebase in the right order.

🔍 Fuzzy & Semantic Search

Find anything by name or by meaning. Search "which parts handle auth?" and get relevant results across the graph.

📊 Diff Impact Analysis

See which parts of the system your changes affect before you commit. Understand ripple effects across the codebase.

🎭 Persona-Adaptive UI

The dashboard adjusts its detail level based on who you are — junior dev, PM, or power user.

🏗️ Layer Visualization

Automatic grouping by architectural layer — API, Service, Data, UI, Utility — with color-coded legend.

📚 Language Concepts

12 programming patterns (generics, closures, decorators, etc.) explained in context wherever they appear.


🚀 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

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)

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
  • Update later: ./install.sh --update
  • Uninstall: ./install.sh --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

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.

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

📦 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, and /understand-domain adds a 6th:

Agent Role
project-scanner Discover files, detect languages and frameworks
file-analyzer Extract functions, classes, imports; produce graph nodes and edges
architecture-analyzer Identify architectural layers
tour-builder Generate guided learning tours
graph-reviewer Validate graph completeness and referential integrity (runs inline by default; use --review for full LLM review)
domain-analyzer Extract business domains, flows, and process steps (used by /understand-domain)
article-analyzer Extract entities, claims, and implicit relationships from wiki articles (used by /understand-knowledge)

File analyzers run in parallel (up to 5 concurrent, 20-30 files per batch). Supports incremental updates — only re-analyzes files that changed since the last run.


🎥 Community

A community-made walkthrough by Better Stack.

Community walkthrough by Better Stack — watch on YouTube
Watch on YouTube →

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.


Stop reading code blind. Start understanding everything.

Star History

Star History Chart

Thanks to everyone who's used and contributed — knowing this saves people time is what made it worth building.

MIT License © Yuxiang Lin and Infinite Universe, Inc.

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

8 total
  1. ## 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, an

  2. v2.7.3v2.7.3May 19, 2026

    ## 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

  3. ## 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

  4. v2.3.1v2.3.1Apr 12, 2026

    ## 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-anythi

  5. v2.1.0v2.1.0Apr 3, 2026

    ## 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

Code frequency

additions and deletions
+46.3K-46.3KWeek of 2026-03-08: +18,933 linesWeek of 2026-03-08: -282 linesWeek of 2026-03-15: +27,114 linesWeek of 2026-03-15: -13,430 linesWeek of 2026-03-22: +28,047 linesWeek of 2026-03-22: -2,826 linesWeek of 2026-03-29: +9,520 linesWeek of 2026-03-29: -2,668 linesWeek of 2026-04-05: +46,332 linesWeek of 2026-04-05: -40,822 linesWeek of 2026-04-12: +15,116 linesWeek of 2026-04-12: -1,325 linesWeek of 2026-04-19: +312 linesWeek of 2026-04-19: -90 linesWeek of 2026-04-26: +789 linesWeek of 2026-04-26: -141 linesWeek of 2026-05-03: +12,992 linesWeek of 2026-05-03: -3,676 linesWeek of 2026-05-10: +2,557 linesWeek of 2026-05-10: -670 linesWeek of 2026-05-17: +2,717 linesWeek of 2026-05-17: -365 linesWeek of 2026-05-24: +13,471 linesWeek of 2026-05-24: -1,252 linesWeek of 2026-05-31: +2,065 linesWeek of 2026-05-31: -85 linesWeek of 2026-06-07: +4,222 linesWeek of 2026-06-07: -2,843 linesWeek of 2026-06-14: +1,221 linesWeek of 2026-06-14: -132 linesWeek of 2026-06-21: +3,800 linesWeek of 2026-06-21: -227 linesWeek of 2026-06-28: +2,195 linesWeek of 2026-06-28: -230 linesWeek of 2026-07-05: +11,467 linesWeek of 2026-07-05: -4,479 linesWeek of 2026-07-12: +9,260 linesWeek of 2026-07-12: -660 linesWeek of 2026-07-19: +109 linesWeek of 2026-07-19: -15 linesWeek of 2026-07-26: +357 linesWeek of 2026-07-26: -53 linesWeek of 2026-08-02: +0 linesWeek of 2026-08-02: -0 linesMar 8, 2026Aug 2, 2026
+212.6K lines added, -76.3K removed over the last year.

Commits per week

last 52 weeks
940Week of 2025-08-09: 0 commitsWeek of 2025-08-16: 0 commitsWeek of 2025-08-23: 0 commitsWeek of 2025-08-30: 0 commitsWeek of 2025-09-06: 0 commitsWeek of 2025-09-13: 0 commitsWeek of 2025-09-20: 0 commitsWeek of 2025-09-27: 0 commitsWeek of 2025-10-04: 0 commitsWeek of 2025-10-11: 0 commitsWeek of 2025-10-18: 0 commitsWeek of 2025-10-25: 0 commitsWeek of 2025-11-01: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 0 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 45 commitsWeek of 2026-03-15: 54 commitsWeek of 2026-03-22: 94 commitsWeek of 2026-03-29: 53 commitsWeek of 2026-04-05: 25 commitsWeek of 2026-04-12: 53 commitsWeek of 2026-04-19: 16 commitsWeek of 2026-04-26: 6 commitsWeek of 2026-05-03: 66 commitsWeek of 2026-05-10: 14 commitsWeek of 2026-05-17: 21 commitsWeek of 2026-05-24: 7 commitsWeek of 2026-05-31: 11 commitsWeek of 2026-06-07: 21 commitsWeek of 2026-06-14: 10 commitsWeek of 2026-06-21: 28 commitsWeek of 2026-06-28: 12 commitsWeek of 2026-07-05: 42 commitsWeek of 2026-07-12: 23 commitsWeek of 2026-07-19: 8 commitsWeek of 2026-07-26: 5 commitsWeek of 2026-08-02: 0 commitsAug 9, 2025Aug 2, 2026
614 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 3 commitsSun 1:00 — 0 commitsSun 2:00 — 0 commitsSun 3:00 — 0 commitsSun 4:00 — 1 commitsSun 5:00 — 0 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 0 commitsSun 9:00 — 2 commitsSun 10:00 — 13 commitsSun 11:00 — 17 commitsSun 12:00 — 5 commitsSun 13:00 — 3 commitsSun 14:00 — 0 commitsSun 15:00 — 6 commitsSun 16:00 — 25 commitsSun 17:00 — 7 commitsSun 18:00 — 1 commitsSun 19:00 — 2 commitsSun 20:00 — 10 commitsSun 21:00 — 1 commitsSun 22:00 — 1 commitsSun 23:00 — 3 commitsMon 0:00 — 3 commitsMon 1:00 — 0 commitsMon 2:00 — 2 commitsMon 3:00 — 4 commitsMon 4:00 — 0 commitsMon 5:00 — 0 commitsMon 6:00 — 0 commitsMon 7:00 — 0 commitsMon 8:00 — 0 commitsMon 9:00 — 15 commitsMon 10:00 — 3 commitsMon 11:00 — 5 commitsMon 12:00 — 6 commitsMon 13:00 — 0 commitsMon 14:00 — 2 commitsMon 15:00 — 5 commitsMon 16:00 — 4 commitsMon 17:00 — 2 commitsMon 18:00 — 2 commitsMon 19:00 — 12 commitsMon 20:00 — 5 commitsMon 21:00 — 2 commitsMon 22:00 — 4 commitsMon 23:00 — 1 commitsTue 0:00 — 5 commitsTue 1:00 — 1 commitsTue 2:00 — 2 commitsTue 3:00 — 1 commitsTue 4:00 — 0 commitsTue 5:00 — 1 commitsTue 6:00 — 0 commitsTue 7:00 — 0 commitsTue 8:00 — 0 commitsTue 9:00 — 0 commitsTue 10:00 — 1 commitsTue 11:00 — 11 commitsTue 12:00 — 9 commitsTue 13:00 — 2 commitsTue 14:00 — 5 commitsTue 15:00 — 4 commitsTue 16:00 — 3 commitsTue 17:00 — 0 commitsTue 18:00 — 2 commitsTue 19:00 — 0 commitsTue 20:00 — 3 commitsTue 21:00 — 1 commitsTue 22:00 — 3 commitsTue 23:00 — 3 commitsWed 0:00 — 0 commitsWed 1:00 — 1 commitsWed 2:00 — 0 commitsWed 3:00 — 0 commitsWed 4:00 — 0 commitsWed 5:00 — 0 commitsWed 6:00 — 0 commitsWed 7:00 — 0 commitsWed 8:00 — 1 commitsWed 9:00 — 3 commitsWed 10:00 — 0 commitsWed 11:00 — 2 commitsWed 12:00 — 0 commitsWed 13:00 — 3 commitsWed 14:00 — 1 commitsWed 15:00 — 1 commitsWed 16:00 — 5 commitsWed 17:00 — 6 commitsWed 18:00 — 15 commitsWed 19:00 — 16 commitsWed 20:00 — 3 commitsWed 21:00 — 4 commitsWed 22:00 — 9 commitsWed 23:00 — 1 commitsThu 0:00 — 1 commitsThu 1:00 — 0 commitsThu 2:00 — 0 commitsThu 3:00 — 0 commitsThu 4:00 — 0 commitsThu 5:00 — 1 commitsThu 6:00 — 0 commitsThu 7:00 — 0 commitsThu 8:00 — 0 commitsThu 9:00 — 1 commitsThu 10:00 — 7 commitsThu 11:00 — 8 commitsThu 12:00 — 10 commitsThu 13:00 — 0 commitsThu 14:00 — 8 commitsThu 15:00 — 1 commitsThu 16:00 — 1 commitsThu 17:00 — 2 commitsThu 18:00 — 5 commitsThu 19:00 — 3 commitsThu 20:00 — 1 commitsThu 21:00 — 3 commitsThu 22:00 — 7 commitsThu 23:00 — 15 commitsFri 0:00 — 10 commitsFri 1:00 — 1 commitsFri 2:00 — 2 commitsFri 3:00 — 3 commitsFri 4:00 — 1 commitsFri 5:00 — 0 commitsFri 6:00 — 0 commitsFri 7:00 — 0 commitsFri 8:00 — 1 commitsFri 9:00 — 10 commitsFri 10:00 — 3 commitsFri 11:00 — 15 commitsFri 12:00 — 7 commitsFri 13:00 — 0 commitsFri 14:00 — 5 commitsFri 15:00 — 8 commitsFri 16:00 — 8 commitsFri 17:00 — 23 commitsFri 18:00 — 2 commitsFri 19:00 — 4 commitsFri 20:00 — 4 commitsFri 21:00 — 0 commitsFri 22:00 — 1 commitsFri 23:00 — 0 commitsSat 0:00 — 0 commitsSat 1:00 — 1 commitsSat 2:00 — 0 commitsSat 3:00 — 0 commitsSat 4:00 — 7 commitsSat 5:00 — 9 commitsSat 6:00 — 0 commitsSat 7:00 — 2 commitsSat 8:00 — 0 commitsSat 9:00 — 1 commitsSat 10:00 — 5 commitsSat 11:00 — 5 commitsSat 12:00 — 6 commitsSat 13:00 — 0 commitsSat 14:00 — 1 commitsSat 15:00 — 6 commitsSat 16:00 — 5 commitsSat 17:00 — 11 commitsSat 18:00 — 32 commitsSat 19:00 — 11 commitsSat 20:00 — 8 commitsSat 21:00 — 4 commitsSat 22:00 — 8 commitsSat 23:00 — 10 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Jul 9, 2026daily#19+4
Jun 22, 2026daily#18+13
Jun 21, 2026daily#20+24
Jun 20, 2026daily#24+21
Jun 18, 2026daily#15+16
Jun 17, 2026daily#3+33
Jun 16, 2026daily#6+26
Jun 15, 2026daily#4+38
Jun 14, 2026daily#18+37
Jun 13, 2026daily#25+30
Jun 12, 2026daily#18+21
Jun 10, 2026daily#21+19
Jun 9, 2026daily#12+25
  • freeCodeCamp/freeCodeCamp

    freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.

    453.6K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    385.5K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • affaan-m/ECC

    The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

    238.5K stars · JavaScript