OpenClaw

OpenClaw iMessage (Legacy) Kanal

Messaging
Fortgeschritten

Verbinden Sie OpenClaw mit Apple iMessage über das imsg CLI-Tool unter macOS. Diese Legacy-Integration nutzt eine JSON-RPC-over-stdio-Schnittstelle zum Lesen und Senden von iMessages über die native macOS-Nachrichten-Datenbank. Hinweis: Dieser Kanal ist veraltet — für neue Einrichtungen empfehlen wir dringend BlueBubbles, das eine robustere REST-API-basierte Integration mit umfassenderer Funktionsunterstützung bietet.

Kurzinfo
SchwierigkeitsgradFortgeschritten
KategorieMessaging
Unterstützte Funktionen2 / 6

iMessage (Legacy) Unterstützte Funktionen

Textnachrichten

Unterstützt

Medien & Dateien

Unterstützt

Reaktionen

Nicht unterstützt

Threads

Nicht unterstützt

Sprachnachrichten

Nicht unterstützt

Gruppenchat

Nicht unterstützt

iMessage (Legacy) Voraussetzungen

  • Ein Mac mit macOS, bei dem Nachrichten mit einer Apple ID angemeldet ist
  • Vollständiger Festplattenzugriff für OpenClaw und das imsg-Binary
  • Automatisierungsberechtigung zum Senden von Nachrichten (über macOS TCC-Eingabeaufforderungen erteilt)
  • imsg CLI über Homebrew installiert: brew install steipete/tap/imsg
  • OpenClaw Gateway installiert und gestartet

iMessage (Legacy) Schnelleinrichtung

1

imsg CLI installieren

Führen Sie 'brew install steipete/tap/imsg' aus, um das iMessage CLI-Tool zu installieren. Führen Sie nach der Installation 'imsg' einmal in einem GUI-Terminal aus, um die macOS-Berechtigungsabfragen (vollständiger Festplattenzugriff und Automatisierung) auszulösen.

2

macOS-Berechtigungen erteilen

Öffnen Sie Systemeinstellungen > Datenschutz & Sicherheit. Erteilen Sie sowohl dem imsg-Binary als auch dem OpenClaw-Prozess vollständigen Festplattenzugriff. Die Automatisierungsberechtigung für Nachrichten wird automatisch angefragt, wenn imsg zum ersten Mal eine Nachricht senden möchte.

3

Konfigurieren und starten

Fügen Sie die iMessage-Kanalkonfiguration in ~/.openclaw/openclaw.json mit den Einstellungen cliPath und dbPath hinzu. Starten Sie das Gateway mit 'openclaw start' und senden Sie eine Test-iMessage zur Verbindungsüberprüfung.

iMessage (Legacy) Konfigurationsbeispiel

config.json
{
  "channels": {
    "imessage": {
      "enabled": true,
      "cliPath": "/opt/homebrew/bin/imsg",
      "dbPath": "/Users/<username>/Library/Messages/chat.db"
    }
  }
}

iMessage (Legacy) Detaillierte Dokumentation

Hinweis zur Einstellung

Der iMessage-Kanal ist eine Legacy-Integration, die in zukünftigen OpenClaw-Versionen entfernt werden könnte. Er ist vom Drittanbieter-CLI imsg und den macOS-spezifischen TCC-Berechtigungen abhängig, die nach Systemupdates instabil werden können. Für neue Bereitstellungen empfehlen wir dringend die Migration zum BlueBubbles-Kanal, der folgendes bietet: • REST-API-basierte Architektur (keine CLI-Abhängigkeit) • Unterstützung für Emoji-Reaktionen • Gruppenchat-Unterstützung • Plattformübergreifende Serververwaltung über Web-UI • Zuverlässigere Webhook-basierte Nachrichtenzustellung Bestehende iMessage-Konfigurationen funktionieren weiterhin, aber dieser Integration werden keine neuen Funktionen hinzugefügt.
Dieser Kanal ist veraltet. Bitte verwenden Sie BlueBubbles für neue iMessage-Integrationen.

Architekturübersicht

Die iMessage-Integration funktioniert, indem das imsg CLI als Kindprozess über JSON-RPC over stdio gestartet wird: 1. Das Gateway startet 'imsg rpc' als Unterprozess und kommuniziert über stdin/stdout. 2. Das imsg CLI liest neue Nachrichten aus der macOS-Nachrichten-Datenbank (chat.db) mittels SQLite. 3. Wenn eine neue Nachricht eingeht, benachrichtigt imsg das Gateway via JSON-RPC. 4. Das Gateway verarbeitet die Nachricht mit Ihrem KI-Agenten und sendet die Antwort über imsg, das die macOS-Automatisierung zum Senden der iMessage nutzt. Diese Architektur erfordert, dass das Gateway auf demselben Mac läuft, auf dem Nachrichten angemeldet ist. Antworten werden deterministisch an iMessage zurückgeroutet, und jede Konversation (DM oder Gruppe) behält eine isolierte Sitzungstrennung bei.

DM-Richtlinien

DM-Richtlinien steuern, wie der Bot Einzelgespräche in iMessage handhabt. **pairing (Standard)** — Unbekannte Absender erhalten einen Kopplungscode, der bestätigt werden muss, bevor der Bot antwortet. Dies verhindert unbefugten Zugriff. **allowlist** — Nur in allowFrom aufgelistete Telefonnummern oder Apple IDs können mit dem Bot interagieren. **open** — Jeder iMessage-Absender erhält eine Antwort. Erfordert allowFrom: ["*"]. **disabled** — Der Bot ignoriert alle Direktnachrichten.
openclaw.json
{
  "channels": {
    "imessage": {
      "dmPolicy": "pairing",
      "allowFrom": ["+1234567890", "user@icloud.com"]
    }
  }
}

Gruppenchat-Konfiguration

Gruppenchat-Richtlinien steuern das Verhalten des Bots in iMessage-Gruppenkonversationen. **open** — Der Bot antwortet auf alle Nachrichten in jeder Gruppe, zu der er hinzugefügt wird. **allowlist** — Der Bot antwortet nur in Gruppen, die explizit in der Konfiguration aufgelistet sind. **disabled (Standard)** — Der Bot antwortet nicht in Gruppenchats. Wenn Gruppenchats aktiviert sind, kann ein erwähnungsbasiertes Gating konfiguriert werden, sodass der Bot nur antwortet, wenn sein Name erwähnt wird, um Störungen in aktiven Gruppen zu reduzieren.
openclaw.json
{
  "channels": {
    "imessage": {
      "groupPolicy": "allowlist",
      "mentionPattern": "@bot"
    }
  }
}

Remote-Mac-Setup über SSH

Für Headless- oder Remote-Bereitstellungen kann das imsg CLI über SSH auf einem anderen Mac ausgeführt werden. Das Gateway startet den imsg-Prozess über eine SSH-Verbindung, und Anhänge werden per SCP übertragen. Dies ist nützlich, wenn der Mac mit Nachrichten an einem anderen Standort steht (z.B. ein Mac Mini Server), während das Gateway woanders läuft. Voraussetzungen: • SSH-Schlüssel-basierte Authentifizierung (keine interaktiven Eingabeaufforderungen) • Auf dem Remote-Mac muss imsg installiert und die Berechtigungen erteilt sein • SCP muss für Anhang-Übertragungen verfügbar sein
openclaw.json
{
  "channels": {
    "imessage": {
      "remoteHost": "mac-server.local",
      "cliPath": "/usr/local/bin/imsg"
    }
  }
}
Verwenden Sie SSH-Schlüsselauthentifizierung, um interaktive Passwortabfragen zu vermeiden.
Tools wie Tailscale können den Remote-Zugriff auf den Mac-Server vereinfachen.

macOS-Berechtigungen (TCC)

Die iMessage-Integration benötigt bestimmte macOS-Datenschutzberechtigungen (verwaltet durch das TCC-Framework): **Vollständiger Festplattenzugriff** — Erforderlich zum Lesen der Nachrichten-Datenbank (chat.db). Sowohl das imsg-Binary als auch der OpenClaw-Prozess benötigen diese Berechtigung. **Automatisierung** — Erforderlich zum Senden von Nachrichten über die Nachrichten-App. Diese Berechtigung wird normalerweise über eine Systemaufforderung erteilt, wenn imsg zum ersten Mal senden möchte. Wenn Sie in einer Headless-Umgebung (z.B. über SSH oder launchd) arbeiten, erscheinen die Berechtigungsabfragen möglicherweise nicht. Führen Sie in diesem Fall 'imsg' einmal in einer interaktiven GUI-Terminalsitzung aus, um die Abfragen auszulösen, und kehren Sie dann zum Headless-Betrieb zurück.
macOS-Berechtigungsabfragen erscheinen nur in GUI-Sitzungen. Führen Sie imsg vor dem Headless-Einsatz mindestens einmal interaktiv aus.

iMessage (Legacy) Konfigurationsreferenz

enabled
Type: booleanDefault: true

iMessage-Kanal aktivieren oder deaktivieren

cliPath
Type: stringDefault: "/usr/local/bin/imsg"

Pfad zum imsg CLI-Binary. Homebrew installiert nach /opt/homebrew/bin/imsg auf Apple Silicon Macs oder /usr/local/bin/imsg auf Intel Macs

dbPath
Type: stringDefault: "~/Library/Messages/chat.db"

Pfad zur macOS Nachrichten SQLite-Datenbank

dmPolicy
Type: stringDefault: "pairing"

DM-Zugriffsrichtlinie: 'pairing', 'allowlist', 'open' oder 'disabled'

groupPolicy
Type: stringDefault: "disabled"

Gruppenchat-Richtlinie: 'open', 'allowlist' oder 'disabled'

allowFrom
Type: string[]Default: []

Telefonnummern oder Apple IDs, die den Bot kontaktieren dürfen

includeAttachments
Type: booleanDefault: false

Ob Medienanhänge eingehender Nachrichten verarbeitet werden sollen

mediaMaxMb
Type: numberDefault: 10

Maximale Dateigröße für Medienanhänge in MB

textChunkLimit
Type: numberDefault: 4000

Maximale Zeichenanzahl pro ausgehender Nachricht

chunkMode
Type: stringDefault: "length"

Textaufteilungsmodus: 'length' (Zeichenlimit) oder 'newline' (Absatzgrenzen)

historyLimit
Type: numberDefault: 20

Maximale Anzahl vorheriger Nachrichten als Konversationskontext

configWrites
Type: booleanDefault: true

/config set|unset Befehle über iMessage erlauben

remoteHost
Type: stringDefault: ""

SSH-Hostname zum Ausführen von imsg auf einem Remote-Mac

iMessage (Legacy) Häufig gestellte Fragen

iMessage (Legacy) Fehlerbehebung

Bot empfängt oder sendet keine Nachrichten

Fehlende macOS-Berechtigungen (vollständiger Festplattenzugriff oder Automatisierung) für das imsg-Binary oder den OpenClaw-Prozess.

Öffnen Sie Systemeinstellungen > Datenschutz & Sicherheit. Überprüfen Sie, dass sowohl imsg als auch OpenClaw vollständigen Festplattenzugriff haben. Führen Sie 'imsg' in einem GUI-Terminal aus, um fehlende Berechtigungsabfragen auszulösen. Starten Sie das Gateway nach Erteilung der Berechtigungen neu.
Berechtigungsabfragen erscheinen nicht

Der Prozess läuft in einer Headless-Umgebung (SSH, launchd), in der macOS keine TCC-Abfragen anzeigen kann.

Melden Sie sich am Mac über eine GUI-Sitzung an (Bildschirmfreigabe oder physischer Zugriff). Führen Sie 'imsg' in Terminal.app aus, um die Abfragen auszulösen. Nach Erteilung der Berechtigungen können Sie zum Headless-Betrieb zurückkehren.
Fehler: chat.db nicht gefunden oder Zugriff verweigert

Die dbPath-Konfiguration ist falsch oder vollständiger Festplattenzugriff wurde nicht erteilt.

Überprüfen Sie, dass dbPath auf die richtige Nachrichten-Datenbank zeigt (normalerweise ~/Library/Messages/chat.db). Stellen Sie sicher, dass vollständiger Festplattenzugriff für den OpenClaw-Prozess in den Systemeinstellungen aktiviert ist.
Remote-SSH-Verbindung schlägt fehl

SSH-Schlüsselauthentifizierung ist nicht konfiguriert oder der Remote-Host ist nicht erreichbar.

Stellen Sie sicher, dass SSH-Schlüsselauthentifizierung zwischen dem Gateway-Host und dem Remote-Mac eingerichtet ist. Testen Sie die Verbindung manuell mit 'ssh <remoteHost> imsg --version'. Überprüfen Sie Firewall und Netzwerkverbindung.