Warning
Nexus Client is still in development, and doesn't support everything needed for daily use.
A simple and user-friendly Matrix client made with Flutter and a Gomuks backend.
| Dark Mode | Light Mode |
|---|---|
![]() |
![]() |
- Platform Support
- Linux
- Notifications through UnifiedPush
- Windows
- Background notifications
- Android
- Notifications through UnifiedPush
- Notifications through FCM
- MacOS
- Unsigned .ipa
- App Store
- Background notifications
- iOS
- Unsigned .ipa
- App Store
- Background notifications
- Web (may not be possible)
- Linux
- Login (via OAuth)
- Rooms / Spaces
- Displaying and choosing
- Reading, showing unread
- Mark as read button on rooms and spaces
- Searching
- Creating (Rooms, Spaces, and DMs)
- Joining
- Parse vias
- Using a text/uri/link
- Plain text
-
matrix:Uri - Matrix.to link
- From space
- From directory
- Leaving
- Subspaces
- Messages
- Encryption
- Restoring crypto identity from a recovery passphrase/key
- Sending
- Plain text
- HTML/Markdown
- Replies
- Choose ping on/off
- Per message profiles
- Attachments
- Commands with MSC4391
- Tags
- Users
- Rooms
- Emojis
- Custom emojis/stickers
- GIFs using Gomuks' GIF proxies
- Receiving
- Plain text
- Per message profiles
- HTML
- URL Previews
- Replies
- Viewing
- Jump to original message
- Edits
- Attachments
- Unencrypted
- Encrypted
- Blurhashing
- Downloading attachments
- Opening attachments in their own view
- Polls
- Mentions
- Users
- Clickable
- Rooms
- Clickable
- Matrix URIs
- Matrix.to links
- Events
- Users
- Custom emojis/stickers
- History loading
- Editing
- Deleting
- Encryption
- Reactions
- Pins
- Displaying
- Pinning/Unpinning
- Threads
- Profile popouts
- Working actions
- Copy link to:
- Room
- Space
- Message
- Reporting
- Events
- Rooms
- Member list
- Sort by power level
- Colors based off of power level
- Notifications using UnifiedPush (#35)
- Notifications page
- Group calls using MSC4195
- Invites
- Settings
If you want to try out Nexus, grab one of the following artifacts from CI:
Or, use one of the below methods:
Make sure Flatpak is set up on your system, then run:
flatpak install --user https://nexus.federated.nexus/flatpak/nexus.flatpakrefThis adds the Nexus remote and installs the app for your user only, so no root access is needed (x86_64 and aarch64 are supported). To install system-wide instead, use --system in place of --user. Updates arrive through flatpak update or your software center.
Add Nexus as a flake input, following nixpkgs for less fetches:
nexus = {
url = "git+https://git.federated.nexus/Nexus/nexus";
inputs.nixpkgs.follows = "nixpkgs";
};Then import the module and enable it in your NixOS configuration:
{ inputs, ... }:
{
imports = [ inputs.nexus.nixosModules.default ];
programs.nexus = {
enable = true;
enableNotifications = true; # optional: push notifications via UnifiedPush
};
}This installs Nexus system-wide. With enableNotifications, it also installs KUnifiedPush and registers its systemd and D-Bus services so notifications work. The package option lets you override the package if you need to.
- On NixOS: Either use direnv and
direnv allow, ornix develop - On other distros: Install Flutter, Go, Git, Libclang, Libass, MPV, and Glibc. Do not use any Snap packages, they cause various compilation issues.
You will need:
- Flutter
- Git
- Libass
- MPV
- Go
- Visual Studio 2022 (Desktop development with C++)
- MSYS2/MinGW-w64 GCC (for CGO)
- LLVM/Clang + libclang (for
ffigen)
On Windows, make sure these are available in your shell PATH:
C:\msys64\ucrt64\bin(or your MinGW bin path containingx86_64-w64-mingw32-gcc.exe)C:\Program Files\LLVM\bin(containsclang.exeandlibclang.dll)
For dart scripts/generate.dart, you may also need:
$env:CPATH = "C:\msys64\ucrt64\include"Similar prerequisites apply (Flutter, Git, Go, C toolchain, LLVM/libclang), but exact setup has not been fully documented yet.
First, clone and open the repo:
git clone --recurse-submodules https://git.federated.nexus/Nexus/nexus
cd nexusGet dependencies:
flutter pub getGenerate Gomuks bindings:
dart scripts/generate.dartNote
If you are having issues with stddef.h not being found, try setting CPATH manually:
export CPATH="$(clang -v 2>&1 | grep "Selected GCC installation" | rev | cut -d' ' -f1 | rev)/include"Build webcrypto:
flutter pub run webcrypto:setupBuild generated files, and watch for new changes:
flutter pub run build_runner watchRun the app:
flutter runDevelopment instructions can be found in DEVELOPMENT.md.
Join the Nexus Client Matrix room for questions or help with developing or using Nexus Client.
Thank you Hylke Bons (https://planetpeanut.studio) for making the amazing icon for Nexus! Thank you Tulir Asokan for making Gomuks, and helping us integrate it into Nexus!

