# Install

Install Pentect on Windows, macOS, or Linux.

## Windows

Run in PowerShell:

```powershell
irm https://pentect.dev/install | iex
```

## macOS and Linux

::: code-group

```sh [Shell]
curl -fsSL https://pentect.dev/install.sh | sh
```

```sh [Homebrew]
brew install EdamAme-x/pentect/pentect
```

```sh [Nix]
nix profile install github:EdamAme-x/pentect
```

```sh [Nix · temporary shell]
nix shell github:EdamAme-x/pentect
```

```sh [npm]
npm install --global github:EdamAme-x/pentect
```

```sh [Cargo · build from source]
cargo install --git https://github.com/EdamAme-x/pentect --locked pentect-cli
```

```sh [APT · Debian / Ubuntu]
curl -fsSL https://pentect.dev/install-apt.sh | sudo sh
```

:::

The direct installers detect the current platform, download a GitHub Release
asset, and verify its SHA-256 checksum.

The npm package installs the same checksummed release binary. `nix shell` opens
a temporary environment without adding Pentect to your profile. Cargo builds
Pentect from source and therefore takes longer than the binary installers.

## Verify the installation

```sh
pentect doctor
```

`doctor` checks whether Pentect and supported clients are ready. If it reports
a repairable problem, review the proposed change before using:

```sh
pentect doctor --fix
```

## Install a specific version

::: code-group

```powershell [Windows]
& ([scriptblock]::Create((irm https://pentect.dev/install))) -Version X.Y.Z
```

```sh [macOS / Linux]
curl -fsSL https://pentect.dev/install.sh | sh -s -- --version X.Y.Z
```

:::

::: info
When Pentect was installed through Homebrew, Nix, or apt, update and uninstall
it through the same package manager.
:::

## Update or uninstall

```sh
pentect update
pentect update X.Y.Z
pentect uninstall
```
