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
| Agent | Binary | Resume | Loop | MCP |
|---|---|---|---|---|
| Claude Code | claude | Yes | Yes | Yes |
| Codex | codex | Yes | Yes | No |
| Pi | pi | Yes | No | No |
| OpenCode | opencode | Yes | Yes | Yes |
| Copilot CLI | copilot | Yes | Yes | Yes |
| Cursor | cursor-agent | Yes | Yes | Yes |
| Hermes | hermes | No | No | No |
| Gemini CLI | gemini | No | No | No |
| Kimi Code | kimi | Yes | No | No |
| Crush | crush | Yes | Yes | No |
| DeepSeek Harness | dsh | Yes (by relaunch) | Yes | No |
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.jsonin 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 --continuereopens 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-modelsand 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.jsonin 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.jsonand 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,flashandflash-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.
kimireads 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
.crushfolder inside the worktree, socrush --continuecannot reach another project's - Loop attempts run
crush run <prompt> --quiet(checked against v0.51.2) - Opening prompt: not supported.
crushreads 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
hermesis on your PATH - Resume: no.
hermes --continuepicks 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-openon 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 webagain 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.