A simple and user-friendly Matrix client made with Flutter and a Gomuks backend.
  • Dart 93.1%
  • C++ 2.7%
  • CMake 1.8%
  • Nix 1.3%
  • Shell 0.5%
  • Other 0.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-11-11 12:18:33 -05:00
.forgejo/workflows run e2e flow on forgejo 2026-11-10 18:43:15 -05:00
.github/workflows Revert "bump gomuks, drop explicit goolm tags" 2026-11-10 19:59:42 -05:00
.vscode add push rule settings 2026-10-31 15:22:13 -04:00
android fix android builds in devshell 2026-11-10 19:02:28 -05:00
assets don't bundle an emoji font 2026-10-19 18:19:05 -04:00
gomuks@94d91fbbb7 bump gomuks 2026-11-11 01:13:30 -05:00
hook Revert "bump gomuks, drop explicit goolm tags" 2026-11-10 19:59:42 -05:00
integration_test add e2e testing (#167) 2026-11-10 18:29:02 -05:00
ios add m.location support 2026-11-02 15:02:49 -05:00
lib fix use after dispose error from videos 2026-11-10 19:21:29 -05:00
linux bump gomuks vendorHash 2026-11-11 00:00:32 -05:00
macos add m.location support 2026-11-02 15:02:49 -05:00
scripts Better emoji picker (#73) 2026-09-16 14:47:46 -04:00
windows prepare 1.1.0 release 2026-11-11 12:18:33 -05:00
.envrc first commit 2025-11-10 14:50:58 -05:00
.gitignore Add room preview dialog 2026-09-29 13:55:17 -04:00
.gitmodules set branch in .gitmodules 2026-11-03 23:18:35 -05:00
.metadata feat: Add iOS platform support (#60) 2026-08-08 16:35:56 -04:00
analysis_options.yaml bump deps, remove unwanted and now un-needed analyzer rule 2026-09-10 15:09:47 -04:00
build.yaml wip go 2 2026-01-30 18:45:30 +01:00
DEVELOPMENT.md small fixups 2026-10-15 15:13:31 -04:00
devtools_options.yaml fix display name metadata 2026-02-13 17:55:39 -05:00
flake.lock follow nixpkgs properly 2026-11-10 19:25:20 -05:00
flake.nix follow nixpkgs properly 2026-11-10 19:25:20 -05:00
LICENSE add gpl 3 2026-03-19 19:58:29 -04:00
pubspec.lock add e2e testing (#167) 2026-11-10 18:29:02 -05:00
pubspec.yaml prepare 1.1.0 release 2026-11-11 12:18:33 -05:00
README.md prepare 1.1.0 release 2026-11-11 12:18:33 -05:00

Nexus Client

Description

A simple and user-friendly Matrix client made with Flutter and a Gomuks backend.

Screenshots

Dark Mode Light Mode
Screenshot of Nexus Client in dark mode, showing users talking, with a sidebar showing rooms and spaces, and another sidebar showing members The same screenshot as above, but in light mode

Try it out

If you want to try out Nexus, download the latest release.

Nightly Builds

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:

Nightly Flatpak Repo

Make sure Flatpak is set up on your system, then run:

flatpak install --user https://nexus.federated.nexus/flatpak/nexus.flatpakref

This 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.

NixOS Module

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.1.0";

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.

Build it yourself

Prerequisites

Linux

  • On NixOS: Either use direnv and direnv allow, or nix develop
  • On other distros: Install Flutter, Go, Git, Libclang, Libass, MPV, and Glibc. Do not use any Snap packages, they cause various compilation issues.

Windows

You will need:

On Windows, make sure these are available in your shell PATH:

  • C:\msys64\ucrt64\bin (or your MinGW bin path containing x86_64-w64-mingw32-gcc.exe)
  • C:\Program Files\LLVM\bin (contains clang.exe and libclang.dll)

For dart scripts/generate.dart, you may also need:

$env:CPATH = "C:\msys64\ucrt64\include"

MacOS

Similar prerequisites apply (Flutter, Git, Go, C toolchain, LLVM/libclang), but exact setup has not been fully documented yet.

Clone repo

First, clone and open the repo:

git clone --recurse-submodules https://git.federated.nexus/Nexus/nexus
cd nexus

Set up Flutter

Get dependencies:

flutter pub get

Generate Gomuks bindings:

dart scripts/generate.dart

Note

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 watch

Run the app:

flutter run

Development instructions can be found in DEVELOPMENT.md.

Community

Join the Nexus Client Matrix room for questions or help with developing or using Nexus Client.

Credits

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!