Back to guides
Compare·September 21, 2026·9 min read

AnythingLLM alternatives: what actually migrates when you switch

Pick the replacement by which AnythingLLM edition you are leaving, then budget the part the brand lists skip: chat history is the only thing that comes with you.

Last reviewed on .

The right AnythingLLM alternative depends on which of its three editions you are leaving — Desktop, self-hosted Docker, or Cloud — because they fail for different reasons. Open WebUI and LibreChat are the closest like-for-like swaps for multi-user chat over documents; RAGFlow is the one to pick when retrieval quality is the complaint; Onyx fits connector-driven company search; LM Studio and Jan fit a reader who only ever wanted a local chat window.

The part the brand lists skip is the bill for moving. AnythingLLM exports chat history and nothing else, no alternative here documents an importer for it, and the tool you are leaving is not in trouble — Mintplex-Labs/anything-llm is MIT, not archived, with commits on its default branch as recently as September 17, 2026 and v1.16.1 published August 27, 2026 (GitHub API, re-checked September 21, 2026). So you have time to do this properly.

Why people leave, and which edition they are leaving

Four complaints account for most of it, and each one is a documented property of a specific edition rather than a general flaw.

The complaintWhat is documentedWhich edition
"My agent will not run"The hosted cloud supports neither custom agents nor MCP, at any tier; the docs route those users to Desktop or self-hostedCloud only
"I cannot share it with my team"Multi-user support, user management, workspace access management, embeddable widgets, password protection, white-labeling and a browser-accessible UI are all marked Docker-only; the Desktop network toggle exposes the API on 0.0.0.0, and the docs warn it has no accounts or authentication in front of itDesktop
"A big document takes the instance down"The built-in cloud embedder "will not block you from trying to embed a 5,000pg PDF, but it will crash your instance" — measured in words, not file sizeCloud
"The hosting price does not include the model"Basic $50/monthly, Pro $99/monthly, Enterprise "Contact Us" — and the Basic tier line reads "Just bring an LLM API Key", because the hosted instance ships no built-in modelCloud

Read from the cloud limitations page, the desktop overview and the pricing page on September 19, 2026. Two naming traps before you compare anything. AnythingLLM's own surfaces disagree on tier names — the pricing page says Basic and Pro, the docs say Starter and Professional, and nothing reconciles them — so confirm which one your account is on. And "Pro" names two unrelated products: Cloud Pro at $99/monthly, and AnythingLLM Desktop Pro, a licence key for Desktop v1.15.0 and later. The Desktop Pro page describes its features but publishes no price, and anythingllm.com/pro returns 404, so any figure you see attached to that name came from somewhere else. No seat count, storage quota or usage quota is published for Cloud Basic or Pro either.

Note what is not on that list: cost of the models themselves. That bill does not go away whichever self-hosted tool you switch to, because each of them expects you to supply the key. It is not identical, though — retrieval defaults differ between these products, and they decide how much context every question carries.

Which alternative fits which job

AlternativePick it whenLicence and statusPublished price
Open WebUIYou want the AnythingLLM Docker experience — browser UI, many users — with the least reconfigurationGitHub reports NOASSERTION; the project states v0.6.6+ is not OSI open source. v0.11.3, not archivedFree for standard use with branding intact; enterprise licence is quote-only
LibreChatYou want multi-user chat and are comfortable configuring a separate RAG serviceMIT, retained after the ClickHouse acquisition. Active; every release is flagged prereleaseNo pricing page exists (404)
Onyx (formerly Danswer)The job is search across company systems, not chat with uploaded filesSplit: MIT Expat outside ee directories, an enterprise licence inside. v4.7.7Cloud Business $20 per user / month, annual billing; Enterprise by quote
RAGFlowRetrieval quality is the actual complaint — parsing, chunking, citationApache-2.0, v0.27.2, not archivedSelf-host free. Cloud: $0, $29/month (shown struck through from $59), $129/month (from $259)
DifyYou wanted to build applications and workflows, not a chat windowModified Apache 2.0, two added conditions: no multi-tenant operation without written authorisation, no removing the frontend logo or copyright noticeSandbox free; $590 and $1,590 per workspace per year, not per seat
LM StudioLocal desktop only; you never needed the server halfClosed source, activeFree for personal and work use since July 8, 2025
JanLocal desktop, but you want the sourceApache 2.0 per the LICENSE file (Menlo Research); GitHub's badge reads NOASSERTIONFree
Msty StudioYou will pay for polish and do not need source accessNo licence is published on its site; msty.app now redirects to msty.aiFree tier; Aurum $149 per user/year; Aurum Lifetime $349 per user

Prices and repository metadata checked September 19, 2026 against Open WebUI's enterprise page, librechat.ai, onyx.app/pricing, ragflow.io, dify.ai/pricing, LM Studio's licence post, msty.ai/pricing and the GitHub API. Three cautions. RAGFlow's $29 and $129 are promotional figures displayed struck through from $59 and $259, with no stated end date, and the page never defines what one of its "credits" buys. Open WebUI's branding clause, spelled out in its licence page and the repository LICENSE, is the detail most people miss: keeping the branding intact is the free path, and removing or altering it is permitted only where the deployment has fifty or fewer end users in any rolling thirty-day period, where you hold specific prior written permission from the copyright holder, or under an enterprise licence. And Onyx is a badly collided name — only onyx.app can supply Onyx prices; a search without the domain returns a macOS maintenance utility, a printing RIP vendor and several other companies.

Four projects that are not what older articles say

Alternatives lists rot faster than the products on them. These four are still recommended widely and should not be shortlisted without knowing their current state, all checked September 19, 2026.

ProjectWhat it is nowWhere to go instead
Verba (Weaviate)Archived on GitHub, BSD-3-Clause, last pushed June 8, 2026Not a current option. RAGFlow covers the same retrieval-first ground
KhojKhoj Cloud was deprecated on April 15, 2026 and app.khoj.dev now points users to self-hosting. The AGPL-3.0 repository is public, last pushed August 2, 2026, last release 2.0.0-beta.28 in March 2026Self-hosting is the only remaining route; any Khoj subscription price you find is stale
GPT4AllNot archived and no deprecation notice, but the last release is v3.10.0 from February 25, 2025 and the default branch has not been pushed since May 27, 2025. The v3.10.0 installers are still downloadableLM Studio or Jan for the same local desktop job. Nomic's current platform product is a different line, and its price is not a GPT4All price
PrivateGPTAlive and Apache-2.0 (v1.0.1), but repositioned: its README calls it "the open-source API layer" and says the bundled /ui is a workbench for testing and demos, with the API as the actual productFine as an API layer; not a replacement for an end-user document-chat app

One more to treat carefully: Quivr's repository now resolves to a different GitHub organisation, and its README describes a RAG core library rather than an end-user application. No dated announcement explaining the move was found, so that is a fact about the redirect, not about an acquisition.

What migrates, and what does not

This is the cost that should decide your shortlist, and it is the same for every destination on this page.

What comes with you: chat history, in exactly four formats — CSV, JSON, JSONL and JSON (Alpaca) — served from AnythingLLM's /system/export-chats endpoint. That is the complete list of export types in the shipped source.

What does not: everything else. AnythingLLM's documentation was searched for a document export, a vector export, or a documented backup and restore procedure, and none was found. That is absence of evidence rather than proof of impossibility — but you cannot plan a migration around an undocumented path. Workspaces, embeddings, and the documents themselves have no documented route out. The Community Hub's import strings move agent skills, system prompts and slash commands — the three item types its docs list as supported — but only between AnythingLLM instances, and on self-hosted installs skill imports fail unless COMMUNITY_HUB_BUNDLE_DOWNLOADS_ENABLED is set. No alternative on this page documents an importer for AnythingLLM data; that is what I checked for, in each product's own docs. LibreChat is the only one that documents a conversation importer at all, and the sources it names are ChatGPT, Claude and ChatbotUI v1 — not AnythingLLM.

So migration means re-ingestion, and re-ingestion has one hard prerequisite: your original source files must exist outside the app. Practically:

  1. Export chat history first, while the instance is still running. It is the only export AnythingLLM has, and it is the record of what people actually asked — useful later for judging whether the replacement answers as well.
  2. Gather the original documents from wherever they came from — the shared drive, the wiki, the ticket system — not from inside AnythingLLM.
  3. Copy the Desktop storage folder to cold storage before uninstalling anything. The documented locations are /Users/<usr>/Library/Application Support/anythingllm-desktop/storage on macOS, ~/.config/anythingllm-desktop/storage/ on Linux and C:\Users\<usr>\AppData\Roaming\anythingllm-desktop\storage on Windows, and anythingllm.db inside it is the SQLite database. Treat this strictly as a backup: the docs give no migration, backup or restore instructions, and whether that folder can be moved to another machine or into Docker was not tested here.
  4. Stand the replacement up alongside the old one and re-ingest. Then ask both instances ten questions whose answers you already know, and compare. Retrieval defaults differ between these products, so the same corpus does not guarantee the same answers.
  5. Roll back by doing nothing. Keep AnythingLLM running until step 4 passes; AnythingLLM stores vectors in an on-instance LanceDB by default, so the old index is sitting on your own disk, not in a service you have cancelled.

Pointing the new client at a model endpoint

Each of the seven products below takes a third-party endpoint in a provider slot of its own, and each has a different gate. The slot is OpenAI-compatible in every case; Jan and LibreChat will also speak the Anthropic Messages format if you ask them to. LM Studio and Msty Studio are absent from this table on purpose — this page did not establish a documented remote-endpoint path for either. This is the reconfiguration step, and knowing the gate in advance is what keeps it short.

ProductWhere the endpoint goesThe gate that trips people
AnythingLLMProvider "Generic OpenAI": Base URL ending /v1, API key, chat model name, token context window, max tokensIts own docs call the provider developer-focused and warn against using it unless you know what you are doing. The Anthropic provider exposes no base-URL setting at all, so an Anthropic-compatible gateway has to come in through this slot instead
Open WebUIAdmin → Connections → Manage OpenAI API Connections: URL and key/models is optional — without it you add model IDs to an allowlist by hand. A failing "Verify Connection" with 400, 401 or 403 does not mean the provider is incompatible; the docs say chat completions still work
LibreChatlibrechat.yaml custom endpoint: name, apiKey, baseURL, models with a default and a fetch flagAn optional provider: "anthropic" switches that endpoint to the native Messages client — and then models.fetch is unsupported, so models.default must be listed explicitly
OnyxAdmin Panel → Configuration → Language Models → Add Custom LLM ProviderProvider Name must match LiteLLM's supported-provider list. A free-text vendor name will not do, and each model is entered by hand
RAGFlowUser settings → Model providers → "OpenAI-API-Compatible": instance name, API key, Base URLThe docs warn explicitly to confirm whether your path must include /v1; an incorrect base URL fails verification or the call
JanSettings → Model Providers → Add Provider; OpenAI- or Anthropic-compatibleBase URL must include the version path. Custom providers are not capability-detected, so Jan cannot infer whether a model supports tools, vision or audio
PrivateGPTA single OPENAI_API_BASEIts README's own bar: if the endpoint implements /v1/chat/completions and /v1/models, it works

Each gate above is quoted from the product's own setup page: AnythingLLM's OpenAI (generic) provider, Open WebUI's OpenAI-compatible guide, LibreChat's custom endpoint reference, Onyx's custom inference provider page, RAGFlow's model API key setup, Jan's custom endpoints page and PrivateGPT's README.

One boundary worth settling before you configure anything. In AnythingLLM, LibreChat, RAGFlow, Dify and Cherry Studio the embedder is registered as a separate provider from the chat model, with its own base path and its own key. Kunavo serves no embedding model and no speech-to-text model, so pointing an embedder at it returns a "model is not available" error. Chat completions are the only stage of a RAG pipeline Kunavo can answer. Leave the embedder on the bundled local model, or on a separate vendor:

server/.env — the two providers are separate
# Chat goes to an OpenAI-compatible endpoint.
LLM_PROVIDER='generic-openai'
GENERIC_OPEN_AI_BASE_PATH='https://api.kunavo.com/v1'
GENERIC_OPEN_AI_API_KEY='sk-...'
GENERIC_OPEN_AI_MODEL_PREF='claude-haiku-4-5'
GENERIC_OPEN_AI_MODEL_TOKEN_LIMIT=200000

# Embeddings do NOT. Kunavo serves no embedding model, so the
# embedder stays on the bundled local one (or another vendor).
EMBEDDING_ENGINE='native'
EMBEDDING_MODEL_PREF='Xenova/all-MiniLM-L6-v2'

That split is not an AnythingLLM quirk: LibreChat's RAG API has its own EMBEDDINGS_PROVIDER and its own RAG_OPENAI_BASEURL, and RAGFlow, Dify and Cherry Studio each register embedding models in a different place from chat models. Budget the two halves separately too. For the retrieval side of the design, see RAG implementation; for what the compatible surface does and does not cover, OpenAI-compatible API.

What a month of chat costs after you switch

The client is free in almost every row above, so the recurring number is tokens. This is illustrative token arithmetic, not a measured cost and not a bill ceiling. Assume a small team asking 1,200 questions a month, where each turn sends 6,000 input tokens (retrieved chunks, system prompt and a little history) and returns 500 output tokens — 7.2M input and 0.6M output per month. Rates are live Kunavo catalog prices per million tokens.

ModelInput / output per 1MEstimated monthly chat cost
Claude Haiku 4.5$0.40 / $2.00$4.08
Gemini 3.8 Flash$0.525 / $2.625$5.36
Gemini 3.1 Pro$0.70 / $4.20$7.56
Claude Sonnet 5$2.00 / $10.00$20.40

Two readings. First, at this shape the model choice moves the bill by a factor of about 5.0 between the cheapest and most expensive rows, while the retrieval settings that decide how many chunks land in those 6,000 input tokens are set in the client, not the provider — so tune the client before you shop for rates. Second, put it beside the hosting figures: a $50/monthly Cloud plan buys hosting and still requires you to bring the key, so the comparison is hosting plus tokens against your own Docker host plus the same tokens.

Kunavo's catalog amount is a billing floor rather than a cap: when the upstream reports its charge, the bill is the greater of catalog cost and upstream cost times the applicable markup. Cache charges, image or video calls and anything your embedder costs elsewhere sit outside this example. The minimum top-up is $10 in prepaid credit — a funding minimum, not a task fee or a subscription. See billing details.

Setting up the replacement

If Open WebUI is where you land, Kunavo publishes a configuration reference for it: the Open WebUI setup guide. That is a published setup document, not a compatibility test — none of the clients on this page has been runtime-tested against Kunavo's endpoint, and everything above was read from each project's own documentation, licence files, published source and repository metadata. Keep a working route available while you try it, run one bounded task, then read the charge your account actually recorded for it. Create a Kunavo account when you are ready to fund a key.

Still deciding between two specific tools rather than the whole field? AnythingLLM vs Open WebUI takes the closest pair head to head, and LibreChat vs Open WebUI covers the other common shortlist. AI cost optimization covers trimming the token side once you have chosen.

FAQ

What is the best AnythingLLM alternative?

It depends on which of AnythingLLM's three editions you are leaving, because they solve different problems. Leaving Desktop because you only wanted a local chat window: LM Studio or Jan. Leaving Docker because you want multi-user browser chat over documents: Open WebUI or LibreChat. Leaving because retrieval quality is the complaint: RAGFlow, whose whole subject is document parsing and chunking. Leaving because you need connector-driven search across company systems: Onyx. Leaving because you actually wanted to build applications rather than chat: Dify. There is no single winner, and the cost of choosing wrong is high because none of them documents an importer for AnythingLLM's data.

Is there a free open-source alternative to AnythingLLM?

Several, but read the licences rather than the word free. LibreChat is MIT and stayed MIT after ClickHouse acquired it in November 2025. RAGFlow is Apache-2.0. Dify is a modified Apache 2.0 with two added conditions: you may not use the source to operate a multi-tenant environment unless Dify authorises it in writing, and you may not remove or modify the logo or copyright notice in its frontend. Onyx splits its licence — everything outside its ee directories is MIT Expat, everything inside is under a separate enterprise licence, and a fully MIT mirror exists at onyx-dot-app/onyx-foss. Open WebUI is the sharpest case: its own licence page states that v0.6.6 and later is not an OSI-approved open-source licence, because a branding clause bars removing or altering Open WebUI branding unless the deployment has fifty or fewer end users in any rolling thirty-day period, you hold specific prior written permission from the copyright holder, or you hold an enterprise licence. Code up to and including v0.6.5 remains BSD-3.

Can I migrate my AnythingLLM workspaces and documents to another tool?

Not as a transfer. AnythingLLM exports chat history in exactly four formats — CSV, JSON, JSONL and JSON (Alpaca) — from its /system/export-chats endpoint, and no document export, vector export, backup or restore procedure is documented anywhere in its docs. No alternative on this page documents an importer for AnythingLLM data either. In practice migration means re-ingesting your original source files into the new tool, which makes one thing a prerequisite: the originals must exist somewhere outside the app. If the only copy of a document is the one you uploaded, get it back out of your own source systems before you decommission anything.

Is AnythingLLM discontinued or abandoned?

No. The Mintplex-Labs/anything-llm repository is MIT-licensed, not archived, carries commits on its default branch as recently as September 17, 2026, and its latest release is v1.16.1 published on August 27, 2026 (GitHub API, re-checked September 21, 2026). Leaving AnythingLLM in 2026 is a fit decision, not a rescue. That matters for the migration plan: there is no deadline forcing the move, so running the old instance and the replacement side by side until the new one answers your questions correctly costs nothing but disk.

Which AnythingLLM alternatives let me bring my own API key?

The six whose setup path this page documents all do, and the gate differs per product. Each takes an OpenAI-compatible base URL; Jan and LibreChat can also be pointed at an endpoint that speaks the Anthropic Messages format instead. Open WebUI needs only a URL and a key, and its docs note that a failing Verify Connection button does not mean the provider is incompatible. LibreChat takes a custom endpoint in librechat.yaml with name, apiKey, baseURL and a models block. Onyx requires a Provider Name that matches LiteLLM's supported-provider list, so a free-text vendor name will not work. RAGFlow's docs warn to confirm whether your path needs /v1. Jan accepts an OpenAI- or Anthropic-compatible provider but will not detect whether the model supports tools, vision or audio. PrivateGPT takes a single OPENAI_API_BASE.

Is LibreChat still open source after the ClickHouse acquisition?

Yes. ClickHouse, Inc. announced the acquisition on November 4, 2025, and its announcement says that for existing LibreChat deployments operations continue unchanged, with ongoing investment in the open-source project and community. The announcement does not name a licence; the repository LICENSE and librechat.ai's about page both still say MIT. Two things did change and are still widely misreported. The LibreChat-operated paid Code Interpreter API is no longer taking new subscriptions — its own site says so — after the maintainers said they would discontinue it in its current form over a transition period targeting May 1, 2026; the sandboxed code-execution service behind it is Apache-2.0 and can be self-hosted. And LibreChat publishes no pricing page at all — librechat.ai/pricing returns 404, so any LibreChat price table you find is somebody's hosting fee.

What about Khoj, GPT4All, Verba and PrivateGPT?

Check their status before you shortlist them, because older comparison articles still list all four as live options. Weaviate's Verba is archived on GitHub, so it is not a current recommendation. Khoj Cloud was deprecated on April 15, 2026 and app.khoj.dev now points users to self-hosting; the AGPL-3.0 repository is still public but its last release is 2.0.0-beta.28 from March 2026. GPT4All is not archived and carries no deprecation notice, but its last release is v3.10.0 from February 25, 2025 and its default branch has not been pushed since May 27, 2025 — dates rather than a verdict. PrivateGPT is very much alive, but it is no longer the offline document-chat app people remember: its own README calls it an open-source API layer and says the bundled UI is a workbench for testing and demos.

Vendor pricing pages, product documentation, licence files, published source and repository metadata for every project named above checked September 19, 2026 and re-checked September 21, 2026, first-party only. Kunavo token rates come from the live catalog, and every dollar example here is illustrative token arithmetic rather than a measured cost. No client on this page has been runtime-tested against Kunavo's endpoint.