Jupyter extension to proxy marimo with JupyterLab integration
Project description
Seamlessly integrate marimo notebooks into JupyterLab and JupyterHub
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.pyfiles 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
.pyfiles to edit with marimo,.ipynbfiles 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.19.11' 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.
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
.pyor_mo.pyfile to open it in the marimo editor - Convert to marimo: Right-click any
.ipynbfile to convert it to marimo format
Installation
See Installation Guide for detailed setup instructions.
Single Environment
uv pip install 'marimo[sandbox]>=0.19.11' 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
See Configuration 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.19.11 |
Community
- marimo Discord - Chat with the community
- GitHub Issues - Report bugs or request features
- marimo Documentation - Learn about marimo notebooks
- Contributing Guidelines - Help improve marimo
License
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file marimo_jupyter_extension-0.1.4.tar.gz.
File metadata
- Download URL: marimo_jupyter_extension-0.1.4.tar.gz
- Upload date:
- Size: 710.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b184a48b96a50cb68a6f8b7ecbdbc12307aea08fed616207a054eda583b810a
|
|
| MD5 |
f419b7c68517a8bb9fc44de2c688b843
|
|
| BLAKE2b-256 |
df1d15f504efba94c6d1b13153ecb78ca94b87dbe7594ca8fd23c036241735bf
|
Provenance
The following attestation bundles were made for marimo_jupyter_extension-0.1.4.tar.gz:
Publisher:
publish.yml on marimo-team/marimo-jupyter-extension
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
marimo_jupyter_extension-0.1.4.tar.gz -
Subject digest:
2b184a48b96a50cb68a6f8b7ecbdbc12307aea08fed616207a054eda583b810a - Sigstore transparency entry: 1012987497
- Sigstore integration time:
-
Permalink:
marimo-team/marimo-jupyter-extension@10064c99fc0da6cbb75a4989e8ac119a2391585a -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/marimo-team
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@10064c99fc0da6cbb75a4989e8ac119a2391585a -
Trigger Event:
push
-
Statement type:
File details
Details for the file marimo_jupyter_extension-0.1.4-py3-none-any.whl.
File metadata
- Download URL: marimo_jupyter_extension-0.1.4-py3-none-any.whl
- Upload date:
- Size: 70.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0b696387e59caaad9bd2e9fb9b318a4ca61868388405d42dd0972c58d478f07
|
|
| MD5 |
0335a981b3688be0a072f708da0db1ef
|
|
| BLAKE2b-256 |
c322dde861b0d0391776952dadd621375ebcf7685c31415e00942d7e771f6d95
|
Provenance
The following attestation bundles were made for marimo_jupyter_extension-0.1.4-py3-none-any.whl:
Publisher:
publish.yml on marimo-team/marimo-jupyter-extension
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
marimo_jupyter_extension-0.1.4-py3-none-any.whl -
Subject digest:
b0b696387e59caaad9bd2e9fb9b318a4ca61868388405d42dd0972c58d478f07 - Sigstore transparency entry: 1012987595
- Sigstore integration time:
-
Permalink:
marimo-team/marimo-jupyter-extension@10064c99fc0da6cbb75a4989e8ac119a2391585a -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/marimo-team
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@10064c99fc0da6cbb75a4989e8ac119a2391585a -
Trigger Event:
push
-
Statement type: