Skip to main content

Jupyter Storage Explorer launcher

PyPI - Version

Adds Storage Explorer to JupyterLab's launcher (section Other) and command palette. It opens Jupyter Storage Explorer in its own tab, on the folder JupyterLab's file browser shows.

The Storage Explorer item in JupyterLab's launcher

It also adds a side panel, a narrow explorer next to your notebooks:

  • Open it with the Storage Explorer icon in the left side bar.
  • The same storages as the tab; a folder's list, without the tree or the preview panel.
  • Files you view (View, a double-click) open in new tabs.
  • The filter button, left of ⚙, shows the filter.
The side panel in JupyterLab's left side bar, a Parquet file selected, beside the tab its View button opened in the data browser

It also integrates every Storage Explorer, in its tab or in a notebook, with JupyterLab:

  • Drag and drop: drag files onto JupyterLab's file browser to download them there.
  • Open files in a tab: double-click a file to open it in JupyterLab's own editor or viewer; Save writes it back to the storage.
  • View in a new tab: open a table in the data browser, or another view (text, an image, ...), in a tab of its own.

Installation

pip install "jupyter-storage-explorer-launcher[polars]"

The launcher has the same extras as jupyter-storage-explorer (Installation), of two kinds:

  • Full extras, e.g. [polars]: the plugin and the libraries it uses.
  • Support-only extras, e.g. [polars-support]: the plugin alone, using the libraries already installed. Nothing else is installed or upgraded.
Full extra Support-only extra Plugin
polars polars-support Polars: Delta Lake, Parquet, CSV, JSON Lines, Excel
pandas pandas-support pandas: Parquet, CSV, JSON Lines, Excel
pyspark pyspark-support PySpark: Delta Lake, Parquet, CSV, JSON Lines
abfs abfs-support Azure Data Lake Storage Gen2
databricks databricks-support Databricks volumes and workspace files; Databricks Connect (experimental)
all all-supports All of the above, but the experimental ones

Full extras are handy for a quick try. Support-only extras are highly recommended for an IPython kernel whose data access packages are carefully installed and configured (e.g. a shared JupyterHub image): the plugins use what is there and never change it.

pip install "jupyter-storage-explorer-launcher[all-supports]"  # every plugin, with the libraries you have

Install it in the environment of JupyterLab and of the default kernel (on JupyterHub, usually the single-user image), then restart JupyterLab. Requires JupyterLab 4.0 or later.

Or from JupyterLab itself, without a terminal: run this in a notebook, then reload the page (no restart needed):

%pip install "jupyter-storage-explorer-launcher[polars]"

This works when the notebook's kernel runs in JupyterLab's own environment, as the default kernel usually does.

Then see Using the explorer.

Configuration

Click the ⚙ button at the right of the tab's toolbar, then Edit configuration.

The settings menu (a gear) after Unsafe mode in the tab's toolbar: Edit configuration and About

It opens your settings, a Python file (launcher.py), in JupyterLab's editor; if you have none, it offers to create one from a template with an example of each setting.

launcher.py, created from the template, open in JupyterLab's editor beside the Storage Explorer tab

Uncomment and edit the settings you need, then save. Open a new Storage Explorer tab, or reload the page, to apply the changes.

For example, to open each tab on the data lake and the folder it starts on, with a preview at once:

def filesystems():
    return {
        "Here": ".",  # the folder the tab opens on
        "Data lake": "abfs://lake@myaccount.dfs.core.windows.net",
    }


def parameters():
    return {"preview_panel": "open"}

The file has some of these functions, all optional:

Function Returns
filesystems() {name: URL or fsspec filesystem}
plugin_options() The plugins' options, by key, e.g. {"pandas-support": {"enabled": False}} (see each plugin's README)
engine_options() The engines' options, by engine and format (Engine options)
transfer_policy() Rules of a transfer policy
parameters() Other StorageExplorer arguments (StorageExplorer options), e.g. {"engine_preference": ["pandas"]}

The side panel uses the same settings, except its own layout: height, tree_view, preview_panel and layout are not taken from parameters() there.

If your file has an error, the tab still opens, without your settings. The error shows above the explorer and in its status bar. Fix the file with the ⚙ button, then open the tab again. This covers errors raised by the file, settings that do not exist, and values the explorer refuses.

Other configuration files

Your files are in Jupyter's configuration directory, which jupyter --config-dir prints: ~/.jupyter by default (on Windows, %USERPROFILE%\.jupyter), or $JUPYTER_CONFIG_DIR where that is set. launcher.py is in its storage-explorer folder.

Icons

To change the explorer's icons, use JupyterLab's custom.css (see Icons), which applies to the launcher's tabs and to explorers in notebooks alike.

Bookmarks and query settings

The tabs share bookmarks, the data browser's query settings, the engine chosen and the list's columns. They keep them in storage-explorer/states.json in the same directory, unless parameters() sets states (another file's path, or None: in each tab's memory).

Layers of the configuration file

Administrators can set up the tab for everyone: a storage-explorer/launcher.py in any of Jupyter's configuration directories (jupyter --paths, config section) is read, e.g. /etc/jupyter/storage-explorer/launcher.py for the whole system or <environment>/etc/jupyter/storage-explorer/launcher.py for one Python environment (e.g. a JupyterHub image). Each file is a layer, applied from the system's to the user's, so users' files usually come last. A later layer changes an earlier one's settings this way:

Function Merged with earlier layers
filesystems() By name: added or replaced; None removes one
plugin_options() By plugin, then option
parameters() By name
engine_options() By engine, format, then option
transfer_policy() Later layers' rules first, so they decide first

final() returns the settings later layers cannot change: function names (except parameters) and parameter names. For example, /etc/jupyter/storage-explorer/launcher.py:

def filesystems():
    return {
        "Here": ".",
        "Data lake": "abfs://lake@myaccount.dfs.core.windows.net",
    }


def transfer_policy():
    # No downloads from the lake to users' computers or to the Jupyter server.
    return [
        {"rule": "deny", "src": r"abfs://lake@.*", "dest": "browser:///.*"},
        {"rule": "deny", "src": r"abfs://lake@.*", "dest": "jupyterlab://.*"},
    ]


def parameters():
    return {"unsafe_mode": "blocked"}  # no folder operations


def final():
    return ["filesystems", "transfer_policy", "unsafe_mode"]  # users cannot change these

Final settings are not a security boundary: users can still create explorers in notebooks.

An error in any file other than the user's stops the tab: it shows only the error, naming the file. Users' files are left out instead (see Configuration).

Metadata

Release files for jupyter-storage-explorer-launcher 0.20.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jupyter-storage-explorer-launcher 0.20.0
File Size Uploaded Provenance
jupyter_storage_explorer_launcher-0.20.0.tar.gz 483.3 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for jupyter-storage-explorer-launcher 0.20.0
File Interpreter ABI Platform
jupyter_storage_explorer_launcher-0.20.0-py3-none-any.whl Python 3 none any Details

Total release size: 534.0 kB

Release files / jupyter_storage_explorer_launcher-0.20.0.tar.gz

Download URL jupyter_storage_explorer_launcher-0.20.0.tar.gz
Size 483.3 kB
Tags Source
SHA-256 checksum
How to use checksums
7a517f10a11e7642bd89e40bacb1b2fb8f1e29d03589dec0ff90e718d282098b
BLAKE2b-256 checksum
How to use checksums
e22b192d18ccf142843d8786f5d6cce4c4c4c7d358675ee12ec4b8ab1c934f13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / jupyter_storage_explorer_launcher-0.20.0-py3-none-any.whl

Download URL jupyter_storage_explorer_launcher-0.20.0-py3-none-any.whl
Size 50.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cf788a7986099f976b9a9b5daa8e0b5e1527dd6fa776221a1f8c9bac7184da3d
BLAKE2b-256 checksum
How to use checksums
52bb67ffed49819245db7f480696fa4eeb4edb2d8a4f87c11b843e4869c1bb24
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Security for jupyter-storage-explorer-launcher 0.20.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for jupyter_storage_explorer_launcher-0.20.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.20.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page