Install evnx
Get up and running in seconds. Pick your preferred installation method below.
macOS & Linux
One-liner install via our automated shell script — no Rust toolchain required.
curl -fsSL https://dotenv.space/install.sh | bashCargo (Rust)
Requires Rust 1.70+. Install Rust at rustup.rs. The default install includes the core command set. Add --features full to also get migrate and backup/restore.
Core (default)
cargo install evnxAll features — migrate + backup
cargo install evnx --features full--features migrate— adds theevnx migratecommand--features backup— addsevnx backup/evnx restore--features full— enables both of the above
npm (Node.js)
The npm package is published as @evnx/cli. Install it globally so the evnx binary is available everywhere.
Global install (recommended)
npm install -g @evnx/cliOr run without installing
npx @evnx/cli --versionRequires Node.js 18+. After a global install, run evnx --version to confirm.
pip / pipx (Python)
The package is published on PyPI as evnx. We recommend pipx for CLI tools — it installs into an isolated environment and places the binary on your PATH automatically.
Recommended — pipx
pipx install evnxAlternative — pip (see note below)
pip install evnx⚠️ pip vs pipx
pip install evnx may install the package but not expose the evnx binary on your PATH if you use a virtual environment or a system Python with restricted bin directories. If the evnx command is not found after a pip install, use pipx install evnx instead. Install pipx with pip install pipx or brew install pipx.
Build from Source
If you have rustc or cargo installed, you can compile directly from the GitHub repository.
git clone https://github.com/urwithajit9/evnx.gitcd evnx # Core buildcargo build --release # Full build (migrate + backup features)cargo build --release --features full # Copy to a directory on your PATHcp target/release/evnx ~/.local/bin/
Requires Rust 1.70+. Install Rust via rustup.rs.
Windows
Cargo (recommended)
cargo install evnxThe most reliable option on Windows. Requires Rust — install via rustup.rs.
winget
winget install evnxℹ️ winget support status
A winget package submission is in progress. Until it is accepted into the Windows Package Manager Community Repository, this command may fail with "No package found". If so, use cargo install evnx or npm as the primary Windows installation path.
Verify Installation
Check that evnx is installed correctly:
evnx --versionevnx 0.2.1
Troubleshooting
pip install evnx succeeds but evnx command is not found
This happens when pip installs the package into a location that isn't on your system PATH — common with virtual environments, system Python on macOS/Linux, or --user installs.
Fix: use pipx instead
pip install pipx && pipx install evnxpipx creates a dedicated virtual environment for each CLI tool and automatically adds its binary to your PATH. It is the recommended way to install Python-packaged CLI utilities.
Alternatively, try running python -m evnx as a workaround if pipx isn't available.
npm install @evnx/cli (local) doesn't expose the evnx binary
A local npm install (without -g) places the binary in ./node_modules/.bin/evnx, which is only available inside npm scripts or when you prefix your command with ./node_modules/.bin/.
Fix 1: install globally
npm install -g @evnx/cliFix 2: run without installing via npx
npx @evnx/cli --versionnpx downloads and executes the package on-demand — useful for one-off uses or CI pipelines where you don't want a global install.
cargo: command not found
Rust and Cargo are not installed. Install the full toolchain with:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shThen restart your terminal (or run source ~/.cargo/env) so the new $PATH entry takes effect.
winget install evnx — "No package found matching input criteria"
The winget manifest has not yet been merged into the Windows Package Manager Community Repository. Until the PR is accepted, install via Cargo or npm instead:
cargo install evnxPermission errors during install on macOS / Linux
Never run sudo pip install or sudo npm install -g — this can corrupt system-level Python/Node environments. Instead:
- For pip: switch to
pipx install evnx - For npm: configure npm to use a user-writable global prefix —
npm config set prefix ~/.npm-global, then add~/.npm-global/binto yourPATH - For cargo: no changes needed — cargo installs to
~/.cargo/binby default