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-12 20:21:35 -05:00
.forgejo/workflows run e2e tests on large-mem 2026-11-12 20:12:26 -05:00
.github/workflows Bump libmpv to 20261111 (#171) 2026-11-11 23:44:31 -05:00
.vscode add push rule settings 2026-10-31 15:22:13 -04:00
android fixup Android build 2026-11-12 20:21:35 -05:00
assets add automated screenshots, fastlane metadata, and appstream metainfo 2026-11-12 12:48:30 -05:00
fastlane/metadata/android/en-US add automated screenshots, fastlane metadata, and appstream metainfo 2026-11-12 12:48:30 -05: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 automated screenshots, fastlane metadata, and appstream metainfo 2026-11-12 12:48:30 -05:00
ios rip out media_kit, use better_player and audioplayers 2026-11-11 23:25:28 -05:00
lib fixup video playback on apple platforms 2026-11-12 14:42:50 -05:00
linux don't do c10y checks in CI 2026-11-12 20:13:48 -05:00
macos rip out media_kit, use better_player and audioplayers 2026-11-11 23:25:28 -05:00
scripts Better emoji picker (#73) 2026-09-16 14:47:46 -04:00
windows prepare v1.1.1 2026-11-12 17:52:08 -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 bump continuwuity 2026-11-11 23:27:52 -05:00
flake.nix bump continuwuity 2026-11-11 23:27:52 -05:00
LICENSE add gpl 3 2026-03-19 19:58:29 -04:00
pubspec.lock bump code_assets 2026-11-12 18:01:30 -05:00
pubspec.yaml bump code_assets 2026-11-12 18:01:30 -05:00
README.md prepare v1.1.1 2026-11-12 17:52:08 -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.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.

Build it yourself

Prerequisites

Linux

  • On NixOS: Either use direnv and direnv allow, or nix develop
  • On other distros: Install Flutter, Go, Git, Libclang, MPV, GStreamer (with its base, good and libav plugins), 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! Thank you Feline Build Services for providing CI for the Nexus Forgejo repo!

The Nexus icon, including its source files in assets/ and the platform app icons generated from them, is © Hylke Bons. The screenshots are © Henry Hiles. Both are licensed under CC BY-SA 4.0.