Skip to main content

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.incoming categories (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​