Keep Open WebUI.
Give your models your machines.
AI Commander is not an alternative to Open WebUI, 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, or JetBrains AI Assistant. 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: Claude Code · Codex · ChatGPT · Cursor · OpenCode · Factory · Kiro · Warp · Crush · LM Studio · Trae · Claude Desktop · n8n · OpenAI Agents SDK · Visual Studio · JetBrains AI Assistant · Gemini — and the rest on Connect your AI client.
Connect Open WebUI (MCP Streamable HTTP)
Open WebUI supports MCP natively from v0.6.31, over Streamable HTTP only (Open WebUI docs: Model Context Protocol) — which is exactly what AI Commander’s hosted endpoint speaks, so there is no proxy to run. MCP servers are admin-only: open Settings → Admin → Integrations, and under External Tool Servers click + Add Connection:
Type: MCP (Streamable HTTP) URL: https://aicommander.dev/mcp Auth: OAuth 2.1 → click Register Client, then Save ID / Name: aicommander / AI Commander Visibility: Access Control → only the users or groups who should reach these machines
Pick MCP (Streamable HTTP), not OpenAPI — Open WebUI’s docs warn that MCP config in an OpenAPI connection can hang the UI. With OAuth 2.1 Open WebUI uses Dynamic Client Registration, which AI Commander supports, so there is no Client ID to paste. Then each user opens a chat, clicks + → Integrations → Tools, enables AI Commander, and finishes a one-time browser sign-in. The grant is stored against that user’s Open WebUI account only, so everyone reaches their own AI Commander machines and nobody inherits anyone else’s.
Multi-user instance — get the auth right
- OAuth callback: AI Commander accepts HTTPS or loopback (
http://localhost/http://127.0.0.1) redirect URLs. Serve Open WebUI over HTTPS (or use it on localhost) and finish the sign-in at the address inWEBUI_URL; a plain-HTTP LAN address will not register. - Persist
WEBUI_SECRET_KEY: without a fixed value, OAuth-connected MCP tools break after every container restart. - Don’t make it a model default tool: OAuth 2.1 tools need an interactive browser redirect, so users enable them per chat.
- Bearer is one key for everyone: Auth = Bearer with an AI Commander API key in Key works, but every user who can see the connection then drives that account’s machines. Only do it on a single-user instance, or limit the connection with Access Control to yourself. Never choose Bearer with an empty key.
- No account? Auth = None with
https://aicommander.dev/mcp?anonymous=1drives a machine by its session code during that code’s first hour.
Use the connection’s Function Name Filter List to expose only the AI Commander tools a deployment should have, and start long work
as detached jobs (remote_job_start, then remote_job_status / remote_job_logs) instead of one long tool call.
API keys and OAuth connectors only act while the account owner has opened the AI Commander dashboard in the last 24 hours — see Credential security on
Connect your AI client. MCP connects the tools; the model still has to use them well, so pick a model with reliable native tool calling.
Running local models in LM Studio too? See Keep LM Studio. Full client matrix (Open WebUI, Visual Studio, JetBrains AI Assistant, Claude Desktop, n8n, Claude Code, Codex, ChatGPT, Cursor, Copilot, Gemini, and more, plus REST): Connect your AI client. Admin menus can differ between Open WebUI releases — check the linked docs for yours.
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 Open WebUI model 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 |
|---|---|
| Open WebUI | Admin → Integrations → External Tool Servers → MCP (Streamable HTTP), https://aicommander.dev/mcp, OAuth 2.1 |
| Visual Studio | .mcp.json → servers.aicommander {"type": "http", "url": "https://aicommander.dev/mcp"} |
| JetBrains AI Assistant | Settings → Tools → AI Assistant → MCP → Add → npx -y @aicommander/mcp (or a remote url) |
| Claude Code | claude mcp add --transport http … → remote exec + jobs |
| Codex / ChatGPT | Same MCP endpoint or REST /api/v1/exec |
| Cursor / Continue / Windsurf | npx @aicommander/mcp stdio bridge |
FAQ
https://aicommander.dev/mcp, and Auth to OAuth 2.1, then click Register Client and Save. Each user enables AI Commander per chat under + → Integrations → Tools and finishes a one-time browser sign-in. Requires Open WebUI v0.6.31 or later. See /howto/ for the full matrix.https://aicommander.dev/mcp is Streamable HTTP, so it connects directly — no mcpo, no stdio bridge. Your machines keep an outbound-only connection to the relay.Next steps
Install the agent on a machine you control, add https://aicommander.dev/mcp as an MCP (Streamable HTTP) tool server in Open WebUI, then ask your model for a real task on a remote box.