muxr

Quickstart

Install the complete self-hosted CLI, relay, host, plugin runtime, and web client from npm:

npm install -g @trymuxr/cli
muxr

Requires Node.js 22+ on Linux, macOS, or WSL. The interactive menu inspects without changing anything. You choose networking, Herdr, integrations, optional plugins, browser hosting, and pairing. A complete plan appears before the Cancel-first Apply gate. The final screen reports relay and web URLs plus service health without printing credentials or internal IDs.

Prefer the guided tour first? See the setup walkthrough with real terminal output for LAN, Tailscale, Cloudflare, a self-hosted VPS relay, and the browser.

Pair a phone or browser

Android is available through Google Play internal testing and as a signed APK in the latest GitHub release. iOS is available through TestFlight internal testing. Install the native app, then scan the QR.

Secure browser hosting is a separate setup choice for Tailscale Serve or a stable external HTTPS/WSS origin; browser pairing prints a clickable HTTPS link and grants read-only access for eight hours.

Run muxr again to pair another client, change the connection, update muxr, restart services, or run diagnostics. Existing devices stay paired when the public endpoint is unchanged.

One shared relay on a VPS

Run muxr on the VPS and choose Other machines and shared relay → Host a shared relay here. Use Tailscale Serve or a stable external wss:// origin, including a named Cloudflare tunnel you configured yourself. The VPS runs a supervised relay-only service with Linux boot persistence and optional read-only web hosting.

Choose Other machines and shared relay → Create enrollment. On an agent computer, choose Other machines and shared relay → Connect this machine to a relay, and paste the five-minute enrollment string. Keys are generated locally and the agent receives only a revocable credential scoped to that machine. The relay-owner secret never leaves the VPS.

Automation and diagnostics

muxr doctor
muxr update --check
muxr pair
muxr pair --browser
muxr machines enroll|list|revoke
muxr connect --enrollment '<muxr://enroll?...>'
muxr daemon status
muxr daemon logs

Interactive muxr is the primary path; direct commands remain for automation and debugging. muxr supports trusted LAN, direct Tailscale, Tailscale Serve, temporary Cloudflare quick tunnels, and stable external WSS reverse proxies. A manually configured named Cloudflare tunnel works through the external WSS option; muxr does not detect or adopt it. Quick tunnels are excluded from shared VPS relays because their changing URL would strand enrolled machines.

Linux, macOS, WSL, and SSH

Run muxr where Herdr owns the agents. The agent picker comes from that connected Herdr host, with a clearly labelled offline fallback. For a remote machine, use Tailscale, a stable tunnel, the shared relay flow above, or Connect over SSH in mobile Settings.

Uninstall

muxr daemon uninstall removes muxr's service registration and owned ingress. muxr integrations uninstall removes only muxr-managed integration files and blocks. Herdr sessions, worktrees, repositories, and muxr data remain intact.