Your space to connect
Commet is a client for Matrix focused on providing a feature rich experience while maintaining a simple interface. The goal is to build a secure, privacy respecting app without compromising on the features you have come to expect from a modern chat client.
- Supports Windows, Linux, and Android (MacOS and iOS planned in future)
- End to End Encryption
- Custom Emoji + Stickers
- GIF Search
- Threads
- Encrypted Room Search
- Multiple Accounts
- Spaces
- Emoji verification & cross signing
- Push Notifications
- URL Preview
Help translate Commet to your language on Weblate
Commet is built using Flutter, currently v3.22.3
This repo currently has a monorepo structure, containing two flutter projects: Commet and Tiamat. Commet is the main client, and Tiamat is a sort of wrapper around Material with some extra goodies, which is used to maintain a consistent style across the app. Tiamat may eventually be moved to its own repo, but for now it is maintained here for ease of development.
Commet requires some additional libraries to be built
sudo apt-get install -y ninja-build libgtk-3-dev libolm3 libmpv-dev mpv ffmpeg libmimalloc-dev
You will need to change directory in to commet, then fetch dependencies
cd commet
flutter pub get
We make use of procedural code generation in some parts of commet. As a rule, generated code will not be checked in to git, and will need to be generated before building.
To run code generation, run the script within the commet
directory:
dart run scripts/codegen.dart
When building Commet, there are some additional command line arguments that must be used to configure the build.
Required
Argument | Valid Values | Description |
---|---|---|
PLATFORM | 'desktop', 'mobile', 'linux', 'windows', 'macos', 'android', 'ios', 'web' | Defines which platform to build for |
BUILD_MODE | 'release', 'debug' | When building with 'debug' flag, additional debug information will be shown |
Optional
Argument | Valid Values | Description |
---|---|---|
GIT_HASH | * | Supply the current git hash when building to show in info screen |
VERSION_TAG | * | Supply the current build version, to display app version |
BUILD_DETAIL | * | Can provide additional detail about the current build, for example if it was being built for Flatpak or Snap |
Example:
cd commet
flutter run --dart-define BUILD_MODE=debug --dart-define PLATFORM=linux