Figma write to canvas: what use_figma can and can't do
By Sabarish Sanjay, maker of Crossfade · Updated
Write to canvas lets an agent create and edit real content in your Figma files, rather than handing you a screenshot. It runs through a tool called use_figma. Here's what it does and where it stops, checked against Figma's docs on 7 November 2026.
What it does
use_figma is the general tool for writing to Figma files. Your agent can create, edit, delete and inspect content in Figma Design, FigJam, Slides and Specs. Because it works through Figma's Plugin API, you get proper frames, components, variables and auto layout that you can keep working on.
Who can use it
- Plans: Figma lists Professional, Education, Organization and Enterprise.
- Seat: a Full seat to write outside your drafts, and edit access to the file.
- Server: the remote MCP server. The desktop server can't write.
- Client: a supported MCP client. Figma keeps a catalogue of these.
What it costs
It's free during the beta. Figma says it will eventually become a usage-based paid feature, and hasn't published the pricing in the docs I checked. If you're building a workflow around it, plan for that.
Current limits
| Limit | What Figma’s docs say | What it means |
|---|---|---|
| Output | Up to 20 KB per tool call | Reading a big frame takes several calls |
| Images | use_figma can't add new images on its own | A separate upload_assets step |
| Components | Importing ones with images or videos isn't supported yet | Some library components won't come in |
| Fonts | Must be uploaded to your Figma account | Local fonts fail |
| Quality | Beta quality, may need review and cleanup | Figma advises testing on a duplicate |
Writes are exempt from rate limits, but the reads around them aren't. An agent that checks its own work keeps spending reads.
Getting good results
Figma's own tips are worth following: include a link, keep going in the same conversation, make large changes in steps, and name the libraries and variables you want used. This guide has more.
If the limits get in your way
use_figma and a local plugin run the same Plugin API. The difference is where it runs. A plugin in the desktop app can use fonts on your computer, place images in the same run and return more per call. Crossfade, which I make, returns up to 100,000 characters per call. It needs the Figma desktop app open, though, and it doesn't do Figma Make. Here's the full comparison.
Common questions
Is Figma's write to canvas free?
It's free during the beta, and Figma says it will eventually become a usage-based paid feature.
Does use_figma count towards rate limits?
Figma's docs say tools that write to files are exempt, but reads are not, and agents read often while they build.
Can use_figma add images?
Not on its own. Figma's docs say your agent adds images with upload_assets and can create new ones with generate_image.