wacrawl
wacrawl is a read-only CLI tool for macOS that searches and archives WhatsApp Desktop messages by snaphotting local SQLite databases. Use it to query chat history, export conversations, and create encrypted backups without modifying the original WhatsApp data or requiring API authentication.
git clone --depth 1 https://github.com/moltis-org/moltis /tmp/wacrawl && cp -r /tmp/wacrawl/crates/skills/src/assets/messaging/wacrawl ~/.claude/skills/wacrawlSKILL.md
# wacrawl — WhatsApp Desktop Archive (Read-Only) `wacrawl` is a read-only local archive tool for WhatsApp Desktop on macOS. It snapshots the local SQLite databases (ChatStorage.sqlite, ContactsV2.sqlite) without modifying them. Use it for searching chat history, exporting conversations, and creating encrypted backups. This is different from `wacli` — wacrawl is read-only archaeology of local data; wacli is an active WhatsApp Web client for sending/receiving messages. ## Secret Safety - wacrawl reads local files only — no API tokens needed. - The optional age encryption key at `~/.wacrawl/age.key` is auto-generated and must not be printed to agent context. - **Never** read, print, or send `~/.wacrawl/age.key` to LLM context. ## Prerequisites - macOS only (reads WhatsApp Desktop's local SQLite databases). - WhatsApp Desktop must be installed and have synced messages. - Full Disk Access may be required for the terminal app to read WhatsApp's container. ## Health Check ```bash wacrawl doctor ``` ## Sync Local Data ```bash wacrawl sync ``` Snapshots the current state of WhatsApp Desktop's databases into wacrawl's local store. ## List Chats ```bash wacrawl chats wacrawl chats --limit 20 wacrawl chats --json ``` ## Search Messages ```bash wacrawl search "query" wacrawl search "invoice" --limit 20 wacrawl messages --chat <jid> --limit 50 wacrawl messages --chat <jid> --json ``` ## Encrypted Backup ```bash wacrawl backup wacrawl backup --output /path/to/backup/ ``` Creates age-encrypted JSONL.gz shards suitable for Git-backed storage. ## Saving to Memory To save search results or chat exports to Moltis memory for future reference: 1. Run wacrawl with `--json` output 2. Summarize the relevant conversations into a daily digest 3. Save as `memory/whatsapp/YYYY-MM-DD.md` Example workflow: ```bash wacrawl search "project meeting" --json --limit 20 ``` Then write a summary to memory: ```markdown # WhatsApp — 2026-04-28 ## Key Conversations - Discussion with Alice about project timeline — agreed on June deadline - Bob shared the updated budget spreadsheet - Team group: standup notes, blockers discussed ``` ## Notes - Store dir: `~/.wacrawl` (override with `--store`). - Use `--json` for machine-readable output when parsing. - JIDs: direct chats look like `<number>@s.whatsapp.net`; groups look like `<id>@g.us`. - This tool cannot work inside a Linux sandbox — it requires macOS WhatsApp Desktop files.
Commit all changes, push branch, create/update PR, and run local validation
Manage Apple Notes via the memo CLI on macOS (create, view, search, edit).
Manage Apple Reminders via remindctl CLI (list, add, complete, delete).
Track Apple devices and AirTags via FindMy.app on macOS using AppleScript and screen capture.
Send and receive iMessages/SMS via the imsg CLI on macOS.
Transcribe audio via OpenAI Audio Transcriptions API (Whisper).
Local speech-to-text with the Whisper CLI (no API key).
ElevenLabs text-to-speech with mac-style say UX.