Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
66d5216
Documentation edits made through Mintlify web editor
mintlify[bot] Jul 21, 2025
13e9479
Add basic Mintlify structure
danilo-leal Jul 21, 2025
5927f96
Test commit
danilo-leal Jul 21, 2025
d15a678
Add some example structure
danilo-leal Jul 21, 2025
73d7213
Add some basic documentation
danilo-leal Jul 21, 2025
b2272cc
Update site config and reorganize documentation
franciskafyi Jul 24, 2025
3fe07a4
Create agent.mdx
franciskafyi Jul 24, 2025
d2b8cf8
Customize the theme json a bit
danilo-leal Jul 25, 2025
342a055
Add README file (content todo)
danilo-leal Jul 25, 2025
42c33b2
Run Prettier
danilo-leal Jul 25, 2025
2f49982
Add README content + custom command for docs
danilo-leal Jul 25, 2025
8c077bc
Merge branch 'main' into mintlify-docs
danilo-leal Jul 25, 2025
31dd4e4
Update introduction.mdx
franciskafyi Aug 1, 2025
c6b4f3b
Update navigation and streamline documentation
franciskafyi Aug 1, 2025
db864ff
update docs
franciskafyi Aug 1, 2025
49cddd6
Merge branch 'main' into mintlify-docs
agu-z Aug 22, 2025
4a30be8
Update sections
agu-z Aug 22, 2025
7dd122e
Move doc files under directories
agu-z Aug 22, 2025
92addad
Add agent and client sections
agu-z Aug 22, 2025
c069b49
Intro + Architecture
ConradIrwin Aug 22, 2025
d942e28
Fix images
ConradIrwin Aug 22, 2025
662c5fa
Document initialization
agu-z Aug 22, 2025
39c1d4e
Link more and fix typos
agu-z Aug 22, 2025
5658ad7
Update protocol outline
agu-z Aug 23, 2025
4d01aa7
Add more outline pages
agu-z Aug 23, 2025
8eae450
Minior tweaks
agu-z Aug 23, 2025
65634e9
Document creating sessions
agu-z Aug 23, 2025
fc0654b
Document loading sessions
agu-z Aug 23, 2025
0c88eaa
Clean up json
agu-z Aug 23, 2025
2c9f9dd
Begin documenting prompt turn
agu-z Aug 23, 2025
75e6a00
Fix tool call schema
agu-z Aug 23, 2025
970c031
Improve tool call step
agu-z Aug 23, 2025
eda2e77
Punctuation and grammar fixes
agu-z Aug 23, 2025
9e13a01
Document cancellation
agu-z Aug 23, 2025
e5e2388
Add plans to the flow
agu-z Aug 23, 2025
4f9e7fd
Use line highlight
agu-z Aug 23, 2025
0331722
Improve descriptions
agu-z Aug 23, 2025
39a0fa8
Remove broken link
agu-z Aug 23, 2025
0e5cba4
Add link to JSON-RPC 2.0 error handling
agu-z Aug 23, 2025
600d446
Replace "the server" with "the Agent"
agu-z Aug 23, 2025
2f78d00
it must, not should
agu-z Aug 23, 2025
ad3b1a6
Remove unnecessary sentence
agu-z Aug 23, 2025
f3df285
Reorder warning
agu-z Aug 23, 2025
d037bd0
Improve cancellation section
agu-z Aug 23, 2025
6f01392
Clarify updates
agu-z Aug 23, 2025
9765f56
Add tentative logos
danilo-leal Aug 24, 2025
1629123
Run Prettier
danilo-leal Aug 24, 2025
f81eee9
Add tentative favicon
danilo-leal Aug 24, 2025
49e625a
Add tiny tweaks to intro
danilo-leal Aug 24, 2025
380bea7
Use more mint components
agu-z Aug 25, 2025
bc08724
Add prompt turn diagram
agu-z Aug 25, 2025
e738777
Add initialize and session setup diagrams
agu-z Aug 25, 2025
6c80428
Simplify session setup diagram
agu-z Aug 25, 2025
30a8e27
Tweak prompt diagram
agu-z Aug 25, 2025
92c92be
Use cards for learn more
agu-z Aug 25, 2025
25945d2
Content page
agu-z Aug 25, 2025
b194d88
Tool call page v1
agu-z Aug 25, 2025
0814c07
Agent Plan v1
agu-z Aug 25, 2025
00d7625
Simplify agent plan
agu-z Aug 25, 2025
228d6cd
Minor agent plan tweaks
agu-z Aug 25, 2025
d568936
Reorganize agent plan
agu-z Aug 25, 2025
7c0d305
Fix json examples
agu-z Aug 25, 2025
8914603
Clean up next steps
agu-z Aug 25, 2025
00816b8
Small tweaks
agu-z Aug 25, 2025
a817b88
Format
agu-z Aug 25, 2025
e1028e7
Fix syntax
agu-z Aug 25, 2025
b2788a5
Merge branch 'main' into mintlify-docs
agu-z Aug 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# ACP Documentation

The ACP documentation uses [Mintlify](https://mintlify.com/).
All files are MDX and can host custom components if there's a need to.

## Running

Run the following command to have the documentation live locally:

```bash
npm run docs
```

## Preview changes locally

To preview the changes locally, run the following command:

```bash
mint dev
```

### Install the CLI

Before running the site locally you need to install Mint's CLI:

```bash
npm i -g mint
```

## Deployment

The documentation site is updated every time changes get to `main`.
10 changes: 10 additions & 0 deletions docs/community/contributing.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
title: "Contributing"
description: "How to participate in the development of ACP"
---

We welcome contributions from the community!

All contributors must adhere to [Zed's Code of Conduct](https://zed.dev/code-of-conduct).

For questions and discussions, please use GitHub Discussions.
4 changes: 4 additions & 0 deletions docs/community/versioning.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
title: "Versioning"
description: "Versioning policy for the Agent Client Protocol"
---
90 changes: 90 additions & 0 deletions docs/docs.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
{
"$schema": "https://mintlify.com/docs.json",
"theme": "maple",
"name": "Agent Client Protocol",
"description": "The Agent Client Protocol (ACP) is a protocol that standardizes communication between code editors.",
"colors": {
"primary": "#0084d1",
"light": "#00bcff",
"dark": "#0084d1"
},
"background": {
"color": {
"light": "#f8f8f6",
"dark": "#100f0f"
}
},
"fonts": {
"heading": {
"family": "Lora",
"format": "woff2"
},
"body": {
"family": "Public Sans",
"format": "woff2"
}
},
"favicon": {
"light": "/logo/fav-light.png",
"dark": "/logo/fav-dark.png"
},
"navbar": {
"links": [
{
"label": "GitHub",
"href": "https://github.com/zed-industries/agent-client-protocol"
},
{
"label": "Zed Industries",
"href": "https://zed.dev"
}
]
},
"navigation": {
"groups": [
{
"group": "Overview",
"pages": ["overview/introduction", "overview/architecture"]
},
{
"group": "Protocol",
"pages": [
"protocol/overview",
"protocol/initialization",
"protocol/session-setup",
"protocol/prompt-turn",
"protocol/content",
"protocol/tool-calls",
"protocol/agent-plan",
"protocol/schema"
]
},
{
"group": "Libraries",
"pages": ["libraries/typescript", "libraries/rust"]
},
{
"group": "Community",
"pages": ["community/contributing", "community/versioning"]
}
]
},
"logo": {
"light": "/logo/light.svg",
"dark": "/logo/dark.svg"
},
"seo": {
"metatags": {
"og:image": "https://raw.githubusercontent.com/modelcontextprotocol/docs/2eb6171ddbfeefde349dc3b8d5e2b87414c26250/images/og-image.png"
},
"indexing": "navigable"
},
"footer": {
"socials": {
"github": "https://github.com/zed-industries/agent-client-protocol"
}
},
"contextual": {
"options": ["copy", "view"]
}
}
Binary file added docs/images/architecture-diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
34 changes: 34 additions & 0 deletions docs/images/mcp-proxy.d2
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
'Code Editor': {near: top-center}

'MCP Proxy': {near: center-left}
# 'MCP Server ...': {
# near: center-right
# style: {
# stroke-dash: 3
# }
# }
" ---------------------------------------------- ": {
style: {
fill: transparent
font-color: transparent
stroke-width: 0
}
}

# Bottom row: Agent
Agent: {near: bottom-center}

# Connections
'Code Editor' -> Agent: MCP Proxy Configuration {
style: {
stroke-dash: 3
}
}

# The agent connects up to the MCP servers
Agent <-> 'MCP Proxy': MCP over stdio {direction: up}
'MCP Proxy' <-> 'Code Editor': MCP over socket {
style: {
stroke-dash: 3
}
}
104 changes: 104 additions & 0 deletions docs/images/mcp-proxy.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
30 changes: 30 additions & 0 deletions docs/images/mcp.d2
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
'Code Editor': {near: top-center}

'MCP Server 1': {near: center-left}
'MCP Server ...': {
near: center-right
style: {
stroke-dash: 3
}
}
" ----------------------- ": {
style: {
fill: transparent
font-color: transparent
stroke-width: 0
}
}

# Bottom row: Agent
Agent: {near: bottom-center}

# Connections
'Code Editor' -> Agent: MCP Configuration {direction: down}

# The agent connects up to the MCP servers
Agent -> 'MCP Server 1': MCP {direction: up}
Agent -> 'MCP Server ...': MCP {
style: {
stroke-dash: 3
}
}
104 changes: 104 additions & 0 deletions docs/images/mcp.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 17 additions & 0 deletions docs/images/server-client.d2
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# file generated by putting this code into https://play.d2lang.com/
# and setting theme to Earth tones
Code Editor -> agent1: stdio
agent1: Agent 1
Code Editor -> agent2: stdio
agent2: Agent 2

Code Editor -> "...": {
style: {
stroke-dash: 3
}
}
"...": {
style: {
stroke-dash: 3
}
}
103 changes: 103 additions & 0 deletions docs/images/server-client.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions docs/libraries/rust.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
title: "Rust"
description: "Rust library for the Agent Client Protocol"
---
4 changes: 4 additions & 0 deletions docs/libraries/typescript.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
title: "TypeScript"
description: "TypeScript library for the Agent Client Protocol"
---
10 changes: 10 additions & 0 deletions docs/logo/dark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/logo/fav-dark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/logo/fav-light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions docs/logo/light.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
34 changes: 34 additions & 0 deletions docs/overview/architecture.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
title: "Architecture"
description: "Overview of the Agent Client Protocol architecture"
---

The Agent Client Protocol defines a standard interface for communication between AI agents and client applications. The architecture is designed to be flexible, extensible, and platform-agnostic.

## Design Philosophy

The protocol architecture follows several key principles:

1. **MCP-friendly**: The protocol is built on JSON-RPC, and re-uses MCP types where possible so that integrators don't need to build yet-another representation for common data types.
2. **UX-first**: It is designed to solve the UX challenges of interacting with AI agents; ensuring there's enough flexibility to render clearly the agents intent, but is no more abstract than it needs to be.
3. **Trusted**: ACP works when you're using a code editor to talk to a model you trust. You still have controls over the agent's tool calls, but the code editor gives the agent access to local files and MCP servers.

## Setup

When the user tries to connect to an agent, the editor boots the agent sub-process on demand, and all communication happens over stdin/stdout.

Each connection can suppport several concurrent sessions, so you can have multiple trains of thought going on at once.

![Server Client setup](../images/server-client.svg)

ACP makes heavy use of JSON-RPC notifications to allow the agent to stream updates to the UI in real-time. It also uses JSON-RPC's bidrectional requests to allow the agent to make requests of the code editor: for example to request permissions for a tool call.

## MCP

Commonly the code editor will have user-configured MCP servers. When forwarding the prompt from the user, it passes configuration for these to the agent. This allows the agent to connect directly to the MCP server.

![MCP Server connection](../images/mcp.svg)

The code editor may itself also wish to export MCP based tools. Instead of trying to run MCP and ACP on the same socket, the code editor can provide its own MCP server as configuration. As agents may only support MCP over stdio, the code editor can provide a small proxy that tunnels requests back to itself:

![MCP connection to self](../images/mcp-proxy.svg)
48 changes: 48 additions & 0 deletions docs/overview/introduction.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
title: "Introduction"
description: "Get started with the Agent Client Protocol (ACP)"
---

The Agent Client Protocol standardizes communication between code editors (IDEs, text-editors, etc.) and coding agents (programs that use generative AI to autonomously modify code).

The protocol is still under development, but it should be complete enough to build interesting user experiences using it.

## Why ACP?

AI coding agents and editors are tightly coupled but interoperability isn't the default. Each editor must build custom integrations for every agent they want to support, and agents must implement editor-specific APIs to reach users.
This creates several problems:

- Integration overhead: Every new agent-editor combination requires custom work
- Limited compatibility: Agents work with only a subset of available editors
- Developer lock-in: Choosing an agent often means accepting their available interfaces

ACP solves this by providing a standardized protocol for agent-editor communication, similar to how the [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) standardized language server integration.

Agents that implement ACP work with any compatible editor. Editors that support ACP gain access to the entire ecosystem of ACP-compatible agents.
This decoupling allows both sides to innovate independently while giving developers the freedom to choose the best tools for their workflow.

## Overview

ACP assumes that the user is primarily in their editor, and wants to reach out and use agents to assist them with specific tasks.

Agents run as sub-processes of the code editor, and communicate using JSON-RPC over stdio. The protocol re-uses the JSON representations used in MCP where possible, but includes custom types for useful agentic coding UX elements, like displaying diffs.

The default format for user-readable text is Markdown, which allows enough flexibility to represent rich formatting without requiring that the code editor is capable of rendering HTML.

## Implementations

Currently ACP is supported by:

### Editors

- [Zed](https://zed.dev)
- [neovim](https://neovim.io) if you install the [CodeCompanion](https://codecompanion.olimorris.dev) plugin.

### Agents

- [Gemini](https://github.com/google-gemini/gemini-cli)
- ... more coming soon ;)

## Further reading

For an overview of the architecture, see the [Architecture](./Architecture) section. For ... TODO
Loading