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).
Voice messages can be transcribed using Whisper, which runs in your browser via WebGPU. No server, no API key needed.
| Start Screen | Chat View |
|---|---|
![]() |
![]() |
| Chat Options | Perspective Mode |
|---|---|
![]() |
![]() |
| Bookmarks | Statistics |
|---|---|
![]() |
![]() |
| Voice Transcription |
|---|
![]() |
Get the desktop app for your platform:
sudo dpkg -i whats-reader_{version}_amd64.deb
sudo rpm -i whats-reader-{version}.x86_64.rpm
Or use the web version: Visit rodrigogs.github.io/whats-reader - no installation needed!
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
npm install
npm run dev
.zip file into the pageIf 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 OS
Platform-specific builds:
npm run electron:build:mac # macOS (dmg, zip)
npm run electron:build:win # Windows (nsis, portable)
npm run electron:build:linux # Linux (AppImage, deb)
First, you need to export a chat from WhatsApp on your phone. This creates a .zip file containing your messages and media.
.zip file to your computerWhatsApp Chat with John.zipThis app is designed with privacy as the top priority. Your WhatsApp data never leaves your device.
Don't just trust us. Verify it yourself:
Read the source code
Browse the GitHub repository. The main logic is in src/lib/ and src/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. Check electron/main.cjs and electron/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:
messages/en.json to messages/{locale}.jsonproject.inlang/settings.jsonFound 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.