Skip to content

greenpolo/cc-multi-cli-plugin

Repository files navigation

cc-multi-cli-plugin

cc-multi-cli-plugin

License: Apache 2.0 Latest release Built for Claude Code CLIs supported Stars

If you have access to multiple AI coding CLIs (Codex, Cursor, Antigravity, and OpenCode), this plugin lets Claude Code delegate to whichever one is best for the task — without you having to switch tools or run them yourself.

Each CLI is wired up through its native transport (Codex via ASP, Cursor via headless agent -p, Antigravity via its headless agy CLI, OpenCode via headless opencode run --format json). This lets you pick and choose the best features from each — like /cursor:delegate for fast implementation, /codex:review for code review, /antigravity:research for deep research, or /opencode:delegate to offload implementation to OpenCode's Zen models. Sessions, streaming, tool calls, and background jobs all work normally.

Install

Paste into Claude Code:

/plugin marketplace add https://github.com/greenpolo/cc-multi-cli-plugin
/plugin install multi@cc-multi-cli-plugin
/multi:setup

/multi:setup detects which CLIs you have, installs the matching sub-plugins, and wires Exa + Context7 MCPs into each.

Skills Included:

Two skills ship with the plugin:

  • multi-cli-anything — adds ANY CLI beyond the four built-in providers (Aider, Qwen, or anything with a headless/print, app-server, or structured transport) as a subagent that Claude can invoke at will. Claude scaffolds the new plugin in the marketplace.

  • customize — change which CLI handles what. "Make Codex the executor instead of Cursor." Claude does the file edits, reinstalls, and tells you what restarts are needed.

Just ask Claude in plain English. The skills activate automatically.

Commands

Provider commands live under each CLI's namespace; the cross-cutting /multi:* commands operate the shared runtime.

Command What it does
/codex:execute Delegate a specific plan or plan step to Codex
/codex:rescue Hand a stuck or open-ended problem to Codex for an independent investigation
/codex:review Codex code review of your working tree or a branch (read-only)
/codex:adversarial-review Adversarial design/code review — challenges the approach, not just the diff (read-only)
/cursor:delegate Delegate an implementation task or plan step to Cursor (agentic; writes code; supports --until-done)
/cursor:research Read-only external web/documentation research via Cursor
/cursor:explore Read-only codebase exploration via Cursor
/antigravity:research Deep external research with Antigravity (Gemini 3.5 Flash, read-only; experimental)
/antigravity:explore Fast codebase exploration with Antigravity (Gemini 3.5 Flash, read-only; experimental)
/opencode:delegate Delegate an implementation task to OpenCode (agentic; writes code; supports --until-done; default model: opencode/claude-opus-4-8 via Zen)
/opencode:research Read-only external web/documentation research via OpenCode
/opencode:explore Read-only codebase exploration via OpenCode
/multi:setup One-shot wizard — detects CLIs, configures Exa + Context7 MCPs
/multi:status Show active and recent background jobs for this repo
/multi:result Show the stored final output for a finished job
/multi:cancel Cancel an active background job

Claude can also auto-dispatch the provider commands without you typing them.

All of them are interchangeable, and can be altered to whatever you want using the customize skill.

Known issues

These are upstream CLI quirks and current limitations. If you hit something not listed, check the companion's stderr (the forwarders append 2>&1) — a bad model id, an auth failure, or a sandbox block surfaces there. (ACP_TRACE=1 still exists for ACP-based CLIs, but none of the shipped providers use ACP: Cursor runs headless agent -p and Antigravity headless agy.)

  • Cursor runs in headless agent -p mode (not ACP). The adapter delivers the prompt on stdin, selects the model with --model (default auto), and parses json/stream-json output. This sidesteps the older ACP-mode bugs (silent MCP drop, model-hint quirks). MCP servers come from Cursor's own ~/.cursor/mcp.json, which /multi:setup maintains.

  • Cursor's shell is slow/unreliable on Windows. Cursor's terminal tool can stall or wait out a per-command timeout on Windows (host-PATH/WSL, open upstream). So /cursor:delegate does not run build/test verification itself — it lists the commands in a ## Verification block and Claude runs them. File writes and web/codebase reads are unaffected.

  • Antigravity runs via the headless agy CLI (experimental). Install the agy CLI (https://antigravity.google) and run agy once interactively to sign in — the desktop app is not required. /multi:setup reports whether agy is detected.

  • Antigravity reads its answer from a transcript, not stdout. agy's headless print mode (agy -p) currently emits nothing to stdout when piped (an upstream bug, gemini-cli#27466, unfixed as of agy 1.0.3), so the adapter recovers the model's answer from agy's on-disk conversation transcript. Consequences: read-only research/explore only (no write-delegate), the model is fixed to Gemini 3.5 Flash (no per-call --model), and there are no token-usage metrics on this path. This is a deliberate workaround pending the upstream stdout fix.

  • OpenCode has no --read-only flag. For read-only roles (/opencode:research, /opencode:explore), the adapter enforces read-only by injecting a custom primary agent via OPENCODE_CONFIG_CONTENT with write/edit/bash denied, plus an OPENCODE_PERMISSION deny floor. A stale bun opencode.exe may shadow the npm .cmd shim on Windows — the adapter never resolves to opencode.exe; set OPENCODE_CLI_PATH to force the right binary if needed.

  • OpenCode token offload: anthropic/* models = zero offload. Calling OpenCode with an anthropic/* model routes through the same Claude subscription as Claude Code — no cost savings. Use opencode/* (Zen), openai/*, google/*, github-copilot/*, or ollama/* models for real offload. The adapter default is opencode/claude-opus-4-8 (Zen, billed separately). Override with OPENCODE_CLI_DEFAULT_MODEL.

  • OpenCode --effort is not supported. The --effort flag is Codex-only; OpenCode ignores it. --until-done is supported.

  • OpenCode MCP servers are not managed by /multi:setup. OpenCode reads MCP configuration from its own opencode.json; use OpenCode's interactive wizard to wire Exa/Context7 there.

When upstream CLIs change behavior, the plugin's adapters absorb it — these notes track the current state.

License

Apache 2.0. See NOTICE for upstream credits.

About

Claude Code plugin: delegate to Codex, Gemini, Cursor, GitHub Copilot, and Qwen CLIs via their native protocols (ACP, ASP). Use /gemini:research, /cursor:debug, /codex:execute, /copilot:review and more — Claude can also auto-dispatch.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors