- Mac Mini M2/M4 runs OpenClaw at 6–12W idle — cheaper monthly than a comparable cloud VPS
- Use caffeinate -s or a launchd plist to prevent macOS from sleeping and killing your agents
- Tailscale gives you secure remote access to the OpenClaw gateway without any port forwarding
- 16GB RAM is the recommended minimum if you run local LLM inference alongside the gateway
- Apple Silicon's unified memory architecture gives local models 2–3x better throughput than comparable x86 setups
Most people running OpenClaw are paying $20–80/month for a cloud VPS that throttles under load and costs more every time they add an agent. A Mac Mini M2 sitting on a shelf at home draws 6 watts idle, handles 4–6 concurrent agents without breaking a sweat, and costs nothing per month after you buy the hardware. The math stops making sense after about 8 months. Here's everything you need to make it work.
Why the Mac Mini Is the Right Hardware for This
Apple Silicon changed the economics of on-premise AI. The unified memory architecture means the CPU, GPU, and Neural Engine all share the same memory pool. There's no slow PCIe transfer between CPU RAM and GPU VRAM. Local LLM inference — the kind you'd run alongside OpenClaw for a fully local agent stack — runs at memory bandwidth rather than being bottlenecked by the bus.
The M2 Mac Mini achieves 100GB/s memory bandwidth. That's faster than most consumer GPU setups. An M4 Mac Mini Pro gets you 273GB/s. For running quantized language models, this matters more than raw compute FLOPS.
But even if you're not running local models — even if all your agents hit external APIs — the Mac Mini is still a better home server than most alternatives. The fanless M2 base model is completely silent. The M2 Pro and M4 have fans that almost never spin up under agent workloads. Power draw at idle is 6W. Under sustained load running multiple agents, you'll see 15–25W. That's roughly $2–4/month in electricity at average US rates.
RAM on Apple Silicon cannot be upgraded after purchase. If you plan to run local LLMs alongside OpenClaw, get at least 16GB. 24GB gives comfortable headroom for Mistral 7B or Llama 3 8B at Q4 quantization alongside 3–4 OpenClaw agents. 8GB works fine for gateway-only deployments that use external APIs.
Hardware Selection: M2 vs M4, Base vs Pro
Here's what actually matters for an OpenClaw server — without the marketing noise.
| Model | RAM Options | Best For | Idle Power |
|---|---|---|---|
| M2 Base | 8GB / 16GB | API-only agents, light workloads | 6W |
| M2 Pro | 16GB / 32GB | Local models + multiple agents | 10W |
| M4 Base | 16GB / 24GB | Best value in 2025, 16GB minimum | 8W |
| M4 Pro | 24GB / 48GB / 64GB | Heavy local inference, large models | 14W |
For most OpenClaw deployments, the M4 base with 16GB is the correct answer as of early 2025. It's $599 new and handles the gateway, 4–6 agents, and a quantized 7B model simultaneously without memory pressure. If you find a used M2 Pro with 16GB for under $500, that's an equally solid choice — the performance difference between M2 Pro and M4 base is marginal for agent workloads.
Installing OpenClaw on macOS
Start with the prerequisites. OpenClaw requires Node.js 18 or later. The fastest way to install it correctly on macOS is via nvm so you can switch versions without breaking system state.
# Install nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# Reload shell config
source ~/.zshrc
# Install Node.js LTS
nvm install --lts
nvm use --lts
# Verify
node --version # should be 20.x or 22.x
npm --version
With Node.js installed, install OpenClaw globally. The -g flag puts the binary on your PATH so you can run it from anywhere.
npm install -g openclaw
# Verify installation
openclaw --version
Now initialize a gateway configuration. Choose a directory — I use ~/openclaw-server — and run the init command.
mkdir ~/openclaw-server && cd ~/openclaw-server
openclaw init --gateway
# Edit the generated gateway.yaml
nano gateway.yaml
Set your gateway token, port (8080 by default), and any agent configs. The gateway is now functional. Verify it starts:
cd ~/openclaw-server
openclaw gateway start
# Should see: Gateway running on http://localhost:8080
If you see "cannot be opened because the developer cannot be verified", go to System Settings > Privacy & Security and click Allow Anyway next to the OpenClaw entry. This only happens on first run. The binary is not malware — it's the same unsigned binary warning that affects any npm-installed CLI tool.
Keeping It Always-On: Sleep Prevention and Auto-Start
This is where most Mac Mini home server setups fail. macOS aggressively sleeps when it thinks nothing needs the machine. Your OpenClaw gateway dies silently and you don't notice until your agents stop responding.
Three layers of protection against this:
Layer 1: System Settings
Go to System Settings > Energy > Options. Set "Prevent automatic sleeping when the display is off" to On. This is the minimum viable change and handles most cases when the Mac Mini is on AC power.
Layer 2: caffeinate in Your launchd Plist
Create a launchd plist that runs caffeinate -s at startup. This keeps the system fully awake regardless of other settings.
# Create the plist file
cat > ~/Library/LaunchAgents/com.openclaw.caffeinate.plist << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.openclaw.caffeinate</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/caffeinate</string>
<string>-s</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
EOF
# Load it
launchctl load ~/Library/LaunchAgents/com.openclaw.caffeinate.plist
Layer 3: OpenClaw Gateway as a launchd Service
Create a second plist for the OpenClaw gateway itself. This makes it start on login and restart automatically if it crashes.
cat > ~/Library/LaunchAgents/com.openclaw.gateway.plist << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.openclaw.gateway</string>
<key>ProgramArguments</key>
<array>
<string>/Users/YOUR_USERNAME/.nvm/versions/node/v22.x.x/bin/openclaw</string>
<string>gateway</string>
<string>start</string>
</array>
<key>WorkingDirectory</key>
<string>/Users/YOUR_USERNAME/openclaw-server</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>/Users/YOUR_USERNAME/openclaw-server/gateway.log</string>
<key>StandardErrorPath</key>
<string>/Users/YOUR_USERNAME/openclaw-server/gateway-error.log</string>
</dict>
</plist>
EOF
launchctl load ~/Library/LaunchAgents/com.openclaw.gateway.plist
Replace YOUR_USERNAME and the Node.js version path with your actual values. Run which openclaw to find the correct binary path after nvm installs Node.js.
Remote Access via Tailscale
You want to reach your Mac Mini from anywhere — your laptop, your phone, a different network. Port forwarding through your home router works but it's a security liability. Tailscale is better in every dimension.
Install Tailscale on both your Mac Mini and the devices you want to connect from. Sign in to the same Tailscale account. Every device gets a stable Tailscale IP in the 100.x.x.x range. Your Mac Mini's OpenClaw gateway becomes reachable at http://100.x.x.x:8080 from any device on the same Tailscale network — no firewall rules, no dynamic DNS, no port forwarding.
# Install Tailscale on Mac Mini
brew install --cask tailscale
# Or download from tailscale.com/download
# After install, authenticate from menu bar
# Check your Mac Mini's Tailscale IP
tailscale ip -4
# Your gateway is now reachable at:
# http://[tailscale-ip]:8080 from any Tailscale device
For browser-based dashboard access, enable Remote Login in System Settings > Sharing, then SSH from any device on your Tailscale network: ssh username@[tailscale-ip].
Sound familiar? You've seen this pattern before — Tailscale is the same tool that developers use for accessing internal dev servers, database hosts, and private services. It just works, and the free tier covers up to 3 users and 100 devices.
Common Mistakes With Mac Mini OpenClaw Setups
- Using the system Node.js — macOS ships with an ancient version. Always install via nvm. The system Node.js gets overwritten by Xcode updates.
- Not using the full binary path in launchd — launchd runs in a minimal environment without your shell's PATH. The plist needs the absolute path to the openclaw binary, which lives inside your nvm installation.
- Enabling auto-update on macOS — a macOS update can restart the machine and clear your launchd state. Test that your plist survives a reboot before relying on it.
- Skipping the caffeinate layer — Energy Saver settings are necessary but not sufficient. macOS has multiple sleep triggers. caffeinate -s blocks all of them when on AC power.
- Setting the Mac Mini to require login password after sleep — if the machine restarts and requires a password to unlock, your launchd agents won't start until someone physically logs in. Set auto-login in System Settings > Users & Groups.
Frequently Asked Questions
Can a Mac Mini run OpenClaw 24/7 as a home server?
Yes. The Mac Mini draws only 6–12W at idle — one of the most power-efficient always-on servers available. With caffeinate and launchd configured, OpenClaw runs continuously without human intervention. The hardware is designed for sustained workloads with passive or near-silent cooling.
How much RAM do I need for OpenClaw on Mac Mini?
8GB handles OpenClaw plus 2–3 concurrent agents using external APIs. 16GB is the right choice if you run local LLM inference alongside the gateway. 24GB gives headroom for multiple heavy agents and quantized models simultaneously without memory pressure.
How do I prevent my Mac Mini from sleeping?
Use caffeinate -s via a launchd plist and set Energy Saver to prevent sleeping when on power. Both layers together ensure the machine stays awake through software updates, preference resets, and edge cases that defeat single-layer solutions.
Can I access my Mac Mini OpenClaw gateway remotely?
Yes. Tailscale is the easiest method — install it on both machines, sign into the same account, and your gateway becomes reachable via the Mac Mini's Tailscale IP. No port forwarding required, and the free tier covers personal use.
Does Apple Silicon give any advantage for OpenClaw?
Significant advantage for local LLM inference. Apple Silicon's unified memory means local models run at full memory bandwidth without PCIe bottlenecks. For gateway-only workloads using external APIs, the benefit is mostly in power efficiency and silent operation.
What port does OpenClaw use on Mac Mini?
The gateway defaults to port 8080. With Tailscale, no firewall changes are needed — traffic stays within the secure Tailscale network. For public exposure, run nginx on port 443 as a reverse proxy with Let's Encrypt TLS in front of the gateway.
A. Larsen has deployed OpenClaw on Mac Mini hardware for home automation, personal research agents, and small-team deployments. Has run Mac Mini servers continuously for 18+ months across M1, M2, and M4 hardware generations with zero unplanned downtime.