Installation
Current version
Quick install
Install or upgrade with a single command on macOS and Linux:
curl -fsSL https://files.remotivelabs.com/remotivelabs-cli/install.sh | bash
Piping to bash runs the script without giving you a chance to read it first.
To review it, open
install.sh before
running, or skip the script entirely and follow Manual
installation using your package manager.
On Windows, WSL2 is supported.
Install script options
To pass options through curl … | bash, add -s -- before them:
# Install a specific version
curl -fsSL https://files.remotivelabs.com/remotivelabs-cli/install.sh | bash -s -- 0.23.4
# Force a reinstall even if already up to date
curl -fsSL https://files.remotivelabs.com/remotivelabs-cli/install.sh | bash -s -- -f
# Print what would happen without changing anything
curl -fsSL https://files.remotivelabs.com/remotivelabs-cli/install.sh | bash -s -- --dry-run
How the script installs per platform
| Platform | Method | Fallback |
|---|---|---|
| macOS | Choose Homebrew tap or signed .pkg | - |
| Debian / Ubuntu | apt + RemotiveLabs apt repository | self-contained bundle |
| Red Hat Enterprise Linux (RHEL) / Fedora / SUSE Linux Enterprise (SUSE) | dnf/yum + RemotiveLabs yum repository | self-contained bundle |
| Other Linux (e.g. Arch) | self-contained bundle under ~/.local (no root) | — |
Signed artifacts
Signatures use Privacy Guard (GPG); checksums use Secure Hash Algorithm (SHA) 256-bit digests.
| Artifact | Signed | Notarized | Verified on install by |
|---|---|---|---|
macOS .pkg | ✅ RemotiveLabs Developer ID | ✅ stapled | Gatekeeper + SHA-256 (install script) |
| macOS Homebrew bundle | ✅ RemotiveLabs Developer ID | ❌ | SHA-256 (Homebrew) |
| Debian / Ubuntu (apt) | ✅ signed apt repository | — | apt verifies the repository signature |
| RHEL / Fedora (yum/dnf) | ✅ RemotiveLabs GPG key (from v0.23.5) | — | dnf/yum verifies each package (gpgcheck=1) |
| Linux tar bundle | — | — | SHA-256 (.sha256), verified by the install script |
| Pipx / PyPI wheel | — | — | HTTPS (PyPI) |
Manual install
If you prefer to manage the installation yourself, choose your platform and use one of the methods below instead of the install script.
- Linux (deb/rpm/tar)
- macOS (homebrew, pkg)
- All platforms (pip/pipx)
.deb
On Debian and Ubuntu, add the RemotiveLabs apt repository and install:
curl -fsSL https://packages.remotivelabs.com/apt-repo-signing-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/remotivelabs-apt.gpg
echo "deb [signed-by=/usr/share/keyrings/remotivelabs-apt.gpg] https://packages.remotivelabs.com remotivelabs-apt main" | sudo tee /etc/apt/sources.list.d/remotivelabs.list
sudo apt update
sudo apt install remotivelabs-cli
Upgrade:
sudo apt update
sudo apt install remotivelabs-cli
.rpm
On RHEL, Fedora, and SUSE, add the RemotiveLabs yum repository and install:
sudo tee /etc/yum.repos.d/remotivelabs.repo > /dev/null <<EOF
[remotivelabs]
name=Remotivelabs
baseurl=https://packages.remotivelabs.com/yum/remotivelabs-yum
enabled=1
repo_gpgcheck=0
gpgcheck=1
gpgkey=https://files.remotivelabs.com/remotivelabs-cli/remotivelabs-rpm-signing-key.gpg
EOF
sudo dnf install remotivelabs-cli
Upgrade:
sudo dnf upgrade remotivelabs-cli
On the first install, dnf asks you to confirm the import of the RemotiveLabs
signing key. Its fingerprint is:
97AD 3C39 C481 B264 EECC C165 67AB C659 C983 948B
Packages are GPG-signed from v0.23.5 onwards. To install an older
(unsigned) version, pass --nogpgcheck to dnf.
.tar
A self-contained bundle that ships its own Python, available for x86_64 and
aarch64. It requires glibc, so musl-based distributions such as Alpine aren't
supported (install with pip/pipx instead). This is the best option when you manage
the installation yourself.
Install to ~/.local/opt and add a symlink to your PATH:
VERSION=$(curl -fsSL https://files.remotivelabs.com/remotivelabs-cli/latest/latest-version.txt)
ARCH=$(uname -m) # x86_64 or aarch64
curl -fsSL -O "https://files.remotivelabs.com/remotivelabs-cli/$VERSION/remotivelabs-cli-$VERSION-$ARCH.tar.gz"
mkdir -p ~/.local/opt
tar -xzf "remotivelabs-cli-$VERSION-$ARCH.tar.gz" -C ~/.local/opt
sudo ln -sf ~/.local/opt/remotivelabs-cli/remotive /usr/local/bin/remotive
remotive --version
Install with checksum verification against the published SHA-256 digest:
VERSION=$(curl -fsSL https://files.remotivelabs.com/remotivelabs-cli/latest/latest-version.txt)
ARCH=$(uname -m) # x86_64 or aarch64
curl -fsSL -O "https://files.remotivelabs.com/remotivelabs-cli/$VERSION/remotivelabs-cli-$VERSION-$ARCH.tar.gz"
curl -fsSL -O "https://files.remotivelabs.com/remotivelabs-cli/$VERSION/remotivelabs-cli-$VERSION-$ARCH.tar.gz.sha256"
sha256sum -c "remotivelabs-cli-$VERSION-$ARCH.tar.gz.sha256"
mkdir -p ~/.local/opt
tar -xzf "remotivelabs-cli-$VERSION-$ARCH.tar.gz" -C ~/.local/opt
sudo ln -sf ~/.local/opt/remotivelabs-cli/remotive /usr/local/bin/remotive
remotive --version
Homebrew
Requires Homebrew. Installs the latest version from the RemotiveLabs tap.
brew install remotivelabs/tap/remotivelabs-cli
Upgrade:
brew upgrade remotivelabs/tap/remotivelabs-cli
.pkg
A signed and notarized installer for Apple Silicon (arm64). Useful when you
don't have Homebrew.
Install:
VERSION=$(curl -fsSL https://files.remotivelabs.com/remotivelabs-cli/latest/latest-version.txt)
curl -fsSL -O "https://files.remotivelabs.com/remotivelabs-cli/$VERSION/remotivelabs-cli-$VERSION-arm64.pkg"
sudo installer -pkg "remotivelabs-cli-$VERSION-arm64.pkg" -target /
Install with checksum verification against the published SHA-256 digest:
VERSION=$(curl -fsSL https://files.remotivelabs.com/remotivelabs-cli/latest/latest-version.txt)
curl -fsSL -O "https://files.remotivelabs.com/remotivelabs-cli/$VERSION/remotivelabs-cli-$VERSION-arm64.pkg"
curl -fsSL -O "https://files.remotivelabs.com/remotivelabs-cli/$VERSION/remotivelabs-cli-$VERSION-arm64.pkg.sha256"
shasum -a 256 -c "remotivelabs-cli-$VERSION-arm64.pkg.sha256"
sudo installer -pkg "remotivelabs-cli-$VERSION-arm64.pkg" -target /
Install with the graphical installer (open -W waits until you close the
installer window):
VERSION=$(curl -fsSL https://files.remotivelabs.com/remotivelabs-cli/latest/latest-version.txt)
curl -fsSL -O "https://files.remotivelabs.com/remotivelabs-cli/$VERSION/remotivelabs-cli-$VERSION-arm64.pkg"
open -W "remotivelabs-cli-$VERSION-arm64.pkg"
To uninstall, run remotive-uninstall.
Works on any platform with Python 3.10+ and
Pipx. pipx installs
remotivelabs-cli in a separate virtualenv.
pipx install remotivelabs-cli
Upgrade:
pipx upgrade remotivelabs-cli
Because pipx uses the system's own Python rather than a bundled glibc build,
this is the method to use on musl-based distributions such as Alpine, where the
.deb, .rpm, and .tar bundles don't run.
Proxy and certificates
If you are behind a corporate proxy, set both of these environment variables:
export HTTPS_PROXY=http://proxy:port
export https_proxy=http://proxy:port
If you need to use custom CA certificates:
export REQUESTS_CA_BUNDLE=/path/to/cacerts
export GRPC_DEFAULT_SSL_ROOTS_FILE_PATH=/path/to/cacerts
Verify installation
remotive --version
remotivelabs-cli 0.x.x (python 3.12.11; linux; native)
Authentication
To use RemotiveTopology or RemotiveCloud features you must have a RemotiveCloud account. If you don't have an account, it's created for you during the sign-in process. If your organization has an enterprise account, make sure to log in with the correct email and login option.
Login
When signing in, a web browser is opened to let you sign in with your credentials. Once you have signed in with the browser you are good to go. If you are in an environment where no browser is available, such as a virtual machine or docker, you can use headless support. Note that you still need access to a browser, just not on the target machine.
You can log in with more than one account (email) and have multiple credentials that you can switch between.
- Desktop (normal)
- Headless (virtual machine, etc)
remotive cloud auth login
Follow the authentication flow until your browser says that you have been successfully logged on and then you should see the same output in the terminal.
Successfully logged on
Using the --no-browser option you get a link to the sign-in page to open in a browser on another machine.
$ remotive cloud auth login --no-browser
Copy the following link in a browser to login to cloud, and complete the sign-in prompts:
http://cloud.remotivelabs.com/login?state=ZgFOoT56dmXQJlDYqFX-YA&cli_version=0.1.0&response_type=code&code_challenge=yk2IjvygcxZXdRX0av8LU2OzNq4KOJ1j7eaGg-y14Xg
Once finished, enter the verification code provided in your browser:
Follow the authentication flow until you get prompted to copy the verification code in the browser. Paste verification code into the terminal.
![[Image] Project page](/assets/images/login_ver_code-396f5ce8bc2850e69b7074643f345e69.png)
Once finished, enter the verification code provided in your browser: xxxxxx
Successfully logged on
Existing accounts
If you try to log in and already have existing credentials, you are prompted to use one of these first. Enter or 'Y' (default) lets you activate existing credentials (see below), and 'n' lets you log in again.
You have credentials available already, would you like to choose one of these instead? [Y/n]:
Switch between existing accounts
You can also activate existing accounts using the command below, which gives you the same prompt.
remotive cloud auth activate
Then choose the account to use:
┏━━━┳━━━━━━━━┳━━━━━━┳━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ # ┃ Active ┃ Type ┃ Token ┃ Account ┃ Created ┃ Expires ┃
┡━━━╇━━━━━━━━╇━━━━━━╇━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ 1 │ x │ user │ A75A71ED20AACC48 │ user@domain.com │ 2025-06-16 │ 2026-06-16 │
│ 1 │ │ user │ BC5A719D20DA1C41 │ user2@domain.com │ 2025-06-16 │ 2026-06-16 │
└───┴────────┴──────┴──────────────────┴──────────────────────┴────────────┴────────────┘
Enter the number(# 1-2) of the account to select (q to quit) [1]:
Verify credentials
Verify that you are who you think you are:
remotive cloud auth whoami
{
"firstName": "John",
"lastName": "Dev",
"email": "john.dev@remotivelabs.com",
"picture": "https://lh3.googleusercontent.com/a/asdf=s96-c",
"uid": "xxx"
}
Set default organization
RemotiveTopology requires an organization to work, so you must set a default organization or use an environment variable.
remotive cloud auth organization set --it
This shows you the organizations you have available.
┏━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┓
┃ # ┃ Name ┃ Uid ┃ Default ┃
┡━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━┩
│ 1 │ My org │ my-org │ │
│ 2 │ Another org │ mzfazxo2ypxxd9cbfig │ │
└───┴───────────────┴──────────────────────┴─────────┘
Enter the number(# 1-2) of the organisation to select (or q to quit):
You can also set it directly by organization id with remotive cloud auth organization set <id>, or print the current default with remotive cloud auth organization print.
It's also possible to set this using an environment variable
export REMOTIVE_CLOUD_ORGANISATION=my-org
Specify access token
In CI environments, it's recommended that the access token comes from an
external secret. Set the access token to use with REMOTIVE_CLOUD_AUTH_TOKEN
(introduced in v0.3.5).
export REMOTIVE_CLOUD_AUTH_TOKEN=my-token-xxx