Skip to main content
Turn a Figma design into working Velt UI customization directly in your AI coding editor. The velt-customize plugin reads your design from Figma, plans the customization surface by surface, builds it in your app, and verifies each result against the design in a real browser, or honestly reports what the Velt SDK can’t do yet.

Cursor Plugin

velt-js/velt-figma-plugin-cursor

Claude Code Plugin

velt-js/velt-figma-plugin-claude

When to Use

  • You have a Figma design for how Velt comments or notifications should look in your product
  • You want your AI agent to build the customization for you (CSS, wireframes, or primitives) instead of hand-writing it
  • You want every result verified against the design in a live browser, not just generated and hoped for
This plugin customizes Velt’s UI on an app where Velt is already installed and working. If you haven’t set up Velt yet, start with the AI Plugins or Quickstart first.

Prerequisites

  • Node.js 18+
  • A React app with @veltdev/react installed, authenticated, and rendering Velt’s default UI
  • A Figma design of your desired Velt UI, plus a Figma personal access token (figma.com → Settings → Security → Personal access tokens)
  • Chrome (Claude Code) or Cursor’s built-in browser, used to verify results against the design

Quickstart

  1. Clone the plugin repository and install it:
This validates the plugin and copies its skills, rules, commands, and agents into ~/.cursor/. Fully restart Cursor afterwards.
  1. Store your Figma token (kept in your OS keychain, never in a file):
  1. Install the one screenshot dependency:
  1. Open your app’s repo in Cursor (not the plugin repo) and start a run:
The Figma URL must point at one Loop node in your file (right-click the Loop → Copy link), not the whole file. Keep a Loop to 8 frames or fewer; split bigger designs into several Loops and run them one at a time.

Run Options

What’s Included

Available Commands

How It Works

Each run follows a plan → approve → build → verify loop:
  1. Plan: reads your Figma Loop via the Figma REST API, recognizes which Velt component each design element is, and picks the cheapest viable approach per surface
  2. Approach gate: shows you a per-surface coverage matrix with a recommendation and waits for your confirmation before building anything
  3. Build → Judge loop: builds one surface at a time; an independent, fresh-context Judge verifies each result against the design in a live browser, with screenshot evidence. Failures retry, escalate to a heavier approach, or end as a documented SDK gap
  4. Report: coverage achieved, screenshots, any SDK gaps, and the generated code under components/velt/ui-customization/
You can watch progress live from a second terminal:

Troubleshooting

The run halts at preflight

Preflight checks every prerequisite (Figma token, browser, target app, Node version) and halts with the exact fix if any is missing. Follow the printed instruction and re-run the command.

”No Figma token” error

Design intake uses the Figma REST API and requires a token; there is no Figma desktop fallback. Store one with figma-extract.mjs token set, or set the FIGMA_TOKEN environment variable in CI/cloud environments. Verify with figma-extract.mjs token status.

Commands don’t appear after install

Restart your editor fully. Cursor loads plugin files from ~/.cursor/ (re-run npm run all after moving or updating the repo), and Claude Code registers plugin commands at startup (or use /reload-plugins).

Next Steps

  • AI Plugins: Velt SDK knowledge, skills, and MCP servers for your editor
  • UI Customization: how Velt UI customization works under the hood
  • Quickstart: set up Velt in your app first