Mainstream messaging
iMessage
Durum: yerel harici CLI entegrasyonu. Gateway, imsg rpc başlatır ve stdio üzerinden JSON-RPC ile iletişim kurar (ayrı daemon/port yoktur).
Mevcut BlueBubbles destekli yönlendirme için kullanmaya devam edin; imsg uygunsa yeni kurulumlarda bundan kaçının.
iMessage DM'leri varsayılan olarak eşleştirme modunu kullanır.
Tam iMessage alan başvurusu.
Hızlı kurulum
Yerel Mac (hızlı yol)
imsg'yi yükleyin ve doğrulayın
brew install steipete/tap/imsg
imsg rpc --help
OpenClaw'u yapılandırın
{
channels: {
imessage: {
enabled: true,
cliPath: "/usr/local/bin/imsg",
dbPath: "/Users/user/Library/Messages/chat.db",
},
},
}
Gateway'i başlatın
openclaw gateway
İlk DM eşleştirmesini onaylayın (varsayılan dmPolicy)
openclaw pairing list imessage
openclaw pairing approve imessage <CODE>
Eşleştirme isteklerinin süresi 1 saat sonra dolar.
SSH üzerinden uzak Mac
OpenClaw yalnızca stdio uyumlu bir cliPath gerektirir; bu nedenle cliPath değerini uzak bir Mac'e SSH yapan ve imsg çalıştıran bir sarmalayıcı betiğe yönlendirebilirsiniz.
#!/usr/bin/env bash
exec ssh -T gateway-host imsg "$@"
Ekler etkinleştirildiğinde önerilen yapılandırma:
{
channels: {
imessage: {
enabled: true,
cliPath: "~/.openclaw/scripts/imsg-ssh",
remoteHost: "user@gateway-host", // used for SCP attachment fetches
includeAttachments: true,
// Optional: override allowed attachment roots.
// Defaults include /Users/*/Library/Messages/Attachments
attachmentRoots: ["/Users/*/Library/Messages/Attachments"],
remoteAttachmentRoots: ["/Users/*/Library/Messages/Attachments"],
},
},
}
remoteHost ayarlanmamışsa OpenClaw, SSH sarmalayıcı betiğini ayrıştırarak bunu otomatik algılamayı dener.
remoteHost, host veya user@host olmalıdır (boşluk veya SSH seçenekleri olmadan).
OpenClaw, SCP için katı ana makine anahtarı denetimi kullanır; bu nedenle aktarıcı ana makine anahtarı ~/.ssh/known_hosts içinde zaten bulunmalıdır.
Ek yolları izin verilen köklere göre doğrulanır (attachmentRoots / remoteAttachmentRoots).
Gereksinimler ve izinler (macOS)
- Messages,
imsgçalıştıran Mac'te oturum açmış olmalıdır. - OpenClaw/
imsgçalıştıran süreç bağlamı için Full Disk Access gerekir (Messages DB erişimi). - Messages.app üzerinden mesaj göndermek için Automation izni gerekir.
Erişim denetimi ve yönlendirme
DM ilkesi
channels.imessage.dmPolicy, doğrudan mesajları denetler:
pairing(varsayılan)allowlistopen(allowFromdeğerinin"*"içermesini gerektirir)disabled
İzin listesi alanı: channels.imessage.allowFrom.
İzin listesi girdileri tanıtıcılar veya sohbet hedefleri olabilir (chat_id:*, chat_guid:*, chat_identifier:*).
Grup ilkesi + bahsetmeler
channels.imessage.groupPolicy, grup işlemeyi denetler:
allowlist(yapılandırıldığında varsayılan)opendisabled
Grup gönderici izin listesi: channels.imessage.groupAllowFrom.
Çalışma zamanı yedeği: groupAllowFrom ayarlanmamışsa iMessage grup gönderici denetimleri, mevcut olduğunda allowFrom değerine geri döner.
Çalışma zamanı notu: channels.imessage tamamen eksikse çalışma zamanı groupPolicy="allowlist" değerine geri döner ve bir uyarı günlüğe yazar (channels.defaults.groupPolicy ayarlanmış olsa bile).
Gruplar için bahsetme kapısı:
- iMessage'da yerel bahsetme meta verisi yoktur
- bahsetme algılama regex kalıplarını kullanır (
agents.list[].groupChat.mentionPatterns, yedekmessages.groupChat.mentionPatterns) - yapılandırılmış kalıp yoksa bahsetme kapısı uygulanamaz
Yetkili göndericilerden gelen denetim komutları gruplarda bahsetme kapısını atlayabilir.
Oturumlar ve belirleyici yanıtlar
- DM'ler doğrudan yönlendirme kullanır; gruplar grup yönlendirmesi kullanır.
- Varsayılan
session.dmScope=mainile iMessage DM'leri aracının ana oturumuna daraltılır. - Grup oturumları yalıtılmıştır (
agent:<agentId>:imessage:group:<chat_id>). - Yanıtlar, kaynak kanal/hedef meta verileri kullanılarak iMessage'a geri yönlendirilir.
Grup benzeri ileti dizisi davranışı:
Bazı çok katılımcılı iMessage ileti dizileri is_group=false ile gelebilir.
Bu chat_id, channels.imessage.groups altında açıkça yapılandırılmışsa OpenClaw bunu grup trafiği olarak ele alır (grup kapısı + grup oturumu yalıtımı).
ACP konuşma bağlamaları
Eski iMessage sohbetleri ACP oturumlarına da bağlanabilir.
Hızlı operatör akışı:
- DM veya izin verilen grup sohbetinin içinde
/acp spawn codex --bind hereçalıştırın. - Aynı iMessage konuşmasındaki sonraki mesajlar, başlatılan ACP oturumuna yönlendirilir.
/newve/reset, aynı bağlı ACP oturumunu yerinde sıfırlar./acp close, ACP oturumunu kapatır ve bağlamayı kaldırır.
Yapılandırılmış kalıcı bağlamalar, type: "acp" ve match.channel: "imessage" içeren üst düzey bindings[] girdileriyle desteklenir.
match.peer.id şunları kullanabilir:
+15555550123veya[email protected]gibi normalleştirilmiş DM tanıtıcısıchat_id:<id>(kararlı grup bağlamaları için önerilir)chat_guid:<guid>chat_identifier:<identifier>
Örnek:
{
agents: {
list: [
{
id: "codex",
runtime: {
type: "acp",
acp: { agent: "codex", backend: "acpx", mode: "persistent" },
},
},
],
},
bindings: [
{
type: "acp",
agentId: "codex",
match: {
channel: "imessage",
accountId: "default",
peer: { kind: "group", id: "chat_id:123" },
},
acp: { label: "codex-group" },
},
],
}
Paylaşılan ACP bağlama davranışı için ACP Aracıları bölümüne bakın.
Dağıtım kalıpları
Ayrılmış bot macOS kullanıcısı (ayrı iMessage kimliği)
Bot trafiğinin kişisel Messages profilinizden yalıtılması için ayrılmış bir Apple ID ve macOS kullanıcısı kullanın.
Tipik akış:
- Ayrılmış bir macOS kullanıcısı oluşturun/oturum açın.
- Bu kullanıcıda bot Apple ID'siyle Messages'a oturum açın.
- Bu kullanıcıda
imsgyükleyin. - OpenClaw'un bu kullanıcı bağlamında
imsgçalıştırabilmesi için SSH sarmalayıcısı oluşturun. channels.imessage.accounts.<id>.cliPathve.dbPathdeğerlerini bu kullanıcı profiline yönlendirin.
İlk çalıştırma, bu bot kullanıcı oturumunda GUI onayları gerektirebilir (Automation + Full Disk Access).
Tailscale üzerinden uzak Mac (örnek)
Yaygın topoloji:
- gateway Linux/VM üzerinde çalışır
- iMessage +
imsg, tailnet'inizdeki bir Mac üzerinde çalışır cliPathsarmalayıcısıimsgçalıştırmak için SSH kullanırremoteHost, SCP ek getirmelerini etkinleştirir
Örnek:
{
channels: {
imessage: {
enabled: true,
cliPath: "~/.openclaw/scripts/imsg-ssh",
remoteHost: "[email protected]",
includeAttachments: true,
dbPath: "/Users/bot/Library/Messages/chat.db",
},
},
}
#!/usr/bin/env bash
exec ssh -T [email protected] imsg "$@"
Hem SSH hem de SCP etkileşimsiz olsun diye SSH anahtarları kullanın.
known_hosts dosyasının doldurulması için önce ana makine anahtarının güvenilir olduğundan emin olun (örneğin ssh [email protected]).
Çok hesaplı kalıp
iMessage, channels.imessage.accounts altında hesap başına yapılandırmayı destekler.
Her hesap cliPath, dbPath, allowFrom, groupPolicy, mediaMaxMb, geçmiş ayarları ve ek kökü izin listeleri gibi alanları geçersiz kılabilir.
Medya, parçalama ve teslim hedefleri
Ekler ve medya
- gelen ek alımı isteğe bağlıdır:
channels.imessage.includeAttachments remoteHostayarlandığında uzak ek yolları SCP üzerinden getirilebilir- ek yolları izin verilen köklerle eşleşmelidir:
channels.imessage.attachmentRoots(yerel)channels.imessage.remoteAttachmentRoots(uzak SCP modu)- varsayılan kök kalıbı:
/Users/*/Library/Messages/Attachments
- SCP katı ana makine anahtarı denetimi kullanır (
StrictHostKeyChecking=yes) - giden medya boyutu
channels.imessage.mediaMaxMbkullanır (varsayılan 16 MB)
Giden parçalama
- metin parça sınırı:
channels.imessage.textChunkLimit(varsayılan 4000) - parça modu:
channels.imessage.chunkModelength(varsayılan)newline(paragraf öncelikli bölme)
Adresleme biçimleri
Tercih edilen açık hedefler:
chat_id:123(kararlı yönlendirme için önerilir)chat_guid:...chat_identifier:...
Tanıtıcı hedefleri de desteklenir:
imessage:+1555...sms:+1555...[email protected]
imsg chats --limit 20
Yapılandırma yazmaları
iMessage, kanal tarafından başlatılan yapılandırma yazmalarına varsayılan olarak izin verir (commands.config: true olduğunda /config set|unset için).
Devre dışı bırakma:
{
channels: {
imessage: {
configWrites: false,
},
},
}
Sorun giderme
imsg bulunamadı veya RPC desteklenmiyor
İkili dosyayı ve RPC desteğini doğrulayın:
imsg rpc --help
openclaw channels status --probe
Probe, RPC'nin desteklenmediğini bildirirse imsg güncelleyin.
DM'ler yok sayılıyor
Kontrol edin:
channels.imessage.dmPolicychannels.imessage.allowFrom- eşleştirme onayları (
openclaw pairing list imessage)
Grup mesajları yok sayılıyor
Kontrol edin:
channels.imessage.groupPolicychannels.imessage.groupAllowFromchannels.imessage.groupsizin listesi davranışı- bahsetme kalıbı yapılandırması (
agents.list[].groupChat.mentionPatterns)
Uzak ekler başarısız oluyor
Kontrol edin:
channels.imessage.remoteHostchannels.imessage.remoteAttachmentRoots- gateway ana makinesinden SSH/SCP anahtar kimlik doğrulaması
- ana makine anahtarının gateway ana makinesindeki
~/.ssh/known_hostsiçinde mevcut olması - Messages çalıştıran Mac'te uzak yolun okunabilirliği
macOS izin istemleri kaçırıldı
Aynı kullanıcı/oturum bağlamında etkileşimli bir GUI terminalinde yeniden çalıştırın ve istemleri onaylayın:
imsg chats --limit 1
imsg send <handle> "test"
OpenClaw/imsg çalıştıran süreç bağlamı için Full Disk Access + Automation izinlerinin verildiğini doğrulayın.
Yapılandırma başvurusu işaretçileri
İlgili
- Kanallar Genel Bakışı — desteklenen tüm kanallar
- Eşleştirme — doğrudan mesaj kimlik doğrulaması ve eşleştirme akışı
- Gruplar — grup sohbeti davranışı ve bahsetme denetimi
- Kanal Yönlendirme — mesajlar için oturum yönlendirme
- Güvenlik — erişim modeli ve sıkılaştırma