The Open Standard for Generative UI
8,752
stars
897
commits
TypeScript
primary language
Sep 11, 2026
updated
OpenUI is a full-stack, renderer-agnostic Generative UI framework built around a compact, streaming-first language. It offers official React support with built-in component libraries and ready-to-use chat interfaces, plus community-supported integrations for other frameworks. OpenUI Lang uses up to 67% fewer tokens than JSON.
Docs · Playground · Discord · Contributing
Important: OpenUI has no official cryptocurrency, token, or coin. Any asset using the OpenUI name is unaffiliated with this project and is not endorsed by its maintainers.
At the center of OpenUI is OpenUI Lang: a compact, streaming-first language for model-generated UI. Instead of treating model output as only text, OpenUI lets you define components, generate prompt instructions from that component library, and render structured UI as the model streams.
Core capabilities:
npx @openuidev/cli@latest create --name genui-chat-app
cd genui-chat-app
echo "OPENAI_API_KEY=sk-your-key-here" > .env
npm run dev
This is the fastest way to start with OpenUI. The scaffolded app gives you an end-to-end starting point with streaming, built-in UI, and OpenUI Lang support.
What this gives you:
Your components define what the model can generate.
flowchart LR
A["Component Library"] --> B["System Prompt"]
B --> C["LLM"]
C --> D["OpenUI Lang Stream"]
D --> E["Renderer"]
E --> F["Live UI"]
Try it yourself in the Playground: generate UI live with the default component library.
| Package | Best for | Description |
|---|---|---|
@openuidev/lang-core | Framework-agnostic parsing and prompt generation | Core parser, prompt-generation, runtime-evaluation, and type layer with no React, Vue, or Svelte dependency |
@openuidev/langchain | LangChain and LangGraph agents | Agent transformer and server helpers that stream OpenUI through AG-UI |
@openuidev/react-lang | React rendering runtimes | Define component libraries, generate prompts, and render streamed OpenUI Lang in React |
@openuidev/react-headless | Bring-your-own React chat UI | Headless chat state, streaming adapters, and message format converters |
@openuidev/react-ui | Fastest path to a full React chat experience | Prebuilt chat layouts, standalone UI primitives, and two built-in component libraries |
@openuidev/react-email | Email generation and HTML export | React Email component definitions plus prompt options for model-generated emails |
@openuidev/vue-lang | Vue integrations | Vue 3 bindings for defining model-renderable components and rendering streamed OpenUI Lang |
@openuidev/svelte-lang | Svelte integrations | Svelte 5 bindings for defining model-renderable components and rendering streamed OpenUI Lang |
@openuidev/browser-bundle | CDN, iframe, and no-build embeds | Prebuilt browser bundle that ships the renderer, UI library, React, and styles as script + stylesheet assets |
@openuidev/cli | Project scaffolding and prompt generation | CLI for creating new apps and generating system prompts or JSON schema from a library definition |
@openuidev/openclaw-os-plugin | OpenClaw workspaces | OpenClaw OS plugin for serving OpenUI-powered OpenClaw workspaces |
Common starting points:
# React app with OpenUI rendering and prebuilt components
npm install @openuidev/react-lang @openuidev/react-ui
# Framework-agnostic backend or Edge prompt generation
npm install @openuidev/lang-core
# LangChain/LangGraph agent and server integration
npm install @openuidev/langchain @langchain/langgraph
# Vue or Svelte runtime
npm install @openuidev/vue-lang
npm install @openuidev/svelte-lang
OpenUI Lang is designed for model-generated UI that needs to be both structured and streamable.
Measured with tiktoken (GPT-5 encoder). OpenUI Lang vs two JSON-based streaming formats across seven UI scenarios:
| Scenario | Vercel JSON-Render | Thesys C1 JSON | OpenUI Lang | vs Vercel | vs C1 |
|---|---|---|---|---|---|
| simple-table | 340 | 357 | 148 | -56.5% | -58.5% |
| chart-with-data | 520 | 516 | 231 | -55.6% | -55.2% |
| contact-form | 893 | 849 | 294 | -67.1% | -65.4% |
| dashboard | 2247 | 2261 | 1226 | -45.4% | -45.8% |
| pricing-page | 2487 | 2379 | 1195 | -52.0% | -49.8% |
| settings-panel | 1244 | 1205 | 540 | -56.6% | -55.2% |
| e-commerce-product | 2449 | 2381 | 1166 | -52.4% | -51.0% |
| TOTAL | 10180 | 9948 | 4800 | -52.8% | -51.7% |
Full methodology and reproduction steps in benchmarks/.
Detailed documentation is available at openui.com.
openui/
├── packages/
│ ├── react-lang/ # Core runtime (parser, renderer, prompt generation)
│ ├── react-headless/ # Headless chat state & streaming adapters
│ ├── react-ui/ # Prebuilt chat layouts & component libraries
│ ├── react-email/ # React Email component library for generated emails
│ ├── lang-core/ # Framework-agnostic parser, prompt, and runtime layer
│ ├── langchain/ # LangChain/LangGraph streaming integration
│ ├── vue-lang/ # Vue runtime bindings for OpenUI Lang
│ ├── svelte-lang/ # Svelte runtime bindings for OpenUI Lang
│ ├── browser-bundle/ # Script-tag bundle for CDN / iframe / no-build embeds
│ └── openui-cli/ # CLI for scaffolding & prompt generation
├── skills/
│ └── openui/ # Claude Code skill for AI-assisted development
├── examples/ # Capability and integration reference implementations
│ ├── agent-frameworks/
│ ├── app-frameworks/
│ ├── design-systems/
│ ├── harnesses/
│ └── miscellaneous/
├── docs/ # Documentation site (openui.com)
└── benchmarks/ # Token efficiency benchmarks
Good places to start:
examples/README.md to find a focused reference implementationCONTRIBUTING.md if you want to contribute| Feature | OpenUI | json-render (Vercel) | A2UI (Google) | CopilotKit OpenGenUI |
|---|---|---|---|---|
| Tokens | 1x | 3x | 3x | 4x |
| Latency (60 tok/s) | 4.9s | 14.2s | 14.2s | ~20s |
| Streaming | Yes | Yes | Yes | Partial |
| Consistent output | Yes | Yes | Yes | No |
| Components | Library + custom | Library + custom | Custom only | None |
| Multi-platform | Web, mobile, email | Web, mobile, PDF, email, video | Web, iOS, Android | Web |
| Built-in data fetching | Yes | No | No | No |
| Chat UI included | Yes | No | No | Yes |
For more details, refer to the official OpenUI Lang comparison documentation.
A list of organizations and projects using OpenUI is maintained in ADOPTERS.md. If you're using OpenUI, please consider adding your organization; it helps the project gain momentum and helps other adopters find peers using OpenUI in similar contexts.
Contributions are welcome. See CONTRIBUTING.md for contribution guidelines and ways to get involved.
OpenUI ships an Agent Skill so AI coding assistants (Claude Code, Codex, Cursor, Copilot, etc.) can help you scaffold, build, and debug Generative UI apps using OpenUI Lang.
The skill is maintained in the thesysdev/skills repository.
# With the skills CLI (works across all agents)
npx skills add thesysdev/skills --skill openui
The skill covers component library design, OpenUI Lang syntax, system prompt generation, the Renderer, SDK packages, and debugging malformed LLM output.
This project is available under the terms described in LICENSE.
(top 30 of 46)
TypeScript
90.8%
SCSS
7.5%
JavaScript
1.1%
The Open Standard for Generative UI
8,752
stars
897
commits
TypeScript
primary language
Sep 11, 2026
updated
OpenUI is a full-stack, renderer-agnostic Generative UI framework built around a compact, streaming-first language. It offers official React support with built-in component libraries and ready-to-use chat interfaces, plus community-supported integrations for other frameworks. OpenUI Lang uses up to 67% fewer tokens than JSON.
Docs · Playground · Discord · Contributing
Important: OpenUI has no official cryptocurrency, token, or coin. Any asset using the OpenUI name is unaffiliated with this project and is not endorsed by its maintainers.
At the center of OpenUI is OpenUI Lang: a compact, streaming-first language for model-generated UI. Instead of treating model output as only text, OpenUI lets you define components, generate prompt instructions from that component library, and render structured UI as the model streams.
Core capabilities:
npx @openuidev/cli@latest create --name genui-chat-app
cd genui-chat-app
echo "OPENAI_API_KEY=sk-your-key-here" > .env
npm run dev
This is the fastest way to start with OpenUI. The scaffolded app gives you an end-to-end starting point with streaming, built-in UI, and OpenUI Lang support.
What this gives you:
Your components define what the model can generate.
flowchart LR
A["Component Library"] --> B["System Prompt"]
B --> C["LLM"]
C --> D["OpenUI Lang Stream"]
D --> E["Renderer"]
E --> F["Live UI"]
Try it yourself in the Playground: generate UI live with the default component library.
| Package | Best for | Description |
|---|---|---|
@openuidev/lang-core | Framework-agnostic parsing and prompt generation | Core parser, prompt-generation, runtime-evaluation, and type layer with no React, Vue, or Svelte dependency |
@openuidev/langchain | LangChain and LangGraph agents | Agent transformer and server helpers that stream OpenUI through AG-UI |
@openuidev/react-lang | React rendering runtimes | Define component libraries, generate prompts, and render streamed OpenUI Lang in React |
@openuidev/react-headless | Bring-your-own React chat UI | Headless chat state, streaming adapters, and message format converters |
@openuidev/react-ui | Fastest path to a full React chat experience | Prebuilt chat layouts, standalone UI primitives, and two built-in component libraries |
@openuidev/react-email | Email generation and HTML export | React Email component definitions plus prompt options for model-generated emails |
@openuidev/vue-lang | Vue integrations | Vue 3 bindings for defining model-renderable components and rendering streamed OpenUI Lang |
@openuidev/svelte-lang | Svelte integrations | Svelte 5 bindings for defining model-renderable components and rendering streamed OpenUI Lang |
@openuidev/browser-bundle | CDN, iframe, and no-build embeds | Prebuilt browser bundle that ships the renderer, UI library, React, and styles as script + stylesheet assets |
@openuidev/cli | Project scaffolding and prompt generation | CLI for creating new apps and generating system prompts or JSON schema from a library definition |
@openuidev/openclaw-os-plugin | OpenClaw workspaces | OpenClaw OS plugin for serving OpenUI-powered OpenClaw workspaces |
Common starting points:
# React app with OpenUI rendering and prebuilt components
npm install @openuidev/react-lang @openuidev/react-ui
# Framework-agnostic backend or Edge prompt generation
npm install @openuidev/lang-core
# LangChain/LangGraph agent and server integration
npm install @openuidev/langchain @langchain/langgraph
# Vue or Svelte runtime
npm install @openuidev/vue-lang
npm install @openuidev/svelte-lang
OpenUI Lang is designed for model-generated UI that needs to be both structured and streamable.
Measured with tiktoken (GPT-5 encoder). OpenUI Lang vs two JSON-based streaming formats across seven UI scenarios:
| Scenario | Vercel JSON-Render | Thesys C1 JSON | OpenUI Lang | vs Vercel | vs C1 |
|---|---|---|---|---|---|
| simple-table | 340 | 357 | 148 | -56.5% | -58.5% |
| chart-with-data | 520 | 516 | 231 | -55.6% | -55.2% |
| contact-form | 893 | 849 | 294 | -67.1% | -65.4% |
| dashboard | 2247 | 2261 | 1226 | -45.4% | -45.8% |
| pricing-page | 2487 | 2379 | 1195 | -52.0% | -49.8% |
| settings-panel | 1244 | 1205 | 540 | -56.6% | -55.2% |
| e-commerce-product | 2449 | 2381 | 1166 | -52.4% | -51.0% |
| TOTAL | 10180 | 9948 | 4800 | -52.8% | -51.7% |
Full methodology and reproduction steps in benchmarks/.
Detailed documentation is available at openui.com.
openui/
├── packages/
│ ├── react-lang/ # Core runtime (parser, renderer, prompt generation)
│ ├── react-headless/ # Headless chat state & streaming adapters
│ ├── react-ui/ # Prebuilt chat layouts & component libraries
│ ├── react-email/ # React Email component library for generated emails
│ ├── lang-core/ # Framework-agnostic parser, prompt, and runtime layer
│ ├── langchain/ # LangChain/LangGraph streaming integration
│ ├── vue-lang/ # Vue runtime bindings for OpenUI Lang
│ ├── svelte-lang/ # Svelte runtime bindings for OpenUI Lang
│ ├── browser-bundle/ # Script-tag bundle for CDN / iframe / no-build embeds
│ └── openui-cli/ # CLI for scaffolding & prompt generation
├── skills/
│ └── openui/ # Claude Code skill for AI-assisted development
├── examples/ # Capability and integration reference implementations
│ ├── agent-frameworks/
│ ├── app-frameworks/
│ ├── design-systems/
│ ├── harnesses/
│ └── miscellaneous/
├── docs/ # Documentation site (openui.com)
└── benchmarks/ # Token efficiency benchmarks
Good places to start:
examples/README.md to find a focused reference implementationCONTRIBUTING.md if you want to contribute| Feature | OpenUI | json-render (Vercel) | A2UI (Google) | CopilotKit OpenGenUI |
|---|---|---|---|---|
| Tokens | 1x | 3x | 3x | 4x |
| Latency (60 tok/s) | 4.9s | 14.2s | 14.2s | ~20s |
| Streaming | Yes | Yes | Yes | Partial |
| Consistent output | Yes | Yes | Yes | No |
| Components | Library + custom | Library + custom | Custom only | None |
| Multi-platform | Web, mobile, email | Web, mobile, PDF, email, video | Web, iOS, Android | Web |
| Built-in data fetching | Yes | No | No | No |
| Chat UI included | Yes | No | No | Yes |
For more details, refer to the official OpenUI Lang comparison documentation.
A list of organizations and projects using OpenUI is maintained in ADOPTERS.md. If you're using OpenUI, please consider adding your organization; it helps the project gain momentum and helps other adopters find peers using OpenUI in similar contexts.
Contributions are welcome. See CONTRIBUTING.md for contribution guidelines and ways to get involved.
OpenUI ships an Agent Skill so AI coding assistants (Claude Code, Codex, Cursor, Copilot, etc.) can help you scaffold, build, and debug Generative UI apps using OpenUI Lang.
The skill is maintained in the thesysdev/skills repository.
# With the skills CLI (works across all agents)
npx skills add thesysdev/skills --skill openui
The skill covers component library design, OpenUI Lang syntax, system prompt generation, the Renderer, SDK packages, and debugging malformed LLM output.
This project is available under the terms described in LICENSE.
(top 30 of 46)
TypeScript
90.8%
SCSS
7.5%
JavaScript
1.1%