Latest
BlueBot 1.0
The first release. A Mac app sends and reads your texts through Messages, and an inbox, an API, webhooks, Zapier, MCP and two AI helpers sit on top.
BlueBot 1.0 turns the Messages app on your own Mac into a texting API for your own phone number. Your texts come from the number your friends and clients already know, as blue bubbles or green ones. This is everything in the first release.
The Mac app
- A menu bar app for macOS Sonoma (macOS 14) or later. It checks in every 10 seconds, picks up the texts that are ready, and sends each one through Messages.
- It confirms every text in Messages' own database before it calls it sent, and it never sends a text twice when it can't tell whether the first one went.
- It reads Messages' database read-only, and it never asks you to turn off System Integrity Protection.
- Its checks tell you when something on the Mac needs you: Messages signed out, Full Disk Access missing, Text Message Forwarding off, or a Mac that goes to sleep. Download lists what the Mac needs.
Sending and receiving
- Texts go as iMessage, or as regular texts (SMS) through your iPhone with Text Message Forwarding turned on. You can pick the service for a text or let BlueBot choose from your history with that person.
- An iMessage that doesn't go through is sent once more as a regular text.
- BlueBot reads replies from Messages' database, with their pictures and files. It also reads delivered and read receipts, where the person shares them, and the tapbacks people send you.
- You can send pictures, files, voice memos and your contact card, and send into a group chat that already exists.
The inbox
- Every conversation by person, updated live. That includes the texts you type by hand on your Mac or iPhone, so the inbox, your webhooks and your AI assistant see the whole conversation.
- Reply from the browser. The reply goes through your Mac like any other text.
The API
POST /v1/messagessends a text and answers with the message: its id, its state, any hold, and up to 20 keys of your ownmetadata, which every webhook for it repeats.- Every
POSTtakes anIdempotency-Key. BlueBot keeps the answer for 24 hours, so a retry never sends a second text, and the same key with a different body answers409 idempotency_conflict. - Keys start
bb_live_orbb_test_, carry a checksum that secret scanners recognize, and can be limited to scopes such asmessages:sendor read only. - 120 requests a minute per key, with
RateLimit-*headers on every answer. Every refusal has a stable code, a sentence, a hint and a page in the docs. - Scheduled texts wait as drafts you can edit or cancel until they go. Quickstart sends your first one.
Webhooks
- Events for every step a text takes, from
message.queuedtomessage.deliveredandmessage.read, plus replies, tapbacks, stops and your Mac going offline or coming back. - Every delivery is signed with Standard Webhooks (
webhook-id,webhook-timestamp,webhook-signature) so you can check it came from BlueBot. - A delivery that fails is retried with backoff for 72 hours. If your endpoint keeps failing, BlueBot pauses it and emails you once.
- You can replay any delivery, send a test event, and rotate a signing secret while the old one keeps signing for 24 hours.
GET /v1/eventslists the last 30 days of events for catching up. Webhooks
Zapier and MCP
- The BlueBot app for Zapier has triggers, actions and searches. Its triggers are instant, so a reply starts your Zap as soon as it comes in. Zapier
- An MCP server lets Claude, ChatGPT, Cursor and other assistants read your conversations, check your Mac and send texts when you ask. Sign in with OAuth or an API key. MCP
AI
- The integration assistant walks you through building the integration you want, step by step, from the docs and your own setup. It can propose a webhook, a template or a key as a card you confirm, and it never sees a key's secret.
- Autopilot replies to incoming texts from your instructions and FAQ. You choose whether it suggests replies for you to send or sends them itself. It never invents a price or a promise you didn't give it, and it never replies to someone who texted STOP.
Sending rules and holds
- Your rules start here, and each one is yours to change: 20 seconds between texts (anywhere from 5 to 300), 50 new people a day, quiet hours from 9:00 PM to 8:00 AM in your time zone, stop words, and texts that expire after 24 hours. BlueBot's own ceiling is 1,000 texts a day.
- A text that can't go yet is accepted and held rather than refused. Every message carries its hold, and the dashboard says it in words, such as "Waiting for quiet hours to end at 8:00 AM". Holds
- When someone texts STOP, BlueBot cancels what's waiting for them and sends them nothing more until they text START.
What BlueBot keeps
- The words of every text are deleted after 30 days. BlueBot keeps who each text went to, when, and what state it reached.
- Words never go into BlueBot's logs, analytics or error reports. Security says what else is kept and for how long.