Configuration
Executable Discovery
By default, the extension searches for marimo in:
- System PATH (via
shutil.which) - Common locations:
~/.local/bin/marimo,/opt/bin/marimo,/usr/local/bin/marimo
Traitlets Configuration
For JupyterHub deployments, configure the extension in jupyterhub_config.py:
from marimo_jupyter_extension.config import MarimoProxyConfig
# Explicit marimo path
c.MarimoProxyConfig.marimo_path = "/opt/bin/marimo"
# Or use uvx mode (runs `uvx marimo` instead)
c.MarimoProxyConfig.uvx_path = "/usr/local/bin/uvx"
# Startup timeout in seconds (default: 60)
c.MarimoProxyConfig.timeout = 120
Spawner Environment
For JupyterHub deployments using SystemdSpawner, configure the spawned notebook environment:
c.SystemdSpawner.environment = {
"PATH": "/opt/jupyterhub/.venv/bin:/usr/local/bin:/usr/bin:/bin",
"XDG_RUNTIME_DIR": "/run/user/jupyter",
"XDG_DATA_HOME": "/opt/notebooks/.local/share",
"XDG_CONFIG_HOME": "/opt/notebooks/.config",
"XDG_CACHE_HOME": "/opt/notebooks/.cache",
"HOME": "/opt/notebooks",
}
Alternative: Symlink marimo
Instead of explicit path configuration, copy or symlink marimo to a location already in the spawner's PATH:
This works if /opt/bin is already in the spawner's PATH.