Wrench

WhatsApp local export · v0.16.5

Export bounded WhatsApp history for Message Like Me.

Wrench reads an existing account-bound Wacli store and publishes one private Message Like Me schema-2 bundle. This export does not pair a device, synchronize WhatsApp, open a network connection, or send a message.

The current native export is available on macOS arm64 with official Wacli 0.15.0. The separate whatsapp-web adapter 1.4.0 also exposes 4 bounded R1 reads over the same local projection.

Write one seven-file private bundle

wrench whatsapp export-message-like-me --auth whatsapp-main \
  --output /absolute/private/path/new-whatsapp-bundle --json

The destination must be a new absolute directory below an owner-controlled parent. Wrench writes six NDJSON files plus manifest.json into a private sibling directory, verifies the complete schema and hashes, then publishes all seven files with one atomic rename.

The immutable consumer is Message Like Me v0.7.0. The bundle identifies local-message schema 2, source wacli-local@1.0.0, provider whatsapp@0.15.0, and network whatsapp.

What the bundle contains

The export retains locally stored message bodies, bubble boundaries, replies, attachment metadata, and only edit or deletion state the fixed projection can prove. Attachment bytes, media keys, credentials, protocol keys, source database paths, and local media paths stay out of the bundle.

Message-yourself conversations are excluded for both proven phone-number (PN) and linked-identity (LID) self aliases. Status, broadcast, newsletter, and unsupported non-conversation rows are excluded too.

Reaction rows are excluded. Wacli 0.15.0 cannot prove whether a locally stored reaction remains active or was removed, so Wrench emits reaction-state-unproven instead of publishing retained reaction state.

Local history remains incomplete

The receipt reports bounded-local completeness with reason local-store-coverage-unknown and warning remote-history-incomplete. A completed export proves the admitted local projection, not that WhatsApp has backfilled every remote message.

The helper binds one immutable database generation, validates the store once, reads row-ID pages through one bounded session, filters proven self chats before content crosses the helper boundary, and seals the final counts and rolling frame digest before publication.

Exact macOS arm64 runtime

BoundaryReviewed identity
Wrenchv0.16.5
Message Like Mev0.7.0
Official Wacliv0.15.0 at a020de724180d31eccfa5241d45443402d62fb06
macOS arm64 archive SHA-2562b54f33d246e913a5c33525b4fc895a345363c2dcc673c70fa5f19cffb15d17d
macOS arm64 executable SHA-256a900af4d0dfd10471bcdf74105b9f256d1a08574242a041df3e5985a548826aa

The runtime checks the official release identity, exact executable SHA-256, and offline code signature before reading. The installer separately repeats the online Apple notarization check before it publishes the executable. Runtime reads do not claim to repeat online notarization.