Mandelbrot
Mandelbrot is a GNOME-native Matrix client. We forked it from Fractal to move faster on the modern Matrix feature set. It is built in Rust on GTK 4, Libadwaita, and the matrix-rust-sdk.
Why a fork?β
Fractal is an active client. Some features fall outside its scope. Mandelbrot keeps full feature parity with Fractal β E2EE with verification, rich messages, moderation, and multi-account. It adds modern Matrix features to that base.
Features beyond Fractalβ
- Native voice & video calls (experimental) β MatrixRTC built in natively (no
embedded browser). Join calls from the room header. Access a call view
with participant grid and auto-hiding controls. Return to calls via the top bar.
Receive call notifications with portal v2
call.incomingcategories (great on Phosh, landed in GNOME Shell). Calls use end-to-end encryption with automatic key rotation, and crash-safe membership cleanup via MSC4140 delayed events. Needs a homeserver with a LiveKit focus (e.g. matrix.org). The implementation's conformance suite β ported from matrix-js-sdk β runs in CI, plus a live interop test harness. - Simplified slide sync (MSC4186) β instant room list on supported homeservers (Synapse β₯ 1.114). It falls back to classic sync elsewhere.
- QR code login (MSC4108) β "Sign in with QR code" on the login screen. Use "Link New Deviceβ¦" in Account Settings β Sessions (OAuth 2.0 homeservers).
- Threads (MSC3440) β a "N replies in thread" button opens an adaptive thread panel. It includes its own composer, thread-scoped replies/edits/reactions, and per-thread drafts.
- Polls (MSC3381) β create disclosed or undisclosed polls from the composer menu. Vote, watch live results, and end polls from the context menu.
- Voice messages (MSC3245) β record with the composer's microphone button (live level meter). Send as Ogg Opus with waveform metadata.
Full feature documentation: docs/FEATURES.md.
Installationβ
flatpak remote-add --user --if-not-exists tuna-os https://tunaos.org/flatpak/tuna-os.flatpakrepo
flatpak install --user tuna-os org.tunaos.mandelbrot
Mandelbrot runs on the GNOME 50 runtime, so you also need the
Flathub remote (or another source for
org.gnome.Platform//50).
Added the tuna-os remote before it moved to tunaos.org? --if-not-exists keeps
your old one and the install will say nothing matches. Fix it with
flatpak remote-modify --user tuna-os --url=oci+https://tunaos.org/flatpak.
Reporting issuesβ
Please report issues with core messaging that also reproduce in Fractal to the Fractal issue tracker, and Mandelbrot-specific issues (calls, sliding sync, QR loginβ¦) to the Mandelbrot repo.
Sourceβ
- Repository: github.com/tuna-os/mandelbrot
- Roadmap & architecture notes:
MANDELBROT.md - License: GPL-3.0-or-later (same as Fractal)