Changes for version 0.14 - 2026-10-16
- Refactor to use Object::Proto
- Speak the Claude Code SDK control protocol
- Run hooks through the CLI
- Answer can_use_tool permission requests through --permission-prompt-tool stdio.
- Serve SDK MCP servers in-process over mcp_message; remove SDKServer and SDKRunner.
- Add options: effort, tools, betas, max_budget_usd, add_dirs, settings, session_id, fallback_model, thinking, include_hook_events, forward_subagent_text, strict_mcp_config, plugins, extra_args, env, stderr, cli_path, enable_file_checkpointing.
- Honour cwd, continue_conversation, include_partial_messages, sandbox and agents.
- Add permission modes auto and manual; drop delegate.
- Parse every stream-json message type; keep the raw hash on each message; add StreamEvent, RateLimitEvent, ToolProgress and HookEvent.
- Client keeps one CLI process per session.
- Add Query methods set_model, set_max_thinking_tokens, mcp_status, get_context_usage, server_info, close and the _async forms.
Modules
Perl SDK for the Claude Agent SDK
Terminal UI utilities for interactive CLI applications
Multi-turn session with the Claude Code CLI
Content block types for Claude Agent SDK
Text content block
Thinking content block
Tool result content block
Tool use content block
Dry-run mode support for Claude Agent SDK
Exception classes for Claude Agent SDK
CLI not found exception
Hook execution exception
JSON parsing exception
Permission denied exception
Process execution exception
Timeout exception
Hook system for Claude Agent SDK
Context passed to hook callbacks
Which tools a set of hook callbacks applies to
Register hook callbacks with the CLI and run them
Build hook callback results
Configurable logging for Claude Agent SDK
MCP (Model Context Protocol) server integration
A remote MCP server reached over streamable HTTP
Header sensitivity utilities for MCP servers
Answer the CLI's MCP requests for an in-process server
A remote MCP server reached over Server-Sent Events
An MCP server that runs inside your process
An external MCP server the CLI starts
A tool served from this process
Message types for Claude Agent SDK
Assistant message type
Base class for message types
Hook lifecycle event
Rate limit status event
Result message type
Partial message event
System message type
Long-running tool progress event
User message type
Configuration options for Claude Agent queries
Permission handling for Claude Agent SDK
Context passed to the can_use_tool callback
Base class for permission results
Permission result that allows a tool
Permission result that denies a tool
One conversation with the Claude Code CLI
Subagent definitions for Claude Agent SDK
Slot types and constructor helpers for Claude::Agent classes
Examples
- examples/01-basic-query.pl
- examples/02-custom-tools.pl
- examples/03-hooks.pl
- examples/04-permissions.pl
- examples/05-async-query.pl
- examples/06-client-session.pl
- examples/07-subagents.pl
- examples/08-structured-output.pl
- examples/09-error-handling.pl
- examples/10-mcp-servers.pl
- examples/11-dry-run.pl
- examples/12-async-tool.pl
- examples/13-async-hook.pl
- examples/14-session.pl
- examples/15-control.pl
- examples/16-streaming.pl