Native Matrix client built on matrix-rust-sdk with a Silica UI.
FEATURES
- Sliding sync, end-to-end encryption, cross-signing, device verification (both directions), key backup and recovery
- Rooms, spaces (nested), direct chats, threads, room directory search
- Create rooms, invite, leave; member list and member profiles with moderation
- Send, edit, delete, reply, react, pagination in encrypted rooms
- Reactions are shown grouped with a count; tapping one sets or takes back your own
- Formatted messages: bold, italic, code, quotes, lists and links render as themselves
- A room opens where you stopped reading; it counts as read while you read it, and can be marked read from the list without opening it
- Matrix links open in the app: a permalink or a plain #room:server leads to the room, or offers to join it
- Pinned messages, favourites, low priority, per-room mute, ignored users
- Pictures with captions, files, sharing (also as share target from Gallery / file manager)
- Voice messages; voice and video calls (classic 1:1 VoIP; MatrixRTC-only clients cannot be called)
- Notifications, offline send queue, encrypted local storage
- Tapping a notification opens the room it is about
- A message that could not be sent can be sent again or discarded
- OAuth (MAS) login, device-code login, password login
- 29 interface languages, switchable in the app
LANGUAGES
The interface is available in the 24 official languages of the European Union
plus Russian, Norwegian, Icelandic, Simplified Chinese and Hindi. Norwegian was
contributed by a Norwegian speaker and German is the project language; the rest
are machine translations, usable but unchecked. Account has a language setting
of its own, English included, so there is always a way back out of one. A
change applies at the next start.
Corrections are welcome at the GitHub repository below - the file to edit is
translations/harbour-xmatic-<language>.ts, and translations/STATUS.md says
which languages have been read by a native speaker.
REACTIONS AND EMOJI
A reaction in Matrix is a character, not an icon, so whatever another client
sent is drawn as it came. On this Qt that means monochrome: the colour emoji
font on the device uses a format Qt 5.6 cannot draw. Whoever wants colour can
put picture files of their own into the app's data directory and switch it on
under Appearance - nothing is shipped and nothing is downloaded, and the
setting says what it costs, because a picture file is opened by an image
decoder.
LOCAL STORAGE
Session tokens and the message database are encrypted with a key from Sailfish
Secrets. Where the system's secure storage hands out no key, the app keeps
working with unencrypted storage rather than refusing to start - and says so on
the encryption page instead of only in the log. Where a database simply
predates the key, that page offers to re-create it encrypted.
WHY IS THE PACKAGE SO BIG?
The app ships the complete Matrix stack statically: matrix-rust-sdk, E2EE
(vodozemac), sliding sync, rustls, its own HTTP runtime and a bundled SQLite.
None of that exists as a system library on Sailfish OS, and Qt 5.6 is too old
for the C++ alternatives - which is exactly why the protocol core is written in
Rust. Installed size ~51 MB (Element X, same SDK: ~100 MB), RPM ~16 MB.
NO BACKGROUND DAEMON
Messages arrive while the app is running (the cover is enough). Like other
daemonless messengers on this platform, a closed app does not receive.
ARCHITECTURES
aarch64 (Sailfish OS 5.0+), armv7hl (Sailfish OS 4.6+).
REQUIREMENTS
xmatic syncs over simplified sliding sync (MSC4186), the same mechanism
Element X uses. Your homeserver must support it. If it does not, sign-in
works but no rooms load and the app keeps showing "Offline".
How to check your server: open this address in a browser
https://YOUR-SERVER/_matrix/client/versions
and look for this line:
"org.matrix.simplified_msc3575": true
If it is missing, xmatic cannot load your rooms from that server.
Sign-in methods supported: OAuth 2.0 / Matrix Authentication Service,
device code ("Sign in on another device"), and username plus password on
servers without OAuth.
The classic SSO redirect sign-in (SAML, CAS) is not supported.
Written with Claude Code (Anthropic), icons included; the protocol core is upstream matrix-rust-sdk.
Source, issues, releases:
https://github.com/JimKnopfIoT/harbour-xmatic
| Attachment | Size | Date |
|---|---|---|
| 15.56 MB | 25/08/2026 - 00:59 | |
| 16.08 MB | 25/08/2026 - 00:59 |
- Reactions: shown grouped with a count, sent and taken back by tapping,
"React" in a message's menu. Drawn as the characters they are; picture files
of your own can be used instead (Appearance, off, nothing shipped).
- The caption of a picture is shown, and editing it keeps the picture. An
attachment is saved under its file name, not under its caption.
- A room counts as read while it is read, opens where reading stopped, and can
be marked read from the chat list. Other people's read status optional
(Account, off).
- Tapping a notification opens the room it names.
- Matrix links open in the app: permalink, matrix: URI or #room:server. The tap
never joins by itself.
- A message that failed to send can be sent again or discarded.
- Direction-control characters are removed from messages, names, previews and
file names.
- Simplified Chinese and Hindi added; 29 languages.
- The microphone next to the message field can be switched off.
- Shorter menus: five entries in the chat list, the four ways into a room on
their own page.
Comments
Sharks
Tue, 2026/08/25 - 07:54
Permalink
Latest 0.22 update is great, very glad to see reaction support added. This now fully replaces Hydrogen for me on SFOS. Thankyou for your work!
The only feature I would still want for is an option to show the message content in notifications like an SMS notification would. Requiring to unlock the phone and open the app to see a message you may not be interested in responding to is a minor annoyance.
stiltskin
Sun, 2026/08/23 - 15:24
Permalink
seems like there is no read status for messages (sent/read)
windes
Fri, 2026/08/21 - 10:15
Permalink
Wow, man!! First impression - GREAT! UI is smooth and nice, all balanced. Did you do UI by yourself, manually, not with AI?
Can't open page with user info. There's no this feature for now?
Sailfish 5.1.0.11, armv7hl - all is working)
Nice description, monumental, by the way. All questions gone right after read it. No water, strict and needed, every word.
Do you have a group of xmatic in matrix?
Sharks
Fri, 2026/08/21 - 07:57
Permalink
Looks promising! Unfortunately while I can login, I just see "Offline - Waiting for the network" glitching and flashing up the top, none of my chats get loaded.
JimKnopfIoT
Fri, 2026/08/21 - 21:00
Permalink
@Sharks Please read the new REQUIREMENTS section above and try again with the latest Version (> 0.19.0).
Sharks
Sat, 2026/08/22 - 03:57
Permalink
It appears I am missing msc4186, thanks. Will have to look into it.
Sharks
Mon, 2026/08/24 - 06:29
Permalink
Have decomissioned my Dendrite server and spun up a Synapse one. xmatic is now working beautifully! Thanks very much. Keen to see further development, looks like a great app already.
kempertom
Wed, 2026/08/19 - 11:19
Permalink
Will it be frequently maintained? I have wishes and Ideas...
sourcrowd
Tue, 2026/08/18 - 21:49
Permalink
Thank you! With this client I'm finally able to login on a homeserver, that requires SSO for which the Firefox 91 WebView that SFOS 5.1 bundles, is too old.
kaulian
Tue, 2026/08/18 - 16:11
Permalink
Thanks a lot.
Manisak
Tue, 2026/08/18 - 14:21
Permalink
Damed I Love you ;-)
kempertom
Tue, 2026/08/18 - 14:13
Permalink
Wow. Wonderful. What are you plan to implement?