JupyterLab Desktop — 2022 recap

Mehmet Bektas
Jupyter Blog
Published in
4 min readDec 13, 2022

--

JupyterLab Desktop is the cross-platform desktop application distribution of JupyterLab. It is the quickest and easiest way to get started with Jupyter notebooks, with the flexibility for advanced use cases.

JupyterLab Desktop

It has been slightly over a year since we relaunched JupyterLab Desktop. As we close the year 2022, we would like to share some of the recent updates and highlight the major features we implemented since the relaunch.

CLI and double click to launch

JupyterLab Desktop can be launched from the GUI of your operating system by clicking the application’s icon or by using the jlab command from the command line. jlab command allows you to launch the application from specific directories and open files at the specified path.

# launch in the current directory
jlab .
# launch in a directory at the relative path
jlab ../notebooks
# launch notebook at the path
jlab ../notebooks/test.ipynb

Double clicking to open notebook .ipynb files is also supported. This will launch the app in file’s parent directory and load the notebook file clicked.

Right click menu on notebook file

Custom Python environment support

The app comes bundled with a conda Python environment that includes the latest JupyterLab along with several popular Python libraries ready to use in scientific computing and data science workflows. A JupyterLab server instance is launched and used as the backend of the app using this Python environment as the default.

For more advanced use cases and specific needs, you can change the Python environment used by JupyterLab Desktop to another conda, venv, or pyenv virtual environment available on your computer.

Python environment selection dialog

Remote Server Connection

In addition to automatically launching a JupyterLab Server instance locally and using it as the backend of the application, JupyterLab Desktop can also connect to an existing JupyterLab server instance that is running remotely.

JupyterLab Desktop can connect to remote server instances that require authentication such as Single Sign-On (SSO) as well. User is presented with the login screens provided by the authentication service they are using and the data is stored securely in browser sessions. The session information can be persisted to automatically re-login on the next launch.

Remote server connection settings dialog

Theme support

JupyterLab Desktop now supports light and dark themes. User can choose light / dark or system theme option in Preferences. System theme basically applies the light / dark theme selected for the OS to the application.

Theme applied to JupyterLab view

The theme selection is applied to the JupyterLab view and dialogs of the application.

Theme applied to dialogs

Custom dialogs using jupyter-ui-toolkit

JupyterLab Desktop now uses jupyter-ui-toolkit components for its dialogs to provide a unified and modern look & feel across the application. jupyter-ui-toolkit is a UI toolkit providing UI components with theming support for Jupyter eco-system projects.

jupyter-ui-toolkit components in JupyterLab Desktop dialogs

Auto-update

JupyterLab Desktop regularly checks for available updates and notifies user for new versions. On macOS, automatic updates are supported as well. This feature automatically downloads a new version and installs it at the next launch. We are also in the process of adding auto-update support to Windows.

Upgraded to latest JupyterLab and Electron

We frequently release updates to JupyterLab Desktop to keep it in sync with JupyterLab core application and Electron. We address user issues and pain points reported in GitHub issues.

Electron related security issues are also constantly in our radar. With the latest release of v3.5.1–1, we upgraded to Electron v22 and enabled context isolation to all browser sessions. Context isolation blocks access to user’s computer from scripts running in embedded browser and provides the highest level of security for Electron apps.

Try it out and share your feedback!

If you haven’t already, try the latest JupyterLab Desktop and share your feedback with us using project’s GitHub issues! User feedback from the community shapes the project’s roadmap.

For more information and updates on the project, follow us on GitHub and Jupyter Blog.

About the Author

Mehmet Bektas is a Senior Software Engineer at Netflix and a Jupyter Distinguished Contributor. He maintains and contributes to JupyterLab, JupyterLab Desktop and several other projects in the Jupyter eco-system.

--

--

Senior Software Engineer at Netflix. Jupyter Distinguished Contributor.