keshavbhatt/whatsie

Feature rich WhatsApp Client for Desktop Linux

C++

3,447

517 commits

updated Sep 21, 2026

See the code

README

Whatsie — WhatsApp Web, in a real desktop app

Whatsie

WhatsApp Web, in a real desktop app.
Native notifications, a tray unread badge, calls and screen share, a real downloads manager, themes that follow the page, spell check, a proxy, and an optional app lock — lightweight and open source, built with Qt 6.

MIT license Qt 6.11 C++20 Linux


Why Whatsie

WhatsApp Web is great, but a browser tab is a poor home for it. Whatsie gives it a real window: it stays in your tray, tells you when a message arrives, opens your downloads where you expect them, and gets out of the way. It’s a thin, native shell — no Electron — so it starts fast and stays light.

Screenshots

WhatsApp Web running in the Whatsie window

Passcode lock screenAppearance settings
Privacy and permission controlsOne-click bug report
About and diagnostics

Features

Desktop integration

  • Native notifications with contact avatars.
  • System-tray icon with an unread badge, mute, and do-not-disturb.
  • Single instance with --profile for multiple accounts; autostart at login.
  • whatsapp: / wa.me links and a --new-chat command open straight into a chat.

The web experience, done right

  • Light / dark / follow-system theming, kept in step with WhatsApp Web.
  • Voice, video and screen-share calls (Wayland via the desktop portal), with a reliable full-screen exit hint.
  • A real downloads window with history; drag-and-drop and paste of attachments.
  • Zoom and interface scaling; optional smooth scrolling.
  • System-language spell check with suggestions.

Privacy & control

  • Per-site camera, microphone and location controls.
  • Privacy blur to hide message text and media until you hover.
  • A passcode app lock (PBKDF2) that covers every window and can lock on start, on hide, or after idle.
  • HTTP / SOCKS5 network proxy with authentication.

Honest about problems

  • A built-in Report a bug flow that pre-fills a GitHub issue with diagnostics — and the last crash, if there was one — while keeping your messages private.

Install

Linux

Get it from the Snap Store    Get it on Flathub

# Snap — any distro with snapd
sudo snap install whatsie

# Flatpak — from Flathub
flatpak install flathub com.ktechpit.whatsie

# Arch Linux (AUR) — builds from source
yay -S whatsie      # or: paru -S whatsie

AppImage and a self-contained .deb (Qt bundled, installs on any modern Debian/Ubuntu) are attached to the latest release. Make the AppImage executable and run it (chmod +x whatsie-*.AppImage); install the deb with sudo apt install ./whatsie_*_amd64.deb.

Windows (x64)

Download the installer or portable build from the latest release:

  • whatsie-<version>-x64.msi — installer (Start Menu + Desktop shortcuts, in-place upgrades)
  • whatsie-<version>-windows-x64.zip — portable, no install required

Windows 10/11, 64-bit; it bundles its own Qt runtime.

Spell check

Whatsie bundles dictionaries for several languages (English, German, Spanish, French, Italian, Russian). Turn it on and pick a language in Settings → Advanced → Spell check.

To add a language that isn't bundled, drop its Chromium <code>.bdic file into the dictionaries folder — the Open folder… button in that same settings section takes you straight there (then reopen the dialog to pick the language):

  • Snap: ~/snap/whatsie/current/.local/share/ktechpit/whatsie/qtwebengine_dictionaries/
  • Flatpak: ~/.var/app/com.ktechpit.whatsie/data/ktechpit/whatsie/qtwebengine_dictionaries/
  • Other: ~/.local/share/ktechpit/whatsie/qtwebengine_dictionaries/

.bdic is Chromium's compiled dictionary format. Convert a Hunspell .dic/.aff pair with the qwebengine_convert_dict tool that ships with Qt WebEngine, e.g. qwebengine_convert_dict fr_FR.dic fr-FR.bdic.

Build from source

Requires Qt 6.11 (the version shipped by the snap kf6-core24 runtime and the Flathub KDE runtime), CMake ≥ 3.21, and a C++20 compiler.

# Development build against the KDE Qt 6.11 snap SDK (works on any distro)
sudo snap install kde-qt6-core24-sdk kf6-core24
scripts/dev-build.sh --tests    # configure + build + run the test suite
scripts/dev-run.sh              # launch

# …or with a system Qt >= 6.11
cmake -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build -j
ctest --test-dir build --output-on-failure

Packagers can bundle only selected spell-check dictionaries with, e.g., -DWHATSIE_DICTIONARIES="en-US;de-DE" (empty — the default — bundles every Hunspell dictionary found in -DWHATSIE_HUNSPELL_DIR, /usr/share/hunspell).

Project layout

src/core      pure logic (settings, services) — Qt Core only, unit-tested
src/web       WebEngine profile/page/view, injected scripts, the JS↔C++ bridge
src/platform  OS backends behind interfaces (notifications, autostart, files, …)
src/ui        QtWidgets: main window, dialogs, tray, lock screen
src/app       Application object, CLI, single instance
tests/        Qt Test suites (unit + offscreen smoke)
snap/         snap packaging (built in CI)

Contributing

Found a bug? The fastest path is Menu → About → Report a bug…, which opens a pre-filled issue with the diagnostics already attached. Otherwise, open an issue or a pull request — the test suite runs with scripts/dev-build.sh --tests.

License

MIT © Keshav Bhatt

WhatsApp is a trademark of WhatsApp LLC. Whatsie is an independent client and is not affiliated with, endorsed by, or sponsored by WhatsApp or Meta.

qt-whatsapp
whatsapp
whatsapp-chat
whatsapp-client
whatsapp-for-linux
whatsapp-web
whatsapp-web-linux

keshavbhatt/whatsie

Feature rich WhatsApp Client for Desktop Linux

C++

3,447

517 commits

updated Sep 21, 2026

See the code

README

Whatsie — WhatsApp Web, in a real desktop app

Whatsie

WhatsApp Web, in a real desktop app.
Native notifications, a tray unread badge, calls and screen share, a real downloads manager, themes that follow the page, spell check, a proxy, and an optional app lock — lightweight and open source, built with Qt 6.

MIT license Qt 6.11 C++20 Linux


Why Whatsie

WhatsApp Web is great, but a browser tab is a poor home for it. Whatsie gives it a real window: it stays in your tray, tells you when a message arrives, opens your downloads where you expect them, and gets out of the way. It’s a thin, native shell — no Electron — so it starts fast and stays light.

Screenshots

WhatsApp Web running in the Whatsie window

Passcode lock screenAppearance settings
Privacy and permission controlsOne-click bug report
About and diagnostics

Features

Desktop integration

  • Native notifications with contact avatars.
  • System-tray icon with an unread badge, mute, and do-not-disturb.
  • Single instance with --profile for multiple accounts; autostart at login.
  • whatsapp: / wa.me links and a --new-chat command open straight into a chat.

The web experience, done right

  • Light / dark / follow-system theming, kept in step with WhatsApp Web.
  • Voice, video and screen-share calls (Wayland via the desktop portal), with a reliable full-screen exit hint.
  • A real downloads window with history; drag-and-drop and paste of attachments.
  • Zoom and interface scaling; optional smooth scrolling.
  • System-language spell check with suggestions.

Privacy & control

  • Per-site camera, microphone and location controls.
  • Privacy blur to hide message text and media until you hover.
  • A passcode app lock (PBKDF2) that covers every window and can lock on start, on hide, or after idle.
  • HTTP / SOCKS5 network proxy with authentication.

Honest about problems

  • A built-in Report a bug flow that pre-fills a GitHub issue with diagnostics — and the last crash, if there was one — while keeping your messages private.

Install

Linux

Get it from the Snap Store    Get it on Flathub

# Snap — any distro with snapd
sudo snap install whatsie

# Flatpak — from Flathub
flatpak install flathub com.ktechpit.whatsie

# Arch Linux (AUR) — builds from source
yay -S whatsie      # or: paru -S whatsie

AppImage and a self-contained .deb (Qt bundled, installs on any modern Debian/Ubuntu) are attached to the latest release. Make the AppImage executable and run it (chmod +x whatsie-*.AppImage); install the deb with sudo apt install ./whatsie_*_amd64.deb.

Windows (x64)

Download the installer or portable build from the latest release:

  • whatsie-<version>-x64.msi — installer (Start Menu + Desktop shortcuts, in-place upgrades)
  • whatsie-<version>-windows-x64.zip — portable, no install required

Windows 10/11, 64-bit; it bundles its own Qt runtime.

Spell check

Whatsie bundles dictionaries for several languages (English, German, Spanish, French, Italian, Russian). Turn it on and pick a language in Settings → Advanced → Spell check.

To add a language that isn't bundled, drop its Chromium <code>.bdic file into the dictionaries folder — the Open folder… button in that same settings section takes you straight there (then reopen the dialog to pick the language):

  • Snap: ~/snap/whatsie/current/.local/share/ktechpit/whatsie/qtwebengine_dictionaries/
  • Flatpak: ~/.var/app/com.ktechpit.whatsie/data/ktechpit/whatsie/qtwebengine_dictionaries/
  • Other: ~/.local/share/ktechpit/whatsie/qtwebengine_dictionaries/

.bdic is Chromium's compiled dictionary format. Convert a Hunspell .dic/.aff pair with the qwebengine_convert_dict tool that ships with Qt WebEngine, e.g. qwebengine_convert_dict fr_FR.dic fr-FR.bdic.

Build from source

Requires Qt 6.11 (the version shipped by the snap kf6-core24 runtime and the Flathub KDE runtime), CMake ≥ 3.21, and a C++20 compiler.

# Development build against the KDE Qt 6.11 snap SDK (works on any distro)
sudo snap install kde-qt6-core24-sdk kf6-core24
scripts/dev-build.sh --tests    # configure + build + run the test suite
scripts/dev-run.sh              # launch

# …or with a system Qt >= 6.11
cmake -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build -j
ctest --test-dir build --output-on-failure

Packagers can bundle only selected spell-check dictionaries with, e.g., -DWHATSIE_DICTIONARIES="en-US;de-DE" (empty — the default — bundles every Hunspell dictionary found in -DWHATSIE_HUNSPELL_DIR, /usr/share/hunspell).

Project layout

src/core      pure logic (settings, services) — Qt Core only, unit-tested
src/web       WebEngine profile/page/view, injected scripts, the JS↔C++ bridge
src/platform  OS backends behind interfaces (notifications, autostart, files, …)
src/ui        QtWidgets: main window, dialogs, tray, lock screen
src/app       Application object, CLI, single instance
tests/        Qt Test suites (unit + offscreen smoke)
snap/         snap packaging (built in CI)

Contributing

Found a bug? The fastest path is Menu → About → Report a bug…, which opens a pre-filled issue with the diagnostics already attached. Otherwise, open an issue or a pull request — the test suite runs with scripts/dev-build.sh --tests.

License

MIT © Keshav Bhatt

WhatsApp is a trademark of WhatsApp LLC. Whatsie is an independent client and is not affiliated with, endorsed by, or sponsored by WhatsApp or Meta.

qt-whatsapp
whatsapp
whatsapp-chat
whatsapp-client
whatsapp-for-linux
whatsapp-web
whatsapp-web-linux

Significant stargazers

William Desportes

269 followers · starred Jun 2026

Orivej Desh

69 followers · starred Aug 2022

Puneeth Chaganti

386 followers · starred Jun 2025

Bjørn Forsman

45 followers · starred Mar 2025