use claude_codes::{ClaudeInput, SyncClient};
use std::error::Error;
use uuid::Uuid;
fn main() -> Result<(), Box<dyn Error>> {
env_logger::init();
let mut client = SyncClient::with_defaults()?;
let input = ClaudeInput::user_message("What is 2 + 2?", Uuid::new_v4());
println!("Sending query: What is 2 + 2?");
println!("Waiting for response...\n");
let responses = client.query_stream(input)?;
for (i, response) in responses.enumerate() {
match response {
Ok(output) => {
println!("Response {}: {}", i + 1, output.message_type());
if let claude_codes::ClaudeOutput::Assistant(msg) = &output {
for content in &msg.message.content {
if let claude_codes::io::ContentBlock::Text(text) = content {
println!(" Claude says: {}", text.text);
}
}
}
}
Err(e) => {
eprintln!("Error receiving response: {}", e);
break;
}
}
}
println!("\nClient session complete");
Ok(())
}