use claude_agent_sdk::{ClaudeClient, ClaudeAgentOptions};
use futures::StreamExt;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
println!("🚀 Claude Agent SDK - Auto-Install Example\n");
let options = ClaudeAgentOptions::builder()
.auto_install_cli(true)
.build();
println!("📦 Creating client with auto-install enabled...");
println!(" If Claude CLI is not found, it will be downloaded automatically.\n");
let mut client = ClaudeClient::try_new(options)?;
println!("✅ Client created successfully! (CLI found or installed)\n");
client.connect().await?;
println!("💬 Sending query to Claude...");
client.query("Hello, Claude!").await?;
let mut stream = client.receive_response();
while let Some(message) = stream.next().await {
match message {
Ok(msg) => println!("Received: {:?}", msg),
Err(e) => eprintln!("Error: {}", e),
}
}
Ok(())
}