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, with machine-env beside it. It never asks for root. Run the same command again to update.
The client needs the OpenSSH client, ssh, which most Linux systems have. If yours does not, run sudo apt install openssh-client on Debian and Ubuntu.
Then
Sign in with machine login, or create an account first. Then run machine account provision to set up account storage. The first session cannot be created until that is done. The docs walk through your first run.
machine-env
The installer also writes machine-env beside machine. It starts a shell in which machine is this client, ahead of any other machine on your PATH. If another command on your system is also named machine, use machine-env. which machine shows which one you get. It is the same file on every system. The prompt starts with (machine), your usual shell setup is loaded, and exit leaves. It supports zsh and bash.
1 | machine-env |
The second form runs one command in that environment and starts no shell, for scripts.
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 | mkdir machine-check && cd machine-check |
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 | curl -fsSO https://testflows.com/machine/keys/machine-client-gpg.asc |
With openssl, a good signature prints Verified OK:
1 | curl -fsSO https://testflows.com/machine/keys/machine-client-rsa.pub.pem |
Last, check the file against the checksum, and against the client you installed. If a check fails, delete the client and install again.
1 | sha256sum -c machine.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 | machine logout |
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, with machine-env beside it. It never asks for root. Run the same command again to update.
The client needs the OpenSSH client, ssh, which most Linux systems have. If yours does not, run sudo apt install openssh-client on Debian and Ubuntu.
Then
Sign in with machine login, or create an account first. Then run machine account provision to set up account storage. The first session cannot be created until that is done. The docs walk through your first run.
machine-env
The installer also writes machine-env beside machine. It starts a shell in which machine is this client, ahead of any other machine on your PATH. If another command on your system is also named machine, use machine-env. which machine shows which one you get. It is the same file on every system. The prompt starts with (machine), your usual shell setup is loaded, and exit leaves. It supports zsh and bash.
1 | machine-env |
The second form runs one command in that environment and starts no shell, for scripts.
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 | docker build --platform linux/amd64 -t 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 | mkdir machine-check && cd machine-check |
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 | curl -fsSO https://testflows.com/machine/keys/machine-client-gpg.asc |
With openssl, a good signature prints Verified OK:
1 | curl -fsSO https://testflows.com/machine/keys/machine-client-rsa.pub.pem |
Last, check the file against the checksum, and against the client you installed. If a check fails, delete the client and install again.
1 | sha256sum -c machine-linux-arm64.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 | machine logout |
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, with machine-env beside the link. It never asks for your password. Run the same command again to update.
Macs with an Intel processor are not supported.
macOS already has a machine command. Use machine-env, below, to run this one.
Then
Sign in with machine login, or create an account first. Then run machine account provision to set up account storage. The first session cannot be created until that is done. The docs walk through your first run.
macOS has its own machine command
macOS ships /usr/bin/machine, which prints the processor type, such as arm64. Typing machine runs that one unless this client comes first on your PATH, and putting it first hides the system one for every other program. machine-env avoids both. It starts a shell in which machine is this client and leaves the rest of your system alone. The prompt starts with (machine), your usual shell setup is loaded, and exit leaves. It supports zsh and bash.
1 | machine-env |
The second form runs one command in that environment and starts no shell, for scripts and CI. To see which machine you get, run which machine: ~/.local/bin/machine is this client and /usr/bin/machine is the system's. If machine --version prints a processor type instead of a version, you are running the system command. If your shell cannot find machine-env either, run ~/.local/bin/machine-env. Linux and every other system get the same file.
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 | docker build --platform linux/amd64 -t 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 | mkdir machine-check && cd machine-check |
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 | curl -fsSO https://testflows.com/machine/keys/machine-client-gpg.asc |
With openssl, a good signature prints Verified OK:
1 | curl -fsSO https://testflows.com/machine/keys/machine-client-rsa.pub.pem |
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 | machine logout |
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.
Then
Sign in with machine login, or create an account first. Then run machine account provision to set up account storage. The first session cannot be created until that is done. The docs walk through your first run.
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.