Messenger X is a lightweight, cross-platform desktop client for Facebook Messenger built with Tauri v2 and Rust. It provides native desktop notifications, system tray integration, offline mode with cached snapshots, auto-updates, and a clean WebView-powered interface — filling the gap left by Facebook discontinuing the official Messenger desktop app.
README
Messenger X
A lightweight, cross-platform desktop client for Facebook Messenger
> Why? — Facebook discontinued the official Messenger desktop app. Browser tabs lack native OS integration. Messenger X fills the gap — native notifications, dock badges, persistent sessions, and offline support in a ~8 MB binary (vs ~120 MB Electron alternatives).
📥 Downloads
Package managers
# macOS — Homebrew (custom tap, not in official homebrew/cask)
brew tap jimicze/tap
brew install --cask messenger-x
# Windows — winget
winget install jimicze.MessengerX
🌐 Native WebView Client — Loads messenger.com in a system WebView — no bundled browser engine. Uses your OS's native web renderer for minimal resource usage.
🔔 Native Notifications — Web notifications are intercepted and forwarded to your OS notification system. Works with notification centers on all platforms.
📞 Voice & Video Calls — Full voice and video call support for direct messages, including end-to-end encrypted (e2ee) calls. Calls open in a native app window powered by WebRTC. Works on macOS, Windows, and Linux.
🔢 Unread Badge — Parses the unread count from the page title and displays it on your dock/taskbar icon and system tray tooltip.
🔐 Persistent Sessions — Your login session persists across app restarts. Toggle "Stay logged in" in Settings, or log out and wipe all data with one click.
📴 Offline Mode — Automatic HTML snapshots every 60 seconds. When you go offline, the app shows cached content with a non-intrusive banner — no blank screens.
🔄 Auto-Updates — Built-in update checker in Settings. One-click download, install, and restart — no manual re-downloading needed.
🌍 Localization — Automatically detects your system language. Currently supports English and Czech, with easy extensibility for more languages.
🔍 Zoom Controls — Zoom from 50% to 300%. Zoom level persists across sessions.
🪟 Window Management — Window size and position are saved and restored. Default: 1200×800, minimum: 400×300.
🔗 Smart Link Handling — Facebook/Messenger URLs stay in-app. External links open in your default system browser automatically.
Platform notes — notifications & startup
Platform
Notification system
Requirements / notes
macOS
UNUserNotificationCenter
Grant permission in System Settings → Notifications → Messenger X. Notification sound plays on delivery.
Windows
WinRT toast
Grant permission in Settings → System → Notifications. Focus Assist / Do Not Disturb suppresses toasts while active.
Linux (GNOME)
libnotify (notify-send) with plugin fallback
Install libnotify-bin for best results. MPRIS media widget is suppressed automatically.
Linux (KDE / XFCE / other)
Native notification plugin
Works out of the box on most desktop environments.
Windows startup note: Messenger X reads your Windows proxy settings from the registry and
passes the correct flag to WebView2, so the 20–30 second blank-window delay that occurred on
networks without a proxy server is fully eliminated as of v1.3.38.
Releases are automated via GitHub Actions. To create a new release:
# Tag and push
git tag v1.0.0
git push origin v1.0.0
This triggers builds for 6 parallel jobs (macOS arm64 + x64, Windows x64 + arm64, Linux x64 + arm64), signs update artifacts, publishes latest.json for auto-updates, bumps the Homebrew tap, and submits a winget PR — all automatically.
🛡️ Security & Privacy
No data collection — Messenger X doesn't phone home or collect any telemetry
No API reverse-engineering — simply wraps the official messenger.com web interface
Local persistence only — sessions, settings, and cached snapshots are stored in your OS app data directory
Navigation allowlist — only messenger.com, facebook.com, fbcdn.net, and fbsbx.com are loaded in-app; everything else opens in your system browser
Hardened runtime (macOS) enabled for Gatekeeper compatibility
Windows code signing — provided by SignPath Foundation (free code signing for open-source projects)
Voice & video calls — Native call windows for DMs (voice + video, regular and e2ee)
Code signing — Apple notarization (macOS) + Windows Authenticode
Package managers — winget (winget install jimicze.MessengerX) + Homebrew custom tap (brew tap jimicze/tap && brew install --cask messenger-x, not in official homebrew/cask)
Cross-platform testing (Windows, Linux Mint, Fedora, Arch)
Keyboard shortcuts customization
Multiple account support
🤝 Contributing
Contributions are welcome! Please:
Fork the repository
Create a feature branch (git checkout -b feature/amazing-feature)
Ensure cargo clippy and npx tsc --noEmit pass
Commit your changes
Open a Pull Request
📄 License
This project is licensed under the MIT License — see the LICENSE file for details.