Crate cc_sdk

Crate cc_sdk 

Source
Expand description

§Claude Code SDK for Rust

A Rust SDK for interacting with the Claude Code CLI, providing both simple query and interactive client interfaces.

§Features

  • Simple Query Interface: One-shot queries with the query function
  • Interactive Client: Stateful conversations with ClaudeSDKClient
  • Streaming Support: Async streaming of responses
  • Type Safety: Strongly typed messages and errors
  • Flexible Configuration: Extensive options for customization

§Quick Start

use cc_sdk::{query, Result};
use futures::StreamExt;

#[tokio::main]
async fn main() -> Result<()> {
    let mut messages = query("What is 2 + 2?", None).await?;
     
    while let Some(msg) = messages.next().await {
        println!("{:?}", msg?);
    }
     
    Ok(())
}

Re-exports§

pub use model_recommendation::ModelRecommendation;
pub use token_tracker::BudgetLimit;
pub use token_tracker::BudgetManager;
pub use token_tracker::BudgetStatus;
pub use token_tracker::TokenUsageTracker;
pub use types::ResultMessage;
pub use types::SystemMessage;

Modules§

model_recommendation
Model selection recommendations for token optimization
prelude
Prelude module for convenient imports
token_tracker
Token usage tracking and budget management
transport
Transport layer abstractions

Macros§

tool
Macro to define a tool with a simple syntax

Structs§

AgentDefinition
Agent definition for programmatic agents
AssistantContent
Assistant content structure for internal use
AssistantMessage
Assistant message content
ClaudeCodeOptions
Configuration options for Claude Code SDK
ClaudeCodeOptionsBuilder
Builder for ClaudeCodeOptions
ClaudeSDKClient
Interactive client for bidirectional communication with Claude
ClaudeSDKClientWorking
Working interactive client
HookContext
Hook context
HookMatcher
Hook matcher configuration
InteractiveClient
Interactive client for stateful conversations with Claude
MessageBatcher
Message batcher for efficient processing
OptimizedClient
Optimized client with improved performance characteristics
PerformanceMetrics
Performance metrics collector
PermissionResultAllow
Permission result - Allow
PermissionResultDeny
Permission result - Deny
PermissionRuleValue
Permission rule value
PermissionUpdate
Permission update
Query
Internal query handler with control protocol support
RetryConfig
Configuration for retry logic
SDKControlInitializeRequest
SDK Control Protocol - Initialize request
SDKControlInterruptRequest
SDK Control Protocol - Interrupt request
SDKControlMcpMessageRequest
SDK Control Protocol - MCP message request
SDKControlPermissionRequest
SDK Control Protocol - Permission request
SDKControlSetPermissionModeRequest
SDK Control Protocol - Set permission mode request
SDKHookCallbackRequest
SDK Hook callback request
SdkMcpServer
SDK MCP Server
SdkMcpServerBuilder
Builder for creating SDK MCP servers
SimpleInteractiveClient
Interactive client for stateful conversations with Claude
TextContent
Text content block
ThinkingContent
Thinking content block
ToolDefinition
Tool definition
ToolInputSchema
Tool input schema definition
ToolPermissionContext
Tool permission context
ToolResult
Tool execution result
ToolResultContent
Tool result content block
ToolUseContent
Tool use content block
UserContent
User content structure for internal use
UserMessage
User message content

Enums§

ClientMode
Client mode for different usage patterns
ContentBlock
Content block types
ContentValue
Content value for tool results
ControlProtocolFormat
Control protocol format for sending messages
ControlRequest
Control request types (legacy, keeping for compatibility)
ControlResponse
Control response types (legacy, keeping for compatibility)
McpServerConfig
MCP (Model Context Protocol) server configuration
Message
Main message type enum
PermissionBehavior
Permission behavior
PermissionMode
Permission mode for tool execution
PermissionResult
Permission result
PermissionUpdateDestination
Permission update destination
PermissionUpdateType
Permission update type
SDKControlRequest
SDK Control Protocol request types
SdkError
Main error type for the Claude Code SDK
SdkToolResultContent
Tool result content types
SettingSource
Setting source for configuration loading
SystemPrompt
System prompt configuration

Traits§

CanUseTool
Tool permission callback trait
HookCallback
Hook callback trait
ToolHandler
Tool handler trait

Functions§

create_simple_tool
Helper function to create a simple text-based tool
query
Query Claude Code for one-shot or unidirectional streaming interactions.

Type Aliases§

ClaudeAgentOptions
Alias for ClaudeCodeOptions (matches Python SDK naming)
ClaudeAgentOptionsBuilder
Alias for ClaudeCodeOptionsBuilder (matches Python SDK naming)
ClaudeSDKClientDefault
Default interactive client - the recommended client for interactive use
Result
Result type alias for SDK operations