A tiny, distraction-free desktop client for Facebook Messenger.
Built with Tauri v2 — runs on macOS, Windows, and Linux.
|
Download for macOS Apple Silicon · .dmg |
Download for Windows 64-bit installer · .exe |
Download for Linux AppImage · x64 |
Intel Mac, Windows ARM, Linux ARM, .deb/.rpm?
See all files →
Meta discontinued the official Messenger desktop app, and the standalone
messenger.com site was shut down in April 2026. Carrier fills the gap: it wraps
the Messenger web app (facebook.com/messages) in a small native window and
strips away the surrounding Facebook chrome.
Built with Tauri (Rust + the OS's native WebView) instead of a bundled Chromium, so the download is tiny — the macOS and Windows installers are under 3 MB (vs. 100 MB+ for an Electron app) — and it idles on a fraction of an Electron app's RAM. The macOS build is Developer-ID signed and notarized.
- Distraction-free — a stylesheet hides Facebook's banner, global search, and Feed/Marketplace/Reels navigation, leaving just your conversations.
- Lightweight & native — one WebView window, no bundled Chromium.
- Native notifications — new messages raise real OS notifications even when Carrier is in the background.
- Notification sound & do not disturb — deliver notifications silently, or suppress them entirely on a daily schedule (overnight ranges work).
- Unread badge — the unread count appears on the Dock / taskbar icon.
- Force light / dark theme — keep Messenger (and the window chrome, including the macOS title bar) light or dark regardless of the system theme, or follow the system.
- System emoji — optionally render message emoji with your OS emoji font instead of Facebook's emoji sprites.
- Jump to a conversation — Cmd/Ctrl+1–9 jumps to the Nth chat in the list.
- Toggle conversation info — show or hide Messenger's conversation-info sidebar (Cmd/Ctrl+Shift+I).
- Global hotkey — optional system-wide Cmd/Ctrl+Shift+M that shows or hides Carrier from anywhere (off by default).
- Menu-bar mode (macOS) — optionally hide the Dock icon and live in the menu bar; click the tray icon to toggle the window.
- Stays out of the way — closing hides to the tray, so you keep getting messages; a tray click brings it back (and hides it again).
- Links open in your browser — anything that isn't Messenger opens in your
real default browser (Facebook's
l.phptracking redirects are stripped first). Google/Apple/Microsoft logins still work in-app. - Auto-updates — verified, signed updates via the Tauri updater (F2, or Settings → Check for updates).
- Right-click menus — copy/download/open images & videos, copy/open links. Copying works even for images the page only renders as blobs.
- Image & video viewer — double-click a photo or video for a zoom/pan overlay (wheel to zoom, drag or arrow keys to pan, Esc to close).
- Calls work — camera/microphone are requested for Messenger voice & video.
- Remembers its window — size and position persist between launches. <<<<<<< HEAD
- Settings window (F3) — theme, page zoom, unread badge, hide names & avatars, system emoji, menu-bar mode, always-on-top, tray, ||||||| 7896313
- Settings window (F3) — theme, unread badge, hide names & avatars, system emoji, menu-bar mode, always-on-top, tray, start-to-tray, start on login, hide-on-close, spell-check, and experimental multi-window. =======
- Settings window (F3) — theme, unread badge, hide names & <<<<<<< HEAD avatars, system emoji, menu-bar mode, always-on-top, tray, start-to-tray, start on login, hide-on-close, spell-check, and experimental multi-window.
- Diagnostics log — warnings and page-integration failures (e.g. a Messenger markup change breaking a feature) are logged to a file: Settings → Advanced → Open log folder. ||||||| 8c7c5a3 avatars, system emoji, menu-bar mode, always-on-top, tray, start-to-tray, start on login, hide-on-close, spell-check, and experimental multi-window. ======= avatars, system emoji, menu-bar mode, always-on-top, global hotkey, tray,
origin/main start-to-tray, start on login, hide-on-close, spell-check, and experimental multi-window. origin/main
- Cmd/Ctrl+1–9 — jump to the Nth conversation
- Ctrl+Tab/Ctrl+Shift+Tab (or Cmd/Ctrl+]/[) — next / previous conversation
- Cmd/Ctrl+Shift+N — new conversation (Cmd/Ctrl+N — new window)
- Cmd/Ctrl+K — search conversations
- Cmd/Ctrl+F — search in conversation
- Cmd/Ctrl+L — focus the message input
- Cmd/Ctrl+E/G/T — emoji / GIF / attach files
- Cmd/Ctrl+Shift+I — toggle conversation information <<<<<<< HEAD
- Cmd/Ctrl+Shift+N — hide names & avatars
- Cmd/Ctrl+Shift+M — show or hide Carrier from anywhere (system-wide; off by default) ||||||| 8c7c5a3
- Cmd/Ctrl+Shift+N — hide names & avatars =======
- Cmd/Ctrl+Shift+H — hide names & avatars
origin/main
- F2 check for updates · F3 settings · F5/Cmd-R reload
- Cmd+-/=/0 — zoom out / in / reset (also Settings → Page zoom; the level persists across restarts)
Grab the installer for your platform from the Download box above or the Releases page. The macOS build is signed and notarized, so it opens normally — no right-click-Open needed.
Requires Rust, Bun, and the Tauri prerequisites for your OS.
git clone https://github.com/kristofferR/carrier.git
cd carrier
bun install
bun run dev # run in development
bun run build # produce installers in src-tauri/target/release/bundle/The Rust shell (src-tauri/src/lib.rs) opens one WebView window at
https://www.facebook.com/messages with a modern browser user-agent, then injects
at document start:
inject/messenger.css— hides the Facebook chrome (carefully keeping the media-viewer controls).inject/messenger.js— keyboard shortcuts, page zoom, the image/video viewer, notifications, the unread badge, theme forcing, and the adaptive context menu.
Because Facebook is a remote origin, page features reach the backend through Tauri plugins (opener, notification) and core events rather than custom commands. Off-site navigation is routed to the default browser, and the window hides to the tray on close.
Carrier ships with the Tauri updater wired up: it checks
releases/latest/download/latest.json and can download & install a verified
(minisign-signed) update — press F2 or use Settings → Check for
updates.
By using the system's native WebView through Tauri instead of bundling a full browser engine, Carrier stays small and light on system resources:
| Carrier | Official Messenger Desktop | Caprine | |
|---|---|---|---|
| Status | ✅ Active | ❌ Discontinued | |
| Engine | System WebView (Tauri) | Electron | Electron |
| Installer size | ~3 MB | ~100+ MB | ~100 MB |
| CPU / RAM usage | Low | High | High |
| Interface | Chat only, FB chrome stripped | Chat only | Custom UI |
The Linux .deb/.rpm are ~4 MB; the self-contained
.AppImage is larger only because it bundles WebKitGTK that the
.deb/.rpm take from the system.
Carrier is an unofficial, independent project. It is not affiliated with, endorsed by, or sponsored by Meta Platforms, Inc. "Facebook" and "Messenger" are trademarks of their respective owners. Carrier does not modify Facebook's servers or data; it only restyles the page locally in your own window.
MIT © 2026 kristofferR