Hosting
macOS VMs
Recommended default (most users)
- Small Linux VPS for an always-on Gateway and low cost. See VPS hosting.
- Dedicated hardware (Mac mini or Linux box) if you want full control and a residential IP for browser automation. Many sites block data center IPs, so local browsing often works better.
- Hybrid: keep the Gateway on a cheap VPS, and connect your Mac as a node when you need browser/UI automation. See Nodes and Gateway remote.
Use a macOS VM only when you specifically need macOS-only capabilities such as iMessage, or want strict isolation from your daily Mac.
macOS VM options
Local VM on your Apple Silicon Mac (Lume)
Run OpenClaw in a sandboxed macOS VM on your existing Apple Silicon Mac using Lume. This gives you:
- Full macOS environment in isolation (your host stays clean)
- iMessage support via
imsg; the default local path is impossible on Linux/Windows - Instant reset by cloning VMs
- No extra hardware or cloud costs
Hosted Mac providers (cloud)
If you want macOS in the cloud, hosted Mac providers work too:
- MacStadium (hosted Macs)
- Other hosted Mac vendors also work; follow their VM + SSH docs
Once you have SSH access to a macOS VM, continue at Install OpenClaw below.
Quick path (Lume, experienced users)
- Install Lume.
lume create openclaw --os macos --ipsw latest- Complete Setup Assistant, enable Remote Login (SSH).
lume run openclaw --no-display- SSH in, install OpenClaw, configure channels.
- Done.
What you need (Lume)
- Apple Silicon Mac (M1/M2/M3/M4)
- macOS Sequoia or later on the host
- ~60 GB free disk space per VM
- ~20 minutes
1) Install Lume
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh)"If ~/.local/bin is not in your PATH:
echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.zshrc && source ~/.zshrcVerify:
lume --versionDocs: Lume Installation
2) Create the macOS VM
lume create openclaw --os macos --ipsw latestThis downloads macOS and creates the VM. A VNC window opens automatically.
3) Complete Setup Assistant
In the VNC window:
- Select language and region.
- Skip Apple ID (or sign in if you want iMessage later).
- Create a user account (remember the username and password).
- Skip all optional features.
After setup completes:
- Enable SSH: System Settings -> General -> Sharing, enable "Remote Login".
- For headless VM use, enable auto-login: System Settings -> Users & Groups, select "Automatically log in as:", and choose the VM user.
4) Get the VM IP address
lume get openclawLook for the IP address (usually 192.168.64.x).
5) SSH into the VM
ssh youruser@192.168.64.XReplace youruser with the account you created, and the IP with your VM's IP.
6) Install OpenClaw
Inside the VM:
npm install -g openclaw@latestopenclaw onboard --install-daemonFollow the onboarding prompts to set up your model provider (Anthropic, OpenAI, etc.).
7) Configure channels
Keep the Telegram token in the Gateway environment rather than copying it into
openclaw.json. Add TELEGRAM_BOT_TOKEN=<bot-token> to
~/.openclaw/.env, then load it in the current shell and add the channel:
export TELEGRAM_BOT_TOKEN="<bot-token>"openclaw channels add --channel telegram --use-envThe managed Gateway reads the same state-directory .env after restart. For
WhatsApp, configure your allowlist and then scan the login QR code:
openclaw config set channels.whatsapp.dmPolicy allowlistopenclaw config set channels.whatsapp.allowFrom '["+15551234567"]' --strict-jsonopenclaw channels login --channel whatsapp8) Run the VM headlessly
Stop the VM and restart without display:
lume stop openclawlume run openclaw --no-displayThe VM runs in the background; OpenClaw's daemon keeps the gateway running. To check status:
ssh youruser@192.168.64.X "openclaw status"Bonus: iMessage integration
This is the killer feature of running on macOS. Use iMessage with imsg to add Messages to OpenClaw.
Inside the VM:
- Sign in to Messages.
- Install
imsg. - Grant Full Disk Access and Automation permission for the process running OpenClaw/
imsg. - Verify RPC support with
imsg rpc --help.
Add to your OpenClaw config:
{ channels: { imessage: { enabled: true, cliPath: "imsg", dbPath: "~/Library/Messages/chat.db", }, },}Restart the gateway. Your agent can now send and receive iMessages. Full setup details: iMessage channel.
Save a golden image
Before customizing further, snapshot your clean state:
lume stop openclawlume clone openclaw openclaw-goldenReset anytime:
lume stop openclaw && lume delete openclawlume clone openclaw-golden openclawlume run openclaw --no-displayRunning 24/7
Keep the VM running by:
- Keeping your Mac plugged in
- Disabling sleep in System Settings -> Energy Saver
- Using
caffeinateif needed
For true always-on, consider a dedicated Mac mini or a small VPS. See VPS hosting.
Troubleshooting
| Problem | Solution |
|---|---|
| Cannot SSH into VM | Check "Remote Login" is enabled in the 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 are logged into the VM (not host) when running openclaw channels login |
Related docs
- VPS hosting
- Nodes
- Gateway remote
- iMessage channel
- Lume Quickstart
- Lume CLI Reference
- Unattended VM Setup (advanced)
- Docker Sandboxing (alternative isolation approach)