Live on Product Hunt today
Today we're launching Understand Anything on Product Hunt. If you've ever opened a 50k-line repo and had no idea where to start, that's exactly the moment we're trying to fix.
Come say hi on the launch page — we're hanging out in the comments answering questions, sharing demos, and collecting the next round of feature requests.
https://www.producthunt.com/products/understand-anything?utm_source=github&utm_medium=readme
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.MobileLayoutis now wrapped in the provider so mobile screens localize too. - Output language read from the same
outputLanguageconfig key for consistency between generated content and chrome.
Unified install script (#123)
Replaced the per-platform installer pile with a single install.sh / install.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:
importsedges recovered when file-analyzer batches drop them (05fd423).tested_bymalformed tags coerced before adding (fdfa331, issue #113).- File-analyzer preserves language and falls back when imports unresolved (
7834f9b). - Canonical edge direction persisted during merge so dedup doesn't lose half the edges (
f71bad5, in 2.7.1). - Fingerprints merge made unambiguous in Phase 3d so re-runs converge (
dd8b724, in 2.7.2). .understandignoreexclusions actually applied in Phase 0 ofauto-update(5304ff0).build-fingerprints.mjsbundled and Phase 7 reordered so incremental updates work on fresh installs (e7af9ae, in 2.7.3).
Auto-update / incremental pipeline (2.7.x line)
Structural fingerprinting (--auto-update / --no-auto-update) became real in the 2.7 line: only changed files re-run through analysis, fingerprints merge deterministically, and Phase 0 honors .understandignore. Big speedup on repeat runs against large repos.
Dashboard ACCESS_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 since v2.5.0
Huge thanks to everyone who improved the project this cycle:
- #147 — @rustanacexd: resolve
/understand-domainplugin root at runtime so symlink installs find their agent prompts. - #139 — @nieao: Windows path handling and zod schema null compatibility in
/understand-knowledge. - #127 — @3ng7n33r: add Mistral vibe CLI to the install script.
- #124 — @tipich: make
/understandwork on Windows with pnpm 10. - #121 — @Buzzwoo-Ecom-Team: customizable heading font.
- #117 — @DenisBalan: fix dashboard URL format in
vite.config.ts. - #132 — @Xingkai98: file/class dual-view toggle.
- #142, #145 — @zhushen12580:
--languageparameter and the documentation pass for it. - #114 — fix tour navigation glitches across layers (incl.
TourFitViewflicker, pending-focus-container reset, refit timeout no longer freezing). - #112 / issue #102 — quadratic per-layer aggregations fixed (
O(N+K)); kills the slowdown on large graphs. - #138 — git worktree path handling: skills now redirect
PROJECT_ROOTout of worktrees so they write to the main repo.
Other improvements
- Discord + enterprise contact added to the homepage; author homepage link surfaced (9ab6724, 5cef66c).
- Favicon matches homepage branding (6e0d1c1).
- Translated READMEs consolidated under
READMEs/(b9ca060). code-review-feedbackpass for the--languagePR (#145 stack).
Compat
- No graph schema changes since v2.5.0. Existing
.understand-anything/knowledge-graph.jsonfiles load unchanged. - Install path: the new unified
install.sh/install.ps1supersedes the per-platform installers. The old scripts still work but are no longer the documented path. outputLanguageconfig key is now the single source of truth for both generated content and dashboard UI language.
Full changelog
v2.5.0...v2.7.3