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 10 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
\[Gateway\] Fix and deprecate env whitelist handling #979 (@kevin-bates)
cwd_for_path method #1046 (@divyansshhh)ports_changed on the multi-kernel-manager instead of the kernel manager #1088 (@Zsailer)terminado_settings #949 (@krassowski)api/contents requests for an allowed copy #939 (@kiersten-stokes)api/contents endpoint with no body #937 (@kiersten-stokes)get_kernel_path for AsyncFileManagers. #929 (@thetorpedodog)(GitHub contributors page for this release)
@3coins | @a3626a | @akshaychitneni | @blink1073 | @bloomsa | @Carreau | @CiprianAnton | @codecov | @codecov-commenter | @danielyahn | @davidbrochart | @dependabot | @divyansshhh | @dlqqq | @echarles | @ellisonbg | @epignot | @fcollonval | @hbcarlos | @jiajunjie | @kevin-bates | @kiersten-stokes | @krassowski | @meeseeksdev | @minrk | @ofek | @oliver-sanders | @pre-commit-ci | @razrotenberg | @rickwierenga | @thetorpedodog | @vidartf | @welcome | @wjsi | @yacchin1205 | @Zsailer
One column per quarter.
Introduce ServerKernelManager class #1101 (@kevin-bates)
Use handle_outgoing_message for ZMQ replies #1089 (@Zsailer)
ports_changed on the multi-kernel-manager instead of the kernel manager #1088 (@Zsailer)Tornado WebSocketHandler fixup #1083 (@davidbrochart)
New configurable/overridable kernel ZMQ+Websocket connection API #1047 (@Zsailer)
(GitHub contributors page for this release)
@blink1073 | @codecov | @codecov-commenter | @jiajunjie | @minrk | @oliver-sanders | @pre-commit-ci | @welcome | @yacchin1205 | @Zsailer
Pass kernel environment to cwd_for_path method #1046 (@divyansshhh)
cwd_for_path method #1046 (@divyansshhh)(GitHub contributors page for this release)
@blink1073 | @Carreau | @codecov-commenter | @dependabot | @divyansshhh | @fcollonval | @pre-commit-ci
Clean up config files #1031 (@blink1073)
Fallback new file type to file for contents put #1013 (@a3626a)
(GitHub contributors page for this release)
@a3626a | @blink1073 | @codecov-commenter | @kevin-bates | @pre-commit-ci | @welcome
[Gateway] Fix and deprecate env whitelist handling #979 (@kevin-bates)
(GitHub contributors page for this release)
@3coins | @blink1073 | @codecov-commenter | @divyansshhh | @kevin-bates | @meeseeksdev | @pre-commit-ci
suppress tornado deprecation warnings #882 (@minrk)
terminado_settings #949 (@krassowski)api/contents requests for an allowed copy #939 (@kiersten-stokes)api/contents endpoint with no body #937 (@kiersten-stokes)get_kernel_path for AsyncFileManagers. #929 (@thetorpedodog)(GitHub contributors page for this release)
@blink1073 | @codecov-commenter | @echarles | @epignot | @krassowski | @pre-commit-ci | @razrotenberg | @welcome | @wjsi | @Zsailer
Emit events from the Contents Service #954 (@Zsailer)
api/contents requests for an allowed copy #939 (@kiersten-stokes)api/contents endpoint with no body #937 (@kiersten-stokes)get_kernel_path for AsyncFileManagers. #929 (@thetorpedodog)(GitHub contributors page for this release)
@akshaychitneni | @blink1073 | @codecov-commenter | @danielyahn | @davidbrochart | @dlqqq | @hbcarlos | @kevin-bates | @kiersten-stokes | @meeseeksdev | @minrk | @pre-commit-ci | @thetorpedodog | @vidartf | @welcome | @Zsailer
Make it easier for extensions to customize the ServerApp #879 (@minrk)
(GitHub contributors page for this release)
@blink1073 | @CiprianAnton | @codecov-commenter | @dlqqq | @minrk | @pre-commit-ci | @rickwierenga | @thetorpedodog | @welcome | @Zsailer
suppress tornado deprecation warnings #882 (@minrk)
(GitHub contributors page for this release)
@blink1073 | @Carreau | @CiprianAnton | @codecov-commenter | @davidbrochart | @echarles | @kevin-bates | @martinRenou | @minrk | @pre-commit-ci
Address security advisory GHSA-q874-g24w-4q9g.
Full Changelog: https://github.com/jupyter-server/jupyter_server/compare/v2.0.0a0...v2.0.0a1
Identity API at /api/me #671 (@minrk)
(GitHub contributors page for this release)
@andreyvelich | @blink1073 | @bollwyvl | @codecov-commenter | @davidbrochart | @echarles | @hbcarlos | @kevin-bates | @meeseeksdev | @mgorny | @minrk | @pre-commit-ci | @SylvainCorlay | @welcome | @Wh1isper | @willingc | @Zsailer
Added error propagation to gateway_request function #1233 (@broden-wanner)
(GitHub contributors page for this release)
@blink1073 | @Carreau | @codecov | @codecov-commenter | @davidbrochart | @echarles | @kevin-bates | @meeseeksmachine | @minrk | @rajmusuku | @welcome | @yuvipanda | @Zsailer
Backport PR #1212: Redact tokens, etc. in url parameters from request logs #1214 (@blink1073)
(GitHub contributors page for this release)
@blink1073 | @cmd-ntrf | @codecov | @kevin-bates | @meeseeksdev | @meeseeksmachine | @welcome | @xinliupitt
Backport PR #1162: Reapply preferred_dir fix, now with better backwards compatability #1167 (@vidartf)
(GitHub contributors page for this release)
@blink1073 | @Carreau | @codecov | @meeseeksdev | @vidartf | @welcome
Raise errors on individual problematic extensions when listing extension #1139 (@Zsailer)
(GitHub contributors page for this release)
@blink1073 | @bollwyvl | @codecov | @fcollonval | @kevin-bates | @meeseeksmachine | @ofek | @vidartf | @welcome | @Zsailer
Fix rename_file and delete_file to handle hidden files properly #1073 (@yacchin1205)
(GitHub contributors page for this release)
@blink1073 | @codecov | @codecov-commenter | @meeseeksmachine | @welcome | @Zsailer
Fix config merge test for Jupyter Core 5.0 #1068 (@blink1073)
Handle jupyter core warning #1062 (@blink1073)
Backport-1046: Pass kernel environment to cwd_for_path method (#1046) #1051 (@divyansshhh)
cwd_for_path method (#1046) #1051 (@divyansshhh)Handle client 8 pending kernels #1014 (@blink1073)
Wrap the concurrent futures in an asyncio future #1000 (@blink1073)
Backport Inject session identifier into environment variable #920 (@vidartf)
(GitHub contributors page for this release)
@blink1073 | @codecov-commenter | @davidbrochart | @divyansshhh | @dlqqq | @echarles | @epignot | @kevin-bates | @meeseeksdev | @meeseeksmachine | @minrk | @thetorpedodog | @vidartf | @welcome | @Zsailer
Notify ChannelQueue that the response router thread is finishing #896 (@CiprianAnton)
(GitHub contributors page for this release)
@blink1073 | @Carreau | @codecov-commenter | @davidbrochart | @echarles | @kevin-bates | @meeseeksmachine
suppress tornado deprecation warnings #882 (@minrk)
(GitHub contributors page for this release)
@blink1073 | @codecov-commenter | @davidbrochart | @kevin-bates | @meeseeksmachine
Address security advisory GHSA-q874-g24w-4q9g.
Full Changelog: https://github.com/jupyter-server/jupyter_server/compare/v1.17.0...v1.17.1
Add the root_dir value to the logging message in case of non compliant preferred_dir #804 (@echarles)
(GitHub contributors page for this release)
@blink1073 | @codecov-commenter | @davidbrochart | @echarles | @kevin-bates | @meeseeksdev | @meeseeksmachine | @Wh1isper | @Zsailer
add hook to observe pending sessions #751 (@Zsailer)
max-age Cache-Control header to kernel logos #760 (@divyansshhh)(GitHub contributors page for this release)
@andreyvelich | @blink1073 | @codecov-commenter | @divyansshhh | @dleen | @fcollonval | @jhamet93 | @meeseeksdev | @minrk | @rccern | @welcome | @Zsailer
Missing warning when no authorizer in found ZMQ handlers #744 (@Zsailer)
Relax type checking on ExtensionApp.serverapp #739 (@minrk)
Nothing published for this version
Fix server-extension paths (3rd time's the charm) #734 (@minrk)
Server extension paths #730 (@minrk)
(GitHub contributors page for this release)
@blink1073 | @minrk | @Zsailer
Revert "Re-use ServerApp.config_file_paths for consistency (#715)" #728 (@blink1073)
Add authorization layer to server request handlers #165 (@Zsailer)
(GitHub contributors page for this release)
@blink1073 | @codecov-commenter | @davidbrochart | @echarles | @EricCousineau-TRI | @jhamet93 | @kevin-bates | @minrk | @vidartf | @welcome | @Wh1isper | @Zsailer
Protocol alignment #657 (@davidbrochart)
(GitHub contributors page for this release)
@blink1073 | @codecov-commenter | @davidbrochart | @echarles | @github-actions | @jasongrout | @krassowski | @maartenbreddels | @SylvainCorlay | @Vishwajeet0510 | @vkaidalov | @welcome | @Wh1isper | @Zsailer
Fix nbconvert handler run_sync() #667 (@davidbrochart)
More updates to unit tests for pending kernels work #662 (@Zsailer)
Clean up deprecations #650 (@blink1073)
(GitHub contributors page for this release)
@adamjstewart | @blink1073 | @ccw630 | @codecov-commenter | @davidbrochart | @echarles | @fcollonval | @kevin-bates | @op3 | @welcome | @Wh1isper | @Zsailer
nudge both the shell and control channels #636 (@Zsailer)
Persistent session storage #614 (@Zsailer)
(GitHub contributors page for this release)
@blink1073 | @codecov-commenter | @echarles | @JohanMabille | @jtpio | @Zsailer
Await _finish_kernel_start #617 (@jtpio)
maintainer-tools base setup action #616 (@blink1073)Consistent logging method #607 (@mwakaba2)
xsrf cookie on base url #612 (@minrk)jpserver_extensions trait to work with traitlets 5.x #610 (@Zsailer)allow_origin_pat property to properly parse regex #603 (@havok2063)test_api #608 (@toonn)(GitHub contributors page for this release)
@blink1073 | @codecov-commenter | @havok2063 | @minrk | @mwakaba2 | @toonn | @welcome | @Zsailer
Fix \s deprecation warning #600 (@Zsailer)
(GitHub contributors page for this release)
@codecov-commenter | @dependabot | @kevin-bates | @stdll00 | @welcome | @Wh1isper | @Zsailer
Do not log connection error if the kernel is already shutdown #584 (@martinRenou)
Allow non-empty directory deletion through settings #574 (@fcollonval)
(GitHub contributors page for this release)
@blink1073 | @Carreau | @codecov-commenter | @fcollonval | @martinRenou | @oliver-sanders | @vidartf
fix: make command line aliases work again #564 (@mariobuikhuizen)
(GitHub contributors page for this release)
@afshin | @codecov-commenter | @echarles | @manics | @mariobuikhuizen | @oliver-sanders | @welcome | @Zsailer
Protect against unset spec #556 (@fcollonval)
PR: Add a new preferred-dir traitlet #549 (@goanpeca)
(GitHub contributors page for this release)
@blink1073 | @codecov-commenter | @davidbrochart | @goanpeca | @kevin-bates | @martinRenou | @oliver-sanders | @welcome | @Zsailer
enable a way to run a task when an io_loop is created #531 (@eastonsuo)
GatewayClient.auth_scheme configurable #529 (@telamonian)(GitHub contributors page for this release)
@blink1073 | @codecov-commenter | @davidbrochart | @eastonsuo | @icankeep | @jtpio | @kevin-bates | @krassowski | @telamonian | @vidartf | @welcome | @Zsailer
Expose a public property to sort extensions deterministically. #522 (@Zsailer)
(GitHub contributors page for this release)
@codecov-commenter | @jtpio | @minrk | @mwakaba2 | @vidartf | @welcome | @Zsailer
Fix for recursive symlink - (port Notebook 4670) #497 (@kevin-bates)
(GitHub contributors page for this release)
@codecov-commenter | @hMED22 | @jtpio | @kevin-bates | @the-higgs | @welcome @blink1073 | @candlerb | @kevin-bates | @minrk | @mwakaba2 | @Zsailer | @kiendang | [@Carreau]
Increase minimum jupyter_core dependency #509 (@kevin-bates)
Refactor gateway kernel management to achieve a degree of consistency #483 (@kevin-bates)
(GitHub contributors page for this release)
@blink1073 | @candlerb | @codecov-commenter | @kevin-bates | @minrk | @mwakaba2 | @welcome | @Zsailer
Fix loading of sibling extensions #485 (@afshin)
Fix activity tracking and nudge issues when kernel ports change on restarts #482 (@kevin-bates)
Tighten xsrf checks #478 (@jtpio)
Your coding agent can read these notes before it upgrades. Set up the MCP server →