Crewly
Runs and steers a local team of Claude Code, Gemini CLI and Codex agents from your MCP client
MCP mode of the Claudish CLI: send prompts to non-Anthropic models and run them as Claude Code sessions
By MadAppGang TypeScript Local · stdio AI and MLDeveloper tools
58 popularity score ★ 1.0k ↓ 1.9k/wk
Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
It needs OPENROUTER_API_KEY. Replace each <NAME> with your value.
npm install -g claudishclaude mcp add claudish -e OPENROUTER_API_KEY=<OPENROUTER_API_KEY> -- claudish --mcp{
"mcpServers": {
"claudish": {
"command": "claudish",
"args": [
"--mcp"
],
"env": {
"OPENROUTER_API_KEY": "<OPENROUTER_API_KEY>"
}
}
}
}{
"mcpServers": {
"claudish": {
"command": "claudish",
"args": [
"--mcp"
],
"env": {
"OPENROUTER_API_KEY": "<OPENROUTER_API_KEY>"
}
}
}
}{
"servers": {
"claudish": {
"type": "stdio",
"command": "claudish",
"args": [
"--mcp"
],
"env": {
"OPENROUTER_API_KEY": "<OPENROUTER_API_KEY>"
}
}
}
}[mcp_servers.claudish]
command = "claudish"
args = ["--mcp"]
[mcp_servers.claudish.env]
OPENROUTER_API_KEY = "<OPENROUTER_API_KEY>"gemini mcp add --scope user -e OPENROUTER_API_KEY=<OPENROUTER_API_KEY> claudish claudish -- --mcpOPENROUTER_API_KEY secret |
Required: OpenRouter key from the documented setup. Another provider key such as GEMINI_API_KEY, OPENAI_API_KEY or META_API_KEY, a `claudish login` subscription or a local model server can be used instead. |
|---|---|
CLAUDISH_MCP_TOOLS |
Optional: Tool group to expose: all, low-level, agentic, session or debug. Any other value exposes all tools. |
GEMINI_API_KEY secret |
Optional: Google Gemini key for g@ and google@ models. |
OPENAI_API_KEY secret |
Optional: OpenAI key for oai@ models. |
MOONSHOT_API_KEY secret |
Optional: Kimi (Moonshot) key for kimi@ models. KIMI_API_KEY also works. |
ANTHROPIC_API_KEY secret |
Optional: Anthropic key handed to the internal proxy. |
CLAUDISH_DEBUG |
Optional: 1 or true writes a debug log to logs/ in the working directory. |
CLAUDISH_TELEMETRY |
Optional: 1 sends error reports without asking. 0, false or off turns reporting off. |
| Set together: meta | |
META_API_KEY secret |
Optional: Meta Model API key for metered meta@ models. The muse@ subscription signs in with `claudish login muse` and never uses this key. |
META_BASE_URL |
Optional: Endpoint for meta@ models. |
Claudish is first of all a command-line wrapper that runs Claude Code on other models through a local Anthropic-compatible proxy. It can route to OpenRouter, Gemini, OpenAI, Kimi, GLM, MiniMax, Meta, Vertex AI and many more, or to a local Ollama, LM Studio, vLLM or MLX server. Start it with `claudish --mcp` and the same program speaks MCP over stdio, so an assistant like Claude Code can pass a question or a whole task to another model without leaving the conversation.
At v14.7.0 the server registers 16 tools in four groups. The low-level group sends one prompt to one model and lists or searches models. The agentic group runs several models on one task with anonymised answers and optional blind judging (`team`), shows which provider would serve a model (`preflight`), reports the remaining allowance of a local Codex account pool, and files error reports. The session group starts full Claude Code sessions on an external model in headless terminal panes, then lets you type into them, read their screen and output, resize, list, diagnose and cancel them. The debug group holds `compare_models`, which sends one prompt to several models in turn.
`CLAUDISH_MCP_TOOLS` picks the group: `all` (the default), `low-level`, `agentic`, `session` or `debug`. The old value `channel` was renamed to `session` and now selects every tool with a warning on stderr. Progress reaches the client as ordinary progress notifications, and the server no longer announces a channel capability. Inside a pane that claudish itself started, the server drops to the four one-shot tools, so sessions cannot start more sessions.
| Runtime | Node.js 18+ |
|---|---|
| Runs on | macOS, Windows, Linux |
| OpenRouter | Paid planKey used in the documented setup. Another provider key, a `claudish login` subscription or a local model server can stand in for it. |
| Also |
|
Node.js 18+ or Bun 1.0+, per the package's engines field. Install with `npm install -g claudish`. Provider keys go in the client's env block. A `.env` in the working directory is read at startup but only for provider keys and model settings (`CLAUDISH_MODEL`, `CLAUDISH_MODEL_*`), so put other settings in the shell or the env block. Subscriptions sign in with `claudish login` (codex, antigravity, grok, kimi, or muse for Meta's Muse Code). The pane tools need magmux 0.18.0 or newer, which ships with the npm package on macOS and Linux and otherwise comes from `brew install MadAppGang/tap/magmux`.
`team`, `create_session` and the other pane-based features do not work on Windows and refuse with `magmux_unavailable` when magmux is missing; the other tools work on every platform. At most 48 live panes per user across all claudish processes. `team` session paths must sit inside the current working directory. `search_models` only covers OpenRouter's listing, so a model missing from it may still be routable. Session record files are capped (events.jsonl at 4 MB). The MCP guide's configuration example uses a `claudish-mcp` command, but the npm package (v10.6.1) installs only `claudish`; use `claudish --mcp` or `npx claudish@latest --mcp`.
Suits developers already in Claude Code who want a second opinion from GPT, Gemini, Grok, Kimi, Muse or a local model mid-session, or who want several models to try one task and be judged blind by others. The team and session tools need macOS or Linux plus the Claude Code CLI, so on Windows it is limited to single prompts and model lookup. Claudish is made by MadAppGang, not by Anthropic or any of the providers it calls. Every cloud call costs money or quota, so anyone who wants to spend nothing can point it at Ollama or LM Studio instead.
10 only read, 6 change things. A ? marks an optional parameter.
run_promptmodel: stringprompt: stringsystem_prompt?: stringeffort?: enumuser_required_provider?: booleanuser_required_model?: booleanlist_modelssearch_modelsquery: stringlimit?: numbercompare_modelsmodels: arrayprompt: stringsystem_prompt?: stringpreflightmodels: arrayprobe?: booleantimeout_ms?: numberteam changesmode: enumpath?: stringmodels?: arrayjudges?: arrayefforts?: objectinput?: stringinput_file?: stringrun_id?: stringslot?: stringsince_seq?: numberspans?: booleancols?: integerrows?: integeruser_required_provider?: arrayuser_required_model?: arrayrequire_pattern?: stringmin_output_bytes?: numberagent?: stringclaude_flags?: stringreport_error changeserror_type: enummodel?: stringcommand?: stringstderr_snippet?: stringexit_code?: numbererror_log_path?: stringsession_path?: stringadditional_context?: stringauto_send?: booleanallowance_statusprovider?: enumhorizon_hours?: numbersections?: arraycreate_session changesmodel: stringprompt?: stringwork_dir?: stringsetup_from?: stringtimeout_seconds?: integeragent?: stringclaude_flags?: stringeffort?: enumuser_required_provider?: booleanuser_required_model?: booleansend_input changessession_id: stringtext: stringget_outputsession_id: stringtail_lines?: numbercancel_session changessession_id: stringlist_sessionsinclude_completed?: booleanget_diagnosticssession_id: stringevent_limit?: numbercapture_sessionsession_id: stringsince_seq?: numberspans?: booleanresize_session changessession_id: stringcols: integerrows: integer