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

AnythingLLM vs LibreChat: Knowledge Workspaces or Multi-Model Agents

Both are free, MIT-licensed and self-hostable, so the decision is whether retrieval is built into the product or deployed beside it.

Last reviewed on .

AnythingLLM and LibreChat are both free, MIT-licensed and self-hostable, so the choice is not price — it is whether retrieval is built into the product or deployed beside it. AnythingLLM makes documents the unit of work: drop files into a workspace and the embedder and vector store are already there. LibreChat makes the conversation the unit of work: many models, many users, per-role permissions, and document search as a separate service you stand up yourself.

One framing correction before the comparison, because it changes how you read the project. LibreChat is now a ClickHouse project: ClickHouse, Inc. announced the acquisition on November 4, 2025, saying that for existing deployments "operations continue unchanged with ongoing investment in the open-source project and community", and librechat.ai still carries the banner today. AnythingLLM remains a Mintplex Labs product. Every source cited below carries a September 21, 2026 check date; the closing note names the ones re-read directly for this page.

Which one fits the task you actually have

If this is the jobPickWhy, specifically
Ask questions across a folder of documents, on one machineAnythingLLM DesktopRetrieval ships with it. The embedder runs in the app and the vector store defaults to embedded LanceDB, so there is no second service to deploy
Several people, several model families, one shared instanceLibreChatADMIN and USER roles with per-feature permission keys — agents, fileSearch, webSearch, runCode, mcpServers and more, plus custom roles in its Admin Panel. AnythingLLM's docs mark its access settings Docker-version-only; Desktop is single-user
Your endpoint speaks the native Anthropic Messages protocolLibreChatprovider: anthropic routes a custom endpoint through the native Messages API client. AnythingLLM has a first-class Anthropic provider but no documented way to point it at a custom base URL
You want a managed instance and will not run serversAnythingLLM Cloud — with the limits read firstIt is the only one of the two with a published hosted plan. But that plan is the more restricted deployment: no MCP, no custom agents, no bundled model
Code execution inside the chatLibreChat, with a caveatWired by LIBRECHAT_CODE_BASEURL. The first-party hosted sandbox is closed to new subscriptions, so this now means deploying the Apache-2.0 service yourself

What each one costs, and what "Pro" means

Line itemPublished priceWhat the source says
AnythingLLM DesktopFree downloadanythingllm.com; the "no API keys" claim describes the bundled local-model path
AnythingLLM Docker self-hostFree, MIT"Self-host with Docker for free"
AnythingLLM Cloud — Basic$50/monthly"Private instance", "Custom subdomain", "Just bring an LLM API Key"
AnythingLLM Cloud — Pro$99/monthly"Great for large teams", plus a listed "72-hour support SLA"
AnythingLLM Cloud — EnterpriseContact Us"On-premise deployment", "SSO, RBAC, and more"
AnythingLLM Desktop Pro licenceNot publishedThe docs only invite you to "Purchase and activate your license"; the checkout link is unreachable to non-browser clients. Aggregator figures have no first-party source
LibreChat, self-hostedFree, MITNo price page exists — librechat.ai/pricing and /enterprise both return 404
LibreChat hosted Code Interpreter APIClosed to new buyers"We are not currently accepting new subscriptions"; existing subscribers can still manage theirs

Prices read from anythingllm.com/cloud and the pages linked above on September 21, 2026. Two traps sit in that table. First, "AnythingLLM Pro" names two unrelated things — the $99/monthly hosted Cloud tier, and a Desktop Pro licence that requires Desktop v1.15.0 or later and whose price is on no reachable official page — so a price quoted without saying which one is meaningless. Second, the vendor's own vocabulary disagrees with itself: the pricing page says Basic and Pro, while the Cloud limitations page says "Starter" and "Professional". Nothing first-party maps one set onto the other, so confirm at checkout rather than assuming they are the same tiers.

There is also a timing conflict worth knowing on the LibreChat side: a February 12, 2026 GitHub discussion quotes the plan to "evolve this offering and discontinue this API in its current form", targeting May 1, 2026, yet the pricing page on September 21, 2026 still tells existing subscribers they can manage their subscriptions. Whether that date was executed is not something this page can confirm.

The retrieval split, which is the real decision

AnythingLLM. Documents go into a workspace and the app indexes them itself. The server env file ships VECTOR_DB="lancedb" as the only uncommented value, with Chroma, Pinecone, Astra, pgvector, Weaviate, Qdrant, Milvus and Zilliz commented beside it. The catch is scope: the embedder documentation says "Embedding models are set system-wide and cannot be configured atomically per-workspace like LLMs can", and that changing the choice later means you "will have to delete your uploaded documents and re-embed them". That is the migration cost of this product, and it is paid in re-indexing time rather than money.

LibreChat. Document search is not in the chat app at all. The RAG API "runs as a separate FastAPI service backed by a PostgreSQL + pgvector database", configured through RAG_API_URL and EMBEDDINGS_PROVIDER (openai, azure, huggingface, huggingfacetei or ollama), with chunking defaults of 1500 and an overlap of 100. Agents reach it as the file_search capability, and an admin can withhold that per role. More to deploy; more to control.

Kunavo does not serve embeddings, speech-to-text or text-to-speech — no enabled model carries those endpoints — so in either product the embedder slot, and AnythingLLM's separate transcription and speech slots, point at a provider that does, while the chat slot is the one a Kunavo key covers. RAG implementation covers how to split those stages.

Agents, MCP and who is allowed to change what

Same jobAnythingLLMLibreChat
Starting a tool runAn @agent directive at the start of a chat; the docs also say AnythingLLM decides on its own whether your model can use toolsAn agent builder, with capabilities such as file_search and execute_code
Built-in toolsA published catalogue: RAG Search, Web Browsing, Web Scraping, Save Files, List/Summarize Documents, Chart Generation, SQL Agent, File System, Document Generation, Gmail, Google Calendar, Outlook, Scheduled Jobs — extendable with custom skills, MCP servers and Agent FlowsActions generated from OpenAPI specs, plus the capabilities above
MCP configurationanythingllm_mcp_servers.json in the storage plugins directory — StdIO, SSE and StreamableAn mcpServers: block in librechat.yamlstdio, sse, streamable-http, websocket
MCP on the paid hosted tierNot supported on hosted Cloud, by policyNo hosted tier exists to gate
RolesAdmin, Manager and Default in multi-user mode, which the docs mark Docker-version-only; Desktop is single-userADMIN and USER, with per-role keys for agents, prompts, fileSearch, webSearch, runCode, mcpServers and more, and custom roles in the Admin Panel
Where permissions are setInstance settingsAn Admin Panel; the docs now describe the YAML keys as for bootstrapping rather than day-to-day management

Two cautions on that table. The LibreChat permission list tracks the 0.8.8-rc documentation, and since the project publishes no stable release tag, an older pinned image will not have all of it — check against the version you actually run. And the AnythingLLM role names come from its Security and Access page, which opens with "DOCKER VERSION ONLY! These settings are only available in the Docker version of AnythingLLM" — a sentence about where the settings live, not a statement that hosted Cloud is single-user, since the Cloud docs describe that as a multi-user deployment.

Pointing either one at a single key

Both accept an OpenAI-compatible endpoint, which is why running them side by side on one key is a fair way to decide. The configurations differ in ways that matter for a gateway.

one key, two clients
# AnythingLLM — LLM Preference -> provider "OpenAI (generic)".
# Self-host env names, from server/.env.example on master:
LLM_PROVIDER='generic-openai'
GENERIC_OPEN_AI_BASE_PATH='https://api.kunavo.com/v1'
GENERIC_OPEN_AI_API_KEY=sk-kn-...
GENERIC_OPEN_AI_MODEL_PREF='claude-sonnet-5'      # typed by hand; no model-list fetch is documented
GENERIC_OPEN_AI_MODEL_TOKEN_LIMIT=1000000
# Embeddings are a SEPARATE provider slot with its own key and its own base
# path (EMBEDDING_ENGINE / EMBEDDING_BASE_PATH / EMBEDDING_MODEL_PREF), and so
# are the transcription and speech slots. A working chat endpoint proves
# nothing about any of them.

# LibreChat — librechat.yaml in the project root, beside your .env.
endpoints:
  custom:
    - name: "Kunavo"                      # required
      apiKey: "${KUNAVO_API_KEY}"        # required; resolved from .env
      baseURL: "https://api.kunavo.com/v1"  # required
      models:                             # required
        default: ["claude-sonnet-5", "claude-haiku-4-5"]
        fetch: true
      # tokenConfig is what the docs say supplies a custom endpoint's rates and
      # context windows — read by context usage, cost breakdowns and balance
      # transactions. prompt/completion are USD per million tokens; context is
      # that model's own window. All three are required, per model.
      tokenConfig:
        claude-sonnet-5:
          prompt: 2
          completion: 10
          context: 1000000

AnythingLLM's own documentation describes that provider as a "developer-focused llm provider - you should not use it unless you know what you are doing" that "may not function as intended if you input any configuration setting incorrectly". It does not state whether tool calling, agents or streaming survive the route, so this page does not claim either outcome. LibreChat's custom endpoint reference requires name, apiKey, baseURL and models, and adds the option AnythingLLM has no documented counterpart for: provider: anthropic routes the same block through the native Anthropic client, at the cost of listing model ids by hand, because "OpenAI-style models.fetch is not used for native Anthropic custom endpoints". One more gate if you let each user bring their own endpoint: with baseURL: "user_provided", LibreChat does not forward configured header templates to that destination.

Cost visibility is asymmetric too. LibreChat documents tokenConfig as what defines a custom endpoint's per-million rates and context windows, and as the input to its context usage, cost breakdowns and balance transactions — so an admin hand-writes it per model, as above; AnythingLLM has no documented per-model rate table of its own. Neither product should be treated as your ledger. Setup for both is published: AnythingLLM and LibreChat.

A worked monthly estimate

This is illustrative token arithmetic, not a measured cost and not a bill ceiling. Assume one workspace answering 600 questions a month, each sending 12,000 input tokens of system prompt, retrieved passages and short history, and returning 600 output tokens. Rates are live Kunavo catalog prices per million tokens. The right-hand column doubles the retrieved context to show the lever that matters here — how much you retrieve per question is a pricing decision, and it is identical in both products.

ModelInput / output per 1MEstimateEstimate, double the retrieved context
Claude Haiku 4.5$0.40 / $2.00$3.60$6.48
Gemini 3.8 Flash$0.525 / $2.625$4.73$8.51
GPT-5.6 Terra$0.70 / $4.20$6.55$11.59
Claude Sonnet 5$2.00 / $10.00$18.00$32.40

Read it against the subscription line rather than instead of it. Under these assumptions Claude Haiku 4.5 costs $3.60 a month in tokens, which sits well below AnythingLLM Cloud's $50/monthly Basic tier — but the two are not substitutes, because that tier buys a managed private instance and still requires you to bring a key on top. A self-hosted LibreChat or AnythingLLM Docker instance moves that $50 onto your own server bill instead.

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 and external tools 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, or create a Kunavo account when you have picked a client. For a deeper spend breakdown on either side, see AnythingLLM API cost and LibreChat API cost.

Weighing a third option? AnythingLLM vs Open WebUI and LibreChat vs Open WebUI run the same comparison against a shared alternative.

FAQ

Is AnythingLLM or LibreChat better for chatting with documents?

AnythingLLM treats retrieval as part of the product and LibreChat treats it as a service you deploy, so for a single person pointing a tool at a folder of files, AnythingLLM is the shorter path: documents go into a workspace, the embedder runs in the app, and the vector store defaults to embedded LanceDB with Chroma, Pinecone, pgvector, Weaviate, Qdrant, Milvus, Astra and Zilliz as alternatives in the server env file. LibreChat's document retrieval is a separate FastAPI service backed by a PostgreSQL and pgvector database, wired through RAG_API_URL and EMBEDDINGS_PROVIDER and exposed to agents as the file_search capability, which is more moving parts and also more control over where the index lives and who may search it. One warning applies to AnythingLLM whichever way you go: its documentation says embedding models are set system-wide rather than per-workspace, and that changing the choice after you have indexed documents means deleting and re-embedding them. Checked September 21, 2026.

Is LibreChat free, and does it have a paid plan?

The LibreChat application is free and its repository LICENSE file is MIT. There is no plan to buy: librechat.ai/pricing and librechat.ai/enterprise both returned HTTP 404 when checked on September 21, 2026, and no first-party page lists a tier, a seat price or an enterprise edition. Two things are commonly mistaken for LibreChat pricing. The hosted Code Interpreter API at code.librechat.ai is a separate service and its pricing page currently says it is not accepting new subscriptions. ClickHouse Agents is a ClickHouse Cloud product built on LibreChat, announced as a public beta on June 9, 2026 and described there as running fully managed inside ClickHouse Cloud — a ClickHouse offering, not a LibreChat plan. Third-party sites also repeat an ISC license for LibreChat; that string appears in the package.json license field, while the LICENSE file and the GitHub license field both say MIT.

How much does AnythingLLM cost?

The Desktop app is a free download and the Docker self-host is free under MIT. AnythingLLM Cloud lists three tiers on its pricing page, checked September 21, 2026: Basic at $50/monthly, Pro at $99/monthly, and Enterprise as Contact Us. No seat, workspace, storage or document quota is published for any of them. Separately there is an AnythingLLM Desktop Pro licence, which removes daily limits on the Desktop Magic features and requires Desktop v1.15.0 or later on Windows or macOS — its price is not published on any reachable first-party page, and the only checkout link sits behind a bot check, so any figure you see quoted for it on an aggregator has no official source. Note that Cloud Pro at $99/monthly and the Desktop Pro licence are two different products that share a word.

Does AnythingLLM Cloud support MCP and custom agents?

No, on both counts, and this is the surprise in the comparison because it is the paid tier that is the more restricted one. The official AnythingLLM Cloud limitations page says AnythingLLM does not support MCP in the hosted cloud due to security concerns, and that custom agents are not supported there either, directing anyone who needs them to Desktop or a self-hosted instance. The same page says hosted Cloud ships no built-in LLM and limits you to a local LLM you run and connect yourself or a supported cloud provider, and it warns that the built-in embedder will not stop you from embedding a 5,000-page PDF but will crash the instance. The restriction is written against custom agents specifically — the page says AnythingLLM does support custom coded agents, just not in the hosted cloud — while the Cloud pricing page advertises agents working out of the box; the documentation does not enumerate which built-in skills the hosted tier runs, so confirm any one you plan to depend on. Desktop and Docker self-host are unaffected by all of this, and they configure MCP through an anythingllm_mcp_servers.json file in the storage plugins directory. LibreChat has no hosted plan and therefore no equivalent gate; it configures MCP servers in librechat.yaml, whose documented transport options are stdio, sse, streamable-http and websocket. Checked September 21, 2026.

Is LibreChat still maintained after the ClickHouse acquisition?

The repository is active and unarchived, and ClickHouse's own announcement of November 4, 2025 says that for existing LibreChat deployments operations continue unchanged with ongoing investment in the open-source project and community. What has changed is who owns it and how you should read its releases. The librechat.ai homepage carries a banner saying LibreChat is joining ClickHouse to power the open-source Agentic Data Stack, and ClickHouse now ships ClickHouse Agents, a managed service built on LibreChat. On releases: there is no stable tag to pin. GitHub's releases listing shows every release marked Pre-release, including v0.8.7 from June 24, 2026, with v0.8.8-rc3 from September 15 the newest, and /releases/latest redirects to the listing rather than resolving to a release — so if you need a fixed version, pick a Docker tag deliberately rather than assuming a stable release exists. Checked September 21, 2026.

Can I run both AnythingLLM and LibreChat on one API key?

Both accept an OpenAI-compatible endpoint, so one gateway key can serve both, and running them side by side on the same key is a reasonable way to decide between them. The configurations are not equivalent, though. AnythingLLM uses its OpenAI (generic) provider, whose own documentation calls it a developer-focused provider you should not use unless you know what you are doing and warns it may not function as intended if a setting is entered incorrectly; model ids are typed in by hand. LibreChat uses an endpoints.custom block with name, apiKey, baseURL and models required, can fetch its model list from the endpoint instead of listing ids by hand, and can also route the same block through a native Anthropic Messages client with provider: anthropic — a protocol option AnythingLLM has no documented equivalent for. Kunavo has not runtime-tested either client, so treat both published setups as configuration references and confirm behaviour with one bounded task before you standardise on either.

Sources checked September 21, 2026. Re-read directly while writing this page: anythingllm.com/cloud, the AnythingLLM Cloud limitations, Desktop Pro, agent, MCP, Security and Access and embedder-configuration docs, the AnythingLLM server env example, LibreChat's custom-endpoint, interface, MCP and RAG API references, the LibreChat releases listing and package.json, code.librechat.ai/pricing, the HTTP status of librechat.ai/pricing and /enterprise, the Code Interpreter discussion, and the ClickHouse acquisition and ClickHouse Agents beta posts. Kunavo token rates come from the live catalog, every dollar example is illustrative token arithmetic, and Kunavo has runtime-tested neither client — the linked setup pages are configuration references, not compatibility tests.