Dembrandt

io.github.dembrandt由 GitHub 帳號 dembrandt 發布v0.39.2更新於 Nov 1, 2026

Design tokens from any live site: colours, type, spacing, components, drift against a baseline.

概覽

AI 產生的概覽

從線上網站擷取設計系統(顏色、字體、間距、元件)並輸出設計權杖,供助理分析、比對與匯出。

可以做什麼
  • 擷取設計權杖、配色、字體、間距、表面、元件樣式與品牌識別資訊
  • 支援多頁面或 sitemap 爬取,以及深色模式與行動裝置視窗
  • 對擷取結果進行分析:與基準比對漂移、對比度與一致性檢查、WCAG 檢測
  • 匯出為 W3C 設計權杖、供 AI 代理使用的 DESIGN.md、報告或 Tailwind/shadcn 主題
  • 依 job id 追蹤擷取工作並查詢狀態
適用情境
適合讓助理讀取某個網站的視覺體系並轉成權杖、主題或設計文件,或檢查某次部署的樣式是否偏離已提交的基準。
執行需求
透過 npx 在本機以 stdio 執行,需要 Node.js 18+。由於以 playwright-core 驅動 Chromium,必須先執行一次瀏覽器安裝步驟,否則會出現瀏覽器引擎不可用的錯誤。需要能連線至目標網站的網路。未宣告任何憑證;若要存取登入後頁面,可使用 cookie、cookie 檔、basic auth 或 header 選項。
安裝前請注意
它會渲染並讀取第三方網站,僅應用於條款允許自動存取的網站或自有網站;README 提醒不要複製第三方品牌與商標,並要求遵守 robots.txt 與速率限制。cookie、cookie 檔、basic auth 與 header 選項涉及工作階段密鑰,儲存的儲存狀態檔包含 cookie 與本機儲存。傳入帳戶金鑰會把擷取快照上傳到廠商的雲端服務。反偵測選項僅限獲授權使用。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Dembrandt,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Dembrandt.

[npm version] [npm downloads] [license] [GitHub Marketplace] [GitHub Sponsors]

Extract any website's design system in one command. Enforce it in CI.

Logo, colors, typography, spacing, borders, shadows, motion, components. W3C design tokens in seconds.

[Dembrandt: Any website to design tokens]

Install

bash
npm install -g dembrandtdembrandt install-browser        # one-time: fetches the matching Chromiumdembrandt dembrandt.com

The browser step is required. dembrandt drives Chromium through playwright-core, which ships no browser binaries, so a fresh install has nothing to launch until you run it. Skipping it fails with browser engine not available.

Or use npx without installing: npx dembrandt dembrandt.com. The browser step applies here too: run npx dembrandt install-browser first. Browsers land in a shared Playwright cache, so either route only needs it once.

Requires Node.js 18+

Or install the MCP server straight into your editor and let the agent run it:

[Add to Cursor] [Install in VS Code]

What you get

  • Colors (semantic roles with the evidence behind each pick, curated palette, every detected colour, CSS variables, gradients)
  • Typography (fonts, sizes, weights, sources, font file URLs)
  • Spacing (margin/padding scales)
  • Borders (radius, widths, styles, colors)
  • Shadows
  • Motion (duration scale, easing curves, hover patterns per component type)
  • Components (buttons, badges, inputs, links)
  • Breakpoints
  • Icons & frameworks

Playwright renders the page, dembrandt reads computed styles from the DOM, analyzes color usage and confidence, groups similar typography, detects spacing patterns, and returns design tokens.

Flags

bash
dembrandt dembrandt.com --shadcn        # shadcn/ui theme, observed slots onlydembrandt dembrandt.com --dtcg          # W3C design tokens, for Style Dictionary or Tokens Studiodembrandt dembrandt.com --wcag          # WCAG 2.1 contrast on real DOM pairs

Default is formatted terminal output only. Every flag below; the detailed reference is docs/usage.md.

Export

FlagWhat you get
--dtcgW3C design tokens (DTCG)
--design-mdDESIGN.md for AI agents
--tailwind [path]Tailwind v4 @theme CSS
--shadcn [path]shadcn/ui theme, observed slots only
--html [path]Self-contained HTML report
--brand-guideBrand guide PDF
--json-onlyRaw JSON to stdout
--save-outputJSON to output/<domain>/
--screenshot <path>Viewport screenshot
--color-format <f>Colour notation: hex, rgb, oklch, lch, source
--raw-colorsPre-filter colours too

Analysis

FlagWhat you get
--wcagContrast grades on real DOM pairs
--compare <baseline>Drift gate; exits 1 when tokens moved
--tokens <file>Check rendered colours, radii and font sizes against a W3C Design Tokens file; repeat for several
--max-off-token <n>With --tokens: exit 1 when more than N rendered values match no token
--tokens-report <path>With --tokens: Markdown summary with the nearest token per off-token value, wiki-ready
--annotations <github|azure>CI annotations for drift and off-token values; detected from the runner by default
--approveAccept the current run as the new baseline
--aiML brand-primary prediction (experimental)

Coverage

FlagWhat you get
--crawl [n]Merge N pages, cross-page confidence
--sitemapDiscover pages from sitemap.xml
--dark-modeThe dark theme's tokens
--mobileMobile viewport
--slow3x timeouts for heavy sites
--browser <type>chromium or firefox; CDP via env
--no-sandboxFor Docker and CI

Access

FlagWhat you get
--cookie <string>Reach pages behind a session
--cookie-file <path>JSON cookies, Playwright storageState (incl. localStorage and the sessionStorage block --save-storage-state adds), or Netscape cookies.txt
--basic-auth <user:pass>HTTP Basic for the browser context
--loginOpen a visible browser to sign in; press Enter when ready, then extract (interactive terminal only)
--save-storage-state <path>With --login, save the signed-in session (cookies, localStorage, sessionStorage) to a file; reuse it later with --cookie-file, also in CI
--header <string>Any extra request header, repeat for several
--no-headed-fallbackNever open a visible browser on a failed navigation; for batch runs
--user-agent <string>Custom user agent
--locale <string>Locale for the fingerprint
--timezone <string>Timezone for the fingerprint
--accept-language <s>Accept-Language header
--screen-size <WxH>Reported screen resolution
--stealthAnti-detection; authorized use only
--key <string>Sync runs to your account

Catch design drift in CI

Extract a preview deployment, compare against a committed baseline, fail the job when tokens moved:

yaml
- uses: dembrandt/[email protected]  with:    url: https://preview.example.com    baseline: .dembrandt/baseline.json

The action is on the GitHub Marketplace and annotates the PR with the drifted tokens. On any other runner the gate is just an exit code plus JSON: dembrandt URL --compare baseline.json --json-only exits 1 on drift and prints per-token changes[]. See docs/ci.md for the Action inputs, the platform-neutral gate, and the exit code table.

Recipes

Copy a command, paste a prompt, get a result. Competitor benchmarking, WCAG audits, Figma token push, agentic design system builds. Filterable by role at dembrandt.com/recipes, with the basics in docs/recipes.md.

AI Agent Integration (MCP)

Use Dembrandt as a tool in Claude Code, Cursor, Windsurf, or any MCP-compatible client. Ask your agent to "extract the color palette from dembrandt.com" and it calls Dembrandt automatically.

[Add to Cursor] [Install in VS Code]

Per-client setup, environment variables and the full tool list: docs/mcp.md and dembrandt.com/mcp.

bash
claude mcp add --transport stdio dembrandt -- npx -y dembrandt mcp

The server is listed in the MCP Registry as io.github.dembrandt/dembrandt, so a client that reads the registry can install it by name.

Or add to your project's .mcp.json:

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

Available tools include get_design_tokens, get_color_palette, get_typography, get_component_styles, get_surfaces, get_spacing, and get_brand_identity, plus pure analysis tools (compute_drift, get_findings, export_dtcg, generate_design_md, render_report) and job-control tools.

Extraction tools accept slow, mobile, darkMode, wcag, cookie, cookieFile, basicAuth and header (for authenticated pages), userAgent, and noSandbox (Docker and most CI containers). Interactive --login stays CLI-only. Set pages above 1 to crawl and merge several pages, which produces a markedly stronger token set than one page; paths names them explicitly and sitemap discovers them from sitemap.xml.

Extraction returns a job_id. Poll it with get_job_status, then hand that same id to the pure tools instead of passing the extraction back as an argument:

get_design_tokens(url: "example.com", pages: 5)  ->  job_idget_job_status(job_id)                           ->  tokensget_findings(job_id)                             ->  contrast and consistency issuesexport_dtcg(job_id)                              ->  W3C design tokens

Pair with dembrandt-skills to give your agent UX intelligence on top of extracted tokens: hierarchy, accessibility, interaction states, and a full 6-stage design pipeline orchestrator.

bash
npx skills add dembrandt/dembrandt-skills

Dembrandt App (Beta)

Load extractions, track token drift, and compare snapshots. dembrandt.com/app

  • Automatic drift tracking from CI. Generate an API key at dembrandt.com/app/api-keys, then pass --key to the CLI. Every run uploads a snapshot to your account and scores it against the previous one for that domain. Wire into GitHub Actions or any CI runner and every deploy records itself.
  • Pin a baseline. Mark any snapshot as your reference. Every subsequent extraction is automatically scored against it.
  • Visual diff. Color swatches, before/after values, delta scores per category: colors, typography, spacing, radius, shadows.
  • Snapshot timeline. Proportional timeline per domain, scrub across any date range from days to years.
  • Compare side by side. Load multiple extractions into one view: two releases, two sites, or two surfaces.
  • Copy tokens. Paste values straight into Copilot, Claude, or Cursor.
  • No login required for local use. Data stays in the browser. Sign in with GitHub to enable cloud sync.

Limitations

  • Dark mode requires --dark-mode flag (not automatically detected)
  • Hover and focus states come from real interaction on a sample of elements; states that need a pointer path or a timer are missed
  • Canvas/WebGL-rendered sites cannot be analyzed (no DOM to read)
  • JavaScript-heavy sites require hydration time (8s initial + 4s stabilization)
  • Some dynamically-loaded content may be missed
  • Default viewport is 1920x1080 (use --mobile for 390x844 mobile viewport)

Intended Use

Dembrandt reads publicly available CSS and computed styles from website DOMs for documentation, learning, and analysis of design systems you own or have permission to analyze.

Only run Dembrandt against sites whose Terms of Service permit automated access, or against your own properties. Do not use extracted material to reproduce third-party brand identities, logos, or trademarks. Respect robots.txt, rate limits, and copyright.

Dembrandt does not host, redistribute, or claim rights to any third-party brand assets.

Sponsors

The CLI is MIT-licensed and free. Sponsorship funds the enforcement layer: a committed project-level token baseline, --compare and the ingest API for CI/CD drift gates, and the App platform (snapshot history, team drift dashboard, alerts to Slack, Linear, and GitHub).

[GitHub Sponsors]

Documentation

  • docs/usage.md: every flag, multi-page extraction, browser selection, CDP, DTCG, DESIGN.md, Tailwind theme, WCAG, motion, brand guide PDF
  • docs/ci.md: GitHub Action, drift gate, exit codes
  • docs/mcp.md: MCP server install per client, environment, tools
  • docs/recipes.md: copy-paste workflows
  • docs/FLAGS.md: flag interactions, ignored combinations, multi-page propagation

Contributing

Bugs, weird sites, pull requests. All welcome.

Open an Issue or PR.

@thevangelist

MIT. Do whatever you want with it.

來源:README.md,提交 6f0255a

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.39.2最新Oct 11, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分