Overview
OpenUI (Thesys) is a full-stack framework for generative UI. At its center is OpenUI Lang, a compact streaming-first language that lets a model emit structured UI such as charts, forms, tables, and cards instead of plain text. The project pairs this language with a React runtime, built-in component libraries, and ready-made chat interfaces.
It is aimed at developers building assistants, copilots, and interactive product flows where the model needs to return real UI rather than text the app has to parse by hand. You define which components the model is allowed to use, generate a system prompt from that library, and render the streamed output progressively as tokens arrive.
Within the generative UI space, OpenUI fits as both a standard and a runtime. The core parser and prompt generation live in a framework-agnostic package, with separate bindings for React, Vue, and Svelte, so you can adopt it at the level that matches your stack.
What it does
- OpenUI Lang: a compact, streaming-first language for structured UI generation, described as up to 67% more token-efficient than JSON
- Built-in component libraries for charts, forms, tables, and layouts that you can use directly or extend
- Prompt generation from your own component library, so model instructions reflect only the components you allow
- Streaming renderer that parses and renders model output progressively in React as tokens stream in
- Ready-to-use chat and app surfaces for assistants, copilots, and broader interactive flows
- Framework bindings beyond React, including Vue 3 and Svelte 5 packages, plus a browser bundle for no-build embeds
Getting started
The fastest way to start is the CLI scaffolder, which generates an end-to-end app with streaming, built-in UI, and OpenUI Lang support already wired up.
Scaffold a new app
Use the OpenUI CLI to create a generative chat app and move into the new directory.
npx @openuidev/cli@latest create --name genui-chat-app
cd genui-chat-appAdd your model API key
Create a .env file with your OpenAI API key so the app can call a model.
echo "OPENAI_API_KEY=sk-your-key-here" > .envRun the dev server
Start the scaffolded app, which gives you a ready-to-run example with streaming and built-in components.
npm run devCommands and code are distilled from the project's own documentation — always check the official repo for the latest.
When to use it
- Build an AI assistant or copilot that returns interactive charts, forms, and tables instead of plain text
- Add a chat surface to a product where the model drives real UI you control via an allowed component set
- Stream model-generated UI progressively so users see results render as tokens arrive
- Generate model-renderable interfaces in React, Vue, or Svelte from a shared component library and prompt layer
How OpenUI (Thesys) compares
OpenUI (Thesys) alongside other open-source generative ui sdks tools AI/TLDR tracks, ranked by GitHub stars.
| Tool | Stars | What it does |
|---|---|---|
| CopilotKit | ★ 35.3k | A frontend framework for adding in-app AI copilots and agent-driven generative UI to React and other apps, and the maker of the AG-UI protocol. |
| Vercel AI SDK | ★ 25k | A TypeScript toolkit for building AI apps and agents that includes streaming helpers and generative-UI features for rendering model output as React components. |
| OpenUI | ★ 22.4k | OpenUI lets you describe a UI in plain language, see it rendered live, ask for changes, and convert the result to React, Svelte, or Web Components. |
| AG-UI Protocol | ★ 14.3k | An open protocol that standardizes how AI agents stream events and UI to frontend applications, with SDKs across multiple languages and frameworks. |
| Tambo | ★ 11.2k | A generative UI SDK for React where you register components with Zod schemas and an agent picks the right one and streams its props to the user. |
| assistant-ui | ★ 10.7k | A TypeScript/React library of composable chat primitives for building AI chat apps that can render tool calls and JSON as interactive React components. |
| OpenUI (Thesys) | ★ 7.1k | An open standard and React runtime for streaming model-generated UI |