iMessage Integration mit OpenClaw (Legacy)
Du kennst das: Du willst einen Workflow automatisieren, aber die Plattform deiner Wahl bietet keine offizielle API. Besonders bei Messaging-Diensten, die tief in ein Betriebssystem integriert sind, landet man oft in einer Sackgasse aus Workarounds und instabilen Skripten.
Oft verbringt man mehr Zeit damit, die Umgebung zu bändigen, als den eigentlichen Bot zu bauen. Wenn du iMessage in dein System einbinden willst, ohne dich mit komplexen privaten APIs herumzuschlagen, ist eine CLI-basierte Integration meist der direkteste Weg.
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- Einen Mac, auf dem Messages angemeldet ist.
- Das
imsgCLI Tool. - Full Disk Access für den Prozess-Kontext (Zugriff auf die Messages DB).
- Automation Permissions, um Nachrichten über Messages.app zu senden.
Schnellstart
Abschnitt betitelt „Schnellstart“In fünf Minuten steht die Verbindung. Wir nutzen hier den direkten Pfad auf einem lokalen Mac.
1. imsg installieren und prüfen
Abschnitt betitelt „1. imsg installieren und prüfen“brew install steipete/tap/imsgimsg rpc --help2. OpenClaw konfigurieren
Abschnitt betitelt „2. OpenClaw konfigurieren“Erstelle oder ergänze deine Konfiguration in der json5-Datei:
{ channels: { imessage: { enabled: true, cliPath: "/usr/local/bin/imsg", dbPath: "/Users/<you>/Library/Messages/chat.db", }, },}3. Gateway starten
Abschnitt betitelt „3. Gateway starten“openclaw gateway4. Erstes DM-Pairing bestätigen
Abschnitt betitelt „4. Erstes DM-Pairing bestätigen“Standardmäßig nutzt OpenClaw die dmPolicy: pairing. Du musst die erste Verbindung manuell freigeben. Pairing-Anfragen laufen nach einer Stunde ab.
openclaw pairing list imessageopenclaw pairing approve imessage <CODE>Remote Setup über SSH
Abschnitt betitelt „Remote Setup über SSH“Da OpenClaw nur einen stdio-kompatiblen cliPath benötigt, kannst du imsg auch auf einem entfernten Mac ausführen. Ein einfacher Wrapper-Script reicht aus:
#!/usr/bin/env bashexec ssh -T gateway-host imsg "$@"In der Konfiguration sieht das dann so aus:
{ channels: { imessage: { enabled: true, cliPath: "~/.openclaw/scripts/imsg-ssh", remoteHost: "user@gateway-host", // Erforderlich für SCP-Downloads von Attachments includeAttachments: true, }, },}Berechtigungen auf macOS
Abschnitt betitelt „Berechtigungen auf macOS“Permissions werden pro Prozess-Kontext vergeben. Wenn dein Gateway headless läuft (z. B. als LaunchAgent oder über SSH), solltest du einmalig einen interaktiven Befehl im selben Kontext ausführen, um die System-Prompts auszulösen:
imsg chats --limit 1# oderimsg send <handle> "test"Fehlerbehebung
Abschnitt betitelt „Fehlerbehebung“imsg nicht gefunden oder RPC nicht unterstützt
Abschnitt betitelt „imsg nicht gefunden oder RPC nicht unterstützt“Prüfe die Binary und den RPC-Support mit diesen Befehlen:
imsg rpc --helpopenclaw channels status --probeFalls der Probe-Befehl meldet, dass RPC nicht unterstützt wird, musst du imsg aktualisieren.
DMs werden ignoriert
Abschnitt betitelt „DMs werden ignoriert“Kontrolliere folgende Punkte:
channels.imessage.dmPolicychannels.imessage.allowFrom- Pairing-Status via
openclaw pairing list imessage
Gruppennachrichten kommen nicht an
Abschnitt betitelt „Gruppennachrichten kommen nicht an“Prüfe diese Einstellungen:
channels.imessage.groupPolicyundgroupAllowFrom- Die
groupsAllowlist - Deine Mention-Patterns unter
agents.list[].groupChat.mentionPatterns(da iMessage keine nativen Mentions hat)
macOS Permission-Prompts verpasst
Abschnitt betitelt „macOS Permission-Prompts verpasst“Starte ein interaktives Terminal in der GUI des betroffenen Users und führe dies aus:
imsg chats --limit 1imsg send <handle> "test"Bestätige danach in den Systemeinstellungen, dass Full Disk Access und Automation für den richtigen Prozess aktiv sind.
Hast du Fragen zum Setup oder brauchst Hilfe bei der Konfiguration? Unser AI Setup Assistant hilft dir direkt weiter.
Nächste Schritte
Abschnitt betitelt „Nächste Schritte“OpenClaw Expert
Noch festgefahren?
Wenn diese Seite nicht hilft, frage OpenClaw Expert nach Schritt-fuer-Schritt-Loesungen.