Illustration of what agent-client-protocol does: A shared protocol so any code editor can talk to any AI coding agent

agentclientprotocol /

agent-client-protocol

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

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.

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.

Commands are copied from the project's README. Read it on GitHub for the full setup.

More in Coding agents & dev tools

    ↑↓ to move, Enter to open, Esc to close