AnythingLLM
TL;DR
AnythingLLM is an MIT-licensed desktop and Docker app from Mintplex Labs for chatting with your documents through local or cloud models. Its agent layer is one tool-using agent per chat, extended with no-code Agent Flows, custom JavaScript skills, MCP servers and scheduled jobs; it is not a multi-agent orchestrator. It suits private, local-first document assistants.
Key facts
| Type | Platform |
|---|---|
| Languages / SDKs | JavaScript |
| License | MIT |
| Pricing model | Open core |
| Orchestration pattern | Other |
| GitHub stars | 66,618 (as of 2026-09-30) |
| GitHub forks | 7,430 |
| Last push | 2026-09-29 |
| Latest release | v1.16.2 |
| Repository | Mintplex-Labs/anything-llm |
| Website | anythingllm.com |
| Documentation | docs.anythingllm.com |
| Last verified | 2026-09-30 |
Key features
- An agent session starts when a chat message mentions @agent; where the chat box shows no @ symbol, every chat is already agentic. (source)
- Built-in agent skills include RAG search over workspace documents, web browsing and scraping, listing and summarizing documents, chart generation, saving files, a SQL agent, a file system agent and creating scheduled jobs. (source)
- Agent Flows are built in a visual no-code editor and behave like agent skills; the model can chain several flows in one task. (source)
- Custom agent skills are written in Node.js and can range from a simple API call to running local processes; a plugin.json file defines each skill's setup inputs. (source)
- MCP servers listed in anythingllm_mcp_servers.json (stdio, SSE or streamable HTTP) supply extra agent tools and can be started, stopped and inspected from the UI. (source)
- Intelligent Tool Selection puts only the tools relevant to a chat into the prompt; the project claims up to 80% token savings. (source)
- Scheduled Jobs run an agent prompt on a cron schedule with an allowed tool list, and store each run's reasoning, tool calls, files and final answer for review. (source)
- Opt-in memories store short facts per workspace (up to 20) or globally (up to 5) and inject them into later chats. (source)
Architecture and orchestration pattern
Pattern: Other
AnythingLLM is a Node.js application: an Express server handles chats, vector database access and LLM calls, a separate collector service parses uploaded documents, and a React frontend provides the UI. It ships as a desktop app for macOS, Windows and Linux and as a Docker image; storage defaults to a local folder with LanceDB as the vector store, and a pg image variant uses PostgreSQL with PGVector.
The agent runtime (AIbitat in the server code) runs a tool-calling loop for one agent per chat session. Tools come from built-in skills, Agent Flows, custom Node.js skills and MCP servers, and every agent shares the same enabled tools across workspaces while working inside the workspace it was invoked from. The runtime's source defines agents and group channels, but the documentation describes only a single agent per session and no multi-agent orchestration, handoff or supervisor feature, so multi-agent designs are out of scope for this product.
Workspaces hold embedded documents, chat history and settings. The chat API can partition history by an external sessionId. Opt-in memories persist small facts per workspace or globally and are added to the system prompt. Scheduled jobs keep a trace of every run, which can be reopened as a normal workspace thread.
Human in the loop
Agent skills that are long-running, expensive or otherwise risky ask the user to approve the tool call before it runs; an administrator can pre-approve specific skills or all of them with the AGENT_AUTO_APPROVED_SKILLS environment variable. A user leaves an agent session by typing exit, and each scheduled job is limited to the tools chosen for it, with every run's thoughts, tool calls and output recorded for later review and follow-up in a thread.
Protocols
| Protocol | Support | Note |
|---|---|---|
| MCP | Yes evidence | Client only: agents use tools from MCP servers configured over stdio, SSE or streamable HTTP; the Docker docs say resources, prompts and sampling are not supported, and the hosted cloud has no MCP. |
| A2A | Unknown | Not mentioned in the README or the docs source repository (anythingllm-docs); GitHub code search for a2a in anything-llm returned only CSS and CloudFormation strings, and agent2agent returned nothing. |
| AG-UI | Unknown | Not mentioned in the README or docs source; GitHub code search for ag-ui in anything-llm returned nothing, and AnythingLLM is not in the AG-UI README integration list. |
Best for
- A private document chat assistant on a laptop or a single Docker host, using local models. (shortlist)
- Giving one agent extra tools from MCP servers or custom Node.js skills without writing an agent framework.
- Recurring agent tasks such as daily digests or weekly research runs with stored traces. (shortlist)
- Multi-user internal knowledge chat with per-user permissions on the Docker version.
Not for
- Coordinating several specialised agents; the docs describe a single agent per chat session.
- Teams that need MCP or custom agent skills on the hosted cloud, where both are disabled.
- Hosts whose CPU lacks AVX2, which the default LanceDB vector store requires.
Quickstart
docker pull mintplexlabs/anythingllm:latest # Start the Docker image (CPU must support AVX2; 2 GB RAM minimum)
export STORAGE_LOCATION=$HOME/anythingllm && mkdir -p $STORAGE_LOCATION && touch "$STORAGE_LOCATION/.env"
docker run -d -p 3001:3001 --cap-add SYS_ADMIN \
-v ${STORAGE_LOCATION}:/app/server/storage \
-v ${STORAGE_LOCATION}/.env:/app/server/.env \
-e STORAGE_DIR="/app/server/storage" \
mintplexlabs/anythingllm:latest
# In the UI (http://localhost:3001): choose an LLM, create a workspace named
# "research", enable agent skills, and create an API key. MCP servers go in
# $STORAGE_LOCATION/plugins/anythingllm_mcp_servers.json.
# "automatic" mode lets the agent call tools when the model supports tool calling
curl -X POST http://localhost:3001/api/v1/workspace/research/chat \
-H "Authorization: Bearer $ANYTHINGLLM_API_KEY" -H "Content-Type: application/json" \
-d '{"message": "Search the web for recent MCP news and summarize it", "mode": "automatic", "sessionId": "demo-1"}'
Common pitfalls
- The CPU must support AVX2 or the container exits when LanceDB loads; the documented minimum is 2 GB RAM, a 2-core CPU and 5 GB storage.
- Mount a storage folder and
.envas shown, or data is lost when the container is rebuilt; UID/GID mismatches between host and.envcause permission errors. - The Docker image does not start MCP servers when the container boots; they start when the agent needs them, and many servers slow startup. Only MCP tools are supported, not resources, prompts or sampling.
- On the hosted cloud, MCP and custom agent skills are disabled and there is no built-in LLM.
- Scheduled Jobs need v1.13.0 or later and only appear in single-user mode.
- Anonymous telemetry is on by default; set
DISABLE_TELEMETRY=trueto turn it off.
Pros
- The desktop app and Docker self-hosting are free, with paid managed cloud plans as an option. (source)
- MCP servers can be added through one JSON file and managed from the UI, including stdio servers. (source)
- Agent Flows let non-developers build new agent skills in a visual editor. (source)
- Scheduled Jobs keep a full trace of each unattended run and let you continue it as a normal chat. (source)
- Risky tool calls wait for user approval unless an admin explicitly pre-approves them. (source)
Cons
- The documented agent model is one LLM with tools per chat session; no multi-agent orchestration is described. (source)
- MCP support covers tools only; resources, prompts and sampling are not supported. (source)
- The hosted cloud disables MCP and custom agent skills and has no built-in LLM. (source)
- Scheduled Jobs are unavailable on multi-user self-hosted instances. (source)
- Custom agent skills are described as newly supported and may have bugs and missing features; only trusted code should be installed. (source)
Alternatives
FAQ
Does AnythingLLM support MCP?
Yes, as a client. Agents can use tools from MCP servers listed in anythingllm_mcp_servers.json over stdio, SSE or streamable HTTP. Resources, prompts and sampling are not supported, and MCP is disabled on the hosted cloud.
Can AnythingLLM run several agents together?
Not as a documented feature. Each chat runs one agent that can use skills, Agent Flows and MCP tools, and the model may chain several flows in one task, but there is no supervisor or handoff between agents.
Is AnythingLLM free?
The code is MIT-licensed and the desktop app and Docker image are free. Mintplex Labs sells managed cloud instances: Basic at $50 per month, Pro at $99 per month, and Enterprise on request.
What language is AnythingLLM written in?
JavaScript: a Node.js Express server and document collector with a React frontend. Custom agent skills are also written for Node.js.
Does AnythingLLM support A2A or AG-UI?
No official support was found in the README, the docs source or repository code on 30 September 2026.
Sources
- AnythingLLM GitHub repository
- AnythingLLM homepage
- AnythingLLM documentation
- README
- LICENSE (MIT)
- AnythingLLM pricing
- AI Agents
- AI Agent usage
- AI Agent setup
- Agent Flows
- Custom agent skills
- MCP compatibility
- MCP on Docker
- Intelligent Tool Selection
- Scheduled Jobs
- Memories & Personalization
- Cloud limitations
- Local Docker installation
- Docker system requirements
- Configuration (tool call approval)
- API access and keys
- AIbitat agent runtime source
- Workspace chat API source