ROBIONLinux server

Agents that keep working after you close the lid.

The Robion server runs headless on any always-on Linux machine — a home server, a Raspberry Pi 5, a VPS. Your phone and the macOS app connect to it over your Tailscale network and its projects join the same cockpit, next to the local ones. Closing your laptop stops nothing.

Before you start

Linux
x64 or arm64; Debian/Ubuntu shown here, any distro with systemd works.
Node.js ≥ 22.13
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - && sudo apt-get install -y nodejs
Build tools
sudo apt-get install -y build-essential python3 (the terminal layer compiles once during install).
Tailscale
Logged in on both the server and your devices; enable HTTPS certificates in the admin console (DNS → HTTPS), then: sudo tailscale set --operator=$USER.
Claude Code
Installed and logged in on the server under the same user — agents run there.

Install

One line; safe to re-run (it is also the updater):

curl -fsSL https://robion.app/install.sh | sh

Expose it on your tailnet

The installer tries this itself. If it reports “Access denied” — or “remote enable” does later — Tailscale on Linux needs a one-time grant so the server may drive tailscale serve without root:

sudo tailscale set --operator=$USER
robion-server remote enable

robion-server remote status prints the https://<machine>.<tailnet>.ts.net URL once the proxy is up. The tailnet must have HTTPS certificates enabled (admin console → DNS → HTTPS Certificates).

Pair your devices

A pairing link is single-use and valid for 10 minutes — mint one any time:

robion-server pair
Phone
Open the link on the phone; the web app loads directly from your server. Add it to the home screen and allow notifications.
macOS app
Settings → Servers → paste the pairing link → connect. The server's projects appear in the rail next to your local ones, grouped under the server's name.

Update

Fetches the latest release, builds it beside the current one and switches atomically — running agents survive:

robion-server update

Roll back any time: robion-server versions, then robion-server use <version>. Day to day: robion-server status | logs | restart | pair.

Troubleshooting

“remote enable” fails with an access error
Let robion drive tailscale serve without root: sudo tailscale set --operator=$USER and enable HTTPS certificates in the Tailscale admin console (DNS → HTTPS). Then: robion-server remote enable && robion-server pair.
The server does not come up
journalctl --user -u robion-server -n 50 shows why; the app log lives in ~/.local/share/robion/logs/. The service starts at boot only with lingering on: loginctl enable-linger $USER (the installer does this).
Where is my data?
Projects, tasks and the pairing token live in ~/.local/share/robion and survive updates; installed versions live in ~/.robion-server/versions.
The macOS app has no “Servers” section
Multi-server support needs Robion 0.11 or newer — update the app first (Robion → Check for updates).