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.
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
01Pulls once
One read per page, saved to .figma/ in your repo.
02Distills by script
A parser turns the export into a spec the agent can follow.
03Builds from disk
The agent builds from the saved files, never from a screenshot.
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
Figma
Build
Figma
Build
Findings
Open questions
Figma
Build
Figma
Build
Findings
Open questions
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.
Somewhere to publish the review page: Claude Artifacts, ChatGPT Sites or any static host
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.