Skip to main content

Module callback

Module callback 

Source
Expand description

Message callback — a simple observe/filter hook for SDK consumers.

The MessageCallback is invoked for each Message received from the CLI. It can:

  • Observe messages (return Some(msg) unchanged)
  • Transform messages (return Some(modified_msg))
  • Filter messages (return None to suppress)

This is a lightweight SDK-level hook for message observation and filtering.

§Example

use std::sync::Arc;
use claude_cli_sdk::callback::MessageCallback;
use claude_cli_sdk::Message;

// Log all messages, pass them through unchanged:
let logger: MessageCallback = Arc::new(|msg: Message| {
    eprintln!("received: {msg:?}");
    Some(msg)
});

// Filter out system messages:
let filter: MessageCallback = Arc::new(|msg: Message| {
    match &msg {
        Message::System(_) => None,
        _ => Some(msg),
    }
});

Functions§

apply_callback
Apply a message callback to a message, or pass through if no callback is set.

Type Aliases§

MessageCallback
Optional callback invoked for each message received from the CLI.