Launched this week

Crossfade
Let your coding agent design in your open Figma file
54 followers
Let your coding agent design in your open Figma file
54 followers
Crossfade connects your coding agent to the Figma Design, FigJam or Slides file you have open. Select a layer and ask: it builds with your components and design system, checks its own screenshot, and leaves dev handoff notes on the layers. Unlike Figma's MCP server: • No call limits, on any plan • No Full seat needed to write • Fonts on your Mac just work • Images placed in the same run • $19 once, no usage fees Private by design: no Crossfade server, and the bridge answers only your agent.








Payment Required
Launch Team

Customer.ioAutomate Messaging Everywhere — Startups Get 12 Months Free
Promoted
Hi Product Hunt, I'm Sabarish, a product designer.
I built Crossfade because I use Claude Code to build screens in Figma every day, and I kept hitting Figma's MCP read limits part way through a task. An agent that checks its own work reads a lot, and on a View or Collab seat you get 20 calls a month.
Crossfade is a plugin for Figma design that runs on your Mac. Your agent talks to it over localhost, so nothing is counted. Select a layer, ask, and it builds real, editable layers: frames, auto layout, components, your own fonts and images. It takes a screenshot to check its work, and every run is a single undo step.
Get it here: crossfade.company
A few honest notes. Figma's own MCP server does things Crossfade doesn't, like Code Connect, and you can keep both. It's built and tested on Claude Code; Codex and Cursor connect the same way. It needs the Figma desktop app open, and it works in Figma Design, FigJam and Slides.
It's $19 once, and one license covers two machines. I'd love to hear what you'd ask your agent to build first, and what gets in your way.
Bought it? Here's the setup guide: crossfade.company/setup. Questions? The FAQs are at crossfade.company/#faq.
congrats on the launch sabarish. hitting the mcp limit on a view seat is a real pain, nice that you just built around it. to your question, first thing i would ask is to make the mobile version of an existing screen. does it reuse the file own components and variables, or draw new frames from zero?
@agshin_rajabov Thanks Agshin! Yes, it reuses what’s already in the file. The agent runs the Plugin API inside your Figma file, so it can read the existing screen, find your components (local ones and any enabled library ones), place instances and bind your variables, just as you would by hand. A mobile version comes out as instances of your own buttons and cards on your colour and spacing tokens, not loose rectangles.
Having one undo for the entire run is a great touch. It would make me much more comfortable trying out a layout idea, knowing I can roll it back in a single step
@marianna_tymchuk Thanks Marianna, that's exactly why I built it that way! Every run is a single undo step, so one Cmd+Z takes back the whole idea, and if a run fails part way it undoes itself. For bigger changes the agent can also save a named version first, so you can always get back to where you started.
What kind of layouts would you try first? Curious whether email layouts would be a good fit, given your work at Stripo.
The single undo per run is what sold me — I've had agents mangle a Figma file mid-task and untangling it by hand is the worst part. First thing I'd ask it to build is a settings screen from one of my existing screens, reusing the components and variables already in the file, to see how faithfully it sticks to the system instead of inventing new styles. Running over localhost on my Mac, with real editable layers instead of a screenshot, is the part that makes me actually want to try it on a live file.
@jcbuilds Thanks JC! That’s exactly why each run is a single undo step. And if a run throws partway through, the layers it created are removed, and the reply lists any edits it made to existing layers, so you’re never left untangling a half-finished state.
A settings screen is a great test. Point it at the existing screen and say “use our components and variables”. It reads the file through the Plugin API, places instances and binds your tokens, then screenshots the result to check it. Would love to hear how faithful it is on your live file, especially anywhere it goes off-system.