~$ npx skillui
https://github.com/user-attachments/assets/4d6b63f1-8042-44a2-8f4f-a92fedadcaf9
░██████╗██╗░░██╗██╗██╗░░░░░██╗░░░░░██╗░░░██╗██╗
██╔════╝██║░██╔╝██║██║░░░░░██║░░░░░██║░░░██║██║
╚█████╗░█████═╝░██║██║░░░░░██║░░░░░██║░░░██║██║
░╚═══██╗██╔═██╗░██║██║░░░░░██║░░░░░██║░░░██║██║
██████╔╝██║░╚██╗██║███████╗███████╗╚██████╔╝██║
╚═════╝░╚═╝░░╚═╝╚═╝╚══════╝╚══════╝░╚═════╝░╚═╝
Reverse-engineer any design system. Pure static analysis. No AI, no API keys.
Point skillui at any website, git repo, or local project and get exact colors, fonts, spacing, components, and animations packaged as a .skill file Claude can read.
npm install -g skillui
skillui --url https://yoursite.com --mode ultra
skillui crawls your target and extracts:
| Output | Contents |
|---|---|
DESIGN.md |
Colors, typography, spacing, border radius, components |
ANIMATIONS.md |
CSS keyframes, scroll triggers, GSAP/Lottie/Three.js detection |
LAYOUT.md |
Flex/grid containers, page structure, spacing relationships |
COMPONENTS.md |
DOM patterns, HTML fingerprints, class analysis |
INTERACTIONS.md |
Hover/focus state diffs with before/after style snapshots |
VISUAL_GUIDE.md |
Master visual reference with all screenshots embedded |
screens/scroll/ |
7 cinematic scroll journey screenshots |
tokens/*.json |
Colors, spacing, typography as JSON tokens |
fonts/ |
Google Fonts bundled locally |
Everything is packaged into a .skill ZIP file inside the output folder.
npm install -g skillui
Requires Node.js 18+.
For ultra mode visual extraction, install Playwright separately:
npm install playwright
npx playwright install chromium
skillui --url https://linear.app
skillui --url https://linear.app --mode ultra
Ultra mode adds:
skillui --dir ./my-app
skillui --repo https://github.com/org/repo
skillui --url <url> Crawl a live website
skillui --dir <path> Scan a local project directory
skillui --repo <url> Clone and scan a git repository
--mode ultra Enable cinematic extraction (requires Playwright)
--screens <n> Pages to crawl in ultra mode (default: 5, max: 20)
--out <path> Output directory (default: ./)
--name <string> Override the project name
--format design-md|skill|both Output format (default: both)
--no-skill Output DESIGN.md only, skip .skill packaging
After running skillui, open the output folder with Claude Code:
cd linear-design && claude
Then ask Claude to build your UI:
"Build me a dashboard that matches the Linear design system"
Claude automatically reads CLAUDE.md and SKILL.md from the folder, which contain the full design system context. It uses the colors, typography, spacing, components, animations, and screenshots to generate an HTML file matching the exact visual language of the site.
linear-design/
├── linear-design.skill # Packaged .skill ZIP (contains everything)
├── SKILL.md # Master skill file (loaded by Claude)
├── CLAUDE.md # Claude Code project instructions
├── DESIGN.md # Full design system tokens
├── references/
│ ├── ANIMATIONS.md # Motion specs and keyframes
│ ├── LAYOUT.md # Layout containers and grid
│ ├── COMPONENTS.md # DOM component patterns
│ ├── INTERACTIONS.md # Hover/focus state diffs
│ └── VISUAL_GUIDE.md # All screenshots embedded in sequence
├── screens/
│ ├── scroll/ # Scroll journey screenshots
│ │ ├── scroll-000.png # Hero / above the fold
│ │ ├── scroll-017.png
│ │ ├── scroll-033.png
│ │ ├── scroll-050.png
│ │ ├── scroll-067.png
│ │ ├── scroll-083.png
│ │ └── scroll-100.png # Footer
│ ├── pages/ # Full-page screenshots (ultra)
│ └── sections/ # Section clip screenshots (ultra)
├── tokens/
│ ├── colors.json
│ ├── spacing.json
│ └── typography.json
└── fonts/ # Bundled Google Fonts (woff2)
# Extract Nothing.tech design system with full ultra mode
skillui --url https://nothing.tech --mode ultra --screens 10
# Scan a local Next.js app
skillui --dir ./my-nextjs-app --name "MyApp"
# Clone and analyze a public repo
skillui --repo https://github.com/vercel/next.js --name "Next.js"
# Output only DESIGN.md, no .skill packaging
skillui --url https://stripe.com --format design-md
# Save output to a specific directory
skillui --url https://linear.app --out ./design-systems
skillui uses pure static analysis. No AI, no API keys, no cloud.
.css, .scss, .ts, .tsx, .js, .jsx files for design tokens, Tailwind config, CSS variables, and component patternswindow.* globals, extract @keyframes from document.styleSheets, capture hover/focus state diffs, and fingerprint DOM components--mode ultra: Playwright (npm install playwright && npx playwright install chromium)MIT
$ claude mcp add skillui \
-- python -m otcore.mcp_server <graph>