Getting Started & Shortcuts
Relevant source files
The following files were used as context for generating this wiki page:
Messenger Unleashed is an Electron-based desktop wrapper for Facebook Messenger that enhances the standard web experience with native desktop features, privacy controls, and power-user tools. It operates by loading messenger.com within a BrowserWindow and applying various modifications via CSS injection, JavaScript execution, and custom Electron API integrations.
Sources: CLAUDE.md:5-9, src/main/index.ts:1210-1216
This guide provides a technical overview of how to set up the development environment, navigate the application's unique features, and utilize the keyboard shortcut system to improve productivity.
Development Setup
The project uses bun as the primary package manager and runtime. The architecture is split into a main process, responsible for window management and app logic, and a preload bridge for security and DOM manipulation.
Installation & Commands
To get started with development, follow these standard commands:
| Command | Description |
|---|---|
bun install | Installs project dependencies using the authoritative bun.lock file. |
bun run dev | Builds TypeScript files and launches the app in development mode. |
bun run build | Packages the application for the current host platform. |
bun run build:mac | Specific build target for macOS artifacts. |
bun run build:win | Specific build target for Windows artifacts. |
Sources: CLAUDE.md:13-25, AGENTS.md:12-16, package.json:9-16
Build Process Flow
The build process involves compiling TypeScript for the main process and bundling the preload scripts before launching the Electron wrapper.
Sources: package.json:9-16, AGENTS.md:12-16
Core Shortcuts and Navigation
Messenger Unleashed implements a robust navigation system designed for speed, allowing users to switch conversations and toggle modes without leaving the keyboard.
Built-in Shortcuts
The following table summarizes the primary keyboard shortcuts integrated into the application:
| Action | Shortcut (Mac) | Shortcut (Windows/Linux) | Source File |
|---|---|---|---|
| Search Messenger | Cmd + K | Ctrl + K | src/main/index.ts:1099 |
| Next Chat | Cmd + ↓ | Ctrl + ↓ | src/main/index.ts:1108 |
| Previous Chat | Cmd + ↑ | Ctrl + ↑ | src/main/index.ts:1104 |
| Toggle Focus Mode | Cmd + Shift + F | Ctrl + Shift + F | src/main/index.ts:1010 |
| Picture-in-Picture | Cmd + Shift + P | Ctrl + Shift + P | src/main/index.ts:1083 |
| DND Toggle | Cmd + Shift + D | Ctrl + Shift + D | src/main/index.ts:1088 |
| Settings | Cmd + , | Ctrl + , | src/main/index.ts:912 |
Conversation Navigation Logic
The application uses executeJavaScript to programmatically navigate the Messenger DOM by identifying chat list elements and triggering click events on the next or previous thread.
Power User Features
Quick Replies
Users can define custom text templates mapped to number keys. These are executed via CmdOrCtrl + Shift + [Key]. The system uses a modern InputEvent approach to trigger React state updates within the Messenger web app, ensuring the message is properly registered before simulating an Enter key press.
Sources: src/main/index.ts:474-508, src/preload/settings-modal.ts:468-475
Customization System
The application supports extensive UI modifications through several layers:
- Themes: Predefined CSS blocks for OLED, Nord, Dracula, and more.
- Custom CSS: User-provided CSS injected via
webContents.send("apply-custom-css", css). - Modern/Glass Look: Premium UI overrides that apply glassmorphism and floating panel aesthetics.
Sources: src/main/index.ts:705-833, src/preload/settings-modal.ts:311-344
Configuration Management
Settings are persisted using electron-store and managed through a custom settings modal injected into the renderer process.
The application features a "Quiet Hours" system that automatically enables Do Not Disturb based on a user-defined schedule. This is monitored by a 60-second timer in the main process that parses time inputs (e.g., "10:00 PM") into minutes since midnight for comparison.
Sources: src/main/index.ts:384-434, src/preload/settings-modal.ts:430-445
Conclusion
Messenger Unleashed provides a high degree of control over the Messenger experience through its comprehensive shortcut system and deep integration with the Electron environment. By combining global shortcuts, programmed DOM interaction, and a flexible settings architecture, it allows power users to tailor the chat experience to their specific productivity and privacy needs.