$ show openclaw/wacrawl
wacrawl is a local-first Go application for importing, merging, searching, and exporting WhatsApp Desktop archive data. It reads the WhatsApp Desktop SQLite database directly from local files, normalizes it into a private SQLite store, and exposes a CLI (import, status, chats, messages, search, sql, web, backup, contacts, metadata) plus a loopback-only read-only web viewer. The system is deliberately private: no network protocol, media confined to known roots, and the web UI requires a per-run bearer token.
The LLM identified 3 files worth highlighting for reuse:
Provides safe, confined file operations for media extraction. Uses O_NONBLOCK and prevents symlink escape, making it a reusable security boundary for any tool that needs to read untrusted archives without exposing the filesystem.
Implements a loopback-only, read-only web viewer with per-run access keys and media confined to known roots. The handler pattern (status/chats/messages/search/media endpoints) is a clean template for adding a private local UI to a CLI tool.
Core SQLite store with generic import/export snapshot model, incremental merge (MergeAll), exact restore (ReplaceAll), tombstone-based deletion, and sync_state persistence. Includes sqlc-generated queries and migration helpers. Although some queries are WhatsApp-specific, the snapshot/merge/migration scaffolding is a reusable pattern for local-first data stores.