Canal BlueBubbles do OpenClaw
Conecte o OpenClaw ao iMessage através da API REST do BlueBubbles. Esta integração transforma seu Mac em um gateway iMessage — instale o aplicativo servidor BlueBubbles, habilite a API Web, e seu assistente de IA poderá enviar e receber mensagens iMessage, reações tapback e anexos de mídia. BlueBubbles é o canal iMessage recomendado, substituindo a abordagem legada imsg CLI.
BlueBubbles Recursos suportados
Mensagens de texto
Suportado
Mídia e arquivos
Suportado
Reações
Suportado
Threads
Não suportado
Mensagens de voz
Não suportado
Chat em grupo
Suportado
BlueBubbles Pré-requisitos
- Um Mac executando macOS High Sierra (10.13) ou posterior (Ventura 13+ recomendado para funcionalidade completa; Tahoe 26 suportado com limitações)
- Aplicativo servidor BlueBubbles instalado a partir de bluebubbles.app
- API Web habilitada com senha definida na configuração do BlueBubbles
- OpenClaw Gateway em execução e configurado
BlueBubbles Configuração rápida
Instalar o servidor BlueBubbles no seu Mac
Baixe e instale o aplicativo servidor BlueBubbles de bluebubbles.app/install. Inicie o aplicativo, faça login com seu Apple ID e complete a configuração inicial. Certifique-se de que o iMessage esteja funcionando corretamente no Mac.
Habilitar a API Web
Nas configurações do servidor BlueBubbles, habilite a API Web/REST e defina uma senha forte. Anote a URL do servidor (ex: http://localhost:1234) — você precisará dela para a configuração do OpenClaw.
Adicionar configuração do canal BlueBubbles
Execute 'openclaw onboard' e selecione BlueBubbles, ou adicione manualmente a configuração do canal em ~/.openclaw/openclaw.json com seu serverUrl e password. Configure o webhookPath se necessário.
Configurar webhook e testar
Aponte os webhooks do BlueBubbles para seu Gateway: https://your-gateway-host:3000/bluebubbles-webhook?password=<password>. Inicie o Gateway e envie um iMessage de teste para verificar a conexão. Se usar a política de pareamento, aprove o remetente com 'openclaw pairing approve bluebubbles <code>'.
BlueBubbles Exemplo de configuração
{
"channels": {
"bluebubbles": {
"enabled": true,
"serverUrl": "http://localhost:1234",
"password": "YOUR_BLUEBUBBLES_PASSWORD",
"webhookPath": "/bluebubbles-webhook",
"dmPolicy": "pairing"
}
}
}BlueBubbles Documentação Detalhada
Visão geral da arquitetura
Configuração do servidor BlueBubbles
# Formato de URL webhook para seu Gateway
https://your-gateway-host:3000/bluebubbles-webhook?password=YOUR_PASSWORDPolíticas de DM
{
"channels": {
"bluebubbles": {
"dmPolicy": "allowlist",
"allowFrom": ["+15551234567", "user@example.com"]
}
}
}Gerenciamento de chats em grupo
{
"channels": {
"bluebubbles": {
"groupPolicy": "allowlist",
"groupAllowFrom": ["+15551234567"],
"groups": {
"iMessage;+;chat123456": {
"requireMention": false
}
}
}
}
}Ações e efeitos do iMessage
{
"channels": {
"bluebubbles": {
"actions": {
"reactions": true,
"edit": true,
"unsend": true,
"reply": true,
"sendWithEffect": true,
"sendAttachment": true
}
}
}
}Entrega e fragmentação de mensagens
{
"channels": {
"bluebubbles": {
"textChunkLimit": 4000,
"chunkMode": "newline",
"blockStreaming": false,
"sendReadReceipts": true
}
}
}Mídia e anexos
Gerenciamento de ID de mensagem
Endereçamento e roteamento
Segurança e autenticação webhook
Manter Messages.app ativo (Headless/VM)
BlueBubbles Referência de Configuração
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | false | Ativar ou desativar o canal BlueBubbles |
| serverUrl | string | "" | URL base da API REST do BlueBubbles (ex: http://localhost:1234) |
| password | string | "" | Senha da API BlueBubbles para autenticação |
| webhookPath | string | "/bluebubbles-webhook" | Caminho do endpoint webhook para receber mensagens |
| dmPolicy | string | "pairing" | Controla quem pode enviar DM ao bot. Opções: pairing, allowlist, open, disabled |
| allowFrom | string[] | [] | Números de telefone e e-mails autorizados a enviar mensagens (formato E.164 para telefones) |
| groupPolicy | string | "allowlist" | Política de chat em grupo. Opções: open, allowlist, disabled |
| groupAllowFrom | string[] | [] | Endereços de remetentes autorizados a acionar o bot em chats de grupo |
| sendReadReceipts | boolean | true | Enviar confirmação de leitura ao processar mensagens |
| blockStreaming | boolean | false | Habilitar streaming de resposta por blocos em vez de esperar a resposta completa |
| textChunkLimit | number | 4000 | Caracteres máximos por fragmento de mensagem de texto de saída |
| chunkMode | string | "length" | Modo de fragmentação de texto. Opções: length (por tamanho), newline (por parágrafo) |
| mediaMaxMb | number | 8 | Tamanho máximo de arquivo de anexos recebidos em megabytes |
| historyLimit | number | - | Máximo de mensagens de grupo incluídas como contexto de IA (0 para desativar) |
| dmHistoryLimit | number | - | Limite de histórico de conversa DM para contexto de IA |
| actions.reactions | boolean | true | Habilitar reações tapback (requer API privada) |
| actions.edit | boolean | true | Habilitar edição de mensagens (requer macOS 13+; quebrado no Tahoe) |
| actions.unsend | boolean | true | Habilitar cancelamento de mensagens (requer macOS 13+) |
| actions.reply | boolean | true | Habilitar threading de mensagens por GUID |
| actions.sendWithEffect | boolean | true | Habilitar efeitos de bolha iMessage (slam, alto, suave, etc.) |
| actions.sendAttachment | boolean | true | Habilitar entrega de mídia e memos de voz |
Ativar ou desativar o canal BlueBubbles
URL base da API REST do BlueBubbles (ex: http://localhost:1234)
Senha da API BlueBubbles para autenticação
Caminho do endpoint webhook para receber mensagens
Controla quem pode enviar DM ao bot. Opções: pairing, allowlist, open, disabled
Números de telefone e e-mails autorizados a enviar mensagens (formato E.164 para telefones)
Política de chat em grupo. Opções: open, allowlist, disabled
Endereços de remetentes autorizados a acionar o bot em chats de grupo
Enviar confirmação de leitura ao processar mensagens
Habilitar streaming de resposta por blocos em vez de esperar a resposta completa
Caracteres máximos por fragmento de mensagem de texto de saída
Modo de fragmentação de texto. Opções: length (por tamanho), newline (por parágrafo)
Tamanho máximo de arquivo de anexos recebidos em megabytes
Máximo de mensagens de grupo incluídas como contexto de IA (0 para desativar)
Limite de histórico de conversa DM para contexto de IA
Habilitar reações tapback (requer API privada)
Habilitar edição de mensagens (requer macOS 13+; quebrado no Tahoe)
Habilitar cancelamento de mensagens (requer macOS 13+)
Habilitar threading de mensagens por GUID
Habilitar efeitos de bolha iMessage (slam, alto, suave, etc.)
Habilitar entrega de mídia e memos de voz
BlueBubbles Perguntas Frequentes
BlueBubbles Solução de Problemas
A URL do webhook no BlueBubbles não corresponde ao endpoint do Gateway, ou o parâmetro de senha está incorreto.
A API privada do BlueBubbles não está habilitada, ou a versão do servidor não suporta os endpoints de API necessários.
O Messages.app entra em modo ocioso em configurações headless/VM e para de processar a interface de scripting.
O número de telefone ou e-mail do destinatário não está registrado no iMessage, ou o Apple ID no Mac tem o iMessage desativado.
Problema conhecido — macOS Tahoe (26) quebrou o endpoint da API privada para edição de mensagens.