NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #598 most downloaded on PyPI
Python SDK for Claude Code
Last release 4 days ago
30 Sep 2026
Ships on a steady schedule
a new release about every 9 days
Nearly every release is documented
notes for 59 of the last 60 stable releases
55 versions withdrawn
withdrawn after publishing
1 years old
165 releases · first in 2025
One column per month.
Updated bundled Claude CLI to version 2.1.179
PyPI: https://pypi.org/project/claude-agent-sdk/0.2.103/
pip install claude-agent-sdk==0.2.103
Updated bundled Claude CLI to version 2.1.178
PyPI: https://pypi.org/project/claude-agent-sdk/0.2.102/
pip install claude-agent-sdk==0.2.102
Typed `task_updated` lifecycle events: Exposed terminal system/task_updated events as typed TaskUpdatedMessage with task_id, patch, status, session_id
task_updated lifecycle events: Exposed terminal system/task_updated events as typed TaskUpdatedMessage with task_id, patch, status, session_id, and uuid fields. Consumers tracking active background tasks no longer hang when a task finishes via a task_updated message without a corresponding TaskNotificationMessage. Added TaskUpdatedStatus type and TERMINAL_TASK_STATUSES frozenset for reliable active-task bookkeeping (#1016)PyPI: https://pypi.org/project/claude-agent-sdk/0.2.101/
pip install claude-agent-sdk==0.2.101
Updated bundled Claude CLI to version 2.1.176
PyPI: https://pypi.org/project/claude-agent-sdk/0.2.100/
pip install claude-agent-sdk==0.2.100
Updated bundled Claude CLI to version 2.1.175
PyPI: https://pypi.org/project/claude-agent-sdk/0.2.99/
pip install claude-agent-sdk==0.2.99
Updated bundled Claude CLI to version 2.1.174
PyPI: https://pypi.org/project/claude-agent-sdk/0.2.98/
pip install claude-agent-sdk==0.2.98
Updated bundled Claude CLI to version 2.1.173
PyPI: https://pypi.org/project/claude-agent-sdk/0.2.97/
pip install claude-agent-sdk==0.2.97
Pinned mcp dependency below 2.0.0 to prevent incompatible breaking changes
mcp dependency below 2.0.0 to prevent incompatible breaking changes (#1028)PyPI: https://pypi.org/project/claude-agent-sdk/0.2.96/
pip install claude-agent-sdk==0.2.96
Updated bundled Claude CLI to version 2.1.170
PyPI: https://pypi.org/project/claude-agent-sdk/0.2.95/
pip install claude-agent-sdk==0.2.95
Updated bundled Claude CLI to version 2.1.169
PyPI: https://pypi.org/project/claude-agent-sdk/0.2.94/
pip install claude-agent-sdk==0.2.94
Updated bundled Claude CLI to version 2.1.167
PyPI: https://pypi.org/project/claude-agent-sdk/0.2.93/
pip install claude-agent-sdk==0.2.93
Updated bundled Claude CLI to version 2.1.166
PyPI: https://pypi.org/project/claude-agent-sdk/0.2.92/
pip install claude-agent-sdk==0.2.92
Switched test suite from pytest-asyncio to anyio's pytest plugin, running every async test under both asyncio and trio backends to catch backend-speci
pytest-asyncio to anyio's pytest plugin, running every async test under both asyncio and trio backends to catch backend-specific regressions in CI (#1021)PyPI: https://pypi.org/project/claude-agent-sdk/0.2.91/
pip install claude-agent-sdk==0.2.91
Updated bundled Claude CLI to version 2.1.163
PyPI: https://pypi.org/project/claude-agent-sdk/0.2.90/
pip install claude-agent-sdk==0.2.90
Updated bundled Claude CLI to version 2.1.162
PyPI: https://pypi.org/project/claude-agent-sdk/0.2.89/
pip install claude-agent-sdk==0.2.89
Trio compatibility for session stores: Ported session_store code paths (TranscriptMirrorBatcher, session_resume, sessions) from raw asyncio primitives
session_store code paths (TranscriptMirrorBatcher, session_resume, sessions) from raw asyncio primitives to anyio, fixing a crash (TypeError: trio.run received unrecognized yield message) when passing session_store= to query() or ClaudeSDKClient under trio (#990)test-e2e, test-e2e-docker, test-examples) from static API key to workload identity federation, using short-lived OIDC tokens with automatic refresh (#1018)PyPI: https://pypi.org/project/claude-agent-sdk/0.2.88/
pip install claude-agent-sdk==0.2.88
Updated bundled Claude CLI to version 2.1.150
PyPI: https://pypi.org/project/claude-agent-sdk/0.2.87/
pip install claude-agent-sdk==0.2.87
Updated bundled Claude CLI to version 2.1.149
PyPI: https://pypi.org/project/claude-agent-sdk/0.2.86/
pip install claude-agent-sdk==0.2.86
Updated bundled Claude CLI to version 2.1.148
PyPI: https://pypi.org/project/claude-agent-sdk/0.2.85/
pip install claude-agent-sdk==0.2.85
Updated bundled Claude CLI to version 2.1.147
PyPI: https://pypi.org/project/claude-agent-sdk/0.2.84/
pip install claude-agent-sdk==0.2.84
Updated bundled Claude CLI to version 2.1.146
PyPI: https://pypi.org/project/claude-agent-sdk/0.2.83/
pip install claude-agent-sdk==0.2.83
Bumped mcp dependency lower bound to >=1.23.0 to address GHSA-9h52-p55h-vw2f (CVE-2025-66416), which disables DNS rebinding protection by default in o…
status: "pending" in init until ready. Set MCP_CONNECTION_NONBLOCKING=0 to restore the old behavior of waiting up to 5s before the first query, or mark a server alwaysLoad: true to require it in turn 1.TaskCreate / TaskUpdate / TaskGet / TaskList) instead of TodoWrite. Tool consumers should accumulate by task ID instead of replacing a snapshot list.EffortLevel type export: Added a public EffortLevel type alias for Claude effort string levels ("low", "medium", "high", "max", "xhigh") and exported it from the package root, making it available for downstream SDK wrappers and type annotations (#951)stderr callback that raises an exception would silently terminate the stderr reader loop, dropping all subsequent stderr lines for the rest of the session. Exceptions are now caught per-line so a failing callback does not prevent delivery of later lines (#932)Exception in callback log messages on shutdown when pending eager-flush tasks were cancelled. The done callback now gracefully handles CancelledError instead of unconditionally calling Task.exception() (#931)permission_suggestions type: Replaced list[Any] | None with list[dict[str, Any]] | None on SDKControlPermissionRequest.permission_suggestions, enabling proper type-checking on consumers of that field (#955)hooks dispatch for a given event is concurrent (all matchers fire in parallel), not sequential, preventing incorrect assumptions about ordering-dependent hooks like rate limiters gating subsequent hooks (#956)mcp dependency lower bound to >=1.23.0 to address GHSA-9h52-p55h-vw2f (CVE-2025-66416), which disables DNS rebinding protection by default in older versions (#927)asyncio.sleep(0) yields (#933)PyPI: https://pypi.org/project/claude-agent-sdk/0.2.82/
pip install claude-agent-sdk==0.2.82
Updated bundled Claude CLI to version 2.1.139
PyPI: https://pypi.org/project/claude-agent-sdk/0.1.81/
pip install claude-agent-sdk==0.1.81
Updated bundled Claude CLI to version 2.1.138
PyPI: https://pypi.org/project/claude-agent-sdk/0.1.80/
pip install claude-agent-sdk==0.1.80
Updated bundled Claude CLI to version 2.1.137
PyPI: https://pypi.org/project/claude-agent-sdk/0.1.79/
pip install claude-agent-sdk==0.1.79
Updated bundled Claude CLI to version 2.1.136
PyPI: https://pypi.org/project/claude-agent-sdk/0.1.78/
pip install claude-agent-sdk==0.1.78
Deprecated "Skill" in allowed_tools in favor of the skills option on ClaudeAgentOptions, which provides more granular control over available skills
Command failed with exit code 1 exception raised after an error result with one carrying the result's actual error text (e.g. "Reached maximum number of turns"), matching the TypeScript SDK behavior (#918)"Skill" in allowed_tools in favor of the skills option on ClaudeAgentOptions, which provides more granular control over available skills (#924)PyPI: https://pypi.org/project/claude-agent-sdk/0.1.77/
pip install claude-agent-sdk==0.1.77
API error status on result messages: Added api_error_status: int | None to ResultMessage, surfacing the HTTP status code (e.g. 429, 500, 529) from fai
api_error_status: int | None to ResultMessage, surfacing the HTTP status code (e.g. 429, 500, 529) from failing API calls. This provides a safe-to-log field for classifying API failures when is_error=True (#923)ToolPermissionContext.suggestions containing raw dicts instead of PermissionUpdate instances. Added PermissionUpdate.from_dict() so suggestions from can_use_tool callbacks can be inspected and echoed back in PermissionResultAllow(updated_permissions=...) without AttributeError (#920)PyPI: https://pypi.org/project/claude-agent-sdk/0.1.76/
pip install claude-agent-sdk==0.1.76
Updated bundled Claude CLI to version 2.1.131
PyPI: https://pypi.org/project/claude-agent-sdk/0.1.75/
pip install claude-agent-sdk==0.1.75
Hook event streaming: Added include_hook_events option to ClaudeAgentOptions. When set, hook events (PreToolUse, PostToolUse, Stop, etc.) are emitted
include_hook_events option to ClaudeAgentOptions. When set, hook events (PreToolUse, PostToolUse, Stop, etc.) are emitted by the CLI and yielded from the message stream as HookEventMessage, matching the TypeScript SDK's includeHookEvents (#917)"defer" hook decision in PreToolUseHookSpecificOutput.permissionDecision and new DeferredToolUse dataclass on ResultMessage.deferred_tool_use, bringing parity with the TypeScript SDK's deferred tool use round trip (#865)strict_mcp_config option to ClaudeAgentOptions. When True, the CLI only uses MCP servers passed via mcp_servers, ignoring project, user, and global MCP configurations for fully deterministic server sets (#915)decision_reason, blocked_path, title, display_name, and description fields to ToolPermissionContext, enabling richer permission prompts in can_use_tool callbacks (#909)updatedToolOutput for post-tool hooks: Added updatedToolOutput to PostToolUseHookSpecificOutput for replacing any tool's output before it reaches the model, not just MCP tools (#911)xhigh effort level: Added "xhigh" to the effort Literal on ClaudeAgentOptions and AgentDefinition, an Opus 4.7-specific level that falls back to high on other models (#914)claude processes from leaking (#916)ResourceWarning: Unclosed <MemoryObjectReceiveStream> emitted on ClaudeSDKClient disconnect and query() cleanup by closing the receive stream at the consumer boundary (#908)created_at timestamp: Fixed list_sessions() returning created_at=None for sessions whose first JSONL record lacks a timestamp field by scanning the full head buffer instead of only the first line (#907)can_use_tool fires only on "ask" permission decisions, not on "allow" or "deny" (#912)PyPI: https://pypi.org/project/claude-agent-sdk/0.1.74/
pip install claude-agent-sdk==0.1.74
Eager session store flushing: Added session_store_flush option to ClaudeAgentOptions ("batched" or "eager"). When set to "eager", the transcript mirro
session_store_flush option to ClaudeAgentOptions ("batched" or "eager"). When set to "eager", the transcript mirror delivers frames to SessionStore.append() in near-real-time instead of waiting for the end-of-turn flush, enabling live-tailing UIs, cross-process resume, and crash-durability use cases (#905)PyPI: https://pypi.org/project/claude-agent-sdk/0.1.73/
pip install claude-agent-sdk==0.1.73
Updated bundled Claude CLI to version 2.1.126
PyPI: https://pypi.org/project/claude-agent-sdk/0.1.72/
pip install claude-agent-sdk==0.1.72
Domain allowlist fields for sandbox network config: Added allowedDomains, deniedDomains, allowManagedDomainsOnly, and allowMachLookup fields to Sandbo
allowedDomains, deniedDomains, allowManagedDomainsOnly, and allowMachLookup fields to SandboxNetworkConfig, bringing parity with the TypeScript schema and enabling Python SDK users to configure network allowlists with proper type hints (#893)PyPI: https://pypi.org/project/claude-agent-sdk/0.1.71/
pip install claude-agent-sdk==0.1.71
In-process MCP tool results silently lost with older `mcp` versions: Bumped the mcp dependency floor to >=1.19.0. Older versions mishandled CallToolRe
mcp versions: Bumped the mcp dependency floor to >=1.19.0. Older versions mishandled CallToolResult returns from SDK MCP tool handlers, causing the model to receive a validation-error blob instead of the actual tool output (#891)RuntimeError: Nursery stack corrupted when breaking out of query() iteration inside a trio nursery with options.stderr set. The stderr reader now uses spawn_detached() instead of manually managing a task group, matching the approach already used for the read loop (#885)PyPI: https://pypi.org/project/claude-agent-sdk/0.1.70/
pip install claude-agent-sdk==0.1.70
Added docstrings to ClaudeAgentOptions fields for improved IDE autocompletion and inline documentation
ClaudeAgentOptions fields for improved IDE autocompletion and inline documentation (#873)PyPI: https://pypi.org/project/claude-agent-sdk/0.1.69/
pip install claude-agent-sdk==0.1.69
Updated bundled Claude CLI to version 2.1.119
PyPI: https://pypi.org/project/claude-agent-sdk/0.1.68/
pip install claude-agent-sdk==0.1.68
Trio compatibility restored: Fixed RuntimeError: no running event loop when using ClaudeSDKClient or query() under trio, a regression introduced in v0
RuntimeError: no running event loop when using ClaudeSDKClient or query() under trio, a regression introduced in v0.1.51. Uses sniffio-based dispatch to select the correct async primitive (asyncio.Task vs trio.lowlevel.spawn_system_task) at runtime while preserving the asyncio CPU-spin and cancel-scope fixes from #746 (#870)sniffio>=1.0.0 as an explicit runtime dependency (already a transitive dep of anyio)PyPI: https://pypi.org/project/claude-agent-sdk/0.1.67/
pip install claude-agent-sdk==0.1.67
Updated bundled Claude CLI to version 2.1.119
PyPI: https://pypi.org/project/claude-agent-sdk/0.1.66/
pip install claude-agent-sdk==0.1.66
Batch session summaries: Added SessionStore.list_session_summaries() optional protocol method and fold_session_summary() helper for O(1)-per-session l
SessionStore.list_session_summaries() optional protocol method and fold_session_summary() helper for O(1)-per-session list views. Stores that maintain append-time summary sidecars can now serve list_sessions_from_store() without loading full transcripts, reducing round-trips from N to 1 for N sessions (#847)import_session_to_store() for replaying a local on-disk session into any SessionStore adapter, enabling migration from local storage to remote stores (#858)display field to ThinkingConfig types, forwarded as --thinking-display to the CLI. This lets callers override Opus 4.7's default "omitted" behavior and receive summarized thinking text (#830)ServerToolUseBlock and AdvisorToolResultBlock content block types, surfacing server-executed tool calls (e.g., advisor, web_search) and their results that were previously silently dropped (#836)server_tool_use and advisor_tool_result content blocks being silently dropped by the message parser, which caused messages carrying only server-side tool calls to arrive as empty AssistantMessage(content=[]) (#836)permission_mode docstrings: dontAsk now correctly described as denying unapproved tools (was inverted), and auto clarified as using a model classifier (#863)--debug-to-stderr detection from the transport layer in preparation for CLI flag removal; stderr piping now depends solely on whether a stderr callback is registered (#860)PyPI: https://pypi.org/project/claude-agent-sdk/0.1.65/
pip install claude-agent-sdk==0.1.65
SessionStore adapter: Full SessionStore support at parity with the TypeScript SDK. Includes a SessionStore protocol with 5 methods (append, load, list
SessionStore protocol with 5 methods (append, load, list_sessions, delete, list_subkeys), InMemorySessionStore reference implementation, transcript mirroring via --session-mirror, session resume from store, and 9 new async store-backed helper functions (list_sessions_from_store, get_session_messages_from_store, fork_session_via_store, etc.). Also adds a 13-contract conformance test harness at claude_agent_sdk.testing.run_session_store_conformance for third-party adapter authors (#837)SessionStore adapters under examples/session_stores/ — S3 (JSONL part files, mirrors the TS S3 reference), Redis (RPUSH/LRANGE lists + zset index), and Postgres (asyncpg + jsonb rows). Not shipped in the wheel; users copy the file they need into their project (#842)PyPI: https://pypi.org/project/claude-agent-sdk/0.1.64/
pip install claude-agent-sdk==0.1.64
Updated bundled Claude CLI to version 2.1.114
PyPI: https://pypi.org/project/claude-agent-sdk/0.1.63/
pip install claude-agent-sdk==0.1.63
Top-level `skills` option: Added skills parameter to ClaudeAgentOptions for enabling skills on the main session without manually configuring allowed_t
skills option: Added skills parameter to ClaudeAgentOptions for enabling skills on the main session without manually configuring allowed_tools and setting_sources. Supports "all" for every discovered skill, a list of named skills, or [] to suppress all skills (#804)PyPI: https://pypi.org/project/claude-agent-sdk/0.1.62/
pip install claude-agent-sdk==0.1.62
Updated bundled Claude CLI to version 2.1.112
PyPI: https://pypi.org/project/claude-agent-sdk/0.1.61/
pip install claude-agent-sdk==0.1.61
Subagent transcript helpers: Added list_subagents() and get_subagent_messages() session helpers for reading subagent transcripts, enabling inspection
list_subagents() and get_subagent_messages() session helpers for reading subagent transcripts, enabling inspection of subagent message chains spawned during a session (#825)TRACEPARENT/TRACESTATE) to the CLI subprocess when an OpenTelemetry span is active, connecting SDK and CLI traces end-to-end. Install with pip install claude-agent-sdk[otel] for optional OpenTelemetry support (#821)delete_session() now removes the sibling subagent transcript directory alongside the session file, matching TypeScript SDK behavior (#805)setting_sources=[] being silently dropped (treated as falsy), which caused the CLI to load default settings instead of disabling all filesystem settings. An empty list now correctly passes --setting-sources= to disable all sources (#822)PyPI: https://pypi.org/project/claude-agent-sdk/0.1.60/
pip install claude-agent-sdk==0.1.60
Updated bundled Claude CLI to version 2.1.105
PyPI: https://pypi.org/project/claude-agent-sdk/0.1.59/
pip install claude-agent-sdk==0.1.59
Updated bundled Claude CLI to version 2.1.97
PyPI: https://pypi.org/project/claude-agent-sdk/0.1.58/
pip install claude-agent-sdk==0.1.58
Cross-user prompt caching: Added exclude_dynamic_sections option to SystemPromptPreset, enabling cross-user prompt cache hits by moving per-user dynam
exclude_dynamic_sections option to SystemPromptPreset, enabling cross-user prompt cache hits by moving per-user dynamic sections (working directory, memory, git status) out of the system prompt (#797)"auto" to the PermissionMode type, bringing parity with the TypeScript SDK and CLI v2.1.90+ (#785)thinking={"type": "adaptive"} incorrectly mapping to --max-thinking-tokens 32000 instead of --thinking adaptive. The disabled type similarly now uses --thinking disabled instead of --max-thinking-tokens 0, matching the TypeScript SDK behavior (#796)PyPI: https://pypi.org/project/claude-agent-sdk/0.1.57/
pip install claude-agent-sdk==0.1.57
Updated bundled Claude CLI to version 2.1.92
PyPI: https://pypi.org/project/claude-agent-sdk/0.1.56/
pip install claude-agent-sdk==0.1.56
MCP large tool results: Forward maxResultSizeChars from ToolAnnotations via _meta to bypass Zod annotation stripping in the CLI, fixing silent truncat
maxResultSizeChars from ToolAnnotations via _meta to bypass Zod annotation stripping in the CLI, fixing silent truncation of large MCP tool results (>50K chars) (#756)PyPI: https://pypi.org/project/claude-agent-sdk/0.1.55/
pip install claude-agent-sdk==0.1.55
PyPI: https://pypi.org/project/claude-agent-sdk/0.1.54/
PyPI: https://pypi.org/project/claude-agent-sdk/0.1.54/
pip install claude-agent-sdk==0.1.54
Setting sources flag: Fixed --setting-sources being passed as an empty string when not provided, which caused the CLI to misparse subsequent flags
--setting-sources being passed as an empty string when not provided, which caused the CLI to misparse subsequent flags (#778)query() with a string prompt and hooks/MCP servers that trigger many tool calls, by spawning wait_for_result_and_end_input() as a background task (#780)PyPI: https://pypi.org/project/claude-agent-sdk/0.1.53/
pip install claude-agent-sdk==0.1.53
Context usage: Added get_context_usage() method to ClaudeSDKClient for querying context window usage by category
get_context_usage() method to ClaudeSDKClient for querying context window usage by category (#764)@tool decorator and create_sdk_mcp_server now support typing.Annotated for per-parameter descriptions in JSON Schema (#762)tool_use_id and agent_id in ToolPermissionContext for distinguishing parallel permission requests (#754)session_id option to ClaudeAgentOptions for specifying custom session IDs (#750)connect(prompt="...") silently dropping the string prompt, causing receive_messages() to hang indefinitely (#769)control_cancel_request handling so in-flight hook callbacks are properly cancelled when the CLI abandons them (#751)PyPI: https://pypi.org/project/claude-agent-sdk/0.1.52/
pip install claude-agent-sdk==0.1.52
Session management: Added fork_session(), delete_session(), and offset-based pagination for session listing
fork_session(), delete_session(), and offset-based pagination for session listing (#744)task_budget option for token budget management (#747)--system-prompt-file CLI flag via SystemPromptFile (#591)disallowedTools, maxTurns, and initialPrompt to AgentDefinition (#759)AssistantMessage and ResultMessage for forward compatibility (#718)typing_extensions.TypedDict on Python 3.10 for NotRequired support (#761)errors field to ResultMessage (#749)RuntimeError on async generator cleanup (#746)TypedDict input_schema to proper JSON Schema in SDK MCP tools (#736)initialize_timeout from env var in query() (#743)connect() to avoid blocking async event loops (#722)dontAsk permission mode to types (#719)CLAUDECODE env var from subprocess environment (#732)SIGKILL fallback when SIGTERM handler blocks in close() (#729)resource_link and embedded resource content types in SDK MCP tools (#725)is_error flag from SDK MCP tool results (#717)install.sh fetch on 429 with pipefail + jitter (#708)PyPI: https://pypi.org/project/claude-agent-sdk/0.1.51/
pip install claude-agent-sdk==0.1.51
Session info: Added tag and created_at fields to SDKSessionInfo and new get_session_info() function for retrieving session metadata
tag and created_at fields to SDKSessionInfo and new get_session_info() function for retrieving session metadata (#667)PyPI: https://pypi.org/project/claude-agent-sdk/0.1.50/
pip install claude-agent-sdk==0.1.50
AgentDefinition: Added skills, memory, and mcpServers fields
skills, memory, and mcpServers fields (#684)usage on AssistantMessage (#685)tag_session() with Unicode sanitization (#670)rename_session() (#668)RateLimitEvent message (#648)allowed_tools as a permission allowlist (#649)PyPI: https://pypi.org/project/claude-agent-sdk/0.1.49/
pip install claude-agent-sdk==0.1.49
Fine-grained tool streaming: Fixed include_partial_messages=True not delivering input_json_delta events by enabling the CLAUDE_CODE_ENABLE_FINE_GRAINE
include_partial_messages=True not delivering input_json_delta events by enabling the CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING environment variable in the subprocess. This regression affected versions 0.1.36 through 0.1.47 for users without the server-side feature flag (#644)PyPI: https://pypi.org/project/claude-agent-sdk/0.1.48/
pip install claude-agent-sdk==0.1.48
Updated bundled Claude CLI to version 2.1.70
PyPI: https://pypi.org/project/claude-agent-sdk/0.1.47/
pip install claude-agent-sdk==0.1.47
Session history functions: Added list_sessions() and get_session_messages() top-level functions for retrieving past session data
list_sessions() and get_session_messages() top-level functions for retrieving past session data (#622)add_mcp_server(), remove_mcp_server(), and typed McpServerStatus for runtime MCP server management (#620)TaskStarted, TaskProgress, and TaskNotification message subclasses for better type safety when handling task-related events (#621)stop_reason field to ResultMessage for inspecting why a conversation turn ended (#619)agent_id and agent_type fields to tool-lifecycle hook inputs (PreToolUseHookInput, PostToolUseHookInput, PostToolUseFailureHookInput) (#628)PyPI: https://pypi.org/project/claude-agent-sdk/0.1.46/
pip install claude-agent-sdk==0.1.46
Updated bundled Claude CLI to version 2.1.63
PyPI: https://pypi.org/project/claude-agent-sdk/0.1.45/
pip install claude-agent-sdk==0.1.45
Updated bundled Claude CLI to version 2.1.59
PyPI: https://pypi.org/project/claude-agent-sdk/0.1.44/
pip install claude-agent-sdk==0.1.44
Your coding agent can read these notes before it upgrades. Set up the MCP server →