Browse your WhatsApp exports offline. Your data stays on your device.
English • Português • Español • Français • Deutsch • Italiano • Nederlands • 日本語 • 中文 • Русский
Features • Quick Start • Export Guide • Privacy • Contributing
Drop a WhatsApp .zip export and browse your messages, photos, and voice notes. Works with big chats (tested with 10k+ messages).
The Media Gallery gives you a visual overview of all photos, videos, and audio files organized by date. Select multiple items and download them as a ZIP file, or click any media to view it full-screen and jump to the original message.
Voice messages can be transcribed using Whisper, which runs in your browser via WebGPU. No server, no API key needed.
Screenshots
| Start Screen | Chat View |
|---|---|
![]() |
![]() |
| Chat Options | Perspective Mode |
|---|---|
![]() |
![]() |
| Bookmarks | Statistics |
|---|---|
![]() |
![]() |
| Voice Transcription | Media Gallery |
|---|---|
![]() |
![]() |
| Download Selected | Go to date |
|---|---|
![]() |
![]() |
Get the desktop app for your platform:
- Download WhatsApp-Backup-Reader-Setup-{version}.exe from latest release
- Run the installer and follow the setup wizard
- The app will auto-update when new versions are available
- Apple Silicon (M1/M2/M3): Download WhatsApp-Backup-Reader-{version}-arm64.dmg
- Intel: Download WhatsApp-Backup-Reader-{version}.dmg
- Open the DMG file and drag the app to Applications
- On first launch, right-click the app and select "Open" to bypass Gatekeeper
- Debian/Ubuntu: Download whats-reader_{version}_amd64.deb or whats-reader_{version}_arm64.deb
sudo dpkg -i whats-reader_{version}_amd64.deb - Fedora/RHEL: Download whats-reader-{version}.x86_64.rpm or whats-reader-{version}.aarch64.rpm
sudo rpm -i whats-reader-{version}.x86_64.rpm - Other distros (Arch, etc.): Download WhatsApp-Backup-Reader-{version}.AppImage
chmod +x WhatsApp-Backup-Reader-{version}.AppImage ./WhatsApp-Backup-Reader-{version}.AppImage
Or use the web version: Visit rodrigogs.github.io/whats-reader - no installation needed!
- Media Gallery: Browse all photos, videos, and audio in a thumbnail grid view
- Date-based organization with calendar navigation
- Bulk select and download as ZIP
- Lightbox preview with navigation back to original message
- Auto-update: Desktop app automatically checks and installs updates (Electron only)
- Voice transcription: Transcribe audio with Whisper (runs locally, 12+ languages)
- Search: Full-text search across messages and transcriptions
- Bookmarks: Save messages with notes, export/import as JSON
- Perspective mode: View the chat as any participant
- Statistics: Message counts, activity charts, timeline
- Dark mode: Follows system or toggle manually (preference saved)
- Multi-language UI: English, Portuguese, Spanish, French, German, Italian, Dutch, Japanese, Chinese, Russian
- Desktop app: macOS, Windows, Linux via Electron
You need Node.js installed (version 18 or later). Download it from nodejs.org and run the installer.
To check if you have it:
node --version- Clone or download this project
- Open a terminal in the project folder
- Run these commands:
npm install
npm run dev- Open localhost:5173 in your browser
- Drag and drop your WhatsApp
.zipfile into the page
If you prefer a standalone app instead of using your browser:
npm run electron:dev # run in dev mode
npm run electron:build # create an installer for your OSPlatform-specific builds:
npm run electron:build:mac # macOS (dmg, zip)
npm run electron:build:win # Windows (nsis, portable)
npm run electron:build:linux # Linux (deb, rpm, AppImage)First, you need to export a chat from WhatsApp on your phone. This creates a .zip file containing your messages and media.
- Open WhatsApp and go to any chat
- Tap the contact or group name at the top of the screen
- Scroll down and tap Export Chat
- Choose Attach Media to include photos, videos, and voice messages
- Save the file (you can AirDrop it to your Mac, save to Files, or email it to yourself)
- Open WhatsApp and go to any chat
- Tap the three dots ⋮ in the top right corner
- Tap More → Export chat
- Choose Include media
- Save or share the
.zipfile to your computer
- Large chats may take a few minutes to export
- The file will be named something like
WhatsApp Chat with John.zip - Both individual and group chats work
This app is designed with privacy as the top priority. Your WhatsApp data never leaves your device.
- 100% Offline: The app works entirely without internet. No servers, no cloud, no data transmission.
- Local processing: All parsing, search, and analysis happens in your browser or Electron app.
- Local AI: Voice transcription uses Whisper running locally via WebGPU. No audio is sent to any server or API.
- No tracking: Zero analytics, telemetry, or third-party scripts. No Google Analytics, no cookies.
- No account required: No registration, no login, no personal data collected.
- Open source: The entire codebase is public under AGPL-3.0. Anyone can audit it.
Don't just trust us. Verify it yourself:
-
Read the source code
Browse the GitHub repository. The main logic is insrc/lib/andsrc/routes/. -
Check network requests
Open the browser's DevTools (F12) → Network tab → Use the app. You'll see zero external requests (except initial page load if using web version). -
Test offline
Disconnect from the internet, then use the app. Everything works because nothing requires a connection. -
Build from source
Clone the repo and build it yourself:git clone https://github.com/rodrigogs/whats-reader.git cd whats-reader npm install npm run build -
Audit the Electron app
The desktop app uses the same web code. Checkelectron/main.cjsandelectron/preload.cjs. They only handle window management and file dialogs.
| Command | Description |
|---|---|
npm run dev |
Start dev server at localhost:5173 |
npm run build |
Build for production |
npm run preview |
Preview production build |
npm run check |
Type check with svelte-check |
npm run check:watch |
Type check in watch mode |
npm run lint |
Lint with Biome |
npm run lint:fix |
Auto-fix lint issues |
npm run format |
Format code with Biome |
npm run electron |
Build and run Electron app |
npm run electron:dev |
Run Electron in dev mode |
npm run electron:build |
Build Electron installer |
npm run electron:build:mac |
Build for macOS |
npm run electron:build:win |
Build for Windows |
npm run electron:build:linux |
Build for Linux |
npm run machine-translate |
Auto-translate with inlang |
Translation files are in messages/. To add a new language:
- Copy
messages/en.jsontomessages/{locale}.json - Translate the strings
- Add the locale to
project.inlang/settings.json
- SvelteKit + Svelte 5 - Framework
- Tailwind CSS 4 - Styling
- Electron - Desktop app
- Transformers.js - Whisper AI for transcription
- JSZip - ZIP file handling
- Paraglide JS - Internationalization
Found a bug or have an idea? Open an issue on GitHub.
Want to contribute code? Fork the repo, make your changes, and open a pull request.
There are example chat files in examples/chats/ you can use for testing.
AGPL-3.0. You can use, modify, and distribute this software freely. If you modify it and run it as a service or distribute it, you must share your source code under the same license.









