appenv¶
appenv is a single Python file that pins packages to exact versions and exposes their binaries via symlinks. Drop it into a repository, commit it, and every checkout gets the same tools at the same versions — locally and on remote machines.
Built on uv for environment management.
appenv never modifies your system — all state lives in .appenv/ inside the
project directory. Remove that folder and nothing is left behind.
Core Concepts¶
Single-file deployment:
appenv.pyis the entire tool — drop it into any repositorySymlink dispatch:
./http(wherehttp → appenv) runs thehttpbinary from the pinned venvReproducible everywhere: commit
appenv,pyproject.toml, anduv.lock— every checkout gets identical versionsMultiple binaries: create additional symlinks to expose more tools from the same venv
Requires Python 3.9+ (managed environments need 3.10+). uv 0.5.0+ is auto-installed if not found. pyproject.toml must sit next to the appenv script.
Getting Started¶
New to appenv? Start with the Common Workflows — practical examples for setting up a project, adding dependencies, and integrating with CI/CD.
For reference material, see Commands Reference and Locking Behavior.