reverse-ui

reverse-ui is a skill for Claude Code from big-emotion/agent-atelier. It costs 74 tokens per session (12,245 once invoked), scanned A, original, MIT.

A tool for examining a web application and producing the materials needed to recreate its interface. It records design choices, page structure, text, assets, and screenshots at different screen sizes.

In plain words
What is it for?
Use it to analyze one or more website routes, create a design and component kit, and publish extracted assets for later implementation.
Why use it?
It reduces the manual work of understanding an existing website before rebuilding or documenting it.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter.

Runs only inside its plugin — its command needs a path that Claude Code sets for a plugin’s own hooks and for nothing else. Install the plugin, not this.

Part of the frontend-fidelity plugin — 3 skills shipped together

Install

Getting it into your agent

This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.

Claude Code
/plugin marketplace add big-emotion/agent-atelier
Claude Code
/plugin install frontend-fidelity

Made for: Claude Code.

Or install frontend-fidelity, the plugin that ships this one along with the rest of its 3 skills.

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 reverse-ui

README.md
[![agentmods](https://agentmods.dev/badge/skills/big-emotion/agent-atelier/reverse-ui.svg)](https://agentmods.dev/skills/big-emotion/agent-atelier/reverse-ui)
Your own site
<a href="https://agentmods.dev/skills/big-emotion/agent-atelier/reverse-ui"><img src="https://agentmods.dev/badge/skills/big-emotion/agent-atelier/reverse-ui.svg" alt="Measured on agentmods" height="20"></a>
Per session 74 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 12,245 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. Scan, not verified.
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.00074 $0.12245
Opus 5 $0.00037 $0.06123
Sonnet 5 $0.00015 $0.02449
Haiku 4.5 $0.00007 $0.01225

Measured 6d ago against content hash 2ebfd8ddabcd, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

reverse-ui scanned grade A with 1 finding 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 6d ago.

The scan reads SKILL.md. This mod also ships 7 executable files (scripts/extract-assets.js, scripts/extract-canvas.js, scripts/extract-design-system.js, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

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.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

allowed-tools: Bash(agent-browser:*), Bash(npx agent-browser:*), Bash(cat:*), Bash(wc:*), Bash(mkdir:*), Bash(ls:*), Bash(curl:*), Write, Read, Grep, Glob, mcp__claude-in-chrome__gif_creator, mcp__claude-in-chrome__javas
plugins/frontend-fidelity/skills/reverse-ui/SKILL.md · 1,080 lines

How it starts

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

Reverse-Engineer UI — Pixel-Perfect Reproduction Kit

Extract everything needed to reproduce a web application pixel-perfect: design tokens, DOM structure per page, text content, asset inventory, and responsive screenshots.

Input: $ARGUMENTS = <base-url> [/path1,/path2,...] [--kit <path>]

  • First token: base URL (required). If empty, ask for one.

  • Second token: comma-separated route paths (optional). Defaults to the path of the base URL (or / if none).

  • --kit flag (optional): custom Design Kit output path.

    • Omitted → generates kit at ./design-kit-{domain}/ (default)
    • --kit ./my-folder → generates kit at the specified path
  • Always generated: Design Kit (Phase 9) and Component Kit (Phase 10) — no way to skip either.

  • Always published: Publishes to ./specs/assets/ — automatically creates specs/ directory if it doesn't exist.

  • Examples:

    • /reverse-ui https://example.com → extracts / + generates kits + publishes to specs/assets (creates specs/ if needed)
    • /reverse-ui https://example.com /,/pricing,/about → extracts 3 pages + generates kits + publishes
    • /reverse-ui http://localhost:3000 /,/ideation → extracts Home + Ideation + publishes
    • /reverse-ui http://localhost:3000 / --kit ./my-design → kit output to ./my-design/ + publishes

Prerequisites

  • agent-browser CLI must be installed (npm i -g agent-browser)
  • For authenticated pages, pre-authenticate:
    agent-browser --session-name myapp open https://app.example.com/login
    # ... login manually ...
    

Output Structure

Two directories are generated: a temporary raw extraction (for reference) and a permanent, unified specs/assets/ directory:

reverse-ui-{domain}/                # Temporary raw extraction — JSON + screenshots (AI reference, can be .gitignored)
  manifest.json                     # Index tying everything together
  design-tokens.json                # Global: colors, typography, spacing, shadows, animations, breakpoints, components, layout
  assets.json                       # Global: images, SVGs, fonts, favicons, background images, logos
  images/                           # Downloaded image assets
    photo-1580273916550.jpg
    ...
  pages/
    {page-name}/                    # One directory per page ("/" → "home", "/pricing" → "pricing")
      structure.json                # Semantic DOM tree + text content map (desktop 1440px)
      structure-768.json            # Semantic DOM tree at tablet breakpoint
      structure-375.json            # Semantic DOM tree at mobile breakpoint
      svgs.json                     # Full SVG outerHTML for every inline icon/illustration
      interactions.json             # Animation libraries, scroll triggers, data attributes
      animations.gif                # GIF recording of page scroll + hover interactions
      screenshot-1440.png           # Desktop viewport
      screenshot-1440-full.png      # Desktop full page
      annotated-1440.png            # Desktop with labeled interactive elements
      screenshot-768.png            # Tablet viewport
      screenshot-375.png            # Mobile viewport

specs/assets/                        # Canonical, unified destination — design system + components + raw extraction (Phase 9.5 published here directly)
  manifest.json                      # Unified index (designSystem, components, layouts, tokens, pages sections)
  design-system/                     # Design tokens — CSS + JSON (Phase 9 output, versionable)
    tokens.css                       # CSS custom properties (ready for @theme or :root)
    typography.css                   # @import font URLs + @font-face + font-family mappings
    animations.css                   # @keyframes definitions + animation utility classes
    shadows.css                      # Box-shadow and drop-shadow token definitions
    colors.json                      # Semantic color palette (name → hex/rgba, grouped by role)
    breakpoints.json                 # Named breakpoints with Tailwind prefix mapping
    z-index.json                     # Z-index scale with layer names
    icons/                           # Individual SVG files (deduplicated across pages)
      home.svg
      trends.svg
      ...
  components/                        # Component blueprints + co-located docs (Phase 10 output, versionable)
    sidebar/
      spec.json                      # Component specification
      README.md                      # Component documentation
    module-card/
      spec.json
      README.md
    header/
      spec.json
      README.md
    ...
  layout/                            # Page composition blueprints (Phase 10 output)
    home.json                        # Which components, what grid, what order
    ideation.json
    ...
  tokens/                            # Semantic token mappings (Phase 10 output)
    semantic-tokens.json             # Mapped: "sidebar-bg" → rgba(2,4,16,0.8)
  pages/                             # Raw extraction data (Phase 5 output, organized by page)
    home/
      structure.json
      structure-768.json
      structure-375.json
      svgs.json
      interactions.json
      canvas.json
      screenshot-1440.png
      screenshot-1440-full.png
      annotated-1440.png
      screenshot-768.png
      screenshot-375.png
    ideation/
      (same set)
  images/                            # Downloaded asset images
    photo-*.jpg
  design-tokens.json                 # Raw browser extraction (full token data with enrichment metadata)
  assets.json                        # Images/SVGs inventory from raw extraction

Read the full file on GitHub · 1,080 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. 6d ago First seen · 1,080 lines · 74 tokens per session scan A 2ebfd8ddabcd

Subscribe to this mod's changes

reverse-ui is a skill published in the GitHub repository big-emotion/agent-atelier (2 stars, last pushed 1mo ago), licensed MIT. It adds 74 tokens to every session and 12,245 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

github-pr-review

Handles PR review comments and feedback resolution. Use when user wants to resolve PR comments, handle review feedback, fix review comments, address PR review, check review status, respond to reviewer, verify PR readiness, review PR comments, analyze review feedback, evaluate PR comments, assess review suggestions, or…

fvadicamo/dev-agent-skills · 95 tokens

privacy-guard

Prevents private infrastructure details (node hostnames, internal project names, local usernames and personal emails, absolute home paths, private and VPN IP ranges) from leaking into public repositories through commits, PRs, docs or release artifacts. Use when working in a public or soon-to-be-public repo, before…

fvadicamo/dev-agent-skills · 128 tokens

github-pr-creation

Creates GitHub Pull Requests with automated validation and task tracking. Use when user wants to create PR, open pull request, submit for review, or check if ready for PR. Analyzes commits, validates task completion, generates Conventional Commits title and description, suggests labels. NOTE - for merging existing…

fvadicamo/dev-agent-skills · 75 tokens

github-pr-merge

Merges GitHub Pull Requests after validating pre-merge checklist. Use when user wants to merge PR, close PR, finalize PR, complete merge, approve and merge, or execute merge. Runs pre-merge validation (tests, lint, CI, comments), confirms with user, merges with proper format, handles post-merge cleanup.

fvadicamo/dev-agent-skills · 72 tokens

git-commit

Creates git commits following Conventional Commits format with type/scope/subject. Use when user wants to commit changes, create commit, save work, or stage and commit. Enforces project-specific conventions from CLAUDE.md.

fvadicamo/dev-agent-skills · 49 tokens

second-opinion

Get a second opinion on freshly written code from the other coding agent — Claude asks Codex, Codex asks Claude — then empirically vet every finding against ground truth before accepting or vetoing it. Use once the code is written and the tests pass, before you commit. Do not use for a delegated review or…

photostructure/coding-skills · 73 tokens