Sailtrix - Matrix client supporting end-to-end encryption

I’ve just released Sailtrix, an encrypted messaging app using the Matrix protocol. The following features are supported:

  • Logging in with username and password
  • Reading the past messages in a room (currently limited to loading 30 at a time
  • Messages with basic formatting can be read (bold, italic, etc)
  • Sending messages
  • Sending messages in reply
  • Editing messages
  • Deleting messages
  • Starting direct messages
  • Ignoring and unignoring users
  • Basic end-to-end encryption support (ALPHA STATE - please do not use when security is important, it is more than a proof of concept but not in a beta state yet)

You can download it from OpenRepos: Sailtrix | — Community Repository System
Source code and issue tracker: Issues · Heng Ye / Sailtrix · GitLab

Feedback and contributions are welcome!


This is really amazing. Looking forward to see a usable Matrix client on sailfish.


Is it possible to submit it to the official store?

I will submit to the official store after the 1.1 release which will have many new features and more stable encryption. Work is already being done - features include encrypted pictures, joining rooms, and numerous UI improvements. Check out the gitlab activity for what has already been done.

1 Like

Thank you ssssssssoooooooooooo much for this. :heart_eyes:

1 Like

Looking forward to it.
Decided that Matrix is the way to go for me as a mainstream IM (good old jabber+irc are still there, too).


Sailtrix 1.1 has been released on OpenRepos

This is a medium sized release with multiple security, usability, and performance improvements.


  • Store sensitive data securely with Sailfish Secrets
  • Images can now be viewed and saved
  • Files can now be uploaded
  • Enhanced support for sandboxing
  • Numerous bugfixes and improvements regarding encryption and performance.

View changes on GitLab

This update is only available in OpenRepos as Sailfish Secrets which is used for storing sensitive data is not allowed in the Jolla Store.


Wow - I like this piece of software!

1 Like

In case anyone feels artsy check this out:

You can suggest your icon.

1 Like

Sailtrix 1.2 has been released on OpenRepos


  • Add video, audio, and file functionality
  • Add ability to accept invites
  • Add room directory
  • Add create room functionality
  • Numerous bug fixes and security improvements

View changes on GitLab


The latest version only loads non-encrypted rooms history. E2E rooms (started from Element) are empty.
Is it how it’s supposed to be for now?

Yes. I believe the design of the encryption prevents you from reading old messages without using key sharing, which I have not implemented yet.

1 Like

Amazing, thank you.

Use element currently via aptoide, but looking forward to a native client.

1 Like

What currently are you missing in Sailtrix that you have in Element?

For me it is mainly sorting rooms (it could use a tab design like in other SFOS apps), names in DMs, accessing encrypted rooms from Element and maybe VOIP (although I don’t use that very often). But apart from this, your app is amazing!!!

wait what’s wrong with encryption?

He probably talks about key sharing.

1 Like

Hi, I have installed the application but when I try to login it returns the error “Homeserver is not valid”
In the homerserver field I try and but with the same result.
In android with element app, login is fine.
Can you help me?

Please launch from the command line with /usr/bin/sailjail -p harbour-sailtrix.desktop /usr/bin/harbour-sailtrix, attempt to log in, and show me the output from the command line.

If sailjail is not available on your system, please launch with /usr/bin/harbour-sailtrix

This is output in console.
[D] unknown:0 - Using Wayland-EGL
[W] unknown:43 - file:///usr/share/harbour-sailtrix/qml/pages/Start.qml:43:13: QML Button: Cannot anchor to an item that isn’t a parent or sibling.
[D] unknown:0 - Starting sailtrix…
[C] unknown:0 - Unable to open vibrator device
[W] unknown:170 - file:///usr/lib/qt5/qml/Sailfish/Silica/DialogHeader.qml:170: TypeError: Cannot read property ‘backIndicatorDown’ of null
[W] unknown:165 - file:///usr/lib/qt5/qml/Sailfish/Silica/DialogHeader.qml:165: TypeError: Cannot read property ‘backIndicatorDown’ of null
[W] unknown:225 - file:///usr/lib/qt5/qml/Sailfish/Silica/DialogHeader.qml:225: TypeError: Cannot read property ‘forwardIndicatorDown’ of null
[W] unknown:220 - file:///usr/lib/qt5/qml/Sailfish/Silica/DialogHeader.qml:220: TypeError: Cannot read property ‘forwardIndicatorDown’ of null
[D] doPop:492 - Warning: cannot pop while transition is in progress
[D] unknown:0 - Discovered homeserver URL: “
[D] unknown:0 - Homeserver validation error: “Error transferring - server replied: Not Found”