Overview
OpenUI is an open-source tool from Weights & Biases that turns a plain-language description into a working user interface. You type what you want, and an LLM renders it live so you can see the result right away.
Once a component is generated, you can ask for changes in natural language and convert the HTML into React, Svelte, or Web Components. It works with OpenAI, Groq, Ollama, and any model LiteLLM supports, including Gemini and Anthropic's Claude, so you can run it against hosted or local models.
The project bills itself as an open-source take on tools like v0, and it doubles as a testbed W&B uses to prototype LLM-powered application tooling.
What it does
- Generate live UI from a plain-language description and see it rendered instantly
- Iterate by asking for changes in natural language
- Convert generated HTML to React, Svelte, or Web Components
- Works with OpenAI, Groq, Gemini, Anthropic Claude, and any LiteLLM-supported model
- Run fully local models through Ollama (for example Llava for image-capable prompts)
- Ships as a Docker image and a Python package for easy self-hosting
Getting started
The quickest way to run OpenUI is the prebuilt Docker image. Set API keys for any models you want to use, then open the local server in your browser. You can also run it from source with Python and uv.
Run with Docker
Pass your API keys from the shell and point OpenUI at a local Ollama instance, then open the app on port 7878.
export ANTHROPIC_API_KEY=xxx
export OPENAI_API_KEY=xxx
docker run --rm --name openui -p 7878:7878 -e OPENAI_API_KEY -e ANTHROPIC_API_KEY -e OLLAMA_HOST=http://host.docker.internal:11434 ghcr.io/wandb/openuiOpen the app
Go to http://localhost:7878 and start generating new UIs from a prompt.
Run from source with Python
Clone the repo and use uv to install the backend, then set your API keys and start the server.
git clone https://github.com/wandb/openui
cd openui/backend
uv sync --frozen --extra litellm
source .venv/bin/activate
export OPENAI_API_KEY=xxx
python -m openuiUse local models with Ollama
Install Ollama and pull an image-capable model like Llava, then select it from the settings gear icon in the app.
ollama pull llavaCommands and code are distilled from the project's own documentation — always check the official repo for the latest.
When to use it
- Prototype UI components quickly by describing them in plain language instead of hand-coding markup
- Turn a generated layout into framework code by exporting it to React, Svelte, or Web Components
- Experiment with local, private model generation through Ollama without sending prompts to a hosted API
- Compare how different LLM providers render the same UI prompt during early design exploration
How OpenUI compares
OpenUI 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 | Describe a UI in plain words and watch an LLM render it live |
| 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 runtime for generative UI that uses a compact streaming language to let models emit interactive charts, forms, tables, and cards. |