Canal BlueBubbles de OpenClaw
Conecta OpenClaw a iMessage a través de la API REST de BlueBubbles. Esta integración convierte tu Mac en una pasarela iMessage — instala la aplicación servidor BlueBubbles, habilita la API Web, y tu asistente de IA podrá enviar y recibir mensajes iMessage, reacciones tapback y archivos adjuntos multimedia. BlueBubbles es el canal iMessage recomendado, reemplazando el antiguo enfoque imsg CLI.
BlueBubbles Funciones compatibles
Mensajes de texto
Compatible
Medios y archivos
Compatible
Reacciones
Compatible
Hilos
No compatible
Mensajes de voz
No compatible
Chat grupal
Compatible
BlueBubbles Requisitos previos
- Un Mac con macOS High Sierra (10.13) o posterior (Ventura 13+ recomendado para todas las funciones; Tahoe 26 compatible con limitaciones)
- Aplicación servidor BlueBubbles instalada desde bluebubbles.app
- API Web habilitada con contraseña establecida en la configuración de BlueBubbles
- OpenClaw Gateway en ejecución y configurado
BlueBubbles Configuración rápida
Instalar el servidor BlueBubbles en tu Mac
Descarga e instala la aplicación servidor BlueBubbles desde bluebubbles.app/install. Inicia la aplicación, inicia sesión con tu Apple ID y completa la configuración inicial. Asegúrate de que iMessage funcione correctamente en el Mac.
Habilitar la API Web
En la configuración del servidor BlueBubbles, habilita la API Web/REST y establece una contraseña segura. Anota la URL del servidor (ej. http://localhost:1234) — la necesitarás para la configuración de OpenClaw.
Añadir la configuración del canal BlueBubbles
Ejecuta 'openclaw onboard' y selecciona BlueBubbles, o añade manualmente la configuración del canal en ~/.openclaw/openclaw.json con tu serverUrl y password. Configura el webhookPath si es necesario.
Configurar webhook y probar
Apunta los webhooks de BlueBubbles a tu Gateway: https://your-gateway-host:3000/bluebubbles-webhook?password=<password>. Inicia el Gateway y envía un iMessage de prueba para verificar la conexión. Si usas la política de emparejamiento, aprueba al remitente con 'openclaw pairing approve bluebubbles <code>'.
BlueBubbles Ejemplo de configuración
{
"channels": {
"bluebubbles": {
"enabled": true,
"serverUrl": "http://localhost:1234",
"password": "YOUR_BLUEBUBBLES_PASSWORD",
"webhookPath": "/bluebubbles-webhook",
"dmPolicy": "pairing"
}
}
}BlueBubbles Documentación Detallada
Descripción de la arquitectura
Configuración del servidor BlueBubbles
# Formato de URL webhook para tu Gateway
https://your-gateway-host:3000/bluebubbles-webhook?password=YOUR_PASSWORDPolíticas de DM
{
"channels": {
"bluebubbles": {
"dmPolicy": "allowlist",
"allowFrom": ["+15551234567", "user@example.com"]
}
}
}Gestión de chats grupales
{
"channels": {
"bluebubbles": {
"groupPolicy": "allowlist",
"groupAllowFrom": ["+15551234567"],
"groups": {
"iMessage;+;chat123456": {
"requireMention": false
}
}
}
}
}Acciones y efectos de iMessage
{
"channels": {
"bluebubbles": {
"actions": {
"reactions": true,
"edit": true,
"unsend": true,
"reply": true,
"sendWithEffect": true,
"sendAttachment": true
}
}
}
}Entrega y fragmentación de mensajes
{
"channels": {
"bluebubbles": {
"textChunkLimit": 4000,
"chunkMode": "newline",
"blockStreaming": false,
"sendReadReceipts": true
}
}
}Medios y archivos adjuntos
Gestión de ID de mensaje
Direccionamiento y enrutamiento
Seguridad y autenticación webhook
Mantener activo Messages.app (Headless/VM)
BlueBubbles Referencia de Configuración
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | false | Activar o desactivar el canal BlueBubbles |
| serverUrl | string | "" | URL base de la API REST de BlueBubbles (ej: http://localhost:1234) |
| password | string | "" | Contraseña API de BlueBubbles para autenticación |
| webhookPath | string | "/bluebubbles-webhook" | Ruta del endpoint webhook para recibir mensajes entrantes |
| dmPolicy | string | "pairing" | Controla quién puede enviar DM al bot. Opciones: pairing, allowlist, open, disabled |
| allowFrom | string[] | [] | Números de teléfono y correos autorizados para enviar mensajes (formato E.164 para teléfonos) |
| groupPolicy | string | "allowlist" | Política de chat grupal. Opciones: open, allowlist, disabled |
| groupAllowFrom | string[] | [] | Direcciones de remitentes autorizados para activar el bot en chats grupales |
| sendReadReceipts | boolean | true | Enviar confirmación de lectura al procesar mensajes |
| blockStreaming | boolean | false | Habilitar streaming de respuesta por bloques en lugar de esperar la respuesta completa |
| textChunkLimit | number | 4000 | Caracteres máximos por fragmento de mensaje de texto saliente |
| chunkMode | string | "length" | Modo de fragmentación de texto. Opciones: length (por tamaño), newline (por párrafo) |
| mediaMaxMb | number | 8 | Tamaño máximo de archivos adjuntos entrantes en megabytes |
| historyLimit | number | - | Máximo de mensajes de grupo incluidos como contexto de IA (0 para desactivar) |
| dmHistoryLimit | number | - | Límite de historial de conversación DM para contexto de IA |
| actions.reactions | boolean | true | Habilitar reacciones tapback (requiere API privada) |
| actions.edit | boolean | true | Habilitar edición de mensajes (requiere macOS 13+; roto en Tahoe) |
| actions.unsend | boolean | true | Habilitar eliminación de mensajes (requiere macOS 13+) |
| actions.reply | boolean | true | Habilitar hilos de mensajes por GUID |
| actions.sendWithEffect | boolean | true | Habilitar efectos de burbuja iMessage (slam, fuerte, suave, etc.) |
| actions.sendAttachment | boolean | true | Habilitar entrega de medios y memos de voz |
Activar o desactivar el canal BlueBubbles
URL base de la API REST de BlueBubbles (ej: http://localhost:1234)
Contraseña API de BlueBubbles para autenticación
Ruta del endpoint webhook para recibir mensajes entrantes
Controla quién puede enviar DM al bot. Opciones: pairing, allowlist, open, disabled
Números de teléfono y correos autorizados para enviar mensajes (formato E.164 para teléfonos)
Política de chat grupal. Opciones: open, allowlist, disabled
Direcciones de remitentes autorizados para activar el bot en chats grupales
Enviar confirmación de lectura al procesar mensajes
Habilitar streaming de respuesta por bloques en lugar de esperar la respuesta completa
Caracteres máximos por fragmento de mensaje de texto saliente
Modo de fragmentación de texto. Opciones: length (por tamaño), newline (por párrafo)
Tamaño máximo de archivos adjuntos entrantes en megabytes
Máximo de mensajes de grupo incluidos como contexto de IA (0 para desactivar)
Límite de historial de conversación DM para contexto de IA
Habilitar reacciones tapback (requiere API privada)
Habilitar edición de mensajes (requiere macOS 13+; roto en Tahoe)
Habilitar eliminación de mensajes (requiere macOS 13+)
Habilitar hilos de mensajes por GUID
Habilitar efectos de burbuja iMessage (slam, fuerte, suave, etc.)
Habilitar entrega de medios y memos de voz
BlueBubbles Preguntas Frecuentes
BlueBubbles Solución de Problemas
La URL del webhook en BlueBubbles no coincide con el endpoint del Gateway, o el parámetro de contraseña es incorrecto.
La API privada de BlueBubbles no está habilitada, o la versión del servidor no soporta los endpoints API requeridos.
Messages.app entra en modo inactivo en configuraciones headless/VM y deja de procesar la interfaz de scripting.
El número de teléfono o correo del destinatario no está registrado en iMessage, o el Apple ID en el Mac tiene iMessage desactivado.
Problema conocido — macOS Tahoe (26) rompió el endpoint de la API privada para edición de mensajes.