NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #567 most downloaded on PyPI
The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications.
Last release 11 days ago
15 Sep 2026
Release timing varies
gaps range from 3 weeks to 8 months
Nearly every release is documented
notes for 58 of the last 60 stable releases
4 versions withdrawn
withdrawn after publishing
8 years old
162 releases · first in 2018
Fix race condition with async kernel management #472 (@jtpio)
(GitHub contributors page for this release)
@codecov-io | @davidbrochart | @echarles | @faucct | @jtpio | @welcome
One column per quarter.
Add env variable support for port options #461 (@afshin)
(GitHub contributors page for this release)
@afshin | @codecov-io | @echarles | @jasongrout | @jtpio | @kevin-bates | @vidartf
Ensure jupyter config dir exists #454 (@afshin)
Merged pull requests:
pre_save_hook to cancel save with HTTPError #456 (@minrk)Contributors to this release:
Add Styling to the HTML Pages #452 (@afshin)
Merged pull requests:
argon2-cffi #450 (@afshin)UnboundLocalError in shutdown #444 (@afshin)open_browser from extension applications #433 (@afshin)Contributors to this release:
(GitHub contributors page for this release)
@afshin | @blink1073 | @codecov-io | @jtpio | @kevin-bates | @kiendang | @minrk | @sngyo | @Zsailer
Update README.md #425 (@BobinMathew)
Merged pull requests:
Contributors to this release:
Emit deprecation warning on old name \#411 (fcollonval)
Merged pull requests:
only use deprecated notebook\_dir config if root\_dir is not set \#400 (minrk)
Merged pull requests:
Merged pull requests (includes those from broken 1.2.3 release):
This was a broken release and was yanked from PyPI.
This was a broken release and was yanked from PyPI.
Merged pull requests:
Apply missing ensure\_async to root session handler methods \#386 (kevin-bates)
Merged pull requests:
Enable extensions to set debug and open-browser flags #379 (afshin)
Merged pull requests:
Flip default value for open_browser in extensions #377 (ajbozarth)
Merged pull requests:
Update the link to paths documentation #371 (krassowski)
Merged pull requests:
Culling: ensure last_activity attr exists before use #365 (afshin)
Merged pull requests:
Culling: ensure last_activity attr exists before use #365 (@afshin)
Merged pull requests:
Fix: await possible async dir_exists method #363 (mwakaba2)
Restore pytest plugin from pytest-jupyter \#360 (kevin-bates)
Merged pull requests:
Nothing published for this version
(#359) Backport #340: add check_origin handler to gateway WebSocketChannelsHandler
Pinned to tornado>6.1 and removed asyncio patch for > Python 3.8 on Windows
Pinned to tornado>6.1 and removed asyncio patch for > Python 3.8 on Windows (https://github.com/jupyter-server/jupyter_server/pull/355)
Nothing published for this version
Nothing published for this version
1.0.6 is a security release, fixing one vulnerability:
1.0.6 is a security release, fixing one vulnerability:
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Added a basic, styled login.html template. (220, 295)
login.html template. (220, 295)load_jupyter_server_extension should be renamed to _load_jupyter_server_extension in server extensions. Server now throws a warning when the old name is used. (213)authenticated decorator for handlers. (219)_load_jupyter_server_paths should be renamed to _load_jupyter_server_points in server extensions. (277)static_url_prefix in ExtensionApps is now a configurable trait. (289)extension_name trait was removed in favor of name. (232)config_dir_name trait configurable in ConfigManager. (297)notebook package already imports them. (#210)terminals REST API unit tests that weren't shutting down properly. (221)base_url was being duplicated when getting a url path from the ServerApp. (280)base_url. Previously, all static paths were not. (285)HasTraits. This broke in traitlets 5.0 (294)urlparse with url_path_join to prevent URL squashing issues. (304)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
(#191) Async kernel managment is now possible using the AsyncKernelManager from jupyter_client
AsyncKernelManager from jupyter_clientterminals REST API.ExtensionHandler was changed to an Mixin class, i.e. ExtensionHandlerMixinpytest-plugin for Jupyter Server.
serverapp: a default ServerApp instance that handles setup+teardown.configurable_serverapp: a function that returns a ServerApp instance.fetch: an awaitable function that tests makes requests to the server APIcreate_notebook: a function that writes a notebook to a given temporary file path.ExtensionApp - configurable JupyterApp-subclass for server extensions
extension submodule (#48)
/static/<extension_name> endpoint./static/<extension_name>jupyter serverextension <command> entrypoint has been changed to jupyter server extension <command>.toggle_jupyter_server and validate_jupyter_server function no longer take a Logger object as an argument.root_dir trait in FileContentsManager and MappingKernelManager in ServerApp (#135)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →