Pantograph

Figma to web for coding agents.

Pantograph is a pack of skills and scripts that help you get the most out of Figma's MCP server when turning designs into code. It helps your agent work from the file's data, use screenshots to check its work, and build with your components and conventions.

View on GitHub
  • Claude
  • OpenAI
  • Cursor
  • X

What Pantograph fixes

Agents tend to build from a design they only half understand, and you're left cleaning up after them. With Pantograph you stop pulling teeth. Your agents get the context, the depth and the vocabulary they need to get from Figma to code that fits your codebase.

AreaAgents left unsupervisedWith Pantograph

Source of truth

Guess from screenshots

Work from the file's own data: text, sizes, variables

Figma reads

Go back to Figma for every detail and run out of reads

Pull each page once, thoroughly, and keep it on disk

Export handling

Skim a huge export and miss things

Follow an ordered spec that a script distills from the export

Conventions

Hard-code values to match the screenshot

Build with your components, tokens and conventions

Asset handling

Improvise, with redrawn icons and low-res images

Use the real assets from the file, at the resolution the web needs

Open questions

Quietly decide when the design is unclear

Log conflicts, notes and placeholders as questions for the designer

Breakpoints

Assume how the layout adapts

Read the other frames for what really changes

Design intent

Trust the export, even where it differs from the design

Know what the export hides and how to build it for the web

Verification

Say they are done

Audit the build against the source and show Figma beside it

How it works

  1. 01Pulls once

    One read per page, saved to .figma/ in your repo.

  2. 02Distills by script

    A parser turns the export into a spec the agent can follow.

  3. 03Builds from disk

    The agent builds from the saved files, never from a screenshot.

  4. 04Verifies

    A second agent checks the copy. A review page shows Figma beside the build.

One in-depth pull

Figma limits how many times an agent can read a file, so Pantograph reads each page once and reads it thoroughly. All of it lands in .figma/ in your repo.

  • The board's map. Every frame's id, name, position and size, hidden layers included.
  • The whole page as code. One call returns the full frame, often 200,000 characters and 70 asset links, saved word for word.
  • Variables. The file's named type styles and semantic colors, ready to map onto your tokens.
  • Assets. Every image and vector, downloaded and named by content hash. That removes duplicates and shows the design's real icon set.
  • Reference screenshots. One per section, taken right after the pull and kept for QA.
  • The extras. Designer annotations, mobile and tablet frames, and per-language frames when the board has them.

Everything after that reads the saved files. A rebuild costs no Figma reads, and a design change costs one.

Inside

Two skills, and the scripts they run to do the work.

figma-transposeskill

The build pipeline, from the Figma access check through to verification.

  • distill.mjsReads the saved Figma export and writes the spec: copy, image slots, icons, tokens.Local files only
  • fetch-asset.shDownloads one Figma asset and names the file by its content hash.Downloads from Figma's CDN

figma-review-pageskill

The review page: Figma beside your build, section by section, with height differences and open questions.

  • sections.mjsScreenshots your build and records where each section sits.Opens the URL you give it in Chrome
  • shot.mjs, shot2x.mjsFull-page screenshots at any viewport, at 1x or 2x.Opens the URL you give it in Chrome
  • build_page.mjsCrops the screenshots and assembles the review page as one HTML file.Local files only

Review the work at a glance

Every run ends with a review page on one link. It reads the same at your desk or anywhere else, so you can check the work wherever you are.

  • The design beside the build, section by section
  • Where they differ, and by how many pixels
  • Findings, and open questions for the designer
The same review page at desktop and phone width. A Hero section shows the Figma frame beside the build followed by findings and open questions.

Install

git clone https://github.com/tonyseets/pantograph
cd pantograph
./install.sh --harness claude     # ~/.claude/skills
./install.sh --harness codex      # ~/.agents/skills
./install.sh --harness cursor     # ~/.cursor/skills
./install.sh --harness grok       # ~/.grok/skills
./install.sh --harness project --target /path/to/repo

Then copy a link to a page frame in Figma and hand it to your agent:

Build this page with figma-transpose: <figma link>
It goes at /pricing in this repo.

When the build is up, ask for a review page with figma-review-page.

Questions

How does it connect to Figma?

Through Figma's official MCP server: the remote one you sign into, or the Dev Mode server in the Figma desktop app. Pantograph adds nothing of its own to that connection.

What kind of projects is it for?

Marketing sites, mostly B2B. That is where Pantograph grew up and where it has worked well. Other kinds of projects may need some massaging, and your mileage may vary.

Do I need to be a developer?

You need a coding agent, a code repo and a Figma file. You talk to the agent and it runs the steps. The "Copy Prompt" button at the top gives you the message to paste.

Does it send my designs anywhere?

No. The design comes through Figma's own MCP server into a .figma/ folder in your repo and stays there. The only download the scripts make is image and icon files from Figma's CDN. There's no telemetry.

Do I need a Figma access token?

No, it's optional. The MCP server alone gives the agent the code, the copy and the original uploaded images. Add a personal access token and the agent can also export frames through Figma's API at 2x, the way you would by hand. The token stays in a locked file outside the repo, and the agent reminds you to revoke it after.

Which Figma plan do I need?

A Dev or Full seat on the plan that owns the file. On an Organization plan that's 200 reads a day. A View seat gets about six a month, which isn't enough for one page.

Will it work with my framework or CMS?

Yes. The skills work with any framework, and with any CMS or none. Anything specific to your project stays in your repo's own AGENTS.md.

What does install.sh change on my machine?

It symlinks the two skill folders into your agent's skills directory, and moves any folder already there to a .bak copy first. Run it with --uninstall to remove the links.