> ## Documentation Index
> Fetch the complete documentation index at: https://zerv.wisl.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Installation

> Install zerv from PyPI, crates.io, or a pre-built binary.

## Requirements

* **PyPI wheel**: Python 3.10 through 3.14. The wheel bundles the compiled binary; no Rust
  toolchain is needed.
* **crates.io / pre-built binaries**: no runtime dependencies at all.

## Install

Python via uv (recommended for a global CLI tool):

```bash theme={null}
uv tool install zerv-version
```

Python via pip:

```bash theme={null}
pip install zerv-version
```

Python as a project dependency:

```bash theme={null}
uv add zerv-version
```

Rust via cargo:

```bash theme={null}
cargo install zerv
```

Installation script (latest version):

```bash theme={null}
curl -sSL https://raw.githubusercontent.com/wislertt/zerv/main/scripts/install.sh | bash
```

Installation script (specific version):

```bash theme={null}
curl -sSL https://raw.githubusercontent.com/wislertt/zerv/main/scripts/install.sh | bash -s vX.X.X
```

Pre-built binaries are also available on the
[releases page](https://github.com/wislertt/zerv/releases).

## Verify the install

```bash theme={null}
zerv --version
```

## Use from Python

The PyPI wheel also exposes a Python binding:

```python theme={null}
import zerv

# stdin carries a Zerv RON payload (same piping pattern as the CLI);
# in a git repo, plain zerv.version() reads the repository instead
zerv.version(source="stdin", stdin=ZERV_RON, output_format="semver")
# "1.2.3"
```

Every CLI option from [`zerv version`](/cli/version) maps to a keyword argument.

## Uninstall

```bash theme={null}
# Rust/cargo
cargo uninstall zerv

# Python (pip)
pip uninstall zerv-version

# Python (uv tool)
uv tool uninstall zerv-version

# Manual binary
rm ~/.local/bin/zerv
```
