Open Standard for Generative UI Based in @claude.ai
SaferSkills independently audited claude-ui (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<div align="center">
A streaming-first Generative UI workspace and open markup specification.
Quick Start · GUIM Spec · Examples · Design System
</div>
Claude-UI is a zero-dependency, browser-native workspace for Generative UI. It implements GUIM (Generative UI Markup) — a compact, streaming-first component language that lets language models output rich, interactive UI directly inside chat interfaces, using significantly fewer tokens than equivalent JSON-based approaches.
The visual design is a reference implementation inspired by Claude.ai. Claude-UI is an independent open-source project and is not affiliated with or endorsed by Anthropic.
Your component library defines what the model can generate.
System Prompt ──► LLM ──► GUIM Stream ──► Parser ──► Live UI
(GUIM schema) (token by token) (incremental)Claude-UI has no build step and no runtime dependencies. Clone and serve:
git clone https://github.com/holasoymalva/claude-ui.git
cd claude-ui
npx serve .Then open http://localhost:3000 in your browser.
Alternatively:
python3 -m http.server 8080
# → http://localhost:8080To explore individual rendered components without the full workspace:
open examples/dashboard.htmlGUIM (Generative UI Markup) is a BBCode-inspired syntax designed to be easy for language models to emit and easy for browsers to parse incrementally.
| Format | Tokens (dashboard scenario) | Streaming-safe | Human-readable |
|---|---|---|---|
| Vercel JSON-Render | ~2,247 | ✗ | ✗ |
| JSON (raw schema) | ~2,261 | ✗ | ✗ |
| GUIM v1.0 | ~1,226 | ✓ | ✓ |
JSON requires the full document to be emitted before it can be parsed. GUIM tokens can be compiled as soon as the opening tag is closed, which means the first component renders while the model is still generating the rest.
| Tag | Required | Optional | Self-closing |
|---|---|---|---|
[card] | — | title, width="full" | ✗ |
[grid] | — | columns (default: 2) | ✗ |
[metric] | label, value | trend (+X% · up · down) | ✓ |
[chart] | type (bar · pie), data (0–100) | label | ✓ |
[table] | headers, rows | — | ✓ |
[tasktracker] | tasks (comma-separated) | — | ✓ |
[list] + [listitem] | listitem: text | — | ✗ / ✓ |
[button] | label | variant (primary · secondary) | ✓ |
[weather] | city, temp | condition | ✓ |
[card title="Infrastructure Overview"]
[grid columns="3"]
[metric label="CPU Load" value="38%" trend="down" /]
[metric label="Memory" value="14.2 GB" trend="up" /]
[metric label="Latency" value="9 ms" trend="down" /]
[/grid]
[chart type="bar" data="38" label="CPU Utilisation" /]
[table
headers="Service, Region, Status, Latency"
rows="API Gateway,us-east-1,Healthy,8ms;Auth Service,eu-west-1,Healthy,12ms"
/]
[/card]Open the Connectors & Settings → Schemas Registry tab in the workspace and submit a name, description, and JSON schema. The workspace exports the registered schema as a system prompt fragment you can paste into any LLM integration.
claude-ui/
├── index.html # Workspace shell: chat view, artifact gallery, settings
├── styles.css # Design tokens, layout system, component styles
├── parser.js # Stream-safe GUIM tokenizer and incremental compiler
├── app.js # View routing, mock LLM stream, schema registry state
└── examples/
└── dashboard.html # Standalone component showcase (no workspace required)`parser.js` — The streaming tokenizer. Accepts a partial or complete GUIM string and returns a DOM subtree. Safe to call on every new token without re-parsing previous output.
`app.js` — Application controller. Handles view routing, the mock streaming pipeline, artifact persistence (localStorage), and the connector/schema registry.
`styles.css` — Design token layer built on CSS custom properties. All colors, spacing, typography, and animation values are defined as variables so the entire design system can be overridden from a single block.
Claude-UI is a reference implementation of a chat UI inspired by Claude.ai and Claude Code. The intent is to demonstrate what a high-fidelity Generative UI workspace looks like when the visual design is taken seriously.
| Token | Value | Usage |
|---|---|---|
--bg-primary | #1c1917 | Base canvas (warm dark, stone-950) |
--bg-secondary | #242120 | Sidebar, panel backgrounds |
--bg-tertiary | #2e2b29 | Card and input backgrounds |
--accent-color | #d97706 | Amber-600 — primary action color |
--font-sans | Inter | Body and UI text |
--font-mono | JetBrains Mono | Code, markup, schema views |
Chat surface: User messages render as right-aligned pills. Assistant messages appear as clean flowing text anchored by the Claude logomark — no border box, no background fill.
Artifact cards use a dog-ear clip-path on the top-right corner, referencing the document metaphor used in Claude.ai artifacts.
The examples/ directory contains self-contained HTML files that require no build step.
| Example | Description |
|---|---|
examples/dashboard.html | Full component showcase — all GUIM elements with live renders and markup reference |
More examples (React integration, Claude API streaming, Next.js) are planned. See open issues or open a PR.
parser.js published as a standalone ES module (zero-dep, tree-shakeable)useGUIMStream hook + <GUIMRenderer /> component)Contributions are welcome — bug fixes, new GUIM components, framework integrations, or design improvements.
git checkout -b feat/my-changeFor larger changes, open an issue first to discuss scope.
MIT — see LICENSE for details.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.