← AUTOMATER NEWSROOM

OpenUI 1.0 Ships an MIT Generative UI Runtime So Agent Apps Render Interfaces Instead of Text

OpenUI 1.0, the MIT-licensed generative UI runtime, adds custom functions, custom actions and library.extend to its streaming UI language, plus an Agent Skill so Claude Code, Codex and Cursor can scaffold generative-UI apps. Vue, Svelte and Angular stay on 0.4.

Explanatory graphic showing a component library generating a system prompt, any model streaming OpenUI Lang tokens, and a renderer producing live UI, contrasted with a plain textbox agent.Explanatory graphic showing a component library generating a system prompt, any model streaming OpenUI Lang tokens, and a renderer producing live UI, contrasted with a plain textbox agent.
How OpenUI 1.0 works: a component library generates the system prompt, any model streams the OpenUI Lang token stream, and the renderer paints live UI from registered components instead of a wall of text. Original diagram by Automater Newsroom based on the thesysdev/openui README.

OpenUI, the MIT-licensed generative UI framework maintained under the thesysdev organization, reached 1.0 on October 15, 2026. Rabi Shanker Guha announced the release on X, framing it as bringing the interface style ChatGPT calls Intelligent UI to “every other agent.” The post says the project was open-sourced six months ago and has drawn 10K+ GitHub stars and 6M+ downloads; the repository currently lists 11.0k stars and 742 forks, and the download count remains a vendor claim.

A streaming UI language, not a text dump

The repository README describes OpenUI as a full-stack, framework-agnostic generative UI framework built around OpenUI Lang, a compact, streaming-first language for model-generated UI. The loop is short: define or reuse a component library, generate a system prompt from that library, send it to any model, stream OpenUI Lang output back, and render it progressively as tokens arrive. Because output is restricted to the components you register, the component allowlist is the practical control on what the model can put on screen. First-party runtimes exist for React, Vue, Svelte and Angular, and React additionally ships built-in component libraries and chat surfaces.

The thesysdev/openui GitHub repository page showing the OpenUI README with its package list and MIT license.
The thesysdev/openui repository on GitHub. The README describes OpenUI as a full-stack, framework-agnostic Generative UI framework built around OpenUI Lang, and the page lists an MIT license; GitHub showed 11.0k stars for the repository at fetch time. · Original source

What 1.0 adds

The official What’s New in 1.0 page details the new language surface:

  • Custom functions. Register your own @ functions with defineFunction; the model calls them like built-ins, arguments are checked like component props, and a failed call evaluates to null instead of breaking the page.
  • Custom actions. defineAction adds typed actions delivered to your onAction handler, the same path @OpenUrl uses.
  • Single actions unwrap. One action no longer needs the Action([...]) wrapper; several still do.
  • Richer @ToAssistant. The second argument can be any value, and the host receives it unchanged in event.params.context.
  • library.extend. Derive a library from an existing one: add, override or remove components, and add functions and actions.
  • A message format. buildMessage and parseMessage wrap responses in openui: marker lines, optionally carrying form state, so stored responses replay through the Renderer.
const percent = defineFunction({
  name: "Percent",
  description: "Formats part / total as a percentage",
  params: z.object({ part: z.number(), total: z.number().default(100) }),
  returns: z.string(),
  fn: ({ part, total }) => `${((part / total) * 100).toFixed(1)}%`,
});

const library = createLibrary({ root: "Card", components, functions: [percent] });

The catch is runtime coverage: the Vue, Svelte and Angular language packages stay on 0.4 and must keep @openuidev/lang-core at ^0.4, so the 1.0 language features need the React renderer for now. A new entry rule also lands: the entry statement is the one named root, otherwise the first statement calling the library’s root component is used with a warning, so pass the root name to createParser and createStreamingParser.

The OpenUI documentation page titled What's New in 1.0, covering custom functions, custom actions, library.extend and the message format.
OpenUI's official What's New in 1.0 documentation on openui.com, which details custom functions, custom actions, unwrapped single actions, library.extend and the buildMessage and parseMessage message format for the React runtime. · Original source

Diagram of the four headline additions in OpenUI Lang 1.0: custom functions, custom actions, library.extend and the message format, with runtime versions React 1.0 and Vue, Svelte and Angular 0.4.Diagram of the four headline additions in OpenUI Lang 1.0: custom functions, custom actions, library.extend and the message format, with runtime versions React 1.0 and Vue, Svelte and Angular 0.4.
OpenUI Lang 1.0 adds custom functions, custom actions, library.extend and a stored message format. Only the React runtime moves to 1.0; the Vue, Svelte and Angular packages stay on 0.4. Original diagram by Automater Newsroom from the official What's New in 1.0 page.

The token story, with caveats

The README publishes token-efficiency benchmarks, measured with tiktoken using the GPT-5 encoder, across seven UI scenarios against two JSON-based streaming formats. OpenUI Lang totals 4,800 tokens versus 10,180 for Vercel JSON-Render and 9,948 for Thesys C1 JSON, reductions of 52.8 and 51.7 percent; the best case versus Vercel JSON-Render is a contact form at 67.1 percent (65.4 percent versus Thesys C1), and the shallowest is a dashboard at 45.4 percent (45.8 percent versus C1). A separate “How OpenUI compares” table in the README claims a 4.9-second render at 60 tokens per second, against 14.2 seconds for Vercel’s json-render and Google’s A2UI. These are the project’s own numbers, with methodology in the benchmarks/ directory, so treat them as directional until you measure your own libraries.

Scenario Vercel JSON-Render Thesys C1 OpenUI Lang
contact-form 893 849 294
dashboard 2247 2261 1226
pricing-page 2487 2379 1195
TOTAL 10180 9948 4800

Bar chart comparing total tokens across seven UI scenarios: 10180 for Vercel JSON-Render, 9948 for Thesys C1 JSON and 4800 for OpenUI Lang.Bar chart comparing total tokens across seven UI scenarios: 10180 for Vercel JSON-Render, 9948 for Thesys C1 JSON and 4800 for OpenUI Lang.
OpenUI Lang totals 4,800 tokens across the project's seven benchmark scenarios versus 10,180 for Vercel JSON-Render and 9,948 for Thesys C1 JSON, measured with tiktoken using the GPT-5 encoder. Data: thesysdev/openui benchmarks, a vendor-run comparison. Original chart by Automater Newsroom.

What you can do with it today

Scaffolding is one command, npx @openuidev/cli@latest create --name genui-chat-app, which produces a streaming app with OpenUI Lang support and a library-driven prompt. The packages are composable: @openuidev/react-lang plus @openuidev/react-ui for a full React chat experience, @openuidev/lang-core for framework-agnostic parsing and prompt generation on a server, @openuidev/langchain to stream OpenUI through LangChain and LangGraph agents via AG-UI, @openuidev/browser-bundle for CDN or iframe embeds, and @openuidev/a2ui for the A2UI v1.0 protocol.

For coding agents there is an Agent Skill, npx skills add thesysdev/skills --skill openui. The README says it covers component library design, OpenUI Lang syntax, prompt generation, the Renderer, the SDK packages and debugging malformed model output, across Claude Code, Codex, Cursor, Copilot and similar assistants. The tool building your agent frontend and the runtime rendering it now speak the same language, and a coding agent can file scrubbed feedback from the terminal.

Why it matters

ChatGPT’s Intelligent UI is one vendor’s rendered answer surface. An MIT-licensed runtime that renders from your own component library makes that surface portable across models, including local ones, and keeps the component allowlist as the guardrail. If you track answer surfaces the way our answer-surface checklist recommends, OpenUI 1.0 is the open lane to register beside them, and it slots into an open-source agent stack without licensing friction. It is also distinct from Figma’s Specs launch: Specs governs design-to-code context, while OpenUI renders live interfaces from model output.

Two cautions before adopting. An action prop can name the actions it accepts, but the runtime does not enforce that union yet, so do not treat it as a security boundary. And the maintainers warn that OpenUI has no official cryptocurrency or token; assets using the name are unaffiliated.

Sources

  1. Rabi Shanker Guha on X: "For 30 years, technology has moved in one direction: turning information into intuitive interfaces Somehow, the smartest software we’ve ever built took us back to a textbox We’ve spent the last 2 years at @openuidev trying to fix that. 6 months ago we open-sourced it: 10K…
  2. What's New in 1.0 | OpenUI
  3. GitHub - thesysdev/openui: The Open Standard for Generative UI · GitHub