← Code

Always-On AI on a Mac Mini — OpenClaw + WhatsApp

An always-on AI agent running on a dedicated box in your house. Same Claude brain you already pay for ($20/mo Pro), but now it lives in a box on your network — and you can talk to it from anywhere, including WhatsApp, from your phone, while you’re walking the dog.

What You’re Building

An open-source agent runtime called OpenClaw, installed on a Mac Mini, connected to your existing Claude Pro subscription, and bridged to WhatsApp Business so you can text it from anywhere.

The end state:

Hardware — Why a Dedicated Mac Mini

A Mac Mini is the sweet spot for this, but sourcing one can take a long lead time:

Avoid running this on your daily-driver Mac. The whole point is “always on, doesn’t crash when I close my laptop.” A dedicated box also means you can be selective about what you let it access, without worrying about your personal files.

Pro tip — give your agent its own accounts. Set up the Mac Mini with dedicated service accounts, completely separate from yours:

  • macOS user account — a dedicated macOS user for your agent (don’t use your personal Apple ID login)
  • Google account — gives it its own Gmail, Google Drive (shared folders with you), and Google Calendar (share a calendar with your personal account — your agent adds events via GCal invite, not direct access to yours)
  • iCloud account — a dedicated Apple ID for the Mac Mini. Keeps iCloud, Find My, and macOS services isolated.

This takes 15–20 minutes of one-time setup, but the payoff is big: your agent can autonomously send you emails, manage a shared calendar, store files in Drive, and operate with clear boundaries.

Network Isolation — Put It on the Guest Network

Your AI agent is going to have an internet connection, Claude Pro credentials, and the ability to run code. It is, by definition, a privileged piece of software running on your network. Treat it that way.

Put the Mac Mini on your guest WiFi network. Most modern routers support a guest network that has internet access but is isolated from your main network (laptops, phones, work devices, smart home stuff). If the agent ever does something weird, it can’t see or touch your main devices. The blast radius is the Mac Mini itself.

Install OpenClaw

The official OpenClaw installer detects your OS, installs Node if needed, installs OpenClaw, and launches the interactive onboarding wizard. One command, ~5 minutes total.

Step 0 — Install iTerm2

Download from iterm2.com → drag to Applications → launch. Better than the default macOS Terminal: improved tab handling, search, copy/paste, and color rendering.

Advanced: install VS Code from code.visualstudio.com if you want a full editor with built-in terminal (helpful for editing AGENTS.md and openclaw.json later).

Step 1 — Install OpenClaw

curl -fsSL https://openclaw.ai/install-cli.sh | bash

That’s it. The script puts everything under ~/.openclaw and launches the onboarding wizard automatically.

Step 2 — Complete Onboarding

The wizard is interactive. It walks you through:

When the wizard finishes, your agent is alive. Open http://localhost:18789 in a browser on the Mac Mini to chat via the Control UI.

Step 3 — Give Your Agent a Personality

The onboarding wizard seeded ~/.openclaw/workspace/AGENTS.md — this file is your agent’s “Custom Instructions” (same idea as Cowork, except always loaded). Two ways to fill it in:

Optional — macOS menu-bar app: install OpenClaw.app from openclaw.ai for a system-tray indicator and macOS permissions (Camera, Screen Recording, Automation). The CLI install is enough for headless operation; the .app is a quality-of-life add-on.

WhatsApp Business Bridge — Talk to Your Agent from Anywhere

OpenClaw ships with a WhatsApp channel plugin powered by Baileys (the same library WhatsApp Web itself uses). Your job is to give your agent a phone number, link it, and configure who can talk to it.

Step 1 — Give Your Agent Its Own Phone Number

Your agent needs a dedicated phone number that isn’t your personal WhatsApp. The cleanest free option is Google Voice.

Provision a Google Voice number:

  1. Go to voice.google.com — sign in with a Google account (create a dedicated one for your agent — see the Pro Tip above)
  2. Click “Get started” → select a number (search by area code)
  3. Link it to an existing phone for verification — just for setup, not ongoing use
  4. Done. You now have a number like +14045550123 that can receive SMS

Why Google Voice: free, receives SMS, no SIM needed, works entirely in software. Alternative: an eSIM from Visible or US Mobile (~$5–10/month) gives you a “real” carrier number.

Step 2 — Register the Number on WhatsApp Business

You need a WhatsApp account on the Google Voice number that’s separate from your personal WhatsApp. The easiest way on iPhone: use the WhatsApp Business app.

  1. Download WhatsApp Business from the App Store — installs alongside your regular WhatsApp, no conflict
  2. Open it → enter your Google Voice number
  3. WhatsApp sends an SMS verification code → check voice.google.com Messages tab
  4. Complete setup: give the account your agent’s name, skip business details
  5. Done — you now have a WhatsApp account on a dedicated number

No developer account needed. You don’t need Meta’s WhatsApp Business API or any developer portal. WhatsApp Business app is just a free alternative client that lets you run a second account on the same iPhone.

Step 3 — Add WhatsApp to OpenClaw

From iTerm2 on the Mac Mini, add the WhatsApp channel. This installs the plugin (on demand), configures the channel, and prompts you to scan a QR code:

openclaw channels add --channel whatsapp

When the QR code appears in your terminal:

  1. Open WhatsApp Business on your iPhone → Settings → Linked Devices → Link a Device
  2. Scan the QR code in the terminal
  3. Done — OpenClaw is now connected to your agent’s WhatsApp number

The session is persisted to ~/.openclaw/credentials/whatsapp/default/creds.json. On subsequent starts (including reboots), it reconnects automatically without re-scanning.

Step 4 — Tell Your Agent Who Can Talk to It

The easy path: just ask your agent — “switch the WhatsApp dmPolicy to allowlist and add my number and my spouse’s number.” Your agent has filesystem access on the Mac Mini, so it can edit the config and restart itself.

For reference, here’s what the config looks like in ~/.openclaw/openclaw.json:

{
  "channels": {
    "whatsapp": {
      "enabled": true,
      "dmPolicy": "allowlist",
      "allowFrom": [
        "+1YOUR_NUMBER",
        "+1HOUSEHOLD_MEMBER_1",
        "+1HOUSEHOLD_MEMBER_2"
      ],
      "groupPolicy": "allowlist",
      "groupAllowFrom": ["+1YOUR_NUMBER"]
    }
  }
}

dmPolicy options:

allowFrom — the explicit list of numbers in E.164 format (country code + number, no spaces or dashes, e.g. +14045550123).

Adding a Household Member Later

Easy path: tell your agent — “Add my spouse at +1XXX-XXX-XXXX to the WhatsApp allowlist.” Done.

Optional — per-person customization. You can give individual contacts a custom system prompt:

"direct": {
  "+1HOUSEHOLD_MEMBER_1": {
    "systemPrompt": "You are talking with [name], my spouse. Keep responses brief and friendly."
  }
}

Costs

ComponentCost
Claude Pro subscription$20/mo (you already pay this)
Google Voice numberFree
WhatsApp Business appFree
OpenClaw + WhatsApp pluginFree (open source)

Total: $0/month beyond your existing $20/mo Claude Pro subscription.

Gotchas

What This Unlocks

Once the agent is running and reachable via WhatsApp:

It stops being “AI you go talk to” and starts being “household infrastructure that’s just there.”

Coming Next — Part 3

Once you’re using your agent constantly, you’ll notice the same thing I did: most of what you ask it is easy. “What time does Home Depot close?” doesn’t need a frontier model.

Part 3 is multi-model routing — putting two free, fast, local models on the same Mac Mini (Gemma and Qwen) and having your agent decide which one to use. Easy questions stay local. Complex stuff goes to Claude. Your AI bill drops ~80% without losing quality on the hard stuff.