use claude_agents_sdk::{query, ClaudeAgentOptions, Message};
use tokio_stream::StreamExt;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
tracing_subscriber::fmt::init();
println!("Sending query to Claude...\n");
let options = ClaudeAgentOptions::new()
.with_max_turns(3)
.with_system_prompt("You are a helpful assistant. Be concise.");
let mut stream = query("What is the capital of France?", Some(options), None).await?;
while let Some(message) = stream.next().await {
match message? {
Message::Assistant(msg) => {
print!("{}", msg.text());
}
Message::Result(result) => {
println!("\n\n---");
println!("Completed in {}ms", result.duration_ms);
println!("Turns: {}", result.num_turns);
if let Some(cost) = result.total_cost_usd {
println!("Cost: ${:.4}", cost);
}
}
_ => {}
}
}
Ok(())
}