Expand description
§Agent Client Protocol Schema
Strongly-typed Rust definitions of the Agent Client Protocol (ACP) wire format. ACP is a JSON-RPC based protocol that standardizes communication between code editors (IDEs, text-editors, etc.) and coding agents (programs that use generative AI to autonomously modify code).
This crate is only the schema: the request, response, and
notification types, plus serde plumbing and JSON Schema generation. For
the runtime pieces (transport, connection setup, the Agent / Client
traits, etc.) use the higher-level agent-client-protocol crate, which
builds on top of these types.
§What’s in this crate
- Versioned wire-format types for every ACP method: request, response, and
notification structs grouped by which side handles them, currently under
the
v1module. - JSON-RPC envelope and routing types:
v1::JsonRpcMessage,rpc::JsonRpcBatch,v1::Request,v1::Response,v1::Notification,v1::RequestId,v1::Error. - Aggregated routing enums:
v1::AgentRequest,v1::AgentResponse,v1::AgentNotification, and the matching client-side trio used by SDK crates to dispatch incoming JSON-RPC messages.
§Versioning
Stable protocol types are exposed through explicit version modules. For
example, use agent_client_protocol_schema::v1::SessionId for ACP protocol
version 1 types.
For the complete protocol specification and documentation, visit https://agentclientprotocol.com.
Modules§
- rpc
- JSON-RPC envelope types shared by ACP clients and agents.
- v1
- Agent Client Protocol version 1 types.
- v2
unstable_protocol_v2 - Agent Client Protocol version 2 draft types.
Structs§
- Protocol
Version - Protocol version identifier.
Enums§
- Maybe
Undefined - Similar to
Option, but it has three states,undefined,nullandx.
Traits§
- Into
Maybe Undefined - Utility trait for builder methods for optional values.
This allows the caller to either pass in the value itself without wrapping it in
Some, or to just pass in an Option if that is what they have, or set it back to undefined. - Into
Option - Utility trait for builder methods for optional values.
This allows the caller to either pass in the value itself without wrapping it in
Some, or to just pass in an Option if that is what they have.
