LibreChat: the multi-user web interface for LLMs locaux
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.
#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
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
| Situation | What works |
|---|---|
| One person, one machine, zero administration | An all-in-one desktop application |
| A team, accounts, a shared server | LibreChat |
| A single workstation with a lightweight web interface | Open WebUI — see the dedicated tutorial |
| Building applications with APIs and logging | An 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
- 01Retrieve the repository and environment fileThe project provides a Docker Compose file and a sample file to copy. You modify this file, not the Compose file itself.
- 02Generate secretsEncryption 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.
- 03Start the stackThe 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.
- 04Create the first account, then close registrationLeaving registration open on an instance accessible from the internet amounts to giving your GPU and electricity bill to the first person who comes along.
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.
- Open WebUI: the other reference web interface
- Serve multiple users with vLLM
- Local AI in the enterprise: the GDPR framework
#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.
#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?+
Does it work completely offline?+
Why is my model list empty?+
How many users can it serve?+
Do you need a GPU for LibreChat?+
Does LibreChat support agents and the MCP protocol?+
- Source: the LibreChat GitHub repository
- Source: official LibreChat documentation
- Source: LibreChat's MIT license text
Feedback, an error, or a clarification? Let us know—it improves the guide for everyone.