# Install the CLI

> Install, verify, upgrade and uninstall the manage-runners CLI on Linux, macOS and Windows, and set up shell completion.

Source: https://managerunners.com/docs/cli/install/

`manage-runners` is a single binary with no dependencies, available for Linux and macOS (`amd64` and `arm64`) and Windows (`amd64`).

## Install on Linux or macOS

```sh
curl -fsSL https://downloads.managerunners.com/cli/latest/install.sh | sh
```

The script detects your system, downloads the latest release, checks its SHA-256 checksum and installs `manage-runners` to `~/.local/bin`. It never uses `sudo` and sends no data besides the downloads. If `~/.local/bin` is not on your `PATH`, the script tells you how to add it.

To choose the directory or a version, pass options after `sh -s --`:

```sh
curl -fsSL https://downloads.managerunners.com/cli/latest/install.sh | sh -s -- --dir "$HOME/bin" --version 1.0.0
```

`MANAGE_RUNNERS_INSTALL_DIR` sets the directory as well. To read the script before running it, download it first and run it with `sh install.sh`.

## Download manually

Version 1.0.1:

| Operating system | Architecture | Archive |
| --- | --- | --- |
| Linux | amd64 | [`manage-runners_1.0.1_linux_amd64.tar.gz`](https://downloads.managerunners.com/cli/1.0.1/manage-runners_1.0.1_linux_amd64.tar.gz) |
| Linux | arm64 | [`manage-runners_1.0.1_linux_arm64.tar.gz`](https://downloads.managerunners.com/cli/1.0.1/manage-runners_1.0.1_linux_arm64.tar.gz) |
| macOS | amd64 (Intel) | [`manage-runners_1.0.1_darwin_amd64.tar.gz`](https://downloads.managerunners.com/cli/1.0.1/manage-runners_1.0.1_darwin_amd64.tar.gz) |
| macOS | arm64 (Apple silicon) | [`manage-runners_1.0.1_darwin_arm64.tar.gz`](https://downloads.managerunners.com/cli/1.0.1/manage-runners_1.0.1_darwin_arm64.tar.gz) |
| Windows | amd64 | [`manage-runners_1.0.1_windows_amd64.zip`](https://downloads.managerunners.com/cli/1.0.1/manage-runners_1.0.1_windows_amd64.zip) |

Checksums: [`checksums.txt`](https://downloads.managerunners.com/cli/1.0.1/checksums.txt). Other releases are at `https://downloads.managerunners.com/cli/<version>/`, with the version in each file name.

### Verify the download

Download `checksums.txt` into the same directory as your archive, then check only your archive:

```sh
archive=manage-runners_1.0.1_linux_amd64.tar.gz            # the file you downloaded
grep -F "  $archive" checksums.txt | sha256sum -c -        # Linux
grep -F "  $archive" checksums.txt | shasum -a 256 -c -    # macOS
```

The command must print `OK`. Stop if it reports a mismatch. Always use the `checksums.txt` of the release folder you downloaded the archive from.

### Install on Linux or macOS

Extract the binary and move it to a directory on your `PATH`:

```sh
tar -xzf "$archive" manage-runners
mkdir -p ~/.local/bin && mv manage-runners ~/.local/bin/
```

### Install on Windows

1. Download the Windows ZIP file and `checksums.txt` from the table above.
2. In PowerShell, run `Get-FileHash -Algorithm SHA256` with the path of the ZIP file and compare the hash with the line for that file in `checksums.txt`. Stop if they differ.
3. Extract the ZIP file and move `manage-runners.exe` to a folder such as `%LOCALAPPDATA%\Programs\manage-runners`.
4. Add that folder to your `PATH` under **Settings > System > About > Advanced system settings > Environment Variables**, then open a new terminal.

Besides the binary, each archive contains the licence (`LICENSE`), a `README.md`, the dependency list and third-party notices, a CycloneDX software bill of materials (`cli-sbom.cdx.json`), and the agent skill (`SKILL.md` with `skill-metadata.json`). It contains no credentials or configuration.

## Check the installation

```sh
manage-runners version
```

`manage-runners version --output json` shows the version, commit, build date and Go version. Then [log in](https://managerunners.com/docs/cli/authentication/).

## Upgrade

Check whether a newer release exists:

```sh
manage-runners version --check
```

It reads only `latest.json` from `downloads.managerunners.com`, reports your version, the latest version and whether an update is available, and exits with code 14 when there is one. The CLI never checks for updates on its own.

To upgrade, run:

```sh
manage-runners self-update
```

`self-update` shows the current and the new version and asks before it changes anything; in scripts and agent mode, pass `--yes`. It downloads the archive for your system from `downloads.managerunners.com`, checks its size and SHA-256 against the release manifest, and replaces the binary it runs from in place, following a symlink to the actual file and keeping its permissions. It works on Linux, macOS and Windows. It never uses `sudo` or administrator rights: if the binary's directory is not writable, it stops and points you to the install script on Linux and macOS, or to the manual download steps on Windows. Development builds cannot update themselves; install a release in the same way.

`self-update --version 1.0.0` installs a specific release. Going back to an older release only happens this way, and the prompt calls it a downgrade. When you are already on the version, nothing changes.

Updating the binary does not touch your profiles, credentials or an installed agent skill. Afterwards, `manage-runners setup skill status --target <agent>` shows whether the installed skill differs from the new version's.

You can also upgrade by running the install script again, or by downloading the new release from [Download manually](#download-manually), verifying it and replacing the binary.

## Uninstall

To uninstall:

1. Run `manage-runners auth logout --revoke --profile <name>` for each profile, to revoke and remove its token.
2. Delete the binary.
3. Delete the `manage-runners` directory in your user configuration directory (for example `~/.config/manage-runners` on Linux).

## Shell completion

`manage-runners completion --shell <shell>` prints a completion script for `bash`, `zsh`, `fish` or `powershell`. For example:

```sh
# bash, current session
source <(manage-runners completion --shell bash)

# zsh, current session
source <(manage-runners completion --shell zsh)

# fish
manage-runners completion --shell fish > ~/.config/fish/completions/manage-runners.fish
```

To load it in every session, add the `source` line to your shell's startup file.
