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
Recommended installation
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.
- Download the appropriate binary for your platform
- Extract the archive
- 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:Clone the repository
git clone https://github.com/make87/m87.git
cd m87
Build the release binary
The binary will be created at target/release/m87. 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.Build the Docker image
git clone https://github.com/make87/m87.git
cd m87
docker build -f m87-client/Dockerfile -t m87 .
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
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:
You should see output showing the current version:
Updating m87
To update to the latest version:
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:
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