Understand Anything plugin

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

  • 88,827 ★ on the repository
  • Last commit
  • MIT
Plugin

Broad access

Why this level

  • 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
All reasons and checks

egonex-ai/understand-anything

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add plugins/understand-anything

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • 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

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.

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.

Discussion

No questions or reviews yet.

Plugins

The /graphify skill builds a knowledge graph of a project's code, docs and PDFs so the agent queries the graph instead of grepping

SkillExtended access138.5KRepository stars
Editors’ pick

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

PluginExtended access308.9KRepository stars

codesight maps a project in one run: routes, DB models, dependencies, env vars. It gives the map to an agent as files or through an MCP server

MCP serverExtended access1.4KRepository stars

Gives the agent an understanding of your repository: it indexes the code and answers questions about it in Claude Code, Cursor, Codex, Windsurf and more

PluginExtended access1.4KRepository stars
Editors’ pick

Indexes a codebase into a knowledge graph and gives the agent call chains, change blast radius and code search over MCP

MCP serverExtended access48.1KRepository stars

A plugin marketplace and installer for the full dev loop: task selection, review, cleanup, PRs and releases

PluginBroad access1KRepository stars

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.

README badge

Original 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)

Report a problem

Foxx AIUnderstand Anything
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.