say

View as MarkdownOpen in Claude

Deliver typed text into the live call the nonce names, through your send_message callback. Doesn’t consume the nonce, since typing is repeatable for the life of the call, but stops once max_messages_per_call is reached. Only the text is forwarded; no other request field reaches the call. This is what POST /say calls.

Parameters

nonce
strRequired

The nonce registered for the call.

text
strRequired

The text to deliver. Leading and trailing whitespace is stripped; empty text is rejected.

Returns

boolTrue when send_message ran without raising. False when send_message isn’t configured, the nonce is unknown or has no call ID, the text is empty, the message cap is reached, or the callback raised.

Example

if not await handoff.say(nonce, "I'm at the north entrance."):
return {"error": "not found"}, 404
return {"ok": True}

See HandoffRouter for the route this backs.