/customize
Rewire which CLI handles which role in cc-multi-cli-plugin, OR diagnose/work around an upstream CLI quirk via env vars and config files. Use when the user asks to swap CLIs, change a subagent's target CLI, add or disable a subagent or command, restrict a CLI to read-only,
$ npx -y skills add greenpolo/cc-multi-cli-plugin --skill customize --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/customize
Context preview
The summary Claude sees to decide when to auto-load this skill.
Rewire which CLI handles which role in cc-multi-cli-plugin, OR diagnose/work around an upstream CLI quirk via env vars and config files. Use when the user asks to swap CLIs, change a subagent's target CLI, add or disable a subagent or command, restrict a CLI to read-only,
SKILL.md
customize.SKILL.mdname: customize
description: Rewire which CLI handles which role in cc-multi-cli-plugin, OR diagnose/work around an upstream CLI quirk via env vars and config files. Use when the user asks to swap CLIs, change a subagent's target CLI, add or disable a subagent or command, restrict a CLI to read-only, hardcode a model, or change how a role frames its prompt — and also when a CLI is misbehaving (hangs, missing tools, broken release) and the user needs operator escape hatches like CURSOR_AGENT_PATH or AGY_CLI_PATH or OPENCODE_CLI_PATH, or per-CLI MCP config tuning. Works for any CLI in the marketplace — the four default CLIs (Codex, Cursor, Antigravity, OpenCode) and any additional CLIs the user added via the multi-cli-anything skill. Trigger phrases include "swap Codex and Cursor", "make Antigravity the researcher", "disable cursor-explore", "restrict Codex to read-only", "change which CLI handles implementation", "add /<cli>:<command>", "only install the plugins I need", "hardcode a model for <some-role>", "change the framing for <role>", "cursor is hanging / broken / stuck", "pin an older cursor build".
Customize cc-multi-cli-plugin
cc-multi-cli-plugin is a **multi-plugin marketplace**: one hub plugin (`multi`) plus one thin plugin per AI CLI the user has wired up. Customization is explicit file edits across those plugins. **There is no runtime config layer and no `buildPrompt()` function** — a CLI's behavior is assembled from a few small, separate files, and you edit the one that owns the thing you want to change.
**This skill is CLI-agnostic.** Every instruction below works for any CLI in the marketplace — the four shipped defaults (Codex, Cursor, Antigravity, OpenCode) and any CLIs added later via the `multi-cli-anything` skill (Aider, etc.). Concrete examples use specific CLI names for clarity; apply the same pattern to any CLI.
The four moving parts every customization touches
A `/<cli>:<action>` invocation flows through four artifacts. Each owns one concern. A customization edits whichever one owns what you're changing — usually one or two.
| Artifact | Path | Owns | Edit it to… | |---|---|---|---| | **Slash command** | `plugins/<cli>/commands/<action>.md` | The user-facing entry point. Dispatches to the subagent via the `Agent` tool. | add/rename/disable a `/<cli>:<action>` command | | **Subagent (forwarder)** | `plugins/multi/agents/<cli>-<role>.md` | The `multi:<cli>-<role>` forwarder. Loads the `multi-cli-runtime` skill, optionally **frames** the prompt, and builds exactly ONE companion `Bash` call. Its `model:` is tuned by role (see below). | change a role's prompt framing, its model, its tools, or which `--cli`/`--role` it forwards to | | **Adapter** | `plugins/multi/scripts/lib/adapters/<cli>.mjs` | The CLI's transport, plus the **role→flag/sandbox** mapping (read-only vs write, mode flags). Registered in `registry.mjs`. | change how a role maps to the CLI's own flags/permissions | | **Shared contract** | `plugins/multi/skills/multi-cli-runtime/SKILL.md` | The flag-handling, routing, and failure-line contract **every** forwarder obeys (`--model`, `--effort`, `--write`/`--read-only`, `--resume`, `--until-done`, `--plan`, `2>&1`, the `<CLI> <role> failed: …` line). | change behavior shared across all CLIs (rare — it affects everything) |
Two facts that the old `buildPrompt()` model got wrong and that you must internalize:
- **Prompt *shape* lives in the subagent `.md`, not the adapter.** Each write-role forwarder (e.g. `cursor-delegate.md`, `codex-execute.md`) contains a fenced **framing block** ("You are Cursor in agent mode…") that it prepends to the user's task. To change how a role frames its prompt, edit that block. Read-only forwarders (`codex-review`, `antigravity-researcher`) usually have little or no framing.
- **Role *behavior* (read vs write, CLI flags) lives in the adapter** — and is done differently per CLI. Codex switches on a sandbox (`read-only` vs `danger-full-access`) selected by the `--write` flag in `lib/commands/task.mjs`; Cursor maps roles to headless flags in `buildHeadlessArgs()` plus a `READ_ONLY_ROLES` set in `cursor.mjs`; Antigravity is always read-only; OpenCode maps roles in `buildHeadlessArgs()` plus `READ_ONLY_ROLES` in `opencode.mjs` (no `--read-only` flag — enforced via env injection). Verify the specific CLI's mechanism before editing (Step 2).
Step 0 — Locate the plugin repo
Before editing anything, determine WHICH files to edit. Three scenarios:
1. **Check `claude plugin marketplace list`** — find the `installLocation` for `cc-multi-cli-plugin`. 2. **Classify the install:**
- If `installLocation` is a local directory the user controls (dev clone, fork they own) — **edit those files directly.** Changes are live.
- If `installLocation` is under `~/.claude/plugins/marketplaces/cc-multi-cli-plugin/` and sourced from a GitHub repo the user does NOT own — **edits there will be overwritten** on the next `claude plugin marketplace update`. STOP and tell the user they need to fork the repo, clone their fork, and re-register that clone as the marketplace source.
3. **Ask the user** if you can't tell which scenario applies.
Record the path you'll edit as `$REPO`. All subsequent file paths are relative to `$REPO`.
Step 1 — Discover the current inventory (don't rely on memory)
Users may have added CLIs via `multi-cli-anything` that aren't in any documentation, and the shipped roster shifts between versions. Always run these before planning changes:
ls $REPO/plugins/ # CLI plugins installed
ls $REPO/plugins/multi/agents/ # subagents (forwarders)
find $REPO/plugins -name "*.md" -path "*/commands/*" # slash commands
ls $REPO/plugins/multi/scripts/lib/adapters/ # adapters
cat $REPO/plugins/multi/scripts/lib/adapters/registry.mjs # which adapters are registered
cat $REPO/.claude-plugin/marketplace.json # marketplace regi
Read more
name: customize description: Rewire which CLI handles which role in cc-multi-cli-plugin, OR diagnose/work around an upstream CLI quirk via env vars and config files. Use when the user asks to swap CLIs, change a subagent's target CLI, add or disable a subagent or command, restrict a CLI to read-only, hardcode a model, or change how a role frames its prompt — and also when a CLI is misbehaving (hangs, missing tools, broken release) and the user needs operator escape hatches like CURSOR_AGENT_PATH or AGY_CLI_PATH or OPENCODE_CLI_PATH, or per-CLI MCP config tuning. Works for any CLI in the marketplace — the four default CLIs (Codex, Cursor, Antigravity, OpenCode) and any additional CLIs the user added via the multi-cli-anything skill. Trigger phrases include "swap Codex and Cursor", "make Antigravity the researcher", "disable cursor-explore", "restrict Codex to read-only", "change which CLI handles implementation", "add /<cli>:<command>", "only install the plugins I need", "hardcode a model for <some-role>", "change the framing for <role>", "cursor is hanging / broken / stuck", "pin an older cursor build".
Customize cc-multi-cli-plugin
cc-multi-cli-plugin is a **multi-plugin marketplace**: one hub plugin (`multi`) plus one thin plugin per AI CLI the user has wired up. Customization is explicit file edits across those plugins. **There is no runtime config layer and no `buildPrompt()` function** — a CLI's behavior is assembled from a few small, separate files, and you edit the one that owns the thing you want to change.
**This skill is CLI-agnostic.** Every instruction below works for any CLI in the marketplace — the four shipped defaults (Codex, Cursor, Antigravity, OpenCode) and any CLIs added later via the `multi-cli-anything` skill (Aider, etc.). Concrete examples use specific CLI names for clarity; apply the same pattern to any CLI.
The four moving parts every customization touches
A `/<cli>:<action>` invocation flows through four artifacts. Each owns one concern. A customization edits whichever one owns what you're changing — usually one or two.
| Artifact | Path | Owns | Edit it to… | |---|---|---|---| | **Slash command** | `plugins/<cli>/commands/<action>.md` | The user-facing entry point. Dispatches to the subagent via the `Agent` tool. | add/rename/disable a `/<cli>:<action>` command | | **Subagent (forwarder)** | `plugins/multi/agents/<cli>-<role>.md` | The `multi:<cli>-<role>` forwarder. Loads the `multi-cli-runtime` skill, optionally **frames** the prompt, and builds exactly ONE companion `Bash` call. Its `model:` is tuned by role (see below). | change a role's prompt framing, its model, its tools, or which `--cli`/`--role` it forwards to | | **Adapter** | `plugins/multi/scripts/lib/adapters/<cli>.mjs` | The CLI's transport, plus the **role→flag/sandbox** mapping (read-only vs write, mode flags). Registered in `registry.mjs`. | change how a role maps to the CLI's own flags/permissions | | **Shared contract** | `plugins/multi/skills/multi-cli-runtime/SKILL.md` | The flag-handling, routing, and failure-line contract **every** forwarder obeys (`--model`, `--effort`, `--write`/`--read-only`, `--resume`, `--until-done`, `--plan`, `2>&1`, the `<CLI> <role> failed: …` line). | change behavior shared across all CLIs (rare — it affects everything) |
Two facts that the old `buildPrompt()` model got wrong and that you must internalize:
- **Prompt *shape* lives in the subagent `.md`, not the adapter.** Each write-role forwarder (e.g. `cursor-delegate.md`, `codex-execute.md`) contains a fenced **framing block** ("You are Cursor in agent mode…") that it prepends to the user's task. To change how a role frames its prompt, edit that block. Read-only forwarders (`codex-review`, `antigravity-researcher`) usually have little or no framing.
- **Role *behavior* (read vs write, CLI flags) lives in the adapter** — and is done differently per CLI. Codex switches on a sandbox (`read-only` vs `danger-full-access`) selected by the `--write` flag in `lib/commands/task.mjs`; Cursor maps roles to headless flags in `buildHeadlessArgs()` plus a `READ_ONLY_ROLES` set in `cursor.mjs`; Antigravity is always read-only; OpenCode maps roles in `buildHeadlessArgs()` plus `READ_ONLY_ROLES` in `opencode.mjs` (no `--read-only` flag — enforced via env injection). Verify the specific CLI's mechanism before editing (Step 2).
Step 0 — Locate the plugin repo
Before editing anything, determine WHICH files to edit. Three scenarios:
1. **Check `claude plugin marketplace list`** — find the `installLocation` for `cc-multi-cli-plugin`. 2. **Classify the install:**
- If `installLocation` is a local directory the user controls (dev clone, fork they own) — **edit those files directly.** Changes are live.
- If `installLocation` is under `~/.claude/plugins/marketplaces/cc-multi-cli-plugin/` and sourced from a GitHub repo the user does NOT own — **edits there will be overwritten** on the next `claude plugin marketplace update`. STOP and tell the user they need to fork the repo, clone their fork, and re-register that clone as the marketplace source.
3. **Ask the user** if you can't tell which scenario applies.
Record the path you'll edit as `$REPO`. All subsequent file paths are relative to `$REPO`.
Step 1 — Discover the current inventory (don't rely on memory)
Users may have added CLIs via `multi-cli-anything` that aren't in any documentation, and the shipped roster shifts between versions. Always run these before planning changes:
ls $REPO/plugins/ # CLI plugins installed ls $REPO/plugins/multi/agents/ # subagents (forwarders) find $REPO/plugins -name "*.md" -path "*/commands/*" # slash commands ls $REPO/plugins/multi/scripts/lib/adapters/ # adapters cat $REPO/plugins/multi/scripts/lib/adapters/registry.mjs # which adapters are registered cat $REPO/.claude-plugin/marketplace.json # marketplace regi
Showing the first part of this file.
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.
Repo: greenpolo/cc-multi-cli-plugin
Other skills on cc-multi-cli-plugin.
- /codex-cli-runtime
Internal helper contract for calling the multi-cli-companion runtime from Claude Code
Open skill - /codex-result-handling
Internal guidance for presenting Codex helper output back to the user
Open skill - /gpt-5-4-prompting
Internal guidance for composing Codex and GPT-5.4 prompts for coding, review, diagnosis, and research tasks inside the Codex Claude Code plugin
Open skill - /multi-cli-anything
Add a new CLI provider to cc-multi-cli-plugin (beyond the built-in Codex/Cursor/Antigravity/OpenCode). Use when the user asks to integrate another AI CLI like Aider, Qwen, or any CLI that can be driven headlessly (a `-p`/print mode with JSON output, an app-server/HTTP mode, or
Open skill - /multi-cli-runtime
Internal helper contract for calling the multi-cli-companion runtime from any multi:* subagent
Open skill - /multi-plan-handoff
Auto-detect plan files in conversation context and pass them to multi:* execute subagents by reference, not by paraphrase
Open skill

