iMessage (legado: imsg)
Status: integração legada de CLI externa. O gateway iniciaimsg rpc e se comunica por JSON-RPC em stdio (sem daemon/porta separado).
BlueBubbles (recommended)
Caminho preferido de iMessage para novas configurações.
Pairing
As DMs do iMessage usam o modo de pairing por padrão.
Configuration reference
Referência completa dos campos de iMessage.
Configuração rápida
- Local Mac (fast path)
- Remote Mac over SSH
Requisitos e permissões (macOS)
- O Messages deve estar autenticado no Mac que executa
imsg. - Full Disk Access é necessário para o contexto do processo que executa OpenClaw/
imsg(acesso ao banco de dados do Messages). - A permissão de Automation é necessária para enviar mensagens pelo Messages.app.
Controle de acesso e roteamento
- DM policy
- Group policy + mentions
- Sessions and deterministic replies
channels.imessage.dmPolicy controla mensagens diretas:pairing(padrão)allowlistopen(exige queallowFrominclua"*")disabled
channels.imessage.allowFrom.As entradas da lista de permissões podem ser handles ou destinos de conversa (chat_id:*, chat_guid:*, chat_identifier:*).Bindings de conversa ACP
Conversas legadas do iMessage também podem ser vinculadas a sessões ACP. Fluxo rápido para operadores:- Execute
/acp spawn codex --bind heredentro da DM ou da conversa em grupo permitida. - Mensagens futuras nessa mesma conversa do iMessage serão roteadas para a sessão ACP criada.
/newe/resetredefinem a mesma sessão ACP vinculada no local./acp closefecha a sessão ACP e remove o binding.
bindings[] de nível superior com type: "acp" e match.channel: "imessage".
match.peer.id pode usar:
- handle de DM normalizado, como
+15555550123ouuser@example.com chat_id:<id>(recomendado para bindings de grupo estáveis)chat_guid:<guid>chat_identifier:<identifier>
Padrões de implantação
Dedicated bot macOS user (separate iMessage identity)
Dedicated bot macOS user (separate iMessage identity)
Use um Apple ID dedicado e um usuário dedicado do macOS para que o tráfego do bot fique isolado do seu perfil pessoal do Messages.Fluxo típico:
- Crie/faça login em um usuário dedicado do macOS.
- Entre no Messages com o Apple ID do bot nesse usuário.
- Instale
imsgnesse usuário. - Crie um wrapper SSH para que o OpenClaw possa executar
imsgno contexto desse usuário. - Aponte
channels.imessage.accounts.<id>.cliPathe.dbPathpara o perfil desse usuário.
Remote Mac over Tailscale (example)
Remote Mac over Tailscale (example)
Topologia comum:Use chaves SSH para que tanto SSH quanto SCP sejam não interativos.
Garanta primeiro que a chave do host seja confiável (por exemplo,
- o gateway é executado em Linux/VM
- iMessage +
imsgé executado em um Mac na sua tailnet - o wrapper
cliPathusa SSH para executarimsg remoteHosthabilita buscas de anexos por SCP
ssh bot@mac-mini.tailnet-1234.ts.net) para que known_hosts seja preenchido.Multi-account pattern
Multi-account pattern
O iMessage oferece suporte a configuração por conta em
channels.imessage.accounts.Cada conta pode substituir campos como cliPath, dbPath, allowFrom, groupPolicy, mediaMaxMb, configurações de histórico e listas de permissões de raízes de anexos.Mídia, fragmentação e destinos de entrega
Attachments and media
Attachments and media
- a ingestão de anexos recebidos é opcional:
channels.imessage.includeAttachments - caminhos de anexos remotos podem ser buscados via SCP quando
remoteHostestiver definido - os caminhos dos anexos devem corresponder às raízes permitidas:
channels.imessage.attachmentRoots(local)channels.imessage.remoteAttachmentRoots(modo SCP remoto)- padrão de raiz padrão:
/Users/*/Library/Messages/Attachments
- o SCP usa verificação estrita de chave do host (
StrictHostKeyChecking=yes) - o tamanho de mídia de saída usa
channels.imessage.mediaMaxMb(padrão de 16 MB)
Outbound chunking
Outbound chunking
- limite de fragmento de texto:
channels.imessage.textChunkLimit(padrão 4000) - modo de fragmentação:
channels.imessage.chunkModelength(padrão)newline(divisão priorizando parágrafos)
Addressing formats
Addressing formats
Destinos explícitos preferidos:
chat_id:123(recomendado para roteamento estável)chat_guid:...chat_identifier:...
imessage:+1555...sms:+1555...user@example.com
Gravações de configuração
O iMessage permite gravações de configuração iniciadas pelo canal por padrão (para/config set|unset quando commands.config: true).
Desative:
Solução de problemas
imsg not found or RPC unsupported
imsg not found or RPC unsupported
Valide o binário e o suporte a RPC:Se a sondagem informar que RPC não é compatível, atualize
imsg.DMs are ignored
DMs are ignored
Verifique:
channels.imessage.dmPolicychannels.imessage.allowFrom- aprovações de pairing (
openclaw pairing list imessage)
Group messages are ignored
Group messages are ignored
Verifique:
channels.imessage.groupPolicychannels.imessage.groupAllowFrom- comportamento da lista de permissões de
channels.imessage.groups - configuração de padrões de menção (
agents.list[].groupChat.mentionPatterns)
Remote attachments fail
Remote attachments fail
Verifique:
channels.imessage.remoteHostchannels.imessage.remoteAttachmentRoots- autenticação por chave SSH/SCP a partir do host do gateway
- a chave do host existe em
~/.ssh/known_hostsno host do gateway - legibilidade do caminho remoto no Mac que executa Messages
macOS permission prompts were missed
macOS permission prompts were missed
Execute novamente em um terminal interativo com interface gráfica no mesmo contexto de usuário/sessão e aprove os prompts:Confirme que Full Disk Access + Automation foram concedidos ao contexto do processo que executa OpenClaw/
imsg.Ponteiros para a referência de configuração
Relacionado
- Channels Overview — todos os canais compatíveis
- Pairing — autenticação de DM e fluxo de pairing
- Groups — comportamento de conversa em grupo e controle por menção
- Channel Routing — roteamento de sessão para mensagens
- Security — modelo de acesso e endurecimento