Flare
A native Signal messenger client for Linux built with Rust and GTK4, providing a desktop interface to Signal without the Electron runtime.
Flare is a native Signal messenger client for Linux, written in Rust with GTK4
and libadwaita. It connects to Signal's servers using the presage Rust library
— a community-maintained Signal protocol implementation — and provides a desktop
messaging interface without shipping Electron or Node.js. Flare is not
affiliated with Signal Messenger LLC and requires an existing Signal account
registered on a phone, which is then linked to the desktop client via QR code.
Features
- Send and receive Signal messages — full text messaging in individual and group chats
- Voice messages — record and send voice notes; play received ones in-app
- Attachments — send and receive images, files, and other media
- Stickers — send Signal sticker packs in conversations
- Notifications — desktop notifications via libnotify for new messages
- QR code linking — link Flare to an existing Signal account by scanning a QR code with your phone (no separate registration flow needed on the desktop)
- Native GTK4 / libadwaita — follows the GNOME HIG, respects the system dark/light mode preference, and adapts to narrow screens
- No Electron — the entire application is a native Rust binary; no Chromium engine, no Node.js, no JavaScript runtime overhead
Installation
Flatpak from Flathub is the primary distribution channel and works on any Linux distribution with Flatpak support:
flatpak install flathub de.schmiddi.Flare
For Debian/Ubuntu and Fedora, use the Flatpak above. There are no official native distribution packages at this time.
# Arch Linux (AUR)
yay -S flare-signal
To build from source you need Rust (stable via rustup), Meson, and the GTK4
and libadwaita development headers:
# Install build dependencies (Debian / Ubuntu)
sudo apt install meson libgtk-4-dev libadwaita-1-dev \
libsqlite3-dev pkg-config
# Install build dependencies (Fedora)
sudo dnf install meson gtk4-devel libadwaita-devel \
sqlite-devel pkg-config
# Clone and build
git clone https://gitlab.com/schmiddi-on-mobile/flare
cd flare
meson setup _build --prefix=/usr
ninja -C _build
sudo ninja -C _build installUsage
Linking Flare to your Signal account
Flare works as a linked device — you keep your phone as the primary Signal account and add Flare as a secondary device.
- Open Flare for the first time.
- Flare displays a QR code.
- On your phone, open Signal → Settings → Linked Devices → Link New Device.
- Scan the QR code shown by Flare.
- Flare registers as a linked device and begins syncing your conversation history.
Sending a message
Once linked, your conversations appear in the left sidebar. Click any conversation to open it, type in the message field, and press Enter or click Send. To start a new conversation, click the compose icon and search for a contact by name or phone number.
Sending a voice message
Hold the microphone button in the message bar to record a voice note. Release to send. Received voice notes appear as playable audio clips in the conversation.
Flare vs Signal Desktop
| Feature | Flare | Signal Desktop |
|---|---|---|
| Written in | Rust | TypeScript + Electron |
| Binary size | Small (native) | Large (bundled Chromium) |
| Memory usage | Low | High (Electron overhead) |
| GTK4 / GNOME HIG | ✅ | ❌ |
| Adaptive mobile UI | ✅ | ❌ |
| Official Signal support | ❌ | ✅ |
| End-to-end encryption | ✅ (Signal protocol) | ✅ |
| Voice/video calls | ❌ (in progress) | ✅ |
| Note to self | ✅ | ✅ |
Flare is the right choice for GNOME users who want a lightweight, native desktop Signal client that fits the desktop environment. Signal Desktop is the official, fully-featured client and remains the better option if you need voice or video calls, or want guaranteed compatibility with every Signal feature. Because Flare uses a community-maintained Signal protocol library, there is a small risk of temporary breakage after Signal server-side changes — the project actively tracks upstream to minimise this.