On this page
Typed event dataclasses for every Claude Code stream output event, including assistant messages, tool use, permissions, and results.
#claudestream.events
| Event Type | Description |
|---|---|
SystemInit | First event in the stream. Contains session metadata. |
ApiRetry | Emitted before retrying a failed API call. |
CompactBoundary | Emitted when conversation history is compacted. |
AssistantMessage | Complete assistant response with content blocks. |
ToolResultMessage | Tool execution results returned to the model. |
AssistantText | Single text block from an assistant message. |
ToolUse | Single tool call from an assistant message. |
Thinking | Single thinking block from an assistant message. |
ToolResult | Single tool result. |
FileWrite | Derived event emitted when a Write tool succeeds. Contains absolute path and content length. |
FileEdit | Derived event emitted when an Edit or MultiEdit tool succeeds. Contains absolute path. |
StreamDelta | Partial streaming token. Wraps a raw API streaming event. |
Result | Final event in a turn. Contains cost and usage summary. |
BudgetThreshold | Fired when a budget threshold is crossed. Informational only -- does not stop the session. |
RateLimit | Rate limit status change. |
PermissionRequest | Permission request from Claude Code. Surfaced when sandbox doesn't auto-resolve. |
UserDialogRequest | Blocking user dialog the CLI asks the host to render (e.g. AskUserQuestion). Always surfaced to the consumer; never auto-handled by the sandbox. |
McpRequest | MCP tool call request from Claude Code. |
HookEvent | Hook lifecycle event from Claude Code (emitted when include_hook_events is True). |
UnknownEvent | Forward-compatible event for unrecognized event types. |
ControlResponse | Response to a control request (e.g. initialize, mcp_set_servers). |
#claudestream.events
Typed event dataclasses for every Claude Code stream output event, including assistant messages, tool use, permissions, and results.
#Event
Base class for all stream events.
#SystemInit
First event in the stream. Contains session metadata.
#ApiRetry
Emitted before retrying a failed API call.
#CompactBoundary
Emitted when conversation history is compacted.
#TextBlock
A text content block from an assistant message.
#ToolUseBlock
A tool use content block from an assistant message.
#ThinkingBlock
An extended thinking content block from an assistant message.
#ToolResultBlock
A tool result content block from a tool result message.
#Usage
Token usage statistics. Semantics depend on context: per-call in AssistantMessage, cumulative across the session in Result.
#ContextCategory
One category of the model's context window (e.g. system prompt, messages, tools).
#ContextUsage
Snapshot of the model's context-window usage, returned by get_context_usage().
#AssistantMessage
Complete assistant response with content blocks.
#ToolResultMessage
Tool execution results returned to the model.
#AssistantText
Single text block from an assistant message.
#ToolUse
Single tool call from an assistant message.
#Thinking
Single thinking block from an assistant message.
#ToolResult
Single tool result.
#FileWrite
Derived event emitted when a Write tool succeeds. Contains absolute path and content length.
#FileEdit
Derived event emitted when an Edit or MultiEdit tool succeeds. Contains absolute path.
#StreamDelta
Partial streaming token. Wraps a raw API streaming event.
#delta_type
def delta_type(self) -> str | NoneReturns 'text_delta', 'input_json_delta', etc.
#text
def text(self) -> str | NoneReturns text content for text_delta events.
#partial_json
def partial_json(self) -> str | NoneReturns partial JSON for input_json_delta events.
#event_type
def event_type(self) -> str | NoneReturns the streaming event type (message_start, content_block_delta, etc.).
#Result
Final event in a turn. Contains cost and usage summary.
#BudgetThreshold
Fired when a budget threshold is crossed. Informational only -- does not stop the session.
#RateLimit
Rate limit status change.
#PermissionRequest
Permission request from Claude Code. Surfaced when sandbox doesn't auto-resolve.
#UserDialogRequest
Blocking user dialog the CLI asks the host to render (e.g. AskUserQuestion). Always surfaced to the consumer; never auto-handled by the sandbox.
#McpRequest
MCP tool call request from Claude Code.
#HookEvent
Hook lifecycle event from Claude Code (emitted when include_hook_events is True).
#UnknownEvent
Forward-compatible event for unrecognized event types.
#ControlResponse
Response to a control request (e.g. initialize, mcp_set_servers).
#AskResult
Complete response from a single ask() call.
#Type Aliases
ContentBlock is a union of the 4 content block types (TextBlock | ToolUseBlock | ThinkingBlock | ToolResultBlock) and serves as the element type of AssistantMessage.content. Each block carries typed data from one segment of an assistant response, and the union lets consumers use isinstance checks or pattern matching to dispatch on block kind without casting.