How-to guide · WhatsApp local export · v0.18.27
Export bounded WhatsApp history for Message Like Me.
Ghostget 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 whatsapp-web adapter 1.4.0 exposes 4 generic bounded R1 reads over that local projection. Its separate owner-only automation permissions do not turn those reads into send commands.
Write one seven-file private bundle
ghostget whatsapp export-message-like-me --auth whatsapp-main \
--output /absolute/private/path/new-whatsapp-bundle --jsonThe destination must be a new absolute directory below an owner-controlled parent. Ghostget 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 Ghostget 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 export runtime
| Boundary | Reviewed identity |
|---|---|
| Ghostget | v0.18.27 |
| Message Like Me | v0.7.0 |
| Official Wacli | v0.15.0 at a020de724180d31eccfa5241d45443402d62fb06 |
| macOS arm64 archive SHA-256 | 2b54f33d246e913a5c33525b4fc895a345363c2dcc673c70fa5f19cffb15d17d |
| macOS arm64 executable SHA-256 | a900af4d0dfd10471bcdf74105b9f256d1a08574242a041df3e5985a548826aa |
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.
Owner-controlled messaging is a separate setup
The trusted ghostget messaging automation serve --stdio host supports enrolled individual conversations through a separate, pinned wacli build with reviewed patches. It requires an existing account, explicit managed operation permissions, and the exact installed automation runtime. Stock Wacli and the export runtime above do not establish automation readiness.
Initialization does not pair or start synchronization. The owner must explicitly start sync and grant a conversation its allowed action kinds, expiry, interval, and capacity. Available text, attachment, reaction, sticker, link, and poll actions depend on current account and runtime capabilities. The messaging.automation.* catalog entries are permission ceilings, not operations callable through generic invoke or confirm.
The host retains private plaintext conversation history and an action journal. Historical bootstrap is not a new-message event, gaps block automatic sends, and uncertain actions are not resubmitted. Provider acceptance does not prove delivery. This contract description does not claim a paired account or a successful live send on your machine.
Follow the release's owner messaging setup and recovery guide and review local data retention before enabling it.