Govern the user interfaces your agents ship.
Invite-only for now — one email when your spot opens.
You told your agent to build UI.It didn’t build yours.
It ignored your design system — again. One rogue hex at a time, your brand’s identity slips away.
Fragments closes the loop. Your components become the contract. Installed hooks bring it into agent sessions and check supported edits. Add the contract check to CI and require it before merging.
Writesettings/NotificationsForm.tsx
PostToolUse · fragments hook · 47 ms
NotificationsForm.tsx:9FUI1004Bespoke <button> has a library equivalent. Swap to <Button> from @acme/ui.
NotificationsForm.tsx:10FUI2005Raw color #7c3aed on inline background. Use a token.
2 findings introduced · returned to the agent
The loop first. The gate second.Local while the agent writes. Required when the branch merges.
Keep your React library
Point it at the components you already ship. The manifest is yours to curate — no rewrite, no new library.
The loop runs in the editor
The agent reads your vocabulary before it writes and gets the repair the moment it drifts. Nothing leaves your machine.
The gate required to merge
Pin one contract id on the branch. The check passes, blocks or holds, and every verdict leaves a receipt.
Five proofs, one contract.
From the session to the merge queue, the same manifest answers everywhere your interface code gets written.
fragments check --ciThe gate on every pull request
fragments/contract-compliance is the required check. One verdict per head against one FCID, with a receipt your reviewers can open.
fragments hook installThe loop in the editor
Claude Code, Cursor and Codex hooks supply the vocabulary and check supported edits. Setup starts with advisory feedback; Claude Code also supports explicit blocking policies.
fragments mcp --stdioLocal MCP search
search("three stats in a row") answers with the pattern and its exemplar from your own repository.
/evaluations/evr_…Receipts
Every verdict persists as evr_… with the head, the FCID and the findings it introduced.
usefragments.com/errorsVersioned finding codes
Every finding carries an FUI code with a public explain page.
Works with the stackyou already run
- React
- Next.js
- Vite
- TypeScript
- Material UI
- Radix
- Chakra
- Mantine
- CSS
- SCSS
- CSS Modules
- Tailwind
- styled-components
- Emotion
- vanilla-extract
- Storybook
- GitHub Actions
- Claude Code
- Codex
- Cursor
- Copilot
- MCP
npx @usefragments/cli add buttonBring your own library. Or borrow ours.
Fragments works with whatever you ship today. Starting fresh? Fragments UI is open source, built on Base UI and styled by tokens, and every primitive carries the card an agent reads before it writes a line.
Open findings
128
−34% since the contract activated
Merges held
3
2 waiting on a fix
Merge gate
How findings meet a pull request.
Activate a contract
What the gate enforces, and where.
Reviewers
Who approves a contract change.
Dismiss finding
FUI1004 · Toolbar.tsx:41 renders a raw button.
acme/web #482
Toolbar filters · 2 checks
FUI1004 · Toolbar.tsx:41 renders a raw <button>. The contract names Button.
Swapped it for Button and moved the icon to the leading slot.
Check passed. The merge is open.
Findings
acme/web · main
finding | severity | ||
|---|---|---|---|
FUI1004Toolbar.tsx:41 | high | ||
FUI2005Sidebar.module.scss:12 | medium | ||
FUI1001Modal.tsx:88 | high | ||
FUI3001IconButton.tsx:30 | low |
Agent access
Every agent reads the same contract.
acme/mobile-web
First scan · 1,204 files

Untitled UI, on AI-native design systems“The most explicitly AI-native design system we've seen … the most forward-thinking option available.”
Fragments UI is how teams adopt. Fragments Cloud is how teams enforce.
Frequently asked questions
Give your agents a design system they can't ignore.
Invites go out in small batches. Leave your work email and you're in the queue.
No newsletter. No spam.