Cross-SDK interop matrix
The Java SDK’sintegration-testing suite runs real client and agent processes in each language
against each other, over every transport each one supports, and checks what they print. It’s not part
of the release build (./mvnw verify never runs it); it runs in CI (cross-sdk.yml, nightly and on
demand) and locally via integration-testing/scripts/run-all.sh.
Each framework’s own client is verified too, over HTTP (the one client transport the framework smoke
matrix drives today), except Spring Boot (WebFlux): its smoke cell is agent-only, no client leg yet.
Every framework row above comes from the framework smoke matrix
(
integration-testing/smoke.json), the release gate for the framework integrations, landed at
ffc3b74 and green in CI on every main commit since (most recently run 37263353533, on 57e0b55,
the commit that added the Spring Boot (WebFlux) cells).
It replaces the narrower, hand-written cells an earlier round of this page described.main (master for Kotlin) branch, not a pinned release, so
this matrix reflects an actively moving target on both sides. Each Java-to-peer cell runs 75
catalogue steps (integration-testing/steps.json) covering initialization and capability negotiation, session
lifecycle (new, load, list, resume, close, delete), prompts and streamed updates of every content
type, tool calls and permission requests, file system and terminal operations, elicitation (form and
URL modes), session config options, cancellation (session/cancel and $/cancel_request), and
extension methods; one further step (session.fork) runs separately, since session fork is
@UnstableAcpApi.
The framework cells above are narrower than the peer-SDK cells: a TypeScript client against each
framework’s own sample agent, running the framework smoke matrix’s own step list (initialization and
capability negotiation, session lifecycle, a streamed message, permission requests, form-mode
elicitation, cancellation, one extension method, and connection close, on every transport each
framework serves), not the full 75-step catalogue the peer-SDK cells run.
Feature comparison across the ACP SDKs
How this Java SDK’s 0.80.0 feature set compares to the TypeScript, Python, Rust and Kotlin SDKs, each checked against its own currentmain (master for Kotlin), not a pinned release.
No peer SDK documents all of the rows above; each has its own strengths; Rust’s cancellation and
ordering docs and Python’s web-transport page are both worth reading regardless of which SDK you use.
Checked against: TypeScript SDK commit
605f3e0a (v1.7.0, 2026-10-02); Python SDK commit 9d07d787
(1.0.0rc2, 2026-09-21); Rust SDK commit 65347cfb (v2.2.0, 2026-10-02); Kotlin SDK commit 3af219ae
(v0.32.0, 2026-10-01, branch master). An SDK’s own main moves; re-check before relying on an exact
cell.
Related
What's New
The short form of this page’s interop matrix, in context
ACP Resources
The spec site, the other language SDKs, and the wider ecosystem