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 JSON
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.
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
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§

ClaudeInput
Top-level enum for all possible Claude input messages
ClaudeOutput
Top-level enum for all possible Claude output messages
ContentBlock
Content blocks for messages
ControlRequestPayload
Control request payload variants
ControlResponsePayload
Control response payload
McpServerConfig
MCP Server configuration types
PermissionMode
Permission mode for Claude operations
PermissionResult
Result of a permission decision
ResultSubtype
Result subtypes
ToolResultContent
Tool result content type