# claude_agent_sdk v0.17.1 - Table of Contents

An Elixir SDK for Claude Code - build AI-powered CLI tools with Claude.

## Pages

- Project Overview
  - [Overview](readme.md)

- Foundations
  - [Getting Started](getting-started.md)
  - [Streaming](streaming.md)
  - [Sessions](sessions.md)

- Tooling
  - [Hooks](hooks.md)
  - [MCP Tools](mcp-tools.md)
  - [Permissions](permissions.md)

- Models &amp; Configuration
  - [Configuration](configuration.md)
  - [Configuration Internals](configuration-internals.md)
  - [Model Configuration](model-configuration.md)
  - [Agents](agents.md)

- Operations
  - [Runtime Control](runtime-control.md)

- Quality
  - [Testing](testing.md)
  - [Error Handling](error-handling.md)

- Examples
  - [Examples](examples.md)
  - [Mix Task Chat Example](mix-task-chat-example.md)
  - [Phoenix Chat Example](phoenix-chat-example.md)
  - [Document Generation Example](document-generation-example.md)
  - [Research Agent Example](research-agent-example.md)
  - [Skill Invocation Example](skill-invocation-example.md)
  - [Email Agent Example](email-agent-example.md)

- Reference
  - [Changelog](changelog.md)
  - [License](license.md)

## Modules

- [ClaudeAgentSDK.AbortSignal](ClaudeAgentSDK.AbortSignal.md): Lightweight cancellation token shared with callbacks.
- [ClaudeAgentSDK.Agent](ClaudeAgentSDK.Agent.md): Agent definition for custom agent profiles.
- [ClaudeAgentSDK.AssistantError](ClaudeAgentSDK.AssistantError.md): Enumerates assistant-level error codes surfaced by the Claude CLI.
- [ClaudeAgentSDK.CLI](ClaudeAgentSDK.CLI.md): Claude CLI resolution and version helpers backed by the shared core policy.

- [ClaudeAgentSDK.Errors](ClaudeAgentSDK.Errors.md): Structured error types for programmatic handling.
- [ClaudeAgentSDK.Errors.Guards](ClaudeAgentSDK.Errors.Guards.md): Guard macros for pattern matching SDK errors.
- [ClaudeAgentSDK.Log](ClaudeAgentSDK.Log.md): SDK-scoped logger wrapper with a configurable minimum log level.
- [ClaudeAgentSDK.Permission](ClaudeAgentSDK.Permission.md): Permission System for Claude Agent SDK.
- [ClaudeAgentSDK.Permission.Context](ClaudeAgentSDK.Permission.Context.md): Permission context passed to permission callbacks.
- [ClaudeAgentSDK.Permission.Result](ClaudeAgentSDK.Permission.Result.md): Permission result returned by permission callbacks.
- [ClaudeAgentSDK.Permission.RuleValue](ClaudeAgentSDK.Permission.RuleValue.md): Permission rule value struct.
- [ClaudeAgentSDK.Permission.Update](ClaudeAgentSDK.Permission.Update.md): Permission update types for configuring permissions via the control protocol.
- [ClaudeAgentSDK.Query.CLIStream](ClaudeAgentSDK.Query.CLIStream.md): Streams CLI-only query responses over the shared core transport lane.
- [ClaudeAgentSDK.Query.ClientStream](ClaudeAgentSDK.Query.ClientStream.md): Wraps the `ClaudeAgentSDK.Client` GenServer to provide a Stream interface.
- [ClaudeAgentSDK.Runtime.CLI.ProjectionState](ClaudeAgentSDK.Runtime.CLI.ProjectionState.md): Projection accumulator for the shared Claude CLI runtime lane.

- [ClaudeAgentSDK.Schema.ControlProtocol](ClaudeAgentSDK.Schema.ControlProtocol.md): Claude-owned schema validation for control protocol request and response
frames.

- [ClaudeAgentSDK.Schema.Message](ClaudeAgentSDK.Schema.Message.md): Claude-owned schema validation for raw message frames and streaming events.

- [ClaudeAgentSDK.Schema.Options](ClaudeAgentSDK.Schema.Options.md): Reusable Claude option schemas for JSON object registries and structured
output payloads.

- [ClaudeAgentSDK.Session.History](ClaudeAgentSDK.Session.History.md): Read Claude CLI transcript history from on-disk JSONL files.
- [ClaudeAgentSDK.Session.SessionInfo](ClaudeAgentSDK.Session.SessionInfo.md): Struct representing metadata for a Claude Code session.
- [ClaudeAgentSDK.Session.SessionMessage](ClaudeAgentSDK.Session.SessionMessage.md): Historical user or assistant message reconstructed from a Claude CLI transcript.
- [ClaudeAgentSDK.Streaming.EventAdapter](ClaudeAgentSDK.Streaming.EventAdapter.md): Utilities for working with heterogeneous streaming event/message streams.
- [ClaudeAgentSDK.Streaming.Termination](ClaudeAgentSDK.Streaming.Termination.md): Shared termination logic for streaming sessions.
- [ClaudeAgentSDK.TaskSupervisor](ClaudeAgentSDK.TaskSupervisor.md): Optional Task.Supervisor for supervised callback execution.
- [ClaudeAgentSDK.Tool](ClaudeAgentSDK.Tool.md): Tool definition macro for creating in-process MCP tools.
- [ClaudeAgentSDK.Tool.Registry](ClaudeAgentSDK.Tool.Registry.md): GenServer that manages tool registration and execution for SDK MCP servers.
- [ClaudeAgentSDK.Transport.StreamingRouter](ClaudeAgentSDK.Transport.StreamingRouter.md): Selects streaming transport based on required features.

- Core API
  - [ClaudeAgentSDK](ClaudeAgentSDK.md): An Elixir SDK for Claude Code.
  - [ClaudeAgentSDK.Client](ClaudeAgentSDK.Client.md): Bidirectional client for Claude Code with hooks support.
  - [ClaudeAgentSDK.Orchestrator](ClaudeAgentSDK.Orchestrator.md): Concurrent query orchestration with rate limiting and error recovery.
  - [ClaudeAgentSDK.Query](ClaudeAgentSDK.Query.md): Handles querying Claude Code and processing responses.

- Session
  - [ClaudeAgentSDK.Session](ClaudeAgentSDK.Session.md): Helper functions for working with Claude sessions.
  - [ClaudeAgentSDK.SessionStore](ClaudeAgentSDK.SessionStore.md): Persistent session storage and management.

- Authentication
  - [ClaudeAgentSDK.Auth.Provider](ClaudeAgentSDK.Auth.Provider.md): Multi-provider authentication abstraction.
  - [ClaudeAgentSDK.Auth.Providers.Anthropic](ClaudeAgentSDK.Auth.Providers.Anthropic.md): Anthropic-specific authentication via `claude setup-token`.

  - [ClaudeAgentSDK.Auth.Providers.Bedrock](ClaudeAgentSDK.Auth.Providers.Bedrock.md): AWS Bedrock authentication.
  - [ClaudeAgentSDK.Auth.Providers.Vertex](ClaudeAgentSDK.Auth.Providers.Vertex.md): Google Vertex AI authentication.
  - [ClaudeAgentSDK.Auth.TokenStore](ClaudeAgentSDK.Auth.TokenStore.md): Persistent token storage for authentication.
  - [ClaudeAgentSDK.AuthChecker](ClaudeAgentSDK.AuthChecker.md): Authentication checker and environment validator for Claude Code SDK.
  - [ClaudeAgentSDK.AuthManager](ClaudeAgentSDK.AuthManager.md): Manages authentication tokens for Claude Code SDK.

- Streaming
  - [ClaudeAgentSDK.Runtime.CLI](ClaudeAgentSDK.Runtime.CLI.md): Session-oriented runtime kit for the shared Claude CLI lane.
  - [ClaudeAgentSDK.Streaming](ClaudeAgentSDK.Streaming.md): Bidirectional streaming for interactive Claude conversations.
  - [ClaudeAgentSDK.Streaming.EventParser](ClaudeAgentSDK.Streaming.EventParser.md): Parses streaming events from Claude CLI's `--include-partial-messages` output.
  - [ClaudeAgentSDK.Streaming.Session](ClaudeAgentSDK.Streaming.Session.md): GenServer managing a persistent Claude streaming session.

- Message Handling
  - [ClaudeAgentSDK.ContentExtractor](ClaudeAgentSDK.ContentExtractor.md): Content extraction helper for Claude Code SDK messages.
  - [ClaudeAgentSDK.Message](ClaudeAgentSDK.Message.md): Represents a message from Claude Code CLI.

- Configuration
  - [ClaudeAgentSDK.Config](ClaudeAgentSDK.Config.md): Top-level configuration facade for the SDK.
  - [ClaudeAgentSDK.Config.Auth](ClaudeAgentSDK.Config.Auth.md): Authentication configuration: file paths, TTLs, and token prefixes.
  - [ClaudeAgentSDK.Config.Buffers](ClaudeAgentSDK.Config.Buffers.md): Buffer sizes, batch limits, and display truncation lengths.
  - [ClaudeAgentSDK.Config.CLI](ClaudeAgentSDK.Config.CLI.md): CLI binary discovery, version constraints, and shared flag builders.
  - [ClaudeAgentSDK.Config.Env](ClaudeAgentSDK.Config.Env.md): Canonical registry of all environment variable names the SDK reads.
  - [ClaudeAgentSDK.Config.Orchestration](ClaudeAgentSDK.Config.Orchestration.md): Concurrency limits, retry policies, and orchestrator defaults.
  - [ClaudeAgentSDK.Config.Timeouts](ClaudeAgentSDK.Config.Timeouts.md): Canonical timeout values for the SDK.
  - [ClaudeAgentSDK.Model](ClaudeAgentSDK.Model.md): Core-backed Claude model helpers.

  - [ClaudeAgentSDK.OptionBuilder](ClaudeAgentSDK.OptionBuilder.md): Smart option builder for Claude Code SDK configurations.
  - [ClaudeAgentSDK.Options](ClaudeAgentSDK.Options.md): Configuration options for Claude Code SDK requests.

- Testing
  - [ClaudeAgentSDK.Mock](ClaudeAgentSDK.Mock.md): Mock implementation for the Claude Code CLI for testing purposes.
  - [ClaudeAgentSDK.Mock.Process](ClaudeAgentSDK.Mock.Process.md): Mock process implementation that returns predefined responses instead of spawning a CLI.

- Hooks
  - [ClaudeAgentSDK.Hooks](ClaudeAgentSDK.Hooks.md): Type definitions and utilities for Claude Code Hooks.
  - [ClaudeAgentSDK.Hooks.Matcher](ClaudeAgentSDK.Hooks.Matcher.md): Hook matcher configuration.
  - [ClaudeAgentSDK.Hooks.Output](ClaudeAgentSDK.Hooks.Output.md): Hook output structure and helpers.
  - [ClaudeAgentSDK.Hooks.Registry](ClaudeAgentSDK.Hooks.Registry.md): Hook callback registration and ID management.

- Control Protocol
  - [ClaudeAgentSDK.ControlProtocol.Protocol](ClaudeAgentSDK.ControlProtocol.Protocol.md): Control protocol message encoding and decoding.

- Utilities
  - [ClaudeAgentSDK.DebugMode](ClaudeAgentSDK.DebugMode.md): Comprehensive debugging and diagnostics for Claude Code SDK.
  - [ClaudeAgentSDK.JSON](ClaudeAgentSDK.JSON.md): JSON decoding wrapper for Claude Agent SDK.
  - [ClaudeAgentSDK.Process](ClaudeAgentSDK.Process.md): Claude CLI one-shot query surface backed by the shared command lane.

- Exceptions
  - [ClaudeAgentSDK.Errors.CLIConnectionError](ClaudeAgentSDK.Errors.CLIConnectionError.md): Raised when the SDK fails to connect to the Claude CLI process.
  - [ClaudeAgentSDK.Errors.CLIJSONDecodeError](ClaudeAgentSDK.Errors.CLIJSONDecodeError.md): Raised when the SDK fails to decode JSON output from the CLI.
  - [ClaudeAgentSDK.Errors.CLINotFoundError](ClaudeAgentSDK.Errors.CLINotFoundError.md): Raised when the Claude CLI executable cannot be found.
  - [ClaudeAgentSDK.Errors.ClaudeSDKError](ClaudeAgentSDK.Errors.ClaudeSDKError.md): Base exception for all Claude Agent SDK errors.
  - [ClaudeAgentSDK.Errors.MessageParseError](ClaudeAgentSDK.Errors.MessageParseError.md): Raised when a message from the CLI cannot be parsed into a known type.
  - [ClaudeAgentSDK.Errors.ProcessError](ClaudeAgentSDK.Errors.ProcessError.md): Raised when the Claude CLI process exits with an error.

## Mix Tasks

- Mix Tasks
  - [mix claude.setup_token](Mix.Tasks.Claude.SetupToken.md): Sets up a long-lived authentication token for Claude Code SDK.
  - [mix run.live](Mix.Tasks.Run.Live.md): Runs Elixir scripts against the live Claude API instead of using mocks.
  - [mix showcase](Mix.Tasks.Showcase.md): Run the Claude Code SDK comprehensive showcase.
  - [mix test.live](Mix.Tasks.Test.Live.md): Runs tests against the live Claude API instead of using mocks.

