Having spent the last couple of months tinkering with LLMs, I have to admit that these local models have boosted my productivity once I began pairing them with FOSS tools. So far, I’ve hooked my Ollama models to Blinko, Paperless-GPT, Karakeep, VS Code (via Continue.dev), and other self-hosted services, and their superior reasoning capabilities make LLMs perfect for tackling monotonous tasks.

But what I lacked in this setup was a central web interface for conversing with my LLMs – something that’s as simple as the ones on ChatGPT, Perplexity, and Gemini. Sure, I could log in to the Ollama instances on my Proxmox LXC, Windows 11 machine, and MacBook, but it’s far from intuitive. Fortunately, Open WebUI brings an ultra-simple interface to solve my LLM woes and even adds a couple of extra integrations to make it worthwhile for my coding, note-taking, and research tasks.

Open WebUI provides a sleek ChatGPT-like interface for prompting my LLMs

Except, all the processing occurs on my server nodes

Nothing beats the simplicity of adding queries in a search bar and getting results on any topic imaginable, and that’s pretty much where Open WebUI evens the odds for local LLMs. Rather than providing a terminal-like UI, it ships the same no-nonsense interface for chatting with AI models as its rivals, with the only differences being that it’s completely free to use and everything remains locked behind my private network.

Open WebUI lets me create different chat sessions for all my conversations, so I can better organize my thoughts and research queries. I often swap between different LLMs depending on their reasoning capabilities, and the context of a session remains preserved even if I switch my models mid-conversation. Open WebUI also lets me download all the logs of my chat sessions, and I can even rate (and regenerate) responses based on their relevance and accuracy.

Despite its accessible nature, Open WebUI also packs extra features for advanced users. For example, it hides advanced prompt settings behind a toggle, so I can fine-tune the temperature, scaling bias, reasoning effort, response token size, and other parameters for my LLM collection. It can even download and add new models directly from its UI, and I can create a masked arena environment for A/B testing different LLMs.

But it’s more than a glorified chatbot frontend

Open WebUI can record notes and run OCR scans

So far, I’ve only covered the chat-based aspects of Open WebUI, but it’s just as useful for quickly jotting down ideas. Open WebUI includes a note taker that supports Markdown syntax, to-do checklists, and code blocks. Thanks to the AI integration, I can use my LLMs to modify (or, as Open WebUI puts it, “Enhance”) the tone and style of my notes. Likewise, I can feed multiple notes into the same chat session, which is really handy when I want to query my LLMs about related topics.

Open WebUI can also perform OCR analysis on uploaded documents, and although I had to modify the default context length, it supports RAG scans to find specific files using normal conversational prompts. In fact, it can even create a knowledge base from uploaded documents to create grounded sources for my queries – thereby mimicking the research-centric features of Open Notebook and NotebookLM.

It even integrates with my SearXNG, Jupyter Notebook, and ComfyUI instances

By default, Open WebUI can’t access the Internet, though it’s possible to connect it to different search engines. Me? I use it with my SearXNG LXC, which is a privacy-respecting metasearch engine capable of aggregating results from dozens of search engines. With the SearXNG + Open WebUI combo, I can query my LLMs about specific links, thereby adding some grounded info to my searches instead of relying on their hallucinated content.

Since Open WebUI has the pyodide code interpreter built into it, I can use it to generate (and run) Python syntax without relying on an IDE or code editor. Personally, I tend to use my VS Code + Continue.dev setup alongside a Claude Code server connected to my LLMs for anything related to programming. But Open WebUI’s support for pyodide and Jupyter Notebook (including its self-hosted variant) earns it some brownie points in my book.

As if that’s not enough, Open WebUI also supports image generation platforms, including Automatic1111 and ComfyUI. I’ve been using the latter ever since Automatic1111 stopped receiving updates, and although configuring it is a bit of a hassle, ComfyUI works incredibly well with Open WebUI. In fact, once I’ve enabled the image generator integration for a chat, I can use simple text prompts on Open WebUI to generate, edit, and upscale images without constantly swapping to my convoluted ComfyUI workflow.

Deploying Open WebUI is pretty simple

But it can take a while to pair it with ComfyUI workflows

Depending on how much you want to customize your Open WebUI instance, the process can take anywhere between a couple of seconds to an hour. For a barebones setup connected to your local LLMs, you can execute the docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=https://example.com -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main command in your terminal after replacing the OLLAMA_BASE_URL variable with the IP address (and port number) of your Ollama instance. Then, you can access the Open WebUI’s interface by entering the IP address of the system housing it, followed by a colon (:) and the port number 3000. Once you’ve logged into it, you’re free to tweak the Ollama connection variables, LLMs, and other settings from the Admin Panel.

Configuring SearXNG and Jupyter Notebook is just as simple, though I can't say the same about the ComfyUI aspect. That’s because you’ll have to create a workflow for your text-to-image models in ComfyUI, export it to Open WebUI, and manually modify the node details in the settings for the image generation integration to work. I’ve used the z_image_turbo_bf16.safetensors template on a ComfyUI instance hooked up to my primary PC (and its RTX 3080 Ti), and I had no issues generating images once I’d finally added the right workflow nodes after cross-checking them with the workflow.json file.

Make the most of your LLMs with Open WebUI

I’ve already used Open WebUI in the past, but it was nowhere close to the feature-laden behemoth it is today. After all, it’s as good at taking LLM-powered notes, building a research base, creating OCR, and generating code as it is at managing my chat sessions with my local AI and bringing images to life with simple prompts. I can technically connect it with OpenAI’s servers, but considering the self-hosted nature of my application stack, I’d rather let it remain paired with my local Ollama LLMs and ComfyUI workflows.