Build and publish python packages from marimo notebooks
Project description
[!WARNING] This project is under active development and is not an official marimo tool - Mar 2026
marimo-dev
types.py → what things are
parse.py → read notebooks into types
build_pkg.py → Project → Python package
build_docs.py → Project → documentation
publish.py → Project → PyPI
cli.py → dispatch
[project]
name = "my-project"
version = "0.1.0"
description = "A cool library"
[tool.marimo-dev]
nbs = "notebooks" # default
out = "src" # default
docs = "docs" # default
skip_prefixes = ["XX_", "test_"] # default
application = "server:app:py_sse.serve" # optional, enables __main__.py
[tool.marimo-dev.renames]
internal_ = "_" # internal_foo → _foo (private)
dunder_ = "__" # dunder_init → __init__
notebooks/
├─ a_utils.py → exported as "utils" (letter prefix stripped)
├─ b_database.py → exported as "database"
├─ XX_scratch.py → skipped (XX_ prefix)
├─ test_stuff.py → skipped (test_ prefix)
$ md build
src/my_project/
├─ __init__.py # re-exports public symbols, __version__, __all__
├─ utils.py # from a_utils.py (imports rewritten to relative)
├─ database.py # from b_database.py
└─ __main__.py # only when application is set in config
docs/
├─ llms.txt # module index with export names
└─ llms-full.txt # complete cleaned source for LLM consumption
$ md bundle app.py
app.py # single file, PEP 723 deps header, entry point appended
# → uv run app.py just works
$ md docs
docs/
├─ llms.txt # module index with export names
└─ llms-full.txt # complete cleaned source
$ md publish [--test]
builds package, then uploads to PyPI (or TestPyPI with --test)
requires ~/.pypirc with token
$ md tidy
removes __pycache__/, __marimo__/, .pytest_cache/, *.pyc
$ md nuke
tidy + removes dist/, docs/, src/, temp/
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
marimo_dev-0.4.4.tar.gz
(10.5 kB
view details)
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_dev-0.4.4.tar.gz.
File metadata
- Download URL: marimo_dev-0.4.4.tar.gz
- Upload date:
- Size: 10.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
756c8c878ac4afa262e34896e85be0d2478d23ae2045395142f34569087d40b2
|
|
| MD5 |
f7f6bc164b0afcb9523d286543f84b13
|
|
| BLAKE2b-256 |
44c56b8d8c053d6ae7633320b7e5c31b23f0b7f2f8602989aaa2288d5baf88c9
|
File details
Details for the file marimo_dev-0.4.4-py3-none-any.whl.
File metadata
- Download URL: marimo_dev-0.4.4-py3-none-any.whl
- Upload date:
- Size: 13.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3917fb9759b898d9301458eb96dda315f6e19ec59e870248a063ea56a76230c7
|
|
| MD5 |
7ca3e728dba3afcd8d727af7758f87be
|
|
| BLAKE2b-256 |
ee51b141aeda34d77c9e117b61d2a027e4ed6162cf5f59ba5332afd4984063cf
|