Skip to content

/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,

shell
$ npx -y skills add greenpolo/cc-multi-cli-plugin --skill customize --agent claude-code

How 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
How auto-invocation works

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.md
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
Read more
Read it on GitHub ↗

Showing the first part of this file.

Ships withcc-multi-cli-plugin

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.

Get the whole plugin, auto-invoked
Stats
87
Stars
0
Views
7
Forks
Active
Maintenance
JavaScript
Language
Apache-2.0
License
6d ago
Last commit
4mo ago
Created

Repo: greenpolo/cc-multi-cli-plugin