
Bluebubbles
Wire your OpenClaw agent to send and manage iMessages through BlueBubbles, including attachments, tapbacks, edits, and group threads.
Overview
Bluebubbles is an agent skill for the Build phase that sends and manages iMessages via OpenClaw’s BlueBubbles channel, including attachments, tapbacks, edits, replies, and groups.
Install
npx skills add https://github.com/steipete/clawdis --skill bluebubblesWhat is this skill?
- OpenClaw-recommended iMessage path via `channel: "bluebubbles"` on the message tool
- Supports send, tapback react/remove, edit, unsend, reply, and group participant/name/icon management
- Targets E.164 phone numbers, email handles, or `chat_guid:` identifiers
- Attachments via local `path` or base64 `buffer` plus `filename`
Adoption & trust: 1.1k installs on skills.sh; 378k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
Your agent can chat in browsers or Slack but you need native iMessage send, react, and thread actions without writing one-off HTTP clients.
Who is it for?
Solo builders shipping OpenClaw agents with a BlueBubbles server and clear recipient handles or chat guids.
Skip if: Teams needing WhatsApp, SMS aggregator APIs, or iMessage capability without BlueBubbles and OpenClaw channel config.
When should I use this skill?
User needs to send or manage iMessages through OpenClaw with BlueBubbles, including attachments, reactions, edits, replies, or groups.
What do I get? / Deliverables
Your agent issues documented JSON message-tool calls for BlueBubbles send, react, edit, reply, and attachment flows once `channels.bluebubbles` is configured.
- Executable message-tool JSON payloads for each action
- Clarified target and attachment inputs for vague user requests
Recommended Skills
Journey fit
Channel integrations are built while assembling the agent product, so the primary shelf is Build—not Launch distribution. BlueBubbles is an external messaging channel integration consumed via the message tool, matching Build → Integrations.
How it compares
Channel integration skill for OpenClaw’s message tool—not a standalone MCP server or Apple Business Chat product integration.
Common Questions / FAQ
Who is bluebubbles for?
Indie agent builders using OpenClaw who already run or can run BlueBubbles for iMessage automation.
When should I use bluebubbles?
During Build when wiring agent-tooling and messaging integrations—after BlueBubbles is configured and you need send, tapback, edit, reply, or group actions from the agent.
Is bluebubbles safe to install?
It enables real iMessage actions on configured accounts; review the Security Audits panel on this Prism page and restrict agent permissions to contacts and data you accept exposing to automation.
SKILL.md
READMESKILL.md - Bluebubbles
# BlueBubbles Actions ## Overview BlueBubbles is OpenClaw’s recommended iMessage integration. Use the `message` tool with `channel: "bluebubbles"` to send messages and manage iMessage conversations: send texts and attachments, react (tapbacks), edit/unsend, reply in threads, and manage group participants/names/icons. ## Inputs to collect - `target` (prefer `chat_guid:...`; also `+15551234567` in E.164 or `user@example.com`) - `message` text for send/edit/reply - `messageId` for react/edit/unsend/reply - Attachment `path` for local files, or `buffer` + `filename` for base64 If the user is vague ("text my mom"), ask for the recipient handle or chat guid and the exact message content. ## Actions ### Send a message ```json { "action": "send", "channel": "bluebubbles", "target": "+15551234567", "message": "hello from OpenClaw" } ``` ### React (tapback) ```json { "action": "react", "channel": "bluebubbles", "target": "+15551234567", "messageId": "<message-guid>", "emoji": "❤️" } ``` ### Remove a reaction ```json { "action": "react", "channel": "bluebubbles", "target": "+15551234567", "messageId": "<message-guid>", "emoji": "❤️", "remove": true } ``` ### Edit a previously sent message ```json { "action": "edit", "channel": "bluebubbles", "target": "+15551234567", "messageId": "<message-guid>", "message": "updated text" } ``` ### Unsend a message ```json { "action": "unsend", "channel": "bluebubbles", "target": "+15551234567", "messageId": "<message-guid>" } ``` ### Reply to a specific message ```json { "action": "reply", "channel": "bluebubbles", "target": "+15551234567", "replyTo": "<message-guid>", "message": "replying to that" } ``` ### Send an attachment ```json { "action": "sendAttachment", "channel": "bluebubbles", "target": "+15551234567", "path": "/tmp/photo.jpg", "caption": "here you go" } ``` ### Send with an iMessage effect ```json { "action": "sendWithEffect", "channel": "bluebubbles", "target": "+15551234567", "message": "big news", "effect": "balloons" } ``` ## Notes - Requires gateway config `channels.bluebubbles` (serverUrl/password/webhookPath). - Prefer `chat_guid` targets when you have them (especially for group chats). - BlueBubbles supports rich actions, but some are macOS-version dependent (for example, edit may be broken on macOS 26 Tahoe). - The gateway may expose both short and full message ids; full ids are more durable across restarts. - Developer reference for the underlying plugin lives in the BlueBubbles plugin package README. ## Ideas to try - React with a tapback to acknowledge a request. - Reply in-thread when a user references a specific message. - Send a file attachment with a short caption.