Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Supported AI CLIs

git-paw auto-detects these AI coding CLIs on your PATH:

CLIBinaryDescriptionInstallCold resume
Claude CodeclaudeAnthropic’s AI coding assistantnpm i -g @anthropic-ai/claude-codeYes (built-in)
CodexcodexOpenAI’s coding agentnpm i -g @openai/codexNo
Antigravity CLIagyGoogle’s agentic coding CLI (replaces the retired Gemini CLI)See project docsNo
AideraiderAI pair programming in the terminalpip install aider-chatNo
VibevibeMistral AI’s coding CLISee project docsNo
QwenqwenAlibaba’s Qwen coding CLISee project docsNo
AmpampSourcegraph’s AI coding agentSee project docsNo
opencodeopencodeOpen-source terminal coding agentSee project docsNo
ClineclineCline’s coding agent CLISee project docsNo
DroiddroidFactory’s coding agent CLISee project docsNo
PipiTerminal coding agentSee project docsNo
JuniejunieJetBrains’ coding agent CLISee project docsNo
Cursor Agentcursor-agentCursor’s agent CLISee project docsNo
GitHub Copilot CLIcopilotGitHub Copilot in the terminalSee project docsNo
cncnContinue’s coding agent CLISee project docsNo
Kilo CodekiloKilo Code’s coding agent CLISee project docsNo
KimikimiMoonshot AI’s coding agent CLISee project docsNo

“Cold resume” means git-paw can restore the CLI’s prior conversation when recovering a stopped session or relaunching a dead pane, rather than starting it fresh — see Per-CLI cold resume. A “No” here reflects the CLI having no known session-assignment/resume flags, not a defect in it; add session_id_args / resume_args to a [clis.<name>] override (see Custom CLIs) to enable resume for a CLI that supports it but isn’t in git-paw’s built-in table yet.

The Cursor row names cursor-agent, Cursor’s agent CLI. The bare cursor binary is the Cursor editor launcher on most installations, so git-paw no longer auto-detects it as an AI CLI. This affects auto-detection only — if cursor is the command you want a pane to launch, any of these still resolves it unchanged:

  • git paw start --cli cursor,
  • a [clis.cursor] entry (see Custom CLIs),
  • a saved session whose recorded cli is cursor.

Spec-driven selection and git paw add validate availability against the detected list, so there a [clis.cursor] entry is the route to take. default_cli is not an escape hatch: it only pre-selects a row in the interactive picker, and the picker is built from the detected list — an undetected cursor has no row to pre-select, so the setting has no effect.

Headless (one-shot) form

The --unattended drive loop can hand a judgment call to the orchestrator CLI as a single non-interactive turn that reads its prompt from stdin — see Headless hand-off of judgment calls. git-paw knows the headless form of two CLIs:

CLIHeadless arguments
claude-p
codexexec
Every other CLInone — set [clis.<name>].headless_args

Any CLI that can run one turn from stdin gains the hand-off through a headless_args override in its [clis.<name>] entry; the override also wins over a built-in row. Without a form, the drive loop keeps every judgment call on the broker and says so at launch.

Per-CLI Setup Support

git paw setup-cli writes git-paw’s setup items into a CLI’s own settings. An item is available only when git-paw’s compiled fact table declares it for that CLI and those facts have been verified against an installed copy of it.

CLI--allowlist--trust--hooks
claudeSupported, verified against Claude Code 2.1.220 (2026-10-15)Not supportedNot supported
Every other CLINot supportedNot supportedNot supported

Nothing is withheld here as a judgement about those CLIs — their settings formats simply have not been checked yet. The per-CLI audit that adds them is planned for v0.23.0. Until then setup-cli reports the item as not supported and writes nothing, which is the honest answer rather than a guess at a file format.

A Claude Code variant registered under another name (a wrapper binary in a [clis.<name>] entry) has no row of its own, but is still covered by git paw setup-cli claude: the target settings file belongs to the repository, not to the binary.

git paw doctor reports the current status for your installation.

How Detection Works

git-paw scans your PATH for each known binary name. If found, it records the full path and makes the CLI available for selection.

Detection runs every time you start a session, so newly installed CLIs are picked up automatically.

Adding Custom CLIs

Any AI CLI not in the list above can be registered as a custom CLI:

# Register by path
git paw add-cli my-agent /usr/local/bin/my-agent

# Register by binary name (resolved via PATH)
git paw add-cli my-agent my-agent --display-name "My Agent"

Custom CLIs appear alongside detected ones in the selection prompt. See Configuration for more details.

Deduplication

If a custom CLI has the same binary name as a detected one, the custom definition takes precedence. This lets you override the path or display name of a detected CLI.

Missing CLIs

If a custom CLI’s command cannot be found (the binary doesn’t exist at the specified path and isn’t on PATH), it is excluded from the selection list with a warning. This prevents launching sessions that would immediately fail.

Prompt-shape detection

The list above is git-paw’s binary detection — it says which CLIs it can launch. Separately, the supervisor’s prompt detectors recognise a launched CLI’s terminal surface (its ready banner, permission-prompt wording, and so on) via a prompt-shape profile. git-paw ships only the Claude Code profile, embedded in the binary; no other CLI in the table above has a shipped profile, because a guessed one would misdetect confidently rather than falling back visibly. Every CLI — listed or custom — resolves the embedded Claude default for any field it has no profile override for. See CLI Prompt-Shape Profiles for the field reference and how to author one.