Keep Crush.
Give it your machines.
AI Commander is not an alternative to Crush, 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, LM Studio, or Trae. 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 · LM Studio · Trae · Gemini — and the rest on Connect your AI client.
Connect Crush (remote MCP)
Crush, Charm’s terminal coding agent
(Crush MCP docs),
supports MCP servers over stdio, http, and sse, with a built-in OAuth 2.1 flow for HTTP servers.
Add AI Commander in a crushrc — Crush’s Bash-based config (./.crushrc, ./crushrc, or ~/.config/crush/crushrc):
mcp add aicommander --type http --url https://aicommander.dev/mcp --oauth true
With oauth enabled, Crush runs the one-time browser sign-in using Dynamic Client Registration — no static token to paste.
Prefer JSON? Crush still reads the legacy crush.json / .crush.json (project) and ~/.config/crush/crush.json (global).
Note the key is mcp, not mcpServers:
{
"$schema": "https://charm.land/crush.json",
"mcp": {
"aicommander": {
"type": "http",
"url": "https://aicommander.dev/mcp",
"oauth": true
}
}
}
Both crushrc and crush.json are trusted config — Crush expands $VAR and $(…) at load time.
If you use an API key instead of OAuth, reference it from the environment (--header Authorization "Bearer $AIC_API_KEY") and never commit it to a project config.
Prefer a local stdio bridge?
{
"$schema": "https://charm.land/crush.json",
"mcp": {
"aicommander": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@aicommander/mcp"
],
"env": {
"AICOMMANDER_SERVER": "https://aicommander.dev"
}
}
}
}
Keep Crush’s permission prompts on for AI Commander tools at first; long builds and training runs are good candidates for detached jobs,
and you can hide tools you do not want Crush to call with disabled_tools (or --disabled-tools in crushrc).
Run crush --debug and check ./.crush/logs/crush.log if the server does not connect.
Full client matrix (Crush, LM Studio, Trae, Factory, Kiro, Warp, Junie, Claude Code, Codex, ChatGPT, Cursor, Copilot, Gemini, OpenCode, goose, and more, plus REST): Connect your AI client.
For a code-only first hour without the OAuth flow, append ?anonymous=1 to the MCP URL and drop oauth.
Flags and config keys can differ between Crush versions — check the linked Crush 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 Crush 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 |
|---|---|
| Crush | mcp add aicommander --type http --url https://aicommander.dev/mcp --oauth true |
| LM Studio | mcpServers.aicommander.url → https://aicommander.dev/mcp in ~/.lmstudio/mcp.json |
| Trae | Settings → MCP → Add → Add Manually → {"url": "https://aicommander.dev/mcp"} |
| 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
mcp add aicommander --type http --url https://aicommander.dev/mcp --oauth true to your crushrc (for example ~/.config/crush/crushrc), or put mcp.aicommander with type http, url https://aicommander.dev/mcp, and oauth true in crush.json. Crush opens the one-time browser sign-in. Prefer stdio? Use type stdio, command npx, args -y @aicommander/mcp. Use ?anonymous=1 for a code-only first hour. See /howto/ for the full matrix.Next steps
Install the agent on a machine you control, add AI Commander to Crush (mcp add aicommander --type http … or npx -y @aicommander/mcp), then ask Crush for a real task on a remote box.