Understand Anything

A plugin that builds a knowledge graph of a codebase or wiki and opens an interactive dashboard with search, tours and diff impact

PluginHigh risk

egonex-ai/understand-anything

Install

/plugin marketplace add Egonex-AI/Understand-Anything
/plugin install understand-anything

This is third-party code. Review the repository files before installing.

What it does

The /understand command runs a multi-agent pipeline that scans the project and builds a graph of files, functions, classes and dependencies in .ua/knowledge-graph.json. /understand-dashboard opens a web dashboard color-coded by layer, with fuzzy and semantic search and node explanations. There are commands for code Q&A, change impact analysis, onboarding guides, business domains and Karpathy-style wikis. Later runs are incremental, and descriptions can be generated in Russian.

Who it is for. Developers ramping up on a large unfamiliar codebase and tech leads preparing onboarding.

Good fit when

  • You joined a project with hundreds of thousands of lines and do not know where to start
  • You need to see which parts of the system your diff affects
  • You are preparing an onboarding guide for new hires
  • You want business logic mapped into domains and flows

Not a fit when

  • A small project that is easier to read in full
  • A tight token budget: the first analysis of a large project uses a lot

Example request

/understand-chat How does the payment flow work in this project

Limitations

The first /understand run on a large project uses a significant number of tokens, and the authors suggest a subscription or a local model. For huge monorepos analysis can be scoped to a subfolder. Graphs over 10 MB are best tracked with git-lfs.

How to disable. Remove the plugin in Claude Code. For other platforms run ./install.sh --uninstall with the platform name. Disable graph auto-update with /understand --no-auto-update.

Security check

  • Installation for several platforms runs via curl | bash
  • The --auto-update flag installs a post-commit hook
  • Analysis sends large amounts of code to the model

README in short

Understand Anything is a Claude Code plugin from Egonex that turns a codebase or docs into an interactive knowledge graph. The README covers dashboard features, a step-by-step quick start and installation for many platforms via install.sh. A section explains committing the graph and viewing it without an LLM. MIT license.

SKILL.md

---
name: understand
description: Analyze a codebase to produce an interactive knowledge graph for understanding architecture, components, and relationships
argument-hint: ["[path] [--full|--auto-update|--no-auto-update|--review|--language <lang>|--exclude <patterns>]"]
---

# /understand

Analyze the current codebase and produce a `knowledge-graph.json` file in the project's data directory (`.ua/`, or the legacy `.understand-anything/` when it already exists). This file powers the interactive dashboard for exploring the project's architecture.

## Options

- `$ARGUMENTS` may contain:
  - `--full` — Force a full rebuild, ignoring any existing graph
  - `--auto-update` — Enable automatic graph updates on commit (writes `autoUpdate: true` to `$UA_DIR/config.json`)
  - `--no-auto-update` — Disable automatic graph updates (writes `autoUpdate: false` to `$UA_DIR/config.json`)
  - `--review` — Run full LLM graph-reviewer instead of inline deterministic validation
  - `--language <lang>` — Generate all textual content (summaries, descriptions, tags, titles, languageNotes, languageLesson) in the specified language. Accepts ISO 639-1 codes (`zh`, `ja`, `ko`, `en`, `es`, `fr`, `de`, etc.) or friendly names (`chinese`, `japanese`, `korean`, `english`, `spanish`, etc.). Locale variants supported: `zh-TW`, `zh-HK`, etc. Defaults to `en` (English). Stores preference in `$UA_DIR/config.json` for consistency across incremental updates.
  - `--exclude <patterns>` — Comma-separated glob patterns for additional files/directories to exclude from analysis (e.g., `--exclude "tests/*,docs/*"`). These patterns take highest priority over built-in defaults and `.understandignore` rules. Supports gitignore syntax including `!` negation.
  - A directory path (e.g. `/path/to/repo` or `../other-project`) — Analyze the given directory instead of the current working directory

---

## Progress Reporting

Throughout execution, report progress to the user at each phase transition and during batch processing. This keeps users informed on large codebases where analysis can take a long time.

- **Phase transitions:** At the start of each phase, print a status line:
  > `[Phase N/7] <phase name>...`
  >
  > Example: `[Phase 2/7] Analyzing files (12 batches)...`

- **Batch progress:** During Phase 2, report each batch with its index and total:
  > `Analyzing batch X/N (files: foo.ts, bar.ts, ...)` (list up to 3 filenames, then `...` if more)

- **Phase completion:** When a phase finishes, briefly confirm:
  > `Phase N complete. <one-line summary of result>`
  >
  > Example: `Phase 1 complete. Found 247 files across 3 languages.`

---

## Phase 0 — Pre-flight

Determine whether to run a full analysis or incremental update.

1. **Resolve `PROJECT_ROOT`:**
   - Parse `$ARGUMENTS` for a non-flag token (any argument that does not start with `--`). If found, treat it as the target directory path.
     - If the path is relative, resolve it against the current working directory.
     - Verify the resolved path exists and is a directory (run `test -d <path>`). If it does not exist or is not a directory, report an error to the user and **STOP**.
     - Set `PROJECT_ROOT` to the resolved absolute path.
   - If no directory path argument is found, set `PROJECT_ROOT` to the current working directory.
   - **Worktree redirect.** If `PROJECT_ROOT` is inside a git worktree (not the main checkout), redirect output to the main repository root. Worktrees managed by Claude Code are ephemeral — the data directory (`.ua/`, or legacy `.understand-anything/`) written there is destroyed when the session ends, taking the knowledge graph with it (issue #133). Detect a worktree by comparing `git rev-parse --git-dir` against `git rev-parse --git-common-dir`; in a normal checkout or submodule they resolve to the same path, in a worktree they differ and the parent of `--git-common-dir` is the main repo root.

     ```bash
     COMMON_DIR=$(git -C "$PROJECT_ROOT" rev-parse --git-common-dir 2>/dev/null)
     GIT_DIR=$(git -C "$PROJECT_ROOT" rev-parse --git-dir 2>/dev/null)
     if [ -n "$COMMON_DIR" ] && [ -n "$GIT_DIR" ]; then
       COMMON_ABS=$(cd "$PROJECT_ROOT" && cd "$COMMON_DIR" 2>/dev/null && pwd -P)
       GIT_ABS=$(cd "$PROJECT_ROOT" && cd "$GIT_DIR" 2>/dev/null && pwd -P)

FAQ

Can I open the graph without Claude Code?

Yes, once the graph is committed teammates can open the dashboard via npx with the viewer package from releases. Only Node.js 18+ is needed, no LLM or keys.

Which languages are supported for output?

en, zh, zh-TW, ja, ko and ru via the --language flag.

Editors’ pick

A skills library that gives coding agents a development process: brainstorming, planning, TDD, subagents and code review

PluginMedium risk286.6K
Editors’ pick

Small composable skills for engineering with agents: plan grilling, TDD, bug diagnosis, code review and architecture

SkillLow risk262K

Reference MCP servers

Model Context Protocol servers

Editors’ pick

Official reference MCP servers: Filesystem, Fetch, Git, Memory, Sequential Thinking, Time and Everything

MCP serverMedium risk90.3K
Editors’ pick

Up-to-date, version-specific library docs and code examples in your agent's context, via MCP or a CLI plus skill

MCP serverMedium risk62K