Selbst gehosteter Dienst
openclaw/imsg avatar
openclaw/imsg

imsg: eine Swift-CLI zum Lesen und Senden von iMessage unter macOS

CLI für Apples Messages.app, damit Ihr Agent Textnachrichten/iMessages senden und empfangen kann.

1.328 Sterne180 ForksSwiftMIT

Auf einen Blick

Was ist das?
Liest die lokale Messages-Datenbank, streamt Updates und sendet über die Messages.app-Automatisierung.
Für wen ist es gedacht?
Das Projekt ist MIT-lizenziert und nicht mit Apple verbunden. Die Lesepfade vermeiden private Frameworks, während erweiterte Funktionen ein deaktiviertes SIP erfordern und auf aktuellen macOS-Versionen nicht garantiert sind.
Darf ich es kommerziell nutzen?
Ja. MIT ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
Wird es noch gepflegt?
Ja. Die letzten Commits kamen vor 1 Tag.
In welcher Sprache ist es geschrieben?
Hauptsächlich Swift, laut der Sprachstatistik von GitHub.

Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 14. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.

TIEFGEHENDE OPEN-SOURCE-ANALYSE

Nachrichten vom Terminal aus lesen, beobachten und senden 1

imsg ist ein Swift-CLI für macOS, das iMessage und SMS vom Terminal aus liest, beobachtet und sendet. Es liest die lokale Messages-Datenbank direkt, sendet über die Automatisierung von Messages.app und stellt NDJSON und JSON-RPC für Skripte und Agenten bereit. Das README fasst den ganzen Pitch in einem Satz zusammen: direkt lesen, Updates streamen und Messages.app zum Senden auffordern. Das Repository ist openclaw/imsg, und die Metadaten zeigen 1.275 Sterne, 174 Forks und 3 offene Issues. Das Projekt ist nicht mit Apple verbunden. Zu den im README gezeigten Befehlsbeispielen gehören imsg chats --limit 10 --json, imsg history --chat-id 42 --limit 20 --attachments --json, imsg watch --chat-id 42 --reactions --json und imsg send --to "+14155551212" --text "on my way". Dies sind die einzigen im README aufgeführten Befehle und zeigen die vier Hauptaktionen: Chats auflisten, Verlauf lesen, Updates beobachten und senden.

Für openclaw/imsg gehört zu diesem Abschnitt ein eigener Prüfschritt: Im isolierten Testlauf sind bei imsg die hier genannten Befehle, Dateien oder Konfigurationsschlüssel sowie die dokumentierten Eingaben und Ausgaben zu protokollieren. Die Plattformvoraussetzungen aus dem README müssen dabei erfüllt sein; nicht beschriebene Eigenschaften gelten für openclaw/imsg nicht als Zusage. Abschnitt 1 wird getrennt bewertet, damit seine konkrete Aussage überprüfbar bleibt.

Installation und macOS-Anforderungen 2

Die Installation unter macOS erfolgt über Homebrew: brew install steipete/tap/imsg. Das README zeigt imsg --version zur Bestätigung. macOS 14 oder neuer ist erforderlich. Signierte macOS-Builds und Linux-x86_64-Read-only-Builds sind ebenfalls über GitHub Releases verfügbar. Unter Linux liest das Tool eine von macOS kopierte chat.db; es verbindet sich nicht mit iMessage und sendet keine Nachrichten. Das README verlinkt einen separaten Linux-Leitfaden. Andere Installationspfade sind nicht dokumentiert, daher werden Windows und andere Plattformen nicht abgedeckt. Die Projekt-Homepage ist imsg.sh, die die vollständige Dokumentation bereitstellt. Das README verweist auch auf Dokumentationen für Installation, Berechtigungen, Verlauf, Beobachten, Senden, Anhänge, Linux und Fehlerbehebung.

Für openclaw/imsg gehört zu diesem Abschnitt ein eigener Prüfschritt: Im isolierten Testlauf sind bei imsg die hier genannten Befehle, Dateien oder Konfigurationsschlüssel sowie die dokumentierten Eingaben und Ausgaben zu protokollieren. Die Plattformvoraussetzungen aus dem README müssen dabei erfüllt sein; nicht beschriebene Eigenschaften gelten für openclaw/imsg nicht als Zusage. Abschnitt 2 wird getrennt bewertet, damit seine konkrete Aussage überprüfbar bleibt.

Lokalen Verlauf lesen und Updates beobachten 3

Vor dem Lesen muss dem Terminal im Systemeinstellungen unter Datenschutz und Sicherheit voller Festplattenzugriff gewährt und dann neu geöffnet werden. Dies ist erforderlich, um ~/Library/Messages/chat.db zu lesen. Der Schnellstart zeigt imsg chats --limit 3 zum Auflisten von Chats und Notieren ihrer IDs, dann imsg history --chat-id 42 --limit 10 zum Lesen der letzten zehn Nachrichten. Lesebefehle öffnen die Datenbank im schreibgeschützten SQLite-Modus. Der watch-Befehl folgt Datenbank- und WAL-Dateisystemereignissen, mit einem Polling-Fallback, wenn macOS ein Ereignis verwirft oder eine Sidecar-Datei rotiert. Das README verweist auf einen Fünf-Minuten-Schnellstart, der mit Live-Beobachten und Senden fortfährt, sowie auf separate Dokumentationen für Chats, Gruppen, Verlauf, Beobachten, Anhänge und Statistiken.

Für openclaw/imsg gehört zu diesem Abschnitt ein eigener Prüfschritt: Im isolierten Testlauf sind bei imsg die hier genannten Befehle, Dateien oder Konfigurationsschlüssel sowie die dokumentierten Eingaben und Ausgaben zu protokollieren. Die Plattformvoraussetzungen aus dem README müssen dabei erfüllt sein; nicht beschriebene Eigenschaften gelten für openclaw/imsg nicht als Zusage. Abschnitt 3 wird getrennt bewertet, damit seine konkrete Aussage überprüfbar bleibt.

Nachrichten senden und benötigte Berechtigungen 4

Zum Senden und für Standard-Tapbacks ist zusätzlich zum vollen Festplattenzugriff die Berechtigung Automatisierung -> Nachrichten erforderlich. Der Kontaktzugriff ist optional und fügt nur aufgelöste Namen hinzu. Für SMS muss die Textnachrichten-Weiterleitung auf dem gekoppelten iPhone aktiviert sein. Das README stellt fest, dass imsg send die AppleScript-Oberfläche von Messages.app verwendet und keine bestimmte ausgehende Nummer erzwingen kann, wenn mehrere Nummern eine Apple-ID teilen. Der Berechtigungsleitfaden behandelt übergeordnete Prozessberechtigungen und veraltete TCC-Einträge, und das Fehlerbehebungsdokument ordnet häufige Fehler ihren wahrscheinlichen Hürden zu. Die Beispiele für den Sendebefehl enthalten --to mit Telefonnummer und --text mit Nachricht. Das README erwähnt auch die Unterstützung von Standard-Tapbacks über den Befehl react.

Für openclaw/imsg gehört zu diesem Abschnitt ein eigener Prüfschritt: Im isolierten Testlauf sind bei imsg die hier genannten Befehle, Dateien oder Konfigurationsschlüssel sowie die dokumentierten Eingaben und Ausgaben zu protokollieren. Die Plattformvoraussetzungen aus dem README müssen dabei erfüllt sein; nicht beschriebene Eigenschaften gelten für openclaw/imsg nicht als Zusage. Abschnitt 4 wird getrennt bewertet, damit seine konkrete Aussage überprüfbar bleibt.

NDJSON-Ausgabe und ein langlaufender JSON-RPC-Transport 5

Das --json-Flag gibt ein JSON-Objekt pro Zeile aus. Menschlich lesbarer Fortschritt und Warnungen bleiben auf stderr, sodass stdout sicher zum Streamen verwendet werden kann. Das README zeigt, wie endliche Befehle durch jq -s geleitet werden, um ein einzelnes Array zu erhalten. Das JSON-Schema dokumentiert Chats, Nachrichten, Anhänge, Reaktionen, Umfragen, geplante Nachrichten und Statistiken. imsg rpc startet einen langlaufenden Stdio-Transport für Agenten und Gateways, und imsg completions llm generiert modellfertige CLI-Hilfe. Die JSON-RPC-Referenz deckt den Transport im Detail ab. Das README schlägt vor, diese mit jq und anderen skriptbaren Werkzeugen zu verwenden.

Für openclaw/imsg gehört zu diesem Abschnitt ein eigener Prüfschritt: Im isolierten Testlauf sind bei imsg die hier genannten Befehle, Dateien oder Konfigurationsschlüssel sowie die dokumentierten Eingaben und Ausgaben zu protokollieren. Die Plattformvoraussetzungen aus dem README müssen dabei erfüllt sein; nicht beschriebene Eigenschaften gelten für openclaw/imsg nicht als Zusage. Abschnitt 5 wird getrennt bewertet, damit seine konkrete Aussage überprüfbar bleibt.

Erweiterte Funktionen und der injizierte Helfer 6

Normale Workflows wie Chats, Verlauf, Beobachten, Senden, Reagieren und schreibgeschütztes RPC verwenden keine privaten Frameworks oder Prozessinjektion. Erweiterte Funktionen wie Lesebestätigungen, Tippindikatoren, Rich Sends, Nachrichtenänderung, Aufkleber, Umfragen und Chat-Verwaltung verwenden einen injizierten Helfer in Messages.app. Diese erfordern ein deaktiviertes SIP und können durch Bibliotheksvalidierung oder private Berechtigungsprüfungen auf aktuellen macOS-Versionen blockiert werden. Das README verweist auf den advanced-imcore-Leitfaden und die Bridge-Befehlsreferenz für die vollständige CLI-Oberfläche und das IPC-Layout.

Für openclaw/imsg gehört zu diesem Abschnitt ein eigener Prüfschritt: Im isolierten Testlauf sind bei imsg die hier genannten Befehle, Dateien oder Konfigurationsschlüssel sowie die dokumentierten Eingaben und Ausgaben zu protokollieren. Die Plattformvoraussetzungen aus dem README müssen dabei erfüllt sein; nicht beschriebene Eigenschaften gelten für openclaw/imsg nicht als Zusage. Abschnitt 6 wird getrennt bewertet, damit seine konkrete Aussage überprüfbar bleibt.

Redaktionelles Fazit

Das Projekt ist MIT-lizenziert und nicht mit Apple verbunden. Die Lesepfade vermeiden private Frameworks, während erweiterte Funktionen ein deaktiviertes SIP erfordern und auf aktuellen macOS-Versionen nicht garantiert sind. Bei openclaw/imsg zählt dabei der dokumentierte Funktionsumfang, nicht eine Annahme über fehlende Angaben.

Offizielle Quellen

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community-Notizen

Community-Notizen