Skip to content

kristofferR/Carrier

Repository files navigation

Carrier app icon

Carrier for Messenger

Facebook Messenger without the Facebook clutter.
A free, open-source desktop app for macOS, Windows, and Linux.

Latest release CI status MIT license

Download


Download for macOS
Apple Silicon · .dmg

Download for Windows
64-bit installer · .exe

Download for Linux
AppImage · x64

Intel Mac, Windows ARM, Linux ARM, portable Windows, .deb, or .rpm? See every download →

brew install --cask kristofferR/tap/carrier


Meta discontinued its Messenger desktop apps, then retired the standalone messenger.com experience. Carrier brings the focused desktop experience back: it opens facebook.com/messages in a dedicated window and removes Facebook's Feed, Reels, Marketplace, global search, and other surrounding chrome.

Carrier uses the operating system's WebView through Tauri, rather than shipping another copy of Chromium. The macOS and Windows installers are roughly 2–3.5 MB, while still providing native notifications, unread badges, tray integration, global shortcuts, and verified automatic updates.

Why Carrier?

  • Just your conversations — no Feed, Reels, Marketplace, or browser tabs.
  • Small by design — one system WebView instead of a bundled browser engine.
  • Real desktop notifications — including background delivery, notification sound controls, hidden previews, and scheduled do not disturb.
  • At home on your desktop — unread badges, tray or menu-bar operation, start-on-login, a global show/hide hotkey, and remembered window placement.
  • Made for focus and screen sharing — force light or dark mode, adjust page zoom, use system emoji, or temporarily hide names and avatars.
  • Useful Messenger extras — fast conversation navigation, better media viewing, richer context menus, and external links that bypass Facebook's tracking redirect.

Features

Desktop integration

  • Native notifications with sender avatars and optional hidden previews
  • Notification sound controls and a daily do-not-disturb schedule
  • Unread count on the Dock or taskbar icon
  • Tray support, start to tray, start on login, and hide on close
  • Optional system-wide Cmd/Ctrl+Shift+M hotkey
  • Menu-bar-only mode on macOS
  • Always on top and experimental multi-window support
  • Window size and position restored between launches

Appearance and focus

  • Forced light or dark theme, or follow the operating system
  • Adjustable and persistent page zoom
  • Optional system emoji instead of Facebook's emoji sprites
  • Hide names and avatars for screen sharing or working in public
  • Optional top application menu on Windows and Linux

Messenger tools

  • Jump directly to conversations and cycle through them from the keyboard
  • Toggle the conversation information sidebar
  • Search conversations or the active thread without reaching for the mouse
  • Double-click photos and videos for zooming and panning
  • Copy, download, and open message media from richer right-click menus
  • Copy images that Messenger exposes only as in-page blobs
  • Voice and video call permissions
  • Spell-check controls

Maintenance

  • Verified automatic updates via GitHub Releases
  • A diagnostics log for Messenger markup changes and integration failures
  • A dedicated Settings window, available with F3
Keyboard shortcuts
Shortcut Action
Cmd/Ctrl+19 Jump to a conversation
Ctrl+Tab / Ctrl+Shift+Tab Next / previous conversation
Cmd/Ctrl+] / 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 the active conversation
Cmd/Ctrl+L Focus the message input
Cmd/Ctrl+E / G / T Emoji / GIF / attach files
Cmd/Ctrl+Shift+I Toggle conversation information
Cmd/Ctrl+Shift+H Hide names and avatars
Cmd/Ctrl+Shift+M Show or hide Carrier globally, when enabled
Cmd/Ctrl+- / = / 0 Zoom out / in / reset
F2 / F3 / F5 Check for updates / Settings / reload

Privacy and trust

Carrier does not add app analytics. Messenger content is processed locally when needed for features such as native notifications, unread badges, and privacy blur. Messenger itself still communicates with Meta, and update checks use GitHub Releases.

  • Known Facebook analytics and logging requests can be blocked without blocking messaging (Settings → Advanced → Block Facebook telemetry, enabled by default).
  • Off-site links open in your normal browser; Facebook tracking redirects are removed first.
  • Automatic updates are cryptographically verified before installation.
  • macOS downloads are Developer ID signed and notarized by Apple.
  • The complete source is available here under the MIT license.

Carrier is a privacy-respecting client for Facebook Messenger, not a private replacement for the Messenger service. Meta's own data handling still applies.

Install options

The primary downloads above cover Apple Silicon macOS, x64 Windows, and x64 Linux. The latest release also includes:

Platform Architectures Packages
macOS Apple Silicon, Intel .dmg
Windows x64, ARM64 Installer and portable .zip
Linux x64, ARM64 .deb, .rpm, and AppImage

The macOS and Windows installers are about 2–3.5 MB. Linux .deb and .rpm packages are about 4 MB; the self-contained AppImage is around 90 MB because it bundles WebKitGTK instead of using the system package.

Carrier loads facebook.com/messages, so you need an account that Meta permits to sign in there. The macOS build supports macOS 10.15 and later.

Homebrew

The same cask token works on macOS and Linux:

brew install --cask kristofferR/tap/carrier

On macOS, if Carrier.app is already present in /Applications, adopt it with:

brew install --cask --adopt kristofferR/tap/carrier

How it works

The Rust shell opens the official Messenger web experience in the operating system's WebView. At document start, Carrier injects a focused stylesheet and typed feature modules that remove Facebook chrome and add desktop behavior.

Because Facebook is a remote origin, page features communicate with the native shell through narrowly scoped Tauri plugins and events. Off-site navigation is routed to the default browser, downloads are restricted to expected media, and the window hides to the tray when configured.

Messenger is a remote service and its markup changes occasionally. Carrier logs integration failures locally and ships fixes through its signed updater.

Build from source

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
bun run build

The injected scripts are authored in TypeScript under inject/src/ and bundled into single document-start scripts with bun run build:inject.

Support and contributing

If Facebook changed something, a feature stopped working, or you have an idea, open an issue. Include your operating system and Carrier version when reporting a problem.

If Carrier is useful to you, consider starring the repository. It helps other people looking for a Messenger desktop client find the project.

Disclaimer

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 changes the presentation locally in your own window.

License

MIT © 2026 kristofferR

About

Free, open-source Facebook Messenger desktop app for macOS, Windows & Linux - no Feed, Reels, or Facebook clutter. Tiny Tauri build with native notifications and auto-updates.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors