iMessage (heredado: imsg)
Estado: integración heredada de CLI externa. Gateway iniciaimsg rpc y se comunica mediante JSON-RPC sobre stdio (sin daemon/puerto independiente).
BlueBubbles (recomendado)
Ruta preferida de iMessage para configuraciones nuevas.
Emparejamiento
Los mensajes directos de iMessage usan el modo de emparejamiento de forma predeterminada.
Referencia de configuración
Referencia completa de campos de iMessage.
Configuración rápida
- Mac local (ruta rápida)
- Mac remoto por SSH
Requisitos y permisos (macOS)
- Messages debe haber iniciado sesión en el Mac que ejecuta
imsg. - Se requiere Acceso total al disco para el contexto de proceso que ejecuta OpenClaw/
imsg(acceso a la base de datos de Messages). - Se requiere permiso de Automatización para enviar mensajes mediante Messages.app.
Control de acceso y enrutamiento
- Política de mensajes directos
- Política de grupos + menciones
- Sesiones y respuestas deterministas
channels.imessage.dmPolicy controla los mensajes directos:pairing(predeterminado)allowlistopen(requiere queallowFromincluya"*")disabled
channels.imessage.allowFrom.Las entradas de la lista de permitidos pueden ser identificadores o destinos de chat (chat_id:*, chat_guid:*, chat_identifier:*).Enlaces de conversación de ACP
Los chats heredados de iMessage también pueden vincularse a sesiones de ACP. Flujo rápido para operadores:- Ejecuta
/acp spawn codex --bind heredentro del mensaje directo o del chat de grupo permitido. - Los mensajes futuros en esa misma conversación de iMessage se enrutan a la sesión de ACP creada.
/newy/resetrestablecen en el lugar la misma sesión de ACP vinculada./acp closecierra la sesión de ACP y elimina el vínculo.
bindings[] de nivel superior con type: "acp" y match.channel: "imessage".
match.peer.id puede usar:
- identificador de mensaje directo normalizado como
+15555550123ouser@example.com chat_id:<id>(recomendado para vínculos de grupo estables)chat_guid:<guid>chat_identifier:<identifier>
Patrones de implementación
Usuario dedicado de bot en macOS (identidad de iMessage separada)
Usuario dedicado de bot en macOS (identidad de iMessage separada)
Usa un Apple ID y un usuario de macOS dedicados para que el tráfico del bot quede aislado de tu perfil personal de Messages.Flujo típico:
- Crea o inicia sesión en un usuario dedicado de macOS.
- Inicia sesión en Messages con el Apple ID del bot en ese usuario.
- Instala
imsgen ese usuario. - Crea un contenedor SSH para que OpenClaw pueda ejecutar
imsgen el contexto de ese usuario. - Haz que
channels.imessage.accounts.<id>.cliPathy.dbPathapunten al perfil de ese usuario.
Mac remoto por Tailscale (ejemplo)
Mac remoto por Tailscale (ejemplo)
Topología habitual:Usa claves SSH para que tanto SSH como SCP no sean interactivos.
Asegúrate de que primero se confíe en la clave del host (por ejemplo
- Gateway se ejecuta en Linux/VM
- iMessage +
imsgse ejecuta en un Mac dentro de tu tailnet - el contenedor
cliPathusa SSH para ejecutarimsg remoteHostpermite recuperar adjuntos con SCP
ssh bot@mac-mini.tailnet-1234.ts.net) para que se complete known_hosts.Patrón de varias cuentas
Patrón de varias cuentas
iMessage admite configuración por cuenta en
channels.imessage.accounts.Cada cuenta puede reemplazar campos como cliPath, dbPath, allowFrom, groupPolicy, mediaMaxMb, ajustes de historial y listas de permitidos de raíces de adjuntos.Multimedia, fragmentación y destinos de entrega
Adjuntos y multimedia
Adjuntos y multimedia
- la ingesta de adjuntos entrantes es opcional:
channels.imessage.includeAttachments - las rutas de adjuntos remotos pueden recuperarse mediante SCP cuando
remoteHostestá configurado - las rutas de adjuntos deben coincidir con las raíces permitidas:
channels.imessage.attachmentRoots(local)channels.imessage.remoteAttachmentRoots(modo SCP remoto)- patrón de raíz predeterminado:
/Users/*/Library/Messages/Attachments
- SCP usa verificación estricta de clave de host (
StrictHostKeyChecking=yes) - el tamaño de multimedia saliente usa
channels.imessage.mediaMaxMb(predeterminado: 16 MB)
Fragmentación saliente
Fragmentación saliente
- límite de fragmento de texto:
channels.imessage.textChunkLimit(predeterminado: 4000) - modo de fragmentación:
channels.imessage.chunkModelength(predeterminado)newline(división priorizando párrafos)
Formatos de direccionamiento
Formatos de direccionamiento
Destinos explícitos preferidos:
chat_id:123(recomendado para un enrutamiento estable)chat_guid:...chat_identifier:...
imessage:+1555...sms:+1555...user@example.com
Escrituras de configuración
iMessage permite por defecto escrituras de configuración iniciadas por el canal (para/config set|unset cuando commands.config: true).
Desactivar:
Resolución de problemas
No se encuentra imsg o RPC no es compatible
No se encuentra imsg o RPC no es compatible
Valida el binario y la compatibilidad con RPC:Si la sonda informa que RPC no es compatible, actualiza
imsg.Se ignoran los mensajes directos
Se ignoran los mensajes directos
Comprueba:
channels.imessage.dmPolicychannels.imessage.allowFrom- aprobaciones de emparejamiento (
openclaw pairing list imessage)
Se ignoran los mensajes de grupo
Se ignoran los mensajes de grupo
Comprueba:
channels.imessage.groupPolicychannels.imessage.groupAllowFrom- comportamiento de lista de permitidos de
channels.imessage.groups - configuración del patrón de menciones (
agents.list[].groupChat.mentionPatterns)
Fallan los adjuntos remotos
Fallan los adjuntos remotos
Comprueba:
channels.imessage.remoteHostchannels.imessage.remoteAttachmentRoots- autenticación por clave SSH/SCP desde el host de Gateway
- la clave del host existe en
~/.ssh/known_hostsen el host de Gateway - legibilidad de la ruta remota en el Mac que ejecuta Messages
Se omitieron las solicitudes de permisos de macOS
Se omitieron las solicitudes de permisos de macOS
Vuelve a ejecutar en una terminal GUI interactiva en el mismo contexto de usuario/sesión y aprueba las solicitudes:Confirma que Acceso total al disco + Automatización estén concedidos al contexto de proceso que ejecuta OpenClaw/
imsg.Punteros a la referencia de configuración
Relacionado
- Resumen de canales — todos los canales compatibles
- Emparejamiento — autenticación de mensajes directos y flujo de emparejamiento
- Grupos — comportamiento del chat de grupo y restricción por menciones
- Enrutamiento de canales — enrutamiento de sesiones para mensajes
- Seguridad — modelo de acceso y endurecimiento