{#- moonlit docs homepage — standalone landing page (does not extend base.html). The rest of the docs use the default zensical chrome; this page is a full-bleed marketing landing converted from the OpenAfterHours design handoff (Variation A "Night Sky"). -#} {{ config.site_name }} — uv-native Python zipapp builder {% if config.site_description %} {% endif %} {% if config.site_author %} {% endif %} {% set favicon = config.theme.favicon | d("assets/images/favicon.png") %}
{#- Top nav -#}
moonlit OpenAfterHours · v0.1.3
{#- Hero -#}
{#- Stars and glyph backgrounds (decorative) -#}
PRE-RELEASE · NOT PRODUCTION READY
A uv-NATIVE BUNDLER

Pack a Python
project into one file,
after hours.

moonlit is a CLI that bundles a uv-managed project — or an entire uv workspace — into a single self-contained zipapp per PEP 441. No installer. No venv on the host. One .pyz and a Python.

$ uv tool install moonlit COPY
Read the docs View on GitHub
{#- Crescent moon stage (Variation A signature element) -#}
↘ entry: myapp.cli:main
~/dist/myapp.pyz · 4.81 MB
{#- Feature shelf -#}
01 / WORKSPACE-AWARE

Bundles uv workspaces

Walks the workspace graph from pyproject.toml, resolves every member, and packs the closure your entry point actually imports.

02 / FAST

Builds in seconds

Uses uv's resolver and a streaming zipfile writer. A 40-package workspace lands in under a second on a warm cache.

03 / ONE FILE OUT

Single .pyz, no runtime

Output is a stdlib zipapp per PEP 441. Drop it on any host with a compatible CPython — no venv, no installer.

{#- Footer -#}
OpenAfterHours · open source regulatory tools
github docs mit