Biến mọi codebase, cơ sở tri thức hay tài liệu thành đồ thị tri thức tương tác bạn có thể khám phá, tìm kiếm và đặt câu hỏi. Hoạt động với Claude Code, Codex, Cursor, Copilot, Gemini CLI, và nhiều hơn nữa.
Understand Anything. Understand Anyone. AI nên giúp con người, không phải thay thế họ.
---
**Bạn vừa gia nhập một nhóm mới. Codebase có 200.000 dòng code. Bạn bắt đầu từ đâu?**
Understand Anything là một [plugin cho Claude Code](https://code.claude.com/docs/en/plugins-reference#plugins-reference) phân tích dự án của bạn bằng pipeline đa tác nhân, xây dựng đồ thị tri thức của mọi tệp, hàm, lớp và phụ thuộc, sau đó cung cấp một dashboard tương tác để bạn khám phá trực quan. Ngừng đọc code mù quáng. Bắt đầu thấy bức tranh tổng thể.
> **Mục tiêu không phải là một đồ thị khiến bạn choáng ngợp vì codebase phức tạp thế nào — mà là một đồ thị âm thầm dạy bạn cách mọi mảnh ghép khớp với nhau.**
---
## ✨ Tính năng
> [!NOTE]
> **Muốn bỏ qua phần đọc?** Hãy thử [bản demo trực tiếp](https://understand-anything.com/demo/) trên [trang chủ](https://understand-anything.com/) của chúng tôi — một dashboard tương tác đầy đủ bạn có thể kéo, phóng to, tìm kiếm và khám phá ngay trong trình duyệt.
### Khám phá đồ thị cấu trúc
Duyệt codebase của bạn như một đồ thị tri thức tương tác — mọi tệp, hàm và lớp là một nút bạn có thể nhấp, tìm kiếm và khám phá. Chọn bất kỳ nút nào để xem tóm tắt, quan hệ và các hành trình hướng dẫn.
### Hiểu logic nghiệp vụ
Chuyển sang chế độ xem miền (domain view) và thấy cách code của bạn ánh xạ tới các quy trình nghiệp vụ thực tế — các miền, luồng và bước được trình bày dưới dạng đồ thị ngang.
### Phân tích cơ sở tri thức
Trỏ `/understand-knowledge` vào một [wiki LLM kiểu Karpathy](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) và nhận đồ thị tri thức dạng force-directed với phân cụm cộng đồng. Trình phân tích tất định trích xuất wikilink và danh mục từ `index.md`, sau đó các tác nhân LLM khám phá quan hệ ngầm, trích xuất thực thể và làm rõ các tuyên bố — biến wiki của bạn thành một đồ thị điều hướng được của các ý tưởng kết nối với nhau.
🧭 Hành trình hướng dẫn
Tự động tạo các bài hướng dẫn kiến trúc, được sắp xếp theo phụ thuộc. Học codebase theo đúng thứ tự.
🔍 Tìm kiếm Fuzzy & Semantic
Tìm mọi thứ theo tên hoặc theo ý nghĩa. Tìm kiếm "phần nào xử lý auth?" và nhận kết quả phù hợp trên toàn đồ thị.
📊 Phân tích tác động Diff
Xem những phần nào của hệ thống bị ảnh hưởng bởi thay đổi của bạn trước khi commit. Hiểu các hiệu ứng lan truyền khắp codebase.
🎭 Giao diện thích ứng theo vai trò
Dashboard tự động điều chỉnh mức độ chi tiết dựa trên bạn là ai — dev mới, PM, hay người dùng cao cấp.
🏗️ Trực quan hóa lớp
Tự động nhóm theo lớp kiến trúc — API, Service, Data, UI, Utility — với chú thích màu sắc.
📚 Khái niệm ngôn ngữ
12 mẫu lập trình (generics, closures, decorators, v.v.) được giải thích trong ngữ cảnh nơi chúng xuất hiện.
---
## 🚀 Bắt đầu nhanh
### 1. Cài đặt plugin
```bash
/plugin marketplace add Egonex-AI/Understand-Anything
/plugin install understand-anything
```
> **Dùng model cục bộ?** Vì lý do riêng tư hoặc cho doanh nghiệp, hãy trỏ nền tảng của bạn tới một nhà cung cấp model cục bộ như [Ollama](https://docs.ollama.com/integrations) — làm theo hướng dẫn tích hợp của họ để đổi nhà cung cấp model.
### 2. Phân tích codebase của bạn
```bash
/understand
```
Pipeline đa tác nhân quét dự án của bạn, trích xuất mọi tệp, hàm, lớp và phụ thuộc, sau đó xây dựng đồ thị tri thức được lưu vào `.ua/knowledge-graph.json`. (Các dự án đã có thư mục `.understand-anything/` sẽ tiếp tục dùng thư mục đó — nó vẫn là thư mục dữ liệu khi hiện diện, nên không cần di chuyển gì.)
> **Lưu ý về lượng token:** Lần chạy `/understand` đầu tiên phân tích toàn bộ codebase của bạn và có thể tiêu tốn lượng token đáng kể với dự án lớn. Chúng tôi khuyến nghị chạy nó bằng gói token / subscription, hoặc dùng model cục bộ (xem ở trên) cho lần khởi tạo. Các lần chạy sau mặc định là tăng dần — chỉ phân tích lại những tệp đã thay đổi — nên tốn ít token hơn nhiều.
**Đầu ra bản địa hóa:** Sử dụng `--language` để tạo nội dung bằng ngôn ngữ bạn muốn:
```bash
# Tạo nội dung tiếng Trung (知识图节点描述和 Dashboard UI)
/understand --language zh
# Các ngôn ngữ hỗ trợ: en (mặc định), zh, zh-TW, ja, ko, ru, vi
```
Ở **lần chạy đầu tiên** trong một dự án — khi bạn không truyền `--language` và chưa có ngôn ngữ nào được lưu — `/understand` sẽ phát hiện ngôn ngữ bạn đang trò chuyện. Nếu không phải tiếng Anh, nó sẽ hỏi bạn xác nhận (hoặc ghi đè) trước khi tạo nội dung; các cuộc trò chuyện tiếng Anh không bị ảnh hưởng. Lựa chọn của bạn được lưu vào `.ua/config.json` và tái sử dụng trong mọi lần chạy sau.
Tham số `--language` ảnh hưởng đến:
- Tóm tắt và mô tả nút trong đồ thị tri thức
- Nhãn, nút bấm và chú thích trên Dashboard UI
- Giải thích hành trình hướng dẫn
### 3. Khám phá dashboard
```bash
/understand-dashboard
```
Một dashboard web tương tác hiện ra với codebase được trực quan hóa dưới dạng đồ thị — tô màu theo lớp kiến trúc, có thể tìm kiếm và nhấp vào. Chọn bất kỳ nút nào để xem code, quan hệ và giải thích tự nhiên của nó.
### 4. Tiếp tục học
```bash
# Hỏi bất kỳ điều gì về codebase
/understand-chat Luồng thanh toán hoạt động thế nào?
# Phân tích tác động của các thay đổi hiện tại
/understand-diff
# Đi sâu vào một tệp hoặc hàm cụ thể
/understand-explain src/auth/login.ts
# Tạo hướng dẫn onboarding cho thành viên mới
/understand-onboard
# Trích xuất kiến thức miền nghiệp vụ (domains, flows, steps)
/understand-domain
# Phân tích cơ sở tri thức wiki LLM kiểu Karpathy
/understand-knowledge ~/path/to/wiki
# Chạy lại bất kỳ lúc nào — mặc định tăng dần (chỉ phân tích lại các tệp đã thay đổi)
/understand
# Tự động cập nhật sau mỗi commit qua post-commit hook
/understand --auto-update
# Giới hạn phạm vi vào một thư mục con (cho monorepo lớn)
/understand src/frontend
```
---
## 🌐 Cài đặt đa nền tảng
Understand-Anything hoạt động trên nhiều nền tảng AI coding.
### Claude Code (Bản địa)
```bash
/plugin marketplace add Egonex-AI/Understand-Anything
/plugin install understand-anything
```
### Cài đặt một dòng (Codex / OpenCode / OpenClaw / Antigravity / Gemini CLI / Pi Agent / Vibe CLI / VS Code Copilot / Hermes / Cline / KIMI CLI / Trae / Nanobot / Kiro)
**macOS / Linux:**
```bash
curl -fsSL https://raw.githubusercontent.com/Egonex-AI/Understand-Anything/main/install.sh | bash
# hoặc bỏ qua lời nhắc bằng cách truyền nền tảng:
curl -fsSL https://raw.githubusercontent.com/Egonex-AI/Understand-Anything/main/install.sh | bash -s codex
```
**Windows (PowerShell):**
```powershell
iwr -useb https://raw.githubusercontent.com/Egonex-AI/Understand-Anything/main/install.ps1 | iex
```
Trình cài đặt clone repo vào `~/.understand-anything/repo` và tạo symlink phù hợp cho nền tảng đã chọn. Khởi động lại CLI/IDE sau đó.
> **Lưu ý về cách gọi skill:** tiền tố gọi khác nhau tùy nền tảng. Hầu hết nền tảng dùng slash command (`/understand`), nhưng **Codex dùng `$`** — gõ `$understand`, không phải `/understand`. Nếu nền tảng của bạn không nhận cả hai tiền tố, chỉ cần hỏi bằng ngôn ngữ tự nhiên: *"Use the understand skill to analyze this project."*
- Các giá trị `` được hỗ trợ: `gemini`, `codex`, `opencode`, `pi`, `openclaw`, `antigravity`, `vibe`, `vscode`, `hermes`, `cline`, `kimi`, `trae`, `nanobot`, `kiro`
- Cập nhật sau:
- macOS / Linux: `./install.sh --update`
- Windows: `& "$HOME/.understand-anything/repo/install.ps1" -Update`
- Gỡ cài đặt:
- macOS / Linux: `./install.sh --uninstall `
- Windows: `& "$HOME/.understand-anything/repo/install.ps1" -Uninstall `
### Cursor
Cursor tự động phát hiện plugin qua `.cursor-plugin/plugin.json` khi repo này được clone. Không cần cài đặt thủ công — chỉ cần clone và mở trong Cursor.
Nếu tự động phát hiện không hoạt động, hãy cài đặt thủ công: mở **Cursor Settings → Plugins**, dán `https://github.com/Egonex-AI/Understand-Anything` vào ô tìm kiếm và thêm từ đó.
### VS Code + GitHub Copilot
VS Code với GitHub Copilot (v1.108+) tự động phát hiện plugin qua `.copilot-plugin/plugin.json` khi repo này được clone. Không cần cài đặt thủ công — chỉ cần clone và mở trong VS Code.
Để sử dụng skill cá nhân (khả dụng trên mọi dự án), chạy `install.sh` ở trên với nền tảng `vscode`.
### Copilot CLI
```bash
copilot plugin install Egonex-AI/Understand-Anything:understand-anything-plugin
```
### Kiro CLI / IDE
```bash
curl -fsSL https://raw.githubusercontent.com/Egonex-AI/Understand-Anything/main/install.sh | bash -s kiro
```
Sau khi cài đặt:
- **Kiro CLI**: `kiro-cli chat --agent understand "Analyze this project"`
- **Kiro IDE**: các skill được symlink vào `~/.kiro/skills/` và agent `understand` được ghi vào `~/.kiro/agents/understand.json`, nên cả hai đều khả dụng sau khi khởi động lại IDE.
Để sử dụng skill cá nhân (khả dụng trên mọi dự án), chạy `install.sh` ở trên với nền tảng `kiro`.
### Tương thích nền tảng
| Nền tảng | Trạng thái | Phương thức cài đặt |
|----------|------------|---------------------|
| Claude Code | ✅ Bản địa | Plugin marketplace |
| Cursor | ✅ Hỗ trợ | Tự động phát hiện |
| VS Code + GitHub Copilot | ✅ Hỗ trợ | Tự động phát hiện |
| Copilot CLI | ✅ Hỗ trợ | Plugin install |
| Codex | ✅ Hỗ trợ | `install.sh codex` |
| OpenCode | ✅ Hỗ trợ | `install.sh opencode` |
| OpenClaw | ✅ Hỗ trợ | `install.sh openclaw` |
| Antigravity | ✅ Hỗ trợ | `install.sh antigravity` |
| Gemini CLI | ✅ Hỗ trợ | `install.sh gemini` |
| Pi Agent | ✅ Hỗ trợ | `install.sh pi` |
| Vibe CLI | ✅ Hỗ trợ | `install.sh vibe` |
| Hermes | ✅ Hỗ trợ | `install.sh hermes` |
| Cline | ✅ Hỗ trợ | `install.sh cline` |
| KIMI CLI | ✅ Hỗ trợ | `install.sh kimi` |
| Trae | ✅ Hỗ trợ | `install.sh trae` |
| Nanobot | ✅ Hỗ trợ | `install.sh nanobot` |
| Kiro CLI / IDE | ✅ Hỗ trợ | `install.sh kiro` |
---
## 📦 Chia sẻ đồ thị với nhóm
Đồ thị chỉ là JSON — **commit một lần, đồng đội bỏ qua pipeline**. Rất hữu ích cho onboarding, đánh giá PR và docs-as-code.
> **Ví dụ:** [GoogleCloudPlatform/microservices-demo](https://github.com/GoogleCloudPlatform/microservices-demo) — Go / Java / Python / Node tham khảo kèm đồ thị đã commit.
**Nên commit những gì:** mọi thứ trong `.ua/` *ngoại trừ* `intermediate/` và `diff-overlay.json` (đó là dữ liệu tạm địa phương). (Các dự án cũ dùng `.understand-anything/` — hãy thay tên thư mục tương ứng ở dưới nếu đó là thư mục hiện diện.)
```gitignore
.ua/intermediate/
.ua/diff-overlay.json
```
**Giữ nó luôn mới:** bật `/understand --auto-update` — một post-commit hook cập nhật dần đồ thị để mỗi commit luôn đi kèm đồ thị tương ứng. Hoặc chạy lại `/understand` thủ công trước các bản phát hành.
**Đồ thị lớn (10 MB+):** theo dõi với **git-lfs**.
```bash
git lfs install
git lfs track ".ua/*.json"
git add .gitattributes .ua/
```
### Xem dashboard mà không cần Claude Code
Khi đồ thị đã được tạo và commit, bất kỳ ai trong nhóm cũng có thể mở nó bằng một lệnh — không cần Claude Code, không cần LLM, không cần API key. Chỉ cần Node.js (>= 18):
```bash
npx https://github.com/Egonex-AI/Understand-Anything/releases/latest/download/understand-anything-viewer.tgz /path/to/analyzed/project
```
Terminal sẽ in ra URL kèm token (`http://127.0.0.1:5173/?token=…`) và mở dashboard tương tác đầy đủ trong trình duyệt. Thư mục dự án (mặc định: thư mục hiện tại) phải chứa thư mục dữ liệu đã commit (`.ua/`, hoặc `.understand-anything/` cũ). Mọi thứ được phục vụ chỉ đọc từ ổ đĩa cục bộ — không có lệnh gọi LLM, không có dữ liệu nào rời khỏi máy của bạn.
Đang làm việc từ bản clone? `pnpm install && pnpm --filter @understand-anything/core build`, sau đó `GRAPH_DIR=/path/to/analyzed/project pnpm dev:dashboard` cũng cho kết quả tương tự qua Vite dev server.
---
## 🔧 Bên trong
### Kết hợp Tree-sitter + LLM
Phân tích mã tĩnh và LLM làm điều mỗi bên làm tốt nhất:
- **Tree-sitter (tất định)** — phân tích mã nguồn thành cây cú pháp cụ thể và trích xuất các sự kiện cấu trúc: import, export, định nghĩa hàm/lớp, vị trí gọi, kế thừa. Được giải trước thành `importMap` trong giai đoạn quét và truyền cho file-analyzer để chúng không phải suy lại import từ mã nguồn. Cùng đầu vào → cùng đầu ra, mỗi lần chạy. Cũng hỗ trợ phát hiện thay đổi dựa trên vân tay (fingerprint) cho cập nhật tăng dần.
- **LLM (ngữ nghĩa)** — đọc cấu trúc đã phân tích cùng với mã nguồn gốc để tạo ra những thứ trình phân tích không thể: tóm tắt tiếng Việt tự nhiên, thẻ, gán lớp kiến trúc, ánh xạ miền nghiệp vụ, hành trình hướng dẫn, đánh dấu khái niệm ngôn ngữ.
Sự tách biệt này là lý do đồ thị có thể tái tạo được về mặt cấu trúc (cùng code luôn cho cùng các cạnh) trong khi vẫn nắm bắt được ý định về mặt ngữ nghĩa (một tệp *dùng để làm gì*, không chỉ nó import cái gì).
### Đường ống đa tác nhân
Lệnh `/understand` điều phối 5 tác nhân chuyên biệt, `/understand-domain` thêm tác nhân thứ 6, và `/understand-knowledge` thêm tác nhân thứ 7:
| Tác nhân | Vai trò | Được dùng bởi |
| ----------------------- | -------------------------------------------------------------------------------------------------------------------- | ----------------------- |
| `project-scanner` | Khám phá tệp, phát hiện ngôn ngữ và framework | `/understand` |
| `file-analyzer` | Trích xuất hàm, lớp, import; tạo nút và cạnh đồ thị | `/understand` |
| `architecture-analyzer` | Xác định lớp kiến trúc | `/understand` |
| `tour-builder` | Tạo hành trình học có hướng dẫn | `/understand` |
| `graph-reviewer` | Kiểm tra tính đầy đủ và toàn vẹn tham chiếu của đồ thị. Chạy nội tuyến mặc định; dùng `--review` để LLM đánh giá đầy đủ | `/understand` |
| `domain-analyzer` | Trích xuất miền nghiệp vụ, luồng và bước xử lý | `/understand-domain` |
| `article-analyzer` | Trích xuất thực thể, tuyên bố và quan hệ ngầm từ bài viết wiki | `/understand-knowledge` |
Các file-analyzer chạy song song (tối đa 5 đồng thời, 20-30 tệp mỗi đợt).
Pipeline cũng hỗ trợ cập nhật tăng dần: chỉ phân tích lại các tệp đã thay đổi kể từ lần chạy trước.
---
## 🎥 Cộng đồng
Một bài hướng dẫn từ cộng đồng bởi **Better Stack**.
Đã làm video, bài blog hay hướng dẫn? Mở issue hoặc PR — rất vui được giới thiệu ở đây.
---
## 🤝 Đóng góp
Mọi đóng góp đều được chào đón! Đây là cách bắt đầu:
1. Fork repository
2. Tạo feature branch (`git checkout -b feature/my-feature`)
3. Chạy kiểm thử (`pnpm --filter @understand-anything/core test`)
4. Commit thay đổi và mở pull request
Vui lòng mở issue trước cho các thay đổi lớn để chúng ta có thể thảo luận về hướng tiếp cận.
---
Đừng đọc code mù quáng. Hãy bắt đầu hiểu mọi thứ.
## Star History
Cảm ơn tất cả những ai đã sử dụng và đóng góp — biết rằng điều này giúp mọi người tiết kiệm thời gian là điều khiến nó đáng được xây dựng.