pixel-perfect-clone

pixel-perfect-clone is a skill for Claude Code, Codex from alex-durango/pingfusi. It costs 93 tokens per session (2,600 once invoked), scanned A, original, MIT.

A procedure for copying a website or page so its visual appearance and behavior closely match the original. It uses a tool called pingfusi and requires measured checks and review steps.

In plain words
What is it for?
Use it when replicating a website from a URL, including capturing the source, reproducing interactions, comparing results, and completing review rounds.
Why use it?
It replaces subjective claims that a copy looks right with explicit verification of visual and functional differences.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it when replicating a website from a URL, including capturing the source, reproducing interactions, comparing results, and completing review rounds.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/alex-durango/pingfusi/pixel-perfect-clone
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add alex-durango/pingfusi --skill pixel-perfect-clone
Clone the repo
git clone --depth 1 https://github.com/alex-durango/pingfusi

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for pixel-perfect-clone

README.md
[![agentmods](https://agentmods.dev/badge/skills/alex-durango/pingfusi/pixel-perfect-clone.svg)](https://agentmods.dev/skills/alex-durango/pingfusi/pixel-perfect-clone)
Your own site
<a href="https://agentmods.dev/skills/alex-durango/pingfusi/pixel-perfect-clone"><img src="https://agentmods.dev/badge/skills/alex-durango/pingfusi/pixel-perfect-clone.svg" alt="Measured on agentmods" height="20"></a>
Per session 93 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,600 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00093 $0.02600
Opus 5 $0.00046 $0.01300
Sonnet 5 $0.00019 $0.00520
Haiku 4.5 $0.00009 $0.00260

Measured 8d ago against content hash b1d8933dfae3, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-07, from the pricing page.

Security

Grade A, and why

pixel-perfect-clone scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skill/pixel-perfect-clone/SKILL.md · 144 lines

How it starts

The opening of the file, as written. The whole thing — 144 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Clone a site pixel-perfect (pingfusi)

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.

Steps

  1. 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).

  2. 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.

  3. 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:

    • Build by CAPTURE (pingfusi capture-build), never hand-reconstruction.
    • Settle the page before capturing the DOM, and CHECK that it settled. 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.
    • Every phase advances only through its gate: pingfusi advance <NAME> <phase>. Never use --force. pingfusi status <NAME> always tells you what's next.
    • Capture: pingfusi capture-run <NAME> FIRST (the default) — settle + measure + DOM
      • coverage in a kit-owned INVISIBLE Chrome; artifacts land in targets// 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.
    • Behavior discovery needs 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).
    • Route by measured capability, not by which command you remember. Run 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.
    • Animations are DEFAULT-ON in the draft build (first-draft doctrine): capture-run records the live page's animations into 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.
    • For a difficult animation, follow 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 samplemotion apply-sampledmotion 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.
    • Reviewers flag motion in the page round like any other observation (there is no structured temporal probe and no typed motion round): if a note says an animation is missing, different, or mistimed, fix it through the routed motion utilities (pingfusi next <NAME> prints the exact command), redeploy, refile.
    • A blocked gate is a ladder, not a stop. When a gate refuses, its message names the way out — try THAT first (hidden tabs → 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.
    • All reviewer contact through 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.
    • No pingfusi login (doctor shows it missing)? STOP and tell the user to run pingfusi setup — review rounds require the login; there is no offline review path.
    • If the SERVICE side blocks filing a round (login, filing errors), STOP and tell the user exactly what failed — never invent a substitute for independent review. A red or environment-blocked GATE is not that case: it has the ladder above.

Read the full file on GitHub · 144 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 8d ago First seen · 144 lines · 93 tokens per session scan A b1d8933dfae3

Subscribe to this mod's changes

pixel-perfect-clone is a skill published in the GitHub repository alex-durango/pingfusi (110 stars, last pushed 4d ago), licensed MIT. It adds 93 tokens to every session and 2,600 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

web-prototype

General-purpose desktop web prototype. Single self-contained HTML file built by copying the seed assets/template.html and pasting section layouts from references/layouts.md. Default for any landing / marketing / docs / SaaS page when no more specific skill matches.

nexu-io/open-design · 59 tokens

web-prototype-taste-brutalist

Swiss industrial-print web prototype. Newsprint canvas, monolithic black grotesque, viewport-bleeding numerals, hairline grid dividers, hazard-red accent, ASCII syntax decoration. Distilled from Leonxlnx/taste-skill brutalist-skill (Swiss Industrial Print mode).

nexu-io/open-design · 70 tokens

frontend-design

Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Use whenever the task produces or modifies anything a user will see rendered — websites, landing pages, web apps, dashboards, React/HTML/Vue components, artifacts with visual output, style overhauls, or "make this…

XiaomiMiMo/MiMo-Code · 111 tokens

frontend-design

Produce intentional, responsive, accessible UI work and perform visual QA instead of generic component assembly.

Hmbown/CodeWhale · 21 tokens

image-to-code

Implement a selected image, screenshot, mockup, generated concept, or design frame as a faithful, responsive, interactive frontend in the target codebase.

XiaomiMiMo/MiMo-Code · 34 tokens

frontend

MUST USE for frontend/web UI/UX/visual work: building, styling, redesigning pages/components, React setup, performance audits, visual QA, taste, and polish. Routes four rulesets: design taste router and brand references; perfection for Playwright/Chromium Lighthouse/Core Web Vitals; ui-ux-db palettes/fonts/guidelines…

code-yeongyu/lazycodex · 183 tokens