# 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](./assets/screenshotDark.png) | ![The same screenshot as above, but in light mode](./assets/screenshotLight.png) | ## Progress - [ ] Move from the Dart SDK to the Rust SDK with Dart bindings: Waiting on https://github.com/fzyzcjy/flutter_rust_bridge/discussions/2967#discussioncomment-15522205. - [ ] Platform Support - [x] Linux - [x] Windows - [ ] MacOS - [ ] Android - [ ] iOS - [ ] Web (may not be possible) - [x] Login - [x] Username / password auth - [ ] OAuth / OIDC - [x] Rooms / Spaces - [x] Displaying and choosing - [x] Reading, showing unread - [x] Mark as read button on rooms and spaces - [ ] Searching - [ ] Creating (Rooms, Spaces, and DMs) - [x] Joining - [x] Using alias/id/link - [ ] From space - [ ] Exploring - [x] Leaving - [x] Subspaces - [x] Messages - [x] Encryption - [ ] Restoring crypto identity from passphrase/key or verification - [x] Sending - [x] Plain text - [x] HTML/Markdown - [x] Replies - [ ] Attachments - [x] Mentions - [x] Users - [x] Rooms - [ ] Custom emojis/stickers - [ ] GIFs using Giphy - [x] Recieving - [x] Plain text - [x] HTML - [x] Replies - [x] Viewing - [ ] Jump to original message - [x] Edits - [x] Attachments - [x] Blurhashing - [ ] Downloading attachments - [x] Opening attachments in their own view - [ ] Polls: Waiting on https://github.com/SwanFlutter/dynamic_polls/issues/1 - [x] Mentions - [x] Users - [x] Rooms - [ ] Plain text (not sure if I want to add this or not, I probably won't unless there's interest) - [x] Matrix URIs - [x] Matrix.to links - [x] Custom emojis/stickers - [x] History loading - [x] Backwards - [ ] Forwards - [x] Editing - [x] 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 - [x] Copy link to [room, space] - [x] Reporting - [ ] Notifications using UnifiedPush - [ ] Group calls using [MSC4195](https://github.com/matrix-org/matrix-spec-proposals/pull/4195) - [ ] 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 - [x] Log Out ## Development First, clone and open the repo: ```sh 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: ```sh flutter pub get ``` Build generated files, and watch for new changes: ```sh flutter pub run build_runner watch --delete-conflicting-outputs ``` Run the app: ```sh flutter run ``` ## Community Come chat in the [Federated Nexus Community](https://matrix.to/#/#space:federated.nexus) for questions or help with developing or using Nexus Client.