← Back to all projects

AnythingLLM

A self-hosted ChatGPT over your own documents, with no-code agents — an app you run, not a library you build on.

OfficialMIT
Stars
65.3k
Forks
7.2k
Open issues
338
Last commit
28 Aug 2026

What is AnythingLLM?

AnythingLLM ships the whole retrieval stack as one installable application: a document collector, an embedding model, a vector database and the chat interface arrive together, so you drop files into a workspace and start asking questions without wiring services to each other. Documents attached to a chat go into the model's context in full by default, and only when they overflow the context window does the app offer to chunk and embed them, after which answers are assembled from a few retrieved snippets. New workspaces run in agent mode, so the same chat window can browse the web, query a SQL database, call MCP servers or run a flow you drew in the visual editor. The trade-off is that this is an application rather than a library — you extend it through its settings, its custom-skill plugin format and its REST API, never by importing it into a program of your own — and the three ways to run it are not the same product: the desktop build has no accounts, the Docker build has no bundled model, and the hosted tier has neither MCP nor custom skills.

What can you do with AnythingLLM?

  • Attached documents go in whole; embedding is the fallback — Drop a file into a chat and its full text is placed in the context window. Only when that overflows does AnythingLLM offer to chunk and embed it, and it warns that continuing anyway lets it prune the context to fit, losing data.
  • Where a document lives decides who can read it — A file attached inside one thread is unavailable in the next one. Embedding it instead publishes it to every thread in that workspace — and, on a multi-user instance, to every account with access to the workspace.
  • Retrieval is tuned per workspace, not once for the instance — Each workspace carries its own system prompt, model and vector settings: how many snippets to send, which the documentation suggests keeping at four to six for most models, and a similarity threshold that discards matches under 20% by default. An accuracy-optimised mode reranks results for roughly 100-500 ms more, but only on the bundled LanceDB.
  • New workspaces are agentic before you ask — Agent mode has been the default for new workspaces since v1.11.1, so a chat can already browse and scrape the web, query a SQL database, draw charts, write files and reach Gmail, Outlook or Google Calendar. Where the mode is off, typing @agent opens an agentic session for that conversation.
  • Extend the agent with drawn flows or MCP servers — Agent Flows chain five block types — web scraper, API call, LLM instruction, read file, write file — into a skill the model picks like any built-in one. MCP servers declared in anythingllm_mcp_servers.json boot on demand and land in the same tool list.
  • Put an agent on a cron schedule — Scheduled Jobs, added in v1.13.0, run an agent unattended with the skills, flows and MCP servers you pick for it, and show the fifty most recent runs of each job for review. One run executes at a time by default, and anything still going after five minutes is stopped.

Before you choose AnythingLLM

  • Switching a self-hosted instance to multi-user mode cannot be undone, and as of v1.16.0 it also removes Scheduled Jobs, which the documentation states is available in single-user mode only.
  • Mintplex Labs states that its hosted cloud disables MCP servers and custom-coded agent skills for security reasons, and it ships no built-in model, leaving that tier the thinnest of the three.

Star history

17 Aug to 28 Aug · +514

64.8k65.3k

Frequently asked questions

Is AnythingLLM free for commercial use?

AnythingLLM is released under the MIT licence — OSI-approved open source, which permits commercial use.

How can AnythingLLM be deployed?

AnythingLLM is available as Self-hosted / Runs locally / Managed cloud.

Documentation

Reproduced from the Mintplex-Labs/anything-llm README, published under MIT. Read the original ↗

[!NOTE] We are also working on Open Computer which gives an entire computer environment for AI Agents to use.

This will bring AnythingLLM’s agent capabilities to a new level and a novel UX paradigm for AI Agent use.

⭐ Star the repo to stay updated!

Chat with your docs. Automate complex workflows with AI Agents. Hyper-configurable, multi-user ready, battle-tested—and runs locally by default with zero setup friction.

Chatting

Watch the video

Product Overview

AnythingLLM is the all-in-one AI application that lets you build a private, fully-featured ChatGPT—without compromises. Connect your favorite local or cloud LLM, ingest your documents, and start chatting in minutes. Out of the box you get built-in agents, multi-user support, vector databases, and document pipelines — no extra configuration required.

AnythingLLM supports multiple users as well where you can control the access and experience per user without compromising the security or privacy of the instance or your intellectual property.

Cool Features of AnythingLLM

Supported LLMs, Embedder Models, Speech models, and Vector Databases

Large Language Models (LLMs):

Embedder models:

Audio Transcription models:

TTS (text-to-speech) support:

STT (speech-to-text) support:

  • Native Browser Built-in (default)

Vector Databases:

Technical Overview

This monorepo consists of six main sections:

  • frontend: A viteJS + React frontend that you can run to easily create and manage all your content the LLM can use.
  • server: A NodeJS express server to handle all the interactions and do all the vectorDB management and LLM interactions.
  • collector: NodeJS express server that processes and parses documents from the UI.
  • docker: Docker instructions and build process + information for building from source.
  • embed: Submodule for generation & creation of the web embed widget.
  • browser-extension: Submodule for the chrome browser extension.

🛳 Self-Hosting

Mintplex Labs & the community maintain a number of deployment methods, scripts, and templates that you can use to run AnythingLLM locally. Refer to the table below to read how to deploy on your preferred environment or to automatically deploy.

DockerAWSGCPDigital OceanRender.com
[![Deploy on Docker][docker-btn]][docker-deploy][![Deploy on AWS][aws-btn]][aws-deploy][![Deploy on GCP][gcp-btn]][gcp-deploy][![Deploy on DigitalOcean][do-btn]][do-deploy][![Deploy on Render.com][render-btn]][render-deploy]
RailwayRepoCloudElestioNorthflank
[![Deploy on Railway][railway-btn]][railway-deploy][![Deploy on RepoCloud][repocloud-btn]][repocloud-deploy][![Deploy on Elestio][elestio-btn]][elestio-deploy][![Deploy on Northflank][northflank-btn]][northflank-deploy]

or set up a production AnythingLLM instance without Docker →

How to setup for development

  • yarn setup To fill in the required .env files you’ll need in each of the application sections (from root of repo).
    • Go fill those out before proceeding. Ensure server/.env.development is filled or else things won’t work right.
  • yarn dev:server To boot the server locally (from root of repo).
  • yarn dev:frontend To boot the frontend locally (from root of repo).
  • yarn dev:collector To then run the document collector (from root of repo).

Learn about documents

Telemetry & Privacy

AnythingLLM by Mintplex Labs Inc contains a telemetry feature that collects anonymous usage information.

Why?

We use this information to help us understand how AnythingLLM is used, to help us prioritize work on new features and bug fixes, and to help us improve AnythingLLM’s performance and stability.

Opting out

Set DISABLE_TELEMETRY in your server or docker .env settings to “true” to opt out of telemetry. You can also do this in-app by going to the sidebar > Privacy and disabling telemetry.

What do you explicitly track?

We will only track usage details that help us make product and roadmap decisions, specifically:

  • Type of your installation (Docker or Desktop)

  • When a document is added or removed. No information about the document. Just that the event occurred. This gives us an idea of use.

  • Type of vector database in use. This helps us prioritize changes when updates arrive for that provider.

  • Type of LLM provider & model tag in use. This helps us prioritize changes when updates arrive for that provider or model, or combination thereof. eg: reasoning vs regular, multi-modal models, etc.

  • When a chat is sent. This is the most regular “event” and gives us an idea of the daily-activity of this project across all installations. Again, only the event is sent - we have no information on the nature or content of the chat itself.

You can verify these claims by finding all locations Telemetry.sendTelemetry is called. Additionally these events are written to the output log so you can also see the specific data which was sent - if enabled. No IP or other identifying information is collected. The Telemetry provider is PostHog - an open-source telemetry collection service.

We take privacy very seriously, and we hope you understand that we want to learn how our tool is used, without using annoying popup surveys, so we can build something worth using. The anonymous data is never shared with third parties, ever.

[View all telemetry events in source code](https://github.com/search?q=repo%3AMintplex-Labs%2Fanything-llm%20.sendTelemetry(&type=code)

Other outbound connections

If you disable telemetry, you would still see outbound connections to the following services:

  • If using an external tool, LLM, Embedding models, or Vector databases, you will still see outbound connections to the respective service provider.
  • cdn.anythingllm.com for pulling models from our mirror CDN. This is not tracked by telemetry and is actually useful for those in VPN restricted regions.
  • github/githubusercontent.com There are some various flat files that are downloaded from these domains for context window caching.

Basically, if telemetry is disabled we don’t collect anything. However, depending on your setup you may still see outbound connections and would be subject to the terms of service of the respective service provider.

👋 Contributing

💖 Sponsors

All Sponsors

This README has been shortened. The full version is on GitHub. Read the original ↗