DinoX - Secure XMPP messenger for Linux and Windows with encrypted chat, calls, files, optional Tor, MQTT and automation APIs https://dinox.im
  • Vala 84%
  • Shell 5.9%
  • C++ 5%
  • Python 3.3%
  • C 1%
  • Other 0.6%
Find a file
2026-09-13 00:23:00 +02:00
.github build: pin validated MUJI native runtimes for Linux and Windows 2026-09-12 23:27:32 +02:00
.guix/modules Clean public project metadata 2026-05-01 17:56:04 +02:00
ci/images ci: finalize libwebrtc Linux release packaging 2026-07-26 08:20:02 +02:00
crypto-vala Fix libgcrypt initialization order 2026-06-05 07:36:37 +02:00
docs fix(windows): archive Unicode backups through a native helper 2026-09-13 00:23:00 +02:00
google-webrtc fix(muji): commit frozen conference identities to native media 2026-09-12 23:15:44 +02:00
libdino fix(muji): commit frozen conference identities to native media 2026-09-12 23:15:44 +02:00
main fix(windows): archive Unicode backups through a native helper 2026-09-13 00:23:00 +02:00
MQTT/Node Red Examples Clean public project metadata 2026-05-01 17:56:04 +02:00
packaging/flatpak build: pin validated MUJI native runtimes for Linux and Windows 2026-09-12 23:27:32 +02:00
plugins fix(muji): commit frozen conference identities to native media 2026-09-12 23:15:44 +02:00
qlite fix(omemo): harden session persistence and recovery 2026-08-08 10:00:53 +02:00
scripts fix(windows): archive Unicode backups through a native helper 2026-09-13 00:23:00 +02:00
tests audit: 16 spec-based security tests — 14 FAIL = 14 bugs found 2026-02-23 11:42:34 +01:00
xmpp-vala fix(muji): commit frozen conference identities to native media 2026-09-12 23:15:44 +02:00
.dockerignore Harden Flatpak builder image workflow 2026-05-15 12:08:55 +02:00
.gitignore chore: ignore local storage protection plan 2026-08-01 09:51:12 +02:00
.guix-channel packaging: add dinox guix channel 2026-04-22 01:08:15 +02:00
AUTHORS docs: clarify licensing and third-party notices 2026-07-27 08:47:26 +02:00
CONTRIBUTING.md Document Forgejo AGit contribution flow 2026-06-04 12:01:41 +02:00
dino.doap chore: Release version 2.3.0 2026-08-26 18:24:19 +02:00
dino.doap.in docs: audit XEP support claims 2026-08-25 08:44:50 +02:00
im.dinox.dinox.json build: pin validated MUJI native runtimes for Linux and Windows 2026-09-12 23:27:32 +02:00
LICENSE Initial commit 2026-02-02 17:00:26 +01:00
meson.build chore: Release version 2.3.0 2026-08-26 18:24:19 +02:00
meson_options.txt fix(ci): separate WebRTC smokes from package builds 2026-08-23 05:59:16 +02:00
NOTICE Add complete Windows license inventory 2026-07-27 10:03:02 +02:00
README.md docs: align XEP-0353 release metadata 2026-08-26 18:13:43 +02:00
SECURITY.md docs: add root security policy 2026-05-08 06:22:15 +02:00
VERSION chore: Release version 2.3.0 2026-08-26 18:24:19 +02:00

DinoX Logo

DinoX

License: GPL-3.0-or-later GTK4 Release

Secure XMPP messenger for desktop chat, calls, files and automation

DinoX is a GTK4/libadwaita XMPP client for Linux and Windows. It focuses on private messaging, self-hosted infrastructure and practical interoperability: encrypted 1:1 chats, group chats, file sharing, voice/video calls, voice/video messages, optional Tor routing, local data encryption and OpenPGP/OMEMO key management.

Beyond normal messenger use, DinoX includes optional modules for local REST automation, Botmother bot management, AI provider integration, MQTT/IoT topics and DTMF dialpad support for XMPP SIP provider workflows.

DinoX is developed based on the XMPP servers Ejabberd 26.04 and Prosody 13.06. The latest updates or further development of both servers are integrated into DinoX immediately. Other XMPP servers are supported in their basic functions as well, but there is no guarantee they will work flawlessly.

WebsiteSourceReleasesMilestone 2.0.0DownloadFeaturesXEP SupportBuildDebugTestingChangelogContributing


Key Features

Feature Description
Encrypted File Upload AES-GCM encrypted file URLs plus incoming XEP-0448 interoperability; DinoX does not currently emit outgoing ESFS payloads
Local File Encryption Local avatars, stickers and transfers are encrypted at rest (AES-256-GCM)
Secure Deletion Global history deletion with throttling and local cache cleanup
OMEMO Encryption End-to-end encryption for messages and files; legacy OMEMO is enabled, while the OMEMO 2 path remains disabled in stable builds
OpenPGP Encryption XEP-0027 compatibility, XEP-0373 key management and XEP-0374 signcrypt text messages, including key generation, deletion and revocation
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 can remove app OpenPGP material
Disappearing Messages Auto-delete messages after 15min, 30min, 1h, 24h, 7d or 30d
Voice & Video Calls Google/libwebrtc 1:1 calls plus partial private-MUC group calls, with echo cancellation, noise suppression, AGC and transient suppression
DTMF & Dialpad RFC 4733 telephone-event support with Dialpad UI for XMPP SIP Provider telephony (hotlines, IVR, conference controls)
Voice Messages Record and send audio messages (AAC format)
Video Messages Record and send video messages with camera preview (H.264+AAC in MP4, max 720p, 120s)
Inline Video Player Play videos directly in chat (no external player)
Group Chats (MUC) Group chats with moderation, roles and private-room workflows
Tor Routing Optional integrated Tor and Obfs4proxy support
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)
MQTT Plugin IoT sensor data via MQTT 5.0 — topic subscriptions, alerts, sparkline charts, XMPP bridging, Home Assistant integration, Prosody mod_pubsub_mqtt support, ejabberd mod_mqtt support, Node-RED integration with free-text publish/response
MUC Moderation Kick, ban and role management through XEP-0045; moderated message retraction through XEP-0425
TLS Certificate Pinning Trust self-signed certs for self-hosted servers
TLS Certificate Info View TLS certificate details (issuer, validity, fingerprint) in account settings
Backup & Restore Full data backup with optional GPG encryption (AES-256)
Database Maintenance Clean orphaned records, optimize storage
PGP Key Management Generate, select, delete, revoke OpenPGP keys in-app. Automatic key exchange via PEP
47 Languages ~85% translated
Dark Mode System theme or manual toggle

Installation

Windows

Download the newest release that contains a Windows ZIP/prebuild artifact from DinoX Releases. Extract the ZIP archive and run dinox.exe. Keep the complete extracted directory together; it contains the required runtime DLLs and the package-specific license inventory under share/licenses/dinox.

To build DinoX from source on Windows, see the build instructions: Deutsch | English

On first start after unpacking, Windows Defender may briefly scan the extracted files. After that, DinoX should start normally. Calls and media-message capture load the Google/libwebrtc worker on demand; media-file decoding is handled separately by GStreamer.

Geolocation for locations is not available on Windows.

Ubuntu 24.04 / Linux Mint 22 (.deb)

Download the .deb package and matching .sha256 file from a DinoX release that contains Debian-format package artifacts. The official binary .deb is built and tested on Ubuntu 24.04 and Linux Mint 22; it is not the Debian 13 binary package. Debian 13 users should use the AppImage or Flatpak below, or build DinoX from source: DinoX Releases.

sha256sum -c dinox_*.deb.sha256
sudo apt install ./dinox_*.deb

Flatpak

Download the Flatpak bundle and matching checksum from a DinoX release that contains Flatpak artifacts: DinoX Releases.

# Verify and install DinoX
sha256sum -c ./dinox-*-x86_64.flatpak.sha256
flatpak install --user ./dinox-*-x86_64.flatpak

# Run
flatpak run im.dinox.dinox

The bundle installation automatically fetches its required GNOME 50 and matching codec runtimes from the embedded runtime repository when they are not installed yet. A manual flatpak install flathub org.gnome.Platform//50 is only a troubleshooting step if automatic runtime resolution reports an error; it is not part of the normal installation.

AppImage

  • Download the AppImage and matching checksum from a DinoX release that contains AppImage artifacts: DinoX Releases.

    sha256sum -c DinoX-*.AppImage.sha256
    chmod +x DinoX-*.AppImage
    ./DinoX-*.AppImage
    

    The matching .AppImage.sources.tar.xz release asset provides the corresponding-source and license payload. It is not required to run DinoX.

  • Install via AppMan (rootless)

    appman -i dinox
    
  • Install via AM

    am -i dinox
    

Build from Source

DinoX uses Meson/Ninja and normal distribution development packages. Official release packages use a separately provisioned builder image for pinned custom dependency versions. Every production build consumes the public, pinned Google/libwebrtc M150 DinoX runtime artifact. The current source-build reference is Ubuntu 24.04 LTS, Linux Mint 22.x and Debian 13. For complete build instructions and packaging notes, start with the Linux Source Build guide.

Local data encryption

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.

Audio/Video calling notes

DinoX 1:1 calling focuses on cross-client interoperability, notably with Conversations/monocles (Android) and Monal (iOS):

  • Live-call engine: pinned Google/libwebrtc M150 in an external supervised worker process; GStreamer RTP is not a production call fallback.
  • Security profile: mandatory DTLS-SRTP; XMPP/OMEMO verifies the call fingerprint before media is accepted.
  • Baseline codecs: Opus (audio) and VP8 (video). H.264 is not enabled in the default DinoX libwebrtc artifact.
  • Network policy: Automatic by default, with an explicit audio-only low-bandwidth (2G) mode using a 16 kbit/s Opus sender cap.
  • Devices: libwebrtc owns microphone, speaker and camera integration on Linux and Windows. PipeWire, PulseAudio, ALSA and WASAPI are platform details behind that engine rather than separate DinoX call pipelines.

The media paths are deliberately separated:

  • On Linux, Google/libwebrtc captures raw microphone/camera frames for voice and video messages. The ffmpeg command encodes and writes AAC/M4A or H.264+AAC/MP4 files.
  • On Windows, Google/libwebrtc captures the raw frames and Windows Media Foundation encodes and writes the media-message files; a system ffmpeg executable is not used for this path.
  • GStreamer demuxes and decodes received/local media files, extracts metadata and thumbnails, and feeds decoded audio PCM to the selected libwebrtc speaker. It is neither the production call engine nor the Linux recorder muxer.

Google/libwebrtc owns ICE, STUN and TURN for calls. libnice remains packaged only because the separate legacy ICE plugin currently also supplies local address discovery and per-account Tor/SOCKS5 policy hooks to direct Jingle-S5B file transfer. For targeted call diagnostics, see DEBUG.md.

XEP Support

The machine-readable dino.doap file is the authoritative DinoX protocol inventory. The complete matrix below mirrors all 101 XEPs currently claimed there. It was reconciled against the production paths and tests on master, and against the official XSF catalogue on 25 August 2026.

The coverage labels describe DinoX, not the formal maturity of the XEP:

  • Production — shipped and used for the stated DinoX workflow. This does not claim every optional server or component role in the specification.
  • Partial — a clearly bounded subset is shipped.
  • Compatibility — a legacy or supporting profile is used, but it is not a separate complete user feature.
Complete claimed XEP matrix (101 entries)
XEP Official name Coverage DinoX scope
XEP-0004 Data Forms Production Parses, renders and submits the forms used by registration, MUC, PubSub and commands.
XEP-0027 Current Jabber OpenPGP Usage Compatibility Legacy OpenPGP messages and signed presence remain an enabled interoperability path.
XEP-0030 Service Discovery Production Disco info/items, feature advertisement and capability caching.
XEP-0045 Multi-User Chat Partial Common join, invitation, configuration, moderation, role and private-room workflows; not every optional historical role.
XEP-0047 In-Band Bytestreams Compatibility Bytestream substrate used by XEP-0261.
XEP-0048 Bookmarks Compatibility Legacy bookmark fallback; XEP-0402 is preferred when the server advertises conversion.
XEP-0049 Private XML Storage Production Reads and writes the legacy private XML data used by fallback workflows.
XEP-0050 Ad-Hoc Commands Partial Discovers and executes multi-step remote commands and supports local handlers; DinoX is not a general command server.
XEP-0054 vcard-temp Production Reads and writes vCard-temp data, including the vCard avatar path.
XEP-0055 Jabber Search Production Discovers search services and submits legacy or data-form searches.
XEP-0059 Result Set Management Partial Paging support used by MAM queries.
XEP-0060 Publish-Subscribe Partial PubSub/PEP operations required by shipped features, not a general PubSub administration client.
XEP-0065 SOCKS5 Bytestreams Compatibility Discovery and proxy substrate used by XEP-0260.
XEP-0066 Out of Band Data Production HTTP-upload links and interoperable file fallbacks.
XEP-0077 In-Band Registration Production Registration forms, submission and the pre-authenticated registration integration.
XEP-0080 User Location Production Publishes and displays location data where the platform supports it.
XEP-0082 XMPP Date and Time Profiles Production Parses and emits XMPP date/time values.
XEP-0084 User Avatar Production Publishes, retrieves and removes PEP avatars.
XEP-0085 Chat State Notifications Production Sends and receives chat states subject to privacy settings.
XEP-0092 Software Version Production Answers software-version requests.
XEP-0104 HTTP Scheme for URL Data Compatibility Serialises HTTP sources used by thumbnails, stickers and file-sharing payloads.
XEP-0115 Entity Capabilities Production Advertises and verifies capability hashes.
XEP-0128 Service Discovery Extensions Partial Consumes extended disco forms for MUC room information and HTTP upload limits.
XEP-0133 Service Administration Partial Exposes server-advertised administration commands through XEP-0050; server-specific commands remain separate.
XEP-0153 vCard-Based Avatars Compatibility Receives and sends avatar hashes in normal and directed MUC presence alongside XEP-0084.
XEP-0158 CAPTCHA Forms Production Handles CAPTCHA fields in registration/data-form workflows.
XEP-0163 Personal Eventing Protocol Production PEP event and storage layer for avatars, bookmarks, keys and displayed-state sync.
XEP-0166 Jingle Partial Session subset required by calls and direct file transfer.
XEP-0167 Jingle RTP Sessions Partial Audio/video RTP subset bridged to the Google/libwebrtc worker.
XEP-0172 User Nickname Production Publishes and consumes PEP nicknames.
XEP-0176 Jingle ICE-UDP Transport Method Partial Call transport mapped to libwebrtc ICE; not every historical transport path is claimed.
XEP-0184 Message Delivery Receipts Production Sends, receives and displays delivery receipts where the peer supports them.
XEP-0191 Blocking Command Production Retrieves and changes the server block list.
XEP-0198 Stream Management Production Stream acknowledgement and resumption on the stable connection path.
XEP-0199 XMPP Ping Production Client and MUC liveness pings.
XEP-0202 Entity Time Partial Requests and answers entity-time queries with per-account timezone sharing control; focused protocol regression coverage is still missing.
XEP-0203 Delayed Delivery Production Parses archived/offline message timestamps.
XEP-0215 External Service Discovery Partial Discovers STUN/TURN services needed by calls.
XEP-0221 Data Forms Media Element Partial Parses and displays media embedded in data forms.
XEP-0222 Persistent Storage of Public Data via PubSub Compatibility Public PEP storage profile used by feature payloads.
XEP-0223 Persistent Storage of Private Data via PubSub Compatibility Private/whitelist PEP storage profile used by feature payloads.
XEP-0231 Bits of Binary Compatibility Retrieves and renders embedded binary data used by forms and related payloads.
XEP-0234 Jingle File Transfer Partial Direct send/receive with the supported S5B and IBB transports; not every optional profile.
XEP-0245 The /me Command Production Sends and renders action messages.
XEP-0249 Direct MUC Invitations Partial Receives direct invitations and has an internal sender; the normal room invitation UI deliberately uses mediated XEP-0045 invitations.
XEP-0260 Jingle SOCKS5 Bytestreams Transport Method Production Direct and proxy-capable Jingle file-transfer transport with account routing policy.
XEP-0261 Jingle In-Band Bytestreams Transport Method Production IBB fallback transport for Jingle file transfer.
XEP-0264 Jingle Content Thumbnails Partial Thumbnail elements are used in SFS metadata; direct XEP-0234 offers do not carry them.
XEP-0272 Multiparty Jingle (Muji) Partial Private-MUC group-session lifecycle is implemented; broader external-client interoperability still needs verification.
XEP-0280 Message Carbons Production Synchronises sent and received messages across resources.
XEP-0292 vCard4 Over XMPP Partial Reads and publishes the vCard4 fields used by DinoX.
XEP-0293 Jingle RTP Feedback Negotiation Partial Maps supported RTCP feedback between Jingle and libwebrtc SDP.
XEP-0294 Jingle RTP Header Extensions Negotiation Partial Maps supported RTP header extensions between Jingle and libwebrtc SDP.
XEP-0297 Stanza Forwarding Partial Forwarded stanza handling for MAM and carbons, not a generic forwarding feature.
XEP-0298 Delivering Conference Information to Jingle Participants (Coin) Partial Parses conference information used by the call UI.
XEP-0300 Use of Cryptographic Hash Functions in XMPP Production Hash parsing and serialisation for avatars, files and thumbnails.
XEP-0308 Last Message Correction Production Sends, receives and projects message edits.
XEP-0313 Message Archive Management Partial MAM2 history synchronisation and paging; not general archive administration.
XEP-0317 Hats Partial Parses and displays hats and supports the advertised hat administration commands used by DinoX.
XEP-0320 Use of DTLS-SRTP in Jingle Sessions Production Mandatory fingerprinted DTLS-SRTP on the current call path.
XEP-0333 Displayed Markers Production Read/displayed projection for 1:1, MUC and private-MUC conversations, subject to settings and peer support.
XEP-0334 Message Processing Hints Partial Emits and consumes the hints required by the shipped message workflows.
XEP-0352 Client State Indication Production Reports foreground/background state to the server.
XEP-0353 Jingle Message Initiation Production XEP-0353 0.8.0 lifecycle for one-to-one Google/libwebrtc calls, including ringing, finish reasons, tie-breaking, full-JID migration and passive MAM/Carbon recovery. Private-room MUJI calls use their separate XEP-0272/XEP-0482 lifecycle.
XEP-0359 Unique and Stable Stanza IDs Production Origin, stanza and stable IDs used for deduplication and message actions.
XEP-0363 HTTP File Upload Production Slot discovery/request, upload limits, headers, errors and legacy/current namespace interop.
XEP-0367 Message Attaching Partial Attach-to handling used for stateless file-source updates.
XEP-0368 SRV records for XMPP over TLS Production Resolves direct-TLS client SRV records.
XEP-0372 References Partial Parses and emits MUC mention references; other reference types are not claimed.
XEP-0373 OpenPGP for XMPP Production Publishes, retrieves and verifies OpenPGP keys through PEP.
XEP-0374 OpenPGP for XMPP Instant Messaging Partial Production supports signcrypt text messages; sign-only, crypt-only and arbitrary protected payloads are not wired into the runtime.
XEP-0379 Pre-Authenticated Roster Subscription Production Parses invitation links and sends token-bearing subscription requests.
XEP-0380 Explicit Message Encryption Partial Adds explicit-encryption metadata to outgoing encrypted messages.
XEP-0384 OMEMO Encryption Partial Legacy OMEMO is enabled in production; OMEMO 2 source/tests exist but are disabled in stable builds.
XEP-0391 Jingle Encrypted Transports Partial JET framework used by encrypted direct file transfer.
XEP-0392 Consistent Color Generation Production Deterministic contact and participant colours.
XEP-0393 Message Styling Partial Supports the styling syntax rendered by the DinoX message view.
XEP-0394 Message Markup Partial Emphasis, strong-emphasis and deletion spans; other span types are not claimed.
XEP-0396 Jingle Encrypted Transports - OMEMO Production Enabled JET-OMEMO path uses the production legacy OMEMO namespace.
XEP-0401 Ad-hoc Account Invitation Generation Partial Discovers and executes invitation commands and parses returned account or roster invitation URIs.
XEP-0402 PEP Native Bookmarks Production Reads, publishes, updates and removes PEP bookmarks.
XEP-0410 MUC Self-Ping (Schrödinger's Chat) Production Checks room liveness and drives rejoin recovery.
XEP-0411 Bookmarks Conversion Compatibility Uses the deprecated compatibility feature only to select XEP-0402 or XEP-0048.
XEP-0421 Occupant identifiers for semi-anonymous MUCs Production Parses, stores and uses occupant IDs for stable MUC identity.
XEP-0422 Message Fastening Compatibility Parses and emits the older fastening wrapper only for retraction interoperability.
XEP-0424 Message Retraction Production Current direct retraction plus older namespace/wrapper interop, fallback handling and local projection.
XEP-0425 Moderated Message Retraction Partial Moderator-side retraction works; actor/reason metadata and MAM tombstones are not represented separately. Kick, ban and roles are XEP-0045.
XEP-0428 Fallback Indication Partial Fallback ranges used by replies and retractions.
XEP-0440 SASL Channel-Binding Type Capability Production SASL1 SCRAM-PLUS negotiates tls-exporter or tls-server-end-point; this is not a SASL2 claim.
XEP-0444 Message Reactions Production Sends, receives, aggregates and removes reactions.
XEP-0445 Pre-Authenticated In-Band Registration Production Discovers support and submits the pre-authentication token during registration.
XEP-0446 File metadata element Partial Implements the metadata fields used by DinoX file-sharing paths.
XEP-0447 Stateless file sharing Partial HTTP sources and source updates; not every source type or optional field.
XEP-0448 Encryption for stateless file sharing Partial Incoming ESFS is validated and decrypted; outgoing encryption uses the aesgcm URL body path instead of emitting ESFS.
XEP-0449 Stickers Production Publishes, retrieves and sends sticker packs.
XEP-0453 DOAP usage in XMPP Production The authoritative dino.doap capability document follows this profile.
XEP-0454 OMEMO Media sharing Partial Encrypted media sharing without embedded-thumbnail support.
XEP-0461 Message Replies Production Replies, quoted fallback removal and sender validation.
XEP-0482 Call Invites Partial Jingle/MUJI invite, accept, retract, reject and left signalling for private-MUC calls; broader external-client interoperability remains unverified.
XEP-0486 MUC Avatars Production Discovers bookmarked-room avatars before joining, verifies advertised roominfo hashes against vCard image bytes, follows status-code 104 refreshes, and supports joined-room publication and removal. Live ejabberd/Gajim interoperability covers these client paths. Discovery runs one room at a time in bounded, refillable batches; conference-list and member-list rows remain local-cache-only.
XEP-0490 Message Displayed Synchronization Production Regular PEP sync, capability-gated server assistance and regular PEP for private-MUC conversations.

Known gaps and next protocol work

These are explicit non-claims, not hidden implementation details:

XEP Current state Required follow-up
XEP-0177 Non-operational skeleton Stop advertising Raw UDP unless a real connection path is implemented.
XEP-0338 Not implemented Decide whether call interoperability requires Jingle grouping/BUNDLE; current audio/video contents use separate transports.
XEP-0357 Roadmap Implement only when a tested desktop push use case and server matrix are defined.
XEP-0374 Signcrypt text only Wire and test sign-only, crypt-only and other protected payloads before claiming the complete IM profile.
XEP-0384 / XEP-0420 Legacy OMEMO is claimed; OMEMO 2/SCE is not claimed in stable builds Complete multi-client migration, downgrade and SCE interoperability gates before enabling the stable runtime.
XEP-0386 / XEP-0388 / XEP-0484 Feature branch only Rebase and merge SASL2/Bind2/FAST only after the upstream/server fixes and safe token-migration tests are available.
XEP-0398 Not implemented Add conversion-feature discovery and directed-presence refresh only if this compatibility path is needed.
XEP-0425 Partial moderation metadata Preserve moderator, reason and archived tombstone details if the UI and local model are extended for them.
XEP-0426 Not implemented Implement only if protocol-level character counting becomes a DinoX requirement.
XEP-0448 Incoming only Add an outgoing ESFS producer and wire-level tests before claiming bidirectional support.
XEP-0272 / XEP-0482 Partial Extend real server/client interoperability testing beyond DinoX's internal and same-client coverage.

DinoX does not aim to implement every XEP in the catalogue. New claims should be added only when a production call path and its exact boundary can be shown in code and tests.

Screenshots

DinoX chat window Private MUC Rooms

Voice Messages Data Backup

Resources

Resource Link
Website dinox.im
Source git.dinox.im/dinoxim/dinox
Releases DinoX Releases
Milestone DinoX 2.0.0 Relaunch
Issues Bug Tracker
Security Security Policy
XMPP Chat Room dinox@conference.dinox.im
XMPP Contact dinox@dinox.im
Email contact@dinox.im

Contributing

Use Forgejo Issues for bug reports and feature requests. For code changes, DinoX uses Forgejo AGit pull requests instead of forks:

git clone ssh://git@git.dinox.im:2222/dinoxim/dinox.git
cd dinox
git checkout -b fix-short-topic
# edit, build, test, commit
git push origin HEAD:refs/for/master -o topic="fix-short-topic"

See CONTRIBUTING.md for the full contributor workflow.

Debug Mode

See DEBUG.md for debugging instructions.

License

DinoX is free software licensed under GPL-3.0-or-later. Copyright and fork attribution are recorded in NOTICE.

Official Linux binary packages and the portable Windows distribution also contain third-party components under their respective licenses. Package-specific notices are installed with DinoX. The Windows ZIP contains hash-bound inventories for every packaged PE file, bundled third-party runtime assets, embedded Google/libwebrtc and Lyrebird Go components, and every included license file, but no large source archives or build caches. Large corresponding source payloads for the AppImage are published as a separate matching .AppImage.sources.tar.xz release asset, so they do not enlarge the runnable AppImage and are not required to run it. See the build and packaging documentation and the Flatpak third-party inventory for details.


Made for the XMPP community

Repository | Report Issues