iMessage (starsze: imsg)
Status: starsza zewnętrzna integracja CLI. Gateway uruchamiaimsg rpc i komunikuje się przez JSON-RPC na stdio (bez osobnego demona/portu).
BlueBubbles (zalecane)
Preferowana ścieżka iMessage dla nowych konfiguracji.
Parowanie
Prywatne wiadomości iMessage domyślnie używają trybu parowania.
Dokumentacja konfiguracji
Pełna dokumentacja pól iMessage.
Szybka konfiguracja
- Lokalny Mac (szybka ścieżka)
- Zdalny Mac przez SSH
Wymagania i uprawnienia (macOS)
- Messages musi być zalogowane na Macu, na którym działa
imsg. - Dla kontekstu procesu uruchamiającego OpenClaw/
imsgwymagany jest Full Disk Access (dostęp do bazy danych Messages). - Do wysyłania wiadomości przez Messages.app wymagane jest uprawnienie Automation.
Kontrola dostępu i routing
- Zasady dla wiadomości prywatnych
- Zasady dla grup i wzmianek
- Sesje i deterministyczne odpowiedzi
channels.imessage.dmPolicy steruje wiadomościami prywatnymi:pairing(domyślnie)allowlistopen(wymaga, abyallowFromzawierało"*")disabled
channels.imessage.allowFrom.Wpisami allowlisty mogą być identyfikatory lub cele czatu (chat_id:*, chat_guid:*, chat_identifier:*).Powiązania konwersacji ACP
Starsze czaty iMessage mogą być także powiązane z sesjami ACP. Szybki przepływ pracy operatora:- Uruchom
/acp spawn codex --bind herew wiadomości prywatnej lub dozwolonym czacie grupowym. - Kolejne wiadomości w tej samej konwersacji iMessage są kierowane do uruchomionej sesji ACP.
/newi/resetresetują tę samą powiązaną sesję ACP na miejscu./acp closezamyka sesję ACP i usuwa powiązanie.
bindings[] z type: "acp" i match.channel: "imessage".
match.peer.id może używać:
- znormalizowanego identyfikatora wiadomości prywatnej, takiego jak
+15555550123lubuser@example.com chat_id:<id>(zalecane dla stabilnych powiązań grupowych)chat_guid:<guid>chat_identifier:<identifier>
Wzorce wdrożeń
Dedykowany użytkownik bota w macOS (oddzielna tożsamość iMessage)
Dedykowany użytkownik bota w macOS (oddzielna tożsamość iMessage)
Używaj dedykowanego Apple ID i użytkownika macOS, aby ruch bota był odseparowany od Twojego osobistego profilu Messages.Typowy przepływ:
- Utwórz/zaloguj dedykowanego użytkownika macOS.
- Zaloguj się do Messages przy użyciu Apple ID bota w ramach tego użytkownika.
- Zainstaluj
imsgdla tego użytkownika. - Utwórz opakowanie SSH, aby OpenClaw mógł uruchamiać
imsgw kontekście tego użytkownika. - Skieruj
channels.imessage.accounts.<id>.cliPathi.dbPathna profil tego użytkownika.
Zdalny Mac przez Tailscale (przykład)
Zdalny Mac przez Tailscale (przykład)
Typowa topologia:Używaj kluczy SSH, aby zarówno SSH, jak i SCP działały bez interakcji.
Najpierw upewnij się, że klucz hosta jest zaufany (na przykład
- gateway działa na Linuksie/VM
- iMessage +
imsgdziała na Macu w Twoim tailnecie - opakowanie
cliPathużywa SSH do uruchamianiaimsg remoteHostumożliwia pobieranie załączników przez SCP
ssh bot@mac-mini.tailnet-1234.ts.net), aby uzupełnić known_hosts.Wzorzec wielu kont
Wzorzec wielu kont
iMessage obsługuje konfigurację per konto w
channels.imessage.accounts.Każde konto może nadpisywać pola takie jak cliPath, dbPath, allowFrom, groupPolicy, mediaMaxMb, ustawienia historii i allowlisty katalogów głównych załączników.Multimedia, dzielenie na części i cele dostarczania
Załączniki i multimedia
Załączniki i multimedia
- przyjmowanie załączników przychodzących jest opcjonalne:
channels.imessage.includeAttachments - ścieżki zdalnych załączników mogą być pobierane przez SCP, gdy ustawiono
remoteHost - ścieżki załączników muszą pasować do dozwolonych katalogów głównych:
channels.imessage.attachmentRoots(lokalne)channels.imessage.remoteAttachmentRoots(zdalny tryb SCP)- domyślny wzorzec katalogu głównego:
/Users/*/Library/Messages/Attachments
- SCP używa ścisłego sprawdzania klucza hosta (
StrictHostKeyChecking=yes) - rozmiar multimediów wychodzących używa
channels.imessage.mediaMaxMb(domyślnie 16 MB)
Dzielenie wiadomości wychodzących na części
Dzielenie wiadomości wychodzących na części
- limit długości fragmentu tekstu:
channels.imessage.textChunkLimit(domyślnie 4000) - tryb dzielenia na części:
channels.imessage.chunkModelength(domyślnie)newline(dzielenie najpierw według akapitów)
Formaty adresowania
Formaty adresowania
Preferowane jawne cele:
chat_id:123(zalecane dla stabilnego routingu)chat_guid:...chat_identifier:...
imessage:+1555...sms:+1555...user@example.com
Zapisy konfiguracji
iMessage domyślnie pozwala na zapisy konfiguracji inicjowane przez kanał (dla/config set|unset, gdy commands.config: true).
Wyłącz:
Rozwiązywanie problemów
Nie znaleziono imsg lub RPC nie jest obsługiwane
Nie znaleziono imsg lub RPC nie jest obsługiwane
Zweryfikuj plik wykonywalny i obsługę RPC:Jeśli test zgłasza brak obsługi RPC, zaktualizuj
imsg.Prywatne wiadomości są ignorowane
Prywatne wiadomości są ignorowane
Sprawdź:
channels.imessage.dmPolicychannels.imessage.allowFrom- zatwierdzenia parowania (
openclaw pairing list imessage)
Wiadomości grupowe są ignorowane
Wiadomości grupowe są ignorowane
Sprawdź:
channels.imessage.groupPolicychannels.imessage.groupAllowFrom- zachowanie allowlisty
channels.imessage.groups - konfigurację wzorców wzmianek (
agents.list[].groupChat.mentionPatterns)
Zdalne załączniki nie działają
Zdalne załączniki nie działają
Sprawdź:
channels.imessage.remoteHostchannels.imessage.remoteAttachmentRoots- uwierzytelnianie kluczem SSH/SCP z hosta gateway
- czy klucz hosta istnieje w
~/.ssh/known_hostsna hoście gateway - możliwość odczytu zdalnej ścieżki na Macu, na którym działa Messages
Pominięto monity o uprawnienia macOS
Pominięto monity o uprawnienia macOS
Uruchom ponownie w interaktywnym terminalu GUI w tym samym kontekście użytkownika/sesji i zatwierdź monity:Potwierdź, że Full Disk Access i Automation są przyznane dla kontekstu procesu uruchamiającego OpenClaw/
imsg.Wskaźniki do dokumentacji konfiguracji
Powiązane
- Przegląd kanałów — wszystkie obsługiwane kanały
- Parowanie — uwierzytelnianie wiadomości prywatnych i przepływ parowania
- Grupy — zachowanie czatów grupowych i ograniczanie według wzmianek
- Routing kanałów — routing sesji dla wiadomości
- Bezpieczeństwo — model dostępu i utwardzanie