CLI-Tool
openclaw/wacli avatar
openclaw/wacli

wacli: ein WhatsApp-Terminalclient mit lokaler SQLite-Suche und Sendebefehlen

WhatsApp CLI: Synchronisieren, suchen, senden. Für den Build aus dem Quellcode wacli ist Go 1.26.5 oder neuer erforderlich und es wird go-sqlite3 verwendet, daher sind cgo und ein C-Compiler erforderlich.

2.736 Sterne343 ForksGoMIT

Auf einen Blick

Was ist das?
Ein skriptbarer WhatsApp-Client, der sich als verknüpftes Gerät koppelt, Nachrichten in einen lokalen SQLite-Speicher spiegelt und Suche, Senden und Chatverwaltung als Unterbefehle bereitstellt.
Für wen ist es gedacht?
Die README beschreibt klar, was wacli ist und wie es läuft, macht aber keine Zusagen zu Leistung, Sicherheit oder Support. Die konkrete Docker-Einrichtung, die Webhook-Payloads und das Verhalten von history coverage bei einem bestimmten Konto sind die Punkte, die noch verifiziert werden müssen.
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 Go, laut der Sprachstatistik von GitHub.

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

TIEFGEHENDE OPEN-SOURCE-ANALYSE

Ein Client für verknüpfte Geräte über das WhatsApp-Web-Protokoll

wacli ist ein WhatsApp-Kommandozeilenclient für Menschen und Werkzeuge, die im Terminal arbeiten. Er koppelt sich als verknüpftes Gerät, spiegelt eingehende Nachrichten in einen lokalen SQLite-Speicher und bietet über Unterbefehle Suche, Senden und Chatverwaltung an. Die README stellt klar, dass wacli das WhatsApp-Web-Protokoll über die Bibliothek whatsmeow verwendet und nicht mit WhatsApp oder Meta verbunden ist. Die Projekt-Homepage ist wacli.sh, wo auch die vollständige Dokumentation liegt. Das Repository beschreibt keinen separaten Server und keine gehostete Komponente; der Client läuft lokal.

Für openclaw/wacli gehört zu diesem Abschnitt ein eigener Prüfschritt: Im isolierten Testlauf sind bei wacli 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/wacli nicht als Zusage. Abschnitt 1 wird getrennt bewertet, damit seine konkrete Aussage überprüfbar bleibt.

Installation über Homebrew, Archive oder Go-Quellcode

Auf macOS und Linux ist der in der README dokumentierte Installationsweg Homebrew mit `brew install openclaw/tap/wacli`. Vorgefertigte Archive für macOS, Linux und Windows sind als Download von GitHub Releases aufgeführt. Für den Aufbau aus dem Quellcode verlangt die README Go 1.26.5 oder neuer, einen C-Compiler und diesen Befehl: `CGO_ENABLED=1 CGO_CFLAGS="-Wno-error=missing-braces" go install -tags sqlite_fts5 github.com/openclaw/wacli/cmd/wacli@latest`. Sie verweist außerdem auf eine Installationsanleitung für Release-Archive, Docker und plattformspezifische Build-Anforderungen; die README selbst enthält keine Docker-Anweisungen, daher bleibt die genaue Docker-Einrichtung eine offene Verifikationsfrage.

Für openclaw/wacli gehört zu diesem Abschnitt ein eigener Prüfschritt: Im isolierten Testlauf sind bei wacli 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/wacli nicht als Zusage. Abschnitt 2 wird getrennt bewertet, damit seine konkrete Aussage überprüfbar bleibt.

Koppeln, erste Synchronisierung und Nachrichten senden

Das Koppeln beginnt damit, dass man einen QR-Code vom Bildschirm „Verknüpfte Geräte" in WhatsApp scannt; der Befehl `auth` führt nach dem Koppeln die erste Synchronisierung aus. Die README zeigt als Schnellstart `wacli auth`, dann `wacli messages search "meeting"` und `wacli send text --to +15551234567 --message "hello"`. Sie sagt, dass das Senden einen Empfänger erfordert, den man kontaktieren darf, und dass Empfänger Telefonnummern, WhatsApp-JIDs oder synchronisierte Kontakt-, Gruppen- und Chatnamen sein können. Das Schnellstart-Dokument behandelt Telefonnummer-Kopplung, benannte Konten, Medien und Diagnose, aber die README wiederholt diese Anweisungen nicht.

Für openclaw/wacli gehört zu diesem Abschnitt ein eigener Prüfschritt: Im isolierten Testlauf sind bei wacli 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/wacli nicht als Zusage. Abschnitt 3 wird getrennt bewertet, damit seine konkrete Aussage überprüfbar bleibt.

Kontinuierliche Synchronisierung und Offline-Suche über den lokalen Index

`wacli sync --follow` startet eine kontinuierliche Synchronisierung. Die Sitzung und der durchsuchbare Nachrichtenindex liegen in getrennten SQLite-Datenbanken; die Suche liest den lokalen Index und funktioniert daher ohne eine aktive WhatsApp-Verbindung. Die README nennt als Beispiele `wacli messages search "invoice" --has-media` und `wacli --json messages list --limit 20`. Sie warnt außerdem, dass WhatsApp Web den Verlauf nur nach bestem Bemühen bereitstellt, und empfiehlt, mit `history coverage` zu prüfen, was lokal verfügbar ist, bevor man ältere Nachrichten vom Haupttelefon anfordert.

Für openclaw/wacli gehört zu diesem Abschnitt ein eigener Prüfschritt: Im isolierten Testlauf sind bei wacli 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/wacli nicht als Zusage. Abschnitt 4 wird getrennt bewertet, damit seine konkrete Aussage überprüfbar bleibt.

Skriptausgabe, Nur-Lese-Modus und Sperrverhalten

Standardmäßig wird eine menschenlesbare Tabelle ausgegeben. Für einmalige Befehle liefert `--json` JSON; für langlebige Befehle liefert `--events` NDJSON-Lebenszyklusereignisse. Fortschritt und Fehler gehen nach stderr. Eine Integration kann `--read-only` übergeben oder `WACLI_READONLY=1` setzen, um WhatsApp oder den lokalen Speicher nicht zu verändern. Schreibbefehle nehmen eine Sperre pro Speicher; wenn `sync --follow` diese Sperre hält, werden unterstützte Sendebefehle an den laufenden Synchronisierungsprozess delegiert. Die README verweist für Webhooks und sicheren schreibgeschützten SQLite-Zugriff auf die Integrationsdokumentation, listet aber die unterstützten Webhook-Payloads nicht auf; das bleibt eine offene Verifikationsfrage.

Für openclaw/wacli gehört zu diesem Abschnitt ein eigener Prüfschritt: Im isolierten Testlauf sind bei wacli 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/wacli nicht als Zusage. Abschnitt 5 wird getrennt bewertet, damit seine konkrete Aussage überprüfbar bleibt.

Befehlsgruppen und Speicherkonfiguration

Der Befehlssatz ist nach Bereichen gegliedert: auth und accounts für Kopplung und isolierte Speicher; sync und history für Spiegelung und Verlauf; messages und calls für lokale Datensätze; send und media für Senden und Herunterladen; contacts, chats, groups und channels für Personen und Chat-Zustand; profile und presence für Kontodetails; store und doctor für Speicherprüfung und Diagnose. Der Standardspeicher ist unter Linux `~/.local/state/wacli` und sonst `~/.wacli`, mit `--store DIR` oder `WACLI_STORE_DIR` als Überschreibung. Benannte Konten, gezeigt als `wacli accounts add work` und `wacli --account work sync --follow`, erlauben es jeder WhatsApp-Identität, eine eigene Sitzung, Datenbank und Sperre zu haben.

Für openclaw/wacli gehört zu diesem Abschnitt ein eigener Prüfschritt: Im isolierten Testlauf sind bei wacli 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/wacli nicht als Zusage. Abschnitt 6 wird getrennt bewertet, damit seine konkrete Aussage überprüfbar bleibt.

Entwicklung, Danksagungen und Lizenz

Für die Entwicklung werden Go 1.26.5, Node.js 24 oder neuer, pnpm, cgo und ein C-Compiler benötigt. Die README gibt als Build- und Testsequenz `pnpm install --frozen-lockfile`, `pnpm build` und `pnpm format:check && pnpm lint && pnpm test` an. Sie nennt whatsapp-cli von Vicente Reig als starke Inspiration, listet @steipete als Ersteller und @dinakars777 als aktuellen Betreuer und verwendet die MIT-Lizenz mit Urheberrecht bei Peter Steinberger. Der Lizenztext erlaubt Nutzung, Kopie, Änderung, Zusammenführung, Veröffentlichung, Verbreitung, Unterlizenzierung und Verkauf von Kopien und enthält die übliche Klausel, dass keine Gewährleistung übernommen wird. Die README beschreibt weder Release-Rhythmus noch Support-Kanäle noch Produktionsreife.

Für openclaw/wacli gehört zu diesem Abschnitt ein eigener Prüfschritt: Im isolierten Testlauf sind bei wacli 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/wacli nicht als Zusage. Abschnitt 7 wird getrennt bewertet, damit seine konkrete Aussage überprüfbar bleibt.

Redaktionelles Fazit

Die README beschreibt klar, was wacli ist und wie es läuft, macht aber keine Zusagen zu Leistung, Sicherheit oder Support. Die konkrete Docker-Einrichtung, die Webhook-Payloads und das Verhalten von history coverage bei einem bestimmten Konto sind die Punkte, die noch verifiziert werden müssen. Bei openclaw/wacli 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