JSON generative UI for agents
JSON generative UI for agents
Section titled “JSON generative UI for agents”Primary: Repo · Docs · Homepage
Nearby: OpenUI · A2UI · CopilotKit GenUI · AI SDK GenUI
Pin checked 2026-10-02 (Shanghai / UTC+8). Ask via Primary / dr eggbot — fuzzy recall of name “generative-ui” or close.
1. Best-guess primary candidate
Section titled “1. Best-guess primary candidate”| Field | Value |
|---|---|
| Name | json-render |
| Org | Vercel Labs (vercel-labs/json-render) |
| Tagline | “The Generative UI framework.” |
| Links | github.com/vercel-labs/json-render · json-render.dev · docs |
| Stars / license | ~15.8k ★ (fetched 2026-10-02) · Apache-2.0 |
| Created | 2026-01-14 |
Why this one: The remembered phrase was JSON-defined generative UI for agents, name maybe “generative-ui.” json-render is the project that (a) literally brands itself Generative UI framework, (b) uses JSON specs as the wire format (flat root + elements tree, streamable JSONL patches), (c) is built for agent/LLM composition with Zod catalogs and guardrails, and (d) is the loudest match in X/HN/Exa for that wording in late 2026. Name is json-render, not generative-ui — the fuzzy ID is the marketing term, not the npm package name.
2. How JSON → UI works + agent pattern
Section titled “2. How JSON → UI works + agent pattern”Pipeline
Section titled “Pipeline”User prompt → AI + Catalog (Zod schemas) → JSON Spec (streamed) → Registry → Native components- Catalog (guardrails) —
defineCatalog: components with typed props, actions with descriptions; AI can only emit types in the catalog. - Prompt — catalog can generate system prompts (
catalog.prompt); natural-language request (“show me a revenue dashboard”). - JSON spec — flat adjacency-list tree, e.g.:
{ "root": "card-1", "elements": { "card-1": { "type": "Card", "props": { "title": "Revenue Dashboard" }, "children": ["metric-1", "metric-2"] }, "metric-1": { "type": "Metric", "props": { "label": "Total Revenue", "value": "$48,200" } } }}- Registry + Renderer — map catalog types → real React/RN/Vue/… components;
<Renderer spec={spec} registry={registry} />. Streaming: SpecStream / JSONL progressive patches so UI paints as tokens arrive. - Extras —
$statedata binding, visibility conditions, actions/emit, generation modes (standalone page vs inline chat). Packages include@json-render/mcp(MCP Apps), AI SDK adapters, shadcn presets, Remotion/PDF/email/Ink/R3F.
Agent integration pattern
Section titled “Agent integration pattern”- Treat the catalog as the tool/UI contract the agent may compose.
- LLM (or decision layer like experimental Jev +
json-render) outputs only valid JSON within the catalog — no arbitrary code execution. - Client owns styling/security; agent owns structure/composition.
- Fits chat (inline specs), chat+ canvas, or chatless app surfaces that hydrate from agent JSON.
Contrast with older Vercel AI SDK Generative UI: tool-call → React component mapping (streamText + tool parts, or experimental RSC streamUI). That is tool-result → fixed component, not LLM invents a JSON component tree. json-render is the catalog-JSON-tree approach; AI SDK GenUI is the tool-to-component approach (still alive under AI SDK UI GenUI; RSC path is paused/experimental).
3. Status
Section titled “3. Status”| Aspect | Status |
|---|---|
| Lifecycle | Alive / active (Vercel Labs) — not archived |
| Maturity | Labs / early productized research; Rauch (Jan 2026 TNS interview) called it experimental but “very sound”; multi-renderer monorepo has grown aggressively (web, mobile, PDF, email, video, terminal, 3D, Next routes) |
| Ecosystem buzz | Heavy X discussion Sep 2026 (json-render + Jev); HN stories on json-render.dev; OpenUI benchmarks treat it as the main JSON baseline |
| Risk notes | Labs branding = API churn possible; token cost of JSONL patches called out by OpenUI (~2× OpenUI Lang in their benchmarks) |
4. Alternatives (2–4+)
Section titled “4. Alternatives (2–4+)”| Name | Approach | Status | Link |
|---|---|---|---|
OpenUI (Thesys / thesysdev/openui) | Catalog + OpenUI Lang (line-oriented DSL, not JSON); streaming renderer; LangChain/AG-UI; built-in chat libs; claims ≤67% fewer tokens vs JSON | Alive, MIT, ~8.4k ★, openui.com | github.com/thesysdev/openui |
| A2UI (Google + CopilotKit) | JSON Agent-to-UI protocol (createSurface / updateComponents / updateDataModel); catalog of trusted components; transports A2A / AG-UI; Flutter GenUI uses it | Alive (v0.9.1 current, v1.0 candidate) | a2ui.org · google/A2UI |
| CopilotKit Generative UI | Controlled / declarative / open GenUI pillars; AG-UI transport; A2UI renderer; chat+canvas scaffolding | Alive | copilotkit.ai/generative-ui |
| AI SDK Generative UI | Tool results → React components (streamText + UI message parts); RSC streamUI experimental/paused | Alive (UI path); RSC paused | ai-sdk.dev … generative-user-interfaces |
| Also nearby | assistant-ui (chat primitives + generative-ui skill); JSON Forms / RJSF / Formily (JSON Schema → forms, not agent GenUI); Daub (tiny AI UI rendering spec, HN) | Mixed | assistant-ui.com · jsonforms.io · daub.dev |
5. Sources
Section titled “5. Sources”- vercel-labs/json-render README — “The Generative UI framework”
- json-render.dev/docs — catalog → JSON spec → registry
- thesysdev/openui · openui.com/docs/openui-lang · benchmarks · Stop making AI write JSON
- A2UI intro (Google) · a2ui.org · protocol v0.9
- CopilotKit Generative UI · CopilotKit A2UI
- AI SDK Generative User Interfaces
- The New Stack — Vercel’s json-render (2026-01-23)
X (search_posts_all)
Section titled “X (search_posts_all)”- Justshareit518 — “Vercel’s Generative UI Framework: json-render” (2026-09-20)
- ctatedev — json-render + Jev experiment (2026-09-18)
- tom_doerr — OpenUI 67% fewer tokens than JSON (2026-09-12)
- LFrefman — catalog + Zod → constrained JSON
HN (Algolia)
Section titled “HN (Algolia)”- JSON-render: LLM-based JSON-to-UI tool — 77 pts
- OpenUI: Open Standard for Generative UI — 34 pts
- Broader “generative UI” hits include v0, markdown-as-protocol, NN/g, Tambo, OUI-1
- Direct
reddit.com/search.jsonblocked (HTML interstitial) from box egress. - Secondary: OpenUI launch thread referencing json-render as alternative (snapshot mention — “I’m building a Generative UI framework called OpenUI” + comment pointing at vercel-labs/json-render).
GitHub
Section titled “GitHub”vercel-labs/json-render·thesysdev/openui·google/A2UI· CopilotKit A2UI docs/repos
6. Gaps / fuzzy ID notes
Section titled “6. Gaps / fuzzy ID notes”- No package literally named
generative-uithat is the canonical JSON agent UI framework. The remembered brand is almost certainly the category name (“Generative UI”) that Vercel/json-render and OpenUI both use. - If the memory was about token-efficient / streaming language rather than JSON specifically → prefer OpenUI (they abandoned JSON on purpose after Thesys C1 JSON).
- If the memory was cross-agent / cross-client protocol → prefer A2UI (JSON, Google-led).
- If the memory was chat tool → widget without inventing layout trees → AI SDK Generative UI or assistant-ui.
- Classic JSON Forms / RJSF / Formily are JSON Schema form engines, not LLM agent GenUI — easy false friends.
- Reddit primary API was unreachable from this box; HN coverage of json-render is thinner than X buzz (many low-point submissions).
- Star counts and package surfaces move fast in Labs land — re-check repo before shipping.