Modern XMPP Messenger for Linux
Featuring MUJI group video calls, voice messages, OMEMO encryption, stickers and 47 languages
Website • Download • Features • XEP Support • Changelog • Development Plan • Contributing
DinoX is a modern XMPP (Jabber) messaging client for Linux built with GTK4 and libadwaita.
DinoX features System Tray support, MUJI group video calls, voice messages, message retraction, advanced MUC moderation and more.
| Feature | Description |
|---|---|
| Encrypted File Upload | AES-GCM URI Scheme & XEP-0448 support for secure file sharing |
| Full Local Encryption | All local files (avatars, stickers, transfers) are encrypted at rest (AES-256-GCM) |
| Secure Deletion | Global history deletion (both sides) with smart throttling & zero-trace cache cleanup |
| OMEMO Encryption | End-to-end encryption for all messages and files |
| OpenPGP Encryption | XEP-0373 with key management, generation & deletion |
| Encrypted Local Database | Local data is stored in an encrypted SQLCipher database (password required at startup) |
| Change Database Password | Change the local database password via Preferences (SQLCipher rekey) |
| Panic Wipe | Quickly wipe local DinoX data (Ctrl+Shift+Alt+P) and exit (also triggered after 3 failed unlock attempts) |
| OpenPGP Keyring Isolation | Uses an app-scoped GNUPGHOME so Panic Wipe removes OpenPGP material |
| Disappearing Messages | Auto-delete messages after 15min, 30min, 1h, 24h, 7d or 30d |
| MUJI Group Calls | Multi-party audio/video conferences (mesh-based) |
| 1:1 Voice & Video | Crystal clear calls with Echo Cancellation, Noise Suppression, AGC & Transient Suppression |
| Voice Messages | Record and send audio messages (AAC format) |
| Inline Video Player | Play videos directly in chat (no external player) |
| Group Chats (MUC) | Full support with moderation, roles, private rooms |
| System Tray | Background mode with StatusNotifierItem |
| Message Retraction | Delete messages for everyone (XEP-0424) |
| Emoji Reactions | React to messages (XEP-0444) |
| Stickers | Send & receive sticker packs (XEP-0449) |
| Message Replies | Quote and reply to messages (XEP-0461) |
| MUC Moderation | Kick, ban (timed), manage roles (XEP-0425) |
| TLS Certificate Pinning | Trust self-signed certs for self-hosted servers |
| Backup & Restore | Full data backup with optional GPG encryption (AES-256) |
| Database Maintenance | Clean orphaned records, optimize storage |
| PGP Key Management | Generate, select, delete OpenPGP keys in-app |
| 47 Languages | 100% translated |
| Dark Mode | System theme or manual toggle |
Download from GitHub Releases
flatpak install --user DinoX.flatpak
flatpak run im.github.rallep71.DinoXDownload from GitHub Releases
chmod +x DinoX-*.AppImage
./DinoX-*.AppImagegit clone https://github.com/rallep71/dinox.git
cd dinox
meson setup build
ninja -C build
./build/main/dinoxDependencies (Debian/Ubuntu):
sudo apt install build-essential meson ninja-build valac \
libgtk-4-dev libadwaita-1-dev libglib2.0-dev libgee-0.8-dev \
libsqlcipher-dev libsecret-1-dev libicu-dev libdbusmenu-glib-dev libgcrypt20-dev \
libgpgme-dev libqrencode-dev libsoup-3.0-dev libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev \
libwebrtc-audio-processing-dev libnice-dev libgnutls28-dev libsrtp2-dev \
libgeoclue-2-devFor a complete, up-to-date build guide (including Fedora/Arch and call stack notes), see BUILD.md.
DinoX stores your local data (accounts, messages, settings, cached metadata) in an encrypted SQLCipher database.
- You will be prompted for a password on startup.
- If you forget the password, the database cannot be recovered.
- A Panic Wipe action is available via the app menu and the shortcut
Ctrl+Shift+Alt+P.
DinoX 1:1 calling focuses on cross-client interoperability (notably with Conversations (Android) and Monal (iOS)) while keeping the existing media stack:
- Media stack: GStreamer (RTP/rtpbin + WebRTC elements),
libnice(ICE),gnutls(DTLS),libsrtp2(SRTP). - Security profile: DTLS-SRTP only (no SDES-SRTP).
- Baseline codecs: Opus (audio) and VP8 (video) for reliable interop.
- Optional audio quality:
webrtc-audio-processingenables AEC/NS/AGC if present.Note: Many distributions ship outdated versions. For best quality (Echo Cancellation), we strongly recommend building version 2.1+ from source. See BUILD.md.
If you are building from source using distro packages, ensure you are on a sufficiently new libnice (recommended: >= 0.1.23). For collecting reproducible call logs, see DEBUG.md.
DinoX implements 80 XMPP Extension Protocols. Here are the key ones with full UI support:
| XEP | Name | Status |
|---|---|---|
| XEP-0080 | User Location (Send & Receive) | Full |
| XEP-0085 | Chat State Notifications | Full |
| XEP-0184 | Message Delivery Receipts | Full |
| XEP-0308 | Last Message Correction | Full |
| XEP-0313 | Message Archive Management | Full |
| XEP-0333 | Chat Markers | Full |
| XEP-0424 | Message Retraction | Full |
| XEP-0444 | Message Reactions | Full |
| XEP-0449 | Stickers | Full |
| XEP-0461 | Message Replies | Full |
| XEP | Name | Status |
|---|---|---|
| XEP-0054 | vCard-temp | Full |
| XEP-0172 | User Nickname | Full |
| XEP-0292 | vCard4 | Full |
| XEP | Name | Status |
|---|---|---|
| XEP-0384 | OMEMO Encryption | Full |
| XEP-0373 | OpenPGP for XMPP | Full |
| XEP-0448 | Encryption for Stateless File Sharing | Full |
| XEP-0454 | OMEMO Media Sharing | Full |
| XEP | Name | Status |
|---|---|---|
| XEP-0166 | Jingle | Full |
| XEP-0167 | Jingle RTP | Full |
| XEP-0272 | MUJI (Group Calls) | Full |
| XEP-0176 | Jingle ICE | Full |
| XEP-0320 | Jingle DTLS | Full |
| XEP | Name | Status |
|---|---|---|
| XEP-0045 | Multi-User Chat | Full |
| XEP-0249 | Direct MUC Invitations | Full |
| XEP-0421 | Anonymous Unique IDs | Full |
| XEP-0425 | Message Moderation | Full |
| XEP | Name | Status |
|---|---|---|
| XEP-0363 | HTTP File Upload | Full |
| XEP-0234 | Jingle File Transfer | Full |
| XEP-0447 | Stateless File Sharing | Full |
| XEP | Name | Status |
|---|---|---|
| XEP-0030 | Service Discovery | Full |
| XEP-0115 | Entity Capabilities | Full |
| XEP-0198 | Stream Management | Full |
| XEP-0280 | Message Carbons | Full |
| XEP-0352 | Client State Indication | Full |
| XEP-0368 | SRV for XMPP over TLS | Full |
| Resource | Link |
|---|---|
| Website | dinox.handwerker.jetzt |
| Releases | GitHub Releases |
| Issues | Bug Tracker |
| XMPP Chat | dinox@chat.handwerker.jetzt |
| dinox@handwerker.jetzt | |
| Ko-fi | ko-fi.com/rallep |
See CONTRIBUTING.md for how to contribute.
See DEBUG.md for debugging instructions.
GPL-3.0 - See LICENSE for details.
Made for the XMPP community



