RC
Remote Support Documentation
Back to console
Setup guide

Registering a device

How to put a machine under remote support, on macOS, Windows and Linux — what to install, what the one-command installer actually does, and how to keep it running.

Before you start

Every registered machine needs two things: a VNC server serving its screen on 127.0.0.1:5900, and the agent, which dials out to this hub and forwards that port over an authenticated WebSocket. The agent is what makes NAT and firewalls stop mattering — nothing inbound is ever opened on the machine.

You also need an enrollment link. In the console, open Machines → Invite a machine. The link carries a one-time token and expires; open it on the machine being registered and it shows the exact command with the token already filled in.

The alternative is direct mode, where this hub connects straight to the machine's VNC port. That only works when the hub can route to it. If the machine is on another subnet, behind NAT, or reachable only through a VPN or SSH tunnel, use the agent — a direct entry will just time out.

Pick a platform

1. Turn on Screen Sharing

System Settings → General → Sharing → Screen Sharing. Under Computer Settings, enable VNC viewers may control screen with password and set a password — the hub authenticates with it and never passes it to the browser.

macOS serves VNC on port 5900 on all interfaces. The agent only ever connects to it over loopback, so you can firewall the port off from the network.

2. Install Node.js 22 or newer

brew install node, or the installer from nodejs.org. Check with node -v.

3. Run the installer

Paste this in Terminal, replacing TOKEN with the one from your enrollment link:


      
    

It installs to ~/.rcs-agent, enrolls the machine, and loads a launchd agent so it starts at login and restarts if it dies.

Managing it

Do thisCommand
Stoplaunchctl unload ~/Library/LaunchAgents/com.freakma.rcs-agent.plist
Startlaunchctl load ~/Library/LaunchAgents/com.freakma.rcs-agent.plist
Watch the logtail -f ~/.rcs-agent/agent.log
Removelaunchctl unload …plist && rm -rf ~/.rcs-agent

Registering a machine that cannot run the agent

Printers, appliances, locked-down boxes, anything too old for a current runtime — the agent does not have to run on the machine it serves. Run it on any other machine on the same LAN and point it across:


    
  

That host now needs to reach the target's VNC port, and it becomes the machine whose uptime determines whether the target is reachable.

Checking it worked

When it does not

SymptomCause
timed out connecting to …:5900 This hub cannot route to that address. A direct-mode entry on a subnet the hub cannot reach — register it with the agent instead.
cannot reach …:5900 (ECONNREFUSED) Routing is fine, nothing is listening. The VNC server is not running.
VNC authentication failed Wrong stored password. Note that VNC authentication only uses the first 8 characters.
Enrollment says the link expired Enrollment tokens are one-time and time-limited. Mint a new one.
Machine shows offline right after install The agent is not running. Check the service commands for your platform above.
Sessions hang on "waiting for consent" Ask first is on and the agent cannot show a dialog — it is running headless, as a Windows service, or on Linux without zenity/kdialog.

What the installer does

Both scripts are served by this hub with its address and your token already substituted in, so there is nothing to fill in. They are worth reading before you pipe them into a shell — install.sh and install.ps1 are the exact text that runs. In order they:

Access control, support links and session policy are covered in the project README.