query

Function query 

Source
pub async fn query(
    prompt: impl Into<String>,
    options: Option<ClaudeAgentOptions>,
) -> Result<Vec<Message>>
Expand description

Query Claude Code for one-shot interactions.

This function is ideal for simple, stateless queries where you don’t need bidirectional communication or conversation management.

Note: This function does not support can_use_tool callbacks or hooks. For permission handling or hook support, use [ClaudeClient] instead.

§Errors

Returns an error if:

  • options.can_use_tool is set (use ClaudeClient instead)
  • options.hooks is set (use ClaudeClient instead)
  • Claude CLI cannot be found or started

§Examples

use claude_agent_sdk_rs::{query, Message, ContentBlock};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let messages = query("What is 2 + 2?", None).await?;

    for message in messages {
        match message {
            Message::Assistant(msg) => {
                for block in &msg.message.content {
                    if let ContentBlock::Text(text) = block {
                        println!("Claude: {}", text.text);
                    }
                }
            }
            _ => {}
        }
    }

    Ok(())
}