xmatic

Rating: 
5
Your rating: None Average: 5 (4 votes)

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

Application versions: 
AttachmentSizeDate
File harbour-xmatic-0.22.0-1.aarch64.rpm15.56 MB25/08/2026 - 00:59
File harbour-xmatic-0.22.0-1.armv7hl.rpm16.08 MB25/08/2026 - 00:59
Changelog: 

- 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's picture

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's picture

seems like there is no read status for messages (sent/read)

windes's picture

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's picture

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's picture

@Sharks Please read the new REQUIREMENTS section above and try again with the latest Version (> 0.19.0). 

Sharks's picture

It appears I am missing msc4186, thanks. Will have to look into it.

Sharks's picture

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's picture

Will it be frequently maintained? I have wishes and Ideas...

sourcrowd's picture

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's picture

Thanks a lot.

Manisak's picture

Damed I Love you ;-)

kempertom's picture

Wow. Wonderful. What are you plan to implement?