understand-anything
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.
Loading plugin...
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.
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.
[!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.
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.
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.
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.
/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.
/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
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:
/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.
# 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
Understand-Anything works across multiple AI coding platforms.
/plugin marketplace add Egonex-AI/Understand-Anything
/plugin install understand-anything
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."
<platform> values: gemini, codex, opencode, pi, openclaw, antigravity, vibe, vscode, hermes, cline, kimi, trae, nanobot, kiro./install.sh --update./install.sh --uninstall <platform>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 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 plugin install Egonex-AI/Understand-Anything:understand-anything-plugin
curl -fsSL https://raw.githubusercontent.com/Egonex-AI/Understand-Anything/main/install.sh | bash -s kiro
After installation:
kiro-cli chat --agent understand "Analyze this project"~/.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 | 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 |
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/
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.
Static analysis and LLMs do what each does best:
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.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).
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.
A community-made walkthrough by Better Stack.
Made a video, blog post, or tutorial? Open an issue or PR β happy to feature it here.
Contributions are welcome! Here's how to get started:
git checkout -b feature/my-feature)pnpm --filter @understand-anything/core test)Please open an issue first for major changes so we can discuss the approach.
.claude-plugin/
marketplace.json
plugin.json
.copilot-plugin/
plugin.json
.cursor-plugin/
plugin.json
.github/
ISSUE_TEMPLATE/
bug_report.yml
config.yml
feature_request.yml
question.yml
PULL_REQUEST_TEMPLATE.md
workflows/
ci.yml
deploy-homepage.yml
.gitignore
.npmrc
assets/
hero.png
overview.png
CLAUDE.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
docs/
benchmarks/
large-monorepo.md
large-repo-report-1.0.0.schema.json
samples/
understand-anything-pr587-full-sample.json
understand-anything-pr587-full-sample.md
superpowers/
plans/
2026-03-14-phase1-implementation.md
2026-03-14-phase2-implementation.md
2026-03-14-phase3-implementation.md
2026-03-14-phase4-implementation.md
2026-03-15-homepage-implementation.md
2026-03-18-multi-platform-simple-implementation.md
2026-03-21-language-agnostic-plan.md
2026-03-25-dashboard-robustness-impl.md
2026-03-25-dashboard-robustness-plan.md
2026-03-26-theme-system-implementation.md
2026-03-27-token-reduction-impl.md
2026-03-28-understand-anything-extension-impl.md
2026-03-29-homepage-update-impl.md
2026-04-01-business-domain-knowledge-impl.md
2026-04-09-understand-knowledge.md
2026-04-10-understandignore-impl.md
2026-04-15-language-extractors-impl.md
2026-05-03-graph-layout-scaling.md
2026-05-24-semantic-batching-and-output-chunking-impl.md
2026-06-03-language-auto-detection.md
2026-06-24-understand-figma-foundation.md
2026-07-17-benchmark-unsupported-outcomes.md
specs/
2026-03-14-understand-anything-design.md
2026-03-15-homepage-design.md
2026-03-18-multi-platform-simple-design.md
2026-03-21-language-agnostic-design.md
2026-03-26-theme-system-design.md
2026-03-27-token-reduction-design.md
2026-03-28-understand-anything-extension-design.md
2026-03-29-homepage-update-design.md
2026-04-01-business-domain-knowledge-design.md
2026-04-09-understand-knowledge-design.md
2026-04-10-understandignore-design.md
2026-05-03-graph-layout-scaling-design.md
2026-05-24-semantic-batching-and-output-chunking-design.md
2026-06-03-language-auto-detection-design.md
2026-06-24-understand-figma-foundation-design.ko.md
2026-06-24-understand-figma-foundation-design.md
2026-07-17-benchmark-unsupported-outcomes-design.md
eslint.config.mjs
homepage/
.gitignore
.vscode/
extensions.json
launch.json
astro.config.mjs
package.json
public/
.gitkeep
assets/
egonexai/
egonex-logo.png
CNAME
favicon.ico
favicon.png
favicon.svg
fonts/
DMSerifDisplay-Regular.woff2
GeistMonoVariable.woff2
GeistVariable.woff2
Inter-Regular.woff2
Inter-SemiBold.woff2
JetBrainsMono-Regular.woff2
MazzardH-Medium.woff2
MazzardH-Regular.woff2
images/
hero.jpg
overview-domain.gif
overview-structural.gif
overview.png
README.md
src/
components/
CommunityVideo.astro
Features.astro
Footer.astro
Hero.astro
Install.astro
Nav.astro
Problem.astro
Showcase.astro
layouts/
Layout.astro
pages/
index.astro
styles/
global.css
tsconfig.json
install.ps1
install.sh
LICENSE
package.json
pnpm-lock.yaml
pnpm-workspace.yaml
README.md
READMEs/
README.es-ES.md
README.ja-JP.md
README.ko-KR.md
README.ru-RU.md
README.tr-TR.md
README.zh-CN.md
README.zh-TW.md
scripts/
benchmark-large-repo.mjs
generate-large-graph.mjs
lib/
benchmark-stage-worker.mjs
large-repo-benchmark.mjs
SECURITY.md
tests/
benchmark/
test_large_repo_benchmark.test.mjs
test_large_repo_report_schema.test.mjs
install/
platform-table-consistency.test.mjs
skill/
knowledge/
test_parse_knowledge_base.py
understand/
fixtures/
scan-result-3-cliques.json
scan-result-large-community.json
scan-result-merge-respects-non-mergeable.json
scan-result-non-code.json
scan-result-singletons.json
test_compute_batches.test.mjs
test_extract_import_map.test.mjs
test_extract_structure_outcomes.test.mjs
test_merge_batch_graphs.py
test_merge_subdomain_graphs.py
test_scan_project.test.mjs
test_skill_graph_freshness.test.mjs
test_skill_security_snippets.test.mjs
viewer/
test_viewer.test.mjs
tsconfig.json
understand-anything-plugin/
.claude-plugin/
plugin.json
agents/
architecture-analyzer.md
article-analyzer.md
assemble-reviewer.md
design-analyzer.md
domain-analyzer.md
file-analyzer.md
graph-reviewer.md
knowledge-graph-guide.md
project-scanner.md
tour-builder.md
hooks/
auto-update-prompt.md
hooks.json
package.json
packages/
core/
package.json
src/
__tests__/
change-classifier.test.ts
config-schema.test.ts
domain-normalize.test.ts
domain-persistence.test.ts
domain-types.test.ts
embedding-search.test.ts
fingerprint.test.ts
framework-registry.test.ts
graph-freshness-timeout.test.ts
graph-freshness.integration.test.ts
ignore-filter.test.ts
ignore-generator.test.ts
language-lesson.test.ts
language-registry.test.ts
layer-detector.test.ts
normalize-graph.test.ts
parsers.test.ts
plugin-discovery.test.ts
plugin-registry.test.ts
schema.test.ts
search.test.ts
staleness.test.ts
tour-generator.test.ts
analyzer/
graph-builder.test.ts
graph-builder.ts
language-lesson.ts
layer-detector.ts
llm-analyzer.test.ts
llm-analyzer.ts
normalize-graph.ts
tour-generator.ts
change-classifier.ts
embedding-search.ts
figma/
__tests__/
api-source.test.ts
merge.test.ts
parse-document.test.ts
thumbnails.test.ts
tokens.test.ts
index.ts
merge.ts
parse/
parse-document.ts
tokens.ts
source/
api-source.ts
types.ts
thumbnails.ts
fingerprint.ts
ignore-filter.ts
ignore-generator.ts
index.ts
languages/
configs/
batch.ts
c.ts
cpp.ts
csharp.ts
css.ts
csv.ts
dart.ts
docker-compose.ts
dockerfile.ts
env.ts
github-actions.ts
go.ts
graphql.ts
html.ts
index.ts
java.ts
javascript.ts
jenkinsfile.ts
json-config.ts
json-schema.ts
kotlin.ts
kubernetes.ts
lua.ts
makefile.ts
markdown.ts
openapi.ts
php.ts
plaintext.ts
powershell.ts
protobuf.ts
python.ts
restructuredtext.ts
ruby.ts
rust.ts
scala.ts
shell.ts
sql.ts
swift.ts
terraform.ts
toml.ts
typescript.ts
xml.ts
yaml.ts
framework-registry.ts
frameworks/
django.ts
express.ts
fastapi.ts
flask.ts
gin.ts
index.ts
nextjs.ts
rails.ts
react.ts
spring.ts
vue.ts
index.ts
language-registry.ts
types.ts
persistence/
index.ts
persistence.test.ts
plugins/
discovery.ts
extractors/
__tests__/
cpp-extractor.test.ts
csharp-extractor.test.ts
dart-extractor.test.ts
go-extractor.test.ts
java-extractor.test.ts
kotlin-extractor.test.ts
php-extractor.test.ts
python-extractor.test.ts
ruby-extractor.test.ts
rust-extractor.test.ts
scala-extractor.test.ts
swift-extractor.test.ts
typescript-extractor.test.ts
base-extractor.ts
cpp-extractor.ts
csharp-extractor.ts
dart-extractor.ts
go-extractor.ts
index.ts
java-extractor.ts
kotlin-extractor.ts
php-extractor.ts
python-extractor.ts
ruby-extractor.ts
rust-extractor.ts
scala-extractor.ts
swift-extractor.ts
types.ts
typescript-extractor.ts
parsers/
dockerfile-parser.ts
env-parser.ts
graphql-parser.ts
index.ts
json-parser.ts
makefile-parser.ts
markdown-parser.ts
protobuf-parser.ts
shell-parser.ts
sql-parser.ts
terraform-parser.ts
toml-parser.ts
yaml-parser.ts
registry.ts
tree-sitter-plugin.test.ts
tree-sitter-plugin.ts
schema.ts
search.ts
staleness.ts
types.test.ts
types.ts
tsconfig.json
vitest.config.ts
dashboard/
index.html
package.json
public/
favicon.ico
favicon.svg
knowledge-graph.json
scripts/
benchmark-aggregations.mjs
benchmark-layout.mjs
src/
__tests__/
allNodeTypes.test.ts
edgeCategories.test.ts
freshness.test.ts
store-navigation.test.ts
vite-staleness.test.ts
App.tsx
components/
__tests__/
StalenessBanner.test.ts
structuralVisibleTypes.test.ts
Breadcrumb.tsx
CodeViewer.tsx
ContainerNode.tsx
CustomNode.tsx
DiffToggle.tsx
DomainClusterNode.tsx
DomainGraphView.tsx
ExportMenu.tsx
... 186 moreΒ© 2026 Flowy Β· Free and open source
Built for Claude Code Β· Not affiliated with Anthropic