Open Source & Self-Hosted

Your AI, Your Rules

v0.10.0 What's new?
Release Notes View all →
✨ New Features
  • Added a bundled llama.cpp completion provider profile for qwen3-35b-a3b, including configurable endpoint, sampling, token, penalty, and streaming defaults
  • Added an Ollama Cloud category in the Models library and model selector, backed by Ollama's dedicated cloud listing
  • Added custom accent selection in Appearance with violet, blue, cyan, teal, emerald, amber, rose, slate, and custom color options
  • Added runtime-generated accent shade scales so custom accents can drive buttons, links, focus rings, sliders, progress bars, selected states, and glow shadows
🔧 Improvements
  • Reworked Tailwind theme tokens to use CSS variables for primary and accent, with generated custom palettes meeting white-text contrast targets
  • Refined light and dark neutral palettes to reduce glare while preserving contrast across app backgrounds, panels, inputs, and message surfaces
  • Persisted accent preferences through frontend state, backend preferences, import/export defaults, local rehydration, logout cleanup, and demo mode
  • Added accent translation keys across all supported locales and verified locale key parity against English
  • Expanded demo-mode preference APIs so Appearance, generation, embedding, system-message, and default-model settings can be exercised without a backend connection
  • Standardized the Libre WebUI wordmark through a shared Logo component across loading, login, setup, sidebar, and settings surfaces
  • Replaced fixed violet styling in persona adaptive-learning controls with active-accent tokens
  • Recolored Ollama library and Cloud badges from cyan to the design-system info-blue treatment
  • Reduced noisy debug logging across optional auth, chat, document search, plugin lookup, plugin deletion, TTS, image generation, and WebSocket auth paths
  • Returned package version in auth system info for UI/version display
  • Updated Dependabot targeting to main and ignored incompatible Electron and ESLint major bumps until their upstream compatibility gaps are resolved
🐛 Bug Fixes
  • Fixed a critical app-wide Too many re-renders crash in SettingsModal by memoizing image-generation model/plugin arrays
  • Fixed Ollama Cloud model pulls by tagging cloud library results with :cloud before install/run actions
  • Fixed Ollama Cloud generation failures by stripping unsupported non-positive num_predict values before cloud requests
  • Fixed cloud model pull functionality
  • Fixed auto-title generation for persona/current-model workflows by resolving the real running model before sending title prompts
  • Quietly handles expired or invalid JWTs in auth and WebSocket flows without dumping routine stack traces
  • Kept the lint toolchain on ESLint 9 for compatibility with the current React plugin stack
📚 Documentation
  • Expanded DESIGN.md with custom accent presets, generated shade-scale behavior, token usage rules, light/dark neutral guidance, and contrast requirements
📦 Dependencies
  • Bumped package versions to 0.10.0
  • Updated Electron to 41.7.1 and Electron Builder to 26.15.2
  • Bumped frontend/backend dependencies including React Query, i18next, KaTeX, lucide-react, React Router, Vite, pdfjs-dist, TypeScript tooling, Tailwind Merge, Zustand, Express, Multer, Better SQLite3, and related lockfile entries
  • Remediated npm security advisories through dependency and lockfile updates, including qs, tmp, ip-address, brace-expansion, ws, and related transitive packages

Privacy-first AI chat interface. Run locally with Ollama or connect to OpenAI, Anthropic, and 9+ providers. Zero telemetry. Zero tracking.

npx libre-webui

Requires Node.js 18+ and Ollama for local AI

Libre WebUI Interface
Libre WebUI Interface
🔒 Zero Telemetry
🏠 Self-Hosted
📜 Apache 2.0
🔌 Plugin System

Everything You Need

A complete AI chat solution that respects your privacy

🤖

Local & Cloud AI

Run models locally with Ollama or connect to OpenAI, Anthropic, Groq, Gemini, Mistral, and more. Your choice.

📄

Document Chat (RAG)

Upload PDFs, docs, and text files. Ask questions about your documents with semantic search and vector embeddings.

🎨

Interactive Artifacts

Render HTML, SVG, and React components directly in chat. Live preview with full-screen mode.

🔐

AES-256 Encryption

Enterprise-grade encryption for all your data. Chat history, documents, and settings are encrypted at rest.

🎭

Custom Personas

Create AI personalities with unique behaviors and system prompts. Import/export personas as JSON.

🔊

Text-to-Speech

Listen to AI responses with multiple voice options. Supports browser TTS and ElevenLabs integration.

🖼️

Image Generation

Generate images with ComfyUI and Flux models. Multiple sizes, quality presets, and seamless chat integration.

⚙️

Plugin Variables

Per-plugin configurable settings like temperature, endpoints, and tokens. Sensitive values are encrypted at rest.

⌨️

Keyboard Shortcuts

VS Code-inspired shortcuts for power users. Navigate, toggle settings, and control everything from the keyboard.

👥

Multi-User Support

Role-based access control with SSO support. GitHub and Hugging Face OAuth built-in.

Connect to Any Provider

One interface, unlimited possibilities

Ollama
Local models
OpenAI
GPT-4o, o1, o3
Anthropic
Claude 4, Opus
Groq
Llama, Mixtral
Google
Gemini Pro
Mistral
Mistral Large
OpenRouter
400+ models
HuggingFace
1M+ models
+ Custom
Any OpenAI-compatible API

Get Started in Seconds

Choose your preferred installation method

Recommended

npx (One Command)

npx libre-webui

Runs instantly. No installation required.

npm (Global Install)

npm install -g libre-webuilibre-webui

Install once, run anywhere.

Docker

docker run -p 8080:8080 libre-webui/libre-webui

Containerized deployment.

Create Custom Plugins

Connect any OpenAI-compatible LLM with a simple JSON file

Available Plugins

Official plugins from the Libre WebUI repository. Click to view or download.

Loading plugins from GitHub...
📄 custom-model.json
{
  "id": "custom-model",
  "name": "Custom Model",
  "type": "completion",
  "endpoint": "http://localhost:8000/v1/chat/completions",
  "auth": {
    "header": "Authorization",
    "prefix": "Bearer ",
    "key_env": "CUSTOM_MODEL_API_KEY"
  },
  "model_map": [
    "my-fine-tuned-llama"
  ],
  "variables": [
    {
      "name": "temperature",
      "type": "number",
      "label": "Temperature",
      "default": 0.7,
      "min": 0, "max": 2
    }
  ]
}

Create Your Own Plugin

1

Start Your LLM Server

Run any OpenAI-compatible server: llama.cpp, vLLM, Ollama, or a custom FastAPI server.

2

Create Plugin JSON

Define your endpoint, authentication, and available models in a simple JSON file.

3

Upload to Libre WebUI

Go to Settings > Providers, upload your plugin, and enter your API key.

4

Start Chatting

Your custom models appear in the model selector. Full privacy, full control.

Plugin Fields Reference

id Unique identifier (lowercase, hyphens allowed)
name Display name shown in the UI
type "completion" for chat, "tts" for text-to-speech
endpoint API URL (e.g., /v1/chat/completions)
auth.header Auth header name (Authorization, x-api-key)
auth.prefix Key prefix ("Bearer " or empty)
auth.key_env Environment variable for your API key
model_map Array of available model identifiers
variables Configurable settings (temperature, endpoint, etc.)

Ready to Own Your AI?

Join thousands of users who value privacy and control.