Get started

One command. That's the install.

The connector is a single dependency-free Node script that dials out to the relay — no installer, no menu-bar app, no account. Stop it with Ctrl-C and it's gone.

Before you run it

  1. Screen Sharing on: System Settings → General → Sharing → Screen Sharing.
  2. Node 21+: check with node --version. (Install from nodejs.org or Homebrew if needed.)

Run the connector

Terminal

Copy, paste, connected.

It prints a pairing code like XKR-92M-4TQ — that's what you type into the viewer.

Terminal — on your Mac

$ curl -fsSL https://macremotecontrol.com/connector.mjs -o mrc.mjs && node mrc.mjs

Needs Node 21+ — check with node --version, and install from nodejs.org if you get command not found: node. Screen Sharing must be on too: System Settings → General → Sharing.

A single readable file — open it before you run it. Tailscale/LAN-only? Run it with --listen 5800 --no-relay instead.

Open the viewer

Useful flags

FlagWhat it does
--listen 5800Also serve the viewer locally (Tailscale/LAN) — see direct mode.
--no-relaySkip the relay entirely; requires --listen. Fully offline-capable.
--vnc 127.0.0.1:5900Point at a different Screen Sharing host or port — useful if something else already owns 5900.
--relay https://…Use a different relay (or MACREMOTE_RELAY in the environment). Defaults to macremotecontrol.com.

With --listen, macOS may ask whether to allow node to accept incoming connections. Allow it — that prompt is the firewall guarding the local port the viewer is served on. Denying it leaves the page unreachable with no other symptom.

Keep it running

The connector runs until you stop it, and a new run prints a fresh code. For an always-reachable Mac, keep it alive in a tmux session, or save your Mac in the dashboard so its address or latest code is one click away wherever you sign in.

Prefer to read what you're running first? The whole connector is one file: connector.mjs. And here's what it can and cannot see.