NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #590 most downloaded on PyPI
JupyterLab computational environment
Last release 11 days ago
21 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 59 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
607 releases · first in 2016
No merged PRs
No merged PRs
Add JSX CodeMirror mode #11666 (@krassowski)
(GitHub contributors page for this release)
@andrewfulton9 | @bollwyvl | @davidbrochart | @echarles | @ellisonbg | @fcollonval | @github-actions | @hbcarlos | @jasongrout | @JohanMabille | @jtpio | @jupyterlab-dev-mode | @jupyterlab-probot | @krassowski | @meeseeksdev | @meeseeksmachine | @schmidi314 | @TheOtherRealm | @thesinepainter | @welcome
One column per quarter.
Tweak CSS for scrolled outputs #11478 (@jtpio)
toggleCollapsedSignal to handler right at creation of Markdown #11514 (@fcollonval)sanitize-html pin to 3.5.3 #11513 (@fcollonval)$ #11488 (@krassowski)(GitHub contributors page for this release)
@blink1073 | @bollwyvl | @dmonad | @echarles | @ellisonbg | @fcollonval | @github-actions | @hbcarlos | @jasongrout | @jess-x | @jtpio | @jupyterlab-dev-mode | @jupyterlab-probot | @jweill-aws | @krassowski | @meeseeksdev | @meeseeksmachine | @trungleduc | @welcome
Recommend trying prebuilt extension version in the build failure dialog #11476 (@krassowski)
undomanager paste regression - fixes #10928 #11471 (@dmonad)toc-extension #11460 (@fcollonval)(GitHub contributors page for this release)
@blink1073 | @fcollonval | @github-actions | @isabela-pf | @jasongrout | @jtpio | @jupyterlab-probot | @krassowski | @meeseeksdev | @meeseeksmachine | @welcome | @williamstein
[3.2.x] Expose window.jupyterapp #11417 (@jtpio)
themePath and schemaDir #11427 (@jtpio)(GitHub contributors page for this release)
@dmonad | @fcollonval | @github-actions | @jasongrout | @jtpio | @jupyterlab-probot | @jweill-aws | @krassowski | @meeseeksdev | @meeseeksmachine
Make orig_nbformat optional #11005 #11370 (@nanoant)
orig_nbformat optional #11005 #11370 (@nanoant)release_test #11390 (@fcollonval)cat package.json #11372 (@ceesu)@playright/test dependency in Galata #11371 (@jtpio)clearSignalData reference (now Signal.clearData) #11339 (@krassowski)(GitHub contributors page for this release)
@blink1073 | @davidbrochart | @ellisonbg | @fcollonval | @github-actions | @jasongrout | @jess-x | @jtpio | @jupyterlab-dev-mode | @jupyterlab-probot | @krassowski | @meeseeksmachine | @trungleduc | @welcome | @williamstein | @Zsailer
Updated button styles to accessible colors #11321 (@3coins)
'\r' ended files #11310 (@lucabarcelos)indexChanged on model state updates #11298 (@krassowski)www. with https:// #11272 (@krassowski)(GitHub contributors page for this release)
@3coins | @blink1073 | @ellisonbg | @fcollonval | @github-actions | @jasongrout | @jtpio | @jupyterlab-probot | @meeseeksmachine | @welcome
Add a menu entry to show/hide hidden files in the filebrowser #11206 (@loichuder)
shareUrl #11188 (@fcollonval)preferred-dir handling #10667 (@goanpeca)\r line endings #11271 (@jasongrout)cd('/') when already in / #11219 (@minrk)\n #11141 (@jasongrout)i18n will pass on zeroed patch pre-release version #11214 (@fcollonval)window.open to make it work also in desktop app #11202 (@mbektas)page_config.json [#11152]https://github.com/jupyterlab/jupyterlab/pull/11152) (@achimgaedke)(GitHub contributors page for this release)
@3coins | @achimgaedke | @blink1073 | @echarles | @ellisonbg | @fcollonval | @github-actions | @goanpeca | @hbcarlos | @isabela-pf | @jasongrout | @jess-x | @joelostblom | @jtpio | @jupyterlab-dev-mode | @jupyterlab-probot | @krassowski | @loichuder | @meeseeksdev | @meeseeksmachine | @SylvainCorlay | @trungleduc | @welcome
Add a menu entry to show/hide hidden files in the filebrowser #11206 (@loichuder)
shareUrl #11188 (@fcollonval)preferred-dir handling #10667 (@goanpeca)cd('/') when already in / #11219 (@minrk)\n #11141 (@jasongrout)i18n will pass on zeroed patch pre-release version #11214 (@fcollonval)window.open to make it work also in desktop app #11202 (@mbektas)(GitHub contributors page for this release)
@3coins | @blink1073 | @echarles | @ellisonbg | @fcollonval | @github-actions | @goanpeca | @hbcarlos | @isabela-pf | @jasongrout | @jess-x | @jtpio | @jupyterlab-dev-mode | @jupyterlab-probot | @krassowski | @loichuder | @meeseeksdev | @meeseeksmachine | @SylvainCorlay | @trungleduc | @welcome
Make check margin between last modified timestamps on disk and client configurable #11153 (@ph-ph)
(GitHub contributors page for this release)
@blink1073 | @echarles | @github-actions | @goanpeca | @jasongrout | @jess-x | @jupyterlab-probot | @krassowski | @meeseeksdev | @meeseeksmachine | @welcome
Add show trailing whitespace option to Notebook and Text Editor #11131 (@blink1073)
preferred-dir handling #10667 (@goanpeca)Nothing published for this version
Added handling of '\r' ended files #11310 (@lucabarcelos)
(GitHub contributors page for this release)
@agoose77 | @andrewfulton9 | @baggiponte | @blink1073 | @bollwyvl | @Carreau | @davidbrochart | @dmonad | @echarles | @ellisonbg | @fcollonval | @github-actions | @hbcarlos | @isabela-pf | @jasongrout | @jess-x | @JohanMabille | @jtpio | @jupyterlab-dev-mode | @jupyterlab-probot | @jweill-aws | @krassowski | @meeseeksdev | @meeseeksmachine | @schmidi314 | @SylvainCorlay | @telamonian | @thesinepainter | @trungleduc | @welcome | @williamstein | @yuvipanda | @Zsailer
Backport PR #11249 on branch 3.1.x (Fix Webpack crypto handling) #11252 (@blink1073)
Use standard hash type in webpack build #11234 (@blink1073)
Do not continuously cd('/') when already in / #11219 (@minrk)
cd('/') when already in / #11219 (@minrk)i18n will pass on zeroed patch pre-release version #11214 (@fcollonval)i18n #11190 (@fcollonval)(GitHub contributors page for this release)
@blink1073 | @echarles | @ellisonbg | @fcollonval | @github-actions | @goanpeca | @hbcarlos | @isabela-pf | @jasongrout | @jupyterlab-dev-mode | @jupyterlab-probot | @krassowski | @loichuder | @meeseeksdev | @meeseeksmachine | @SylvainCorlay | @welcome
Normalize notebook cell line endings to \n #11141 (@jasongrout)
(GitHub contributors page for this release)
@blink1073 | @echarles | @github-actions | @goanpeca | @jess-x | @jupyterlab-probot | @krassowski | @meeseeksdev | @meeseeksmachine | @welcome
Fetch translations via the ServerConnection.ISettings #11091 (@jtpio)
(GitHub contributors page for this release)
@blink1073 | @fcollonval | @github-actions | @jtpio | @jupyterlab-dev-mode | @jupyterlab-probot | @krassowski | @meeseeksmachine | @Mithil467 | @trungleduc | @welcome
Retain the rtc lock until the user releases it #11026 (@hbcarlos)
(GitHub contributors page for this release)
@blink1073 | @github-actions | @jasongrout | @jtpio | @jupyterlab-dev-mode | @jupyterlab-probot | @krassowski | @meeseeksmachine | @Mithil467
Revert pending input PR #10792 merged in 3.1.x branch #11020 (@echarles)
(GitHub contributors page for this release)
@blink1073 | @echarles | @fcollonval | @jtpio | @jupyterlab-dev-mode | @meeseeksmachine
Add "menu" context for translation of menu labels #10932 (@krassowski)
(GitHub contributors page for this release)
@agoose77 | @baggiponte | @blink1073 | @echarles | @ellisonbg | @fcollonval | @goanpeca | @jasongrout | @jtpio | @jupyterlab-dev-mode | @krassowski | @mbektas | @meeseeksdev | @meeseeksmachine | @SarunasAzna | @welcome
Fix Package Publish #10916 (@afshin)
(GitHub contributors page for this release)
@blink1073 | @jupyterlab-dev-mode | @meeseeksdev | @meeseeksmachine | @welcome
Workaround invasive use of tex mode inside of code elements and blocks #10867 (@krassowski)
(GitHub contributors page for this release)
@blink1073 | @fcollonval | @jupyterlab-dev-mode | @krassowski | @meeseeksdev | @meeseeksmachine
Fix link to the security documentation #10836 (@krassowski)
npm-cli-login utility from buildutils #10828 (@krassowski)(GitHub contributors page for this release)
@3coins | @afshin | @blink1073 | @fcollonval | @goanpeca | @jasongrout | @jupyterlab-dev-mode | @krassowski | @meeseeksmachine | @welcome
Backport PR #10738 on branch 3.1.x #10806 (@krassowski)
(GitHub contributors page for this release)
@blink1073 | @jupyterlab-dev-mode | @krassowski | @meeseeksmachine
Nothing published for this version
Normalize translation domain #10728 (@fcollonval)
(GitHub contributors page for this release)
@AnudeepGunukula | @blink1073 | @ellisonbg | @fcollonval | @goanpeca | @jasongrout | @jupyterlab-dev-mode | @krassowski | @meeseeksmachine | @welcome
Use appName in page title when restoring workspaces (vs 3.1.x) #10724 (@bollwyvl)
(GitHub contributors page for this release)
@blink1073 | @bollwyvl | @goanpeca | @hbcarlos | @jtpio | @jupyterlab-dev-mode | @meeseeksmachine | @welcome
@jupyterlab/rendermime: upgraded marked dep past vulnerability #9809 (@telamonian)
From JupyterLab 3.1, file documents and notebooks have collaborative
editing using the Yjs shared editing framework <https://github.com/yjs/yjs>_.
Editors are not collaborative by default; to activate it, start JupyterLab
with the --collaborative flag. See full documentation on collaboration.
Tooltip #10590 (@krassowski)activeIndex and indexChanged #10244 (@hbcarlos)tabIndex taking focus away from notebook #10580 (@krassowski)menu attribute #10567 (@fcollonval)docmanager:name-on-save command #10355 (@jtpio)Copy shareable link command - fix the filename encoding (for files with spaces in the name) #10015 (@ognjenjevremovic)marked dep past vulnerability #9809 (@telamonian)ArgumentConflict is not defined #9760 (@andrewfulton9)dirty plugin id #10623 (@jtpio)js-services test with the new ipykernel 6 #10592 (@jtpio)PromiseDelegate in yprovider.ts #10587 (@jtpio)YjsEchoWebSocket #10586 (@jtpio)path-ignore #10568 (@jtpio)ui-tests folder to the labeler #10386 (@jtpio)mode from the JupyterFrontEnd.IShell interface #10368 (@jtpio)IMainMenu dependency #10356 (@jtpio)documentation label for docs #10336 (@jtpio)ws dependency #10316 (@jtpio)yprovider.ts #10308 (@jtpio)sanitize-html~=2.3.3 #10220 (@jtpio)url-parse~=1.5.1 #10219 (@jtpio)jupyter_packaging #10217 (@jtpio)app example #10078 (@jtpio)app example #10053 (@jtpio)buffer dependency from @jupyterlab/apputils #10050 (@jtpio)selectionExecuted signal (copy-paste error) #10579 (@krassowski)ipykernel to the debugger user docs #10512 (@jtpio)documentsearch description in package.json #10265 (@jtpio)notebook from the contributing guide #10200 (@jtpio)(GitHub contributors page for this release)
@0618 | @achandak123 | @afonit | @afshin | @AgoCan | @agoose77 | @ainzzorl | @aiqc | @ajbozarth | @akx | @andrewfulton9 | @Ashish-15s | @blink1073 | @bollwyvl | @bsyouness | @cameron-toy | @consideRatio | @darcsoel | @davidbrochart | @dge8 | @dharmaquark | @dhirschfeld | @DianeHu | @dmonad | @echarles | @ellisonbg | @fasiha | @fcollonval | @flying-sheep | @fperez | @gereleth | @goanpeca | @Guillaume-Garrigos | @hbcarlos | @ian-r-rose | @isabela-pf | @jahn96 | @janjagusch | @jasongrout | @jayqi | @jess-x | @jhamet93 | @jluttine | @jochym | @JohanMabille | @jtpio | @jupyterlab-dev-mode | @krassowska | @krassowski | @legendb317 | @loichuder | @maartenbreddels | @manavendrasen | @manfromjupyter | @mariobuikhuizen | @marthacryan | @martinRenou | @mbektas | @meeseeksdev | @meeseeksmachine | @mellesies | @mgeier | @mlucool | @mnowacki-b | @mwakaba2 | @NPetz | @ognjenjevremovic | @ohrely | @palewire | @paravatha | @partev | @plan-do-break-fix | @robertpyke | @RodyLipson | @sarahspak | @saulshanabrook | @shngt | @skyetim | @smacke | @stadlerb | @SylvainCorlay | @telamonian | @tonyfast | @trallard | @vidartf | @vkaidalov-rft | @welcome | @yasmin-bb | @yuvipanda
fixes doc string for toc syncCollapseState setting #10639 (@andrewfulton9)
dirty plugin id #10623 (@jtpio)Manual re-release of 3.1.0rc0, which had a broken yarn.lock file.
Manual re-release of 3.1.0rc0, which had a broken yarn.lock file.
Reorganize settings menu for text editor #10563 (@fcollonval)
(GitHub contributors page for this release)
@ainzzorl | @blink1073 | @cameron-toy | @echarles | @fcollonval | @gereleth | @goanpeca | @hbcarlos | @jasongrout | @jess-x | @jtpio | @jupyterlab-dev-mode | @krassowski | @legendb317 | @marthacryan | @mwakaba2 | @paravatha | @welcome
Add cursorBlinkRate settings for editors #10485 (@fcollonval)
(GitHub contributors page for this release)
@blink1073 | @davidbrochart | @dmonad | @fcollonval | @jasongrout | @jess-x | @jtpio | @jupyterlab-dev-mode | @krassowski | @legendb317 | @marthacryan | @mbektas | @sarahspak | @skyetim | @welcome
Perf: Update CSS for performance enhancements #10127 (@goanpeca)
docmanager:name-on-save command #10355 (@jtpio)ui-tests folder to the labeler #10386 (@jtpio)mode from the JupyterFrontEnd.IShell interface #10368 (@jtpio)IMainMenu dependency #10356 (@jtpio)documentation label for docs #10336 (@jtpio)(GitHub contributors page for this release)
@achandak123 | @afshin | @Ashish-15s | @blink1073 | @bollwyvl | @cameron-toy | @davidbrochart | @echarles | @ellisonbg | @fcollonval | @goanpeca | @hbcarlos | @isabela-pf | @jahn96 | @jasongrout | @jtpio | @jupyterlab-dev-mode | @krassowski | @manavendrasen | @mariobuikhuizen | @martinRenou | @mbektas | @mgeier | @mlucool | @NPetz | @shngt | @smacke | @SylvainCorlay | @telamonian | @welcome | @yasmin-bb
Support arrow keys for button navigation #10349 (@jahn96)
docmanager:name-on-save command #10355 (@jtpio)documentation label for docs #10336 (@jtpio)IMainMenu dependency #10356 (@jtpio)(GitHub contributors page for this release)
@achandak123 | @Ashish-15s | @blink1073 | @bollwyvl | @ellisonbg | @fcollonval | @goanpeca | @isabela-pf | @jahn96 | @jasongrout | @jtpio | @jupyterlab-dev-mode | @krassowski | @manavendrasen | @mbektas | @mgeier | @NPetz | @SylvainCorlay | @telamonian | @welcome | @yasmin-bb
Focus cells on split and leave cursor cel with selection when splitting #10297 (@goanpeca)
ws dependency #10316 (@jtpio)yprovider.ts #10308 (@jtpio)(GitHub contributors page for this release)
@andrewfulton9 | @blink1073 | @bollwyvl | @davidbrochart | @dmonad | @echarles | @ellisonbg | @fcollonval | @goanpeca | @jasongrout | @jess-x | @jtpio | @jupyterlab-dev-mode | @krassowski | @marthacryan | @martinRenou | @robertpyke | @saulshanabrook | @telamonian | @welcome
Add key-bindings to codemirror search in single cell #10184 (@jess-x)
.path from .name #10281 (@krassowski)marked.js (and types) to pull fix for rendering #10274 (@krassowski)docprovider-extension to the labeler #10288 (@jtpio)_onFileChanged #10286 (@martinRenou)(GitHub contributors page for this release)
@afonit | @blink1073 | @fcollonval | @goanpeca | @isabela-pf | @jess-x | @jtpio | @jupyterlab-dev-mode | @krassowski | @martinRenou | @mlucool | @telamonian
Add a plugin to be able to swap the doc provider #10256 (@jtpio)
activeIndex and indexChanged #10244 (@hbcarlos)documentsearch description in package.json #10265 (@jtpio)(GitHub contributors page for this release)
@afshin | @akx | @andrewfulton9 | @blink1073 | @echarles | @hbcarlos | @ian-r-rose | @jasongrout | @jtpio | @jupyterlab-dev-mode | @krassowski | @marthacryan | @martinRenou | @welcome
DirListing: Refactor selection so that it's based on path not name #10237 (@martinRenou)
(GitHub contributors page for this release)
@blink1073 | @dmonad | @jtpio | @jupyterlab-dev-mode | @krassowski | @martinRenou
Shared editing with collaborative notebook model. #10118 (@dmonad)
(GitHub contributors page for this release)
@blink1073 | @dharmaquark | @dmonad | @fperez | @jtpio | @jupyterlab-dev-mode | @krassowski | @martinRenou
Filebrowser: Allow for escaping renaming #10205 (@martinRenou)
jupyter_packaging #10217 (@jtpio)notebook from the contributing guide #10200 (@jtpio)(GitHub contributors page for this release)
@0618 | @afshin | @agoose77 | @andrewfulton9 | @bdeck8317 | @blink1073 | @bollwyvl | @cameron-toy | @dhirschfeld | @dmonad | @echarles | @fcollonval | @fperez | @goanpeca | @hbcarlos | @isabela-pf | @jasongrout | @jess-x | @jhamet93 | @jtpio | @jupyterlab-dev-mode | @krassowski | @marthacryan | @martinRenou | @mbektas | @meeseeksmachine | @mellesies | @minrk | @mlucool | @ntamas | @plan-do-break-fix | @robertpyke | @SylvainCorlay | @telamonian | @welcome
Fix dry run logic in publish script #10068 (@jtpio)
app example #10078 (@jtpio)(GitHub contributors page for this release)
@0618 | @AgoCan | @agoose77 | @blink1073 | @bollwyvl | @DianeHu | @fcollonval | @jasongrout | @jhamet93 | @jtpio | @jupyterlab-dev-mode | @krassowska | @krassowski | @laundmo | @meeseeksmachine | @SylvainCorlay | @welcome
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
Fix Shutdown Error in Test App #10240 (@afshin)
(GitHub contributors page for this release)
@blink1073 | @echarles | @ian-r-rose | @jtpio | @jupyterlab-dev-mode | @krassowski | @meeseeksmachine
Added support for namespace packages in labextensions. #10150 @mellesies
sanitize-html~=2.3.3 #10220 @jtpiourl-parse~=1.5.1 #10219 @jtpio(GitHub contributors page for this release)
@agoose77 | @blink1073 | @echarles | @fperez | @goanpeca | @isabela-pf | @jasongrout | @jtpio | @jupyterlab-dev-mode | @krassowski | @marthacryan | @meeseeksmachine | @mlucool | @SylvainCorlay | @welcome
Clean up browser check #10080 (@jtpio)
Add cell id per notebook format 4.5 (\#10018)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Remove the previous file_to_run logic. #9848
file_to_run logic. #9848Nothing 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 →