Five concurrent workers turn code structure into an explorable map
Understand Anything runs file analysis with up to 5 concurrent workers, handling 20 to 30 files per batch. Tree-sitter extracts imports, definitions, calls, and inheritance. LLM agents add plain-English summaries, architectural layers, guided tours, and business-domain relationships. The result is a local graph where you can move from a service to its callers, inspect a function, or ask where authentication lives. That is a useful first pass through an unfamiliar repository because it gives each question a visible neighborhood.
A first scan can exhaust a 5-hour model quota
Issue 212 reports a Claude Code user exhausting a 5-hour quota before stage 2 finished. The README gives the same warning in broader terms: initial analysis covers the whole repository and can consume significant tokens. A subscription plan or local model may change the bill, but it does not remove the work. The project does not publish a representative full-run token total, so teams cannot estimate the first scan from repository size alone.
Issue 657 asks for per-phase input, output, cached-token, and wall-clock figures because the existing benchmark deliberately stops before any LLM call. That honesty helps, but the missing cost baseline matters when the README opens with a 200,000-line example. You can scope analysis to one subdirectory, and subsequent runs are incremental by default. Start with the part you own. A full repository scan makes sense after the smaller graph proves useful and the model budget is understood.
What happened when we ran it
Our sandbox installed commit 6df3065 in 35 seconds, pulled 585 packages, and occupied 662 MB on disk. The build completed in 53 seconds. Vitest then ran for 157 seconds and reported 789 passed, 0 failed, and 4 skipped out of 793 tests. The container had 3 CPUs, 8 GB of RAM, Node.js 22, no secrets, and no elevated privileges. Those are clean repository mechanics, especially for a workspace containing native Tree-sitter packages.
The checkout held 515 files, about 74,680 lines of source, and used 33.1 MB before installation. It is a pnpm workspace monorepo with a tests directory and 2 CI workflow files. There is no Dockerfile. Our test method proves that this snapshot installs, compiles, and passes its supplied Vitest suite in a fresh Debian container. It does not measure how many tokens a real codebase consumes, whether a generated explanation is correct, or whether the dashboard saves onboarding time.
A 12,988-file report found silent gaps in the graph
Open issue 692 describes a real run across 12,988 analyzable files where TypeScript aliases left 61 of 70 web files with empty import maps. The reporter also recovered 5,076 Python edges that the initial extraction missed because imports inside functions were not seen. Analyzer agents repaired the submitted run from source, but the deterministic extractor had made parts of the repository look disconnected. That is a serious limit for anyone reading graph absence as proof that two modules do not interact.
Issue 653 documents another failure mode: a documented_by edge is normalized to documents without swapping its endpoints. The graph remains schema-valid and keeps the same edge count, so the reversal can look like a confident fact. Issue 366 reports 194 inbound edges at risk during one incremental update on a roughly 1,150-file project. These are issue-reporter results, separate from our sandbox. They explain why the dashboard belongs beside source search and tests, not above them.
Node.js 18 is enough to view an existing graph locally
Once a teammate has generated and committed the graph, the standalone viewer needs Node.js 18 or newer and does not require an LLM or API key. It serves a read-only dashboard from local disk at a tokenized localhost URL. That split is practical: one person pays the analysis cost, while the rest of the team can search and browse the same artifact. The graph lives under .ua, with legacy .understand-anything directories still supported.
Issue 697 reports a packaging mismatch between plugin 2.9.7 and the latest v2.9.0 viewer release. Versions after v2.9.0 request a viewer URL that returns 404, then fall back to installing dependencies and building the dashboard locally. The dashboard still opens according to the report, but the faster path does not. This is fixable release plumbing rather than a broken analysis engine, and it is exactly the kind of friction a polished quick start should disclose.
A September 28 push matters more than the July release tag
GitHub showed 84,680 stars, 114 open issues, and 195 open pull requests on September 29, 2026. The combined API count is 309 issues and PRs, so it should not be read as 309 bugs. The repository was pushed on September 28. That activity, plus our 789 passing tests, shows an active project with a large review queue. It does not establish that every graph-fidelity report has been resolved.
The latest tagged release was v2.9.0 on July 10, while the plugin package on main had reached 2.9.7. Release v2.9.0 added Figma graphs, the shorter .ua directory, more languages and platforms, and merge warnings for partial output. Main has continued moving since then. Users choosing stability should pin a known version and check its open defects. Contributors need to know that a fix on main may not yet have a matching viewer artifact.
Understand Anything earned a trial because our 35-second install, 53-second build, and 157-second test run all succeeded. Its map is most useful when you are lost and need a route into the code. Verify the route before changing production. Until the project publishes an end-to-end token baseline and closes the silent edge gaps, use the dashboard as an informed guide rather than a record of architectural truth.

