Skip to main content

Jupyter extension to proxy marimo with JupyterLab integration

Project description

Seamlessly integrate marimo notebooks into JupyterLab and JupyterHub

PyPI License Discord


marimo-jupyter-extension brings the power of marimo reactive notebooks to your existing Jupyter infrastructure. Launch marimo directly from JupyterLab's launcher, manage running sessions, and convert Jupyter notebooks to marimo format.

Highlights

  • 🚀 Launcher Integration - marimo appears in the JupyterLab launcher with its own icon
  • 🍃 First-Class Marimo Notebook Support - Double-click _mo.py files to open directly in marimo
  • 📊 Sidebar Panel - Monitor server status, view running sessions, and quick actions
  • 🐍 Venv Selection - Choose Python environment when creating new notebooks (with PEP 723 metadata)
  • 📁 Context Menus - Right-click .py files to edit with marimo, .ipynb files to convert
  • 🏢 JupyterHub Compatible - Works with existing authenticators and spawners
  • 🔒 Secure - Token-based authentication between proxy and marimo
  • 📦 Sandbox Mode - Run marimo in isolated environments with uvx

Quick Start

uv pip install 'marimo[sandbox]>=0.21.1' marimo-jupyter-extension

Launch JupyterLab and click the marimo icon in the launcher, or use the sidebar panel.

Features

Launcher & Sidebar

Create new marimo notebooks from the launcher. The sidebar shows server status, running sessions with kill buttons, and quick actions.

marimo extension sidebar and editor
Joy Division-style plot from pulsar CP 1919 (PSR B1919+21) made with wigglystuff

Environment Selection

When creating a new notebook, select from available Python environments. The extension discovers Jupyter kernel specs and embeds the venv path using PEP 723 script metadata.

File Type Handling

File Type Double-click Behavior "Open With" Menu
_mo.py Opens in marimo marimo available
.py Opens in standard editor marimo available

Context Menu Actions

  • Edit with marimo: Right-click any .py or _mo.py file to open it in the marimo editor
  • Convert to marimo: Right-click any .ipynb file to convert it to marimo format

Installation

See Installation Guide for detailed setup instructions.

Single Environment

uv pip install 'marimo[sandbox]>=0.21.1' marimo-jupyter-extension

Multiple Environments (JupyterHub)

Package Install Location Why
marimo User's environment Access user's packages
marimo-jupyter-extension Jupyter's environment Jupyter must import it

Configuration

Configure in jupyterhub_config.py:

# Explicit marimo path
c.MarimoProxyConfig.marimo_path = "/opt/bin/marimo"

# Or use uvx mode (sandbox)
c.MarimoProxyConfig.uvx_path = "/usr/local/bin/uvx"

# Startup timeout (default: 60s)
c.MarimoProxyConfig.timeout = 120

# Enable marimo debug logging for spawn troubleshooting
c.MarimoProxyConfig.debug = True

See Configuration Guide, Troubleshooting Guide, and JupyterHub Deployment for more details.

Migrating from jupyter-marimo-proxy

pip uninstall jupyter-marimo-proxy
pip install marimo-jupyter-extension

Configuration via c.MarimoProxyConfig in jupyterhub_config.py remains the same. This package is a drop-in replacement with additional features.

Attribution

This project is based on jupyter-marimo-proxy by Jiang Yio, which provided the original server proxy implementation.

Additional inspiration from b-data/jupyter-marimo-proxy.

This fork adds:

  • Full JupyterLab extension with sidebar UI
  • Venv/kernel selection with PEP 723 metadata
  • Context menu integration for file operations
  • Notebook conversion support
  • Server restart capabilities

Troubleshooting

See Troubleshooting Guide for common issues.

Issue Solution
marimo icon missing Install marimo-jupyter-extension in Jupyter's environment
marimo fails to launch Ensure marimo is in PATH or configure MarimoProxyConfig.marimo_path
Modules not found Install marimo in the same environment as your packages
Sandbox features not working Upgrade to marimo[sandbox]>=0.21.1

Community

License

Apache License 2.0 - see LICENSE and NOTICE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

marimo_jupyter_extension-0.2.1.tar.gz (717.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

marimo_jupyter_extension-0.2.1-py3-none-any.whl (71.7 kB view details)

Uploaded Python 3

File details

Details for the file marimo_jupyter_extension-0.2.1.tar.gz.

File metadata

  • Download URL: marimo_jupyter_extension-0.2.1.tar.gz
  • Upload date:
  • Size: 717.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for marimo_jupyter_extension-0.2.1.tar.gz
Algorithm Hash digest
SHA256 470e0467b3df896829ecda51e9463bba7b8a4e8120c948ce5082443529f96179
MD5 0c3074dfce530357481d67c62fb50851
BLAKE2b-256 9a1039503d047bda45b76d0aec644c745ee6c61b42e189c55405f49e9d9fa152

See more details on using hashes here.

Provenance

The following attestation bundles were made for marimo_jupyter_extension-0.2.1.tar.gz:

Publisher: publish.yml on marimo-team/marimo-jupyter-extension

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file marimo_jupyter_extension-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for marimo_jupyter_extension-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c0163099cb92d09dd137218718e649e425a78ceaf87dee9607e168a4810b24c3
MD5 cbad187895bd4a3899776d55ca7d7326
BLAKE2b-256 ac6ed5e4a73e1f2500b3cb69ac8a9d7e6040b4de7f0fa8ce3ebcc7e748bc0691

See more details on using hashes here.

Provenance

The following attestation bundles were made for marimo_jupyter_extension-0.2.1-py3-none-any.whl:

Publisher: publish.yml on marimo-team/marimo-jupyter-extension

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page