Unofficial WhatsApp desktop wrapper for Linux, built with Electron and packaged for native distribution.
It provides a dedicated desktop window for WhatsApp Web with Linux-friendly packaging, tray integration, native notifications, persistent settings, and a small set of quality-of-life desktop features.
This project is unofficial and is not affiliated with, endorsed by, or sponsored by WhatsApp or Meta.
WhatsApp and its related names, marks, and logos are trademarks of their respective owners. This repository only packages the web client experience into a Linux desktop wrapper and does not claim ownership of the WhatsApp service or brand.
- Native Linux desktop app wrapper around WhatsApp Web
.deband AppImage release artifacts- Tray icon with unread-state support
- Native notifications
- Persistent window and app settings
- Download handling with save dialog and progress feedback
- In-app zoom controls and find-in-page support
- Spell checking and context menu integration
- Auto-update support via GitHub Releases for packaged builds
- Wayland-oriented WebRTC flags for camera, microphone, and calls support
Screenshots can be added here before the public release once the final visual presentation is locked in.
- Linux
- Node.js 20 or newer
- npm 9 or newer
chmod +x whatsapp-desktop-linux-*.AppImage
./whatsapp-desktop-linux-*.AppImageThe AppImage runs without installation. On some desktop environments it may integrate automatically; on others it may need to be launched once before showing up in the application menu.
sudo dpkg -i whatsapp-desktop-linux-*.deb
sudo apt-get install -fThe Debian package installs the desktop launcher, icon metadata, and system integration entries.
git clone https://github.com/jgomezbau/whatsapp-desktop-linux.git
cd whatsapp-desktop-linux
npm install
npm startTo launch Electron with the main-process inspector enabled:
npm run devBuild all configured Linux artifacts:
npm run build:allBuild only AppImage:
npm run build:appimageBuild only Debian package:
npm run build:debGenerated artifacts are written to dist/.
The current release configuration is validated for Linux x64 and produces:
whatsapp-desktop-linux-<version>-x64.AppImagewhatsapp-desktop-linux-<version>-x64.deb
whatsapp-desktop-linux/
├── resources/
│ ├── icons/
│ │ ├── icon-unread.png
│ │ └── icon.png
│ └── whatsapp-desktop.desktop
├── src/
│ ├── main/
│ │ ├── assets.js
│ │ ├── ipc.js
│ │ ├── main.js
│ │ ├── menu.js
│ │ ├── store.js
│ │ ├── tray.js
│ │ ├── updater.js
│ │ └── windows.js
│ ├── preload/
│ │ └── preload.js
│ └── renderer/
│ └── loading.html
├── CHANGELOG.md
├── package.json
└── README.md
- Runtime tray and notification icons are sourced from
resources/icons. - The repository no longer keeps a Windows
.icofile because the current public release scope is Linux-only and the file was not used by the build. resources/whatsapp-desktop.desktopdocuments the intended desktop entry metadata for Linux packaging and AppImage integration.- Debian packaging includes portal and tray-related dependencies to improve desktop integration on common Linux environments.
Call support depends on WhatsApp Web capabilities and account availability. If the call buttons do not appear, check that the relevant WhatsApp Web features are enabled for your account and confirm that camera and microphone permissions are available at the OS level.
On Wayland-based systems, xdg-desktop-portal support is especially important for media-device access.
- Verify system permissions for camera and microphone
- Make sure
xdg-desktop-portalis installed and running - On Wayland, confirm PipeWire is available
- Restart the app completely after changing portal or device permissions
- Disable hardware acceleration from the app settings
- Restart the application after changing the setting
- Launch it once manually
- Check whether your desktop environment supports AppImage integration automatically
- Do not remove the app's user data directory between sessions
Issues and pull requests are welcome. When contributing:
- keep changes focused
- preserve current user-facing behavior unless a fix is required
- update documentation when packaging, assets, or release behavior changes
This project is licensed under the MIT License.