Expand description
Claude Agent SDK for Rust
Build production-ready AI agents with Claude Code.
§Quick Start
use claude_agent_sdk_rust::{query, ClaudeAgentOptions, Message};
use futures::StreamExt;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let stream = query("What is 2 + 2?", None).await?;
let mut messages = Box::pin(stream);
while let Some(msg) = messages.next().await {
match msg? {
Message::Assistant(assistant) => {
println!("Claude: {:?}", assistant);
}
Message::Result(result) => {
println!("Cost: ${:.4}", result.total_cost_usd.unwrap_or(0.0));
}
_ => {}
}
}
Ok(())
}Re-exports§
pub use callbacks::HookCallback;pub use callbacks::PermissionCallback;pub use client::ClaudeSDKClient;pub use error::ClaudeSDKError;pub use error::Result;pub use types::AgentDefinition;pub use types::AssistantMessage;pub use types::ClaudeAgentOptions;pub use types::ContentBlock;pub use types::Effort;pub use types::HookContext;pub use types::HookEvent;pub use types::HookInput;pub use types::HookOutput;pub use types::Message;pub use types::MessageContent;pub use types::PermissionMode;pub use types::PermissionResult;pub use types::ResultMessage;pub use types::SandboxSettings;pub use types::SdkPluginConfig;pub use types::SettingSource;pub use types::SystemPrompt;pub use types::SystemPromptPreset;pub use types::TextBlock;pub use types::ThinkingConfig;pub use types::ToolPermissionContext;pub use types::ToolUseBlock;pub use types::ToolsOption;pub use types::UserMessage;
Modules§
- callbacks
- Callback infrastructure for hooks and permissions.
- client
- ClaudeSDKClient - Interactive bidirectional client for multi-turn conversations.
- error
- Error types for Claude Agent SDK.
- parser
- Message parser for Claude CLI output.
- query
- Query layer - Control protocol, message routing, and callback management.
- transport
- Transport layer for CLI communication.
- types
- Type definitions for Claude Agent SDK.
Functions§
- query
- Query Claude with a simple prompt.