---
title: The Agent Client Protocol Overview
link: https://www.philschmid.de/acp-overview
source: philschmid-de
published: 2026-02-01T00:00:00Z
updated: 2026-02-01T00:00:00Z
first_seen: 2026-09-27T19:29:15.293681927Z
summary: The Agent Client Protocol (ACP) is an open standard abstracts the events and outputs of AI agents and provides a common interface for editors to interact with them. Similar to MCP but for agent to client (UI) communication.
content: extracted
html: 2026-02-01-the-agent-client-protocol-overview.html
preview:
  file: 2026-02-01-the-agent-client-protocol-overview.preview-ac2f4a8303d8.webp
  width: 256
  height: 134
  alt: The Agent Client Protocol Overview
  color: '#0e1110'
images:
- source: https://www.philschmid.de/static/blog/acp-overview/thumbnail.jpg
  original:
    file: 2026-02-01-the-agent-client-protocol-overview.image-2ebc1248f594.jpg
    width: 1500
    height: 785
  color: '#000000'
- source: https://www.philschmid.de/static/blog/acp-overview/acp.png
  original:
    file: 2026-02-01-the-agent-client-protocol-overview.image-86e1818f211e.png
    width: 3600
    height: 1287
  variants:
  - file: 2026-02-01-the-agent-client-protocol-overview.image-d08ede8ffbdd.webp
    width: 320
    height: 114
  - file: 2026-02-01-the-agent-client-protocol-overview.image-12f66c92401f.webp
    width: 640
    height: 229
  - file: 2026-02-01-the-agent-client-protocol-overview.image-8aca287a1798.webp
    width: 960
    height: 343
  - file: 2026-02-01-the-agent-client-protocol-overview.image-513be9b74f46.webp
    width: 1280
    height: 458
  - file: 2026-02-01-the-agent-client-protocol-overview.image-1f06927d3441.webp
    width: 1600
    height: 572
  - file: 2026-02-01-the-agent-client-protocol-overview.image-ee1f45c6e126.webp
    width: 3600
    height: 1287
  color: '#f8f8f9'
- source: https://www.philschmid.de/static/blog/acp-overview/tool.png
  original:
    file: 2026-02-01-the-agent-client-protocol-overview.image-95558e0463df.png
    width: 2108
    height: 2105
  variants:
  - file: 2026-02-01-the-agent-client-protocol-overview.image-686479eb2bfc.webp
    width: 320
    height: 320
  - file: 2026-02-01-the-agent-client-protocol-overview.image-129187940532.webp
    width: 640
    height: 639
  - file: 2026-02-01-the-agent-client-protocol-overview.image-a89800bb90d5.webp
    width: 960
    height: 959
  - file: 2026-02-01-the-agent-client-protocol-overview.image-0e11c85db798.webp
    width: 1280
    height: 1278
  - file: 2026-02-01-the-agent-client-protocol-overview.image-29b573ab6b98.webp
    width: 1600
    height: 1598
  - file: 2026-02-01-the-agent-client-protocol-overview.image-845284da1f3e.webp
    width: 2108
    height: 2105
  color: '#fefefe'
- source: https://www.philschmid.de/static/blog/acp-overview/full.png
  original:
    file: 2026-02-01-the-agent-client-protocol-overview.image-a31f4745a0d0.png
    width: 5636
    height: 8192
  variants:
  - file: 2026-02-01-the-agent-client-protocol-overview.image-66b4401153c7.webp
    width: 320
    height: 465
  - file: 2026-02-01-the-agent-client-protocol-overview.image-14d4437a5fa5.webp
    width: 640
    height: 930
  - file: 2026-02-01-the-agent-client-protocol-overview.image-c62b0f2fb1ec.webp
    width: 960
    height: 1395
  - file: 2026-02-01-the-agent-client-protocol-overview.image-4d2dfb224f55.webp
    width: 1280
    height: 1860
  - file: 2026-02-01-the-agent-client-protocol-overview.image-9eab27bf2535.webp
    width: 1600
    height: 2326
  color: '#fcfcfc'
- source: https://www.philschmid.de/static/blog/acp-overview/terminal.png
  original:
    file: 2026-02-01-the-agent-client-protocol-overview.image-e36afb86539d.png
    width: 4960
    height: 4525
  variants:
  - file: 2026-02-01-the-agent-client-protocol-overview.image-a76ef1376194.webp
    width: 320
    height: 292
  - file: 2026-02-01-the-agent-client-protocol-overview.image-eb7a74aacd4d.webp
    width: 640
    height: 584
  - file: 2026-02-01-the-agent-client-protocol-overview.image-c23b3fc6b841.webp
    width: 960
    height: 876
  - file: 2026-02-01-the-agent-client-protocol-overview.image-313fd92908d6.webp
    width: 1280
    height: 1168
  - file: 2026-02-01-the-agent-client-protocol-overview.image-3e8266a74655.webp
    width: 1600
    height: 1460
  - file: 2026-02-01-the-agent-client-protocol-overview.image-cb6e22f7e6f4.webp
    width: 4960
    height: 4525
  color: '#fdfdfe'
- source: https://www.philschmid.de/static/blog/acp-overview/permission.png
  original:
    file: 2026-02-01-the-agent-client-protocol-overview.image-99827d7ec9bf.png
    width: 5862
    height: 2550
  variants:
  - file: 2026-02-01-the-agent-client-protocol-overview.image-5c797127644f.webp
    width: 320
    height: 139
  - file: 2026-02-01-the-agent-client-protocol-overview.image-cbeb94ac6a54.webp
    width: 640
    height: 278
  - file: 2026-02-01-the-agent-client-protocol-overview.image-69862ad62085.webp
    width: 960
    height: 418
  - file: 2026-02-01-the-agent-client-protocol-overview.image-7d00b7108219.webp
    width: 1280
    height: 557
  - file: 2026-02-01-the-agent-client-protocol-overview.image-5cf18d975f98.webp
    width: 1600
    height: 696
  - file: 2026-02-01-the-agent-client-protocol-overview.image-da945922171f.webp
    width: 5862
    height: 2550
  color: '#fdfdfd'
---

With the explosion of AI coding agents—Claude Code, Gemini CLI, OpenCode, Goose, Codex CLI, we've entered an era where every major AI lab ships their own terminal-based coding assistant. But there is one problem. Each agent has its own events or outputs.

The [Agent Client Protocol (ACP)](https://agentclientprotocol.com/get-started/introduction) is an an open standard abstracts the events and outputs of AI agents and provides a common interface for editors to interact with them. Similar to MCP but for agent to client (UI) communication.

ACP is a JSON-RPC 2.0 protocol with a simple premise:

1. **Clients** (editors like Zed, JetBrains or Obsidian) manage the user environment
2. **Agents** (Claude Code, Gemini CLI, OpenClaw (prev. Clawdbot)) Thinking and tool execution
3. They communicate over **stdio** (agent runs as subprocess) or **HTTP** (remote agents)

![acp](https://www.philschmid.de/static/blog/acp-overview/acp.png)

## Protocol Events

| Method                       | Direction      | Purpose                                   |
| ---------------------------- | -------------- | ----------------------------------------- |
| `initialize`                 | Client → Agent | Negotiate protocol version & capabilities |
| `session/new`                | Client → Agent | Create new conversation session           |
| `session/load`               | Client → Agent | Resume existing session                   |
| `session/prompt`             | Client → Agent | Send user message                         |
| `session/set_mode`           | Client → Agent | Switch agent operating mode               |
| `fs/read_text_file`          | Agent → Client | Read file (includes unsaved edits)        |
| `fs/write_text_file`         | Agent → Client | Write/create file                         |
| `terminal/create`            | Agent → Client | Start shell command                       |
| `terminal/output`            | Agent → Client | Get command output                        |
| `terminal/wait_for_exit`     | Agent → Client | Wait for command completion               |
| `terminal/kill`              | Agent → Client | Terminate running command                 |
| `terminal/release`           | Agent → Client | Clean up terminal                         |
| `session/request_permission` | Agent → Client | Request user approval for action          |

### Notifications (One-Way)

| Notification     | Direction      | Purpose                               |
| ---------------- | -------------- | ------------------------------------- |
| `session/update` | Agent → Client | Stream progress, messages, tool calls |
| `session/cancel` | Client → Agent | Abort current operation               |

### Session Update Types

| Update Type             | Description            | Content                    |
| ----------------------- | ---------------------- | -------------------------- |
| `plan`                  | Agent's execution plan | List of steps with status  |
| `agent_message_chunk`   | Streamed text response | Text content block         |
| `user_message_chunk`    | Echo of user input     | Text content block         |
| `thought_message_chunk` | Agent's reasoning      | Text content block         |
| `tool_call`             | New tool invocation    | ID, title, kind, status    |
| `tool_call_update`      | Tool progress/result   | Status change, content     |
| `available_commands`    | Slash commands         | List of available commands |
| `mode_change`           | Mode switch            | New mode info              |

### Tool Call Status Flow

![tool](https://www.philschmid.de/static/blog/acp-overview/tool.png)

## Protocol Flow

### Complete Lifecycle

![protocol](https://www.philschmid.de/static/blog/acp-overview/full.png)

### Terminal Execution Flow

![terminal](https://www.philschmid.de/static/blog/acp-overview/terminal.png)

### Permission Request Flow

![permission](https://www.philschmid.de/static/blog/acp-overview/permission.png)
