- TypeScript 76%
- JavaScript 23.4%
- CSS 0.3%
- Shell 0.2%
| .githooks | ||
| .github | ||
| backend | ||
| bin | ||
| deploy | ||
| docs | ||
| examples | ||
| frontend | ||
| helm/libre-webui | ||
| homebrew | ||
| plugins | ||
| scripts | ||
| .dockerignore | ||
| .env.production | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmessage | ||
| .npmrc | ||
| .prettierignore | ||
| .prettierrc.json | ||
| CHANGELOG.md | ||
| CHARTER.md | ||
| CONTRIBUTING.md | ||
| CONTRIBUTORS.md | ||
| DESIGN.md | ||
| docker-compose.dev.external-ollama.yml | ||
| docker-compose.dev.gpu.yml | ||
| docker-compose.dev.yml | ||
| docker-compose.external-ollama.yml | ||
| docker-compose.gpu.yml | ||
| docker-compose.ollama-host.yml | ||
| docker-compose.socket-proxy.yml | ||
| docker-compose.team.test.yml | ||
| docker-compose.team.work.yml | ||
| docker-compose.team.yml | ||
| docker-compose.yml | ||
| Dockerfile | ||
| LICENSE | ||
| nginx.conf | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| screenshot.png | ||
| SECURITY.md | ||
Libre WebUI
The local-first AI workspace you control.
Chat with local or cloud models, search your documents, create artifacts, and run agentic tasks in isolated workspaces—all from a self-hosted interface.
Private by default · Provider-flexible · No application telemetry · Apache 2.0
Website · Documentation · Releases · Quick start
What is Libre WebUI?
Libre WebUI is a self-hosted AI workspace for people who want control over their models, data, providers, and interface.
Use local models through Ollama, connect the providers you choose, search your own documents, create interactive artifacts, and give model-driven tasks an isolated workspace with files, tools, a terminal, and a live preview.
It runs on your machine, server, or cluster. Libre WebUI is not a hosted AI service and does not require a cloud account for local inference.
Why Libre WebUI?
- Local-first: Use Ollama and other local inference backends.
- Provider-flexible: Connect cloud providers or OpenAI-compatible endpoints when you choose.
- Private by default: Libre WebUI ships without application telemetry or analytics.
- Built for work: Turn conversations into documents, code, websites, SVG, JSON, and other artifacts.
- Isolated tasks: Work provides a persistent project environment with sandboxed commands, files, diffs, and previews.
- Open source: Use, modify, redistribute, and fork the core project under the Apache License 2.0.
- Self-hosted: Keep the interface, conversations, and configuration on infrastructure you control.
When you use a remote provider, that provider receives the requests you send to it. Local-first does not mean that remote inference is invisible.
Quick start
Requirements
- Node.js 22.22 or newer
- Ollama for local models
- Docker is optional and required only for local Work sandboxes
Start with npm
npx libre-webui@latest
Open http://localhost:8080.
The first account created on a fresh installation becomes the administrator.
Connect a local model
Install Ollama, then pull a model:
ollama pull gemma4:12b
Libre WebUI can now use Ollama for local inference. No cloud account or API key is required.
Start with Docker
Clone the repository and start the default stack:
git clone https://github.com/libre-webui/libre-webui.git
cd libre-webui
docker compose up -d
See the Docker deployment guide for production configuration, external Ollama, GPU support, networking, and persistent storage.
Features
| Feature | Description |
|---|---|
| Chat | Conversations with local models, remote providers, and compatible endpoints |
| Local inference | Ollama support with no required cloud account |
| Provider plugins | Chat, image, embedding, and speech providers through an extensible plugin layer |
| Document search | Search and chat with PDF and plain-text documents |
| Artifacts | Generate and preview HTML, SVG, JSON, code, and multi-file projects |
| Workspaces | Persistent, task-scoped environments with files, terminal, diffs, and previews |
| Agents | Optional integration with installed agent CLIs and Libre Claw |
| Accounts | Local accounts, roles, optional OAuth, rate limits, and configurable signup |
| Deployment | npm, Docker Compose, Kubernetes, Helm, and desktop client |
| Interface | Tabs, global search, themes, adaptive accents, and 25 locales including Arabic RTL |
Models and providers
Ollama is the default local path, but Libre WebUI is designed to avoid provider lock-in.
Supported integrations include:
- Ollama and Ollama Cloud
- OpenAI
- Anthropic
- Google Gemini
- Groq
- Mistral
- OpenRouter
- Hugging Face
- GitHub Models
- Moonshot AI / Kimi Code
- ComfyUI
- ElevenLabs
- Qwen3-TTS
- Kyutai TTS
- MLX LM on Apple Silicon
- OpenAI-compatible services
Provider availability can change between releases. See the provider documentation for current configuration instructions.
Credentials can be supplied through deployment environment variables or stored in encrypted, user-scoped settings.
Work: an isolated workspace for every task
Work gives a model a persistent project environment where it can build, modify, and preview files.
Each task includes:
Work task
├── Persistent conversation and run history
├── Dedicated workspace volume
├── Policy-checked command sandbox
└── Files · Activity · Terminal · Preview
Work can allow a model to:
- Read, create, edit, move, delete, and search files
- Run bounded shell commands
- Start and stop a browser preview
- Produce syntax-highlighted code
- Show file diffs
- Continue work in the same environment later
Work is disabled for regular users by default and never falls back to executing commands directly on the host.
Important security limitations
Containers are not virtual machines. Work tasks have outbound internet access by design, and administrators should review the deployment model before enabling agentic execution.
The default Docker Compose setup mounts the Docker socket so Work can create task containers. This gives the application root-equivalent control of the host. Every Libre WebUI administrator should therefore be treated as a host administrator when using that configuration.
For stronger isolation, use:
- The Docker socket proxy configuration
- Kubernetes-based Work sandboxes
- A separate host or cluster dedicated to Libre WebUI
Read the complete Work security documentation before enabling it for untrusted users.
Privacy and security
Libre WebUI ships without application telemetry or analytics.
When using a local provider such as Ollama, prompts and responses remain on the infrastructure where that provider runs. When using a remote provider, prompts, responses, documents, and tool results may be sent to that provider as part of the request.
For multi-user deployments, Libre WebUI supports:
- Local accounts and roles
- bcrypt password hashing
- JWT sessions
- Login and signup rate limits
- Optional Cloudflare Turnstile
- Optional GitHub and Hugging Face OAuth
- AES-256-GCM encryption for sensitive application values
- Persistent SQLite storage
- Configurable data directories
Application-layer encryption is not full-disk encryption or end-to-end encryption. For production deployments, use HTTPS, stable secrets, access-controlled storage, backups, and disk encryption where appropriate.
Optional agent integrations
Libre WebUI can expose installed Claude Code or Codex CLIs as chat models when they are configured on the server.
This uses the credentials available to the Libre WebUI server user. Treat this as equivalent to granting the selected agent shell access on that system.
Disable this feature with:
AGENT_CLI_MODELS_ENABLED=false
For broader automation, the optional Libre Claw integration provides a separate agent runtime for workflows involving files, shell, Git, browsers, HTTP, web search, MCP, memory, approvals, and schedules.
Deployment options
| Deployment | Command or link | Use case |
|---|---|---|
| npm | npx libre-webui@latest |
Fast local start |
| Docker Compose | docker compose up -d |
Persistent self-hosted deployment |
| External Ollama | docker compose -f docker-compose.external-ollama.yml up -d |
Use an existing Ollama instance |
| NVIDIA Docker | docker compose -f docker-compose.gpu.yml up -d |
GPU-enabled local inference |
| Kubernetes | helm install libre-webui oci://ghcr.io/libre-webui/charts/libre-webui |
Cluster deployment |
| Desktop client | GitHub Releases | Desktop interface over a managed backend |
| Source | npm install && npm run dev |
Development |
For production deployments:
- Set stable
JWT_SECRETandENCRYPTION_KEYvalues. - Persist the application data directory.
- Back up the database and encryption key together.
- Use HTTPS through a trusted reverse proxy.
- Review the Docker socket and Work security model.
- Disable public signup unless it is explicitly required.
See the deployment documentation for details.
Documentation
- Quick start
- Docker deployment
- Kubernetes deployment
- Working with models
- Provider connections
- Work workspaces
- Document chat
- Plugin architecture
- Capability contracts
- Authentication
- Data portability
- Platform foundation
- Speech to text
- Environment variables
- Troubleshooting
Contributing
Contributions are welcome, including:
- Bug fixes
- Tests
- Documentation
- Translations
- Provider integrations
- UI improvements
- Security reviews
git clone https://github.com/libre-webui/libre-webui.git
cd libre-webui
git checkout dev
npm install
npm run dev
Create a branch, make your changes, add tests and documentation where
appropriate, and open a pull request against dev.
Please read:
Report security vulnerabilities privately rather than through public issues.
License and stewardship
Libre WebUI is licensed under the Apache License 2.0.
You may use, modify, redistribute, and fork the project under the terms of that license.
Kroonen AI funds development and provides optional deployment, integration, security review, training, customization, and support services. Commercial services do not change the Apache 2.0 license of the core project.
The project’s independence and community commitments are described in the Community & Ethical Charter.
Project links
- Website: librewebui.org
- Documentation: docs.librewebui.org
- GitHub: github.com/libre-webui/libre-webui
- Releases: GitHub Releases
- Docker Hub: librewebui/libre-webui
- Forgejo mirror: git.kroonen.ai/libre-webui/libre-webui
- Hugging Face: huggingface.co/libre-webui
- Sponsor: GitHub Sponsors