v3.2.0#

Published on September 3, 2026.

Summary#

Jupyter AI v3.2.0 refactors the entire stack to make real-time collaboration (RTC) optional, and removes jupyter-server-documents (JSD) as a required dependency. The default distribution (jupyter-ai) will no longer require RTC moving forwards. AI personas are still able to edit, run, and debug notebooks in real-time, with or without RTC.

This release is largely a refactor that fixes the various bugs reported by users and admins following the v3.0 official release, many of which have been tied to JSD and its RTC implementation. Aside from a more reliable and stable experience, user-facing changes are intended to be minimal.

Jupyter AI will continue to support RTC as an optional integration point, with either jupyter-collaboration or JSD. Users interested in using Jupyter AI with RTC should install one of the two new optional dependency groups:

  • jupyter-ai[rtc] - jupyter-ai with jupyter-collaboration

  • jupyter-ai[rtc-jsd] - jupyter-ai with jupyter-server-documents

New jupyter-live-content#

A new package, jupyter-live-content, has been introduced to update the UI in response to file changes on disk. Agent edits to .py and .md files, for example, are always immediately reflected in the browser, even without RTC. This fixes a real gap in the default JupyterLab experience, and we will work with other maintainers to upstream this project.

This extension is automatically disabled when RTC is installed and enabled, since this capability is already provided by RTC.

Two caveats worth mentioning:

  1. Notebooks are not updated in real time when their contents change on disk. Supporting this reliably requires a robust design that needs more review and testing.

  2. Scroll position is lost when the file UI refreshes. We are aware of this usability issue and will work to address it in subsequent releases.

Note that agents and AI personas in the Jupyter AI chat panel are still able to edit and run notebooks in real-time. This is described in more detail below.

Refactored chat backend#

This release upgrades to Jupyter Chat v0.25.0, which also removes its dependency on RTC. It now ships its own WebSocket protocol that is used when RTC is not installed in the environment. Thank you @brichet for building the initial implementation and testing all of the subsequent changes on short notice!

When RTC is installed and enabled, the server extension falls back to the original YChat implementation used before v3.2.0. We are still exploring whether having two different server-side chat models is necessary moving forwards.

Refactored tools#

The MCP tools provided by Jupyter AI have all been refactored to work without RTC. AI personas are still able to edit, run, and debug notebooks in real-time without RTC by calling JupyterLab frontend commands provided by jupyterlab-ai-commands. This is the same set of tools used in Jupyterlite AI.

When RTC is installed and enabled, the tools fall back to the original implementation that relied on RTC APIs, used before v3.2.0.

We have also fixed a major bug where tool calls powered by JupyterLab frontend commands were run on all browsers connected to the server. This has now been fixed, and tool calls that run JupyterLab frontend commands are only run on the browser which sent the message triggering them.

Thank you#

Thank you to everyone who helped report bugs, review proposals, test pre-releases, fix bugs, refactor code, and share feedback! This release would not have been possible without the support of the community.

Full changelog#

jupyter-chat#

Upgraded from v0.23.2 β†’ v0.25.0. (See full changelog)

API and Breaking Changes#

Enhancements made#

Bugs fixed#

  • Drop the re-broadcast required for writing status in WS chat #534 (@dlqqq)

  • Set ready after load complete #532 (@brichet, @dlqqq)

  • Push user and metadata updates to WS chat clients #531 (@dlqqq)

  • Adopt synced document id under RTC instead of minting a new one #528 (@dlqqq)

  • Fix LabChatModel.id returning undefined due to shadowed accessor #527 (@dlqqq)

  • fix: avoid background tasks for synchronous YChat updates #521 (@uuzzrm, @dlqqq)

  • Require User to be a dataclass in backend #518 (@dlqqq)

  • Return typed attachments from YChat.get_attachments() #515 (@bhavana-nair, @dlqqq)

  • Trigger a rerender of the message when the mime model only is updated #506 (@brichet, @dlqqq)

  • Allow bot users to send empty messages in the frontend #500 (@brichet, @dlqqq)

  • Explicitly request file/directory content from the contents manager #484 (@brichet, @dlqqq)

Maintenance and upkeep improvements#

Other merged PRs#

  • Bump the npm_and_yarn group across 2 directories with 1 update #482 (@brichet)

jupyter-ai-router#

Upgraded from v0.0.7 β†’ v0.1.1. (See full changelog)

Enhancements made#

Maintenance and upkeep improvements#

  • Bump to Jupyter Chat v0.25.0 official #54 (@dlqqq)

  • Bump jupyterlab-chat to v0.25.0rc0 #52 (@dlqqq)

Other merged PRs#

  • Group Dependabot npm updates into a single PR #49 (@srdas)

jupyter-ai-persona-manager#

Upgraded from v0.1.2 β†’ v0.2.0. (See full changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

  • Prep official release #157 (@dlqqq)

  • Remove jupyterlab-eventlistener #149 (@dlqqq)

  • Add E2E test verifying persona name and avatar appear #146 (@dlqqq)

  • Use chat IDs, drop room IDs and file IDs #135 (@dlqqq)

  • Bump jupyterlab_chat floor to >=0.25.0a2 #131 (@dlqqq)

Other merged PRs#

  • Group Dependabot npm updates into a single PR #120 (@srdas, @dlqqq)

  • Pin jupyter_collaboration <5 in CI to work around a 5.0.0 regression #119 (@srdas, @dlqqq)

jupyter-ai-acp-client#

Upgraded from v0.2.1 β†’ v0.3.0. (See full changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Other merged PRs#

  • Bump the npm-security-updates group across 1 directory with 3 updates #179 (@dlqqq)

  • Bump the npm-security-updates group across 1 directory with 21 updates #176 (@dlqqq)

  • Bump the npm-security-updates-ui-tests group across 1 directory with 6 updates #175 (@dlqqq)

  • Group Dependabot npm security updates into a single PR #174 (@srdas)

jupyter-server-mcp#

Upgraded from v0.2.1 β†’ v0.3.0. (See full changelog)

Enhancements made#

Other merged PRs#

  • Add fastmcp<4 version ceiling #30 (@dlqqq)

  • Enable Host/Origin protection by default #28 (@dlqqq)

  • Route frontend commands to the web client that triggered them #27 (@dlqqq)

jupyter-ai-tools#

Upgraded from v0.6.1 β†’ v0.7.0. (See full changelog)

Enhancements made#

  • RTC-free tool implementations via jupyterlab-ai-commands #38 (@dlqqq)

Maintenance and upkeep improvements#

  • Bump to jupyterlab-ai-commands>=0.4.0 #42 (@dlqqq)

  • Add E2E test matrix covering the existing toolkit #37 (@dlqqq)

  • Remove unused file_system and code_execution toolkits #36 (@dlqqq, @Zsailer)

Other merged PRs#

  • Read the live notebook model when RTC-free #41 (@dlqqq)

jupyterlab-commands-toolkit#

Upgraded from v0.1.6 β†’ v0.2.0. (See full changelog)

Enhancements made#

  • Route frontend commands to a specific web client #29 (@dlqqq)

Maintenance and upkeep improvements#

  • Remove jupyterlab-eventlistener #30 (@dlqqq)

jupyter-ai-litellm#

Upgraded from v0.0.3 β†’ v0.1.0. (See full changelog)

Note

This is an optional package, installed only with the corresponding jupyter-ai extra.

Maintenance and upkeep improvements#

jupyter-ai-jupyternaut#

Upgraded from v0.1.0b1 β†’ v0.1.0rc0. (See full changelog)

Note

This is an optional package, installed only with the corresponding jupyter-ai extra.

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

  • Require Python >=3.11 and jupyter-ai-litellm>=0.1.0 #113 (@dlqqq)

Other merged PRs#

  • Bump the npm-security-updates group across 1 directory with 3 updates #114 (@dlqqq)

  • Bump fast-uri from 3.1.5 to 3.1.7 in /ui-tests #112 (@dlqqq)

  • Bump the npm-security-updates group across 1 directory with 7 updates #109 (@dlqqq)

Unchanged subpackages#

The following subpackages did not advance their version floor in this release:

  • jupyter-ai-chat-commands (v0.0.4)

  • jupyter-ai-magic-commands (v0.0.4)

  • jupyter-server-documents (v0.3.3)

  • jupyterlab-notebook-awareness (v0.2.0)