understand-figma
egonex-ai/understand-anything
Analyze Figma files and generate interactive design knowledge graphs with component and token mapping.
What is understand-figma?
This skill connects to your Figma file via the Figma REST API, extracts pages, screens, components, design tokens, and instances, then builds an interactive design knowledge graph with a visual dashboard. Use it to document design systems, audit component usage, or explore design structure programmatically.
- Fetches Figma file structure (pages, frames, components, component sets, instances) via REST API
- Extracts and catalogs design tokens (colors, typography, spacing, etc.)
- Groups nodes into batches and enriches them with LLM analysis for semantic understanding
- Merges scan data with analysis to produce a unified knowledge graph
- Generates an interactive design dashboard for exploration and navigation
- Supports optional language directives for non-English analysis output
How to install understand-figma
npx skills add https://github.com/egonex-ai/understand-anything --skill understand-figma- Figma personal access token (create at https://www.figma.com/settings and set as FIGMA_TOKEN environment variable)
- Node.js ≥ 22
- pnpm ≥ 10
How to use understand-figma
- 1.Set your Figma token: `export FIGMA_TOKEN=<your-token>` (create one at figma.com/settings)
- 2.Run the skill with a Figma file URL or key: `understand-figma <figma-url-or-key>`
- 3.Optionally specify a language for analysis: `understand-figma <figma-url-or-key> --language <lang>`
- 4.Wait for the skill to fetch, analyze, and merge the design data
- 5.Review the generated knowledge graph and interactive dashboard
Use cases
- Document a design system by mapping all components and their relationships
- Audit component instance usage across a Figma file to identify unused or over-used patterns
- Extract design tokens programmatically for code generation or design-to-dev handoff
- Explore design hierarchy and dependencies interactively via the dashboard
- Generate semantic descriptions of screens and components for accessibility or documentation
- Design system maintainers
- Product designers auditing design consistency
- Frontend engineers integrating design tokens into code
- Design-to-dev workflow automation
- Teams building design documentation
understand-figma FAQ
A personal access token is a secure credential for API access. Create one at https://www.figma.com/settings under Developer settings, then set it as the FIGMA_TOKEN environment variable.
No. Unlike the base /understand skill, this makes outbound calls to api.figma.com to fetch your Figma file data. The token is sent only in the X-Figma-Token request header and is never logged or written to files.
The skill checks the Figma file version and skips re-analysis if nothing has changed. To force a full rebuild, set UNDERSTAND_FIGMA_FORCE=1 in the environment.
Run the skill separately for each file. Each analysis is stored in the .ua/ directory and can be explored via the dashboard.
The skill logs a warning and continues with remaining batches. The scan manifest provides a solid base even if some LLM enrichment steps fail.
Full instructions (SKILL.md)
Source of truth, from egonex-ai/understand-anything.
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_TOKENenvironment 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-Tokenrequest header. Never write it to the graph,meta.json, logs, or intermediate files. This skill makes outbound calls toapi.figma.com— unlike/understand, it is not fully offline. Tell the user this once.
Phase 0 — Pre-flight
- Parse
$ARGUMENTSfor a Figma URL or bare file key (the non-flag token) and an optional--language <lang>. - Resolve
PROJECT_ROOTto the current working directory. Resolve the data directory$UA_DIRonce 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_DIRforward like$PROJECT_ROOT, re-resolving it with the same line if a later command block needs it. - Resolve
PLUGIN_ROOTand ensure core is built (same logic as/understandPhase 0.1.5). Ifpackages/core/dist/figma/index.jsis missing, run:cd "$PLUGIN_ROOT" && (pnpm install --frozen-lockfile 2>/dev/null || pnpm install) && pnpm --filter @understand-anything/core build mkdir -p $UA_DIR/intermediate.
Phase 1 — FETCH & PARSE (deterministic)
Run the bundled scan script (<SKILL_DIR> is this skill's directory):
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 withUNDERSTAND_FIGMA_FORCE=1set in the environment.
Phase 2 — ANALYZE (LLM enrichment)
- Read
scan-manifest.json. Group nodes into batches of ~15, grouped by page when possible. - For each batch, dispatch a subagent using the
design-analyzeragent 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_DIRECTIVEif--languagewas provided (reuse/understand's directive text).
- the batch of nodes (
- Run up to 5 batches concurrently. If a batch fails, log a warning and continue — the manifest is a solid base.
Phase 3 — MERGE
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
- Clean up intermediate files except
scan-manifest.json:INTER="$UA_DIR/intermediate" find "$INTER" -mindepth 1 -maxdepth 1 -not -name 'scan-manifest.json' -exec rm -rf {} + - Report a summary: project name, counts by node type, edges by type, layers, tour steps, and the path
$UA_DIR/knowledge-graph.json. - Auto-launch the dashboard by invoking the
/understand-dashboardskill.
Related skills
More from egonex-ai/understand-anything and the wider catalog.

understand-knowledge
Analyze Karpathy-pattern LLM wikis and generate interactive knowledge graphs with entity extraction and relationship discovery.

understand-onboard
Generate comprehensive onboarding guides from your project's knowledge graph.

understand
Analyze codebases to generate interactive knowledge graphs for architecture exploration

understand-chat
Ask questions about your codebase using an AI-powered knowledge graph.

android-design-guidelines
Material Design 3 and Android platform guidelines for Jetpack Compose and XML layouts.

ios-design-guidelines
Apple Human Interface Guidelines for iPhone UI design, layout, and accessibility.