Figma use_figma Plugin API Rules
warpdotdev/warp
Required groundwork before any use_figma call: the rules and reference files for running JavaScript in a Figma file through the Plugin API without common failures.
Clone, copy, or replicate a website/page pixel-perfect using pingfusi.
$ npx skills add alex-durango/pingfusi --skill pixel-perfect-clone -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install alex-durango/pingfusi pixel-perfect-clone --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/alex-durango/pingfusi.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skill/pixel-perfect-clone .claude/skills/pixel-perfect-clone && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "pixel-perfect-clone" agent skill from https://github.com/alex-durango/pingfusi/tree/main/skill/pixel-perfect-clone into .claude/skills/pixel-perfect-clone/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pixel-perfect-clone", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/alex-durango/pingfusi/tree/main/skill/pixel-perfect-cloneType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add alex-durango/pingfusi --skill pixel-perfect-clone -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install alex-durango/pingfusi pixel-perfect-clone --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alex-durango/pingfusi.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skill/pixel-perfect-clone .agents/skills/pixel-perfect-clone && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pixel-perfect-clone" agent skill from https://github.com/alex-durango/pingfusi/tree/main/skill/pixel-perfect-clone into .agents/skills/pixel-perfect-clone/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pixel-perfect-clone", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add alex-durango/pingfusi --skill pixel-perfect-clone -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install alex-durango/pingfusi pixel-perfect-clone --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alex-durango/pingfusi.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skill/pixel-perfect-clone .cursor/skills/pixel-perfect-clone && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "pixel-perfect-clone" agent skill from https://github.com/alex-durango/pingfusi/tree/main/skill/pixel-perfect-clone into .cursor/skills/pixel-perfect-clone/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pixel-perfect-clone", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/alex-durango/pingfusi.git --path skill/pixel-perfect-clone--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add alex-durango/pingfusi --skill pixel-perfect-clone -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install alex-durango/pingfusi pixel-perfect-clone --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alex-durango/pingfusi.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skill/pixel-perfect-clone .gemini/skills/pixel-perfect-clone && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "pixel-perfect-clone" agent skill from https://github.com/alex-durango/pingfusi/tree/main/skill/pixel-perfect-clone into .gemini/skills/pixel-perfect-clone/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pixel-perfect-clone", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install alex-durango/pingfusi pixel-perfect-cloneInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add alex-durango/pingfusi --skill pixel-perfect-clone -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/alex-durango/pingfusi.git skills-src && mkdir -p .github/skills && cp -r skills-src/skill/pixel-perfect-clone .github/skills/pixel-perfect-clone && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "pixel-perfect-clone" agent skill from https://github.com/alex-durango/pingfusi/tree/main/skill/pixel-perfect-clone into .github/skills/pixel-perfect-clone/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pixel-perfect-clone", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add alex-durango/pingfusi --skill pixel-perfect-clone -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install alex-durango/pingfusi pixel-perfect-clone --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/alex-durango/pingfusi.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skill/pixel-perfect-clone .opencode/skills/pixel-perfect-clone && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "pixel-perfect-clone" agent skill from https://github.com/alex-durango/pingfusi/tree/main/skill/pixel-perfect-clone into .opencode/skills/pixel-perfect-clone/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pixel-perfect-clone", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
pixel-perfect-cloneClone, copy, or replicate a website/page pixel-perfect using pingfusi.
Pixel Perfect Clone is an agent skill from alex-durango/pingfusi. Clone, copy, or replicate a website/page pixel-perfect using pingfusi. Use when the user asks to clone a site or page with pingfusi, copy a webpage's design, replicate a page, or make a pixel-perfect copy of a URL. Drives the full enforced pipeline - capture, numeric gates, behavior reproduction, and review rounds answered by an independent reviewer on the pingfusi service - iterating until that reviewer approves.
Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Frontend & Design, covering Design to code. It works with Model Context Protocol. The repository describes itself as: MCP server + CLI that puts a real human in your coding agent's loop. It publishes work mid-task, a reviewer pins what's wrong and returns a verdict, and the agent iterates until… The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit cec753b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Pixel Perfect Clone loads about 2.7k tokens when it runs. Until then it costs about 109 tokens; SKILL.md has 1,496 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from alex-durango/pingfusi at commit cec753b, republished under its MIT licence (© alex-durango). 1,496 words, ~2,737 tokens.
.claude/skills/pixel-perfect-clone/SKILL.md (or your agent's skills folder).The pixel-perfect-kit is an enforced, receipt-driven pipeline: a phase is done because its gate command exits 0, never because anyone says so. Your job is to drive it end to end; review rounds are answered by an INDEPENDENT human reviewer on the pingfusi service — not by the user, and never by you.
Preflight. Run pingfusi doctor. If anything required fails, show the user the fix
lines and stop until resolved. Run pingfusi where → KIT (the installed kit's directory;
all docs below live there).
Get the three values. URL (ask if not given). WIDTH: default 1728 (the kit's own
default — omit the argument) unless the user specifies; a width must be a positive
number of pixels (pingfusi new refuses anything else). NAME: a short slug from the
domain (e.g. stripe for stripe.com). Targets
are created under the CURRENT working directory (targets/<NAME>/) — cd to the user's
preferred workspace first.
Follow the kit's own instructions exactly. Read KIT/docs/LAUNCH-PROMPT.md (the run contract + environment notes) and KIT/docs/CLONE-ANY-SITE.md (the method), and execute them with the three values. They override any assumption you have. Key expectations:
pingfusi capture-build), never hand-reconstruction.await pxScrollSettle() returns {stable, …} — stable:false means STOP, do not
capture: the page was still mounting content and the DOM is one that never existed.
Reaching the bottom is not being settled; a late-hydrating section is missing from the
capture, so it is missing from the leaf enumeration, so every gate goes green over a page
with a hole in it. After building, clone-lint must exit 0 — it FAILs an empty mount
point, a frozen reveal, and the automation extension's own overlay DOM if it was captured.pingfusi advance <NAME> <phase>. Never
use --force. pingfusi status <NAME> always tells you what's next.pingfusi capture-run <NAME> FIRST (the default) — settle + measure + DOM<NAME>/ directly,
no sink, no tabs in anyone's browser, and the settle polling happens in-page instead of
through your round-trips. --side auto does live until the clone exists, then both.
FALL BACK to the interactive path only when capture-run says so (bot wall, no Chrome,
probe refusal — its errors name the fallback): pingfusi capture open <NAME> (hosted
session), ONE call per tab — await pxCaptureAllPhased('<sink_url>') on live,
{prefix:'clone'} on the clone — then pingfusi capture pull <NAME> --all.
(Phased = settle → freeze animation phase → measure: both sides must measure at a
FIXED animation phase or never-settling animations fail gates on a correct clone.)
Drafts are hosted too: pingfusi draft <NAME> push. No cloudflared needed.
Anything static that is NOT the clone target — a page or route in your own app, any
built dir — hosts the same way: pingfusi publish <built-dir>. No tunnel, no preview
deploy; tunnel only what genuinely needs its own live server.document.hidden === false. If your browser tooling reports
tabs hidden PERMANENTLY (some automation stacks do), skip in-tab discovery — it can
never pass the gate, and --force poisons done. Run
pingfusi behavior-capture <NAME> instead (kit-owned Chrome, both sides, probe-gated;
name marquees/hovers in targets/<NAME>/behavior-opts.json).pingfusi next <NAME> when a gate is red or the next utility is unclear. Static
geometry/paint stays with pixel diff and layout compare; mounted/triggered state stays
with behavior capture. Timing, easing, springs, stagger, scroll/pointer-driven motion,
canvas, and WebGL use the printed pingfusi motion … machine command; the
side-by-side compare round is the one reviewer channel for anything visual, motion
included.motion-doc.json, and capture-build runs
the motion pass automatically — captured CSS carries the css/transition tiers,
gsap/waapi/sampled tiers get the generated WAAPI player (exact parameters), and
every action or skip is a receipt (motion-pass.json + motion-items.json) with
warnings, never failures. Re-run it standalone with pingfusi motion pass <NAME>
(e.g. after a re-capture, or on a hand-built clone). Motion never blocks a gate and
never files a review round. Never put temporal evidence in
behavior-deviations.json — that file is for unsupported non-temporal
interaction/state rows.pingfusi next <NAME>: it routes the deep
machine checks from the pass's bookkeeping — pingfusi motion verify-introspected
(exact keyframe/timing diff of the page's own engine declarations, live vs clone),
or the sampled chain motion sample → motion apply-sampled →
motion verify-sampled (identical virtual-time stimulus, per-frame diff, ongoing
motion verified by its motion law). These are commands that exit 0 or 1 — receipts,
not gates, and no review round exists in the motion path. Scroll/pointer-linked and
canvas/WebGL models stay engine machinery (motion trace/loop/export), receipted
and never auto-applied by the pass.pingfusi next <NAME> prints the exact command), redeploy, refile.behavior-capture above). If a reviewer's one
look could unstick you, that's pingfusi assist <NAME>. Only when the provided remedies
are genuinely exhausted (an environment constraint you cannot fix from here): receipt it
with pingfusi advance <NAME> <phase> --blocked "what you tried and why it failed", then
KEEP GOING — file the round; the spec documents the gap to the reviewer automatically. A
blocked phase is not done (done refuses it until re-advanced with a passing gate), but
a filed round with a named gap ships a fix list; a stopped session ships nothing.
Motion never blocks this ladder — its receipts are informational.pingfusi review <NAME> … (file/poll/verify) — never through
any MCP directly. First filings carry --context "one line: what this site/page is and where to look" (the reviewer sees it); refiles carry --changelog "what changed".
Full rounds default to 1 result. Request --results 5 for a broader read and
--results 15 to --results 20 only for complex work or higher confidence. Each
completed result costs 1 credit; undelivered results are not charged.pingfusi setup — review rounds require the login; there is no offline review path.Tell the user how review works (first run especially): each round goes to an independent reviewer on the pingfusi service — NOT to the user. The reviewer opens the hosted draft and the original side by side, pins comments on what looks wrong, and picks a verdict; the reviewer's browser rendering of the original is the ground truth (the reference site may serve them a different variant than yours — LEARNINGS #20). The user's job is simply to wait; their taste enters through the result and through any change requests they give you directly.
Iterate until done. The filing command automatically chains client-safe wait
legs until feedback. If a raw MCP leg returns pending, immediately call
pingfusi_wait again; never return pending to the user or file a duplicate. Each leg
renews the short idle lease; passive result/verify reads do not (a lapse only pulls
the round from the feed for new claims; a reviewer mid-review can still finish).
Act on every verdict
immediately: fix from the site's own captured artifacts (authored mechanisms, never
invented values), re-green the gates, and refile with a changelog; that filing owns
the next wait too.
When pingfusi score or pingfusi status prints STALLED, do not run another blind
iteration: run pingfusi next <NAME> first. If it reports layout, run
pingfusi assist <NAME> --compare — a scoped side-by-side diagnostic round
auto-composed from the failing gate's own artifacts; a reviewer names in one look what
costs you three iterations. --compare is required: the old text-only question format
is retired (a reviewer can't act on an element question without seeing both pages), and
bare pingfusi assist <NAME> refuses with exactly this nudge. It reuses the target's
recorded hosted draft after re-verifying it — you only re-push if the draft went stale.
Assists don't block you: keep iterating while one is pending and re-check the answer
(free) with the printed assist-result command between iterations. Never open a second
ask while one is pending.
Done = pingfusi gate <NAME> done exits 0 — all ten phases, including a real
approving verdict from the reviewer. A first draft, green machine gates, or a filed
round are NOT done: ending your turn before done, without being blocked on the
reviewer, is an incomplete run — say exactly what remains and what will wake you.
Report with receipts: the final pingfusi status <NAME> table, gate outputs, the round
history, and the clone's location (targets/<NAME>/clone/).
© alex-durango, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skill/pixel-perfect-clone of alex-durango/pingfusi.
Open the folder on GitHubat commit cec753b
Pixel Perfect Clone next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Pixel Perfect Clone this skillalex-durango/pingfusi | 124 | — | ~2.7k | Automated safety check: Pass | MIT | |
| Figma use_figma Plugin API Ruleswarpdotdev/warp | 65k | 4 repos | ~4.4k | Automated safety check: Pass | AGPL-3.0 | |
| Figma Design to Codewarpdotdev/warp | 65k | 4 repos | ~2.9k | Automated safety check: Pass | AGPL-3.0 | |
| Figma Code Connect Componentswarpdotdev/warp | 65k | 2 repos | ~4.2k | Automated safety check: Pass | AGPL-3.0 | |
| Figma Screen Generatorwarpdotdev/warp | 65k | 2 repos | ~5k | Automated safety check: Pass | AGPL-3.0 | |
| Build Figmacursor/plugins | 10k | — | ~961 | Automated safety check: Pass | None |
warpdotdev/warp
Required groundwork before any use_figma call: the rules and reference files for running JavaScript in a Figma file through the Plugin API without common failures.
warpdotdev/warp
Turns a Figma frame or component into production code that matches the design, using the Figma MCP server and the project's own design system.
warpdotdev/warp
Maps published Figma components to their code implementations with Code Connect, using the Figma MCP suggestion and mapping tools.
warpdotdev/warp
Builds or updates full Figma screens from code or a description by reusing the file's published design system components, variables and styles.
cursor/plugins
Guides an agent through turning a Figma node into production UI with the repo's own components, then checks the result visually before finishing.
julianromli/ai-skills
Reverse-engineer and clone one or more websites in one shot — extracts assets, CSS, and content section-by-section and proactively dispatches parallel builder agents in worktrees as it goes.
alex-durango/pingfusi
Beautify or redesign an existing website through iterative pingfusi review rounds with a real human reviewer.
alex-durango/pingfusi
Have any video reviewed by a real human, through iterative pingfusi review rounds.
alex-durango/pingfusi
Fix or polish an existing website clone/draft using pingfusi review rounds.
alex-durango/pingfusi
Use Pingfusi proactively whenever a coding agent reaches a question it cannot settle with code, automated tests, documentation or search, or a local browser and needs real human judgment or…
Works with
Categories
Clone, copy, or replicate a website/page pixel-perfect using pingfusi. Pixel Perfect Clone is an agent skill from alex-durango/pingfusi. Clone, copy, or replicate a website/page pixel-perfect using pingfusi.
Pixel Perfect Clone fits situations like: the user asks to clone a site; page with pingfusi; copy a webpages design; replicate a page.
Run `npx skills add alex-durango/pingfusi --skill pixel-perfect-clone -a claude-code`. Or copy the skill folder (skill/pixel-perfect-clone in alex-durango/pingfusi) into .claude/skills/pixel-perfect-clone in your project. Claude Code loads it when a task matches its description.
Run `npx skills add alex-durango/pingfusi --skill pixel-perfect-clone -a codex`. Or copy the skill folder (skill/pixel-perfect-clone in alex-durango/pingfusi) into .agents/skills/pixel-perfect-clone in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add alex-durango/pingfusi --skill pixel-perfect-clone -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pixel-perfect-clone, .gemini/skills/pixel-perfect-clone, .github/skills/pixel-perfect-clone and .opencode/skills/pixel-perfect-clone in your project.
SKILL.md names no scripts, command-line tools or credentials: Pixel Perfect Clone is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Pixel Perfect Clone is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Pixel Perfect Clone: Figma use_figma Plugin API Rules (warpdotdev/warp, 65k stars), Figma Design to Code (warpdotdev/warp, 65k stars), Figma Code Connect Components (warpdotdev/warp, 65k stars) and Figma Screen Generator (warpdotdev/warp, 65k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
alex-durango (a GitHub user) maintains it in alex-durango/pingfusi, which has 124 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on September 9, 2026.
Source: alex-durango/pingfusi on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.