Privacy-first multi-platform social hub for Instagram, Messenger, Facebook & X. Native WebView with Tauri 2.x + Rust. 10x smaller than Electron. Sessions isolated. Zero persistence. Telemetry blocked.
Access your social platforms in a lightweight desktop app with ironclad privacy: isolated sessions per platform, automatic data wipe on quit, and aggressive tracking blocks.
messenger-desktop is now Social Hub β a privacy-first all-in-one client for 4 platforms:
- πΈ Instagram β instagram.com/direct/inbox/
- π¬ Messenger β messenger.com (existing)
- π₯ Facebook β facebook.com/messages/
- π X (Twitter) β x.com/messages
Launch the app and pick your platform from the new dark selector UI.
- Session isolation β each platform's data stored separately under `app_data_dir/sessions/<platform>/`
- Zero persistence β all cookies and localStorage cleared on app quit
- Telemetry blocking β CSP blocks doubleclick.net, google-analytics.com, analytics.facebook.com, pixel.facebook.com
- Platform-specific CSP β tight Content Security Policy per platform, only allows required CDNs
- New Rust modules: `platform_manager` + `privacy_engine`
- 63 unit tests added (all pass)
- Platform-aware injection guard (injection only runs on real platform domains, not selector)
- Injection guard prevents cross-platform contamination
No migration needed. On first launch you'll see the platform selector. Previously saved Messenger sessions are not affected β Messenger remains the default if you skip the selector.
Full Changelog: https://github.com/wickedtech/messenger-desktop/compare/v0.1.4...v0.2.0
- π Multi-Platform β Instagram, Messenger, Facebook, X in one secure app
- π Session Isolation β Each platform's data fully isolated (no cross-contamination)
- πͺ Zero Persistence β All cookies/localStorage cleared on quit
- π‘οΈ Telemetry Blocking β CSP blocks doubleclick.net, google-analytics.com, pixel.facebook.com
- π Platform-specific CSP β Tight Content Security Policy tailored per platform
- π Native Notifications - Instant system alerts for new messages
- π System Tray - Quick access with unread count badge
- π― Keyboard Shortcuts - Global hotkeys (
Ctrl+Shift+Mtoggle) - π Themes - Dark, light, system sync
- π Privacy Guard - Block typing indicators, read receipts, seen status
- π₯ Multi-Account - Seamless account switching
- π Native Spellcheck - Real-time correction
- π₯ Media Access - Camera/mic for calls
- π Auto-Updater - Frictionless updates
- π Ultra-Lightweight - ~10MB install, ~200MB RAM
| Icon | Platform | Entry Point |
|---|---|---|
| πΈ | instagram.com/direct/inbox/ | |
| π¬ | Messenger | messenger.com |
| π₯ | facebook.com/messages/ | |
| π | X (Twitter) | x.com/messages |
On launch: Dark selector UI β Pick platform β Secure session loads.
# Clone and install
git clone https://github.com/wickedtech/messenger-desktop.git
cd messenger-desktop
npm install
# Dev mode (hot reload)
npm run tauri dev
# Tests
cd src-tauri && cargo test --all
# Production build
cd .. && npm run tauri buildBuilds in src-tauri/target/release/bundle/.
See Build from Source.
| Platform | Size |
|---|---|
| Windows x64 | ~10 MB |
| macOS (ARM/x64) | ~12 MB |
| Linux (AppImage/DEB/RPM) | ~11 MB |
Homebrew
brew install --cask messenger-desktopSnap
sudo snap install messenger-desktopAUR
paru -S messenger-desktop- Rust 1.70+
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Node 18+/20+
nvm install 20 && nvm use 20
- Linux deps
# Ubuntu sudo apt install libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
git clone https://github.com/wickedtech/messenger-desktop.git
cd messenger-desktop
npm install
npm run tauri dev # dev
npm run tauri build # prodApp data: ~/.config/social-hub/ (Linux), etc. (adapt name?)
Keep as messenger-desktop for now.
Settings: Theme, Privacy, Notifications, Shortcuts, Accounts, Startup.
| Shortcut | Action |
|---|---|
Ctrl+Shift+M |
Toggle window (global) |
Ctrl+N |
New conversation |
Ctrl+, |
Settings |
Ctrl+1-9 |
Switch account |
Ctrl+Tab |
Next chat |
Ctrl+Shift+Tab |
Prev chat |
Ctrl+W |
Close chat |
Escape |
Dismiss |
Ctrl+Q |
Quit |
macOS: Cmd instead of Ctrl.
Core differentiator: Privacy by design.
- Session Isolation β Platforms siloed in
sessions/<platform>/ - Zero Persistence β Data nuked on quit
- CSP Lockdown β Per-platform policy, blocks trackers
- Telemetry Block β No doubleclick, GA, FB pixel
- Injection Guard β Scripts only on legit domains
- Network Blocks β Typing indicators, read receipts, seen status intercepted
Network-layer interception keeps UI native.
WebView (Platform URL)
β JS Injection (guard + utils)
Tauri IPC
Rust Core:
- PlatformManager ββ> Selector UI β URL/Nav
- PrivacyEngine ββ> Sessions/CSP/Clear
- Accounts / Tray / Notifs / etc.
Platform Layer (win/mac/linux)
- Selector UI β Launch pick platform
- PlatformManager β State/nav
- PrivacyEngine β Isolate/secure/clear
- WebView β Loads platform
- Backend β Native integrations
| Module | Description |
|---|---|
platform_manager |
Multi-platform support, URL mapping, persistence |
privacy_engine |
Session isolation, CSP, telemetry blocking |
accounts |
Multi-account management |
commands |
Tauri handlers |
drag_drop |
File support |
media |
Cam/mic perms |
notifications |
System alerts |
privacy |
Legacy guards |
shortcuts |
Global keys |
spellcheck |
Native checking |
theme_manager |
Themes |
tray |
Tray icon |
updater |
Updates |
window_manager |
Window control |
CONTRIBUTING.md humans, CONTRIBUTING-AGENTS.md agents.
Fork β branch β test β PR.
[Keep entire section as-is from current]
| Feature | Social Hub | Caprine (Electron) |
|---|---|---|
| Size | 10 MB | 100 MB |
| RAM | 200 MB | 800 MB |
| Multi-Platform | Instagram/Mess/ FB/X | Messenger only |
| Privacy | Engine (isolate/zero-persist/CSP) | Basic |
| Sessions | Isolated/zero-persist | Shared/persistent |
| Themes | Yes | Yes |
| Multi-Account | Yes | No |
| Updater | Yes | Yes |
MIT β LICENSE
Tauri, Caprine, platforms.
Issues, Discussions, ARCHITECTURE.md
Built by wickedtech