Ably's changelog
Ably's changelog
ably.com

AI Transport JS SDK v1.0.0

 

New feature

  

In 1.0.0, your application interacts with the Ably channel through the Pub/Sub SDK, and the AI Transport SDK provides the adaptors and decoders that connect AI providers to that channel.

With 1.0.0, you can:

  • Publish AI output with an agent adaptor. vercelAdaptor, openaiAdaptor, and agUiAdaptor publish Vercel AI SDK, OpenAI Responses API, and AG-UI output on a channel you got from your Pub/Sub client, and createAgentAdaptor does the same for a format of your own.
  • Read agent output on the subscription you already have. A client can read an agent's response with channel.subscribe, beside your users' messages and the other messages your application publishes. An agent can join a conversation between people.
  • Use the rest of Pub/Sub on the same channel. Your application sets the channel's options, and can use any Pub/Sub feature on it, such as presence or LiveObjects.
  • Keep the conversation in your database. A client can catch up by rewinding the channel to the last serial your database stored.
  • Act on each event as the agent publishes it. pipeEach yields each event with the serial of the message that holds it, so the agent can store the serial of a finished response.
  • Use useChat with an Ably channel. createChatTransport from @ably/ai-transport/vercel lets you use Ably as the transport for the Vercel AI SDK's useChat hook. With resume: true, a tab that reloads, or opens while a response is streaming, picks up the response from the channel.

The wire format is the same as in 0.11.0, so a 0.11.0 agent and a 1.0.0 client can share a channel.

This release contains a number of breaking changes; see the full release page for details, and the migration guide for how to replace each transport API.

For the full changelog, please visit the GitHub release page.

Ably Pub/Sub Java SDK v2.1.0

 

New feature

  

You can now read and update LiveObjects from the HTTP client, with no realtime connection. This suits server code that needs to inspect or change object state in response to a request, such as seeding a counter or updating a map from a backend job.

LiveObjects over HTTP

Every HTTP channel now has a channel.object property. It is built into the HTTP client, so you don't need the liveobjects plugin to use it.

  • get() returns the channel's objects as typed maps, counters and values. getCompact() returns the same state as plain JSON.
  • publish() applies one or more map and counter operations in a single request.
  • generateObjectId() creates the ID for a new map or counter before you publish it, so you can create an object and refer to it in the same batch.

Each method has an ...Async variant that takes a callback.

For the full changelog, please visit the GitHub release page.

Ably Pub/Sub JS SDK v3.1.0

 

New feature

  

This 3.1.0 release makes it easier to publish from backend workers. If your server publishes from many concurrent jobs, createRealtimeChannelPool lets them share a small, fixed set of connections instead of opening one per job. If you run Temporal workflows, the new Temporal plugin lets workflow code call the Ably HTTP API directly, and retries and replays don't send duplicate messages.

For the full changelog, please visit the GitHub release page.

Ably Kafka Connector v4.2.1

 

Fix

  

The 4.2.1 release upgrades Guava to 33.7.2-jre to address security vulnerability CVE-2026-102554. There are no other changes.

For the full changelog, please visit the GitHub release page.

Monthly active user (MAU) pricing

 

New feature

  

Ably now prices on monthly active users (MAUs). What you pay is set by how many people use your app each month, not by connection minutes, messages or channels. MAU packages are available to new accounts from today, and the Free package covers 500 MAUs. See the pricing page for packages and prices.

Build more, pay the same The price doesn’t change with which products your users use or how much they use them, within the fair usage that comes with every package. Add Chat, LiveObjects, Spaces, push notifications or AI Transport and your bill stays where it was.

How MAUs are counted

  • An MAU is a unique end user of an Ably app in a calendar month, counted once however often they come back. A user is active if they open a realtime connection or make a REST request.

  • Users are identified by clientId. On MAU pricing, all end-user traffic needs one.

  • MAUs are counted per app and added up across your account. Development, staging and test apps all count. Servers aren’t counted as MAUs and don’t need a clientId. The messages, connections and bandwidth they generate still count towards your package’s fair usage.

    If you’re an existing customer Nothing changes unless you want it to. You stay on your current package, limits and terms. If you'd like to switch to MAU pricing, first update to the latest Ably SDK and set a clientId on your end-user connections, so your users are counted correctly. Then opt in from your dashboard at any time. If you have a managed contract, talk to your customer success manager. Read more in the announcement blog post and the migration guide.

Ably Kafka Connector v4.2.0

 

Improvement

  

The 4.2.0 release moves the Ably Kafka Connector onto Ably Pub/Sub Java v2. It replaces io.ably:ably-java 1.6.0 with io.ably.pubsub:server 2.0.0, so the connector publishes as a server.

It also adds the client.endpoint setting. client.rest.host and client.environment are deprecated and now map to the endpoint.

For the full changelog, please visit the GitHub release page.

Ably CLI v2.0.0

 

New feature

  

The 2.0.0 release gets the CLI ready for MAU pricing. The CLI now connects as a server, which isn't counted as an MAU, and acts as one stable client ID that you can see in the "Using:" banner and choose with --client-id. Previously every command connected as a new random client ID, so a single terminal session could look like dozens of users.

The CLI is now built on @ably/pubsub-server 3.0.0, @ably/chat 2.0.0 and @ably/spaces 0.6.0. ably apps rules create now takes a match expression such as chat:*, working the same way as the rules the dashboard creates, and long-running commands exit with a non-zero code when their connection fails.

Please refer to Client Identity for how the CLI chooses its client ID.

For the full changelog, please visit the GitHub release page.

Ably AI Transport JS SDK v0.11.0

 

New feature

  

The 0.11.0 release moves AI Transport onto Ably Pub/Sub JS v3. Create your agent's client from @ably/pubsub-server and your users' clients from @ably/pubsub-device, so each side of the conversation is counted correctly.

It also adds decoders for applications that read the channel through their own Pub/Sub client: createDecoder(codec), or vercelDecoder(), openaiDecoder() and agUiDecoder(), turn the messages you receive into the same deliveries the transport gives.

Every message now carries its codec's name and id, so 0.11.0 doesn't decode messages published by 0.10.0. A 0.10.0 subscriber still decodes what 0.11.0 publishes, so upgrade your subscribers and publishers together.

Please refer to the migration guide for the full details, including a list of all breaking changes and instructions on how to address them.

For the full changelog, please visit the GitHub release page.

Ably Spaces SDK v0.6.0

 

New feature

  

The 0.6.0 release moves the Spaces SDK onto Ably Pub/Sub JS v3, which is split by where your code runs: @ably/pubsub-device for a browser or mobile app, and @ably/pubsub-server for your own infrastructure. The Spaces SDK works with a client from either package, so you install the one that matches your side alongside @ably/spaces.

Spaces clients are now created with createSpacesClient(client) instead of new Spaces(client), and the React SpacesProvider is renamed SpacesClientProvider. Node.js 22 or later is required.

Please refer to the upgrade guide for the full details, including a list of all breaking changes and instructions on how to address them.

For the full changelog, please visit the GitHub release page.

Ably Models SDK v0.1.0

 

New feature

  

The 0.1.0 release moves the Models SDK onto Ably Pub/Sub JS v3. The Models SDK runs on end-user devices, so it works with a client from @ably/pubsub-device, installed alongside @ably-labs/models as a peer dependency.

Models clients are now created with the createModelsClient factory function, the ably option and getter are renamed pubsubClient, and Node.js 22 or later is required.

Please refer to the upgrade guide for the full details, including a list of all breaking changes and instructions on how to address them.

For the full changelog, please visit the GitHub release page.