
Uxloom
io.github.uxloom-devPublished by GitHub account uxloom-devv0.14.0Updated Oct 27, 2026
Agent-native UI/UX design validation: journey completeness, state coverage, and WCAG checks.
Overview
Local MCP server that models UI journeys as state machines and mechanically checks designs for missing states, dead ends and WCAG issues.
- What you can do
- Initialize a design project and capture the product brief through guided question-and-answer steps
- Define user journeys as state machines and register screens with their required states
- Validate the design and get a coverage report listing unreachable screens, dead ends, missing error, empty, loading and offline states, contrast failures, small touch targets and label overflow
- Run a bounded design review loop that records rationale, rejected alternatives and confidence for each decision
- Read pinned preview comments as work items with the screen contract, journey references and current findings, then resolve them
- When to use it
- Useful when an assistant is generating or reviewing UI screens and you want a deterministic, repeatable check that the design covers all states before code is written, or when design completeness should gate CI.
- Requirements
- Runs as a local stdio process, typically launched with npx from the npm package uxloom, so Node.js and network access for the package are needed. The optional UXLOOM_PROJECT environment variable points to the project file, defaulting to uxloom.project.json in the working directory. No authentication is declared.
Installation
In SourceWeft
- Open Uxloom in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
UXLoom
Your generator gave you 6 screens. UXLoom proves you're missing 9 states.
AI generators (v0, Lovable, Figma Make, Claude) produce happy-path screens. UXLoom is the critic layer: it models user journeys as state machines, treats screens as nodes with state contracts, and mechanically proves what's missing before a line of production code exists — unreachable screens, dead ends, missing error/empty/loading states, WCAG contrast failures, undersized touch targets, and labels that will overflow under localization.
Agent-native by design: the interface is an MCP server (works with Claude Code, Codex, and any MCP client), with Agent Skills included.
Deterministic by design: same input, byte-identical report — benchmarked
(packages/bench) at 1.000 precision/recall on a seeded
defect catalog, SHA-256-stable across processes, 1000 screens in under 5ms.
That's what lets design completeness gate CI, where an LLM opinion can't.
Website: uxloom.dev · npm: uxloom · MCP registry: io.github.uxloom-dev/uxloom · [uxloom MCP server]
[uxloom check finding 9 errors in a generated checkout flow, then passing the repaired one]
Packages
New here? Start with the Quickstart — prerequisites, the Claude Code walkthrough, what to say to your agent, and troubleshooting.
[Connecting UXLoom to Claude Code and running the first check]
Quick start (agents)
The project file (uxloom.project.json) lives in your workspace and belongs
in git — the design is data, versioned next to the code it specifies.
Quick start (humans & CI)
Evidence-based design: every decision in the contract can carry its
rationale — reasoning, rejected alternatives with pros/cons, sources,
confidence — enforced by the critics once adopted, iterated through a
bounded design_review loop (max 3 rounds), and shown to stakeholders in
the preview's evidence panel (ⓘ) and exports. The design doesn't just
validate; it argues its case.
Agent-addressable comments: a reviewer drops a pinned comment in the
preview and clicks "→ agent". The comment becomes a work item any Gen-AI
model can read with full context — comment_context returns the pinned
layout block, the screen contract, the journey references, and the current
findings for that screen — act on, and resolve back into the preview with
a note. One click from feedback to addressed.
CI-native: check and audit take --json, --sarif (GitHub code
scanning), and --github (inline PR annotations). Brownfield-ready:
--update-baseline freezes existing findings so only new drift blocks;
uxloom.config.json tunes thresholds to your accessibility bar. Full
documentation: uxloom.dev/docs.html.
[Live preview: state tabs and clickable journey events on wireframe mocks]
Add it to CI and a happy-path-only design can never merge:
Workflow (also shipped as a skill in packages/mcp-server/skills/):
project_init → brief_start/brief_answer → journey_define →
screen_register → project_validate → fix → repeat until zero errors →
coverage_report.
Does it actually catch things?
tools/dogfood.mjs drives the real MCP server through three products, twice
each: screens as a happy-path generator hands them over, then repaired using
the validation report. Artifacts in examples/.
Caught: an unreachable promo screen, dead-end verification states, five
undesigned payment/error states, a 2.4:1 contrast button, a 40px touch target
on Android, a checkout label that breaks in German, and three products' worth
of missing offline states. Zero errors and zero warnings is reachable
honestly — screens declare documented exemptions where a baseline state
genuinely cannot apply, and contradictory exemptions are flagged.
Development
Status
Released and maintained: on npm and
the official MCP registry, with the benchmark scorecard published in every
GitHub release. The
JourneyGraph format (formatVersion: "0.1") may evolve until 1.0; releases
follow RELEASING.md — every surface is drift-checked in CI.
License
MIT
Source: README.md at commit 4c8c1e3
Tools
0Version history
1- v0.14.0LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts