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- downloads the latest server release and verifies its checksum,
- builds it in ~/.robion-server/versions/<version> (a few minutes on small boxes),
- sets a systemd user service up — the server survives reboots, updates never kill running agents,
- exposes it on your tailnet and prints a one-time pairing link.
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 enablerobion-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 updateRoll 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).