Skip to main content

Module io

Module io 

Source
Expand description

Core message types for Claude communication.

This module defines the primary message structures used in the Claude protocol:

§Message Flow

  1. Create a ClaudeInput with your query
  2. Send it to Claude via a client
  3. Receive ClaudeOutput messages in response
  4. Handle different output types (System, Assistant, Result)

§Example

use claude_codes::{ClaudeInput, ClaudeOutput};

// Create an input message
let input = ClaudeInput::user_message("Hello, Claude!", uuid::Uuid::new_v4());

// Parse an output message
let json = r#"{"type":"assistant","message":{"role":"assistant","content":[]}}"#;
match ClaudeOutput::parse_json(json) {
    Ok(output) => println!("Got: {}", output.message_type()),
    Err(e) => eprintln!("Parse error: {}", e),
}

Structs§

AnthropicError
API error message from Anthropic.
AnthropicErrorDetails
Details of an Anthropic API error.
AssistantMessage
Assistant message
AssistantMessageContent
Nested message content for assistant messages
AssistantUsage
Usage information for assistant messages
CacheCreationDetails
Detailed cache creation information
CompactBoundaryMessage
Compact boundary message - marks where context compaction occurred
CompactMetadata
Metadata about context compaction
ControlRequest
Control request from CLI (tool permission requests, hooks, etc.)
ControlRequestMessage
Wrapper for outgoing control requests (includes type tag)
ControlResponse
Control response to CLI
ControlResponseMessage
Wrapper for outgoing control responses (includes type tag)
HookCallbackRequest
Hook callback request
ImageBlock
Image content block (follows Anthropic API structure)
ImageSource
Image source information
InitMessage
Init system message data - sent at session start
InitializeRequest
Initialize request (SDK -> CLI)
McpHttpServerConfig
MCP HTTP server configuration
McpMessageRequest
MCP message request
McpSseServerConfig
MCP SSE server configuration
McpStdioServerConfig
MCP stdio server configuration
MessageContent
Message content with role
ParseError
Error type for parsing failures that preserves the raw input.
Permission
A permission to grant for “remember this decision” functionality.
PermissionDenial
A record of a tool permission that was denied during the session.
PermissionRule
A rule within a permission grant.
PermissionSuggestion
A suggested permission for tool approval.
PluginInfo
Plugin info from the init message
RateLimitEvent
Rate limit event from Claude CLI.
RateLimitInfo
Rate limit status information.
ResultMessage
Result message for completed queries
ServerToolUse
Server tool usage information
StatusMessage
Status system message - sent during operations like context compaction
SystemMessage
System message with metadata
TaskNotificationMessage
task_notification system message — emitted once when a background task completes or fails.
TaskProgressMessage
task_progress system message — emitted periodically as a background agent task executes tools. Not emitted for local_bash tasks.
TaskStartedMessage
task_started system message — emitted once when a background task begins.
TaskUsage
Cumulative usage statistics for a background task.
TextBlock
Text content block
ThinkingBlock
Thinking content block
ToolPermissionRequest
Tool permission request details
ToolResultBlock
Tool result content block
ToolUseBlock
Tool use content block
UsageInfo
Usage information for the request
UserMessage
User message

Enums§

ApiErrorType
Known Anthropic API error types.
ApiKeySource
How the API key was sourced for the session.
ClaudeInput
Top-level enum for all possible Claude input messages
ClaudeOutput
Top-level enum for all possible Claude output messages
CompactionTrigger
What triggered a context compaction.
ContentBlock
Content blocks for messages
ControlRequestPayload
Control request payload variants
ControlResponsePayload
Control response payload
ImageSourceType
Encoding type for image source data.
InitPermissionMode
Permission mode reported in init messages.
McpServerConfig
MCP Server configuration types
MediaType
MIME type for image content.
MessageRole
Known message roles.
OutputStyle
Output formatting style for the session.
OverageDisabledReason
Why overage billing is disabled.
OverageStatus
Whether overage billing was accepted or rejected.
PermissionBehavior
The behavior of a permission rule.
PermissionDestination
Where a permission applies.
PermissionModeName
Named permission modes that can be set via setMode.
PermissionResult
Result of a permission decision
PermissionType
The type of a permission grant.
RateLimitStatus
Current rate limit disposition.
RateLimitWindow
The time window a rate limit applies to.
ResultSubtype
Result subtypes
StatusMessageStatus
Status of an ongoing operation (e.g., context compaction).
StopReason
Reason why the assistant stopped generating.
SystemSubtype
Known system message subtypes.
TaskStatus
Completion status of a background task.
TaskType
The kind of background task.
ToolResultContent
Tool result content type