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.2.tar.gz
(10.4 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.2.tar.gz.
File metadata
- Download URL: marimo_dev-0.4.2.tar.gz
- Upload date:
- Size: 10.4 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 |
c3ee66b34f490144f7bb8898ad9a01bf3e1a3b7f7de288d57a7b470a6f9450d4
|
|
| MD5 |
b2d4c896c05348e290b24274a82b4329
|
|
| BLAKE2b-256 |
aaed4ded3fb3da6db32746e87273d25faff06cfad3c0fa06e9674e35a0aaa706
|
File details
Details for the file marimo_dev-0.4.2-py3-none-any.whl.
File metadata
- Download URL: marimo_dev-0.4.2-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 |
cec85d336858bbdc95bacc4c9ff3e5f72112a0645ca36753c8284a34173cac88
|
|
| MD5 |
4e2e5cfc5e803a64e3597bf1b40f54bc
|
|
| BLAKE2b-256 |
d51030e5050aee20e6745fc382b3348213f35e5520c95e8973e725867fa83a3e
|