I often leave my desk with a long Claude Code task half done. Claude has a feature called remote control, which lets you drive a session from the Claude app. But claude remote-control must first start in a terminal on the right machine, in the right folder. From a phone, that meant opening an SSH client and typing commands on a tiny keyboard.
So I built Claude RC Launcher. It is a small web service that starts and stops claude remote-control in a folder you choose. You open a web page on your phone, pick a directory, and tap Start.
What it looks like
The main page lists your sessions. Each card shows the folder, how long the session has run, and buttons for logs and stop. The drop-down at the top picks the host.
To start a session, tap New, browse to a folder, and tap Start here.
How it works
Each running session is a systemd service named claude-rc-<id>.service. Systemd is the service manager on Linux. Because of that, a session survives a closed browser, a dropped connection, and a reboot. One port serves both the web interface and the JSON API over plain HTTP. You put it behind a reverse proxy that adds HTTPS.
Login uses OIDC (OpenID Connect), for example through Authentik. You can also let a reverse proxy assert your identity with a signed token. There is no mode without authentication.
More than one machine
One launcher, called the hub, can manage sessions on other machines, called nodes. A node can be a Linux host or a Windows PC. You pair a node with one command:
claude-rc host add win --url https://my-pc:8443 The hub does not hand a reusable password to a node. For each request it signs a proof that is valid for 30 seconds, for one node, one method, one path, and one body. A node that receives a proof cannot use it anywhere else. The hub also pins each node's certificate, so a fake node cannot pose as a real one.
The command-line client covers everyday tasks too:
claude-rc login --hub https://rc.example.com claude-rc hosts # every host and its status claude-rc ls /srv # folders you can start in claude-rc start /srv/new-project --name demo # prints the instance id claude-rc list --host nas claude-rc logs <id> --lines 50 claude-rc stop <id> The client can also update machines. claude-rc update --all-nodes updates every node to the latest release. Each node checks the download against SHA256SUMS and runs the new binary once. If the new binary does not stay up, the node goes back to the old one.
Windows
The Windows node runs through WinSW, a service wrapper that restarts it after a failure. One line in a PowerShell that runs as administrator installs it:
irm https://github.com/kbirger/claude-rc-launcher/releases/latest/download/install.ps1 | iex A Windows machine can be a node but not a hub.
A warning about security
This tool gives a logged-in user the power to run Claude Code, and so to run commands, on your machines. A hub login is root-equivalent on the hub and on every node. Do three things:
- Bind the application at your identity provider to the people who need it.
- Keep the allowed folders (
instance.roots) narrow. - Use a dedicated non-root service user where you can.
The README lists the full threat model. Read it before you expose the service to a network.
Get it
The compiled binary embeds the web interface, so the server needs no Node.js or Bun. Linux x64 and arm64 binaries are on the GitHub releases page:
https://github.com/kbirger/claude-rc-launcher
If you try it, tell me which part of the setup was hardest.




