Skip to main content
The m87 CLI can be installed on both your developer machine (for managing devices) and on edge devices (to run the runtime).

System requirements

Linux

Full support (amd64, arm64)CLI + runtime functionality

macOS

CLI only (amd64, arm64)For managing remote devices
Rust requirement for building from source: Rust 1.85 or later
The fastest way to get started is using the one-line installer:
curl -fsSL https://get.make87.com | sh
This installs the latest version to $HOME/.local/bin. Make sure this directory is in your $PATH:
export PATH="$HOME/.local/bin:$PATH"
Add the export command to your shell configuration file (~/.bashrc, ~/.zshrc, etc.) to make it permanent.

Alternative installation methods

Download a pre-built binary from the GitHub releases page.
  1. Download the appropriate binary for your platform
  2. Extract the archive
  3. Move the binary to a location in your $PATH:
# Example for Linux
sudo mv m87 /usr/local/bin/
sudo chmod +x /usr/local/bin/m87
Build the binary yourself from the source code:
1

Clone the repository

git clone https://github.com/make87/m87.git
cd m87
2

Build the release binary

cargo build --release
The binary will be created at target/release/m87.
3

Install to your PATH

cp target/release/m87 $HOME/.local/bin/
# Or system-wide:
sudo cp target/release/m87 /usr/local/bin/
Build configuration is auto-detected by OS:
  • Linux: Full functionality (CLI + runtime)
  • macOS: CLI only
Run m87 from a container without installing anything locally. Useful for CI pipelines or keeping your system clean.
1

Build the Docker image

git clone https://github.com/make87/m87.git
cd m87
docker build -f m87-client/Dockerfile -t m87 .
2

Run m87 commands

Configuration persists in ~/.config/m87:
docker run -it --rm \
  --user "$(id -u):$(id -g)" \
  -v "$HOME/.config/m87:/.config/m87" \
  -e HOME=/ \
  m87 login
3

Optional: Create an alias

For convenience, add an alias to your shell configuration:
alias m87='docker run -it --rm --user "$(id -u):$(id -g)" -v "$HOME/.config/m87:/.config/m87" -e HOME=/ m87'
Now you can use m87 commands directly:
m87 devices list
m87 my-device shell

Verify installation

Confirm that m87 is installed correctly:
m87 version
You should see output showing the current version:
m87 [version]

Updating m87

To update to the latest version:
m87 update
This downloads and installs the latest m87 binary.
If you’re running the m87 runtime on a device, you’ll need to restart it after updating:
m87 runtime restart

Update a remote device

To update m87 on a remote device:
m87 my-device exec -it -- 'm87 update && m87 runtime restart'

Next steps

Quick start

Connect your first device in under 5 minutes