XDA ran a piece this month arguing that Docker turned a local AI setup into something they can rebuild in four minutes. That is the real point of a containerized AI stack on a desktop: the model weights and chat history live in a mounted volume, and the rest of the stack (the UI, the inference engine, the reverse proxy) is disposable. Blow it away, edit a compose file, spin it back up.
We tested seven desktop AI apps against that goal on Windows, macOS and Linux. All seven either ship official Docker images or come with a one-line docker run command, and all seven separate state from runtime so a rebuild does not lose your history.
What to look for in a Docker-friendly desktop AI app
- Official Docker image. Third-party images move slowly and sometimes lag security patches.
- Volume-mounted state. Chat history, custom prompts and model weights should live on a host path.
- GPU passthrough. NVIDIA runtime support on Linux, WSL2 on Windows, Metal-on-host on macOS.
- OpenAI-compatible API. Lets you swap the app without rewriting client code.
- Web UI over a network. A desktop app that also serves a browser lets you use it from other rooms.
- Bring-your-own-model. GGUF and safetensors loaders let you use the models you already downloaded.
Quick comparison
| App | Best for | Free plan | Starting price | Rating |
|---|---|---|---|---|
| Open WebUI | Web UI for local LLMs | Full | Free | 4.8/5 |
| Ollama | One-line model runtime | Full | Free | 4.8/5 |
| LocalAI | OpenAI-compatible drop-in | Full | Free | 4.7/5 |
| LM Studio | GUI with model browser | Full | Free (paid tier for teams) | 4.7/5 |
| Jan | Native desktop client | Full | Free | 4.6/5 |
| LiteLLM | Multi-provider proxy | Full | Enterprise contract | 4.7/5 |
| Msty | Polished cross-model client | Yes | $49/yr Pro | 4.6/5 |
The apps
1. Open WebUI – Best web UI for local LLMs
Open WebUI is the front-end most people mean when they say “local ChatGPT.” It ships an official Docker image, mounts everything (settings, users, RAG documents) into a single volume, and connects to Ollama or any OpenAI-compatible endpoint out of the box. A four-minute rebuild is realistic: docker compose down, edit the tag, docker compose up, and the chats are exactly where you left them.
Where it falls short: The UI’s feature ceiling is high and the settings surface is dense. New users need an hour with the docs.
Pricing:
- Free, MIT licensed.
- Enterprise support offered separately.
Platforms: Runs anywhere Docker runs — Windows (WSL2 or Docker Desktop), macOS, Linux.
Bottom line: Install Open WebUI first. It is the sane front door for a Docker AI stack.
2. Ollama – Best model runtime
Ollama is the reason a lot of the current local-LLM boom is possible. One CLI, one library of GGUF models, and a REST API on port 11434 that a dozen front-ends (including Open WebUI, Jan and Msty) already speak. The Docker image supports NVIDIA GPU passthrough on Linux; the native macOS build uses Metal directly on host.
Where it falls short: The Ollama model naming convention diverges from Hugging Face, which is confusing when you copy a snippet.
Pricing:
- Free, MIT licensed.
Platforms: Native Windows, macOS, Linux; Docker image available for all three.
Bottom line: Pair Ollama with Open WebUI for the shortest path to a working local model.
3. LocalAI – Best OpenAI-compatible drop-in
LocalAI is a self-hosted API that speaks the OpenAI protocol byte for byte, so anything you built against ChatGPT works against it. That includes CrewAI, LangChain, LlamaIndex, and the OpenAI Python client. The official Docker image supports GGUF, safetensors, whisper, stable-diffusion and text-to-speech models under the same endpoint.
Where it falls short: No first-party chat UI; pair it with Open WebUI.
Pricing:
- Free, MIT licensed.
Platforms: Docker on Windows, macOS, Linux.
Bottom line: Pick LocalAI if the code you want to run already speaks the OpenAI API.
4. LM Studio – Best GUI with model browser
LM Studio is a native desktop app with a built-in Hugging Face-style model browser and a one-click load. It exposes an OpenAI-compatible server on localhost:1234 and can run inside a Docker container on Linux with GPU support. Rebuild friendliness comes from a straightforward config directory that mounts cleanly.
Where it falls short: The desktop UI is not as polished on Linux as it is on macOS. The paid tier is aimed at teams, not individuals.
Pricing:
- Free for personal use.
- LM Studio for Work paid tier for teams.
Platforms: Windows, macOS, Linux (Docker or native).
Bottom line: Use LM Studio if you want to browse and swap models visually.
5. Jan – Best native desktop client
Jan is the cleanest fully-native local AI desktop app. The Electron client runs on all three OSes, ships an OpenAI-compatible local API, and integrates with Ollama, LocalAI and remote models. Jan can also run in a Docker container as a headless server on a home box.
Where it falls short: Extension ecosystem is smaller than Open WebUI’s.
Pricing:
- Free, AGPL licensed.
Platforms: Windows, macOS, Linux.
Bottom line: Pick Jan if you want a native app rather than a browser tab.
6. LiteLLM – Best multi-provider proxy
LiteLLM is a proxy that speaks the OpenAI API to your app and forwards to any provider (OpenAI, Anthropic, Ollama, Bedrock, Vertex, Groq). Put it in front of your Docker AI stack and switching providers is a config change, not a code change. The official Docker image handles auth, rate limits, and per-user budgets.
Where it falls short: No chat UI of its own; it is infrastructure.
Pricing:
- Free, MIT licensed.
- LiteLLM Enterprise sold separately.
Platforms: Docker on Windows, macOS, Linux.
Bottom line: Add LiteLLM in front of Ollama and Open WebUI if you also use paid API providers.
7. Msty – Best polished cross-model client
Msty is the most polished of the desktop clients. It supports side-by-side model responses, split views for comparing outputs, and a clean prompt library. It runs local models via Ollama and remote models over API. Msty does not officially ship a Docker image, but the native app plays nicely with a Dockerized backend.
Where it falls short: Closed source; Pro features locked behind a subscription.
Pricing:
- Free tier for personal use.
- Msty Pro around $49/year.
Platforms: Windows, macOS, Linux.
Download: Website
Bottom line: Pick Msty for the best-looking client, especially for side-by-side model comparison.
How to pick the right one
- If you want the simplest option: Ollama plus Open WebUI in one docker compose file.
- If you need an OpenAI-compatible drop-in: LocalAI or LiteLLM in front.
- If you want to browse models visually: LM Studio.
- If you prefer a native app: Jan or Msty.
- If you route between OpenAI, Anthropic and local: LiteLLM.
- If you want side-by-side model comparison: Msty.
- If you tried a homegrown Python script and lost your history: Open WebUI, because history lives in a Docker volume that survives every rebuild.
FAQ
What is the fastest way to run a local LLM on desktop with Docker?
docker run ollama/ollama, then docker run open-webui/open-webui with the network flag pointing at Ollama. Both are official images. The XDA piece that inspired this list is doing roughly this.
Do I need a GPU?
No, but CPU inference is slow. A modest NVIDIA card, an Apple Silicon Mac, or an AMD Ryzen with iGPU offload all work. Ollama and LM Studio automatically use the best backend available.
Can these apps talk to remote APIs too?
Yes. Open WebUI, LiteLLM, LM Studio, Jan and Msty all support OpenAI, Anthropic, and other remote providers alongside local models.
Which is the best free desktop AI app?
Open WebUI plus Ollama is the free stack most people converge on. Jan and LM Studio are strong native alternatives.
How do I keep chat history across container rebuilds?
Mount the state directory as a Docker volume. Open WebUI stores everything under /app/backend/data; LocalAI under /build/models; Jan under its config directory. Persist that volume on the host and rebuilds do not lose history.