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@latest

The core surface area at 0.1.0:

  • doctor — sanity-check WhatsApp data path and DB integrity
  • import — snapshot WhatsApp's SQLite into the local archive
  • status — show archive stats
  • chats — list conversations by recency
  • messages — query archived messages with rich filters
  • search — 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

PropertyValue
Version0.1.0 (2026-04-25)
LanguageGo 1.26+ (98.9% Go)
LicenseMIT
PlatformmacOS only
Source path~/Library/Group Containers/group.net.whatsapp.WhatsApp.shared
Archive path~/.wacrawl/wacrawl.db
Search engineSQLite FTS5
Test coverage gate85%

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:

Aspectwacrawl 0.1.0wacli
ApproachReads local Desktop DBConnects via whatsmeow (WA Web protocol)
Ban riskNoneHigh
AuthNot neededQR pairing
Send messagesNoYes
Continuous captureNo (on-demand snapshot)Yes
PlatformmacOS onlyCross-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 --json output into jq to 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.