Skip to main content

Ivaldi

Ivaldi turns a Python project into a platform-specific, one-file launcher. The launcher embeds the project's wheel and configuration, installs a UV-managed Python environment on its first run, and forwards every later invocation to the installed application.

Configuration

Add ivaldi.toml to the project being wrapped:

[app]
entrypoint = "my_package.cli:main"
include = ["my_package/**/*", "README.md"]

[app.build]
# Bundle dependency wheels for an offline installation.
include_wheels = true
# Build and install every optional dependency group.
all_extras = false

[app.install]
compile_bytecode = true
exact = false
strict = false

[python]
version = "3.14"

[darwin]
name = "My Application"
alias = "my-app"
location = "com.example.my-app"
add_to_path = true
admin = false

[linux]
name = "My Application"
alias = "my-app"
location = "my-app"
add_to_path = true
admin = false

[windows]
name = "My Application"
alias = "my-app"
location = "MyApplication"
add_to_path = true
admin = false

include controls which source files are copied to Ivaldi's clean wheel-build stage. pyproject.toml is always included. Add any files referenced by the build configuration, such as a README or license.

alias is the installed command name. When add_to_path is true, the compiled launcher is copied into the platform command directory under that name; when false, no command alias is installed.

admin accepts true, false, "install", or "run". true requires sudo/administrator privileges for both installation and application runs, "install" requires them only for first-run installation, "run" requires them only for the installed application, and false never requires them. Ivaldi does not elevate itself: it stops and asks to be rerun with sudo (or as Administrator on Windows). An "install"-only sudo invocation exits after installation so the application can subsequently be run without elevation.

Build and run

From the wrapped project:

ivaldi build

The command builds the project wheel in an isolated environment, places the wheel and ivaldi.toml in the embedded payload, optionally collects dependency wheels, and invokes Nuitka. The generated launcher is written to the project's dist/ directory using the current platform's alias. Nuitka uses cached onefile extraction under a cache directory named by the platform's location value.

If dependency wheels are requested, Ivaldi uses uv from PATH when available. Otherwise it downloads the configured UV release into a versioned local tool cache and uses that copy.

On the launcher's first run, Ivaldi downloads UV and the configured Python, creates a dedicated virtual environment in the platform data directory, installs the embedded wheel, and runs the configured entrypoint. Subsequent runs skip installation and forward their arguments through UV to that managed Python environment.

Metadata

Release files for ivaldi 0.2.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ivaldi 0.2.8
File Size Uploaded
ivaldi-0.2.8.tar.gz 12.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ivaldi 0.2.8
File Interpreter ABI Platform
ivaldi-0.2.8-py3-none-any.whl Python 3 none any Details

Total release size: 31.5 kB

Release files / ivaldi-0.2.8.tar.gz

Download URL ivaldi-0.2.8.tar.gz
Size 12.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c4b4f149209bd0c40a6188660593998e0724e07fbee8bc420f8ff7bf1960434d
BLAKE2b-256 checksum
How to use checksums
b1fc2d661faa0e2b4fdf502047b9ec9ffc79f1b9b5a5a6bc8415befea2e6093e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log

Release files / ivaldi-0.2.8-py3-none-any.whl

Download URL ivaldi-0.2.8-py3-none-any.whl
Size 18.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fda4149b4dd76bd6a3c9d041c798f8149643d46b0dd0b7c947b5f5e4272b4847
BLAKE2b-256 checksum
How to use checksums
98171c72eb71badb10d6db172c77bc888008ad7c04aa9de84f8ba4b8478c69ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log

Release history Release notifications | RSS feed

0.4.0

2 release files

0.3.9

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

This release

0.2.8 This release

2 release files

0.1.7

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page