Penv Cloud
Start free
Docs
Guidesince 1.0.0-alpha.3

Install the CLI

Install the penv binary with the shell installer, PowerShell, or npm, and the checks each installer runs.

penv ships as one binary per platform.

Install

curl -fsSL https://penv.cloud/install | sh

Install directory and PATH

Default: $HOME/.penv/bin (Windows: %USERPROFILE%\.penv\bin). The shell installer edits none of your startup files; when the directory is not on your PATH, it prints the line to add:

fish_add_path "$HOME/.penv/bin"                            # fish
echo 'export PATH="$HOME/.penv/bin:$PATH"' >> ~/.zshrc     # zsh
echo 'export PATH="$HOME/.penv/bin:$PATH"' >> ~/.profile   # bash / sh

On Windows, pass -AddToPath, or set PENV_ADD_TO_PATH=1 when piping to iex.

Installer variables

VariableEffectInstaller
PENV_VERSIONRelease tag to install. Default: latest.Both
PENV_INSTALL_DIRInstall directory.Both
PENV_RELEASE_BASEBase URL for release downloads.Both
PENV_TARGETTarget platform triple.install.sh
PENV_ALLOW_ROOT1 allows running as root.install.sh
PENV_ALLOW_ELEVATED1 allows running elevated.install.ps1
PENV_ADD_TO_PATH1 adds the install directory to your user PATH.install.ps1

Both installers refuse root or administrator by default.

curl -fsSL https://penv.cloud/install | PENV_VERSION=v1.0.0 sh   # pin a version

Checksum verification

Both installers check the binary against its published SHA-256 digest before replacing yours; a mismatch installs nothing.

InstallerDownloadEd25519 signature on the checksum file
install.shInto the target directory, then an atomic move over the old binaryChecked when OpenSSL 1.1.1 or newer is on PATH; otherwise skipped with a warning
install.ps1Into a temporary directory; the target directory is created after the digest passesNot checked; SHA-256 only

penv upgrade always checks the signature against release keys compiled into the binary.

Verify

penv --version
penv

penv with no arguments prints your current configuration and the next command to run.

Upgrade

penv upgrade            # install the release /install gives
penv upgrade next       # install the newest release, prereleases included
penv upgrade --check    # report whether you are behind; install nothing

A package-manager install answers managed_install with the manager's command (upgrade penv).

Run the quickstart