Skip to main content
m87 is make87’s command line and device runtime for connecting to, debugging, and deploying software to distributed hardware fleets — all over a single outbound connection and without VPNs or inbound firewall rules.

What is m87?

m87 provides secure, outbound-only access to physical devices with a native-feeling development, debugging, and software deployment experience. It consists of two components:
  • m87 command - The CLI you type in your terminal on your developer machine
  • m87 runtime - The on-device process that maintains the outbound connection and executes actions

What makes m87 different

m87 isn’t just remote access — it’s designed so working with real devices feels like local development and deployment:

Outbound-only access

Works behind NATs and firewalls without opening inbound ports or configuring VPNs

Native dev experience

Shell, port forwarding, logs, and live debugging feel like you’re working locally

Deployment-ready

One command line that transitions from access to orchestrating software deployments across fleets
If you’ve ever SSH’d into an embedded device only to run into network traps or scaling pain, m87 makes those workflows easy and repeatable.

Core capabilities

Development and debugging

Use native OS tools and IDEs as if the device were local:

Software deployment

Deploy containers and services using familiar commands:

File operations

Transfer and sync files with SCP and rsync-style commands:

Platform support

Linux (amd64, arm64) - Full functionality (CLI + runtime)macOS (amd64, arm64) - CLI only (use for managing remote devices)

Installation

Get m87 installed on your developer machine and edge devices

Quick start

Connect your first device in under 5 minutes

GitHub repository

View source code, open issues, and contribute

make87 platform

Learn more about the make87 platform

License

The m87 project is open source:
  • m87-client and m87-shared - Apache-2.0
  • m87-server - AGPL-3.0-or-later