bluebubbles
GitHub通过 BlueBubbles 集成管理 iMessage,支持发送消息、附件、回复、编辑、撤回及反应(Tapback)。需指定目标地址和消息内容,推荐使用 chat_guid。
触发场景
安装
npx skills add spinabot/brigade --skill bluebubbles -g -y
SKILL.md
Frontmatter
{
"name": "bluebubbles",
"metadata": {
"brigade": {
"emoji": "🫧",
"requires": {
"config": [
"channels.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\"."
}
BlueBubbles Actions
Overview
BlueBubbles is Brigade’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(preferchat_guid:...; also+15551234567in E.164 oruser@example.com)messagetext for send/edit/replymessageIdfor react/edit/unsend/reply- Attachment
pathfor local files, orbuffer+filenamefor 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
{
"action": "send",
"channel": "bluebubbles",
"target": "+15551234567",
"message": "hello from Brigade"
}
React (tapback)
{
"action": "react",
"channel": "bluebubbles",
"target": "+15551234567",
"messageId": "<message-guid>",
"emoji": "❤️"
}
Remove a reaction
{
"action": "react",
"channel": "bluebubbles",
"target": "+15551234567",
"messageId": "<message-guid>",
"emoji": "❤️",
"remove": true
}
Edit a previously sent message
{
"action": "edit",
"channel": "bluebubbles",
"target": "+15551234567",
"messageId": "<message-guid>",
"message": "updated text"
}
Unsend a message
{
"action": "unsend",
"channel": "bluebubbles",
"target": "+15551234567",
"messageId": "<message-guid>"
}
Reply to a specific message
{
"action": "reply",
"channel": "bluebubbles",
"target": "+15551234567",
"replyTo": "<message-guid>",
"message": "replying to that"
}
Send an attachment
{
"action": "send",
"channel": "bluebubbles",
"target": "+15551234567",
"path": "/tmp/photo.jpg",
"message": "here you go"
}
Use message for the user-facing text. Do not rely on caption as a distinct BlueBubbles/iMessage feature.
Send with an iMessage effect
{
"action": "sendWithEffect",
"channel": "bluebubbles",
"target": "+15551234567",
"message": "big news",
"effect": "balloons"
}
Notes
- Requires gateway config
channels.bluebubbles(serverUrl/password/webhookPath). - Prefer
chat_guidtargets when you have them (especially for group chats). - For media + text, treat
messageas canonical. Brigade can acceptcaptionas an alias, but BlueBubbles/iMessage does not offer a reliable native attachment-caption concept. - In practice, media with text may arrive as the attachment plus a separate text message rather than one captioned bubble. Do not promise exact attachment-caption rendering.
- If you must use the channel-specific file action, the canonical action name is
upload-file;sendAttachmentis a legacy alias. - 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 short message text, expecting BlueBubbles to treat the text as best-effort companion text rather than a guaranteed native caption.
版本历史
- db99206 当前 2026-07-05 10:58


