Browse your WhatsApp exports offline. Your data stays on your device.
Features • Quick Start • Export Guide • 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.
Screenshots
| Start Screen | Chat View |
|---|---|
![]() |
![]() |
| Chat Options | Perspective Mode |
|---|---|
![]() |
![]() |
| Bookmarks | Statistics |
|---|---|
![]() |
![]() |
| Voice Transcription |
|---|
![]() |
- 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 and Portuguese (more coming soon)
- 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 (AppImage, deb)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
| 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.






