# Open WebUI

> Self-hosted chat interface for local and API-based LLMs

- Category: App UIs & Builders / Chat UIs
- Language: Python
- Licence: Open WebUI License
- Repository: https://github.com/open-webui/open-webui
- Website: https://openwebui.com
- Canonical page: https://ai-tldr.dev/tools/open-webui/

## In short

Open WebUI is a self-hosted web interface for chatting with large language models. It connects to local model runners like Ollama and to any OpenAI-compatible API, so you can point it at LMStudio, GroqCloud, Mistral, OpenRouter, and similar services. It sits in the Chat UIs category of the App UIs & Builders tools and is open-source, written in Python and licensed Open WebUI License.

## Overview

Open WebUI is a self-hosted web interface for chatting with large language models. It connects to local model runners like Ollama and to any OpenAI-compatible API, so you can point it at LMStudio, GroqCloud, Mistral, OpenRouter, and similar services. It is designed to run entirely offline if you want it to.

It is aimed at developers and teams who want to run their own chat front end instead of relying on a hosted product. On top of plain chatting it adds Retrieval Augmented Generation over your own documents, web search, image generation, voice and video calls, and granular user roles and permissions for multi-user setups.

As a chat UI, it sits between your models and your users: you bring the model backend, and Open WebUI handles the conversation interface, document handling, and access control. It installs through Docker, Kubernetes, or pip.

## What it does

- Connects to Ollama and OpenAI-compatible APIs, with a customizable API URL for providers like LMStudio, GroqCloud, Mistral, and OpenRouter
- Local RAG over your own documents, with a choice of vector databases and content extraction engines; add files with the # command before a query
- Web search for RAG across 15+ providers (SearXNG, Brave, Tavily, DuckDuckGo, and more) and direct web browsing via # plus a URL
- Granular permissions, user groups, and role-based access control (RBAC) for secure multi-user deployments
- Image generation and editing through DALL-E, Gemini, ComfyUI, and AUTOMATIC1111
- Run several models in parallel in one conversation, with full Markdown and LaTeX rendering, voice/video calls, and a native Python function-calling tool

## Getting started

Open WebUI installs through Docker (recommended) or pip. The example below assumes you already have a model backend such as Ollama running.

1. Run with Docker

   Start the container and open the UI at http://localhost:3000. The --add-host flag lets the container reach a model runner on your host machine.

```bash
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
```

2. Or install with pip

   If you prefer a Python install, install the package and start the server. It runs on http://localhost:8080 by default.

```bash
pip install open-webui
open-webui serve
```

3. Connect a model and sign in

   Open the URL in your browser, create the first account (which becomes the admin), then point Open WebUI at your Ollama instance or add an OpenAI-compatible API key in the settings.

## When to use it

- Run a private, self-hosted ChatGPT-style interface over local Ollama models with no data leaving your machine
- Give a team a shared chat front end with user accounts, groups, and role-based permissions
- Build a document Q&A workspace by loading files and using the built-in RAG and web search
- Compare answers from several models side by side in a single conversation
