OpenUI DashboardsLive AI dashboards, inside your productAI Dashboards in your product

Built by your agent from your components and APIs.
No BI tool, no iframe.

Copied. Paste in your terminal to install.
Book meeting
Generate with hundreds of models

OpenUI DashboardsLive AI dashboards, inside your productAI Dashboards in your product

Built by your agent from your components and APIs.
No BI tool, no iframe.

Copied. Paste in your terminal to install.
Book meeting
Generate with hundreds of models

Teams building with OpenUI

Ask once.
The dashboard keeps up.

Dashboards query your APIs, compute what’s missing, and render with your own components.

Fits your stack,
holds up in production Use any model and your existing agent. Bad output gets repaired, and only your components and tools run.

Hundreds of models

Use models from OpenAI, Anthropic, Google, and more through one API.

Plan: All

Interactive by default

Users filter and drill down into the data without another prompt.

Works with your agent

Keep your agent framework and tools. Change only how you render.

Validated output

Invalid output is caught and repaired before it reaches your users.

Safe by design

Only your components render, and only your tools get called.

Benchmark results

fewer tokensThan LLM-written HTML, per screen
75%
cheaperTo generate each screen
75%
faster to streamSo dashboards render sooner
4.1×
View benchmarks

Add dashboards to your product

Read setup docs
  1. 1

    Register your components

    Your charts, tables, and filters.

    shadcn/ui, Material UI, Ant Design, Radix UI
  2. 2

    Pick a model

    Hundreds of models through one API.

    OpenAI, Anthropic, Gemini, DeepSeek
  3. 3

    Connect data and tools

    Your APIs and databases, your agent’s tools, or an MCP server.

    Vercel AI SDK, LangChain, LangGraph, Convex
  4. 4

    Render the dashboard

    In chat, a page, a side panel, or mobile.

    React, Next.js, Vue, Svelte

Why not just generate HTML?

Generated HTML is a frozen page: it can't stream, refresh, or be trusted with your data. OpenUI gives you a dashboard that keeps up.

OpenUI Dashboards compared with LLM-written HTML
CapabilityLLM-written HTMLOpenUI Dashboards
SafetyArbitrary scriptsYour tools only
SpeedWaits for full markupStreams live
ReliabilityBreaks on bad markupSelf-repairs
Live dataA frozen snapshotAlways current
DesignInline stylesYour components
LLM-written HTML
SafetyArbitrary scripts
SpeedWaits for full markup
ReliabilityBreaks on bad markup
Live dataA frozen snapshot
DesignInline styles
OpenUI Dashboards
SafetyYour tools only
SpeedStreams live
ReliabilitySelf-repairs
Live dataAlways current
DesignYour components

Frequently asked questionsFAQs

Have another question?
Join our Discord.

Where can dashboards appear in my product?

In your agent’s chat, on a full page, in a side panel, or inside a mobile app. The same response renders in each one.

Does the dashboard regenerate when the data changes?

No. It is generated once. Filters and auto-refresh call your APIs and load new data into the same layout.

Can I use my own design system?

Yes. Dashboards render only with the components you register, so they match your product.

Do I need a BI tool or semantic layer?

No. Dashboards call your existing APIs through tools you provide.

What if my API doesn’t return the numbers a user needs?

OpenUI writes a script that calculates them from the data your tools return and runs it in a safe interpreter. For example, it can group participants by age without an age-group endpoint.

It can’t use fields your tools don’t return.

Can a dashboard show data a user shouldn’t see?

No. Tools call your own API routes, so your existing auth decides what each user gets.

Can users edit a dashboard?

Yes. They ask for a change, such as a new chart or filter. A targeted edit updates only that part.

Which models can I use?

Hundreds of models from OpenAI, Anthropic, Google, and other labs through one API.

Do I need to replace my agent?

No. Keep your agent framework and tools. Add the OpenUI instructions and render the response in your product.