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.py is the entire tool — drop it into any repository

  • Symlink dispatch: ./http (where http appenv) runs the http binary from the pinned venv

  • Reproducible everywhere: commit appenv, pyproject.toml, and uv.lock — every checkout gets identical versions

  • Multiple 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.