Intermediate 10 minInterfaces

LibreChat: the multi-user web interface for LLMs locaux

Direct response

LibreChat is an open-source web chat interface (MIT license) that you install with Docker: it connects to Ollama or any OpenAI-compatible API, manages accounts for an entire team, and adds AI agents with MCP protocol support for connecting external tools. Allow about 30 minutes to get a first working instance, in addition to the time needed to deploy the local model itself.

LibreChat is an open-source web chat interface under the MIT license that sits in front of any model: a local model served by Ollama, an OpenAI-compatible API, or several at once in the same window. You install it locally with Docker, create accounts, and give a team an AI-assisted chat tool without any conversation leaving the network. The project also adds agents and support for the MCP protocol to connect external tools. Here is what it takes to run and what it requires in return.

By Mohamed Meguedmi·Update 2026-09-28·Tested on Windows, macOS, and Linux

#What LibreChat is

It is the “interface” half of a local installation. The model runs elsewhere—Ollama, vLLM, llama.cpp—and LibreChat provides everything around the conversation: history, accounts and authentication, presets, attachments, agents, and search across past exchanges. The project is licensed under the MIT license, leaving little ambiguity about what you are allowed to do with it: use it, modify it, and redistribute it, including commercially, without any obligation to release the code.

The project describes itself as a self-hosted AI chat platform that unifies all major AI providers in a single, privacy-focused interface. Beyond standard chat, it adds agents, support for the MCP protocol, artifacts for displaying code and diagrams cleanly, a code interpreter, custom actions, and multi-user authentication designed for enterprise use rather than a single workstation.

Its most visible distinguishing feature is multi-provider support: within the same conversation, you can switch from a local model to a remote model. This is useful, and it is also the setting to monitor closely if the goal is to let nothing leave the system: the technical capability exists, it can be disabled in the configuration, and it should be checked after every update rather than configured once and forgotten.

#Who it's for

The Local AI Kit

Your private ChatGPT, free, on your own machine in an hour — LM Studio, Ollama, Open WebUI, your documents, no cloud.

  • Lifetime online access
  • PDF + files
  • Lifetime updates
Choose your interface based on your needs
SituationWhat works
One person, one machine, zero administrationAn all-in-one desktop application
A team, accounts, a shared serverLibreChat
A single workstation with a lightweight web interfaceOpen WebUI — see the dedicated tutorial
Building applications with APIs and loggingAn LLM application-building platform

The useful dividing line is the number of users. Once several people need to authenticate and retrieve their own conversations, a desktop app is no longer enough, and LibreChat is built for this use case: authentication through OAuth2, LDAP, or a simple email account, built-in moderation, and per-user token usage tracking.

The other, less obvious dividing line is whether you need a web administration panel rather than a configuration file edited by hand. A small technical team can work perfectly well with Open WebUI and a few settings; a team that includes nontechnical users, or that needs to change a role or cut off someone’s access in a few clicks, gets more value from the administration panel included with LibreChat.

#Install it with Docker

  1. 01
    Retrieve the repository and environment file
    The project provides a Docker Compose file and a sample file to copy. You modify this file, not the Compose file itself.
  2. 02
    Generate secrets
    Encryption keys and session secrets must never remain at the example values provided in the template file. The project explains how to generate them correctly; five minutes now can prevent an installation exposed to everyone from day one.
  3. 03
    Start the stack
    The web app, database, and administration panel are brought up together by the official Docker Compose files provided by the project. The interface then responds on a local port, ready for creating the first administrator account.
  4. 04
    Create the first account, then close registration
    Leaving registration open on an instance accessible from the internet amounts to giving your GPU and electricity bill to the first person who comes along.
i
A database, and therefore backups
Conversations, accounts, and presets live in a database. Back up its volume before every update: here, “reinstall” would mean losing everyone's history.

Updates follow the same principle as for any application with a database: read the release notes before pulling a new image, back up, then update. The project regularly publishes new features—agents, MCP, an administration panel—which is a reason to follow versions closely, not an excuse to skip steps.

#Connect it to Ollama

LibreChat declares its providers in a dedicated configuration file and treats Ollama as an OpenAI-compatible endpoint. Two pitfalls recur systematically, and both can be fixed in a few minutes once identified.

localhost refers to the container
From inside Docker, you need the host address as seen by the container, and Ollama must listen on the network interface, not just the loopback interface.
The model list
Depending on the configuration, models are retrieved automatically from the server or entered manually. An empty list in the interface almost always means the base URL is wrong, not that the model is missing.

For several people chatting at the same time, the question is no longer the interface but the inference server: a server designed for a single user processes requests one after another, and the third person waits. This is an architectural choice to make early, before the team gets used to response times that deteriorate during peak hours.

LibreChat can also combine multiple providers in a single instance: a local model for routine work, and a remote provider for occasional tasks that exceed what the local hardware can handle. You can switch by conversation, which is convenient, and that is precisely why you should decide in advance which providers are allowed rather than discovering it afterward in usage logs.

#Chat with your documents

LibreChat can attach files to a conversation and answer based on their contents. Technically, it is a separate service from the interface—a dedicated RAG API service published separately by the project—that splits documents, encodes them as vectors, and stores them; it runs alongside the interface and requires an embedding model, which is not the conversation model.

Two observations apply to all tools in this family: a PDF that is only a scan contains no text until it has undergone optical character recognition, so it gets indexed as empty; and relevance depends primarily on the embedding model chosen, which matters especially for documents written in French rather than English.

#Agents and the MCP protocol

Beyond simple chat, LibreChat offers AI agents with Model Context Protocol (MCP) support, allowing an agent to connect to external tool servers instead of being limited to answering from what it already knows. An agent can also use file search, run code, and be shared with specific users or groups rather than the entire instance. A community agent catalog lets you discover and deploy agents already configured by others instead of starting from scratch for each new use case.

An administration panel accessible from the browser lets you manage users, groups, roles, and permissions, and change settings live without redeploying the stack. It is included in the official Docker compositions, avoiding the need to install an additional service separately, and it is where you can disable a person’s access or access to a provider in a few clicks instead of editing a configuration file.

i
MCP, a principle of caution
An MCP server connected to an agent can take action, not just respond. Before enabling it for the whole team, verify what it actually does and who can add it to the shared catalog—the same caution you should apply to any tool connected to an LLM, local or remote.

#Multiple users: what to configure

Registration closed
Accounts created by an administrator, or restricted to an email domain.
Authorized providers
If the commitment is that nothing leaves the system, remote providers should be disabled in the configuration rather than in usage guidelines. A verbal instruction doesn’t stop anyone from switching a conversation to a remote provider with one click.
Quotas
A shared local model has no bill, but it does have a queue. Per-user limits, combined with the usage tracking built into the admin panel, protect everyone's experience instead of letting the first person to connect monopolize the GPU.
Retention
By default, conversations remain in the database indefinitely. Decide on a retention period appropriate to your regulatory context, write it into an internal policy, and then actually enforce it instead of leaving it on paper.
Agents and MCP tools
Decide who can create an agent, connect an MCP server, or publish an agent to the team's shared catalog. A misconfigured agent acts on behalf of the person who created it, not merely in their own name.

#The limitations

LibreChat is an application to administer: updates, backups, secrets, and a database. It's not an executable you double-click, and the effort only makes sense for several users—for one person, an all-in-one desktop application achieves the same result with much less administration.

Some advanced features require additional services—the document chat service, code execution, and certain agents—meaning more memory and containers to monitor on a machine that already hosts a model. On a modest server, it is better to enable these features one at a time and check memory usage at each step than to start everything at once.

Finally, the interface does nothing to change response quality: an 8-billion-parameter model responds like an 8-billion-parameter model, no matter how polished the window around it is or how many agents and connected tools surround it.

#FAQ

Is LibreChat free?+
Yes, it is open source under the MIT license and self-hosts at no licensing cost, including for professional use or modified redistribution. Any costs come from remote providers you choose to connect to it, or from the hardware that runs the model and hosts the Docker stack.
Does it work completely offline?+
Yes, with a local model and no remote provider configured, the conversation itself never leaves the network. You need network access for the initial installation, Docker image downloads, and updates, but not for daily use once the stack is running.
Why is my model list empty?+
Almost always an incorrect base address in the provider configuration file: from inside a container, localhost refers to the container itself, not the host machine. Also check that Ollama is listening on the network interface and not only on the loopback interface before looking elsewhere.
How many users can it serve?+
The interface itself can easily support a small team, including the administration panel; the real limit is the inference server that runs the model. For genuinely simultaneous requests, a server designed for concurrency is required instead of one designed for a single workstation, or visible queues will result.
Do you need a GPU for LibreChat?+
Not for the interface itself, which is an ordinary web application that runs very well on the CPU. The GPU is required by the server that actually runs the model, and that server can run perfectly well on another machine on the network instead of the one hosting LibreChat and its database.
Does LibreChat support agents and the MCP protocol?+
Yes. LibreChat offers AI agents with Model Context Protocol support that can use external tool servers, search files, and run code, and can be shared with specific users or groups rather than the entire instance at once, through a community agent catalog.
Did this guide help you?

Feedback, an error, or a clarification? Let us know—it improves the guide for everyone.