Install
Linux / macOS
curl -fsSL https://rc.ohrats.party/install.sh | shRun in your terminal. The installer selects the Linux or macOS release for your architecture and installs RC under ~/.local/bin.
Windows (PowerShell)
& ([scriptblock]::Create((Invoke-RestMethod -Uri 'https://rc.ohrats.party/install.ps1')))Run in PowerShell as the Windows user who will run RC. Windows AMD64 is supported. RC is installed under %LOCALAPPDATA%\OhRats\RC.
To use rc by name, add %LOCALAPPDATA%\OhRats\RC\bin to your user PATH and reopen PowerShell. You can also invoke it directly:
& "$env:LOCALAPPDATA\OhRats\RC\bin\rc.exe" statusBoth installers download the current GitHub Release and verify the native binaries and core components before activation. Run the installer again to update an existing installation.
For a machine that will run the RC Node, prefer the enrollment command generated by the Devices page. Select the target platform. The new-install command installs RC, enrolls the machine, and starts its background service; the already-installed command enrolls and starts the service. On Windows, the per-user Task Scheduler service requires that user to remain logged in.
Sign in
rc loginrc login --expires 7dlogin generates a local Ed25519 control key and opens RC for passkey approval. The default lifetime is until revoked.
Finite values are 1h, 1d, 7d, 30d, 90d, 180d, and 1y.
rc logout revokes the hosted CLI session and removes the local account session.
Commands
| Command | Description |
|---|---|
rc devices | List devices, workspaces, online state, and Node version. |
rc shell DEVICE | Open the machine's login shell in the current terminal. |
rc run DEVICE -- CMD... | Run one command remotely and stream its output. |
rc ssh-key add [PUBLIC_KEY_FILE] | Register an OpenSSH public key against the current passkey-backed CLI identity. |
rc ssh-config | Print OpenSSH config entries using immutable RC device IDs. |
rc ssh-proxy | Carry an OpenSSH connection through RC's HTTPS/WebSocket endpoint. |
rc status | Show local enrollment and hosted device status. |
rc enroll TOKEN | Enroll this machine. Optional flags: --name, --url, --state-dir. |
rc service install|start|stop|status|uninstall | Manage the per-user background Node service. |
rc / rc --help | Show grouped native, kernel, and active component commands. |
rc add SPEC / rc remove NAME | Install or remove a managed WebAssembly component. |
rc install / rc list | Restore the locked component set or inspect installed components. |
rc outdated [NAME...] | Show available managed-component updates. |
rc update [NAME...] | Update managed WebAssembly components without replacing the native RC platform. |
rc upgrade | Upgrade the native RC platform and refresh its core component bundle. |
rc device delete ID | Delete a device from RC immediately. A sleeping Node reconciles the revocation when it next connects. |
rc config show|path|set|unset | Read or modify the default RC server and enrollment name. |
rc uninstall | Remove the service, unregister the device when possible, delete local RC state, and remove the installed binary. |
OpenSSH
rc ssh-key add ~/.ssh/id_ed25519.pubrc ssh-config >> ~/.ssh/configThe generated hosts are named rc-<device-id>. The full immutable RC device ID is sent to the gateway, so renaming a device does not change which Node an existing entry targets.
ssh rc-DEVICE_IDscp ./file rc-DEVICE_ID:/tmp/filesftp rc-DEVICE_IDrsync -e ssh ./dir/ rc-DEVICE_ID:/tmp/dir/OpenSSH talks to stock sshd at the RC gateway through rc ssh-proxy, so the controlled Node does not expose port 22 and the client works on networks that permit HTTPS/WebSockets but block SSH ports.
Examples
rc shell Macrc run Mac -- uname -aUse an API key
RC_API_TOKEN='rcsk_...' rc devicesrc devices --token 'rcsk_...'The CLI parses the rcsk_ credential and signs API requests locally. It does not send the private signing key as a bearer token.
Local state
RC state is stored under ~/.config/rc on Linux and macOS, and %LOCALAPPDATA%\OhRats\RC\state on Windows by default. This includes device identity, RC Lock, device pins, CLI session data, configuration, service logs, and the CLI control private key.
The CLI uses the same X25519/HKDF-SHA256/AES-256-GCM encrypted control protocol as the browser. See Browser and CLI encrypted control for the handshake details.
OpenSSH is separate from that direct-control protocol. SSH sessions terminate at the RC gateway; see SSH gateway.