iMessage (legacy: imsg)
Stato: integrazione CLI esterna legacy. Il gateway avviaimsg rpc e comunica tramite JSON-RPC su stdio (nessun daemon/porta separato).
BlueBubbles (recommended)
Percorso iMessage preferito per le nuove configurazioni.
Pairing
I DM di iMessage usano per impostazione predefinita la modalità pairing.
Configuration reference
Riferimento completo dei campi iMessage.
Configurazione rapida
- Local Mac (fast path)
- Remote Mac over SSH
Requisiti e permessi (macOS)
- Messages deve aver effettuato l’accesso sul Mac che esegue
imsg. - È richiesto l’accesso completo al disco per il contesto di processo che esegue OpenClaw/
imsg(accesso al DB di Messages). - È richiesto il permesso Automazione per inviare messaggi tramite Messages.app.
Controllo degli accessi e instradamento
- DM policy
- Group policy + mentions
- Sessions and deterministic replies
channels.imessage.dmPolicy controlla i messaggi diretti:pairing(predefinito)allowlistopen(richiede cheallowFromincluda"*")disabled
channels.imessage.allowFrom.Le voci allowlist possono essere handle o destinazioni chat (chat_id:*, chat_guid:*, chat_identifier:*).Binding delle conversazioni ACP
Le chat iMessage legacy possono anche essere associate a sessioni ACP. Flusso operativo rapido:- Esegui
/acp spawn codex --bind herenel DM o nella chat di gruppo consentita. - I messaggi futuri nella stessa conversazione iMessage verranno instradati alla sessione ACP generata.
/newe/resetreimpostano sul posto la stessa sessione ACP associata./acp closechiude la sessione ACP e rimuove l’associazione.
bindings[] di primo livello con type: "acp" e match.channel: "imessage".
match.peer.id può usare:
- handle DM normalizzato come
+15555550123oppureuser@example.com chat_id:<id>(consigliato per binding di gruppo stabili)chat_guid:<guid>chat_identifier:<identifier>
Pattern di deployment
Dedicated bot macOS user (separate iMessage identity)
Dedicated bot macOS user (separate iMessage identity)
Usa un Apple ID e un utente macOS dedicati, così il traffico del bot rimane isolato dal tuo profilo personale di Messages.Flusso tipico:
- Crea/accedi con un utente macOS dedicato.
- Accedi a Messages con l’Apple ID del bot per quell’utente.
- Installa
imsgper quell’utente. - Crea un wrapper SSH così OpenClaw può eseguire
imsgnel contesto di quell’utente. - Imposta
channels.imessage.accounts.<id>.cliPathe.dbPathsul profilo di quell’utente.
Remote Mac over Tailscale (example)
Remote Mac over Tailscale (example)
Topologia comune:Usa chiavi SSH così sia SSH sia SCP siano non interattivi.
Assicurati prima che la chiave host sia affidabile (ad esempio
- il gateway viene eseguito su Linux/VM
- iMessage +
imsgvengono eseguiti su un Mac nella tua tailnet - il wrapper
cliPathusa SSH per eseguireimsg remoteHostabilita il recupero degli allegati tramite SCP
ssh bot@mac-mini.tailnet-1234.ts.net) così known_hosts venga popolato.Multi-account pattern
Multi-account pattern
iMessage supporta la configurazione per account sotto
channels.imessage.accounts.Ogni account può sovrascrivere campi come cliPath, dbPath, allowFrom, groupPolicy, mediaMaxMb, impostazioni della cronologia e allowlist delle radici degli allegati.Supporti multimediali, suddivisione e destinazioni di consegna
Attachments and media
Attachments and media
- l’acquisizione degli allegati in ingresso è facoltativa:
channels.imessage.includeAttachments - i percorsi degli allegati remoti possono essere recuperati tramite SCP quando
remoteHostè impostato - i percorsi degli allegati devono corrispondere alle radici consentite:
channels.imessage.attachmentRoots(locale)channels.imessage.remoteAttachmentRoots(modalità SCP remota)- pattern radice predefinito:
/Users/*/Library/Messages/Attachments
- SCP usa la verifica rigorosa della chiave host (
StrictHostKeyChecking=yes) - la dimensione dei media in uscita usa
channels.imessage.mediaMaxMb(predefinito 16 MB)
Outbound chunking
Outbound chunking
- limite di suddivisione del testo:
channels.imessage.textChunkLimit(predefinito 4000) - modalità di suddivisione:
channels.imessage.chunkModelength(predefinita)newline(suddivisione prima per paragrafi)
Addressing formats
Addressing formats
Destinazioni esplicite consigliate:
chat_id:123(consigliato per un instradamento stabile)chat_guid:...chat_identifier:...
imessage:+1555...sms:+1555...user@example.com
Scritture di configurazione
iMessage consente per impostazione predefinita scritture di configurazione avviate dal canale (per/config set|unset quando commands.config: true).
Disabilitazione:
Risoluzione dei problemi
imsg not found or RPC unsupported
imsg not found or RPC unsupported
Convalida il binario e il supporto RPC:Se il probe segnala che RPC non è supportato, aggiorna
imsg.DMs are ignored
DMs are ignored
Verifica:
channels.imessage.dmPolicychannels.imessage.allowFrom- approvazioni pairing (
openclaw pairing list imessage)
Group messages are ignored
Group messages are ignored
Verifica:
channels.imessage.groupPolicychannels.imessage.groupAllowFrom- comportamento allowlist di
channels.imessage.groups - configurazione dei pattern di menzione (
agents.list[].groupChat.mentionPatterns)
Remote attachments fail
Remote attachments fail
Verifica:
channels.imessage.remoteHostchannels.imessage.remoteAttachmentRoots- autenticazione con chiave SSH/SCP dall’host gateway
- la chiave host esiste in
~/.ssh/known_hostssull’host gateway - leggibilità del percorso remoto sul Mac che esegue Messages
macOS permission prompts were missed
macOS permission prompts were missed
Esegui di nuovo in un terminale GUI interattivo nello stesso contesto utente/sessione e approva le richieste:Conferma che Accesso completo al disco + Automazione siano concessi al contesto di processo che esegue OpenClaw/
imsg.Puntatori al riferimento di configurazione
Correlati
- Channels Overview — tutti i canali supportati
- Pairing — autenticazione DM e flusso pairing
- Groups — comportamento delle chat di gruppo e controllo delle menzioni
- Channel Routing — instradamento delle sessioni per i messaggi
- Security — modello di accesso e hardening