Compatibility
The requirement is modest: Linux, Python 3.11+, systemd, and the ability to run Tailscale.
Tested targets
Section titled “Tested targets”Install-layer matrix run 2026-06-10 (containerized, per-OS):
| OS | Install | Notes |
|---|---|---|
| Ubuntu 24.04 | Pass (13/13 steps) | The tier our release tests run on |
| Ubuntu 22.04 | Known limit | Ships Python 3.10 — below the 3.11 floor; the installer refuses cleanly |
| Debian 12 | Pass (13/13 steps) | |
| Fedora 40 | Pass (13/13 steps) | |
| Arch | Pass (13/13 steps) | |
| WSL2 (Ubuntu) | Pending | systemd must be enabled in /etc/wsl.conf; Tailscale inside WSL2 has caveats |
| macOS | Manual checklist | No systemd — run under launchd or in the foreground; container path recommended |
| ARM64 (Pi, Graviton) | Pending |
“Pass” proves the install layer end-to-end: packages → venv → dependencies → server boots → box code mints → sign-in verifies → pairing round-trips. The network layer (a real tailnet) can’t be proven in containers — check it yourself below.
Two layers matter and are reported separately:
- Install layer — packages, venv, dependencies, server boots, box code mints. Provable in containers.
- Network layer — a real tailnet between your phone and the box. Verify
yourself in two minutes: Tailscale app connected on the phone, then open
https://<hostname>.<tailnet>.ts.net:8443in the phone’s browser — the Gray server answers.
Minimum resources
Section titled “Minimum resources”A 1 vCPU / 1 GB VPS runs the server itself; your agents’ appetite (builds, local models) is what actually sizes the box. Measured figures land with the matrix results.