Node selection
Decision: M5M36 (Mac Studio, M5 Max, 18 cores, 36 GB, 301 GB free).
Criteria and evidence
| Criterion | M5M36 | Why the alternatives lost |
|---|---|---|
| Always on | Desktop Mac Studio, never sleeps, restarts after power loss, auto-login; 20 days uptime | MacBooks (M4BP48, M4BP36, M3BA*) can leave the LAN or close their lid |
| No competing workload | 0 PM2 processes, load ≈ 1.1 | M3U96a (17 apps, load 11), M2U64 (load 23), M4M64a/b (10–11 apps), M3U96b (research compute + 87 GB disk left) |
| Does not disturb production | nothing else to disturb | every other large Studio hosts public sites |
| Capacity for ~12 concurrent Claude sessions + builds | 18 fast cores, 24 GB free, 301 GB disk. A Claude Code session is ~0.3–0.6 GB resident; the heavy work it launches (LaTeX, Python, builds) is what consumes cores | 16 GB minis are too tight once Postgres, the app and a few builds run; 8 GB minis are out |
| Network path | already a WireGuard peer of the public gateway | m4mc/m4ma/m4mb/m2m16 are not on the tunnel and lack runtimes |
| Runtimes | Node 26, pnpm, PM2, git, Python, uv present | — |
| Not the cluster gateway | — | M1M32 hosts no apps by policy |
Known trade-offs
- 36 GB is the smallest memory among the Mac Studios. Heavy computation should be sent to bigger nodes through tasks
(remote execution) rather than run locally;
CR_MAX_SESSIONSdefaults to 12. - Single host: if M5M36 is down, Claude Remote is down. Metadata is backed up nightly (see backup-recovery.md); moving to
another node is an
mld moveplus re-authentication of Claude Code on the new node. - Storage is the internal SSD only; large research datasets stay where they are (e.g. the FinData lake on M3U96a) and are reached over SSH/HTTP from tasks, not copied.