bluebubbles

Clawdbot Tools
v1.0.0
Benign

Build or update the BlueBubbles external channel plugin.

16.8K downloads764 installsby @kevin19830331

Setup & Installation

Install command

clawhub install kevin19830331/bluebubbles

If the CLI is not installed:

Install command

npx clawhub@latest install kevin19830331/bluebubbles

Or install with OpenClaw CLI:

Install command

openclaw skills install kevin19830331/bluebubbles

or paste the repo link into your assistant's chat

Install command

https://github.com/openclaw/skills/tree/main/skills/kevin19830331/bluebubbles

What This Skill Does

A Clawdbot extension package that connects the bot to a self-hosted BlueBubbles server for sending and receiving iMessages. Covers REST message delivery, webhook ingestion, tapback reactions, typing indicators, read receipts, and attachment handling.

Lets Clawdbot participate in iMessage threads without native Apple infrastructure by delegating to a user-controlled BlueBubbles server.

When to Use It

  • Routing iMessage conversations into a Clawdbot reply pipeline
  • Sending automated text replies to iMessages via a Mac-hosted BlueBubbles server
  • Forwarding inbound iMessage attachments and stickers to the bot for processing
  • Sending tapback reactions to specific iMessages by phone number and message ID
  • Health-checking a BlueBubbles server before enabling the channel
View original SKILL.md file
# BlueBubbles plugin

Use this skill when working on the BlueBubbles channel plugin.

## Layout
- Extension package: `extensions/bluebubbles/` (entry: `index.ts`).
- Channel implementation: `extensions/bluebubbles/src/channel.ts`.
- Webhook handling: `extensions/bluebubbles/src/monitor.ts` (register via `api.registerHttpHandler`).
- REST helpers: `extensions/bluebubbles/src/send.ts` + `extensions/bluebubbles/src/probe.ts`.
- Runtime bridge: `extensions/bluebubbles/src/runtime.ts` (set via `api.runtime`).
- Catalog entry for onboarding: `src/channels/plugins/catalog.ts`.

## Internal helpers (use these, not raw API calls)
- `probeBlueBubbles` in `extensions/bluebubbles/src/probe.ts` for health checks.
- `sendMessageBlueBubbles` in `extensions/bluebubbles/src/send.ts` for text delivery.
- `resolveChatGuidForTarget` in `extensions/bluebubbles/src/send.ts` for chat lookup.
- `sendBlueBubblesReaction` in `extensions/bluebubbles/src/reactions.ts` for tapbacks.
- `sendBlueBubblesTyping` + `markBlueBubblesChatRead` in `extensions/bluebubbles/src/chat.ts`.
- `downloadBlueBubblesAttachment` in `extensions/bluebubbles/src/attachments.ts` for inbound media.
- `buildBlueBubblesApiUrl` + `blueBubblesFetchWithTimeout` in `extensions/bluebubbles/src/types.ts` for shared REST plumbing.

## Webhooks
- BlueBubbles posts JSON to the gateway HTTP server.
- Normalize sender/chat IDs defensively (payloads vary by version).
- Skip messages marked as from self.
- Route into core reply pipeline via the plugin runtime (`api.runtime`) and `clawdbot/plugin-sdk` helpers.
- For attachments/stickers, use `<media:...>` placeholders when text is empty and attach media paths via `MediaUrl(s)` in the inbound context.

## Config (core)
- `channels.bluebubbles.serverUrl` (base URL), `channels.bluebubbles.password`, `channels.bluebubbles.webhookPath`.
- Action gating: `channels.bluebubbles.actions.reactions` (default true).

## Message tool notes
- **Reactions:** The `react` action requires a `target` (phone number or chat identifier) in addition to `messageId`. Example: `action=react target=+15551234567 messageId=ABC123 emoji=❤️`

Example Workflow

Here's how your AI assistant might use this skill in practice.

INPUT

User asks: Routing iMessage conversations into a Clawdbot reply pipeline

AGENT
  1. 1Routing iMessage conversations into a Clawdbot reply pipeline
  2. 2Sending automated text replies to iMessages via a Mac-hosted BlueBubbles server
  3. 3Forwarding inbound iMessage attachments and stickers to the bot for processing
  4. 4Sending tapback reactions to specific iMessages by phone number and message ID
  5. 5Health-checking a BlueBubbles server before enabling the channel
OUTPUT
Build or update the BlueBubbles external channel plugin.

Share this skill

Security Audits

VirusTotalBenign
OpenClawBenign
View full report

These signals reflect official OpenClaw status values. A Suspicious status means the skill should be used with extra caution.

Details

LanguageMarkdown
Last updatedFeb 26, 2026