docs/install/macos-vm.md
Use a macOS VM when you specifically need macOS-only capabilities (iMessage/BlueBubbles) or want strict isolation from your daily Mac.
Run OpenClaw in a sandboxed macOS VM on your existing Apple Silicon Mac using Lume.
This gives you:
If you want macOS in the cloud, hosted Mac providers work too:
Once you have SSH access to a macOS VM, continue at step 6 below.
lume create openclaw --os macos --ipsw latestlume run openclaw --no-display/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh)"
If ~/.local/bin isn't in your PATH:
echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.zshrc && source ~/.zshrc
Verify:
lume --version
Docs: Lume Installation
lume create openclaw --os macos --ipsw latest
This downloads macOS and creates the VM. A VNC window opens automatically.
<Note> The download can take a while depending on your connection. </Note>In the VNC window:
After setup completes, enable SSH:
lume get openclaw
Look for the IP address (usually 192.168.64.x).
ssh [email protected]
Replace youruser with the account you created, and the IP with your VM's IP.
Inside the VM:
npm install -g openclaw@latest
openclaw onboard --install-daemon
Follow the onboarding prompts to set up your model provider (Anthropic, OpenAI, etc.).
Edit the config file:
nano ~/.openclaw/openclaw.json
Add your channels:
{
channels: {
whatsapp: {
dmPolicy: "allowlist",
allowFrom: ["+15551234567"],
},
telegram: {
botToken: "YOUR_BOT_TOKEN",
},
},
}
Then login to WhatsApp (scan QR):
openclaw channels login
Stop the VM and restart without display:
lume stop openclaw
lume run openclaw --no-display
The VM runs in the background. OpenClaw's daemon keeps the gateway running.
To check status:
ssh [email protected] "openclaw status"
This is the killer feature of running on macOS. Use BlueBubbles to add iMessage to OpenClaw.
Inside the VM:
https://your-gateway-host:3000/bluebubbles-webhook?password=<password>)Add to your OpenClaw config:
{
channels: {
bluebubbles: {
serverUrl: "http://localhost:1234",
password: "your-api-password",
webhookPath: "/bluebubbles-webhook",
},
},
}
Restart the gateway. Now your agent can send and receive iMessages.
Full setup details: BlueBubbles channel
Before customizing further, snapshot your clean state:
lume stop openclaw
lume clone openclaw openclaw-golden
Reset anytime:
lume stop openclaw && lume delete openclaw
lume clone openclaw-golden openclaw
lume run openclaw --no-display
Keep the VM running by:
caffeinate if neededFor true always-on, consider a dedicated Mac mini or a small VPS. See VPS hosting.
| Problem | Solution |
|---|---|
| Can't SSH into VM | Check "Remote Login" is enabled in VM's System Settings |
| VM IP not showing | Wait for VM to fully boot, run lume get openclaw again |
| Lume command not found | Add ~/.local/bin to your PATH |
| WhatsApp QR not scanning | Ensure you're logged into the VM (not host) when running openclaw channels login |