Skip to main content
Mole reading CLI docs

CLI Reference

Everything you need to set up agents, manage certificates, transfer files, and run commands on remote systems - all from the command line.

Quick reference:

I want to...Command
Set up a new agent interactivelymuti-metroo setup
Start an agentmuti-metroo run -c config.yaml
Create TLS certificatesmuti-metroo cert ca / muti-metroo cert agent
Generate a password hashmuti-metroo hash
Run a command on a remote agentmuti-metroo shell <agent-id> <command>
Transfer filesmuti-metroo upload / muti-metroo download
Ping a host through the meshmuti-metroo ping <agent-id> <destination>
Test if a listener is reachablemuti-metroo probe <address>
Test connectivity to all mesh agentsmuti-metroo mesh-test
Install as a system servicemuti-metroo service install

HTTP API

All CLI commands that query agent state use the HTTP API to communicate with agents.

AspectDetails
Local queriesstatus, peers, routes
Remote operationsshell, upload, download
Default addresslocalhost:8080
Configurationhttp.address in config
# Query local agent (default: localhost:8080)
muti-metroo status
muti-metroo peers
muti-metroo routes

# Query different agent
muti-metroo status -a 192.168.1.10:8080
muti-metroo peers -a 192.168.1.10:8080

# Execute command on remote agent
muti-metroo shell <target-agent-id> whoami
muti-metroo shell --tty <target-agent-id> bash

# Transfer files
muti-metroo upload <target-agent-id> ./file.txt /tmp/file.txt
muti-metroo download <target-agent-id> /tmp/file.txt ./file.txt

Global Flags

Available for all commands:

  • -h, --help: Show help for command
  • -v, --version: Show version information

Commands

CommandDescription
runRun agent with configuration file
initInitialize agent identity
setupInteractive setup wizard
certCertificate management (CA, agent, client)
hashGenerate bcrypt password hash
statusShow agent status via HTTP API
peersList connected peers via HTTP API
routesList route table via HTTP API
pingSend ICMP echo requests through the mesh
probeTest connectivity to a listener (standalone)
probe listenStart a test listener for connectivity probing
mesh-testTest connectivity to all mesh agents
shellInteractive or streaming remote shell
uploadUpload file to remote agent
downloadDownload file from remote agent
serviceService management (install, uninstall, status)
management-keyGenerate and manage mesh topology encryption keys
signing-keyGenerate and manage Ed25519 signing keys for sleep/wake authentication
display-nameSet or get agent display name dynamically

Quick Examples

# Start agent
muti-metroo run -c config.yaml

# Interactive setup
muti-metroo setup

# Generate CA
muti-metroo cert ca --cn "My CA"

# Generate password hash for config
muti-metroo hash --cost 12

# Check agent status
muti-metroo status

# Check agent on different port
muti-metroo status -a localhost:9090

# Test connectivity to a listener (no running agent needed)
muti-metroo probe server.example.com:4433
muti-metroo probe --transport h2 server.example.com:443

# Start a test listener (ephemeral certs, no config needed)
muti-metroo probe listen -T quic -a 0.0.0.0:4433

# List connected peers
muti-metroo peers

# List route table
muti-metroo routes

# Test connectivity to all mesh agents
muti-metroo mesh-test
muti-metroo mesh-test --json

# Ping a host through the mesh (via exit agent)
muti-metroo ping agent123 10.0.0.1
muti-metroo ping -c 5 agent123 192.168.1.1

# Execute remote command
muti-metroo shell agent123 whoami
muti-metroo shell --tty agent123 bash

# Upload file
muti-metroo upload agent123 local.txt /tmp/remote.txt

# Set display name
muti-metroo display-name set "My Gateway"
muti-metroo display-name get