01Decision matrix: sessions, Skills disk, 256 GB / 512 GB
Use the table as a planning guardrail, not a hard SLA. Measure your own p95 latency plus resident RSS before you trust any single cell.
| Profile | Concurrent focus | Disk stance | Verdict |
|---|---|---|---|
| Lean gateway | Two interactive chats plus one worker | 256 GB after log rotation | Stay on one 16 GB host |
| Skills heavy | Same headcount larger caches | Cold peaks exceed half disk weekly | Move to 512 GB before RAM |
| Parallel split | Four always on sessions | Two modest SSD footprints | Two 16 GB nodes beat one stressed 24 GB |
Sixteen gigabytes of unified memory on M4 tolerates roughly two interactive sessions alongside a single headless runner when each session keeps buffers modest. Promote a parallel split when queue depth grows faster than CPU, because swapping assistants in RAM will hurt gateway tail latency more than routing to a second leased box.
02Concurrency pain points worth a line item
- Memory cliffs: Model plus Skills plus desktop services can cross sixteen gigabytes without obvious warning until the kernel starts compressing pages
- Disk bursts: First run unpacks and npm caches can spike well above steady state leaving little headroom on two fifty six gigabyte volumes
- Gateway coupling: Acceptance tests that ignore regional RTT will pass in the lab yet fail for real users dialing through the same POP you benchmarked on the lease matrix article
03Install path: curl install.sh, checksum, npm lock, gateway QA
Treat upstream install.sh like any other supply chain artifact. Example fetch: curl -fsSL https://your.vendor/install.sh -o install.sh, then shasum -a 256 install.sh and compare the digest to the release page. Only execute after a match; keep bash -x install.sh logs for auditors.
Pin npm globals with explicit versions in package.json or an engines block so CI and the remote Mac agree on the CLI layer. Use npm shrinkwrap or a checked-in lockfile for the gateway helper, and reinstall after every image refresh.
Gateway acceptance belongs in the same region as production: curl health endpoints from the leased host, verify WebSocket upgrades, exercise auth headers, and capture timings alongside Skills cold starts so regressions show up before traffic shifts.
04Parallel split versus bigger SSD or more RAM
When four operators need simultaneous assistants split across two sixteen gigabyte instances with sticky routing instead of forcing one machine Document which tenant lands on which lease so finance can map invoices to cost centers Horizontal scale also isolates noisy Skills jobs from the primary gateway process
Choose five twelve gigabytes when cold start peaks repeatedly consume more than half the disk after housekeeping or when log retention plus artifact caches cannot stay below eighty percent for a full sprint Choose twenty four gigabytes only when profiling shows sustained RSS pressure not because procurement prefers a single SKU
Cite ready facts keep unified memory pressure under compression by sizing two assistants not four on sixteen gigabyte treat two fifty six gigabyte as comfortable when cold peaks stay transient and route burst spend through pricing before you add hardware tiers
Purchase summary: start from home, pick the region that matched RTT probes, open purchase for the Mac mini M4 tier that fits the matrix, then validate access using help for SSH and gateway troubleshooting. Track the lease in console and scan the blog index for companion playbooks. Checkout totals override any example figures in this blog.
05FAQ quick answers
Q Do I need twenty four gigabytes for OpenClaw
A Only if profiling shows resident memory beyond sixteen gigabytes after trimming caches otherwise split tenants first
Q Is curl pipe bash acceptable
A Only after an explicit checksum match treat pipe execution as a policy exception not the default
Q Where should gateway acceptance run
A From the same leased region documented in your architecture diagram plus the RTT matrix linked above