Install

From zero to your first server

The on-server companion is rootmote-agent, a single Go binary that binds only to loopback. The app reaches it through an SSH tunnel; nothing new is exposed to the internet.

  1. 01

    Install the agent on a Linux VPS

    Run as root on the server:

    Linux (systemd)
    $ curl -fsSL https://raw.githubusercontent.com/rockclaver/rootmote-agent/main/scripts/install.sh | sudo bash

    The installer creates a rootmote system user, drops the binary at /usr/local/bin/rootmote-agent, installs and starts the systemd unit, and prints the installed version. To pin a release:

    Pin a specific version
    $ curl -fsSL https://raw.githubusercontent.com/rockclaver/rootmote-agent/main/scripts/install.sh | sudo bash -s -- --version 0.1.17

    Prefer to read it first? Download the script, inspect it, then run it yourself:

    Inspect first
    $ curl -fsSL https://raw.githubusercontent.com/rockclaver/rootmote-agent/main/scripts/install.sh -o rootmote-install.sh

    Then sudo bash rootmote-install.sh. The whole agent is reviewable on GitHub.

  2. 02

    Or install on a Mac

    Enable System Settings → General → Sharing → Remote Login first, then install as the macOS user the app will SSH into:

    macOS (LaunchAgent)
    $ curl -fsSL https://raw.githubusercontent.com/rockclaver/rootmote-agent/main/scripts/install-macos.sh | bash

    Do not run it with sudo: the agent uses the same user-level Claude, Codex, GitHub CLI and SSH state as the account the app connects to. On the same Wi-Fi, add the Mac by its .local name or LAN IP.

  3. 03

    Reach servers away from home

    For remote access, prefer a private overlay network such as Tailscale over public port-forwarded SSH:

    Install Tailscale (Linux)
    $ curl -fsSL https://tailscale.com/install.sh | sh

    Then add the server in the app using its Tailscale IP or MagicDNS name. A Mac on the same network as your phone needs no overlay; direct LAN SSH works.

  4. 04

    Add the server in the app

    Host, port 22, your SSH username, and the public key the app shows you. The agent listens only on 127.0.0.1:7676; the app opens an SSH tunnel to reach it. Never expose port 7676 on a public interface.

Server ready. Grab the app.

Add the host in rootmote; infrastructure changes still wait for your fingerprint.

Want to read what you just piped into sudo? rootmote-agent on GitHub · the security model