Skip to content

rodrigogs/whats-reader

Repository files navigation

WhatsApp Backup Reader

WhatsApp Backup Reader

Browse your WhatsApp exports offline. Your data stays on your device.

Latest Release CI Status License

Svelte 5 Electron 39 Local Whisper AI 100% Offline

FeaturesQuick StartExport GuideContributing


What it does

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

Features

  • 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

Quick Start

Prerequisites

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

Running the app

  1. Clone or download this project
  2. Open a terminal in the project folder
  3. Run these commands:
npm install
npm run dev
  1. Open localhost:5173 in your browser
  2. Drag and drop your WhatsApp .zip file into the page

Desktop app (optional)

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 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)

How to Export from WhatsApp

First, you need to export a chat from WhatsApp on your phone. This creates a .zip file containing your messages and media.

iPhone

  1. Open WhatsApp and go to any chat
  2. Tap the contact or group name at the top of the screen
  3. Scroll down and tap Export Chat
  4. Choose Attach Media to include photos, videos, and voice messages
  5. Save the file (you can AirDrop it to your Mac, save to Files, or email it to yourself)

Android

  1. Open WhatsApp and go to any chat
  2. Tap the three dots in the top right corner
  3. Tap MoreExport chat
  4. Choose Include media
  5. Save or share the .zip file to your computer

Tips

  • 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

Development

Scripts

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

Adding translations

Translation files are in messages/. To add a new language:

  1. Copy messages/en.json to messages/{locale}.json
  2. Translate the strings
  3. Add the locale to project.inlang/settings.json

Built with


Contributing

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.


License

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.