BluePill

Native Qt6 C++ / QML iMessage Client for Linux & Zero-Electron macOS Relay Server

< 35 MB
Linux RAM
< 15 MB
macOS RAM
200 ms
Cold Startup
0
Electron Bloat
Native
Wayland / SSH
BluePill Linux Client Interface

Why We Built BluePill: Escaping Electron Bloat

For engineers, Linux desktop users, and power enthusiasts, staying connected to Apple ecosystem communication has historically required heavy Electron or Flutter bridges like BlueBubbles. While functional, BlueBubbles carries a staggering footprint: 400 MB to 700 MB of RAM, sluggish startup times, choppy scrolling, and frequent sync stalls when processing multi-gigabyte message databases.

BluePill was designed from first principles to be the uncompromising, high-performance alternative: a compiled native Qt6 C++ / QML Linux client paired with an ultra-lean, native Python macOS relay service that directly interfaces with Apple's chat.db SQLite engine.

Feature / Metric BlueBubbles BluePill v1.1.0
Desktop Architecture Electron / Chromium / Node.js Compiled Qt6 C++20 / QML
Desktop Client Memory 450 MB – 800 MB RAM < 35 MB RAM
macOS Server Memory 350 MB – 650 MB RAM < 15 MB RAM
Launch Time 4 – 8 seconds Sub-second (200 ms)
Display Server XWayland emulation layer Native Wayland & X11 (Hyprland / Sway / GNOME)
Transport Protocol HTTP / Firebase Cloud Messaging Direct SSH Tunnel (ssh://) or HTTPS
Voice Memos Basic HTML5 audio element Interactive 28-Bar Amplitude Waveforms
Credential Storage Plaintext config / browser cookie Freedesktop SecretService (secret-tool)

Core Capabilities & Architecture

Native Qt6 QML Client

Hardware-accelerated rendering at 60fps with sub-second launch times. Native Wayland integration with Hyprland and Sway window rules.

Zero-Electron macOS Daemon

Ultra-lean headless Python server running natively on Intel & Apple Silicon (macOS Big Sur through macOS Tahoe). Uses under 15 MB RAM.

Direct SSH Transport

Connect securely over ssh://user@mac-host without exposing HTTP ports to the internet or relying on Firebase push servers.

Voice Memo Waveforms

28-bar amplitude waveform visualization extracted via FFmpeg with interactive scrub-to-seek and playback speed controls.

Expressive Send & Tapbacks

Full support for heart, thumbs up, haha, exclamation, and question reactions, plus message effects and scheduled future delivery.

Embedded /web UI

Full-featured web client hosted directly by the relay server with in-browser microphone recording and real-time event streaming.

Quick Installation

1. macOS Relay Server (Intel & Apple Silicon)

Install via Homebrew Tap and start the daemon:

# Install from Homebrew Tap
brew install nertwork/tap/bluepill

# Start the server interactively or configure LaunchAgent
bluepill-server --port 1234 --password my_secret_token

2. Linux Desktop Client (Arch / Omarchy)

Install the native client, CLI tools, and Waybar widget from the Arch User Repository:

yay -S bluepill

3. Build from Source (Ubuntu, Debian, Fedora, NixOS)

Compile cleanly on any modern Linux distribution:

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
sudo cmake --install build

Autonomous AI Agent Playbook

BluePill is built with full automation support. You can point autonomous AI agents (Claude Code, Gemini CLI, Cursor, OpenCode, Codex) at the repository and instruct them to deploy BluePill with zero manual intervention. See our deterministic playbooks:

Frequently Asked Questions

How do I run Apple iMessage on Linux?

BluePill connects your Linux desktop (Arch Linux, Ubuntu, Fedora, Debian) to your own Mac acting as a lightweight zero-Electron relay. The Linux desktop runs a native Qt6 client consuming under 35 MB RAM, connecting over end-to-end encrypted direct SSH tunnels or HTTPS.

How is BluePill different from BlueBubbles and OpenBubbles?

Unlike BlueBubbles (which requires a 500-700 MB Electron server on macOS and Electron/Flutter desktop clients), BluePill uses an ultra-lean native Python macOS relay (<15 MB RAM) reading chat.db via direct SQLite queries, paired with a compiled Qt6 C++ / QML native client for Linux. It launches in 200ms and uses negligible CPU.

Does BluePill require port forwarding or public cloud servers?

No! BluePill supports native direct SSH transport (ssh://user@mac-host). If you have SSH access to your Mac (via LAN, WireGuard, Tailscale, or Cloudflare Tunnel), BluePill establishes secure authenticated tunnels without opening public HTTP ports or relying on Google Firebase notifications.

Does BluePill support voice memos and tapback reactions?

Yes. BluePill features inline 28-bar voice memo waveforms with interactive scrubbing, hardware audio playback, all Apple tapback reactions (heart, thumbs up, haha, exclamation), expressive effects, scheduled messages, and Find My device queries.