Step 2 of 2 · in your repo
Run these where your project lives. The first one costs nothing and asks for nothing.
$ npx synthesisui@latest import --dryReads your files and writes a census you can open: _synthesisui/census.json. Every colour, radius, spacing and font that repeats, ranked by how often. Nothing is sent, and no account exists yet.
$ npx synthesisui@latest loginOpens a browser to confirm a code. This is the first moment anything can leave your machine, and it happens because you asked.
$ npx synthesisui@latest importSends that same census and prints a link. What lands on your account is a v1 that mirrors your tokens - your values, your names, nothing improved. Then it offers a v2.
Working in a monorepo?
Point it at the package that holds your vocabulary rather than the root - import --dir packages/ui - then measure each app against it with doctor apps/<name>. One system, many consumers: reading a whole workspace averages a light app and a dark one into a palette that is neither. The command says so when it sees several.
Using Claude Code?
Ask it to import this project into SynthesisUI. It runs the same census, then adds what a parser cannot judge - which grey is the real grey, which family is your display voice, what this product actually is - and sends that reading along. The numbers stay deterministic either way.
Rather see the score before any of this? Run the free check