Open-source alternatives to ChatGPT: 4 AI chat interface tools compared
Moving off a hosted chat interface means running the model server, the databases and the upgrades yourself, and these four tools differ mainly in what they expect you to operate: a container stack for a team, or one laptop for one person. LibreChat is the one most readers should look at first for a like-for-like team replacement, since it is MIT licensed and can hold Claude, Gemini and OpenAI connections at the same time.
What ChatGPT does, and why people look elsewhere
ChatGPT is OpenAI's hosted chat interface to its models, with conversation history, file uploads, web browsing and custom assistants.
- conversations and uploaded files are processed on the vendor's servers
- one vendor's models only
- per-seat pricing for team features
The candidates at a glance
| Project | Licence | Maintenance | Language | GitHub stars | Install | Best for |
|---|---|---|---|---|---|---|
| open-webui/open-webui | Custom licenceCustom licence: read the LICENSE file | Commits in the last dayLast push October 11, 2026 | Python | 154,310 | See analysis | A team that wants a self-hosted chat layer over Ollama or any OpenAI-compatible endpoint, with accounts, groups and roles, and retrieval over documents that must not leave the network. The README describes it as designed to operate entirely offline. |
| danny-avila/LibreChat | MITPermissive: commercial use allowed | Commits in the last dayLast push October 11, 2026 | TypeScript | 45,523 | See analysis | Teams and individuals who want a ChatGPT-shaped interface with conversation history, multi-user authentication and data sovereignty, and who need more than one provider at once: Anthropic, OpenAI, Azure, Google, AWS Bedrock and Ollama are supported at the same time. |
| Mintplex-Labs/anything-llm | MITPermissive: commercial use allowed | Commits in the last six monthsLast push October 9, 2026 | JavaScript | 66,942 | See analysis | A workspace where the documents are the point: AnythingLLM bundles document ingestion, a vector store, agents and per-user permissions behind one installer, which suits teams whose files cannot leave the network and who want source citations in the chat. |
| janhq/jan | Custom licenceCustom licence: read the LICENSE file | Commits in the last six monthsLast push October 10, 2026 | TypeScript | 44,888 | See analysis | One person on one machine who wants local models without writing inference code: Jan is a Tauri desktop app that downloads and runs GGUF models from HuggingFace, keeps cloud fallbacks for OpenAI, Anthropic, Mistral, Groq and others, and exposes a local OpenAI-compatible server on port 1337. |
Each alternative in detail
open-webui/open-webuiUser-friendly AI Interface (Supports Ollama, OpenAI API, ...)
- Best for
- A team that wants a self-hosted chat layer over Ollama or any OpenAI-compatible endpoint, with accounts, groups and roles, and retrieval over documents that must not leave the network. The README describes it as designed to operate entirely offline.
- What you give up
- The licence is a custom one GitHub cannot classify, and our analysis of Open WebUI tells you to confirm the LICENSE file in the repository you actually clone, with custom theming and branding, SLA support and LTS versions presented in the README as part of an Enterprise Plan. Retrieval is a commitment rather than a toggle: the README lists nine vector databases, and that analysis warns that changing the embedding model means re-embedding your documents.
danny-avila/LibreChatEnhanced ChatGPT Clone: Features Agents, MCP, Skills, DeepSeek, Anthropic, AWS, OpenAI, Responses API, Azure, Groq, o1, GPT-5, Mistral, OpenRouter, Vertex AI, Gemini, Artifacts, AI model switching, message search, Code Interpreter, langchain, DALL-E-3, OpenAPI Actions, Functions, Secure Multi-User Auth, Presets, open-source for self-hosting. Active
- Best for
- Teams and individuals who want a ChatGPT-shaped interface with conversation history, multi-user authentication and data sovereignty, and who need more than one provider at once: Anthropic, OpenAI, Azure, Google, AWS Bedrock and Ollama are supported at the same time.
- What you give up
- There is no quick setup for one person. Our analysis of LibreChat puts MongoDB, a RAG API service and optionally Meilisearch in the compose stack, and says LibreChat ships no built-in models, so at least one provider API key is required before it does anything useful. The release list also includes release candidates such as v0.8.8-rc1 from 2026-08-14, so pin a version rather than tracking a branch.
Mintplex-Labs/anything-llmStop renting your intelligence. Own it with AnythingLLM. Everything you need for a powerful local-first agent experience
- Best for
- A workspace where the documents are the point: AnythingLLM bundles document ingestion, a vector store, agents and per-user permissions behind one installer, which suits teams whose files cannot leave the network and who want source citations in the chat.
- What you give up
- It is an application rather than a library. Our analysis of AnythingLLM says to skip it if you want to embed retrieval inside your own service, and the README marks multi-user instance support and the embeddable chat widget as Docker version only, so the desktop build is a narrower product. The same analysis asks you to settle whether your team is comfortable with the release cadence the repository shows.
janhq/janJan is an open source alternative to ChatGPT that runs 100% offline on your computer.
- Best for
- One person on one machine who wants local models without writing inference code: Jan is a Tauri desktop app that downloads and runs GGUF models from HuggingFace, keeps cloud fallbacks for OpenAI, Anthropic, Mistral, Groq and others, and exposes a local OpenAI-compatible server on port 1337.
- What you give up
- The hardware is the constraint and it is documented: the README lists macOS 13.6+ with 8GB RAM for 3B models, 16GB for 7B and 32GB for 13B, and Windows 10+ with GPU support. Our analysis of Jan says to skip it if you need a headless server, a Docker image or a mobile build. The licence also needs a look, because the repository's licence field is recorded as a custom one GitHub cannot classify while the README's licence section states Apache 2.0.
The same reasons send readers looking at Claude and Gemini
ChatGPT is a hosted chat interface over one vendor's models, with conversation history, file uploads, web browsing and custom assistants. Three documented things push people off it. Conversations and uploaded files are processed on the vendor's servers. The models are one vendor's only. And team features are priced per seat. The same three points explain a search for Claude or Gemini, because those products answer the same question from a different hosted vendor.
None of the four projects here removes all three. They change which one you take on yourself.
The split is roughly this. A self-hosted interface still sends your prompt somewhere, because none of these four ships a model. What they change is who holds the conversation history, who holds the uploaded files, and how many model providers you can point at once. LibreChat and AnythingLLM are explicit about supporting many providers in one deployment. Open WebUI is explicit about running entirely offline against Ollama or a local OpenAI-compatible endpoint, and about a local inference engine for retrieval. Jan is a desktop client that runs models on your own machine and offers a local OpenAI-compatible server for other applications.
Scope is worth stating. This page covers four chat interfaces you run. It does not cover a bare model server with no interface, and it does not cover a hosted assistant you can only use as a service, because neither gives you the conversation history back.
A container stack, a workspace, or a desktop app
The four differ less in chat features than in the shape of the thing you install.
LibreChat is a TypeScript web application that runs on Docker and presents an interface inspired by ChatGPT, with the release notes for v0.8.8-rc1 listing agent run control, human-in-the-loop agents, a unified agent builder, code interpreter workflows, artifact handling and Langfuse observability. It is the most conventional of the four to deploy for a team, and the most dependent on a stack of supporting services.
Open WebUI is a Python application that presents a browser interface, user accounts and retrieval on top of local or remote model runners, with tags for Ollama and CUDA images. Its feature list is the longest here: granular roles and groups, plugins in the form of filters, actions, pipes, tools and skills, connections to external services through MCP, MCPO and OpenAPI tool servers, channels for shared team timelines, persistent memory, calendars and automations, a built-in arena and ELO-based leaderboards for comparing models, and voice and video calls wired to several transcription and speech providers.
AnythingLLM is a workspace rather than a chat layer. It ingests documents, keeps a vector store, runs agents and applies per-user permissions, and the README describes it as a local-first agent experience available as a desktop application for Mac, Windows and Linux as well as a container.
Jan is the odd one out: a Tauri desktop application rather than a server, which changes what it can be used for.
One person, a team, compliance, embedding
Solo. Jan is the shortest path. You download an installer for Windows, macOS or Linux, pick a GGUF model from HuggingFace, and it runs on the machine. The catch is fixed and stated up front: the README's system requirements list 8GB of RAM for 3B models, 16GB for 7B and 32GB for 13B on macOS.
Small team. LibreChat is the closest fit for a group that used a shared hosted assistant and wants the same shape back. It provides conversation history, multi-user authentication, presets, message search, artifacts and a code interpreter, and it will hold connections to Anthropic, OpenAI, Azure, Google, Vertex AI, AWS Bedrock and Ollama in the same deployment. Our analysis of LibreChat describes exactly that: teams and individuals who need history, accounts and data sovereignty without paying for a managed service.
Company with compliance needs. The question is where the data sits and who can read it. AnythingLLM and Open WebUI both put documents inside your own network, and both give you per-user or group-level control. Open WebUI's README describes LDAP and Active Directory integration, single sign-on through trusted headers and OAuth providers, and SCIM 2.0 provisioning, alongside optional encryption for its SQLite database or a choice of PostgreSQL, and file storage kept local or in S3, Google Cloud Storage or Azure Blob Storage. Licence terms are the other half of the question, and they are not the same across the four.
Developer embedding it. This is where the four diverge most. AnythingLLM's README lists a full developer API and a custom embeddable chat widget for your own site, marked as Docker version only. Open WebUI offers a plugin surface with filters, actions, pipes, tools and skills plus MCP, MCPO and OpenAPI tool servers, and a built-in key-value storage API for artifacts. Our analysis of AnythingLLM is direct that the useful surface is an application and not a package, so if you want retrieval inside your own service, this is the wrong one of the four.
What self-hosting each one actually costs
The install commands describe the real bill.
Open WebUI: one compose file. The analysis tells you to check that OPEN_WEBUI_PORT maps to the container's 8080, and to decide which vector database you are committing to before anyone uploads a document, because the README lists nine of them. Changing the embedding model later means re-embedding everything, which is the operational bill nobody sees until it arrives.
LibreChat: clone, copy the example environment file, and bring up a stack. That stack is the cost. Our analysis of LibreChat names MongoDB, a RAG API service and optionally Meilisearch, coordinated through Docker Compose, and adds the point that decides the architecture: LibreChat provides no built-in models, so you supply at least one provider API key. The release notes also show work landing in release candidates, so the version you deploy is a choice you make on purpose.
AnythingLLM: clone, copy the Docker example environment file, and run the image. The narrower detail is in the feature list, where multi-user support and the embeddable widget are both marked as Docker version only, so a desktop install is a different product with a different feature set.
Jan: no server at all in the normal path. You download a packaged binary per platform. If you build from source, the README's prerequisites are Node.js 20 or newer, Yarn 4.5.3 or newer, Make, Rust for Tauri, and a MetalToolchain component on Apple Silicon, and the local OpenAI-compatible server listens on port 1337. The memory table decides whether any of this is worth doing.
The licences, and the parts that are not open source
Two of the four are unambiguously permissive. LibreChat and AnythingLLM are MIT licensed, which means a modified deployment carries no obligation to publish anything.
The other two need a look before you rely on them. Open WebUI's licence field is recorded as a custom licence GitHub cannot classify, and our analysis of Open WebUI tells you to confirm the LICENSE file in the repository you clone. Its README also points at an Enterprise Plan for enhanced capabilities including custom theming and branding, SLA support and long-term support versions, so the support contract and the support code are different products.
Jan is a genuine ambiguity worth resolving in your own repository. The licence field is recorded as a custom licence GitHub cannot classify, while the README's licence section states Apache 2.0. Those are different claims about the same repository, and the answer matters if you distribute a build rather than only running it. Check the file in the commit you pinned.
The pattern across the four is that the chat layer is rarely where the budget goes. What costs money is the layer under it: a support contract from a vendor, an enterprise feature set, or the engineer who owns the database, the vector store and the upgrade path once the deployment is live.
Bottom line
A team moving off a shared hosted assistant should read LibreChat first, because it is MIT licensed, holds several providers at once and has the account, history and artifact features that group use depends on. A team whose documents cannot leave the network is better served by AnythingLLM or Open WebUI, with Open WebUI offering the wider retrieval surface and AnythingLLM the simpler document workspace. One person on a laptop should look at Jan and check the memory requirement against the model they want. Before committing, read the licence file in the repository you actually pinned, decide who owns the vector store and the upgrades, and check which of the features you need are in the open-source build rather than a paid tier.