Skip to content

Ask your AI. Get a Figma file back.

Say what you want done to a .fig on your disk, in the AI app you already use. grafta opens it, makes the change, checks it, and saves a new file for you to open in Figma.

Your instruction and a local Figma file meet in grafta, producing a new editable Figma file.

You ask

“Turn this web page into editable Figma layers.”

page.png

One flat page

landing-editable.figeditable

Landing

Layers

  • ▣ Landing
  • ◇ Navigation
  • ◇ Hero
  • T Heading
  • ◇ CTA
  • ◇ Features
  • ◇ Footer

Frames, vectors and editable text

One MCP · the AI app you already use

How it works

One real request, on a local copy of your file: in Figma, File → Save local copy…

  1. “Using grafta, turn poster.png into a Figma file. Make it editable.”
    1 / 6
  2. poster.png · the picture
    The poster the person gave: Forma 27, design days, 14–15 May
    poster-editable.fig · being built
    poster-editable.figlocal file
    1080 × 1350 frame
    building layers…unsaved changes
    2 / 6
  3. poster.png · the picture
    The poster the person gave: Forma 27, design days, 14–15 May
    poster-editable.fig · being built
    poster-editable.figlocal file
    Frames and shapes…
    building layers…unsaved changes
    3 / 6
  4. poster.png · the picture
    The poster the person gave: Forma 27, design days, 14–15 May
    poster-editable.fig · being built
    poster-editable.figlocal file
    Editable text and vectors…
    7 named layersunsaved changes
    4 / 6
  5. poster.png · the picture
    The poster the person gave: Forma 27, design days, 14–15 May
    poster-editable.fig · rendered from the file
    poster-editable.figlocal file
    From a picture: what grafta drew at “Rendered it again”
    7 named layersunsaved changes
    5 / 6
  6. poster.png · the picture
    The poster the person gave: Forma 27, design days, 14–15 May
    poster-editable.fig · rendered from the file
    poster-editable.figlocal file
    From a picture: what grafta drew at “Rendered it again”
    7 named layerssaved ✓
    6 / 6
Real session ↗

Plain words. Real files back.

Each request ends in a new file for you to open in Figma, with layers you can keep editing. The pictures show the kind of result; their figures are examples.

For designers

“Add a High contrast mode to this Theme.”

“Check every text against WCAG AA and fix what fails.”

For developers

A poster rebuilt as editable Figma layers

“Turn this screenshot into editable Figma layers.”

Pricing cards imported from a web page

“Bring this web page into the file as auto-layout.”

For teams

“Audit the tokens, components and styles in this file.”

“Make this card a component and fill it from our data.”

grafta or Figma's MCP server?

Choose by where the work needs to happen. They do different jobs.

grafta

For files on your disk, repeated edits, and working with no Figma seat.

Account
None
Where
Files on your disk
Network
None: it runs offline
Cost
None: no plan, no quota
Source
Open source, MIT
Best for
Files on your disk, repeated edits, no Figma seat

Figma's MCP server

For working live in a file open in Figma.

Account
A Figma account; a Full seat to write outside drafts
Where
Files in Figma, live in the app
Network
Through Figma's servers, or its desktop app
Cost
Tool calls per plan; writing free in beta, then usage-based
Source
Figma's own
Best for
Working live with a file open in Figma

Figma Help Center and developer documentation · 30 October 2026

Your files stay yours.

No account

There is nothing to sign in to.

Offline

It makes no network call of its own.

Keeps your file

Every change goes to a new file. Only Figma can say it opens.

Open source

The server and file parser are MIT licensed.

  • .fig

    Figma Design

  • .deck

    Figma Slides

  • .jam

    FigJam

  • .site

    Figma Sites

Asked before installing.

Do I need a Figma account or an API key?

No. grafta reads and writes the file on your disk. You need Figma only to save a local copy (File → Save local copy…) and to open the result.

Does my file leave my machine?

grafta makes no network call: it runs on your computer and works on the file in place. What your model reads through it is a tool result like any other, sent wherever your MCP client sends the conversation.

Can it break my file?

It does not write over your files. save_as refuses a path that exists, with one exception: the empty file new_file just made, while it is still empty. It writes a new file and reads it back before it reports success, and refuses writes it knows Figma would have to repair. But grafta cannot run Figma: opening the result there is the final check, so keep your original.

Which apps and models does it work with?

Any client that speaks MCP over stdio should work, with any model it runs. We have run it in Claude Code and Claude Desktop. Cursor, VS Code, Windsurf and Codex use the same setup, but we have not tried them yet. Clients that only connect to remote servers, such as ChatGPT, cannot use it yet.

How accurate are the pictures?

Close, not Figma's own: render_node draws with the fonts on your machine, and with the design's font installed most lines lay out within 2% of Figma's width. Some things are not drawn exactly, such as two blend modes and noise effects, and an instance does not lay out again when an overridden text changes its width. The caption names most of what it approximated; see the roadmap.

Which files can it open?

Figma Design .fig, Figma Slides .deck, FigJam .jam and Figma Sites .site, as Figma saves them. new_file starts an empty Design file in the format of one you have.

Can I use it without a model?

Yes. grafta tool calls any tool from a terminal, and grafta tool --batch runs a sequence of calls on one file: this site's pictures, sessions and social card are made that way.

What can't it do yet?

Auto-layout grids, component slots, boolean operations, prototyping, Dev Mode annotations and properties on variants. It edits only the variables and styles it made itself. It needs a .fig you have to start a new file, and an open file costs memory: 1.3 GB for a 57 MB file, 5.5 GB for an 86 MB one. See the roadmap.

What if Figma changes its file format?

It may break. Figma does not document this format, and grafta was built by reading real files. A file carries its own schema, which helps, but a change could stop grafta reading a new file, or Figma accepting one it wrote. Report what you find in the issues.

Which systems does it run on?

There are builds for macOS (Apple silicon and Intel), Linux (x86_64 and arm64) and Windows (x86_64). We have run it by hand on a Mac with Apple silicon; the tests also pass on Linux and Windows in CI. The binaries are not signed, so macOS or Windows may ask before the first run.

What does it cost? Is it affiliated with Figma?

It is free and open source, under the MIT licence. It is not affiliated with, or endorsed by, Figma.

Give your AI a real Figma file.

Pick the app you already use. You will get one download, command or configuration to copy.

macOS · Linux · Windows · MIT · not affiliated with Figma

local files · exact edits · open source

Get grafta

Which app do you use?

/plugin install grafta --marketplace n0ss4/grafta

In Claude Code. Registers the server and teaches the model to use it. Needs Node.js 18 or newer.