# agent-client-protocol

> A shared protocol so any code editor can talk to any AI coding agent

- Repository: https://github.com/agentclientprotocol/agent-client-protocol
- Category: Coding agents & dev tools
- Stars: 4,485 · Forks: 447 · Language: Rust · License: Apache-2.0
- Experience: Advanced
- Page: https://ir.adyog.com/repos/agentclientprotocol/agent-client-protocol/

Code editors and AI coding agents usually need a custom integration for each pairing. ACP is a protocol that standardizes the messages between them, so an editor that speaks ACP can work with any agent that speaks it.

This repository holds the protocol's definitions rather than a finished app. The root Rust crate, agent-client-protocol-schema, models the wire messages: requests, responses, notifications and JSON-RPC envelopes. Generated JSON Schema files for versions 1 and 2 are included, and SDK generators can use them to produce client code.

Compatibility is negotiated at runtime. The two sides exchange a protocolVersion during initialize (the current stable version is 1), then use declared capabilities to learn which optional features each supports. The README warns against inferring wire compatibility from the crate or schema release number.

## What it does

- **Rust schema crate**: Provides Rust types for ACP messages, including request, response, notification, JSON-RPC envelope and protocol-version types.
- **Versioned JSON Schema**: Generated schema files live in schema/v1 and schema/v2. They are also attached to schema-v* GitHub releases for SDK generators.
- **Version and capability negotiation**: Client and agent agree on a protocol version at initialize, then use capabilities to decide which optional messages and features to use.
- **Official SDKs**: Libraries exist for Kotlin, Java, Python, Rust and TypeScript, each with examples. Community libraries are linked too.

## What you could build

- Build a code editor that can connect to many different coding agents.
- Write a coding agent that works in any editor that supports ACP.
- Generate a client library for a new language from the JSON Schema files.
- Use the Rust schema types to build tooling that reads or validates ACP messages.

## Who it's for

Suited to developers building editors, coding agents or protocol tooling. You should know JSON-RPC basics and one of the supported SDK languages.

## Get started

The README gives no install commands. If you are writing a Rust agent or client, start with the higher-level agent-client-protocol runtime crate. Otherwise pick an SDK for your language or download the JSON Schema from the releases.



Tags: protocol, coding-agents, editors, json-schema, rust
