home / skills / openclaw / openclaw / bluebubbles

bluebubbles skill

/skills/bluebubbles

This skill helps you send and manage iMessages via BlueBubbles, including texting, editing, reactions, replies, and attachments.

npx playbooks add skill openclaw/openclaw --skill bluebubbles

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
3.0 KB
---
name: bluebubbles
description: Use when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration). Calls go through the generic message tool with channel="bluebubbles".
metadata: { "openclaw": { "emoji": "đź«§", "requires": { "config": ["channels.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 `[email protected]`)
- `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 `extensions/bluebubbles/README.md`.

## 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.

Overview

This skill integrates with BlueBubbles to send and manage iMessages through the generic message tool using channel="bluebubbles". It supports sending texts and attachments, reacting (tapbacks), editing or unsending messages, replying in threads, and managing group metadata. Use it when you want reliable iMessage actions from any platform via a BlueBubbles gateway.

How this skill works

Calls are made through the message tool with channel set to "bluebubbles" and a target (preferably chat_guid or an E.164 phone/email handle). Provide action-specific inputs such as message text, messageId for edits/reactions, attachment paths or base64 buffers, and optional effects or captions. The gateway configuration (serverUrl/password/webhookPath) must be available and the BlueBubbles server reachable for actions to succeed.

When to use it

  • Send iMessages from a non‑Apple device or server
  • Attach files or images to an iMessage thread
  • React to a message with a tapback emoji
  • Edit or unsend a message you previously sent
  • Reply to a specific message in a thread

Best practices

  • Prefer chat_guid values for targets, especially for groups, to avoid ambiguity
  • Always confirm recipient handle and exact message text if user input is vague
  • Use full message ids when available; they are more durable across gateway restarts
  • Include attachment path for local files or provide buffer+filename for base64 uploads
  • Be aware some actions (like edit) may be macOS-version dependent

Example use cases

  • Send a quick text: send action with target and message to notify someone from a server
  • Acknowledge a request: react with a tapback emoji to a specific messageId
  • Follow up in-thread: reply action referencing replyTo messageId to keep context
  • Share media: sendAttachment with local path and short caption to deliver a file
  • Correct a typo: edit action using messageId to update your previous message

FAQ

What target formats are supported?

Use chat_guid when possible; phone numbers in E.164 (+15551234567) or Apple IDs ([email protected]) also work.

How do I send files?

Provide a local path for the gateway to read or send a base64 buffer with a filename; include an optional caption.