Render marimo cells as hydrated islands in Jupyter Book.
Project description
marimo + Jupyter Book
marimo is a reactive Python notebook that can be embedded in static documents. This repo is a Jupyter Book executable plugin that lets you write marimo cells in MyST pages and publish a static book whose controls, tables, plots, SQL results, and dependent cells still respond in the browser.
Requires Python 3.10+. The package installs marimo for page execution.
Quick Start
1. Install the plugin in the same environment as Jupyter Book:
pip install jupyter-book-marimo
For uv-managed projects, use:
uv add jupyter-book-marimo
2. Register the executable plugin in myst.yml:
project:
plugins:
- type: executable
path: .venv/bin/jupyter-book-marimo
Use the executable path that matches your environment. In this repo's docs site, the
docs live in docs/, so the path is ../.venv/bin/jupyter-book-marimo.
3. Edit a MyST page:
---
title: My reactive page
---
# A reactive page
```{marimo} python
import marimo as mo
slider = mo.ui.slider(start=1, stop=10, step=1, label="items")
slider
```
```{marimo} python
mo.md(f"The slider is set to **{slider.value}**.")
```
Set page defaults or page-local dependencies with {marimo-config}:
```{marimo-config}
:echo: true
:pyproject: |
requires-python = ">=3.10"
dependencies = ["pandas"]
```
4. Build the book:
jupyter-book build --html
Features
jupyter-book-marimo uses
marimo islands so reactive
notebook content can live between ordinary book sections. The plugin supports Python,
SQL, and Markdown cells, page-level execution defaults, page-local dependencies, custom
styling hooks, and static HTML output that hydrates into interactive marimo components
on load.
Docs
Read the user docs at marimo-team.github.io/jupyter-book-marimo.
For the full local development workflow, see CONTRIBUTING.md.
Project details
Release history Release notifications | RSS feed
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 jupyter_book_marimo-0.0.1.tar.gz.
File metadata
- Download URL: jupyter_book_marimo-0.0.1.tar.gz
- Upload date:
- Size: 71.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
12a81577957f0e8cdd701d6d49f7dc7f0a1c3c7d50a3db26b256ff67711f94f9
|
|
| MD5 |
3874f1ff4360b61a381bd7c3fe62eceb
|
|
| BLAKE2b-256 |
1ab9537e729844ea288de9d63239788bcb60afa51bb0ccc4cdc2969ef3da11fc
|
File details
Details for the file jupyter_book_marimo-0.0.1-py3-none-any.whl.
File metadata
- Download URL: jupyter_book_marimo-0.0.1-py3-none-any.whl
- Upload date:
- Size: 51.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f4a54216bd08d1abf65d85bb2fd84152469f20b1f6286112ec6ef50cde3f035e
|
|
| MD5 |
7bbf7825d9da103aa186684200532a5c
|
|
| BLAKE2b-256 |
825f63808e307ec03733f18985180ce3b6c1bf0312000e5bc17ecc090d693268
|