dembrandt/dembrandt-skills/extract-design

Claude Code and agent skill by dembrandt/dembrandt-skills

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Extract colours, typography, spacing, components and W3C design tokens from a live website with Dembrandt. Use when you need a site's real tokens or want to seed a design system from it.

Install

npx vskill@latest install dembrandt/dembrandt-skills/extract-design

SKILL.md

Extract Design — Dembrandt

Dembrandt runs a headless Chromium browser against any URL, walks up to thousands of DOM elements, reads computed CSS, and returns a structured design system: colors with confidence scoring, typography styles, spacing scale, border radius, borders, shadows, and interactive component styles.

How to Run

bash
# Zero-install — npx fetches the package on first run (lowest friction)
npx -y dembrandt https://dembrandt.com
# Or install once (global), then call `dembrandt` directly
npm i -g dembrandt
# Basic extraction — outputs to terminal
dembrandt https://dembrandt.com
# JSON output — pipe into files or other tools
dembrandt https://dembrandt.com --json-only > dembrandt-tokens.json
# W3C DTCG format (design-tokens.org standard)
dembrandt https://dembrandt.com --dtcg --save-output
# Generate DESIGN.md (human + AI readable brand doc)
dembrandt https://dembrandt.com --design-md
# Multi-page crawl (follows internal links)
dembrandt https://dembrandt.com --crawl 5
# Dark mode colors
dembrandt https://dembrandt.com --dark-mode
# Mobile viewport
dembrandt https://dembrandt.com --mobile
# Everything saved to output/
dembrandt https://dembrandt.com --save-output
# Tailwind v4 @theme CSS — observed values only [dembrandt 0.28+]
dembrandt https://dembrandt.com --tailwind src/app.css
# Self-contained HTML report — open offline or attach as a CI artifact [dembrandt 0.19+]
dembrandt https://dembrandt.com --html report.html
# Drift gate — compare against a saved baseline; exits 1 on drift [dembrandt 0.19+]
dembrandt https://app.example.com --compare baseline.json --html report.html

MCP Usage (async by default)

To expose Dembrandt as MCP tools, add this server to the agent's MCP config (no install — npx fetches it on first run):

json
{ "mcpServers": { "dembrandt": { "command": "npx", "args": ["-y", "dembrandt", "mcp"] } } }

When using the Dembrandt MCP server, all extraction tools return a job_id immediately rather than blocking. Poll get_job_status until status is "completed":

1. get_design_tokens({ url: "dembrandt.com", pages: 5 })
→ { job_id: "job_123_abc", status: "queued" }
2. get_job_status({ job_id: "job_123_abc" })
→ { status: "running" } // poll again
3. get_job_status({ job_id: "job_123_abc" })
→ { status: "completed", result: { ... } }
4. get_findings({ job_id: "job_123_abc" }) // no need to resend the extraction
→ { findings: [ ... ], contrast: { ... } }

Hand the `job_id` to the analysis tools instead of passing the extraction back. Every pure tool accepts it, and the queue keeps the whole extraction for an hour, so a job started by a narrow tool such as get_color_palette still feeds export_dtcg. Passing the extraction inline works and wins when you give both, but a real extraction is far too large to travel back through the model as a tool argument. [dembrandt 0.29+]

Pass sync: true to any extraction tool to block and return the result directly (useful on fast networks, risks timeout on slow sites, and proportionally slower when pages is above 1).

Extraction tools: get_design_tokens (everything), get_color_palette, get_typography, get_component_styles, get_surfaces, get_spacing, get_brand_identity, get_motion (durations, easings, named keyframes, hover patterns, and the gradients that travel with them) [dembrandt 0.36+]. All accept slow, mobile (mobile viewport), and cookie (cookie string for authenticated pages); get_design_tokens and get_color_palette also accept darkMode and wcag (contrast analysis). [dembrandt 0.23.1+ for mobile/cookie/wcag]

Every extraction tool also crawls, which is the single biggest lever on token quality: one page gives you one page's tokens. [dembrandt 0.29+]

OptionWhat
pagesExtract up to N pages and merge them into one token set (1 to 20). Pages come from DOM links, or from sitemap.xml when sitemap is true
pathsName the extra paths explicitly, e.g. ["/pricing", "/docs"]. Overrides discovery
sitemapDiscover from sitemap.xml. Alone it takes up to 20 pages; pages caps it
headerExtra HTTP headers, a string or a list, e.g. "Authorization: Bearer ...", for pages a cookie cannot reach
cookieFilePath to a saved session: a JSON cookie array, a Playwright storageState file (cookies, localStorage, and the sessionStorage block --save-storage-state adds), or Netscape cookies.txt. The operator produces it once with dembrandt <url> --login --save-storage-state <path>; an agent cannot sign in itself [dembrandt 0.39+]
basicAuthHTTP Basic credentials as "user:password" for staging hosts behind a browser prompt [dembrandt 0.39+]
userAgentCustom user agent string
noSandboxDisable the browser sandbox. Required inside Docker and most CI containers, where launch otherwise fails

A page that fails to load is dropped and the merge carries the rest, so a crawl does not fail on one bad URL.

Pure tools (no browser, synchronous; the extraction goes in result, or name a completed job with job_id [dembrandt 0.29+]): compute_drift (0-100 drift score between two extractions; takes baselineJobId and candidateJobId as the job-based form), get_findings (design-system lint: contrast, consistency, duplication), export_dtcg (W3C Design Tokens format), generate_design_md (DESIGN.md brand guide), render_report (self-contained HTML report), export_tailwind (Tailwind v4 @theme block), export_shadcn (shadcn/ui theme, slots left at shadcn's defaults where the page supplied nothing). Job control: get_job_status, list_jobs, cancel_job. [dembrandt 0.23.1+ for get_findings/export_dtcg/generate_design_md/list_jobs, 0.36+ for the two emitters]

Three tools take their own input rather than an extraction [dembrandt 0.36+]: validate_dtcg (check a DTCG document against the 2025.10 spec, including one this server produced, so a hand edit cannot quietly break it), check_contrast (grade colour pairs you name against WCAG 2.1 at the threshold the text size earns, for colours you are about to ship rather than ones already on a page), and check_robots (ask whether robots.txt allows a URL before spending a browser run on it).

Note: npx runs a dembrandt already on PATH in preference to fetching the latest, so a globally installed dembrandt silently shadows it. Symptom: options the pinned version supports are rejected as unknown, or a crawl returns a single page. Check with dembrandt --version and upgrade the global install, or point the MCP config at an explicit path.

Note: dembrandt <=0.23.0 fails to start via the npx one-liner above (McpDepsMissingError) — the MCP SDK was an optional peer dependency. Fixed in 0.23.1; require it.

Output Structure

Dembrandt returns a structured object. The key sections:

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
5

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/dembrandt/dembrandt-skills/extract-design/badge)](https://verified-skill.com/skills/dembrandt/dembrandt-skills/extract-design)

Something wrong with this skill or its page? Tell us.