/install figma-agent
Figma Agent
Figma Remote MCP integration for OpenClaw. Reads designs via figma__* tools; creates and edits via CC sessions using mcp__figma__* tools.
Route First
Read/Inspect → call figma__* tools directly. No CC session needed.
Write/Create/Edit → requires CC session via mcp__figma__* tools.
Seeing or understanding a design? → Direct. Do not start a session.
Changing or creating something? → Start a CC session. Follow the matching playbook below.
Execution model:
- Route & Brief — choose the workflow, identify the real risks, and write a lean execution brief
- Execute — perform the direct read or CC-based write flow
- Done Gate — do not report success until the applicable structural and visual validation checks pass
Workflow Routing
First: Determine the user's intent, then follow the matching path.
This is an abridged routing summary. For the full matrix and decision logic, see references/workflow-selection.md.
→ Full routing matrix: references/workflow-selection.md
| Intent | Path | Route |
|---|---|---|
| Build a production screen | Native Screen Generation | CC |
| Create next step / state variant from an existing screen | Native Screen Generation | CC |
| Prototype from HTML/URL | HTML-to-Figma Prototyping | CC |
| Read-only inspection | get_design_context / get_screenshot |
Direct |
| Review + Edit a screen | Screen Review Loop | CC |
| Apply design tokens | Color Tokenization | CC |
| Import + clean up Stitch export | Stitch Import Cleanup | CC |
| Discover variables/styles | Variable Discovery | Direct |
| Audit design system | Design System Cleanup | CC |
| Inspect finished design | Design Audit Review | Direct |
Image Delivery (MANDATORY after every write)
Screenshots must reach the user as Telegram photo attachments — not as inline base64 text.
Workflow:
-
Save to file — use
--out \x3Cpath>flag so the PNG is written directly:node scripts/figma-mcp-cli.mjs get_screenshot \ fileKey=\x3CfileKey> nodeId=\x3CnodeId> scale=2 \ --out ~/workspace-dev-botti/screenshots/\x3Cname>.png -
Deliver to user — put
MEDIA:\x3Cpath>on its own line in your reply:Hier ist der aktuelle Stand: MEDIA:screenshots/validate.pngOpenClaw extracts every
MEDIA:line and sends the file as a native Telegram photo. The path is workspace-relative (screenshots/...) or absolute.
Two different tools — don't mix them up:
| Tool | Purpose | Used for Image Delivery? |
|---|---|---|
image tool |
Send to Vision model for analysis | ❌ No — analysis only |
MEDIA:\x3Cpath> in reply text |
Send as Telegram attachment | ✅ Yes — actual delivery |
Why --out?
Without it, the Figma API returns base64-encoded JSON → renders as inline text in Telegram, not a photo. The --out flag decodes and writes a real PNG file that MEDIA: sends as an attachment.
Screenshot directory: ~/workspace-dev-botti/screenshots/ (create if missing)
Validation pattern (every write operation):
# After use_figma call — save screenshot → MEDIA: in reply
node scripts/figma-mcp-cli.mjs get_screenshot fileKey=\x3Ckey> nodeId=\x3Cid> scale=2 \
--out ~/workspace-dev-botti/screenshots/validate.png
# Reply with:
# MEDIA:screenshots/validate.png
Stitch comparison:
Stitch delivers via MEDIA:\x3CscreenshotUrl> (HTTP URL). Figma delivers via MEDIA:\x3Clocal-path> (file). Mechanism identical — only the source differs.
Hard Rules (Top 6)
These are non-negotiable. Full rule set: references/core-rules.md
- Validate after every write —
get_screenshotorget_metadataafter eachuse_figmacall. Never assume success. - Read → Understand → Fix → Retry — never blindly retry failed code, never rebuild as first response.
- Explicit over implicit — name exact variables, components, layout modes. Leave nothing to inference.
- Design-system-first — check local variables, styles, Code Connect, then libraries before creating anything raw.
- Component-instance-first — if a suitable existing design-system component exists, instantiate it instead of recreating it with local frames.
- Section-by-section — one logical section per
use_figmacall, validate between sections.
Known Gotchas
Before writing any use_figma code, know these failure modes:
→ Full reference: references/plugin-api-gotchas.md
- Paint binding:
setBoundVariableForPaintreturns a new paint — reassign the fills/strokes array (#paint-binding) - Opacity reset: Paint binding resets opacity to 1.0 — save and restore explicitly (#opacity)
- Page context: Always set page explicitly —
figma.currentPagemay reset between calls (#page-context) - FILL sizing: appendChild to auto-layout parent before setting
layoutSizingHorizontal: "FILL"(#append-before-fill) - Async: Always
awaitasync operations —loadFontAsync,importComponentByKeyAsync, etc. (#promises)
Prompting Guidance
→ Full patterns: references/prompting-patterns.md
Key patterns: variable-first code structure, section-by-section execution, explicit design-system usage, validation loops, error recovery framing.
Install / Setup
If dependencies are missing, install them from the skill repo root:
npm install
Then run one-time bootstrap:
Setup (One-Time Bootstrap)
node ~/.openclaw/skills/figma-agent/scripts/auth.mjs
Reads CC OAuth token from ~/.claude/.credentials.json, writes it into ~/.openclaw/openclaw.json. Then restart the OpenClaw gateway.
Token check: node ~/.openclaw/skills/figma-agent/scripts/auth.mjs --check
On 401 errors: Open CC → use any Figma tool (auto-refreshes token) → re-run bootstrap script.
URL Parsing
figma.com/design/:fileKey/:name?node-id=:nodeId
Convert - to : in nodeId (e.g. 123-456 → 123:456). For FigJam: figma.com/board/:fileKey/:name → use get_figjam.
Tool & Rate-Limit Reference
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install figma-agent - After installation, invoke the skill by name or use
/figma-agent - Provide required inputs per the skill's parameter spec and get structured output
What is Figma Agent?
Figma MCP integration for OpenClaw. Use when the user wants to read Figma designs, inspect design tokens/variables, work with Code Connect, or create/edit Fi... It is an AI Agent Skill for Claude Code / OpenClaw, with 187 downloads so far.
How do I install Figma Agent?
Run "/install figma-agent" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Figma Agent free?
Yes, Figma Agent is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Figma Agent support?
Figma Agent is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Figma Agent?
It is built and maintained by Simeon (@rasimme); the current version is v0.3.0.