AI/TLDR

OpenUI

Describe a UI in plain words and watch an LLM render it live

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.

bashbash
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/openui

Open 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.

bashbash
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 openui

Use 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.

bashbash
ollama pull llava

Commands 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.

ToolStarsWhat it does
CopilotKit★ 35.3kA 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★ 25kA 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.4kDescribe a UI in plain words and watch an LLM render it live
AG-UI Protocol★ 14.3kAn open protocol that standardizes how AI agents stream events and UI to frontend applications, with SDKs across multiple languages and frameworks.
Tambo★ 11.2kA 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.7kA 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.1kAn open standard and runtime for generative UI that uses a compact streaming language to let models emit interactive charts, forms, tables, and cards.