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/reactinstalled, 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
- Cursor
- Claude Code
- Clone the plugin repository and install it:
~/.cursor/. Fully restart Cursor afterwards.- Store your Figma token (kept in your OS keychain, never in a file):
- Install the one screenshot dependency:
- 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:- 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
- Approach gate: shows you a per-surface coverage matrix with a recommendation and waits for your confirmation before building anything
- 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
- Report: coverage achieved, screenshots, any SDK gaps, and the generated code under
components/velt/ui-customization/
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 withfigma-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

