Home Channels & Messaging OpenClaw + BlueBubbles
iMessage & Signal BlueBubbles Cross-Device

OpenClaw + BlueBubbles: iMessage on Any Device With AI [Guide]

The direct iMessage setup ties your agent to one Mac. BlueBubbles breaks that constraint — iMessage agents accessible from any device, with group chat support that the native setup can't match.

JD
J. Donovan
Technical Writer
Feb 5, 2025 16 min read 7.8k views
Updated Mar 2025
Key Takeaways
BlueBubbles is a free, open-source iMessage relay server that runs on Mac and exposes an HTTP API — OpenClaw connects to that API, not to Messages directly.
This setup enables iMessage agent access from any device on your network, including Windows, Linux, and mobile.
Group iMessage chat is fully supported through BlueBubbles — the single biggest capability gap over direct macOS integration.
The webhook URL is the critical config piece: BlueBubbles pushes events to OpenClaw's gateway rather than OpenClaw polling the Messages database.
You still need a Mac running Messages — BlueBubbles doesn't remove the Apple hardware dependency, it extends it.

BlueBubbles solves the single biggest limitation of OpenClaw's native iMessage integration: it's tied to one Mac. Teams running shared agents, developers building cross-device workflows, anyone who needs iMessage automation available beyond a single machine — this is the path. The Mac still does the heavy lifting, but BlueBubbles makes it a server.

What Is BlueBubbles?

BlueBubbles is an open-source self-hosted server application that runs on macOS. It connects to your Messages app, captures iMessages in real time, and exposes them via a REST API and WebSocket interface. Client apps — including OpenClaw — connect to the BlueBubbles server to send and receive iMessages without running on the Mac itself.

The project started in 2021 as a way to bring iMessage to Android and has grown into a platform used by thousands of developers. As of early 2025, it's the most stable self-hosted iMessage relay available, with an active community and regular updates tracking macOS releases.

Critically: BlueBubbles does not break Apple's ToS in the same way that commercial iMessage relay services might. It runs on hardware you own, using an Apple ID you control, in a way that's architecturally similar to how you'd access your Mac remotely. That said, Apple doesn't officially support or endorse it — proceed knowing this is community-built infrastructure.

Why Use BlueBubbles With OpenClaw

Three concrete reasons this setup beats the direct approach for anything beyond personal use.

1. Cross-device agent access. Your OpenClaw instance doesn't have to run on the Mac where Messages lives. Run OpenClaw on a Linux server, a Windows machine, or a cloud VM — it connects to BlueBubbles over HTTP and processes iMessages from anywhere on your network.

2. Group chat support. BlueBubbles exposes full group chat data through its API. The direct macOS setup struggles with group threads because the database schema is different and AppleScript doesn't handle them cleanly. With BlueBubbles, group messages arrive with a group_id field and full participant lists, making multi-user agent interactions viable.

3. Event-driven architecture. Instead of OpenClaw polling the Messages database every few seconds, BlueBubbles pushes events via webhook when messages arrive. This means faster response times and no polling overhead. Webhook delivery is near-instant after the message hits the Mac.

💡
Keep the Mac awake regardless
BlueBubbles doesn't change the fundamental Mac dependency. Your Mac still needs to be awake and Messages running. Use macOS's built-in "Prevent sleeping" option in System Settings → Battery, or set up a scheduled task that keeps the display active during operational hours.

BlueBubbles Server Setup on Mac

Download BlueBubbles from the official site at bluebubbles.app. Install the DMG like any other macOS app. First launch will request several permissions — grant all of them, including Full Disk Access, Accessibility, and Contacts if prompted.

Once open, the BlueBubbles interface walks you through initial setup. The key configuration decisions:

  1. Server URL — For local network use, this is your Mac's local IP (e.g., http://192.168.1.50:1234). For remote access, use BlueBubbles' proxy service or set up your own reverse proxy.
  2. Password — Set a strong password. This protects the API. OpenClaw will use this as the BLUEBUBBLES_PASSWORD env var.
  3. Private API — Enable this for full feature support including reactions and typing indicators. Requires an additional macOS helper app — follow the in-app instructions.

After setup, BlueBubbles shows a green "Server Running" indicator. The server URL is displayed in the top bar — copy it, you'll need it in the next step.

Webhook URL Configuration

BlueBubbles pushes message events to a webhook URL that you specify. OpenClaw provides this webhook endpoint through its gateway.

First, get your OpenClaw gateway URL:

openclaw gateway url
# Output: https://gateway.openclaw.io/webhooks/YOUR-AGENT-ID

In BlueBubbles, go to Settings → Webhooks → Add Webhook. Paste your OpenClaw gateway URL. Select the events to subscribe to:

Save the webhook. BlueBubbles will send a test event to confirm the URL is reachable. You should see a confirmation in the OpenClaw gateway logs within 5 seconds.

⚠️
Webhook must be publicly reachable
If OpenClaw is running locally (not on a cloud server), your gateway URL needs to be accessible from your Mac. For local testing, use ngrok or Cloudflare Tunnel to expose your local OpenClaw gateway. Production deployments should run OpenClaw on a cloud server with a static IP.

Connecting OpenClaw to BlueBubbles

With BlueBubbles running and the webhook configured, connecting OpenClaw is a single command with a few required environment variables.

# Set environment variables
export BLUEBUBBLES_URL="http://192.168.1.50:1234"
export BLUEBUBBLES_PASSWORD="your-bluebubbles-password"

# Add the BlueBubbles channel
openclaw channels add bluebubbles \
  --url "$BLUEBUBBLES_URL" \
  --password "$BLUEBUBBLES_PASSWORD" \
  --group-chats true

# Verify connection
openclaw channels status bluebubbles

The --group-chats true flag tells OpenClaw to process group iMessage threads in addition to 1-on-1 conversations. Without it, group messages are ignored even if BlueBubbles sends them.

A successful connection outputs:

BlueBubbles channel connected.
Server: http://192.168.1.50:1234
Status: active
Group chats: enabled
Webhook registered: https://gateway.openclaw.io/webhooks/YOUR-AGENT-ID

Testing the Integration

Send a test iMessage from any device to your Mac's Apple ID. Watch OpenClaw logs for the incoming event:

openclaw logs --channel bluebubbles --follow

# Expected output:
# [BlueBubbles] Webhook received: new-message from +1-555-0100
# [BlueBubbles] Message: "test message"
# [Agent] Routing through pipeline...
# [Agent] Reply sent via BlueBubbles API

If the webhook fires but OpenClaw doesn't reply, check that your agent pipeline has a handler for the bluebubbles channel in your openclaw.config.yaml. The channel key must match exactly.

Advantages Over Direct iMessage Setup

Here's where the two approaches genuinely differ in practice — not just on paper.

Frequently Asked Questions

Does BlueBubbles work without a Mac?

No. BlueBubbles requires a Mac as the server because iMessage only runs on Apple hardware. The benefit is that OpenClaw and client apps connect to the BlueBubbles server, so your other devices (Windows, Linux, iPhone) can interact with iMessage through it.

What port does BlueBubbles use and do I need to port forward?

BlueBubbles defaults to port 1234. For local network setups, no port forwarding is needed. For remote access or cloud deployment, you'll need to expose this port or use the BlueBubbles proxy service. OpenClaw connects over HTTP to the webhook URL you configure.

Is BlueBubbles free to use with OpenClaw?

BlueBubbles is open-source and free to self-host. The BlueBubbles organization offers an optional proxy service for a small fee if you need remote access without port forwarding. OpenClaw's BlueBubbles channel support is included in all plan tiers.

Can OpenClaw via BlueBubbles handle group iMessage chats?

Yes. BlueBubbles exposes group chat data through its API, which OpenClaw can consume. You need to configure the group_chats: true flag in your channel config. Individual group messages arrive with a group_id field for routing.

What happens if the BlueBubbles server goes offline?

OpenClaw will log connection errors and pause message processing. Incoming iMessages still arrive on your Mac's Messages app — they just won't trigger agent responses until BlueBubbles is back online. OpenClaw auto-reconnects once the server is reachable.

How is the BlueBubbles setup different from the direct iMessage channel?

Direct iMessage uses AppleScript and local database polling — simpler but single-machine only. BlueBubbles adds an HTTP API layer on top of iMessage, so any networked device can connect. Setup takes longer but adds group chat support and multi-client access.

JD
J. Donovan
Technical Writer
J. Donovan has run BlueBubbles in production for over 18 months across two Mac minis serving as always-on iMessage relay servers. He maintains an open-source OpenClaw + BlueBubbles configuration template on GitHub and has helped over 200 developers in the OpenClaw community reproduce this setup successfully.

iMessage agents, no device restrictions.

You now have the full BlueBubbles + OpenClaw architecture — webhook-driven, cross-device, group-chat capable. Set it up once on a Mac mini or old MacBook and run agents from anywhere.

Next: Add Slack Channel →
Get the OpenClaw build digest
New guides, channel updates, and community tips — weekly, no filler.