# mm --help

    machine_manager --version
    machine_manager --help
    machine_manager help subcommand


    ls                      List machines
    ssh_config              Output an SSH config with all machines to stdout
    connectivity            Output a machine connectivity graph as a .dot file
                            to stdout, for use with Graphviz
    wireguard_config        Output a WireGuard configuration file for a machine
                            to stdout
    hosts_json_file         Output the .wg and .pi hosts for a machine as JSON
                            to stdout
    portable_erlang         Write a portable Erlang installation to the given
                            directory (must not exist)
    script                  Write a configuration script suitable for a
                            particular machine.  Note that tags must be passed
                            to the script as arguments when it is run on the
                            target machine.
    configure               Configure machines
    upgrade                 Upgrade all packages to the new versions in our
                            'pending upgrades' list for machines
    reboot                  Shut down and reboot machines
    shutdown                Shut down and power-off machines
    probe                   Probe machines
    exec                    Execute command on machines
    add                     Add a machine
    rm                      Remove machines
    tag                     Add tags to machines
    untag                   Remove tags from machines
    get-tags                Get tags for a machine in alphanumeric order, one
                            tag per line
    set-public-ip           Set new public IP for a machine
    set-ssh-port            Set a new SSH port for machines
    rekey-wireguard         Regenerate WireGuard keys for machines