# Start Claude Code on Any Machine From Your Phone

> Source: <https://dev.to/kbirgerdev/start-claude-code-on-any-machine-from-your-phone-5aam>
> Published: 2026-11-09 01:15:34+00:00

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.

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.

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.

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.

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.

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:

`instance.roots`) narrow.
The README lists the full threat model. Read it before you expose the service to a network.

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](https://github.com/kbirger/claude-rc-launcher)

If you try it, tell me which part of the setup was hardest.
