This event is only triggered when you use streaming responses. Non-streaming responses do not fire this event.
Event properties
string
required
Always
'pre:stream:delta'.string
required
Unique identifier for the message being streamed.
string
required
Unique identifier for the conversation thread.
string
required
Unique identifier for the current run.
object
required
The streaming delta chunk containing partial response content.
string
Role of the message sender, for example,
'assistant'.array
Array of content items in the delta chunk. Contains only the incremental content for the current chunk, not the complete message. To suppress delta rendering, set this to an empty array (
[]). The complete message is still rendered with pre:receive and receive events.string
Unique identifier for the content item.
string
Type of the response item, for example,
'text'.string
Text content of the delta item.
Examples
The following example modifies an streaming content:Considerations
Event behavior
- Multiple handlers can be registered and will run in registration order.
- The
delta.contentarray contains only the incremental content for the current chunk, not the complete message. - The
messageobject (when available) accumulates all previous deltas and represents the message state so far.
Use cases
- Content filtering: Remove or redact sensitive information in real-time as it streams.
- Text transformation: Apply formatting or transformations to streaming content.
- Suppress streaming: Disable character-by-character streaming and show only the final message.
- Translation workflows: Suppress deltas and translate the complete message in
pre:receive. - Progress tracking: Monitor streaming progress and display custom loading indicators.
- Analytics: Track streaming performance metrics like chunk size and frequency.
Do you need practical examples?
Learn how to apply the features available for embedded chat into your implementation with guidance and examples.

