~/portfolio
WHATWHIS — LOCAL WHATSAPP VOICE TRANSCRIPTION(7) — Privacy-focused Firefox extension that transcribes WhatsApp Web voice messages entirely on your machine via a local Flask service powered by OpenAI Whisper — no cloud, no external APIs, no tracking.
($ cd ~/projects && ./whatwhis)

NAME

WhatWhis — Local WhatsApp Voice Transcription — Privacy-focused Firefox extension that transcribes WhatsApp Web voice messages entirely on your machine via a local Flask service powered by OpenAI Whisper — no cloud, no external APIs, no tracking.

SYNOPSIS

Privacy-focused Firefox extension that transcribes WhatsApp Web voice messages entirely on your machine via a local Flask service powered by OpenAI Whisper — no cloud, no external APIs, no tracking.

DESCRIPTION

Repository: GitHub - m-elhabib-dev/whatwhis

WhatWhis is a privacy-focused Firefox extension that transcribes WhatsApp Web voice messages locally on your machine. A local Python Flask service hosts the OpenAI Whisper model and exposes a REST API on localhost.

All audio processing happens on your device — there are no external API calls, no tracking, and no cloud round-trips.

A "Transcribe" button is injected directly into WhatsApp Web. Transcripts are persisted locally in the browser IndexedDB, with excellent Arabic (and other language) support and proper RTL rendering.

The project follows 15 core principles including local-only architecture, explicit user control, and developer observability.

TECH STACK

JavaScript Manifest V3 Python Flask OpenAI Whisper FFmpeg IndexedDB

ARCHITECTURE

Extension: a Manifest V3 content script that observes the WhatsApp Web DOM, injects UI elements, and handles audio extraction. Service: a Flask application that hosts the Whisper model and provides a REST API on localhost. IndexedDB used for local transcript persistence. FFmpeg as the audio dependency required by Whisper.

BUGS / CHALLENGES

Extracting and routing voice message audio from the live WhatsApp Web DOM. Bundling and serving the Whisper model through a lightweight local Flask API. Rendering transcriptions with proper RTL layout for Arabic. Keeping the entire pipeline local-first to preserve privacy.

EXIT STATUS / OUTCOMES

Delivered a fully local WhatsApp voice transcription pipeline with no cloud dependency. Injected a seamless Transcribe button into WhatsApp Web. Persisted transcripts in IndexedDB and rendered Arabic transcripts correctly in RTL.

SEE ALSO