Introducing the new JupyterLab Desktop!

We are pleased to announce a major update to JupyterLab Desktop which adds many new features with main focus on the user experience. JupyterLab Desktop is the cross-platform desktop application for JupyterLab and it is the quickest and easiest way to get started with Jupyter notebooks on your personal computer.

JupyterLab Desktop

Welcome Page

Users are now presented with the Welcome Page when the app is first launched. It contains links to several session create options on the left and the Jupyter News feed on the right. The news feed is populated using the Jupyter blog contents and is aimed to keep you up to date with the news and events related to Jupyter ecosystem projects. Clicking on a news item opens the blog post in browser.

Welcome Page

Sessions and Projects

With this release we are introducing the concept of sessions and projects. Sessions are representations of local project launches and connections to existing JupyterLab servers. Each JupyterLab UI window in the app is associated with a separate session and sessions can be restored with the same configuration at the next launch.

Each launch of JupyterLab in a different working directory is a separate project and projects can have their own configuration such as Python environment and UI layout. You can separate your work into different projects with their own notebook files and Python environment configuration, based on the project tasks and dependency libraries.

The “Start” section on the Welcome Page provides several options to create projects and sessions.

Start session links

New notebook and new session with one click

If you want to quickly get started with a new notebook, you can simply click the “New notebook…” link on the Welcome Page. It will automatically launch a new JupyterLab session in the default working directory using the default Python environment and create a new empty notebook to get you started.

“New session…” link on the Start section works similarly, it launches a new JupyterLab session with the same configuration as above but doesn’t create a notebook automatically.

Open files or folders from UI

In the Start section of the Welcome Page there are links to open files or folders directly from UI. You can use “Open…” to select files or folders you would like to start a new JupyterLab session with.

Open files or folders

If files are chosen, selected files’ parent directory becomes the working directory and selected files are opened in the session. This is also one of the methods to create or open a project in JupyterLab Desktop. On Windows and Linux “Open Folder…” and “Open File…” options are presented as separate items due to OS requirements.

Drag and drop support to create sessions

If you drop files or a folder onto the Welcome Page then they will be opened in a new session. Dropping a folder this way is the easiest way to get started with a new notebook project in your folder of choice. Dropping files creates a new session at their parent directory and opens them when session is up and ready.

Drag and drop folder to create session

Connect to existing JupyterLab servers

JupyterLab Desktop can connect to an existing JupyterLab server running locally or remotely. JupyterLab servers that are locally running on your computer are automatically detected and listed in the Connect dialog.

Connect dialog

Session restore

“Recent sessions” list on the Welcome Page shows the last sessions launched by the user. Clicking the items in the list restores the session whether it was a local project, single notebook file or a remote server connection. List items are ordered by the last launch time and items can be removed from the list in place by clicking the remove button on the right.

Recent sessions list

Multiple session window support

With this release we are adding support for multiple session windows. You can create a new session window by clicking the “New Window” menu item on the app menu at top right. New app launches from CLI, and double clicking .ipynb files create new session windows as well.

Create new window

Using this feature, you can now open multiple projects in different session windows side by side. If your startup mode is set to “Restore last sessions”, then your session windows will be restored at the next launch in the positions you laid them out previously.

Multiple session windows

Python environment auto discovery and user-friendly switch

JupyterLab Desktop shows the server status on the title bar of the session window. If you hover on it you will see the details of the server along with the active Python environment info such as its path and certain package versions.

Python environment selector menu

Python environments installed on your computer that are compatible with the app are now automatically discovered at launch time. Clicking on the server status button on the title bar opens the Python environment selector menu. Python environments discovered and any previously used environments will be listed in the menu. Hovering over the menu items shows additional details such as package versions.

You can also browse or enter the path of a Python executable on your computer using this menu to set the Python environment.

Once you select a new environment, JupyterLab server will be restarted using the new environment without restarting the application. The selected environment is stored as part of the project settings of the working directory and reapplied when the same project directory is opened.

Custom working directory and default Python environment

The default JupyterLab server root directory which is the default working directory of the app is set as user home directory. This default now can be changed using the Server tab of the Settings dialog. Default Python path is set as the path to the bundled Python environment. This can also be customized from the same settings tab. These two settings determine where the new notebooks are created and new JupyterLab sessions are launched by default.

Default working directory and Python environment settings

Startup mode

Welcome Page is the new default launch screen but the startup mode can be changed from the Settings dialog. “Start new session” option lets you launch with a new session in the default working directory using the default Python environment. “Restore last sessions” option lets you continue where you left off last time by restoring last active session windows.

Startup mode

Progress views with action links

New user friendly progress views are now shown while the app is busy with time consuming tasks or when errors occur. Based on the type of error, action links with resolution options are presented.

Progress views

CLI updates

With the added CLI options, you can now launch the app with a custom Python environment. You can also launch in a specific working directory and open files relative to it by using CLI. Check jlab --help command to learn more about the launch options.

CLI options

Security and privacy

We release frequent updates to JupyterLab Desktop to keep it up to date with JupyterLab core application and Electron. Following the best security practices, the app uses context isolation to prevent access to user’s computer from scripts running in the embedded browsers. Browser session data and other user data stored by the app can also be cleared from the Settings dialog now.

Clear history

Improved configuration options

JupyterLab Desktop now stores user settings, project settings and application data in separate JSON files. User settings file contains application settings such as default Python path and theme. These settings can be configured from Settings dialog in the application UI. Project settings file contains project (working directory) specific overrides of user settings. Application data file contains data used by the application, e.g. recent sessions list, news feed cache, Python environment list cache.

And more…

In addition to these major updates mentioned, this release contains several other smaller enhancements, improvements to logging and troubleshooting features, and bug fixes as well.

Try it out and share your feedback!

Try the latest JupyterLab Desktop and share your feedback with us using project’s GitHub issues! User feedback from the community shapes the project 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.

Read More