Releases: agentclientprotocol/python-sdk
Releases · agentclientprotocol/python-sdk
0.7.0
Highlights
- First official release after joining the agentclientprotocol org.
- Major Pythonic refactor and API polish with help from @frostming; snake_case
naming and schema-driven method generation across the SDK.
What's Changed
- fix: not support 3.14 yet by @yihong0618 in #23
- chore: try to support py314 by @PsiACE in #24
- docs: fix all the broken links after the repo migration by @kemingy in #25
- chore: pin ci with commit hash by @PsiACE in #26
- fix(issue #27): added an optional limit parameter by @PsiACE in #28
- *: polish docs with real use case and add a maker file for typing hint by @PsiACE in #29
- feat: change field names to snake case by @frostming in #31
- chore: switch to using prek by @frostming in #32
- docs: fix a dead link and format md by @yihong0618 in #33
- fix: better make help do not use uv by @yihong0618 in #34
- chore: check the links in ci by @kemingy in #35
- feat: Auto-generate agent/client methods based on the schema by @frostming in #36
- feat: Redesign the APIs to be more intuitive, and make them backward-compatible by @frostming in #37
- fix: backward compatibility for the default behavior of AgentSideConnection by @frostming in #38
- feat: major Python-style refactoring underway, preparing to release version 0.7.x. by @PsiACE in #39
- fix: use classmethod for error factory methods by @frostming in #40
- fix: exclude unneeded files from sdist build by @frostming in #41
- feat: update to unstable schema and metadata by @frostming in #42
- feat: upgrade schema to 0.8.0 by @frostming in #43
- feat: upgrade schema to 0.9.1 by @PsiACE in #44
New Contributors
- @yihong0618 made their first contribution in #23
- @kemingy made their first contribution in #25
- @frostming made their first contribution in #32
Full Changelog: 0.6.3...0.7.0
0.6.3
What's Changed
- feat: improve type annotations in RequestError methods by @2725244134 in #17
- fix: preserve _meta during ACP serialization by @PsiACE in #20
- feat: follow agent-client-protocol 0.6.3 by @PsiACE in #21
New Contributors
- @2725244134 made their first contribution in #17
Full Changelog: 0.6.2...0.6.3
0.6.2
0.5.0
Breaking changes
acp.helpers.embedded_text_resourceandembedded_blob_resourcenow
returnTextResourceContents/BlobResourceContentsrather than the
wrapper class. Wrap those results withhelpers.resource_block(...)
when emitting embedded resources.
Highlights
- Track upstream agent-client-protocol v0.5.0, including support for
AvailableCommandsUpdate,CurrentModeUpdate, session mode metadata,
and raw tool-callrawInput/rawOutputfields across the schema. - Introduce the experimental
acp.contribpackage with
SessionAccumulatorfor stateful UI aggregation,ToolCallTrackerfor
agent-side tool stream management, andPermissionBrokerto standardise
permission prompts. Extensive contrib test coverage ships undertests/ contrib/. - Extend
acp.helperswithupdate_available_commands,
update_current_mode, and richer tool-call builders
(start_read_tool_call,start_edit_tool_call) that populate locations
and raw payloads automatically. - Document the contrib surface in the new
docs/contrib.mdguide and
surface it in the MkDocs navigation. - Improve schema generation tooling with additional rename overrides so
the generated models line up with the Rust/TypeScript SDK naming.
0.4.9
This release brings the SDK close to production readiness — rebuilt with stronger foundations and a clearer developer experience.
Highlights
- Supervised queue/state store for deterministic IO and concurrency.
- Dedicated message routers with Pydantic validation.
- Optional telemetry via Logfire / OpenTelemetry integration.
- New helper builders and subprocess spawners for clean embedding.
- Improved documentation, examples, and test coverage.
Upstream Spec: Regenerated against refs/tags/v0.4.9
What's Changed
- refactor: make routing/sending pipeline better and add optional telemetry by @PsiACE in #9
- refactor: align spec to optimize the development experience by @PsiACE in #10
- chore: bump to 0.4.9 by @PsiACE in #11
Full Changelog: 0.4.5...0.4.9
0.4.5
What's Changed
- Ergonomic type generation with well-planned naming mappings
- Schema type generation accepts version input
- Tracked upstream changes up to 0.4.5
- Prevented receive-loop blocking on callback-dependent requests
Full Changelog: 0.3.0...0.4.5
0.3.0
What's Changed
- Follow: https://github.com/zed-industries/agent-client-protocol/releases/tag/v0.3.0
- Add a acp client for mini-swe-agent
New Contributors
Full Changelog: 0.0.1...0.3.0
Agent Client Protocol (Python) - v0.0.1
A minimal Python SDK for the Agent Client Protocol (ACP). Build agents that talk to ACP clients (e.g. Zed) over stdio.
- Package:
agent-client-protocol(import asacp) - Docs: https://psiace.github.io/agent-client-protocol-python/
Install
pip install agent-client-protocolMinimal agent
import asyncio
from acp import Agent, AgentSideConnection, Client, InitializeRequest, InitializeResponse, PromptRequest, PromptResponse, SessionNotification, stdio_streams, PROTOCOL_VERSION
from acp.schema import ContentBlock1, SessionUpdate2
class EchoAgent(Agent):
def __init__(self, client: Client):
self.client = client
async def initialize(self, _p: InitializeRequest) -> InitializeResponse:
return InitializeResponse(protocolVersion=PROTOCOL_VERSION)
async def prompt(self, p: PromptRequest) -> PromptResponse:
await self.client.sessionUpdate(SessionNotification(
sessionId=p.sessionId,
update=SessionUpdate2(sessionUpdate="agent_message_chunk", content=ContentBlock1(type="text", text="Hello from ACP")),
))
return PromptResponse(stopReason="end_turn")
async def main() -> None:
reader, writer = await stdio_streams()
AgentSideConnection(lambda c: EchoAgent(c), writer, reader)
await asyncio.Event().wait()
if __name__ == "__main__":
asyncio.run(main())Use this executable from your ACP client.
More
- Quickstart: docs/quickstart.md
- Mini SWE Agent bridge: examples/mini_swe_agent/README.md
- Details: docs/mini-swe-agent.md