A simple and user-friendly Matrix client made with Flutter and a Gomuks backend.
  • Dart 88.7%
  • C++ 5.3%
  • CMake 3.3%
  • Nix 1.3%
  • Swift 0.6%
  • Other 0.8%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-16 17:20:36 -04:00
.github/workflows show git commit in about dialog 2026-10-01 16:15:36 -04:00
.vscode filter shown recent emoji to valid emoji 2026-10-04 13:01:06 -04:00
android allow pasting attachments from keyboard 2026-10-15 13:56:10 -04:00
assets update screenshots 2026-10-15 23:28:08 -04:00
gomuks@ad275f7613 small fixups 2026-10-15 15:13:31 -04:00
hook optimize gomuks build size 2026-08-22 14:16:35 -04:00
ios Push Notifications (#66) 2026-09-10 15:37:05 -04:00
lib open sidebar on homepage pop 2026-10-16 17:17:19 -04:00
linux release v1.0.0-alpha3 2026-10-16 17:20:36 -04:00
macos allow pasting attachments from keyboard 2026-10-15 13:56:10 -04:00
scripts Better emoji picker (#73) 2026-09-16 14:47:46 -04:00
windows allow pasting attachments from keyboard 2026-10-15 13:56:10 -04: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 use GomuksConfig 2026-09-22 09:53:00 -04: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 use upstream nix2flatpak 2026-10-14 16:27:27 -04:00
flake.nix use upstream nix2flatpak 2026-10-14 16:27:27 -04:00
LICENSE add gpl 3 2026-03-19 19:58:29 -04:00
pubspec.lock Add support for downloading media 2026-10-16 17:05:26 -04:00
pubspec.yaml release v1.0.0-alpha3 2026-10-16 17:20:36 -04:00
README.md release v1.0.0-alpha3 2026-10-16 17:20:36 -04: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.0.0-alpha3";

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 webcrypto:

flutter pub run webcrypto:setup

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!