分析项目代码、配置、文档和基础设施文件,生成可交互探索的结构与依赖关系图。支持日语说明、文件排除,以及根据变更更新已有分析结果。
- 了解首次接触的项目结构
- 检查组成部分之间的依赖
- 用日语生成设计说明
启动交互式网页仪表板,以图形查看已分析代码库的结构和关系。可显示当前工作目录或指定项目的数据,并提供包含访问令牌的本地网址。
Launch the interactive web dashboard to visualize a codebase's knowledge graph
在交互式网页仪表板中显示由Understand Anything分析生成的代码库知识图谱。知识图谱是用图形表示代码结构及其关系的数据。可以针对当前工作目录或指定项目启动,并获得包含访问令牌的网址,以及当前显示数据的存储位置。
适合在浏览器中查看分析结果,了解代码库的结构。也可以打开存放在其他位置、已经完成分析的项目。仪表板在后台运行,启动后仍可继续工作。
/understand-dashboard显示当前项目。”/understand-dashboard /path/to/project打开指定项目。”需要先运行/understand完成分析,生成knowledge-graph.json。如果存在.understand-anything/,优先使用其中的数据,否则读取.ua/。启动时使用Node和npx;如果无法获取已发布的查看器,则通过pnpm安装依赖并构建所需组件。访问数据时,网址中的?token=部分不可省略。
本介绍由 AI(OpenAI Codex)根据公开的 SKILL.md 撰写。准确的规格请查看下方原文。
AI 仅根据 SKILL.md 的内容,从 4 个方面进行了评估。星标数和热度不计入评估。
总分按每项 A=25 分、B=15 分、C=5 分相加。 由 AI(OpenAI Codex)于 2026年10月21日 评估。仅供参考,安装前请同时查看原文。
安装前可以查看交给 AI 代理的指令内容。
Start the Understand Anything dashboard to visualize the knowledge graph for the current project.
Determine the project directory and data directory:
$ARGUMENTS contains a path, use that as the project directory.understand-anything/ data directory when it exists, otherwise use .ua/Use the Bash tool to resolve:
PROJECT_ARG="$ARGUMENTS"
if [ -n "$PROJECT_ARG" ]; then
PROJECT_DIR=$(cd "$PROJECT_ARG" 2>/dev/null && pwd -P)
else
PROJECT_DIR=$(pwd -P)
fi
if [ -z "$PROJECT_DIR" ] || [ ! -d "$PROJECT_DIR" ]; then
echo "Error: Project directory not found: ${PROJECT_ARG:-$PWD}"
exit 1
fi
if [ -d "$PROJECT_DIR/.understand-anything" ]; then
UA_DIR="$PROJECT_DIR/.understand-anything"
else
UA_DIR="$PROJECT_DIR/.ua"
fi
Check that $UA_DIR/knowledge-graph.json exists in the project directory. If not, tell the user:
No knowledge graph found. Run /understand first to analyze this project.
Use the Bash tool to check:
if [ ! -f "$UA_DIR/knowledge-graph.json" ]; then
echo "No knowledge graph found. Run /understand first to analyze this project."
exit 1
fi
Find the dashboard code. The dashboard is at packages/dashboard/ relative to this plugin's root directory. Check these paths in order and use the first that exists:
${CLAUDE_PLUGIN_ROOT}/packages/dashboard/ (Claude Code runtime root, highest priority)~/.understand-anything-plugin/packages/dashboard/ (universal symlink, all installs)~/.agents/skills/understand-dashboard real path (self-relative fallback)~/.copilot/skills/understand-dashboard real path (Copilot personal skills fallback)~/.codex/understand-anything/understand-anything-plugin/packages/dashboard/~/.opencode/understand-anything/understand-anything-plugin/packages/dashboard/~/.pi/understand-anything/understand-anything-plugin/packages/dashboard/~/understand-anything/understand-anything-plugin/packages/dashboard/Use the Bash tool to resolve:
SKILL_REAL=$(realpath ~/.agents/skills/understand-dashboard 2>/dev/null || readlink -f ~/.agents/skills/understand-dashboard 2>/dev/null || echo "")
SELF_RELATIVE=$([ -n "$SKILL_REAL" ] && cd "$SKILL_REAL/../.." 2>/dev/null && pwd || echo "")
COPILOT_SKILL_REAL=$(realpath ~/.copilot/skills/understand-dashboard 2>/dev/null || readlink -f ~/.copilot/skills/understand-dashboard 2>/dev/null || echo "")
COPILOT_SELF_RELATIVE=$([ -n "$COPILOT_SKILL_REAL" ] && cd "$COPILOT_SKILL_REAL/../.." 2>/dev/null && pwd || echo "")
PLUGIN_ROOT=""
for candidate in \
"${CLAUDE_PLUGIN_ROOT}" \
"$HOME/.understand-anything-plugin" \
"$SELF_RELATIVE" \
"$COPILOT_SELF_RELATIVE" \
"$HOME/.codex/understand-anything/understand-anything-plugin" \
"$HOME/.opencode/understand-anything/understand-anything-plugin" \
"$HOME/.pi/understand-anything/understand-anything-plugin" \
"$HOME/understand-anything/understand-anything-plugin"; do
if [ -n "$candidate" ] && [ -d "$candidate/packages/dashboard" ]; then
PLUGIN_ROOT="$candidate"; break
fi
done
if [ -z "$PLUGIN_ROOT" ]; then
echo "Error: Cannot find the understand-anything plugin root."
echo "Checked:"
echo " - ${CLAUDE_PLUGIN_ROOT:-<unset CLAUDE_PLUGIN_ROOT>}"
echo " - $HOME/.understand-anything-plugin"
echo " - ${SELF_RELATIVE:-<unresolved path derived from ~/.agents/skills/understand-dashboard>}"
echo " - ${COPILOT_SELF_RELATIVE:-<unresolved path derived from ~/.copilot/skills/understand-dashboard>}"
echo " - $HOME/.codex/understand-anything/understand-anything-plugin"
echo " - $HOME/.opencode/understand-anything/understand-anything-plugin"
echo " - $HOME/.pi/understand-anything/understand-anything-plugin"
echo " - $HOME/understand-anything/understand-anything-plugin"
echo "Make sure you followed the installation instructions for your platform."
exit 1
fi
DASHBOARD_DIR="$PLUGIN_ROOT/packages/dashboard"
Fast path — try the prebuilt viewer first (no install, no build). Each release ships a self-contained viewer tarball; run it pinned to the installed plugin version:
: "${PLUGIN_ROOT:?Run step 3 first so PLUGIN_ROOT is set}"
: "${PROJECT_DIR:?Run step 1 first so PROJECT_DIR is set}"
PLUGIN_VERSION=$(node -p "require('$PLUGIN_ROOT/package.json').version")
VIEWER_URL="https://github.com/Egonex-AI/Understand-Anything/releases/download/v${PLUGIN_VERSION}/understand-anything-viewer.tgz"
npx --yes "$VIEWER_URL" "$PROJECT_DIR"
Run this in the background. It prints the same 🔑 Dashboard URL line as the dev server:
Fallback: install dependencies and build if needed:
: "${PLUGIN_ROOT:?Run step 3 first so PLUGIN_ROOT is set}"
DASHBOARD_DIR="${DASHBOARD_DIR:-$PLUGIN_ROOT/packages/dashboard}"
cd "$DASHBOARD_DIR" && (pnpm install --frozen-lockfile 2>/dev/null || pnpm install)
Then ensure the core package is built (the dashboard depends on it):
: "${PLUGIN_ROOT:?Run step 3 first so PLUGIN_ROOT is set}"
cd "$PLUGIN_ROOT" && pnpm --filter @understand-anything/core build
Fallback: start the Vite dev server pointing at the project's knowledge graph:
: "${PROJECT_DIR:?Run step 1 first so PROJECT_DIR is set}"
: "${DASHBOARD_DIR:?Run step 5 first so DASHBOARD_DIR is set}"
cd "$DASHBOARD_DIR" && GRAPH_DIR="$PROJECT_DIR" npx vite --host 127.0.0.1
Run this in the background so the user can continue working.
Capture the access token URL from the server output. The server (viewer or Vite) prints a line like:
🔑 Dashboard URL: http://127.0.0.1:<PORT>?token=<TOKEN>
Extract the full URL including the ?token= parameter. The token is required to access the knowledge graph data — without it the dashboard will show an "Access Token Required" gate.
Report to the user, including the full tokenized URL:
Dashboard started at http://127.0.0.1:<PORT>?token=<TOKEN>
Viewing: $UA_DIR/knowledge-graph.json
The dashboard is running in the background. Press Ctrl+C in the terminal to stop it.
Important: Always include the ?token= parameter in the URL you share. If you omit it, the user will be blocked by the token gate and have to manually find the token in the terminal output.
--open)GRAPH_DIR environment variable tells the dev server where to find the knowledge graph还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
分析项目代码、配置、文档和基础设施文件,生成可交互探索的结构与依赖关系图。支持日语说明、文件排除,以及根据变更更新已有分析结果。
利用记录代码组成及其关系的知识图谱,查找与问题有关的文件和函数,追踪调用与依赖关系,并结合架构分层具体解释项目的工作方式。
将 Git 差异或拉取请求与知识图谱对照,整理修改位置、周边影响、跨架构层关系及审查风险,并保存用于仪表板展示的数据。
从代码中提取业务领域、业务流程和具体步骤,生成可交互的横向流程图。既可利用现有知识图谱,也可通过轻量扫描收集分析材料。
结合现有知识图谱与实际源代码,详细解释指定文件、函数或模块的设计作用、调用关系、依赖及输入输出流程,帮助不熟悉该编程语言的读者理解代码。
分析 Figma 文件,将页面、界面、组件、实例及颜色等共享设计值之间的关系整理成图,并通过交互式仪表板查看整体设计结构。