Streams a single assistant turn as normalized SSE events with stable turn, message, and part IDs. Emits events: turn.started, turn.status, message.created, message.part.updated, message.completed, session.usage, turn.completed.
When to use this endpoint: Recommended for building custom chat UIs that need real-time streaming progress. This is the primary streaming endpoint for new integrations.
Alternatives:
POST /chat/:id/message — synchronous, returns complete response as JSON (best for server-to-server)API key starting with sk_case_
Chat session ID
Message payload following the AI SDK UIMessage format. The body is passed through 1:1 to the underlying OpenCode session. Currently only text parts are supported.
Message content parts. Currently only "text" type is supported. Additional types (e.g. file, image) may be added in future versions.
Turn-scoped normalized SSE stream
The response is of type string.