Glossary
what is acp (agent client protocol)?
TL;DR
ACP, the Agent Client Protocol, is a standard for how an app talks to a coding agent: sending it prompts, showing its replies and tool calls, and asking you to approve actions. The app starts the agent as a separate program and they exchange JSON-RPC messages over standard input and output. It means one app can drive many agents through one adapter. MCP connects agents to tools; ACP connects apps to agents.
Every coding agent has its own way of being driven by another program. ACP replaces those one-off integrations with one protocol, so an editor or agent app can support a new agent without custom glue.
How ACP works
The app starts the agent and they exchange structured messages over stdin and stdout.
The app, which ACP calls the client, launches the agent as a child process. They talk in JSON-RPC over standard input and output. The client sends prompts; the agent streams back its messages, the tool calls it wants to make, and permission requests the client shows to you.
Because the messages are structured, the app can draw its own interface: chat bubbles, approval cards, diffs, instead of showing the agent's raw terminal.
ACP vs MCP
MCP plugs tools into an agent. ACP plugs an agent into an app.
The two protocols point in different directions, and many setups use both.
| Protocol | Connects |
|---|---|
| MCP (Model Context Protocol) | An agent to tools and data: GitHub, Linear, databases, docs |
| ACP (Agent Client Protocol) | An app or editor to an agent, so the app can drive it and show its work |
Who uses it
Agent apps use ACP to support many agents through one adapter.
Several agent managers use ACP to reach agents that support it. Paseo runs many agents through one generic ACP adapter. Harnss is a desktop client for agents that speak ACP. Silo has an ACP chat panel in beta. bb drives some agents through ACP alongside their own SDKs. On the agent side, Hermes can act as an ACP server, and community adapters expose Pi as an ACP agent.
ACP or a real terminal
ACP gives a richer UI; a terminal gives you the agent exactly as its makers built it.
An ACP app shows you its own view of the agent. That can be nicer to read, but you only get what the protocol and the app support. Running the agent's own CLI in a real terminal gives you every feature the agent has, at the cost of a plainer view.
Pane takes the terminal route: each agent runs in a real terminal, so any CLI agent works on day one, whether or not it speaks ACP.
Related
Sources
- Corrections
- If anything here is wrong or out of date, tell us and we'll fix it and update the date at the top. Open an issue on GitHub
- Sources
frequently asked questions
By Parsa Khazaeepoul, co-founder of Pane. .