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
Noneto 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§
- Message
Callback - Optional callback invoked for each message received from the CLI.