How to use Mateo with Claude Code or Cursor
The difference between AI-generated UI that looks generic and UI that looks designed is almost entirely context. Here's a setup that works, step by step.
1. Generate the specification
Run the site whose design you want to match through Mateo. Use the URL when it's live; add a screenshot on paid plans if a specific state matters. You get a design.md with exact values and an AI Context summary.
2. Put the file where the tool can see it
Claude Code reads the repository directly:
- Save the download as
design.mdin the project root. - Mention it once per session - "UI work follows design.md" - or add that rule to your project's
CLAUDE.mdso every session inherits it.
Cursor:
- Add
design.mdto the project. - Reference it in chat with
@design.md, or cite it from your rules so it applies to all generations.
3. Establish the constraint once
The prompt that changes everything is the standing rule, not the per-request reminder:
All interface work in this project follows design.md. Colors, typography, spacing, radii, shadows, and motion come from that file - never from your defaults. When design.md doesn't cover a case, derive from its closest rule and say so.
4. Use component specs for precision work
For a single component that must be right, paste just its block from the report's Component specifications section - every value is already inlined, so the model has nothing left to guess.
5. Audit against the spec
After a large generation, close the loop:
Audit the UI you just wrote against design.md. List every deviation - color, type, spacing, motion - and fix them.
Models are notably better at checking work against a document than at holding every rule during generation. Use that.
Related: what belongs in a design.md · getting more accurate specs.