Keep AnythingLLM.
Give your agents your machines.
AI Commander is not an alternative to AnythingLLM, Claude Code, Codex, ChatGPT, Cursor, GitHub Copilot, Sourcegraph Cody, Grok, Gemini, Windsurf, Continue, Cline, Roo Code, Zed, OpenCode, Qwen Code, goose, Amp, Kilo Code, OpenHands, Amazon Q Developer, Augment Code, Devin, JetBrains Junie, Kiro, Warp, Factory, Crush, LM Studio, Trae, Claude Desktop, n8n, OpenAI Agents SDK, Visual Studio, JetBrains AI Assistant, Open WebUI, or LibreChat. It is the remote-machine harness those tools plug into over MCP: outbound-only shell, detached jobs that outlive the chat, and file transfer on hardware you already own.
Sibling harness pages: LibreChat · Open WebUI · LM Studio · Claude Code · Codex · ChatGPT · Cursor · Claude Desktop · n8n — and the rest on Connect your AI client.
Connect AnythingLLM (remote MCP, streamable)
AnythingLLM loads MCP tools for its AI agents on both Desktop and the self-hosted Docker image
(AnythingLLM docs: MCP compatibility).
Servers live in plugins/anythingllm_mcp_servers.json inside the AnythingLLM storage directory — the file is created the first time you open the Agent Skills page.
Add AI Commander’s hosted endpoint as a streamable server:
{
"mcpServers": {
"aicommander": {
"type": "streamable",
"url": "https://aicommander.dev/mcp",
"headers": {
"Authorization": "Bearer <your-api-key>"
}
}
}
}
Create the API key in the AI Commander dashboard (see Accounts & API keys); with it, the agent can list your machines and reach them by alias.
No account yet? Drop the headers block and use https://aicommander.dev/mcp?anonymous=1 for a code-only first hour.
Set "type": "streamable" explicitly — AnythingLLM assumes sse when type is missing.
If the file already has servers, paste only the "aicommander": { … } entry inside the existing mcpServers object, then click Refresh on the Agent Skills page — no restart needed.
Prefer a local stdio bridge?
{
"mcpServers": {
"aicommander": {
"command": "npx",
"args": [
"-y",
"@aicommander/mcp"
],
"env": {
"AICOMMANDER_TOKEN": "<your-api-key>"
}
}
}
}
On Desktop, npx must already be installed on the host and on your PATH; the Docker image ships npx, uvx and node.
Leave out env to drive a machine by raw session code only.
Desktop, Docker and multi-user — get the details right
- Desktop: MCP needs AnythingLLM Desktop 1.8.0 or later (MCP on Desktop).
- Docker: the config sits in the storage directory you mounted with
STORAGE_LOCATION(MCP on Docker). MCP is for self-hosted instances, not AnythingLLM Cloud. - Tools only: AnythingLLM loads MCP tools (not resources or prompts) — that is everything AI Commander needs:
remote_exec,list_machines,remote_job_*, file transfer. - Agent chats: MCP tools run in AnythingLLM’s agent mode; check that AI Commander appears on the Agent Skills page, and pick a model with solid tool calling.
- Shared instance: one API key (Bearer header or
AICOMMANDER_TOKEN) is one account. Everyone whose agent can call the server acts as that account, so keep it on a single-user instance or only where all agent users should reach those machines. - Long work: start detached jobs (
remote_job_start, thenremote_job_status/remote_job_logs) instead of one long tool call.
By default, API keys only act while the account owner has opened the AI Commander dashboard in the last 24 hours (accounts can disable that gate under Credential security) — see Connect your AI client. AnythingLLM’s docs rightly say never to run MCP servers you do not trust; AI Commander’s endpoint is first-party and only acts on machines where you installed the agent yourself.
Running LibreChat, Open WebUI or LM Studio too? See Keep LibreChat, Keep Open WebUI and Keep LM Studio. Full client matrix: Connect your AI client. Menus and options can differ between AnythingLLM versions — check the linked AnythingLLM docs for your build.
What you get that the chat alone cannot
- Remote shell on Linux, macOS, and Windows — by session code or saved alias.
- Detached jobs for builds, test suites, and training on the box that has the repo.
- Fleet list + GPU facts so your AnythingLLM agent picks the right machine before it burns an hour.
- File courier (Pro) for checkpoints and diffs up to 100 MiB.
- Outbound-only agent on each machine — no inbound ports, no exposed SSH, no VPN to set up.
Not a replacement — a multiplier
| You already use | AI Commander adds |
|---|---|
| AnythingLLM | mcpServers.aicommander → "type": "streamable", "url": "https://aicommander.dev/mcp" in anythingllm_mcp_servers.json |
| LibreChat | mcpServers.aicommander → type: streamable-http, url: https://aicommander.dev/mcp, OAuth |
| Open WebUI | Admin → Integrations → External Tool Servers → MCP (Streamable HTTP) + OAuth 2.1 |
| Claude Code | claude mcp add --transport http … → remote exec + jobs |
| Codex / ChatGPT | Same MCP endpoint or REST /api/v1/exec |
FAQ
plugins/anythingllm_mcp_servers.json in its storage directory, add mcpServers.aicommander with type streamable and url https://aicommander.dev/mcp (plus an Authorization: Bearer header with your AI Commander API key, or ?anonymous=1 for a code-only first hour), then click Refresh on the Agent Skills page. Prefer stdio? Use command npx with args -y @aicommander/mcp and AICOMMANDER_TOKEN in env. See /howto/ for the full matrix.Next steps
Install the agent on a machine you control, add AI Commander to AnythingLLM’s anythingllm_mcp_servers.json (remote streamable url or npx -y @aicommander/mcp), then ask your agent for a real task on a remote box.