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:m87command - 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
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)
Quick links
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