Skip to main content

Uncompose Project

Local-first provenance for derived audio.

uncompose-project turns a directory into a project with a single portable manifest, uncompose.project.json. When you derive audio from other audio — stem separations, renders, edits — the results otherwise accumulate as loose files with no trustworthy record of where they came from or whether they have silently changed. This tool records each file's identity (sha256 + size) the moment you register it and lets you verify, at any time, that the files on disk still match. The manifest is plain, diffable JSON conforming to a published schema, so it outlives the tool and is readable by the rest of the Uncompose family.

Status

Pre-v0.1: the first release is being built in the open on the issue tracker, with decisions recorded in docs/adr/. The install line below goes live with the v0.1.0 tag. See the release notes and known limitations for what v0.1 does and does not do.

Install

pip install uncompose-project        # placeholder — lands with v0.1.0

Commands

init creates a project, add registers a file as an asset, verify checks the registered assets (and any imported comparison records) against disk, and show renders the manifest. import reads an evidence file and, by its schema, lands either a completed uncompose job record (its source, output stems, and their derivation) or a uncompose-compare comparison record (an evaluation of assets it already tracks) in one step — see Importing evidence for what each records, what they refuse and why, and how re-import stays idempotent.

Every command takes --project <dir> (default .) to name the project root explicitly, so you can operate on a project from any directory; it names the root itself, with no search of parent directories. Every manifest write — init, add, import, and the last_verified stamp verify leaves on assets that pass — serializes behind an advisory lock at <root>/.uncompose.project.lock, so concurrent writers wait rather than corrupt or lose a write. Reading and hashing take no lock.

Responsible use

uncompose-project records and verifies audio you provide, entirely on your own machine — nothing is uploaded anywhere, no accounts, no telemetry, no network I/O. You are responsible for making sure you have the rights to the audio you register, and the rights to what you do with it follow from the rights you hold in the input. Recording a file's provenance does not grant you any rights to it.

Family

uncompose-project is part of the Uncompose family of local-first audio tools. It runs standalone as uncompose-project, and — per the family dispatch contract (uncompose ADR-0005) — as uncompose project <args> from the root CLI, including --version and --help.

License

MIT © 2026 Dominic Hanzely

Release files for uncompose-project 0.1.0

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

Built distribution (wheel)

Table of built distributions (wheels) for uncompose-project 0.1.0
File Interpreter ABI Platform
uncompose_project-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details

Release files / uncompose_project-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL uncompose_project-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.1 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
686f1ec79f40922049dde719bec5fbe91fc6a717054bd5afd5b586dc60059e2c
BLAKE2b-256 checksum
How to use checksums
de9b23597b236d378879073b5e34d479f5e9bef0aea8149cef2e5347fa809606
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 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

1 release file

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