Comparisons

Self-hosting iMessage on a Mac (BlueBubbles, OpenClaw) vs a managed iMessage API

Written by ZeroSettle. We make one of the products compared.

Self-hosting iMessage means running BlueBubbles, OpenClaw with imsg, or a similar bridge on a Mac you keep signed in to Messages, awake and online with your own Apple Account: the software is free, but you are the operations team and the account risk is yours. A managed iMessage API like ZeroSettle gives your business a dedicated number, a REST API and signed webhooks for $49 a month, with nothing to install or host. Self-hosting fits personal projects; a managed API fits customer-facing business messaging.

Key takeaways

  • What ZeroSettle is: ZeroSettle is an iMessage API: a real phone number on real iMessage, running on Apple hardware we operate for you, that your code texts customers from and hears back on through a bearer token and signed webhooks.
  • What self-hosting costs: $0 for BlueBubbles, OpenClaw or imsg, plus a Mac that never sleeps, your own Apple Account and your time. BlueBubbles Pro is an optional $3 a month.
  • The real difference: whether you keep a Mac awake, whether a spam flag lands on your own Apple Account, and whether your webhooks are signed.
  • ZeroSettle price: Pro is $49/month for one number, with no setup fee and unlimited messages with people who message you first. Growth, for several numbers working as one, is from $599/mo.
  • What ZeroSettle does not do: group chats, first messages to more than 5 new contacts a day on one Pro number, or texting from a number you already have. ZeroSettle does not port numbers.

How did we compare self-hosting and a managed API?

We compared self-hosted iMessage and ZeroSettle on six criteria: what you run, who recipients hear from, monthly cost, upkeep when something breaks, API and webhook security, and what happens if Apple flags the account. We cover BlueBubbles, OpenClaw and AirMessage, plus Texting Blue and myCRMSIM, which send from an iPhone or Mac you supply. Hosted vendors are covered in a comparison of 14 iMessage API options and on the iMessage API comparisons hub.

How do BlueBubbles, OpenClaw and ZeroSettle compare at a glance?

Self-hosting costs less in cash and more in work; ZeroSettle costs $49 a month and leaves you with an API token.

BlueBubbles and OpenClaw vs ZeroSettle (project pages checked October 8, 2026)
CriterionBlueBubblesOpenClaw (imsg)ZeroSettle
What you runA Mac signed in to Messages, awake and onlineA Mac on macOS 14 or newer, signed in to Messages, plus the GatewayNothing: an API token and a console
Who recipients hear fromYour Apple Account's email by default; a phone number needs separate registrationYour Apple AccountA dedicated number with your brand name and photo
Software priceFree; Pro optional at $3/monthFree (MIT), plus model feesPro $49/month
API and webhook authServer password in the URL; no webhook signature documentedThe Gateway talks to imsg over JSON-RPC on stdio; no webhooks to signBearer token; HMAC-signed webhooks
If Apple flags the account"you may need to chat with Apple"Not covered in its iMessage docsNumber replaced at no extra charge

What does self-hosting iMessage involve?

Self-hosting iMessage turns a Mac into a server that stays signed in to Messages with your Apple Account, never sleeps, and runs a bridge that reads the Messages database and drives the Messages app. In BlueBubbles' words: "BlueBubbles needs a Mac signed in to iMessage to do the actual talking, and there is no way around it."

The BlueBubbles install guide and FAQ cover these steps:

  1. Install BlueBubbles Server on a Mac, or on a macOS virtual machine, which the FAQ says "is meant to be done on Apple Hardware".
  2. Grant Full Disk Access.
  3. Connect a Google account so BlueBubbles can create a Firebase project for notifications.
  4. Set a server password and a proxy service ("in most cases, Cloudflare").
  5. Optionally enable the Private API, which needs System Integrity Protection (SIP) and Library Validation disabled ("Disable SIP at your own risk!").
  6. Keep the Mac awake (on a laptop, the FAQ suggests the Amphetamine app).

BlueBubbles sends from your Apple Account's email address by default, and its docs hand phone-number registration to community guides, several built around a spare iPhone. Its troubleshooting guide also warns that a Mac's serial number can be "flagged as spam", which "is typically the case for macOS Virtual Machine deployments."

OpenClaw, a free, MIT-licensed AI assistant you run yourself, supports iMessage "through imsg only". Its setup guide says "Messages must be signed in on the Mac running imsg," with Full Disk Access and Automation permission. With SIP on, imsg "falls back to basic mode — text + media + receive only."

What about services that run on your own iPhone or Mac?

Texting Blue and myCRMSIM charge a software fee, but your own iPhone or Mac still does the sending and still has to stay on.

What does a managed API take off your plate?

A managed iMessage API means no Mac to keep awake, no personal Apple Account at risk and no spam-flag recovery to run yourself. ZeroSettle's homepage says: "We run the Apple hardware and set up the number for you. You get an API token and a console; nothing to install or host."

  • A dedicated business number that exists only for iMessage.
  • Name and photo: your brand name (up to 64 characters) and photo, shared automatically with the first message of every conversation; recipients see "<name> shared a name and photo with you".
  • Limits enforced for you: on Pro, first messages to 5 new contacts a day per number (3 AM to 3 AM Eastern); on every plan, 2 unanswered messages per contact, and photos or voice messages only after the contact has replied. Messages with anyone who texted first are unlimited.
  • STOP enforced: a text with the word STOP, or a clear request like “take me off your list”, opts that person out across every number on your account, and only START opts them back in; sends to them return 403 recipient_opted_out and nothing is sent or stored.
  • Replacement if Apple flags the number: "If it does happen, we replace the number right away at no extra charge. Your API token, webhook, and code stay exactly as they are, so your integration keeps running without changes." Recipients see the new number.

For the API calls, see how to send an iMessage from code without a Mac; to connect your own model, see give your AI agent an iMessage number.

What does each really cost?

In cash, self-hosting is cheapest and ZeroSettle costs the most per number; the difference is what you supply and fix yourself.

Monthly fee and what you supply (checked October 8, 2026)
OptionMonthly feeWhat you supply and fix
BlueBubbles$0; Pro $3 optionalA Mac, your Apple Account, a way to register a phone number
OpenClaw (imsg)$0A Mac, your Apple Account, model provider fees
AirMessage$0A Mac running server software last released in October 2022
Texting Blue Lite$19 per numberYour iPhone, number and phone plan, kept online
myCRMSIM$29 per line (lines 1–10)An iPhone with active iMessage and its phone plan, plus a Mac kept on
ZeroSettle Pro$49Your own code, or the hosted AI agent (Beta); nothing to install or host

myCRMSIM's price was read from the pricing data on mycrmsim.com.

Over a year, by our arithmetic: $0 for BlueBubbles ($30 with Pro billed yearly), $228 for Texting Blue, $348 for one myCRMSIM line ($290 billed yearly) and $588 for ZeroSettle Pro, before the hardware, phone plans and hours the others need. OpenClaw users also pay their model provider; ZeroSettle's hosted AI agent (Beta) uses one credit per text it sends, 1,000 a month included on Pro.

ZeroSettle Pro is "No setup fee · Cancel anytime", with a 30-day money-back guarantee and no free trial. Growth is from $599/mo after a demo. Numbers can sell out; then there is a waitlist. See ZeroSettle's pricing.

Which is more reliable, and who does the upkeep?

A self-hosted bridge is as reliable as one Mac, one network and the project's release cadence, and the upkeep is yours. With ZeroSettle the upkeep is ZeroSettle's; it publishes latency figures and a homepage uptime stat, but no SLA.

What happens when something fails (checked October 8, 2026)
FailureSelf-hostedZeroSettle
The Mac sleeps or loses powerBlueBubbles: "When it sleeps, the bridge is out." OpenClaw's replay after a restart "is bounded to the most recent 500 rows and to messages up to ~2 hours old".Nothing of yours has to stay awake.
macOS updatesFive open BlueBubbles issues report problems on macOS 26 (#776, #777, #779, #814, #842). OpenClaw's Private API helper "can fall out (Messages.app restart, OS update, etc.)".No software of yours to update.
Your receiver is downBlueBubbles' webhook guide describes no retries.3 more tries, after 1 s, 5 s and 20 s; then the failure is recorded and shows in last_delivery.

The BlueBubbles server's latest tagged release is v1.9.9, from May 16, 2025, though work continues on unreleased branches and the client apps shipped v2.0.0 to v2.1.1 in July and August 2026. OpenClaw removed BlueBubbles support in May 2026, so older iMessage tutorials for it are out of date. AirMessage's last server release was v4.1.4 on October 19, 2022, and airmessage.org's TLS certificate expired on November 3, 2025 and was still expired on October 8, 2026.

A ZeroSettle send returns once the line has handed the message to Apple, "normally 2–5 seconds and at most about 75 for a text (about 105 for a voice message or photo, which ZeroSettle converts first)." Inbound takes "about 1–2 s from the line receiving a text to your webhook." The homepage shows "99.9% uptime" and "10,000+ messages/week"; the uptime figure is a stat, not an SLA, and the terms say ZeroSettle "does not warrant that the services will meet your requirements or that their operation will be uninterrupted or error-free."

How do API and webhook security compare?

ZeroSettle sends your API token in a request header and signs every webhook; BlueBubbles puts its password in the URL and documents no webhook signature, and both self-hosted projects need SIP off for their full feature sets. Self-hosting keeps message data on your own Mac; ZeroSettle stores it.

bash
# BlueBubbles: password in the query string (its docs' example)
curl -s "https://some-url.ngrok.io/api/v1/ping?guid=password"

# ZeroSettle: token in a header, read from the environment
export BASE=https://portal.zerosettle.io
curl -s -H "Authorization: Bearer $ZEROSETTLE_TOKEN" $BASE/api/imessage/line

A password in a query string can end up in tunnel, proxy and access logs. ZeroSettle signs every webhook with X-ZeroSettle-Signature: t=<unix>,v1=<hex>, an HMAC-SHA256 of "<t>." + raw body with your secret: verify the raw bytes before parsing, compare in constant time, and reject timestamps more than 300 seconds off. The secret is shown once and rotates when you re-register. This Node verifier is from the ZeroSettle webhook docs, which also have a Python one:

javascript
const crypto = require("crypto");
function verify(secret, header, rawBody, tolerance = 300) {
  const m = /^t=(\d+),v1=([0-9a-f]{64})$/.exec(header || "");
  if (!m) return false;
  const t = Number(m[1]);
  if (Math.abs(Date.now() / 1000 - t) > tolerance) return false;
  const expected = crypto.createHmac("sha256", secret)
    .update(`${t}.`).update(rawBody).digest("hex");
  return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(m[2]));
}

ZeroSettle tokens come from the console or the MCP tool create_api_key; "minting again revokes nothing, revoking revokes all." A bad token gets 401 and an inactive subscription 402. On the Mac side, OpenClaw's docs say "Disabling SIP is a real security tradeoff," and both projects note that disabling SIP stops an Apple Silicon Mac from installing and running iOS apps. More in how ZeroSettle secures tokens, webhooks and data.

When ZeroSettle is not a fit: self-hosting or your own iPhone is better

Self-hosting is the better choice when the account is yours, the people texting are you and people you trust, and running a Mac is acceptable; a service on your own iPhone fits when customers must keep the number they know.

  • You want to text from your existing number or Apple Account. ZeroSettle gives you a new number and does not port numbers or accept your own; Texting Blue and myCRMSIM send from the iPhone number you already have.
  • Open source matters: BlueBubbles is Apache-2.0; OpenClaw and imsg are MIT.
  • Message data must stay on your hardware. ZeroSettle stores messages, and its docs say they "are kept indefinitely for now".
  • You want to manage group chats, edit and unsend, or use Find My for personal use. BlueBubbles' FAQ lists all three among its Private API features; ZeroSettle conversations are one-to-one, with group chats on the roadmap.
  • You want one assistant across many chat apps: OpenClaw also runs on WhatsApp, Telegram, Slack, Discord "and 20+ more". For a private assistant on its own number, see build a personal AI assistant you text on iMessage.
  • You need SMS to Android contacts. imsg can send SMS through Text Message Forwarding on a paired iPhone, and Texting Blue and myCRMSIM send SMS through your iPhone's carrier; ZeroSettle has no SMS fallback.
  • You run GoHighLevel and want iMessage, SMS, WhatsApp and RCS in its inbox: that is what myCRMSIM is built for.

When is ZeroSettle the better choice?

ZeroSettle is the better choice when customers text the number, nobody on your team should have to keep a Mac awake, and a spam flag must not put anyone's personal Apple Account at risk. It also fits an app or agent that needs a REST API and signed webhooks, or the hosted AI agent (Beta) with no server. To try it, get a ZeroSettle number or read the API docs.

How we checked

We read each project's docs, pricing pages, GitHub releases and issue trackers on October 8, 2026, and quoted only those pages; we did not install any of them for this page.

  • OpenClaw's BlueBubbles removal was dated from its versioned docs: release 2026.5.7, published May 7, 2026, still said "For new iMessage deployments, use BlueBubbles"; 2026.5.12, published May 14, 2026, says "BlueBubbles support was removed."
  • AirMessage's certificate dates come from a TLS connection to airmessage.org, not from a page.
  • ZeroSettle facts come from its API docs, homepage and iMessage API Terms. Next review: January 2027.

Frequently asked questions

Can I run BlueBubbles on a Linux server?

Not directly: BlueBubbles Server needs macOS. Its FAQ allows a macOS virtual machine on Windows or Linux but adds "This is meant to be done on Apple Hardware".

Is BlueBubbles free for business use?

The software costs nothing and is Apache-2.0 licensed, though its legal page says it is provided "for educational purposes only". Your costs are the Mac, power, internet and your time, plus the risk to the Apple Account it uses.

Does OpenClaw still support BlueBubbles?

No. OpenClaw removed its BlueBubbles channel in May 2026; its iMessage channel now runs through imsg only, and its docs include a migration guide for old BlueBubbles configs.

Can I move my self-hosted number to ZeroSettle?

Not the number itself: ZeroSettle does not port numbers, so you get a new business number. Each existing contact counts as a new contact the first time ZeroSettle messages them (5 a day per number on Pro), but anyone who texts the new number first is never limited, and your name and photo go out with the first message of every conversation.

What happens to a ZeroSettle number if I cancel?

ZeroSettle's terms say numbers "remain the property of ZeroSettle" and that "once a subscription is no longer active, the number is reclaimed and may be reassigned or returned to its provider." Cancellation takes effect at the end of the billing period. If you ask within 30 days of subscribing, the subscription is refunded in full and cancelled.

Sources

  1. Is BlueBubbles for me?, BlueBubbles. Checked October 8, 2026.
  2. FAQ, BlueBubbles. Checked October 8, 2026.
  3. BlueBubbles Pro pricing, BlueBubbles. Checked October 8, 2026.
  4. Install guide, BlueBubbles. Checked October 8, 2026.
  5. Private API installation, BlueBubbles docs. Checked October 8, 2026.
  6. REST API & Webhooks, BlueBubbles docs. Checked October 8, 2026.
  7. Registering a phone number with your iMessage account, BlueBubbles docs. Checked October 8, 2026.
  8. Can't send messages from BlueBubbles, BlueBubbles docs. Checked October 8, 2026.
  9. Licenses / Legal, BlueBubbles docs. Checked October 8, 2026.
  10. bluebubbles-server releases and issues #776, #777, #779, #814 and #842, plus bluebubbles-app releases, GitHub. Checked October 8, 2026.
  11. iMessage channel, setup, private API and messaging, OpenClaw docs. Checked October 8, 2026.
  12. BlueBubbles removal and the imsg iMessage path, OpenClaw docs; versioned docs for releases 2026.5.7 and 2026.5.12 (npm via jsDelivr). Checked October 8, 2026.
  13. openclaw/openclaw README, GitHub. Checked October 8, 2026.
  14. imsg README, GitHub. Checked October 8, 2026.
  15. airmessage-server and its releases, GitHub. Checked October 8, 2026.
  16. Texting Blue pricing, How it works and "How to Turn Your iPhone Into an iMessage API" (February 10, 2026), Texting Blue. Checked October 8, 2026.
  17. myCRMSIM pricing, iMessage installation and setup and What happens if iMessage gets blocked?, myCRMSIM. Checked October 8, 2026.
  18. ZeroSettle iMessage API docs: "Pricing", "Name and photo", "Webhooks, step by step" and "Errors, limits, and compliance". Checked October 8, 2026.
  19. zerosettle.io, plans, stats and FAQ. Checked October 8, 2026.
  20. ZeroSettle iMessage API Terms of Service, sections 2, 6 and 14. Last modified September 28, 2026.

Changelog

  • First published.
  • Updated ZeroSettle’s Pro new-contact limit (5 a day per number), the unanswered and attachment rules, and the STOP description.

Written by the ZeroSettle team. ZeroSettle is an iMessage API: a real phone number on real iMessage, running on Apple hardware we operate for you, that your code texts customers from and hears back on through a bearer token and signed webhooks.

Every price, limit and policy on this page was checked against each project's public pages on October 8, 2026; ZeroSettle's new-contact, unanswered-message and STOP rules were updated October 12, 2026. Tell us at founders@zerosettle.io if a figure has changed.

Text your customers from your own iMessage number

ZeroSettle gives your business its own phone number on real iMessage, running on Apple hardware we operate for you in a server facility. Your code sends with one API call and hears every reply on a signed webhook.

Pro is $49 a month with a 30-day money-back guarantee. Growth, for several numbers working as one, is from $599/mo.