Updated

Which coding agent CLIs does Agency support?

As of October 2026, Agency has eleven built in: Claude Code, Codex, Pi, OpenCode, Copilot CLI, Cursor, Hermes, Gemini CLI, Kimi Code, Crush and DeepSeek Harness. Any other agent you can start from a command line also runs, as a custom profile, without the per-CLI extras below.

This page lists, for each one, the binary Agency looks for, the exact install command, and what works: resuming a run, looping, and MCP. It also says what does not work, which is the part most listings leave out. Disclosure: Agency is ours, and this site is its home. Everything here was read from Agency's source, not from the vendors' marketing.

How Agency finds and installs an agent

Agency checks whether the agent's binary is on your PATH. If it is, the agent is available; if it is not, Agency offers the install command from the list below and runs it for you. Eight of the eleven install with npm install -g (so they need Node.js and npm), Cursor and Kimi Code with a curl script, and Hermes has no install command in Agency. Each agent keeps using your own login, plan or API key;

The eleven at a glance

AgentBinaryResumeLoopMCP
Claude CodeclaudeYesYesYes
CodexcodexYesYesNo
PipiYesNoNo
OpenCodeopencodeYesYesYes
Copilot CLIcopilotYesYesYes
Cursorcursor-agentYesYesYes
HermeshermesNoNoNo
Gemini CLIgeminiNoNoNo
Kimi CodekimiYesNoNo
CrushcrushYesYesNo
DeepSeek HarnessdshYes (by relaunch)YesNo

Resume means a run you restart picks its conversation back up. Loop means Agency can re-run the agent headlessly until a check command passes. MCP means Agency writes the agent's MCP server config into the worktree for you. An agent marked No can still be launched and used; it just misses that feature.

Claude Code

Anthropic's terminal agent. The binary is claude.

  • Install: npm install -g @anthropic-ai/claude-code
  • Resume: yes. Agency gives each run its own conversation and reopens that one; the fallback is claude --continue
  • Loop attempts run claude -p <prompt> --permission-mode acceptEdits, so an unattended attempt does not stop at the first file-edit prompt
  • MCP: yes, written to .mcp.json in the worktree
  • Loop token caps work: Agency reads the count from Claude Code's own transcript

Codex

OpenAI's terminal agent. The binary is codex.

  • Install: npm install -g @openai/codex
  • Resume: codex resume --last. Codex picks its own session ids and accepts none from outside, so Agency cannot pin a run to one conversation
  • Loop attempts run codex exec --full-auto <prompt>
  • MCP: no. Agency writes no MCP config for Codex

Pi

The minimal terminal agent. The binary is pi.

  • Install: npm install -g --ignore-scripts @earendil-works/pi-coding-agent
  • Resume: yes. Agency points each run at its own session folder, so pi --continue reopens that run's conversation and not a sibling's
  • Loop: no. Agency has no headless recipe for Pi, so a Pi run cannot loop
  • Models: Agency can list them with pi --list-models and pass your pick with --model
  • MCP: no

OpenCode

The binary is opencode.

  • Install: npm install -g opencode-ai
  • Resume: opencode --continue. OpenCode will not open a conversation under an id Agency chooses, so there is no per-run pinning
  • Loop attempts run opencode run <prompt>; the opening prompt of an interactive run goes in with --prompt
  • MCP: yes, written to opencode.json in the worktree

Copilot CLI

GitHub's terminal agent. The binary is copilot.

  • Install: npm install -g @github/copilot
  • Resume: yes, per run (falls back to copilot --continue)
  • Loop attempts run copilot -p <prompt> --allow-all-tools; the opening prompt goes in with -i
  • MCP: yes, written to .mcp.json and passed with --additional-mcp-config

Cursor

Cursor's terminal agent. The binary Agency looks for is cursor-agent.

  • Install: curl https://cursor.com/install -fsS | bash
  • Resume: yes, per run (falls back to cursor-agent --continue, which reopens the latest chat for that folder)
  • Loop attempts run cursor-agent -p <prompt>
  • MCP: yes, written to .cursor/mcp.json

Gemini CLI

Google's terminal agent. The binary is gemini.

  • Install: npm install -g @google/gemini-cli
  • Resume: no. Agency has no resume recipe for Gemini CLI, so a restarted run starts a fresh conversation
  • Loop: no. Agency has no headless recipe for it
  • MCP: no. Model picker: yes, with the aliases auto, pro, flash and flash-lite

Kimi Code

Moonshot's terminal agent. The binary is kimi.

  • Install: curl -fsSL https://code.kimi.com/kimi-code/install.sh | bash
  • Resume: yes, per run (falls back to kimi --continue, which Agency drove on version 1.50.0 and found keyed to the working folder)
  • Opening prompt: not supported. kimi reads a trailing argument as a subcommand and fails with “No such command”, so a run starts empty and you type the task into the terminal
  • Loop: no. MCP: no

Crush

Charm's terminal agent. The binary is crush.

  • Install: npm install -g @charmland/crush
  • Resume: yes. Crush keeps its sessions in a .crush folder inside the worktree, so crush --continue cannot reach another project's
  • Loop attempts run crush run <prompt> --quiet (checked against v0.51.2)
  • Opening prompt: not supported. crush reads a prompt as a command, so you type the task into the terminal
  • Models: Agency cannot set one, because Crush has no launch flag for it. MCP: no

Hermes

The binary is hermes.

  • Install: Agency offers no install command for Hermes. Install it yourself; Agency launches it once hermes is on your PATH
  • Resume: no. hermes --continue picks the newest session on the machine whatever the folder, and moves into that session's folder, so Agency leaves it out
  • Loop: no. MCP: no. Model picker: none

DeepSeek Harness

The launcher is dsh, and it works differently from the rest: it serves a browser interface instead of a terminal one.

  • Install: npm install -g @deepseek-ai/dsh
  • Launch: Agency runs dsh web --no-open on a port of its own, shows that interface in the run's pane and offers “Open in browser” as one click. The opening prompt is sent over its local interface once the server is up
  • Resume: Agency has no recipe because none is needed; starting dsh web again in the same worktree reopens its sessions
  • Loop attempts run dsh --profile headless <prompt>, which exits 0 on completion and 1 on abort or error
  • MCP: no

What no agent gets

  • Loop token caps only work for Claude Code and Pi, the two whose transcripts Agency can read. For the others, a token cap never trips, because Agency will not guess at a count it cannot see. Attempt and wall-clock caps work for every agent that can loop
  • Agency never turns on an agent's permission-skipping mode by itself. The loop recipes above are the only place permissions are relaxed, and you choose to loop
  • Version drift: these recipes were checked against specific versions of each CLI, and a CLI that renames a flag breaks its recipe. A profile lets you override the arguments

Questions

Can I run Kimi Code, Crush or Pi in parallel with Claude Code?

Yes. Each run gets its own git worktree and branch and its own choice of agent, so different CLIs can work on the same repository at once. The method is in how to run coding agents in parallel.

Can I add an agent that is not on the list?

Yes. Any CLI you can start from a command line works as a custom profile. Agency does not know its resume, loop or MCP flags, so it launches the command as you wrote it.

Does Agency work on Windows?

No. Agency runs on macOS and Linux.