This is an early release preview. You may encounter bugs.
Agent Client Protocol logo
Unclaimed

Tool interface

Agent Client Protocol

JSON-RPC protocol standardizing how coding agents talk to editors

A 88/100 GitHub score ? This grade is derived from GitHub signals, not user votes. Open for the full breakdown.
Discussion

01 / Summary

About Agent Client Protocol.

The Agent Client Protocol (ACP) gives code editors and coding agents a single way to talk to each other. An editor is the interactive program a person uses to view and change source code, and a coding agent is a program that uses generative AI to modify code on its own. Instead of a bespoke integration per editor and agent pair, both sides implement one protocol.

Messages are JSON-RPC requests, responses, and notifications. A connection opens with an initialize exchange that negotiates a protocolVersion, and the capabilities exchanged in that handshake decide which optional messages each side supports. The current stable protocol version is 1.

Wire compatibility and artifact versions are tracked separately. The Rust crate version and the JSON Schema release versions describe the generated artifacts, so two schema releases can describe the same wire-compatible protocol while organizing, naming, or emitting definitions differently for code generation. Consumers read the negotiated protocolVersion for wire shape and the artifact versions for compatibility with the generated Rust and schema outputs.

The repository root crate, agent-client-protocol-schema, carries the Rust data model for wire messages: request, response, notification, JSON-RPC envelope, and protocol-version types. Implementations in Rust start instead from the higher-level agent-client-protocol runtime crate, which provides the client and agent APIs.

  • JSON-RPC message model: request, response, notification, and envelope types for every protocol exchange
  • Capability negotiation: initialize settles the protocol version, and exchanged capabilities decide which optional messages apply
  • Generated schemas: versioned JSON Schema files under schema/v1 and schema/v2, also attached to schema-v* GitHub releases for SDK generators
  • Rust crates: a schema crate for the protocol types and a separate runtime crate for building agents and clients
  • Official SDKs: Kotlin, Java, Python, Rust, and TypeScript libraries with examples, alongside a list of community libraries

02 / Discussion CREDIBILITY-GATED

Discussion

Reading is open to everyone. Posting and voting need a verified identity or a GitHub grade of B or higher.

  • No discussions yet.

04 / Build

Build with Agent Client Protocol.

Browse the catalog for frameworks, tools, and harnesses, each scored on real GitHub credibility.

Get Agent Client Protocol →

Browse the catalog