# Install the CLI (/docs/developer-resources/cli/install)

Each release of the Monime CLI is published for macOS, Linux and Windows, on both amd64 and arm64. The install scripts download the release for your platform, check it against the release's SHA-256 checksums, and install it without needing administrator rights.

## Install

**Tab: macOS and Linux**

```bash
curl -fsSL https://cli.monime.io/install.sh | sh
```

The script installs `monime` to `~/.local/bin`. If that folder is not on your `PATH`, it adds it in your shell's startup file (`~/.zshrc`, `~/.bashrc`, `~/.bash_profile` on macOS, fish's `conf.d`, or `~/.profile`). Set `MONIME_NO_MODIFY_PATH=1` to leave your startup files alone.

**Tab: Windows**

In PowerShell:

```powershell
irm https://cli.monime.io/install.ps1 | iex
```

The script installs `monime.exe` to `%LOCALAPPDATA%\Programs\monime` and adds that folder to your user `PATH`.

**Tab: Manual download**

Download the archive for your platform from the [latest release](https://github.com/monimesl/cli-releases/releases/latest), extract it and put `monime` (or `monime.exe`) on your `PATH`.

Each release lists its SHA-256 checksums in `monime_<version>_checksums.txt`, so you can verify the download yourself.

### Choose a version or folder

Both install scripts read `MONIME_VERSION` and `MONIME_INSTALL_DIR`:

**Tab: macOS and Linux**

```bash
curl -fsSL https://cli.monime.io/install.sh \
  | MONIME_VERSION=0.1.0 MONIME_INSTALL_DIR="$HOME/bin" sh
```

**Tab: Windows**

```powershell
$env:MONIME_VERSION = "0.1.0"
$env:MONIME_INSTALL_DIR = "C:\tools\monime"
irm https://cli.monime.io/install.ps1 | iex
```

## Check the installation

Open a new terminal so your updated `PATH` is picked up, then run:

```bash
monime version
```

## Update

The CLI tells you when a new release is out. To update, run:

```bash
monime update
```

`monime update` downloads the release, checks it against the release's checksums, and then replaces itself.

| Command                         | What it does                                    |
| ------------------------------- | ----------------------------------------------- |
| `monime update`                 | Update to the latest release                    |
| `monime update --check`         | Only check whether a newer release is available |
| `monime update --version 0.1.0` | Install a specific version                      |

> **Note:** Set `MONIME_NO_UPDATE_NOTIFIER=1` to turn off the new-release notice, for example on build servers.

## Shell completion

`monime completion` prints a completion script for your shell, so you can press Tab to complete commands, flags and arguments.

**Tab: zsh**

```bash
# This session only
source <(monime completion zsh)

# Every new session (macOS with Homebrew)
monime completion zsh > $(brew --prefix)/share/zsh/site-functions/_monime

# Every new session (Linux)
monime completion zsh > "${fpath[1]}/_monime"
```

**Tab: bash**

```bash
# This session only
source <(monime completion bash)

# Every new session (macOS with Homebrew)
monime completion bash > $(brew --prefix)/etc/bash_completion.d/monime

# Every new session (Linux)
monime completion bash > /etc/bash_completion.d/monime
```

**Tab: fish**

```bash
# This session only
monime completion fish | source

# Every new session
monime completion fish > ~/.config/fish/completions/monime.fish
```

**Tab: PowerShell**

```powershell
monime completion powershell | Out-String | Invoke-Expression
```

To load completion in every session, add that line to your PowerShell profile.

Start a new shell for the setup to take effect.

## Next steps

- [**Log in and choose a Space**](/docs/developer-resources/cli/login-and-spaces)

  Log in with your browser and pick the Space to work in.

- [**CI and scripts**](/docs/developer-resources/cli/ci-and-scripts)

  Use the CLI on build servers with an access token.
