Download client

The Machine client is one small program called machine. Pick your system.

Install

Run this in a terminal.

1
curl https://testflows.com/machine/install -fsS | bash

It verifies the download and puts the client in ~/.local/bin. It never asks for root. Run the same command again to update.

Check the download

The installer already verifies every download. To check by hand, download the files without installing them, with your version in place of YYYYMMDD-HHMM (machine --version shows it):

1
2
mkdir machine-check && cd machine-check
curl https://testflows.com/machine/install -fsS | MACHINE_VERSION=YYYYMMDD-HHMM bash -s -- --download

That fetches machine, its checksum, and two signatures of the checksum. We sign only the checksum, so verify the signature first, with either tool.

With GPG, the key's fingerprint must match the GPG fingerprint. gpg then prints Good signature; its warning that the key is not certified is normal.

1
2
3
4
curl -fsSO https://testflows.com/machine/keys/machine-client-gpg.asc
gpg --show-keys --fingerprint machine-client-gpg.asc
gpg --import machine-client-gpg.asc
gpg --verify machine.sha256.asc machine.sha256

With openssl, a good signature prints Verified OK:

1
2
curl -fsSO https://testflows.com/machine/keys/machine-client-rsa.pub.pem
openssl dgst -sha256 -verify machine-client-rsa.pub.pem -signature machine.sha256.sig machine.sha256

Last, check the file against the checksum, and against the client you installed. If a check fails, delete the client and install again.

1
2
sha256sum -c machine.sha256
cmp machine "$(command -v machine)"

To read the installer before you run it, pipe it to less instead of bash.

Uninstall

Sign out, then delete the client and what it stored.

1
2
3
machine logout
rm ~/.local/bin/machine
rm -rf ~/.cache/machine ~/.testflows/machine

Install

Run this in a terminal.

1
curl https://testflows.com/machine/install -fsS | bash

It verifies the download and puts the client in ~/.local/bin. It never asks for root. Run the same command again to update.

Disks hold x86_64 programs

A machine is an x86_64 computer, so its disks hold linux/amd64 programs. Docker on ARM builds arm64 images by default, so ask for linux/amd64:

1
2
docker build --platform linux/amd64 -t myapp:latest .
docker pull --platform linux/amd64 myapp:latest

The docs cover Compose projects and binaries.

Check the download

The installer already verifies every download. To check by hand, download the files without installing them, with your version in place of YYYYMMDD-HHMM (machine --version shows it):

1
2
mkdir machine-check && cd machine-check
curl https://testflows.com/machine/install -fsS | MACHINE_VERSION=YYYYMMDD-HHMM bash -s -- --download

That fetches machine-linux-arm64, its checksum, and two signatures of the checksum. We sign only the checksum, so verify the signature first, with either tool.

With GPG, the key's fingerprint must match the GPG fingerprint. gpg then prints Good signature; its warning that the key is not certified is normal.

1
2
3
4
curl -fsSO https://testflows.com/machine/keys/machine-client-gpg.asc
gpg --show-keys --fingerprint machine-client-gpg.asc
gpg --import machine-client-gpg.asc
gpg --verify machine-linux-arm64.sha256.asc machine-linux-arm64.sha256

With openssl, a good signature prints Verified OK:

1
2
curl -fsSO https://testflows.com/machine/keys/machine-client-rsa.pub.pem
openssl dgst -sha256 -verify machine-client-rsa.pub.pem -signature machine-linux-arm64.sha256.sig machine-linux-arm64.sha256

Last, check the file against the checksum, and against the client you installed. If a check fails, delete the client and install again.

1
2
sha256sum -c machine-linux-arm64.sha256
cmp machine-linux-arm64 "$(command -v machine)"

To read the installer before you run it, pipe it to less instead of bash.

Uninstall

Sign out, then delete the client and what it stored.

1
2
3
machine logout
rm ~/.local/bin/machine
rm -rf ~/.cache/machine ~/.testflows/machine

Install

Run this in Terminal.

1
curl https://testflows.com/machine/install -fsS | bash

It verifies the download, installs the client under ~/.local/share/machine/, and links it from ~/.local/bin. It never asks for your password. Run the same command again to update.

Macs with an Intel processor are not supported.

Disks hold x86_64 programs

A machine is an x86_64 computer, so its disks hold linux/amd64 programs. Docker on ARM builds arm64 images by default, so ask for linux/amd64:

1
2
docker build --platform linux/amd64 -t myapp:latest .
docker pull --platform linux/amd64 myapp:latest

The docs cover Compose projects and binaries.

Check the download

The installer already verifies every download. To check by hand, download the files without installing them, with your version in place of YYYYMMDD-HHMM (machine --version shows it):

1
2
mkdir machine-check && cd machine-check
curl https://testflows.com/machine/install -fsS | MACHINE_VERSION=YYYYMMDD-HHMM bash -s -- --download

That fetches machine-darwin-arm64.tar.gz, its checksum, and two signatures of the checksum. We sign only the checksum, so verify the signature first, with either tool. Macs ship with openssl but not gpg.

With GPG, the key's fingerprint must match the GPG fingerprint. gpg then prints Good signature; its warning that the key is not certified is normal.

1
2
3
4
curl -fsSO https://testflows.com/machine/keys/machine-client-gpg.asc
gpg --show-keys --fingerprint machine-client-gpg.asc
gpg --import machine-client-gpg.asc
gpg --verify machine-darwin-arm64.tar.gz.sha256.asc machine-darwin-arm64.tar.gz.sha256

With openssl, a good signature prints Verified OK:

1
2
curl -fsSO https://testflows.com/machine/keys/machine-client-rsa.pub.pem
openssl dgst -sha256 -verify machine-client-rsa.pub.pem -signature machine-darwin-arm64.tar.gz.sha256.sig machine-darwin-arm64.tar.gz.sha256

Last, check the archive against the checksum. If it fails, delete it and install again.

1
shasum -a 256 -c machine-darwin-arm64.tar.gz.sha256

To read the installer before you run it, pipe it to less instead of bash.

Uninstall

Sign out, then delete the client and what it stored.

1
2
3
machine logout
rm ~/.local/bin/machine
rm -rf ~/.local/share/machine ~/.testflows/machine

Install

The client runs inside WSL, the Linux that comes with Windows. If you don't have WSL yet, install it from PowerShell, then restart:

1
wsl --install

Open your Linux distribution and follow the steps for Linux (x64), or Linux (ARM64) on Windows on ARM. Not sure which? uname -m prints x86_64 or aarch64.

Other systems

Linux (x64 and ARM64) and Macs with Apple Silicon are supported. On Windows, use WSL.

Need another platform? Tell us which one.

Release keys

Every release's checksum is signed with two keys: a GPG key, whose fingerprint is published as the GPG fingerprint, and an RSA key for openssl.

If the keys change, this page and the installer carry the new ones. A check that fails with an old key should pass once you download again.

A specific version

The installer gets the latest release. To install a particular one, set MACHINE_VERSION:

1
curl https://testflows.com/machine/install -fsS | MACHINE_VERSION=YYYYMMDD-HHMM bash

Set MACHINE_INSTALL_DIR to install somewhere other than ~/.local/bin. --no-signature and --no-checksum skip checks; a normal install needs neither.

Then

Sign in with machine login, or create an account first. The docs walk through your first run.