Understand Anything: Công Cụ Phân Tích Codebase
Understand Anything là một plugin cho Claude Code, biến codebase thành đồ thị tri thức có thể khám phá thay vì một đống file phải đọc lần lượt. Tách phần phân tích tất định bằng tree-sitter khỏi phần tóm tắt do LLM viết giúp phía cấu trúc luôn tái lập được, đây là chi tiết quyết định việc bạn có tin được kết quả hay không. Hãy dùng khi mới gia nhập một repo lạ hoặc muốn chia sẻ đồ thị với đồng đội; bỏ qua nếu grep đã đủ trả lời câu hỏi của bạn.
Thách Thức Khi Tiếp Cận Codebase Mới
README của Understand Anything mở đầu bằng một tình huống rất thẳng: bạn vừa gia nhập một đội, codebase có 200.000 dòng code, và không có điểm bắt đầu rõ ràng nào để đọc. Grep hay cây thư mục chỉ tìm ra thứ bạn đã biết trước là cần tìm, còn comment hay tài liệu thiết kế, nếu dự án có, thì cũng cũ đi ngay khi code xung quanh chúng thay đổi. Khoảng cách giữa việc code tồn tại và việc có ai đó giải thích được các phần khớp với nhau ra sao chính là thứ một bản đồ được sinh tự động, có thể khám phá, muốn lấp đầy, thay vì để một người mới phải tự dò từng import qua hàng chục file.
Understand Anything Làm Gì
Understand Anything là một plugin cho Claude Code, chạy một pipeline gồm nhiều agent trên dự án của bạn và dựng ra đồ thị tri thức bao quát file, hàm, class, và phụ thuộc. Tree-sitter trích xuất sự kiện cấu trúc một cách tất định, còn một tầng LLM bổ sung tóm tắt, gắn nhãn tầng kiến trúc, và tour hướng dẫn, xem được qua một dashboard cũng hoạt động với Cursor, VS Code Copilot, Codex, và Gemini CLI.
Tính Năng Chính Để Hiểu Codebase
- ✓Đồ thị cấu trúc tương tác: từng file, từng hàm, và từng class trở thành một node có thể click, hiện tóm tắt bằng ngôn ngữ tự nhiên, các mối quan hệ, và một tour hướng dẫn.
- ✓Chế độ xem domain: một chế độ riêng ánh xạ cùng codebase đó lên logic nghiệp vụ — domain, luồng xử lý, và từng bước — dưới dạng đồ thị nằm ngang, tạo qua /understand-domain.
- ✓Tour hướng dẫn: các bài tham quan được sinh tự động, sắp theo thứ tự phụ thuộc, nhằm dạy kiến trúc theo trình tự thay vì đổ cả đồ thị ra một lúc.
- ✓Tìm kiếm mờ và tìm kiếm ngữ nghĩa trên toàn đồ thị, nên một câu hỏi kiểu 'phần nào xử lý auth?' vẫn ra được các node liên quan mà không cần biết chính xác tên file hay hàm.
- ✓Phân tích tác động của diff qua /understand-diff, cho biết một thay đổi đang chờ commit chạm tới phần nào của đồ thị trước khi bạn commit nó.
- ✓Giao diện dashboard tự điều chỉnh theo người dùng, thay đổi mức độ chi tiết tuỳ bạn là dev junior, PM, hay power user, theo README.
- ✓Pipeline lai giữa tree-sitter và LLM: tree-sitter trích xuất import, export, định nghĩa hàm/class, và các call site một cách tất định, còn tầng LLM bổ sung tóm tắt, gắn tag, và gán tầng kiến trúc.
Cài Đặt Understand Anything
Với chính Claude Code, cài đặt chỉ gồm hai lệnh: /plugin marketplace add Egonex-AI/Understand-Anything, rồi /plugin install understand-anything. Với mọi nền tảng khác được hỗ trợ — Codex, OpenCode, OpenClaw, Antigravity, Gemini CLI, Pi Agent, Vibe CLI, VS Code Copilot, Hermes, Cline, KIMI CLI, Trae, Nanobot, và Kiro — README cung cấp một script cài một dòng lệnh: curl -fsSL .../install.sh | bash trên macOS/Linux, hoặc install.ps1 qua PowerShell trên Windows. Script này clone repo về ~/.understand-anything/repo và tạo symlink đúng cho nền tảng bạn chọn, rồi yêu cầu khởi động lại CLI hoặc IDE sau đó. Cursor và VS Code kèm GitHub Copilot (v1.108 trở lên) tự phát hiện plugin từ .cursor-plugin/plugin.json hoặc .copilot-plugin/plugin.json ngay khi bạn clone repo, không cần thao tác thủ công. Một điều nên biết trước khi gõ lệnh: Codex dùng tiền tố $ thay vì /, nên là $understand, không phải /understand.
Sử Dụng Phân Tích Và Dashboard
Chạy /understand sẽ khởi động pipeline gồm nhiều agent: nó quét dự án, trích xuất file, hàm, class, và phụ thuộc, rồi ghi kết quả vào .ua/knowledge-graph.json (dự án nào đã có sẵn thư mục .understand-anything/ thì vẫn dùng đường dẫn đó). /understand-dashboard sau đó mở một dashboard web tương tác, tô màu theo tầng kiến trúc và tìm kiếm được theo node. Từ đó, /understand-chat trả lời câu hỏi về codebase bằng ngôn ngữ tự nhiên, /understand-explain <path> đào sâu vào một file hoặc hàm cụ thể, /understand-diff kiểm tra một thay đổi đang chờ chạm tới đâu, /understand-onboard sinh hướng dẫn làm quen, và /understand-domain trích xuất chế độ xem domain nghiệp vụ. Chạy lại /understand mặc định là incremental, chỉ phân tích lại các file đã đổi, và --auto-update gắn việc đó vào một post-commit hook để đồ thị tự cập nhật theo mỗi commit. Với một monorepo lớn, giới hạn phạm vi vào một thư mục con (/understand src/frontend) giúp mỗi lần chạy nhẹ hơn, còn --language chuyển tóm tắt sinh ra và giao diện dashboard sang zh, zh-TW, ja, ko, hoặc ru.
Ai Nên Dùng Công Cụ Này?
Understand Anything hợp với một nhà phát triển vừa kế thừa hoặc gia nhập một codebase không do mình viết và muốn có bản đồ trước khi đổi bất cứ thứ gì, nhất là khi đội đã dùng sẵn Claude Code, Cursor, Copilot, hay một trong các nền tảng khác được hỗ trợ. Công cụ này cũng hợp với đội muốn commit đồ thị một lần — README dẫn ví dụ GoogleCloudPlatform/microservices-demo như một repo mẫu có đồ thị đã commit — để nhân sự mới hay người review PR mở bằng viewer độc lập, bỏ qua hoàn toàn pipeline. Bỏ qua nếu dự án của bạn đủ nhỏ để cây thư mục và tính năng tìm symbol trong editor đã trả lời được phần lớn câu hỏi, hoặc nếu không ai trong đội dùng bất kỳ nền tảng AI coding nào trong danh sách để kích hoạt việc phân tích ngay từ đầu.
Điểm mạnh
- ✓Hoạt động trên một danh sách dài các nền tảng AI coding chỉ từ một repo: plugin gốc cho Claude Code, cộng một script cài một dòng lệnh phủ hơn chục CLI và IDE khác.
- ✓Pipeline lai giữ phía cấu trúc luôn tái lập được: các sự kiện tree-sitter (import, call, kế thừa) không đổi giữa các lần chạy, chỉ phần tóm tắt do LLM viết mới thay đổi.
- ✓Phân tích lại incremental sau lần chạy đầu, chỉ quét lại file đã đổi, giúp chi phí token về sau thấp hơn.
- ✓Đồ thị chỉ là một file JSON được commit bình thường, nên đồng đội mở được bằng viewer npx độc lập, chỉ cần Node.js, không cần gọi LLM hay API key.
- ✓Giấy phép MIT, không ràng buộc bản quyền độc quyền nào.
Những Điều Cần Cân Nhắc Và Mức Dùng Token
- △Lần chạy /understand đầy đủ đầu tiên phân tích toàn bộ codebase, và trên dự án lớn lần chạy đó có thể ngốn khá nhiều token; README khuyên dùng gói token/subscription hoặc một model local cho lần chạy khởi tạo này.
- △Chỉ phần tree-sitter trong pipeline là tất định; tầng LLM viết tóm tắt, gắn tag, và gán tầng kiến trúc phụ thuộc vào model bạn trỏ tới, dù local hay hosted.
- △Đồ thị trên 10 MB cần theo dõi bằng git-lfs để commit sạch sẽ, là thêm một công cụ nữa cần đưa vào repo với dự án lớn.
- △README không nêu số phiên bản hay chi tiết mức độ áp dụng ngoài số sao và fork, nên pipeline nhiều agent này vận hành ra sao trong thực tế dùng lâu dài của một đội là điều các dữ kiện này chưa xác nhận được.
- △Viewer dashboard độc lập cần một thư mục .ua/ đã được tạo và commit từ trước, cộng Node.js 18 trở lên; thiếu một trong hai thì không có gì để mở.
Các Cách Tiếp Cận Khác Để Hiểu Code
Câu Hỏi Thường Gặp
Understand Anything là plugin gốc cho Claude Code, và README còn liệt kê script cài một dòng lệnh cho Cursor, VS Code Copilot, Codex, OpenCode, Gemini CLI, Pi Agent, Vibe CLI, Hermes, Cline, KIMI CLI, Trae, Nanobot, và Kiro.
Có. /understand-knowledge trỏ Understand Anything vào một wiki LLM kiểu Karpathy và tạo ra một đồ thị force-directed có nhóm theo cụm, phân tích wikilink từ index.md trước khi một tầng LLM tìm ra các mối quan hệ và thực thể ẩn.
Lần chạy /understand đầy đủ đầu tiên có thể tốn một lượng token đáng kể trên dự án lớn, nên README gợi ý dùng gói token hoặc một model local cho lần chạy đó. Sau đó, Understand Anything chỉ phân tích lại file đã đổi, và một monorepo có thể giới hạn phạm vi vào một thư mục con để mỗi lần chạy nhẹ hơn.
Có. Commit thư mục .ua/ (trừ các file scratch intermediate/ và diff-overlay.json) cho phép đồng đội mở đồ thị bằng viewer npx độc lập, chỉ cần Node.js, không cần Claude Code hay gọi LLM.
Understand Anything được phát hành theo giấy phép MIT, theo thông tin trên repository GitHub của dự án.
Có. Với các thiết lập cần riêng tư hoặc dùng trong doanh nghiệp, README hướng dẫn chạy Understand Anything với một nhà cung cấp model local như Ollama thay vì một LLM hosted.
Trường hợp sử dụng tốt nhất
- •Gia nhập một đội với codebase lớn, còn xa lạ, cần một bản đồ khởi điểm thay vì đọc code mà không biết bắt đầu từ đâu.
- •Commit đồ thị đã tạo để nhân sự mới hoặc người review PR mở ra bằng viewer độc lập, bỏ qua hoàn toàn bước chạy pipeline.
- •Kiểm tra một thay đổi rủi ro thực sự chạm tới đâu trước khi commit, qua /understand-diff.
- •Biến một wiki LLM kiểu Karpathy thành một đồ thị tri thức có thể duyệt, được nhóm theo cụm, bằng /understand-knowledge.
- •Tự động sinh tài liệu hướng dẫn làm quen cho những người vừa gia nhập đội, qua /understand-onboard.
Repo liên quan
Muốn nghe thêm một ý kiến về Understand-Anything?
Hỏi một AI đọc được trang này — một cú bấm là có ngay nhận định về Understand-Anything.
