No description
  • Dart 73.9%
  • C++ 13.9%
  • CMake 9.3%
  • Ruby 1%
  • Nix 0.7%
  • Other 1.1%
Find a file
2026-01-30 18:42:11 +01:00
.github/workflows grab installer from windows 2026-01-09 09:29:46 -05:00
.vscode remove some un-needed code 2026-01-08 21:07:09 -05:00
android Add SecureStorageController 2025-11-17 21:43:52 -05:00
assets add screenshot images 2025-11-30 21:23:59 -05:00
hook working sync complete 2026-01-26 19:39:02 +00:00
ios first commit 2025-11-10 14:50:58 -05:00
lib safety checks and message fix 2026-01-30 18:42:11 +01:00
linux working login page 2026-01-25 13:02:40 +00:00
nix add vodozemac 2025-11-14 19:26:27 -05:00
scripts working login page 2026-01-25 13:02:40 +00:00
windows working login page 2026-01-25 13:02:40 +00:00
.envrc first commit 2025-11-10 14:50:58 -05:00
.gitignore working build 2026-01-24 14:50:07 +00:00
.metadata add windows dir 2025-11-29 12:04:39 -05:00
analysis_options.yaml wip go 2026-01-22 17:05:59 +00:00
build.yaml wip go 2 2026-01-23 13:47:21 +00:00
flake.lock upgrade clipboard 2026-01-06 18:06:12 -05:00
flake.nix fix up nix flake 2026-01-24 16:42:18 +00:00
pubspec.lock working login page 2026-01-25 13:02:40 +00:00
pubspec.yaml working login page 2026-01-25 13:02:40 +00:00
README.md update readme 2026-01-24 11:58:55 +00:00

Nexus Client

Warning

Nexus Client is still heavily in development, and is not ready for use!

Description

A simple and user-friendly Matrix client made with Flutter and the Matrix Dart SDK.

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

Progress

  • Move from the Dart SDK to the Gomuks SDK with bindings: WIP
  • Platform Support
    • Linux
    • Windows
    • MacOS
    • Android
    • iOS
    • Web (may not be possible)
  • Login
    • Username / password auth
    • OAuth / OIDC
  • Rooms / Spaces
    • Displaying and choosing
    • Reading, showing unread
      • Mark as read button on rooms and spaces
    • Searching
    • Creating (Rooms, Spaces, and DMs)
    • Joining
      • Using alias/id/link
      • From space
      • Exploring
    • Leaving
    • Subspaces
  • Messages
    • Encryption
      • Restoring crypto identity from passphrase/key or verification
    • Sending
      • Plain text
      • HTML/Markdown
      • Replies
      • Attachments
      • Mentions
        • Users
        • Rooms
      • Custom emojis/stickers
      • GIFs using Giphy
    • Recieving
      • Plain text
      • HTML
      • Replies
        • Viewing
        • Jump to original message
      • Edits
      • Attachments
        • Blurhashing
        • Downloading attachments
        • Opening attachments in their own view
      • Polls: Waiting on https://github.com/SwanFlutter/dynamic_polls/issues/1
      • Mentions
        • Users
        • Rooms
          • Plain text (not sure if I want to add this or not, I probably won't unless there's interest)
          • Matrix URIs
          • Matrix.to links
      • Custom emojis/stickers
      • History loading
        • Backwards
        • Forwards
    • Editing
    • Deleting
  • Reactions: Waiting on https://github.com/flyerhq/flutter_chat_ui/pull/838 or me doing a custom impl
  • Pins
    • Displaying
    • Creating
  • Threads
  • Profile popouts
  • Copy link to [room, space]
  • Reporting
  • Notifications using UnifiedPush
  • Group calls using MSC4195
  • Invites
    • Viewing / accepting
    • Spam filtering
  • Settings
    • Light/Dark mode
    • Show media by default
    • Dynamic Theming
    • Devices
      • Viewing devices
      • Verifying devices
    • URL preview: Server / Client / None
    • Account changes
      • Display name
      • Profile picture
      • Timezone
      • Pronouns
      • Password
    • About
    • Log Out

Development

First, clone and open the repo:

git clone https://git.federated.nexus/Henry-Hiles/nexus
cd nexus

Prerequisites

Linux

  • With Nix: Either use direnv, or nix flake develop
  • Without Nix: Install Flutter, Rust, the libsecret dev package for your distro (must be in PKG_CONFIG_PATH), and sqlite (must be in LD_LIBRARY_PATH).

Windows / MacOS

I don't really know. You will need Flutter and Rust, and otherwise I guess just keep installing stuff until there aren't any errors.

Get dependencies:

flutter pub get

Build generated files, and watch for new changes:

flutter pub run build_runner watch --delete-conflicting-outputs

Run the app:

flutter run

Community

Come chat in the Federated Nexus Community for questions or help with developing or using Nexus Client.