Skip to main content

query

Function query 

Source
pub async fn query(
    prompt: InputPrompt,
    options: Option<ClaudeAgentOptions>,
    transport: Option<Box<dyn Transport>>,
) -> Result<Vec<Message>>
Expand description

Sends a one-off query to Claude Code and returns all response messages.

This is the simplest entry point for interacting with Claude Code. It handles the full lifecycle: connecting, initializing, sending the prompt, collecting all messages, and disconnecting.

§Arguments

§Returns

A Vec<Message> containing all messages from the interaction, including user echoes, assistant responses, system messages, and the final result.

§Example

    let messages = query(
    InputPrompt::Text("Explain Rust ownership".to_string()),
    Some(ClaudeAgentOptions {
        permission_mode: Some(PermissionMode::BypassPermissions),
        max_turns: Some(1),
        ..Default::default()
    }),
    None,
    ).await?;

    for msg in &messages {
    if let Message::Result(result) = msg {
        println!("Cost: ${:.4}", result.total_cost_usd.unwrap_or(0.0));
    }
    }