openui
生成式 UI 的开放标准,让 AI 直接渲染可交互的界面组件
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
生成式 UI 的开放标准,让 AI 直接渲染可交互的界面组件
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
试想这样一个场景:你对 AI 说「帮我创建一个销售仪表盘」,AI 不仅返回文字描述,而是直接渲染出一个可以交互的 Dashboard 组件,数据实时填充,布局完全响应式。这就是 OpenUI 所定义的未来交互范式。

图1:OpenUI 官方 Banner
在 OpenUI 出现之前,LLM 生成 UI 的主流方案有两条路:一条是用 JSON 结构化输出后自行渲染,另一条是让模型直接输出 HTML/CSS 代码。这两种方式各有硬伤。JSON 方案 token 消耗巨大——实测一个简单的联系表单,JSON 格式比 OpenUI Lang 多消耗 67% 的 token;而且 JSON 无法流式渲染,用户必须等待整个响应完成才能看到 UI。HTML/CSS 方案则面临输出不稳定的问题:模型生成的代码常常有语法错误、样式错位,甚至完全无法运行。
TheSysDev 团队在构建 AI 应用时亲历了这些痛点,于是在 2024 年发起了 OpenUI 项目,旨在为生成式 UI 建立一个开放标准。他们的核心思路是:不是让 AI 去凑 HTML 的语法,而是专门为 AI 设计一种流式友好的 UI 描述语言。
可以把 OpenUI 理解为一个精心设计的乐高积木套装。它包含三个关键部分:
组件库(Component Library) — 你提前定义好允许使用的「积木块」:按钮、表格、图表、卡片、输入框……AI 只能在这些积木范围内创作,不会凭空捏造出不存在的 UI 元素。
OpenUI Lang — 专门为 AI 设计的一种紧凑语言,用来描述 UI 结构。比如 [form][input placeholder="邮箱"][/input][button]提交[/button][/form],比 HTML 短,比 JSON 语义清晰,且天生支持流式输出。
Renderer — 实时将 OpenUI Lang 流式渲染为真实 React 组件,用户可以在 AI「思考」的过程中看到 UI 一点点构建出来。
这样一来,AI 的创造力被约束在安全范围内,同时输出的 UI 质量稳定可预期。
OpenUI 不是单一工具,而是一套完整的 monorepo,拆分为多个 npm 包:
@openuidev/react-lang — 核心运行时,Parser + Renderer + Prompt 生成器。开发者用 Zod 定义组件属性,框架自动生成系统提示词,告诉 AI 可以用哪些组件,然后流式解析 AI 返回的 OpenUI Lang 并渲染。
@openuidev/react-headless — 无头聊天状态管理,内置对 OpenAI/Anthropic/Vercel AI SDK 的 streaming 适配器,让你不用自己处理 SSE 和流式数据。
@openuidev/react-ui — 预置的 UI 库,包含图表(Chart)、表格(Table)、表单(Form)、布局(Layout)等开箱即用的组件。开发者也可以接入自己的 shadcn/ui 或 Radix 组件。
@openuidev/cli — 命令行工具,npx @openuidev/cli@latest create 一键创建完整项目脚手架,包含示例代码和在线 Playground。

图2:OpenUI 交互演示(流式渲染过程)
OpenUI 官方在 benchmarks 目录下提供了完整的评测数据和复现步骤。使用 tiktoken(GPT-5 编码器)测量了 7 种真实 UI 场景:简单表格、带数据图表、联系表单、Dashboard、定价页、设置面板、电商产品卡片。对比对象是目前主流的两个 JSON 流式渲染方案(Vercel json-render 和 Thesys 自研 C1 JSON)。
结果在所有 7 个场景中,OpenUI Lang 的 token 消耗均显著低于 JSON 方案,总计节省约 52.8%。折算到实际推理成本,对于一个日活 10 万次 AI UI 生成的产品,每年可节省约数十万美元的 token 费用。
架构上,OpenUI 的流式处理链路为:Component Library → System Prompt Generator → LLM → OpenUI Lang Stream → React Renderer → Live UI。每一步都针对流式场景优化,Renderer 在收到部分 OpenUI Lang 时就能开始渲染,用户感知延迟从 14.2 秒降低到 4.9 秒(60 tok/s 场景)。
项目采用 pnpm workspace 管理,TypeScript-first,大量使用 Zod 做 schema 验证,ESLint + Prettier 统一代码风格,GitHub Actions 覆盖 CI 全流程。
packages/ 目录按职责清晰分层:
lang-core/ — OpenUI Lang 语言核心(Parser、Lexer)react-lang/ — React 渲染层react-headless/ — 聊天状态和 streamingreact-ui/ — 预置组件库(含图表、表格、表单等)openui-cli/ — CLI 工具(脚手架生成)此外还有实验性的 Svelte 和 Vue 语言包(svelte-lang、vue-lang),体现了多平台野心。skills/openui/ 还为 Claude Code 等 AI 编码助手提供了专门的 Agent Skill,降低 AI 辅助开发的门槛。
OpenUI 的定位是前端框架,而非完整的后端解决方案。它目前没有提供 Docker 支持,没有 docker-compose.yml 文件,不适合一键部署到服务器。如果你的场景是完全无服务器的 AI 助手或 Copilot,OpenUI 非常合适;但如果你需要将 AI UI 功能嵌入已有的后端服务,需要自行处理集成工作。
当前对移动端的支持主要通过 React Native 示例实现(examples/openui-react-native),成熟度不如 Web 端。企业级功能(如权限管理、审计日志)尚未覆盖。
生成式 UI 这个赛道正在快速升温:Vercel 有 json-render,Google 有 A2UI,CopilotKit 有 OpenGenUI,各家都在争夺标准定义权。OpenUI 的差异化在于三点:
第一,语言层抽象——不是绑定某个特定前端框架(React/Vue/Svelte),而是定义了一个与框架无关的中间表示层。
第二,Token 效率优先——直接解决企业最关心的推理成本问题,这在大规模部署时是决定性因素。
第三,开放生态——Agent Skill、benchmark 数据、ADOPTERS.md 列表全部开源,任何人都可以参与标准定义。
从 Star 历史来看,项目在 2025 年初快速获得关注,目前 6498+ Stars,481 Forks,53 个 open issues,增长势头稳健。已有多个公司在 ADOPTERS.md 中记录了生产级使用案例。
图3:OpenUI Star 历史增长曲线
方式一:在线体验(零配置)
直接访问 openui.com/playground,用浏览器内置的 Playground 体验 OpenUI Lang,输入自然语言描述即可看到实时渲染的 UI。
方式二:npm 项目接入
# 安装核心包
npm install @openuidev/react-lang @openuidev/react-ui
# 或者用 CLI 创建完整脚手架
npx @openuidev/cli@latest create --name genui-chat-app
cd genui-chat-app
echo "OPENAI_API_KEY=your_key" > .env
npm run dev
方式三:AI 编码助手
OpenUI 为 Claude Code、Copilot、Cursor 等 AI 编码助手提供了专门的 Skill,AI 可以直接帮你设计组件库、生成系统提示词、调试 OpenUI Lang 输出:
npx skills add thesysdev/openui --skill openui
OpenUI 正处于快速发展期,版本更新频繁。如果你在生产环境中使用,建议锁定具体版本号并关注 CHANGELOG。