尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证A website of examples built with OpenUI, starting with dashboard kits for e-commerce and product analytics.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗A website of examples built with OpenUI, a framework for generative UI. Each example has its own page on the site, and its code lives in this repository.
Live: https://openui-showcase.vercel.app
| Example | Page | What it is |
|---|---|---|
| Dashboard kits | /dashboard-kits | Two dashboard kits, e-commerce and product analytics, running on OpenUI Dashboards. Each kit brings its own charts and data tools; ask a question in plain English and OpenUI builds a live dashboard from them, then saves it. |
The kit's own integration is mostly one call:
openui.defineDashboard({
library: kitSpec, // the kit's components
tools: kitDataTools, // the kit's data, so numbers are live
model: "anthropic/claude-sonnet-5.5",
promptOptions: { preamble, additionalRules, examples },
});
See examples/dashboard-kits for how it works.
Requirements: Node.js 24 (see .nvmrc; 22.13+ works) and pnpm 10 (corepack enable picks the pinned version).
pnpm install
cp .env.example .env.local # add THESYS_API_KEY for Generate
pnpm dev # http://127.0.0.1:3940
The galleries and Prompt views need no key. Generate runs on OpenUI Dashboards and needs THESYS_API_KEY, a key from the Thesys Console. .env.example lists the optional variables.
| Script | What it does |
|---|---|
pnpm dev | Writes the kit specs, then starts Next.js |
pnpm build | Production build (next build) |
pnpm test | Unit tests (vitest) |
pnpm lint | ESLint on every TypeScript file |
pnpm format:check | Prettier on the whole repository (pnpm format writes) |
pnpm typecheck | tsc for everything, tests included |
pnpm check | Checks every kit's tools and prompt, and renders every gallery dashboard in jsdom |
pnpm eval | Scores model-generated dashboards (needs a key; OPENAI_API_KEY also works) |
pnpm ci | All of the checks, in the order CI runs them |
The site deploys to Vercel as is, and the key is never revealed:
shared/server/: openui.ts (OpenUI Cloud), model.ts (the eval script), and visitor.ts (which derives the cookie secret from it, never the key itself). Each file is marked server-only, so the build fails if browser code imports it.NEXT_PUBLIC_ variables, and the key isn't written into the build output. The browser gets a short-lived frontend token for the visitor's own dashboards instead.Steps:
THESYS_API_KEY and mark it Sensitive: it's encrypted and can't be read back in the dashboard. Optional:
THESYS_BASE_URL, for a deployment other than OpenUI Cloud;OPENUI_DASHBOARD_MODEL, as provider/model (default anthropic/claude-sonnet-5.5);VISITOR_SECRET, to sign the visitor cookie with a secret of its own.Generation is open to every visitor, so anyone using the site spends the key. Set a spending limit on the key.
One Next.js app. Each example lives in its own folder under examples/; app/ only maps URLs to it.
app/ routes only: thin files that import from examples/
layout.tsx page.tsx the landing page
dashboard-kits/ page.tsx, and api/: cloud/<kit>/ (token, dashboards, edit,
interpreter), prompt, tools
examples/
dashboard-kits/ everything about this example (see its README)
views/ kits/ blocks/ charts/ ui/ engine/ theme/ scripts/
shared/ used by every example
ui/ site shell, landing page, scaled previews
server/ openui.ts (OpenUI Cloud client), visitor.ts (anonymous
visitor cookie), model.ts (model client for the eval)
examples.ts the landing page's example cards
Imports use the @/ alias for the repository root, for example @/examples/dashboard-kits/kits/registry.
Naming:
app/, [param] for dynamic segments, page.tsx and route.ts.views/, engine/, scripts/, shared/) uses kebab-case files, such as tool-provider.ts.blocks/, charts/, ui/, and kits/*/blocks/ follow react-ui's convention: one PascalCase folder per component, Component.tsx, Component.definition.tsx for its openui-lang definition, camelCase helpers and stylesheets next to it.useKitRenderer.ts.*.test.ts or *.test.tsx.examples/<name>/.app/<name>/page.tsx that renders it, wrapped in SiteShell from shared/ui/site-shell.tsx, and its API routes under app/<name>/api/. Reach OpenUI Cloud through openuiClient() in shared/server/openui.ts, with an app id of its own, and identify visitors with visitorOf() from shared/server/visitor.ts.EXAMPLES in shared/examples.ts, and the example to the table above.The dashboard kits come from OpenUI by Thesys, MIT licensed. See LICENSE.