Migrate from Cloud AI SDK

@assistant-ui/cloud-ai-sdk, the Cloud AI SDK, is deprecated. The last published version keeps working; new work moves to the assistant-ui runtime or builds on the assistant-cloud client directly.

Deprecated

@assistant-ui/cloud-ai-sdk is deprecated and receives no further releases. The last version on npm keeps working against Assistant Cloud, so nothing breaks on upgrade day, but every fix and feature now lands in the paths below.

The Cloud AI SDK wrapped the AI SDK's useChat with cloud threads, persistence and telemetry for apps that did not use assistant-ui. Everything it did on the wire lives in assistant-cloud, which every integration shares, so the package became a second copy of the runtime's cloud glue. Pick one of two paths.

The assistant-ui runtime

useChatRuntime from @assistant-ui/ai-sdk wraps the same AI SDK transport and adds threads, persistence, titles and telemetry through the cloud option. You can use it headless, with the primitives, or with the assistant-ui components; it stores messages in the same ai-sdk/v6 format, so threads written by useCloudChat read back as they are.

Follow the AI SDK guide. Two things differ: the runtime observes the stored message rather than the AI SDK finish event, so it reports no per step finish_reason and cannot tell a dropped connection from a stop, and it records nine engagement events the hook never did.

The client on its own

To keep your own useChat wiring, the pieces useCloudChat was made of are public in assistant-cloud:

PiecePurpose
AssistantCloudThreads, messages, runs, events, scores and files, with anonymous, JWT and API key authentication.
createFormattedPersistence with aiSDKV6FormatAdapter from assistant-cloud/ai-sdkStores AI SDK messages as the cloud expects them and loads them back.
CloudRunReporter with extractAISDKRunTelemetryTurns a finished run's messages into a run report.
CloudEngagementReporterRecords engagement events from your own UI.
generateThreadTitleAsks the project for a title and writes it to the thread.

The package reference lists them, and the hook's last source is a complete worked example of how they fit together.