agent-client-protocol-schema
A protocol for standardizing communication between code editors and AI coding agents
1.7.0
4.1M downloads/mo
#4966 most downloaded on crates.io
agentclientprotocol/agent-client-protocol
What this package is like to depend on
Last release 3 days ago
20 Aug 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 53 of 53 stable releases
Nothing withdrawn
no release was ever pulled
10 months old
53 releases · first in 2025
53 releases in the last 12 months
see the full history below
Release timeline
53 releases · Oct 2025 to Aug 2026Releases
latest 53-
1.7.020 Aug 2026Release notes
Open source →Added
- (unstable) add session compaction updates (#2002)
- (schema) stabilize terminal authentication (#2000)
- (rust) make schemars optional (#1939)
- (schema) stabilize elicitation (#1779)
Other
Release notes
Open source →Added
- (unstable) add session compaction updates (#2002)
- (schema) stabilize terminal authentication (#2000)
- (rust) make schemars optional (#1939)
- (schema) stabilize elicitation (#1779)
Other
-
1.6.021 Jul 2026 -
1.5.020 Jul 2026Release notes
Open source →Added
- (unstable-v2) add v2 semantic string types (#1742)
- (unstable-v2) rename diff patch payload to text (#1730)
- (unstable-v2) add v2 terminal output surface (#1679)
Fixed
- (unstable-v2) gate v2 auth methods on authMethods (#1728)
- (unstable-v2) Clean up conversion helpers (#1640)
- (schema) remove enum discriminators from invalid schemas (#1612)
Other
- (unstable-v2) clarify idle session semantics (#1729)
Release notes
Open source →Added
- (unstable-v2) add v2 semantic string types (#1742)
- (unstable-v2) rename diff patch payload to text (#1730)
- (unstable-v2) add v2 terminal output surface (#1679)
Fixed
- (unstable-v2) gate v2 auth methods on authMethods (#1728)
- (unstable-v2) Clean up conversion helpers (#1640)
- (schema) remove enum discriminators from invalid schemas (#1612)
Other
- (unstable-v2) clarify idle session semantics (#1729)
-
1.4.006 Jul 2026 -
1.3.006 Jul 2026Release notes
Open source →Added
- (schema) Stabilize boolean session config options (#1604)
- (unstable-v2) tighten v2 field validation (#1587)
- (unstable-v2) New diff format (#1586)
- (unstable-v2) Unify session/load and session/resume (#1584)
- (unstable-v2) require more session methods by default (#1578)
- (unstable-v2) More flexible permission requests (#1577)
- (unstable-v2) Align v2 Content types with the latest MCP spec (#1576)
- (unstable-v2) Unify the ID naming conventions across the schema (#1567)
- (unstable-v2) require typed config values (#1561)
Fixed
- (schema) Reject malformed protocol fields (#1583)
- (unstable) remove URL elicitation error (#1574)
- (unstable-v2) Preserve meta update signals in v2 (#1573)
- (unstable-v2) Continue to make more enums future compatible (#1571)
- (unstable-v2) Make empty MCP arrays optional (#1570)
- (unstable-v2) Make all session lifecycle requests consistent (#1555)
Other
-
1.2.029 Jun 2026Release notes
Open source →Added
- (schema) Stabilize request cancellation (#1549)
- (unstable-v2) use EnvVariable for terminal auth env (#1522)
- (unstable-v2) Require auth logout support (#1520)
- (unstable-v2) Group v2 auth methods under auth/* (#1519)
- (unstable-v2) require v2 implementation info (#1517)
Fixed
- (unstable-v2) allow null auth capabilities (#1539)
- Deserialization leniency part 2 (#1526)
- (unstable-v2) make mcpServers optional in new sessions (#1523)
- (rust) Clean up Protocol version handling (#1515)
Other
-
1.1.024 Jun 2026 -
1.0.024 Jun 2026 -
0.14.018 Jun 2026 -
0.13.818 Jun 2026 -
0.13.716 Jun 2026Release notes
Open source →Added
- (unstable-v2) Add streaming tool-call content in v2 (#1407)
- (unstable-v2) Add v2 whole-message session updates (#1396)
- (unstable-v2) Unify v2 tool call updates (#1390)
- (unstable-v2) Require auth method type discriminator in v2 (#1387)
- (unstable-v2) Nest session-scoped capabilities under session (#1373)
Fixed
- (rust) Preserve JSON object key order (#1393)
- (schema) Add missing _meta fields to protocol schemas (#1440)
- (unstable-v2) Tolerate errors in v1/v2 conversions (#1420)
- (unstable-v2) Clean up old agent auth deserialization (#1388)
Other
- Setup separate publishes for JSON Schemas (#1377)
-
0.13.605 Jun 2026Release notes
Open source →Added
- (schema) Stabilize optional message IDs (#1372)
- (schema) Stabilize session usage updates (#1371)
- (schema) Stabilize session/delete (#1370)
- (unstable-v2) Remove MCP SSE transport and make stdio opt-in (#1368)
- (unstable-v2) Clean up capability objects (#1367)
- (unstable-v2) Require message IDs in v2 chunks (#1352)
- (unstable-v2) Adopt plan_update as v2 plan shape (#1347)
- (unstable-v2) Remove v2 client filesystem and terminal surface (#1346)
Fixed
- (unstable) Fix plan capability key (#1369)
Other
-
0.13.501 Jun 2026Release notes
Open source →Added
- (schema) Experiment annotating lenient deserialize opportunities (#1328)
- Stabilize additionalDirectories for sessions (#1327)
- (unstable) Remove unstable session model API (#1325)
- (unstable-v2) Remove dedicated session modes and models apis from v2 (#1324)
- (unstable) Add v2 enum extension RFD and fallbacks (#1304)
Other
-
0.13.427 May 2026 -
0.13.322 May 2026Release notes
Open source →Added
- Stabilize logout method (#1273)
Fixed
- (unstable) Rename provider method types to singular (#1272)
Other
-
0.13.217 May 2026 -
0.13.116 May 2026 -
0.13.012 May 2026Release notes
Open source → -
0.12.223 Apr 2026 -
0.12.121 Apr 2026Release notes
Open source → -
0.12.017 Apr 2026Release notes
Open source →Added
- (rust-only) Remove unused RPC message schema types (schema.json unchanged) (#1009)
- (rust-only) better tolerate malformed optional fields in deserialization (#1006)
Fixed
- (rpc) preserve '_' prefix for extension methods and reject empty ext (#883)
-
0.11.715 Apr 2026 -
0.11.614 Apr 2026 -
0.11.509 Apr 2026Release notes
Open source →Added
- (unstable) elicitation for session, tool call, and requests (#792)
-
0.11.428 Mar 2026 -
0.11.318 Mar 2026Release notes
Open source →Added
- (unstable) More robust schema for elicitation types (#771)
- (unstable) initial implementation for the logout method capability (#751)
- (rust-only) Add meta getter for AuthMethod enum (#725)
Other
- initial implementation: elicitation (#769)
-
0.11.211 Mar 2026Release notes
Open source →Fixed
- (unstable) Complete session/stop → session/close rename (#724)
Other
- Update ecosystem docs for new clients and libraries (#715)
-
0.11.109 Mar 2026Release notes
Open source →Added
- (unstable) Remove unused auth_methods from Error type (#708)
- Stabilize session/list and session_info_update (#705)
- (unstable) Rename unstable session/stop method to session/close (#701)
- (unstable) Add config option type for boolean on/off toggles (#576)
Other
-
0.11.004 Mar 2026Release notes
Open source →Added
- (unstable) implementation for unstable session/stop (#583)
- (unstable) implement message id rfd (#581)
- (unstable) Initial support for various auth methods (#588)
Fixed
- Align struct naming and documentation (#637)
- remove duplicate word typos across docs and source (#606)
- use impl IntoOption<Meta> for CancelRequestNotification::meta() (#467)
- avoid redundant JSON validation in extension notification decoding (#459)
Other
- Clean up some builder pattern inconsistencies (#635)
- fix incomplete sentence in KillTerminalCommandRequest doc comment (#608)
- (deps) bump the minor group with 2 updates (#563)
- (deps) bump strum from 0.27.2 to 0.28.0 (#564)
- (deps) bump the minor group with 3 updates (#518)
- (deps) bump the minor group with 4 updates (#480)
-
0.10.804 Feb 2026 -
0.10.715 Jan 2026Release notes
Open source →Fixed
- (schema) Add missing titles for enum variants in schema (#384)
- (unstable) Add missing session capabilities builder method (#380)
- (unstable) Add copy to SessionConfigOptionCategory (#368)
Other
-
0.10.609 Jan 2026Release notes
Open source →Added
- (unstable) Add a category to session config options (#366)
- (unstable) Add a request cancelled error constructor (#347)
Fixed
- (error) Add human readable titles for error code variants (#367)
Other
-
0.10.517 Dec 2025Release notes
Open source →Added
- (unstable) Make constructing SessionConfigSelects on the Rust side nicer (#343)
-
0.10.416 Dec 2025 -
0.10.315 Dec 2025 -
0.10.211 Dec 2025 -
0.10.109 Dec 2025Release notes
Open source →Added
- (unstable) Draft implementation of
$/cancel_requestnotification (#303)
Fixed
- (schema) Add title field back (#321)
- (unstable) Draft implementation of
-
0.10.008 Dec 2025Release notes
Open source →This release mostly contains several nice quality-of-life improvements for the Rust version of the schema, as well as an unstable draft implementation of session/fork for people to start trying out.
Added
- (rust-only) More convenient builder method params (#313)
- (unstable) Draft implementation of session/fork (#311)
- (rust-only): Provide nicer interface to
ErrorCodeand add them to the docs (#301)
Fixed
- (rust) Make new methods consistent for all id params (#306)
Other
-
0.9.101 Dec 2025 -
0.9.001 Dec 2025Release notes
Open source →This release defines the
_metaproperties in the schema as intended and currently used, which is always an object of key/value pairs, with string keys and arbitrary values.While this is how everyone is using them, it became clear in code generation that the types weren't quite matching up to the expected usage. This should alleviate some extra checks on the implementer side.
Added
- [breaking] Provide clearer schema for _meta properties (#290)
-
0.8.028 Nov 2025Release notes
Open source →Some follow-up changes from 0.7.0. Most of the changes were in the Rust schema to make things a bit easier to work with.
However, there were some further cleanups to the JSON schema to remove some $ref indirection where possible to have the schema be a bit flatter.
There are also some fixes that were causing issues with code generators related to Extension methods, these now have concrete types in the schema as well.
Rust: There are some breaking changes to the
OutgoingMessagetypes and other low-level RPC types to make them generate clearer JSON schema representations. Likely these are only used by SDKs, but they moved to tuple enum variants.Also, rather than having free-floating
V0andV1constants, these are now associated constants on theProtocolVersiontype itself.Fixed
- Broken doctest and test in CI (#267)
Other
- Remove some nesting of the JSON schema (#278)
- Easier ids in constructors (#275)
- Exhaustive RPC types (#272)
- Easier
newmethods for ExtRequest + ExtNotification (#271) - Protocol Version constants (#270)
- Cleanup Rust example from schema docs (#269)
- Introduce helper methods to get the corresponding method name of a (#268)
-
0.7.025 Nov 2025Release notes
Open source →This is a big release as we move towards a v1.0 release of the JSON Schema.
This should be the final form, we just want to go through the motions of upgrading all of the SDKs to verify no further changes are needed.
NOTE: The Protocol version is already, and remains,
1. This is just for the JSON Schema itself. There are no breaking changes to the protocol, we just reworked the schema representation to be more compliant with code generation tooling for the various SDKs.We also now have two variants of the schema attached to the release:
Stable
- schema.json
- meta.json
Unstable
- schema.unstable.json
- meta.unstable.json
As we have more RFD implementations in progress, this will allow us to iterate on the schema without requiring SDKs to churn through the changes.
For SDK authors, it is important if you use the unstable version, to make sure the unstable features are behind a flag of some kind with clear direction to your users about the state of these features. But this will also allow teams to start testing the unstable features and provide feedback to the RFD authors.
Rust
The Rust crate,
agent-client-protocol-schemahas major breaking changes. All exported type are now marked as#[non_exhaustive]. Since the schema itself is JSON, and we can introduce new fields and variants in a non-breaking way, we wanted to allow for the same behavior in the Rust library.All enum variants are also tuple variants now, with their own structs. This made it nicer to represent in the JSON Schema, and also made sure we have
_metafields on all variants.This upgrade will likely come with a lot of compilation errors, but ideally upgrading will be more painless in the future.
-
0.6.330 Oct 2025Release notes
Open source →Protocol
- Add
discriminatorfields to the schema.json for tagged enums to aid with code generation in language tooling.
- Add
-
0.6.224 Oct 2025 -
0.6.124 Oct 2025 -
0.6.024 Oct 2025Release notes
Open source →Protocol
- Add ability for agents and clients to provide information about their implementation https://github.com/agentclientprotocol/agent-client-protocol/pull/192
-
0.5.023 Oct 2025Release notes
Open source →Protocol
- JSON Schema: More consistent inlining for enum representations to fix issues with code generation in language tooling.
- Provide more schema-level information about JSON-RPC format.
- Provide missing
_metafields on certain enum variants.
Rust
- More consistent enum usage. Enums are always either newtype or struct variants within a single enum, not mixed.
-
0.4.1120 Oct 2025Release notes
Open source →Protocol
- No changes
Rust
- Make id types easier to create and add
PartialEqandEqimpls for as many types as possible.
-
0.4.1016 Oct 2025Release notes
Open source →Protocol
- No changes
Rust
- Export
Resulttype with a default ofacp::Error
-
0.4.913 Oct 2025 -
0.4.813 Oct 2025 -
0.4.713 Oct 2025Release notes
Open source →Protocol
- Schema uploaded to GitHub releases
Rust
- SDK has moved to https://github.com/agentclientprotocol/rust-sdk
- Start publishing schema types to crates.io: https://crates.io/crates/agent-client-protocol-schema
-
0.4.613 Oct 2025Release notes
Open source →Protocol
- No changes
Rust
- Fix: support all valid JSON-RPC ids (int, string, null)