A simple and user-friendly Matrix client made with Flutter and a Gomuks backend.
| Dark Mode | Light Mode |
|---|---|
![]() |
![]() |
If you want to try out Nexus, download the latest release.
For the newest changes, grab one of the following nightly artifacts, built by CI from the latest commit on main.
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";
};This tracks the latest commit on main. To stay on a release instead, pin the input to its tag:
url = "git+https://git.federated.nexus/Nexus/nexus?ref=refs/tags/v1.0.1";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 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!

