Design Context Kit Beta

Your product, as design context any AI can read.

A free, open-source kit that captures your product's real screens, tokens, and patterns into a local library. Your AI then designs in your product's language, not from generic memory.

If you'd rather not use a terminal

1

Open your AI assistant on a folder where you keep projects. Make one if you need to; ~/Design Context is fine.

2

Paste this prompt.

Read https://raw.githubusercontent.com/20prateeksingh/design-context-for-ai/main/INSTALL.md and follow it.

Your assistant needs to read files on your machine and run commands, so a browser chat window will not do. Claude Code on the web will not either: it runs in a remote sandbox, with no local browser and no reachable localhost. Whatever you use, the assistant that installs the kit is then the AI that reads your library: same window, no second tool.

If you'll use the terminal

git clone https://github.com/20prateeksingh/design-context-for-ai.git my-product cd my-product tools/start.sh

On Windows, the last line is tools\start.cmd.

It installs what it needs the first time, then opens the dashboard and hands you to the onboarding wizard.

The kit's dashboard on the Map tab: a real capture of en.wikipedia.org, with the landing page lit at the centre reading '35 in · 21 out', and thirty-five further captured pages ringed across three rings labelled one click, two clicks and three clicks, each drawn as a disc of its own screenshot and rimmed in the Wikipedia blue the kit measured. Fifteen discs instead carry a purple ×N badge: one downloaded example standing for a whole template shape, the largest reading ×1.1k. Fourteen dashed ghost pages sit in the fog beyond, beside a chip reading 'DEEP FOG…4007 MORE — TEMPLATES STAND FOR MOST'. The footer reads '0.9% of the known world explored · rings are honest clicks-from-home · every unlock pushes the fog back'.
The Map, on a real capture of en.wikipedia.org: thirty-eight pages downloaded, 4,188 still ghosts in the fog. Rings are measured clicks from home.

How it works

Three steps, and only the first one is yours.

You run one script. The kit does the capture and tells you what it did. Then your AI has a real product to design against instead of a description of one.

STEP 1

Run one script

tools/start.sh (or tools\start.cmd on Windows) installs what it needs, starts a local server, and opens the dashboard. The dashboard asks three things: your product's URL, whether you sign in to use it, and what kind of product it is. You never answer a question in the terminal.

The dashboard's onboarding screen, headed 'Set up your design context': three questions (whether you sign in to use the product, the address you sign in to, and what kind of product it is) above a 'Start capture' button.

STEP 2

The kit captures

It follows your product's links and downloads each page as a snapshot: the real HTML, a screenshot, every word of copy, and the styles it actually uses. Pages that share a layout collapse to one example, with the count kept. You watch it land, page by page, and it tells you what it capped or skipped.

The dashboard mid-capture, headed 'Capture in progress': counters reading 10 pages captured, 2 templates collapsed, 0 skipped, 28 nav pages found, above a live log that opens with 'Nav discovery (nav-landmarks): 28 candidate pages' and ten captured Wikipedia pages with their sizes, from wiki-main-page to wiki-special-recentchanges.

STEP 3

Your AI designs grounded

Point Claude Code, Cursor, or a chat window at the library and ask for a change. A wireframe comes back built on the captured page itself: your product's own shell, spacing and content, reduced to lo-fi, with the new part marked as new. Then take any page into Figma in one paste.

A wireframe round on a captured Wikipedia meetup page: a dashed region tagged 'NEW: HEADCOUNT', holding a meter reading '18 named of 49 allowed' beside a by-answer breakdown (Going 1, Likely 12, Maybe 4, Can't go 1) and the note 'Almost everyone answered Likely, so the real number on the day is not knowable.'

What your AI actually gets

Every captured page becomes six files.

A screenshot, the real HTML, every word of copy, the styles it uses, a digest your AI writes, and the metadata. All of it extracted from the real product, and nothing here is a summary of a summary. Your AI starts at registry.json; you start at INDEX.md.

design-context/ the captured library: one workspace, one product
├── registry.json the machine map: every page keyed by slug, with route, label, files, link graph, template info and a labelled description. The file to point an AI at.
├── INDEX.md the same map rendered for a person to read, with the prose framing.
├── tokens.json the colours, type sizes, spacing steps and radii the product actually uses, each with the count of times it was seen.
├── ia/sitemap.json your product's navigation as it was found, not as anyone remembers it.
└── pages/<slug>/ one folder per captured page
├── page.md the page's digest: facts, link graph, and a "what this page is" section your AI writes and the kit labels method: ai.
├── page.html the editable baseline. Opens in a browser, and is what wireframes are built on top of.
├── screenshot.png what the page looked like when it was captured.
├── content.md every word on the page, verbatim.
├── computed-tokens.json this page's own style tally: the colours, type, spacing, radii and shadows it uses.
└── meta.json route, title, nav label, the outbound links, the capture's viewport and timestamp, and a content hash that tells you what changed on a re-capture.

Captured a product you sign in to? The library then holds your real account data. It stays in your folder, and the browser profile the login created is gitignored and never leaves your machine.

The dashboard

See what was captured, and what wasn't.

One self-contained HTML file beside the library: a map of every page, the design language measured across them, and a ledger of what changed. Every number on it says where it came from.

The Map

Rings are honest clicks-from-home; the fog is what you haven't captured yet.

Every captured page sits at its measured distance from the home page, sized by how linked-to it is. Pages the kit found but never downloaded stay as dashed ghosts in the fog.

What the rail says about the 131 pages it did not download

Click one, and the rail tells you what it is and what unlocking it would cost. Here a ghost covering 131 assorted one-off pages is selected: the kit offers one example of the shape rather than all 131, because 131 near-duplicates teach your AI nothing new. 0.9 per cent of this product is explored, and the kit says so instead of rounding up.

The Map tab with a frontier ghost selected: the hovered ghost reads '(assorted one-off pages) — not downloaded yet — linked from 23 pages — click to unlock', and the rail panel is headed 'Locked — not downloaded yet' with the line '131 pages share this layout — one example covers the shape for your AI', a 'Get one example' button, a quieter 'Download all 131', and a checkbox list of the specific URLs.

Design language

Measured from your product, or absent.

Colours, type ramp, spacing ladder and radii, aggregated from the captured pages, every value carrying the count and page-spread behind it.

What the counts say, and what the tab leaves out

As here: the product's darkest tone is ×42,696 across all thirty-eight pages and the accent is ×24,479, also across all thirty-eight. One toggle re-reads the same colours as a treemap of how often each appears. The tab opens with method: heuristic in its own words: evidence of how the product is styled today, not a claim about its authored tokens. It even names what it left out: values seen on a single page stay in tokens.json instead of being promoted into the ramp.

The Design language tab: a provenance strip reading 'Everything below is method: heuristic — values observed on the captured pages, aggregated and clustered by statistics — they are evidence of how the product is styled today, not its authored design tokens', then 'Filter: seen on 2+ pages (161 single-page values kept in tokens.json)', above a Palette / Proportions toggle and forty-eight colour swatches, each labelled with its hex, how many times it was seen and on how many pages: #202122 ×42,696 on 38 pages, down to #DFF2EB ×2 on 2 pages.

The working ledger

It borrows your product's own colour: observed, never guessed.

A journal down the side of the dashboard: what was captured, what your AI read, what it wrote, what changed. The top slot holds the one move worth making next, and it changes as the work lands.

What it asked for in this shot, and where the accent came from

When pages are waiting to be read it asks for that, with the describe prompt ready to copy; here every page has been read, so it has moved on to a hygiene note instead, a page nothing links to, with a fix prompt ready to copy. And the accent the dashboard wears is lifted from the product you captured: observed, never guessed.

The working ledger: 'THE KIT · Worth a look — 1 thing in the library · Show details ▸'; then 'NEXT · YOUR AI KNOWS YOUR PRODUCT NOW — Make your first thing — a wireframe on a real page, or a question answered from the library', with 'Copy a wireframe prompt' and 'Ask a question' buttons; then 'AUG 4 · 02:50 AM · YOUR AI — Wireframes, Landing round 3 · 1 approach'. The rail continues below the frame.

Any product

Seven products, seven maps.

Point it at what you design for. Seven real captures in seven separate workspaces (a marketplace, a retailer, a sports site, a travel platform, an encyclopedia, a payments product, a developer platform), each dashboard wearing that product's own colour, observed rather than configured. Eighteen to forty-one pages in each library, and each map says out loud how little of its site that is: from eleven per cent down to four-fifths of one. Same kit, same one script, nothing set per product.

  • The kit's Map pane on a capture of flipkart.com: thirty-nine page discs in two labelled rings (one click and two clicks from home) around a lit centre, thirty-three of them outlined in the measured blue accent and six badged ×N, where one downloaded page stands for a whole template shape, with dashed ghost pages in the fog beyond and a footer reading '3% of the known world explored'. flipkart.com#2874F0
  • The kit's Map pane on a capture of amazon.in: forty-one page discs packed into a dense ring around a lit centre, each disc its own captured screenshot, thirteen of them badged ×N where one downloaded page stands for a whole template shape, a further ring labelled two clicks, dashed ghost pages in the fog, and a footer reading '1% of the known world explored'. amazon.in#2162A1
  • The kit's Map pane on a capture of espncricinfo.com: thirty-seven page discs ringing a lit centre with a second ring labelled two clicks. Twenty of them are badged ×N, where one downloaded page stands for a whole template shape, several of those drawn small because few pages link to them, so this map carries a visible scatter of purple among the blue. Dashed ghost pages spread through a blue-tinted fog, and a footer reading '3% of the known world explored'. espncricinfo.com#0860C4
  • The kit's Map pane on a capture of airbnb.co.in: thirty-four page discs across two rings labelled one click and two clicks, with an arc reading 'not linked from home — 2 pages', eight discs badged ×N where one downloaded page stands for a whole template shape, dashed ghost pages in the fog, and the whole fog glowing crimson, because that is the accent the kit measured in this product's own pages. airbnb.co.in#DA1249
  • The kit's Map pane on a capture of en.wikipedia.org, the same library the hero shows, at a wider zoom: thirty-six page discs across two rings labelled one click and two clicks, thirty-three rimmed in the measured Wikipedia blue and three badged ×N, the largest reading ×2.9k, dashed ghost pages in the fog, and a footer reading '0.8% of the known world explored'. en.wikipedia.org#3366CC
  • The kit's Map pane on a capture of xflowpay.com: eighteen page discs in a single ring around a lit centre, every one of them outlined in the measured indigo accent and the centre badged ×2, dashed ghost pages in the fog, and a footer reading '11% of the known world explored', the most-explored library of the seven, because it is the smallest site. xflowpay.com#5E76E3
  • The kit's Map pane on a capture of github.com: forty page discs in a dense ring around a lit centre, most of them dark because the product's own pages are, thirty-three rimmed in the measured link blue and eight badged ×N where one downloaded page stands for a whole template shape, dashed ghost pages in the fog, and a footer reading '5% of the known world explored'. github.com#0969DA

Every hex above was measured, not chosen: it is the most-used colour in that product's own captured pages that a UI accent could plausibly be, and the dashboard then wears it. Nothing was configured per product.

Why six of the seven hexes are blue, and why amazon.in's paints lighter

Which is also why six of these seven hexes sit inside a twenty-degree band of blue and only airbnb's crimson doesn't. A palette someone picked would be prettier than this, and that is rather the point. Where a product's colour can't clear the dashboard's contrast floor, the kit lightens it just enough and records that it did, which is why amazon.in's measured #2162A1 paints as #2367A9. Where no colour qualifies, no accent is recorded at all and the dashboard keeps its own indigo: absent rather than invented.

These maps are shown small on purpose. At this size a captured product is only its shape (how many pages, how far from home, how much fog), which is all this section claims.

What the accent rim means: all 256 pages have been read

Every map here has also been read: all 256 pages across the seven libraries carry a description, written by an AI and labelled method: ai in the library so it is never mistaken for a captured fact. That is what the accent rim marks: a page whose description exists. That is why these maps are warm where earlier versions of this page were pale. A purple ×N disc is described too; it simply also stands for a template shape, so it wears that badge instead. The hero at the top of this page, and every other full-size dashboard view below it, is the same product: en.wikipedia.org.

Not every page comes home.

Following links is all the kit does, so a page that only opens behind a sign-in, or that answers a link with a soft 404, doesn't come home. amazon.in's run recorded seven of those (six auth-redirect, one soft-404), each with its reason, in the same file that lists what did come home. The maps above are what one read-only crawl reached, not a claim that every page type is reachable.

Straight into Figma

Take any captured page into Figma.

Click ⧉ Copy for Figma on any page or state in the dashboard: no plugin, no Dev Mode, no paid seat. The conversion happens locally, in your browser, from the snapshot's real DOM, so what lands in Figma is the product's own structure as nested auto-layout frames and real text layers, not a flat image.

A page doc in the dashboard for the Landing page: an actions row reading 'Wireframe on this page', '⧉ Copy for Figma', 'Ask about this page' and 'Open real HTML', the captured page's screenshot below it, and a rail listing what the page is, its link counts, and its capture history.

Layer names from a real paste

Read back out of the Figma file a pasted page landed in: frames and text, nested, editable.

Html → Body  1718 × 2137
 └ Section
   └ Container
     ├ Background+Border
     │  └ Text
     ├ ContainerText
     └ MarginContainerText

Arrange or restyle freely; your Figma library stays untouched. There are two network moments, stated plainly below, and neither uploads your page.

The two network moments, named

A copy loads Figma's own converter from mcp.figma.com at the moment you click, and if that host can't be reached it falls back to the converter bundled with the kit, which fetches public font files from a CDN so your pasted text stays text. Neither uploads your page: the conversion happens in your own browser, and no data of yours is sent to either host.

The rules it lives by

Boring on purpose.

  • Local-only: captures never leave your machine.
  • Read-only: it follows links, never clicks your product's buttons.
  • Never touches credentials: you log in, in your own browser window.
  • Measured or absent: nothing on the dashboard is invented.
  • Any AI: Claude Code, Cursor, or a chat window; the prompts ship in the box.

Two disclosures those lines earn: capture dismisses a cookie banner when one blocks the page, and it logs that it did: the single exception to never clicking. And each page's one-line description is written by your AI, which is why the dashboard labels it method: ai everywhere it appears. Everything else was extracted deterministically.

Get started

Paste one prompt, or run three lines.

Both ways in are on this page: an AI assistant that reads files, or a terminal. What each one needs is below. Name the folder after the product you are capturing.

What the assisted way in needs

an AI assistant with file access Node 18 or newer macOS, Linux or Windows no account, no key, no signup

Cold-tested with Claude's desktop app and its terminal CLI, which is what INSTALL.md was written for. Assistants that read AGENTS.md are expected to work and have not been verified here, so if yours stalls, read that as unsupported rather than broken.

Whichever assistant you use is its own product, on its own plan. The kit itself is free and needs no account.

What the terminal way in needs

Node 18 or newer git macOS, Linux or Windows no account, no key, no signup

git is only for the clone. Without it, download the repo as a zip from GitHub instead.

The setup steps an assistant follows are in INSTALL.md; what the kit does once it's installed is in the README.

This page counts page views; the kit counts nothing. The counter is Vercel Web Analytics, served from this site's own domain, so the page still fetches nothing from a third-party host. Vercel's privacy documentation states that it uses no third-party cookies, identifies visitors by a hash created from the incoming request, discards the session after 24 hours, and stores nothing that could reconstruct your browsing across other sites or personally identify you. The kit itself is untouched by this and stays local-only: your captures never leave your machine.