:titlesonly:
workflows
commands
locking-behavior
- Python: 3.9+ for the appenv script, 3.10+ for managed environments
- uv: 0.5.0 or later (auto-installed if not found)
Which install method is right for you?
- Want the easiest setup? → Use
uvx appenv init(pulls latest version from PyPI) - No uv available on your machine? → Download appenv script from GitHub directly
All methods give you the same ./appenv file — the only difference is how you get it.
uvx is part of uv — the easiest way to start:
# appenv init is interactive
# Answer:
# httpie as dependency
# http as binary
uvx appenv init myproject
cd myproject
./httpWhat just happened?
- appenv installed itself inplace by adding the
./myproject/appenvscript initcreatedpyproject.tomlinmyprojectand a symlinkhttp → appenv./httpruns thehttpbinary from the appenv-managed venv, with pinned versions fromuv.lock.
The repository now contains:
myproject/
├── appenv # The appenv script (single file, committed to git)
├── http -> appenv # Symlink which tells appenv to run the http binary from the venv
├── .appenv # appenv-managed venv, logs
├── .venv # links to .appenv/venv (for standard dev tools)
├── pyproject.toml # Project config and dependency list
└── uv.lock # Exact versions of all dependencies (committed to git)
Just one file:
mkdir myproject && cd myproject
curl -sL https://raw.githubusercontent.com/flyingcircusio/appenv/master/src/appenv.py -o appenv
chmod +x appenv
# appenv init is interactive
# Answer:
# http as binary
# httpie as dependency
./appenv initFor alpha/beta pre-release versions of appenv, use:
uvx --prerelease allow appenv version- {doc}
workflows— Common usage tips - {doc}
commands— All subcommands and options - Learn more about dependency management: appenv builds on uv
- What is uv? — Overview and key features
- Installing uv — All installation methods
- uv as pip/virtualenv replacement — How uv replaces traditional Python tooling
- What is uv.lock? — Understanding the lockfile
- The uv run command — How appenv executes your tools