Which Coding Agents Support ACP?
Most of them do now. Here are short answers to the questions people ask most:
- → Does Claude Code support ACP? Not by itself. It runs over ACP through the Claude Agent adapter,
@agentclientprotocol/claude-agent-acp, which is listed in the ACP registry asclaude-acp. - → Does Codex support ACP? Through an adapter.
@agentclientprotocol/codex-acpwraps Codex and serves it as a standard ACP agent (registry idcodex-acp). - → Does Gemini CLI support ACP? Yes, natively. Gemini CLI was the first ACP agent. Start it with
gemini --acp, or connect Gemini CLI to AgentRQ. - → Does Cursor support ACP? Yes, natively, through Cursor's command-line agent:
cursor-agent acp. That's the CLI, not the Cursor editor. - → Does OpenCode support ACP? Yes, natively:
opencode acp. - → Does Zed support ACP? Yes. Zed is an ACP client: it runs agents rather than being one. Zed created the protocol, and any agent in the table below can run inside it.
The ACP Support Table
The table covers 33 agents. Most rows come from the ACP registry, the public list of ACP agents, as of October 2026. Every row links to that agent's ACP setup page in our docs.
- → Native means the agent's own makers ship its ACP mode, as a flag, a subcommand, or a separate ACP build or package of their own (Antigravity, Mistral Vibe, DeepAgents, fast-agent and Autohand Code ship it that way).
- → Adapter means a separate bridge package wraps an agent that doesn't speak ACP itself. Claude Code and Codex use adapters maintained by the ACP project. Pi and Amp use community adapters.
- → ACP command is what actually starts the agent in ACP mode. You rarely type it yourself, because an ACP client runs it for you.
- → Registry id is the agent's name in the ACP registry. Start the agent with AgentRQ's ACP Gateway by passing it as
--agent <id>.
| Agent | ACP support | ACP command | Registry id |
|---|---|---|---|
| Claude Code (Claude Agent) | Adapter | npx @agentclientprotocol/claude-agent-acp |
claude-acp |
| Codex CLI | Adapter | npx @agentclientprotocol/codex-acp |
codex-acp |
| Gemini CLI | Native | gemini --acp |
gemini |
| Cursor | Native | cursor-agent acp |
cursor |
| OpenCode | Native | opencode acp |
opencode |
| GitHub Copilot CLI | Native | npx @github/copilot --acp |
github-copilot-cli |
| Google Antigravity | Native | agy_acp_server.par |
antigravity-acp |
| Pi coding agent | Adapter (community) | npx pi-acp |
pi-acp |
| Amp | Adapter (community) | amp-acp |
amp-acp |
| goose | Native | goose acp |
goose |
| Junie | Native | junie --acp=true |
junie |
| Cline | Native | npx cline --acp |
cline |
| Kilo | Native | npx @kilocode/cli acp |
kilo |
| Qwen Code | Native | npx @qwen-code/qwen-code --acp |
qwen-code |
| Kimi CLI | Native | kimi acp |
kimi |
| Mistral Vibe | Native | vibe-acp |
mistral-vibe |
| Augment Code (Auggie) | Native | npx @augmentcode/auggie --acp |
auggie |
| Factory Droid | Native | droid exec --output-format acp-daemon |
factory-droid |
| Devin | Native | devin acp |
devin |
| Grok Build | Native | npx @xai-official/grok agent stdio |
grok-build |
| Qoder CLI | Native | npx @qoder-ai/qodercli --acp |
qoder |
| Codebuddy Code | Native | npx @tencent-ai/codebuddy-code --acp |
codebuddy-code |
| Poolside | Native | pool acp |
poolside |
| Cortex Code | Native | cortex acp serve |
cortex-code |
| DeepAgents | Native | npx deepagents-acp |
deepagents |
| fast-agent | Native | uvx fast-agent-acp |
fast-agent |
| Autohand Code | Native | npx @autohandai/autohand-acp |
autohand |
| VT Code | Native | vtcode acp |
vtcode |
| Stakpak | Native | stakpak acp |
stakpak |
| Hermes Agent | Native | hermes acp |
not listed |
| OpenHands | Native | openhands acp |
not listed |
| OpenClaw | Native | openclaw acp |
not listed |
| Raxol | Native | raxol acp |
not listed |
The registry lists 41 agents in all, and the ACP agents directory has a page for more than 50. For an agent with a registry id, the gateway downloads and runs it for you. For one that isn't listed, install it yourself and pass its ACP command after --, for example -- hermes acp.
What ACP Is
The Agent Client Protocol (ACP) is an open standard for how a coding agent talks to the program that runs it. The client starts the agent as a child process and they exchange JSON-RPC messages over stdin and stdout. The client sends prompts. The agent streams back its plan, the files it edits and the commands it wants to run, and it asks the client for permission before risky steps.
It does for coding agents what the Language Server Protocol did for language tooling. An agent that supports ACP once works in every ACP client, and a client that supports ACP once can run every ACP agent. No one has to build a separate plugin for each pair.
ACP and MCP do different jobs. MCP gives an agent tools and data. ACP connects the agent to the person or program directing it. Most agents use both.
ACP Clients vs. ACP Agents
Each side of an ACP connection has its own role:
- → ACP agents do the coding work: Gemini CLI, Codex, Claude Agent, Cursor's CLI, OpenCode and everything else in the table above.
- → ACP clients start agents, show their output and approve their actions. Zed is the best-known client. JetBrains IDEs, Neovim plugins such as CodeCompanion and avante.nvim, and Emacs's agent-shell are clients too.
AgentRQ's ACP Gateway is also an ACP client. Unlike an editor, it doesn't need you at a keyboard: it takes the agent's work from a task board instead.
Connect Any of These Agents to AgentRQ
The ACP Gateway is a small open-source bridge. On one side it runs an ACP agent. On the other it connects to your AgentRQ workspace. Every task you assign on the task board goes to the agent, and every permission request the agent makes comes back to you. You can answer from the dashboard or Slack, without opening the terminal the agent runs in.
Save your workspace's .mcp.json in your project root:
Log in once. The first run also downloads the agent:
Then start the bridge and leave it running:
To use a different agent, replace gemini with any registry id from the table. For an agent that isn't in the registry, put its own ACP command after --, for example npx @agentrq/acp-gateway@latest -- hermes acp. For a full walkthrough with one agent, see connecting Google Antigravity step by step. The gateway can also list every agent and model your machine can run.
What this unlocks: the agent you already prefer, whichever one it is, can work through a queue of tasks while you're away from your desk. When it reaches a decision only you can make, it waits for you instead of guessing. You can also run several agents side by side, each in its own workspace, and supervise all of them from one board.
Using Claude Code itself rather than the Claude Agent adapter? It doesn't need the gateway. It connects to AgentRQ directly over MCP. See Connect Claude Code.
FAQ
Does Claude Code support ACP?
Not natively. Claude Code runs over ACP through the Claude Agent adapter, @agentclientprotocol/claude-agent-acp (registry id claude-acp). Zed and other ACP clients, including AgentRQ's gateway, use that adapter.
Does Codex support ACP?
Yes, through the @agentclientprotocol/codex-acp adapter. It wraps Codex and serves it as a standard ACP agent.
Is Zed an ACP agent or an ACP client?
A client. Zed runs ACP agents, such as Gemini CLI, Claude Agent and Codex, inside the editor.
What is the difference between a native and an adapter ACP agent?
A native agent's own makers ship its ACP mode, for example gemini --acp or opencode acp. An adapter is a separate package that translates for an agent that doesn't speak ACP itself, for example codex-acp or pi-acp.
How do I connect an ACP agent to AgentRQ?
Save your workspace's .mcp.json in your project root, then run npx @agentrq/acp-gateway@latest --agent <registry-id>. Add --login the first time.