understand-figma — Claude Code skill: what it does, how to install
Analyzes a Figma file via the Figma REST API and generates an interactive design knowledge graph with components, screens, and tokens for the dashboard.
npx skills add Egonex-AI/Understand-Anything --skill understand-figma -a claude-codeWhat understand-figma does
The skill fetches a design file using its key or URL via the Figma REST API. The bundled figma-scan.mjs script inspects pages, screens, components, component sets, instances, and design tokens, saving them to scan-manifest.json. If the graph matches the current file version, the scan halts with UP_TO_DATE. Setting UNDERSTAND_FIGMA_FORCE=1 forces a full rescan.
During analysis, nodes are grouped into batches of roughly 15 items. The design-analyzer subagent runs up to 5 batches concurrently. Afterward, figma-merge.mjs validates and merges everything into knowledge-graph.json and meta.json marked as kind:"design", then opens the view with /understand-dashboard.
Execution requires Node ≥ 22, pnpm ≥ 10, and a FIGMA_TOKEN environment variable. The secret travels strictly in the X-Figma-Token header for requests to api.figma.com and is never written to log files. Without FIGMA_TOKEN present in your environment, the process halts immediately.
What it helps with
- extract design tokens and components from a Figma file
- build an interactive knowledge graph for screens and pages
- generate design data for the project dashboard
- refresh the design knowledge graph when Figma files change
Example prompts for the agent
- /understand-figma <figma-file-url-or-key>
- /understand-figma <figma-file-url-or-key> --language en
- Run /understand-figma on <figma-file-url-or-key>
How to install understand-figma
1Skills CLI (Vercel)
npx skills add Egonex-AI/Understand-Anything --skill understand-figma -a claude-code2Manually: put the files in place
~/.claude/skills/understand-figma/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/understand-figma/
1Skills CLI (Vercel)
npx skills add Egonex-AI/Understand-Anything --skill understand-figma -a codex2Manually: put the files in place
.agents/skills/understand-figma/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Egonex-AI/Understand-Anything --skill understand-figma -a cursor2Manually: put the files in place
.cursor/skills/understand-figma/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Egonex-AI/Understand-Anything understand-figma2Manually: put the files in place
.github/skills/understand-figma/SKILL.md1Skills CLI (Vercel)
npx skills add Egonex-AI/Understand-Anything --skill understand-figma -a gemini-cli2Platform CLI
gemini skills install https://github.com/Egonex-AI/Understand-Anything --path understand-anything-plugin/skills/understand-figmaManually: put the files in place
.devin/skills/understand-figma/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Egonex-AI/Understand-Anything --skill understand-figma -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about understand-figma
How to install understand-figma in Claude Code?
Run npx skills add Egonex-AI/Understand-Anything --skill understand-figma -a claude-code. The file will be placed in ~/.claude/skills/understand-figma/SKILL.md.
What does understand-figma do?
It queries the Figma REST API, parses design tokens and components, runs LLM analysis via the design-analyzer subagent, and outputs a graph for the dashboard.
What environment setup is required?
You need Node ≥ 22, pnpm ≥ 10, and a valid personal access token exported as FIGMA_TOKEN to authenticate calls to api.figma.com.
Source text
SKILL.md · MIT
---
name: understand-figma
description: Analyze a Figma file via the Figma REST API and generate an interactive design knowledge graph (pages, screens, components, component sets, instances, design tokens) with a kind:"design" dashboard.
argument-hint: "<figma-file-url-or-key> [--language <lang>]"
---
# /understand-figma
Analyzes a Figma file and produces an interactive design knowledge graph in the existing dashboard.
## Prerequisites
- **`FIGMA_TOKEN`** environment variable — a Figma personal access token (create one at https://www.figma.com/settings). If it is missing, STOP and tell the user:
> Set a Figma token first: create one at figma.com/settings, then `export FIGMA_TOKEN=<token>`.
- Node ≥ 22, pnpm ≥ 10.
> **Security:** the token is read only from the environment and travels only in the `X-Figma-Token` request header. Never write it to the graph, `meta.json`, logs, or intermediate files. This skill makes outbound calls to `api.figma.com` — unlike `/understand`, it is not fully offline. Tell the user this once.
## Phase 0 — Pre-flight
1. Parse `$ARGUMENTS` for a Figma URL or bare file key (the non-flag token) and an optional `--language <lang>`.
2. Resolve `PROJECT_ROOT` to the current working directory. **Resolve the data directory `$UA_DIR`** once and reuse it for every read and write below: `UA_DIR="$PROJECT_ROOT/$([ -d "$PROJECT_ROOT/.understand-anything" ] && echo .understand-anything || echo .ua)"` — the legacy `.understand-anything/` when it already exists, otherwise the new `.ua/`. Because each phase may run in a fresh shell, carry `$UA_DIR` forward like `$PROJECT_ROOT`, re-resolving it with the same line if a later command block needs it.
3. Resolve `PLUGIN_ROOT` and ensure core is built (same logic as `/understand` Phase 0.1.5). If `packages/core/dist/figma/index.js` is missing, run:
```bash
cd "$PLUGIN_ROOT" && (pnpm install --frozen-lockfile 2>/dev/null || pnpm install) && pnpm --filter @understand-anything/core build
```
4. `mkdir -p $UA_DIR/intermediate`.
## Phase 1 — FETCH & PARSE (deterministic)
Run the bundled scan script (`<SKILL_DIR>` is this skill's directory):
```bash
FIGMA_TOKEN="$FIGMA_TOKEN" node <SKILL_DIR>/figma-scan.mjs "$PROJECT_ROOT" "<url-or-key>"
```
It writes `$UA_DIR/intermediate/scan-manifest.json` and prints the node counts. Relay the counts to the user. If it exits non-zero, relay stderr and STOP.
> If the scan prints `UP_TO_DATE`, report "Design graph is already up to date for this Figma file version" and STOP. To force a full rebuild, re-run with `UNDERSTAND_FIGMA_FORCE=1` set in the environment.
## Phase 2 — ANALYZE (LLM enrichment)
1. Read `scan-manifest.json`. Group nodes into batches of ~15, grouped by page when possible.
2. For each batch, dispatch a subagent using the `design-analyzer` agent definition (`agents/design-analyzer.md`). Pass:
- the batch of nodes (`id`, `type`, `name`, `figmaMeta`, child names, token usage),
- the full list of existing node IDs,
- `$INTERMEDIATE_DIR = $UA_DIR/intermediate`,
- the batch number for output naming.
The agent writes `analysis-batch-<N>.json`.
Append `$LANGUAGE_DIRECTIVE` if `--language` was provided (reuse `/understand`'s directive text).
3. Run up to **5 batches concurrently**. If a batch fails, log a warning and continue — the manifest is a solid base.
## Phase 3 — MERGE
```bash
node <SKILL_DIR>/figma-merge.mjs "$PROJECT_ROOT"
```
It combines `scan-manifest.json` + `analysis-batch-*.json`, runs `mergeDesignGraph` (validates, re-attaches `kind:"design"`), and writes `knowledge-graph.json` + `meta.json`. Relay the printed stats and any non-`auto-corrected` issues.
## Phase 4 — SAVE & LAUNCH
1. Clean up intermediate files **except** `scan-manifest.json`:
```bash
INTER="$UA_DIR/intermediate"
find "$INTER" -mindepth 1 -maxdepth 1 -not -name 'scan-manifest.json' -exec rm -rf {} +
```
2. Report a summary: project name, counts by node type, edges by type, layers, tour steps, and the path `$UA_DIR/knowledge-graph.json`.
3. Auto-launch the dashboard by invoking the `/understand-dashboard` skill.
© Egonex-AI · MIT · Egonex-AI/Understand-Anything