Repository navigation
WeChat Archive v0.2.0
WeChat Archive v0.2.0
Builds on v0.1.0's one-time full archive with a more usable Archive Viewer and recovery of a large category of message text that previously showed as unrecognized.
New
- Cross-conversation message search. The viewer toolbar now has a search entry that searches message text across every conversation (previously only conversation titles were searchable). Selecting a result switches to that conversation and jumps to, and briefly highlights, the matching message.
- Archive recovery stats. A new stats panel shows the message breakdown by type (text/image/video/voice/unrecognized) and the media breakdown by recovery status, so you can see how much of an archive is actually readable.
- Recovers more message text. Some newer WeChat versions store the body of revoke notices, location shares, and app messages (link shares/mini programs/quote-replies) as compressed data. With the local
zstdCLI installed (included inbrew bundle), Full Export now automatically attempts to decompress and normalize these into readable text. Withoutzstd, these messages are still losslessly preserved as their raw SQLite values — they just continue to display as unrecognized. Verified against a real ~54k-message archive: the unrecognized-message ratio dropped from 21.5% to about 8%. - Message image/video thumbnails are now cached, reducing repeated decode work while scrolling a conversation.
Fixed
- A failed Full Export previously always showed "target directory retained for verification, use a new empty directory," even when the real cause had nothing to do with emptiness (most commonly, the archive destination nested inside the plain SQLite root or account root). It now shows a more specific message for known causes.
Privacy
- Same as v0.1.0: all processing is local, and no chat data or keys are uploaded. The new message search only queries fields already inside the imported archive — it never reads or uploads the source database, WeChat directory, or any key.
Dependency Change
Brewfilenow includeszstd(used to decompress some compressed message bodies). Apple's systemCompressionframework does not support Zstandard, so this follows the same optional-local-CLI-tool boundary already established by the Silk voice decoder: withoutzstdinstalled, the affected messages simply stay unrecognized — the rest of the archive is unaffected and export never fails because of it. The distributed.appdoes not yet bundlezstd(same as the current state of the Silk decoder).
Distribution
- The macOS Apple Silicon App bundles SQLCipher and its required OpenSSL runtime; third-party licenses are included inside the App bundle.
- Signing: AD-HOC.
- Notarization: NOT DONE.
- Because the build is not notarized, macOS may show a security warning on first launch.