iMessage (lama: imsg)
Status: integrasi CLI eksternal versi lama. Gateway memunculkanimsg rpc dan berkomunikasi melalui JSON-RPC di stdio (tanpa daemon/port terpisah).
BlueBubbles (direkomendasikan)
Jalur iMessage yang diprioritaskan untuk penyiapan baru.
Pairing
DM iMessage secara default menggunakan mode pairing.
Referensi konfigurasi
Referensi lengkap field iMessage.
Penyiapan cepat
- Mac lokal (jalur cepat)
- Mac jarak jauh melalui SSH
Persyaratan dan izin (macOS)
- Messages harus sudah login di Mac yang menjalankan
imsg. - Full Disk Access diperlukan untuk konteks proses yang menjalankan OpenClaw/
imsg(akses DB Messages). - Izin Automation diperlukan untuk mengirim pesan melalui Messages.app.
Kontrol akses dan perutean
- Kebijakan DM
- Kebijakan grup + mention
- Sesi dan balasan deterministik
channels.imessage.dmPolicy mengontrol pesan langsung:pairing(default)allowlistopen(mengharuskanallowFrommenyertakan"*")disabled
channels.imessage.allowFrom.Entri allowlist dapat berupa handle atau target chat (chat_id:*, chat_guid:*, chat_identifier:*).Binding percakapan ACP
Chat iMessage versi lama juga dapat diikat ke sesi ACP. Alur operator cepat:- Jalankan
/acp spawn codex --bind heredi dalam DM atau chat grup yang diizinkan. - Pesan berikutnya di percakapan iMessage yang sama akan dirutekan ke sesi ACP yang dimunculkan.
/newdan/resetmengatur ulang sesi ACP terikat yang sama di tempat./acp closemenutup sesi ACP dan menghapus binding.
bindings[] tingkat atas dengan type: "acp" dan match.channel: "imessage".
match.peer.id dapat menggunakan:
- handle DM yang dinormalisasi seperti
+15555550123atauuser@example.com chat_id:<id>(direkomendasikan untuk binding grup yang stabil)chat_guid:<guid>chat_identifier:<identifier>
Pola deployment
Pengguna bot macOS khusus (identitas iMessage terpisah)
Pengguna bot macOS khusus (identitas iMessage terpisah)
Gunakan Apple ID dan pengguna macOS khusus agar lalu lintas bot terisolasi dari profil Messages pribadi Anda.Alur umum:
- Buat/login pengguna macOS khusus.
- Login ke Messages dengan Apple ID bot pada pengguna tersebut.
- Instal
imsgpada pengguna tersebut. - Buat pembungkus SSH agar OpenClaw dapat menjalankan
imsgdalam konteks pengguna tersebut. - Arahkan
channels.imessage.accounts.<id>.cliPathdan.dbPathke profil pengguna tersebut.
Mac jarak jauh melalui Tailscale (contoh)
Mac jarak jauh melalui Tailscale (contoh)
Topologi umum:Gunakan SSH key agar SSH dan SCP sama-sama non-interaktif.
Pastikan host key sudah dipercaya terlebih dahulu (misalnya
- gateway berjalan di Linux/VM
- iMessage +
imsgberjalan di Mac dalam tailnet Anda - pembungkus
cliPathmenggunakan SSH untuk menjalankanimsg remoteHostmengaktifkan pengambilan lampiran melalui SCP
ssh bot@mac-mini.tailnet-1234.ts.net) agar known_hosts terisi.Pola multi-akun
Pola multi-akun
iMessage mendukung konfigurasi per akun di bawah
channels.imessage.accounts.Setiap akun dapat menimpa field seperti cliPath, dbPath, allowFrom, groupPolicy, mediaMaxMb, pengaturan riwayat, dan allowlist root lampiran.Media, pemotongan, dan target pengiriman
Lampiran dan media
Lampiran dan media
- ingest lampiran masuk bersifat opsional:
channels.imessage.includeAttachments - path lampiran jarak jauh dapat diambil melalui SCP saat
remoteHostdiatur - path lampiran harus cocok dengan root yang diizinkan:
channels.imessage.attachmentRoots(lokal)channels.imessage.remoteAttachmentRoots(mode SCP jarak jauh)- pola root default:
/Users/*/Library/Messages/Attachments
- SCP menggunakan pemeriksaan host-key ketat (
StrictHostKeyChecking=yes) - ukuran media keluar menggunakan
channels.imessage.mediaMaxMb(default 16 MB)
Pemotongan keluar
Pemotongan keluar
- batas potongan teks:
channels.imessage.textChunkLimit(default 4000) - mode potongan:
channels.imessage.chunkModelength(default)newline(pemisahan dengan paragraf terlebih dahulu)
Format pengalamatan
Format pengalamatan
Target eksplisit yang direkomendasikan:
chat_id:123(direkomendasikan untuk perutean yang stabil)chat_guid:...chat_identifier:...
imessage:+1555...sms:+1555...user@example.com
Penulisan konfigurasi
iMessage mengizinkan penulisan konfigurasi yang dimulai dari channel secara default (untuk/config set|unset saat commands.config: true).
Nonaktifkan:
Pemecahan masalah
imsg tidak ditemukan atau RPC tidak didukung
imsg tidak ditemukan atau RPC tidak didukung
Validasi biner dan dukungan RPC:Jika probe melaporkan RPC tidak didukung, perbarui
imsg.DM diabaikan
DM diabaikan
Periksa:
channels.imessage.dmPolicychannels.imessage.allowFrom- persetujuan pairing (
openclaw pairing list imessage)
Pesan grup diabaikan
Pesan grup diabaikan
Periksa:
channels.imessage.groupPolicychannels.imessage.groupAllowFrom- perilaku allowlist
channels.imessage.groups - konfigurasi pola mention (
agents.list[].groupChat.mentionPatterns)
Lampiran jarak jauh gagal
Lampiran jarak jauh gagal
Periksa:
channels.imessage.remoteHostchannels.imessage.remoteAttachmentRoots- autentikasi key SSH/SCP dari host gateway
- host key ada di
~/.ssh/known_hostspada host gateway - keterbacaan path jarak jauh pada Mac yang menjalankan Messages
Prompt izin macOS terlewat
Prompt izin macOS terlewat
Jalankan ulang di terminal GUI interaktif dalam konteks pengguna/sesi yang sama dan setujui prompt:Pastikan Full Disk Access + Automation telah diberikan untuk konteks proses yang menjalankan OpenClaw/
imsg.Penunjuk referensi konfigurasi
Terkait
- Ikhtisar Channel — semua channel yang didukung
- Pairing — autentikasi DM dan alur pairing
- Grup — perilaku chat grup dan penyaringan mention
- Perutean Channel — perutean sesi untuk pesan
- Keamanan — model akses dan hardening