Multi-account encrypted Matrix client that runs in your terminal. E2E encryption, inline images, responsive layout — no Electron required.
Log into every homeserver you want. One terminal, all your Matrix identities, zero tab juggling.
Pure terminal. SSH in, run mtui, start chatting. Works on anything with a shell — even Termux on your phone. Rewrite it in Rust.
Olm/Megolm encryption, SAS emoji verification, recovery key import. Messages decrypted in memory, never cached to disk.
Three-column, two-column, and single-column modes. The UI adapts to your terminal width automatically.
Default, Dracula, Gruvbox, Nord, Monokai, Solarized. Switch live in settings — every element recolors instantly.
Six modules, one event channel, zero frameworks. Inline images, reactions, replies, verification — every feature earned its complexity.
Account owns its own matrix-sdk::Client and background sync loop, all feeding events into a single tokio channel.AppEvent enum.draw_three_column(), draw_two_column(), draw_single_column() auto-select on terminal resize. All 12 overlay types reflow independently.ratatui::Frame draws with computed coordinates. State lives in one App struct. Overlays are match arms on an enum.Your terminal. Your keys. Rewritten in Rust.
View SourceMatrix clients are overwhelmingly Electron-based — heavy, resource-hungry, and impossible to use over SSH. Most terminal alternatives only cover the basics and punt on encryption, media, and multi-account.
MatrixTUI proves a terminal client can handle the full Matrix feature set: multi-account, E2E encryption, inline images, SAS verification, reactions, replies — all in under 7,000 lines of Rust with zero frameworks. The architecture is intentionally flat because chat clients don't need component trees. One struct, one event channel, one render loop.