TL;DR
wacrawl 0.1.0 is a new MIT-licensed Go CLI from Peter Steinberger that turns the WhatsApp Desktop app on your Mac into a grep-able local archive. It copies WhatsApp's SQLite databases (with WAL/SHM) into ~/.wacrawl/wacrawl.db, then exposes chats, messages, and FTS5-powered search commands. Crucially, it's read-only and never talks to the WhatsApp Web protocol — so it carries none of the account-ban risk that haunts whatsmeow-based tools.
What's new
Released April 25, 2026 with 9 prebuilt binary assets. Install it in one of two ways:
brew install steipete/tap/wacrawl
# or
go install github.com/steipete/wacrawl/cmd/wacrawl@latestThe core surface area at 0.1.0:
doctor— sanity-check WhatsApp data path and DB integrityimport— snapshot WhatsApp's SQLite into the local archivestatus— show archive statschats— list conversations by recencymessages— query archived messages with rich filterssearch— full-text search across messages, chat names, senders, and media titles
Filters on messages and search include --chat, --sender, --after, --before, --from-me, --from-them, --has-media, --limit N (default 50), and --asc. Global flags --db, --source, --json, and --version round out the CLI.
Why it matters
If you've ever tried to dig up a link or address someone WhatsApped you two years ago, you already know the pain: WhatsApp's built-in chat export is per-conversation, slow, plaintext, and absolutely not designed for serious search. Third-party tools that do offer search usually piggyback on WhatsApp Web via libraries like whatsmeow — and Meta has a clear track record of permanently banning accounts that connect through unofficial clients.
wacrawl sidesteps the whole protocol war. Your WhatsApp Desktop app is already syncing messages to a local SQLite store on your Mac. wacrawl just copies that store to a workspace it owns and indexes it. No QR code, no pairing, no network — and therefore no fingerprint that Meta's anti-abuse systems can flag.
Technical facts
| Property | Value |
|---|---|
| Version | 0.1.0 (2026-04-25) |
| Language | Go 1.26+ (98.9% Go) |
| License | MIT |
| Platform | macOS only |
| Source path | ~/Library/Group Containers/group.net.whatsapp.WhatsApp.shared |
| Archive path | ~/.wacrawl/wacrawl.db |
| Search engine | SQLite FTS5 |
| Test coverage gate | 85% |
Three implementation details worth calling out:
- Snapshot before import. wacrawl copies the WhatsApp DB plus its WAL and SHM sidecar files into a temp location before reading. That avoids file locks and corruption when WhatsApp Desktop is running concurrently.
- Portable FTS5 index. WhatsApp's own DB uses a proprietary tokenizer; wacrawl rebuilds a clean FTS5 index over message text, chat names, sender names, and media titles so search works without any Apple-private dependencies.
- Cocoa epoch normalization. WhatsApp stores timestamps as seconds since
2001-01-01T00:00:00Z(the Apple Core Data reference date). wacrawl converts everything to RFC3339, so JSON output is immediately useful in scripts.
Comparison
Steinberger maintains a sibling project, wacli, that takes the opposite approach. Quick contrast:
| Aspect | wacrawl 0.1.0 | wacli |
|---|---|---|
| Approach | Reads local Desktop DB | Connects via whatsmeow (WA Web protocol) |
| Ban risk | None | High |
| Auth | Not needed | QR pairing |
| Send messages | No | Yes |
| Continuous capture | No (on-demand snapshot) | Yes |
| Platform | macOS only | Cross-platform |
If your goal is automation and outbound messaging, wacli is the right pick. If your goal is "I want to find that thing" without putting your account at risk, wacrawl is the boring, safe answer.
Use cases
- Personal memory. Years of conversations become instantly searchable — "the address Mai sent me in March," "the Spotify link from that road trip," etc.
- Journalists and researchers. Archive interviews conducted on WhatsApp without trusting iCloud or Google Drive backups.
- Scripting and analytics. Pipe
--jsonoutput intojqto compute most active chats, sender frequencies, or media breakdowns. - Pre-migration backup. Snapshot before switching phones or reinstalling WhatsApp Desktop.
- Quiet audit. Read-only by design, so you can inspect data without ever risking modifying the source.
Limitations & pricing
The tool is free and MIT licensed. The trade-offs at 0.1.0 are upfront:
- macOS only. Tied to the WhatsApp Desktop app's local data layout. No Linux, Windows, iOS, or Android support.
- No backup decryption. Encrypted iOS/Android cloud backups are out of scope.
- No sending. Read-only by design.
- No schema stability promise. The archive schema can change between versions while the project is young.
- Plaintext on disk. The archive stores readable messages — keep it local, treat it as sensitive, and consider full-disk encryption.
- Requires WhatsApp Desktop installed and synced. wacrawl reads what the desktop app has — it cannot fetch history the app never received.
What's next
The repo already shows 5 commits past the v0.1.0 tag, so iteration is active. Likely directions, based on the explicit limitations list: schema stabilization, broader desktop platform support, and possibly backup decryption — none of which are promised yet. Sibling project wacli is already at v0.7.0, which gives a rough sense of how fast Steinberger moves a tool through versions once the core works.
For now, 0.1.0 is a sharp, single-purpose utility: it snapshots your WhatsApp Desktop data and gives you FTS over it. That's the whole pitch, and for a lot of people it's exactly the missing tool.
Source: github.com/steipete/wacrawl, v0.1.0 release notes, @steipete announcement.