# XMPP

**URL:** <https://discuss.88.io/t/xmpp/396>\
**Category:** qrcode identity\
**Created:** [January 31, 2021, 1:00pm UTC](https://discuss.88.io/t/xmpp/396 "2021-01-31T13:00:00Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![admin](https://discuss.88.io/user_avatar/discuss.88.io/admin/32/38_2.png) [@admin](https://discuss.88.io/u/admin)\
**Post date:** [January 31, 2021, 1:00pm UTC](https://discuss.88.io/t/xmpp/396/1 "2021-01-31T13:00:00Z")

</div>

# XMPP

[XMPP](https://xmpp.org/) is an open chat protocols that has been around for [more than 25 years](https://slashdot.org/story/99/01/04/1621211/open-real-time-messaging-system). It has been "stolen" by many (e.g. whatsapp still shamelessly use the "jid") but is still going strong today.

 ![xmpp](https://discuss.88.io/uploads/default/original/2X/9/9ab84cd70a0d5162bc65a5736a95b8c9da3f2d7e.png)

XMPP was used by many Cloud providers (Google, Facebook etc.) to develop their own proprietary chat services. Unfortunately after using XMPP as a quick start to suck in their user base almost zero of them contributed back, in fact most went opposite to its philosophy and cut off XMPP support to lock their user base in.

## 1. Compared with Other Protocols

Although much older, XMPP has been constantly evolving and remains superior to newer federated messaging protocols like [Matrix](https://matrix.org/) (e.g. used by [Element](https://element.io/)) and [Activitypub](https://en.wikipedia.org/wiki/ActivityPub) (e.g. used by [Mastodon](https://docs.joinmastodon.org/)) for realtime chatting between humans.

Team Compute can make use of ANY chat protocol, but XMPP has been selected as the default instead of Matrix because:

1. Matrix has only one stable server (e.g. [Synapse](https://matrix.org/ecosystem/servers/)) while XMPP has many stable servers (e.g. [ejabberd, prosody, openfire etc.](https://xmpp.org/software/?platform=all-platforms)).
2. Matrix was designed for [synchronisation](https://spec.matrix.org/latest/#architecture) while XMPP has been designed for [messaging](https://xmpp.org/about/technology-overview/).

XMPP to Matrix bridges (e.g. [Matridge](https://codeberg.org/slidge/matridge) and [Matrix-bifrost](https://ems-docs.element.io/books/element-support/page/using-the-matrix-xmpp-bridge-as-an-end-user)) are available for bridging between XMPP and Matrix.

## 2. End-to-End Encryption

XMPP mostly use one of two end-to-end encryption schemes, [OMEMO](https://en.wikipedia.org/wiki/OMEMO) and [OTR](https://en.wikipedia.org/wiki/Off-the-record_messaging).

Some good discussion of both is available here:

- [OTR versus OMEMO - #7 by 0x1f - Development - Whonix Forum](https://forums.whonix.org/t/otr-versus-omemo/14063/7)
- [An odyssey of encryption in XMPP](https://another.im/news/an-odyssey-of-encryption-in-xmpp.html)
- [Tech Pages/XMPP E2E Security - XMPP WIKI](https://wiki.xmpp.org/web/XMPP_E2E_Security)

There has been at least one [third-party audit](https://conversations.im/omemo/audit.pdf) of OMEMO, but both are better than FAKE end-to-end encryption apps (e.g. Whatsapp) that runs your message server AND gives you a closed source client.

Increasing number of XMMP client now supports the [OMEMO](https://xmpp.org/extensions/xep-0384.html#intro-motivation) end-to-end encryption standard:

> **[Are we OMEMO yet?](https://omemo.top/)**
>
> Tracking the progress of OMEMO integration in XMPP clients.

WARNING: Just because an XMPP client supports OMEMO does not mean that the attachments (the files uploaded) are also encrypted. For example, as of 2025-07-01, Movim does NOT encrypt the uploaded files while Converse DOES. Please check the XMPP client you are using.

## 3. Multi-User Chat

XMPP's Multi-User Chat (MUC) is not federated, which can be a problem in certain applications.

MUC federation standard has been proposed, but have no been taken up by the XMPP community at this stage.

> **[XEP-0289: Federated MUC for Constrained Environments](https://xmpp.org/extensions/xep-0289.html)**
>
> This document provides a protocol for federating MUC rooms together in order to reduce the effects of constrained network (e.g. unreliability, severely limited bandwidth) on the room occupants.

# References

- [https://xmpp.org/](https://xmpp.org/)
- [https://docs.modernxmpp.org/](https://docs.modernxmpp.org/)
- [https://xmppbl.org/](https://xmppbl.org/)
- [https://compliance.conversations.im/](https://compliance.conversations.im/)
- [22 companies using XMPP and ejabberd to build instant messaging services | RST Software](https://www.rst.software/blog/22-companies-using-xmpp-and-ejabberd-to-build-instant-messaging-services)
- [XMPP, A Comeback Story: A 20 Year Old Messaging Protocol For Robust, Private and Decentralized Communications](https://takebackourtech.org/xmpp-comeback/)
- [free messenger](https://www.freie-messenger.de/en/grundsaetzliches/)

---

<div class="post-metadata">

**Author:** ![admin](https://discuss.88.io/user_avatar/discuss.88.io/admin/32/38_2.png) [@admin](https://discuss.88.io/u/admin)\
**Post date:** [September 12, 2021, 11:41pm UTC](https://discuss.88.io/t/xmpp/396/2 "2021-09-12T23:41:59Z")

</div>

# XMPP Web Clients

Web browser based XMPP clients can be used without software installation on your device:

1. [movim](https://movim.eu/) xmpp client (this is the default)
2. [converse.js](https://conversejs.org/) xmpp client (has [plugins](https://github.com/conversejs/community-plugins)).

All support end-to-end encryption using OMEMO (although might not cover all information exchanges e.g. encrypted text chat but not file sharing).

Some other interesting XMPP Web Clients (no tested yet):

1. [https://libervia.org](https://libervia.org)
2. [https://moxxy.org](https://moxxy.org)

Below we are comparing those 2 web clients with each other and with another popular but less active web client called [jsxc](https://www.jsxc.org/) which is available as an option inside Data Nodes under the Nextcloud module.

| conversejs\_web | jsxc\_web | movim\_web | url | note |
| --- | --- | --- | --- | --- |
| RFC-7395 | | | [RFC 7395 - An Extensible Messaging and Presence Protocol (XMPP) Subprotocol for WebSocket](https://datatracker.ietf.org/doc/html/rfc7395) | |
| XEP-0004 | XEP-0004 | XEP-0004 | [https://xmpp.org/extensions/xep-0004.html](https://xmpp.org/extensions/xep-0004.html) | |
| | | XEP-0012 | [XEP-0012: Last Activity](https://xmpp.org/extensions/xep-0012.html) | |
| XEP-0030 | XEP-0030 | XEP-0030 | [XEP-0030: Service Discovery](https://xmpp.org/extensions/xep-0030.html) | |
| XEP-0045 | XEP-0045 | XEP-0045 | [XEP-0045: Multi-User Chat](https://xmpp.org/extensions/xep-0045.html) | |
| XEP-0048 | XEP-0048 | XEP-0048 | [XEP-0048: Bookmarks](https://xmpp.org/extensions/xep-0048.html) | |
| | | XEP-0049 | [XEP-0049: Private XML Storage](https://xmpp.org/extensions/xep-0049.html) | |
| XEP-0050 | | XEP-0050 | [XEP-0050: Ad-Hoc Commands](https://xmpp.org/extensions/xep-0050.html) | |
| XEP-0054 | XEP-0054 | XEP-0054 | [XEP-0054: vcard-temp](https://xmpp.org/extensions/xep-0054.html) | |
| XEP-0059 | | XEP-0059 | [XEP-0059: Result Set Management](https://xmpp.org/extensions/xep-0059.html) | |
| XEP-0060 | XEP-0060 | XEP-0060 | [XEP-0060: Publish-Subscribe](https://xmpp.org/extensions/xep-0060.html) | |
| XEP-0066 | | | [XEP-0066: Out of Band Data](https://xmpp.org/extensions/xep-0066.html) | |
| | | XEP-0070 | [XEP-0070: Verifying HTTP Requests via XMPP](https://xmpp.org/extensions/xep-0070.html) | |
| | | XEP-0071 | [XEP-0071: XHTML-IM](https://xmpp.org/extensions/xep-0071.html) | |
| XEP-0077 | XEP-0077 | XEP-0077 | [XEP-0077: In-Band Registration](https://xmpp.org/extensions/xep-0077.html) | |
| | | XEP-0080 | [XEP-0080: User Location](https://xmpp.org/extensions/xep-0080.html) | |
| | | XEP-0084 | [XEP-0084: User Avatar](https://xmpp.org/extensions/xep-0084.html) | |
| XEP-0085 | XEP-0085 | XEP-0085 | [XEP-0085: Chat State Notifications](https://xmpp.org/extensions/xep-0085.html) | |
| | XEP-0092 | XEP-0092 | [XEP-0092: Software Version](https://xmpp.org/extensions/xep-0092.html) | |
| | | XEP-0100 | [XEP-0100: Gateway Interaction](https://xmpp.org/extensions/xep-0100.html) | |
| | XEP-0106 | | [XEP-0106: JID Escaping](https://xmpp.org/extensions/xep-0106.html) | |
| | | XEP-0107 | [XEP-0107: User Mood](https://xmpp.org/extensions/xep-0107.html) | |
| | | XEP-0108 | [XEP-0108: User Activity](https://xmpp.org/extensions/xep-0108.html) | |
| XEP-0115 | XEP-0115 | XEP-0115 | [XEP-0115: Entity Capabilities](https://xmpp.org/extensions/xep-0115.html) | |
| | | XEP-0118 | [XEP-0118: User Tune](https://xmpp.org/extensions/xep-0118.html) | |
| XEP-0124 | XEP-0124 | XEP-0124 | [XEP-0124: Bidirectional-streams Over Synchronous HTTP (BOSH)](https://xmpp.org/extensions/xep-0124.html) | |
| XEP-0144 | | | [XEP-0144: Roster Item Exchange](https://xmpp.org/extensions/xep-0144.html) | |
| | XEP-0147 | | [XEP-0147: XMPP URI Scheme Query Components](https://xmpp.org/extensions/xep-0147.html) | |
| | XEP-0153 | XEP-0153 | [XEP-0153: vCard-Based Avatars](https://xmpp.org/extensions/xep-0153.html) | |
| XEP-0156 | | | [XEP-0156: Discovering Alternative XMPP Connection Methods](https://xmpp.org/extensions/xep-0156.html) | |
| | | XEP-0157 | [XEP-0157: Contact Addresses for XMPP Services](https://xmpp.org/extensions/xep-0157.html) | |
| XEP-0163 | | XEP-0163 | [XEP-0163: Personal Eventing Protocol](https://xmpp.org/extensions/xep-0163.html) | |
| | XEP-0166 | | [XEP-0166: Jingle](https://xmpp.org/extensions/xep-0166.html) | |
| | XEP-0167 | | [XEP-0167: Jingle RTP Sessions](https://xmpp.org/extensions/xep-0167.html) | |
| | | XEP-0172 | [XEP-0172: User Nickname](https://xmpp.org/extensions/xep-0172.html) | |
| XEP-0184 | XEP-0184 | XEP-0184 | [XEP-0184: Message Delivery Receipts](https://xmpp.org/extensions/xep-0184.html) | |
| XEP-0198 | | | [XEP-0198: Stream Management](https://xmpp.org/extensions/xep-0198.html) | |
| XEP-0199 | | XEP-0199 | [XEP-0199: XMPP Ping](https://xmpp.org/extensions/xep-0199.html) | |
| XEP-0203 | XEP-0203 | | [XEP-0203: Delayed Delivery](https://xmpp.org/extensions/xep-0203.html) | |
| XEP-0206 | XEP-0206 | XEP-0206 | [XEP-0206: XMPP Over BOSH](https://xmpp.org/extensions/xep-0206.html) | |
| | | XEP-0224 | [XEP-0224: Attention](https://xmpp.org/extensions/xep-0224.html) | |
| | | XEP-0231 | [XEP-0231: Bits of Binary](https://xmpp.org/extensions/xep-0231.html) | |
| | XEP-0234 | | [XEP-0234: Jingle File Transfer](https://xmpp.org/extensions/xep-0234.html) | |
| XEP-0245 | XEP-0245 | XEP-0245 | [XEP-0245: The /me Command](https://xmpp.org/extensions/xep-0245.html) | |
| XEP-0249 | XEP-0249 | | [XEP-0249: Direct MUC Invitations](https://xmpp.org/extensions/xep-0249.html) | |
| | | XEP-0256 | [XEP-0256: Last Activity in Presence](https://xmpp.org/extensions/xep-0256.html) | |
| | | XEP-0277 | [XEP-0277: Microblogging over XMPP](https://xmpp.org/extensions/xep-0277.html) | |
| XEP-0280 | XEP-0280 | XEP-0280 | [XEP-0280: Message Carbons](https://xmpp.org/extensions/xep-0280.html) | |
| | | XEP-0292 | [XEP-0292: vCard4 Over XMPP](https://xmpp.org/extensions/xep-0292.html) | |
| XEP-0297 | XEP-0297 | | [XEP-0297: Stanza Forwarding](https://xmpp.org/extensions/xep-0297.html) | |
| XEP-0308 | | | [https://xmpp.org/extensions/xep-0308.html](https://xmpp.org/extensions/xep-0308.html) | |
| XEP-0313 | XEP-0313 | XEP-0313 | [https://xmpp.org/extensions/xep-0313.html](https://xmpp.org/extensions/xep-0313.html) | |
| XEP-0316 | | | [https://xmpp.org/extensions/xep-0316.html](https://xmpp.org/extensions/xep-0316.html) | |
| XEP-0317 | | | [https://xmpp.org/extensions/xep-0317.html](https://xmpp.org/extensions/xep-0317.html) | |
| | | XEP-0330 | [https://xmpp.org/extensions/xep-0330.html](https://xmpp.org/extensions/xep-0330.html) | |
| XEP-0333 | | XEP-0333 | [https://xmpp.org/extensions/xep-0333.html](https://xmpp.org/extensions/xep-0333.html) | |
| | | XEP-0334 | [https://xmpp.org/extensions/xep-0334.html](https://xmpp.org/extensions/xep-0334.html) | |
| XEP-0352 | | | [https://xmpp.org/extensions/xep-0352.html](https://xmpp.org/extensions/xep-0352.html) | |
| XEP-0357 | | | [https://xmpp.org/extensions/xep-0357.html](https://xmpp.org/extensions/xep-0357.html) | |
| XEP-0359 | | | [https://xmpp.org/extensions/xep-0359.html](https://xmpp.org/extensions/xep-0359.html) | |
| XEP-0363 | XEP-0363 | XEP-0363 | [https://xmpp.org/extensions/xep-0363.html](https://xmpp.org/extensions/xep-0363.html) | |
| XEP-0372 | | | [https://xmpp.org/extensions/xep-0372.html](https://xmpp.org/extensions/xep-0372.html) | |
| XEP-0382 | | | [https://xmpp.org/extensions/xep-0382.html](https://xmpp.org/extensions/xep-0382.html) | |
| XEP-0384 | XEP-0384 | | [https://xmpp.org/extensions/xep-0384.html](https://xmpp.org/extensions/xep-0384.html) | |
| | | XEP-0385 | [https://xmpp.org/extensions/xep-0385.html](https://xmpp.org/extensions/xep-0385.html) | |
| | XEP-0392 | | [https://xmpp.org/extensions/xep-0392.html](https://xmpp.org/extensions/xep-0392.html) | |
| XEP-0393 | | | [https://xmpp.org/extensions/xep-0393.html](https://xmpp.org/extensions/xep-0393.html) | |
| XEP-0422 | | | [https://xmpp.org/extensions/xep-0422.html](https://xmpp.org/extensions/xep-0422.html) | |
| XEP-0424 | | | [https://xmpp.org/extensions/xep-0424.html](https://xmpp.org/extensions/xep-0424.html) | |
| XEP-0425 | | | [https://xmpp.org/extensions/xep-0425.html](https://xmpp.org/extensions/xep-0425.html) | |
| XEP-0437 | | | [https://xmpp.org/extensions/xep-0437.html](https://xmpp.org/extensions/xep-0437.html) | |
| XEP-0444 | | | [https://xmpp.org/extensions/xep-0444.html](https://xmpp.org/extensions/xep-0444.html) | |
| XEP-0453 | | | [https://xmpp.org/extensions/xep-0453.html](https://xmpp.org/extensions/xep-0453.html) | |
| XEP-0454 | | | [https://xmpp.org/extensions/xep-0454.html](https://xmpp.org/extensions/xep-0454.html) | |
| | | XEP-0461 | [https://xmpp.org/extensions/xep-0461.html](https://xmpp.org/extensions/xep-0461.html) | |

The above XMPP feature table is for reference only and will be out of date almost immediately after it is published.

## Movim

### Demos

- [chat.88.io](http://chat.88.io)
- [chat.aunsw.88.io](http://chat.aunsw.88.io)

Get access to both above at [138813.au](http://138813.au)

### Releases

Minimum supported release is 0.31  
[https://github.com/movim/movim/releases](https://github.com/movim/movim/releases)

---

<div class="post-metadata">

**Author:** ![admin](https://discuss.88.io/user_avatar/discuss.88.io/admin/32/38_2.png) [@admin](https://discuss.88.io/u/admin)\
**Post date:** [May 2, 2022, 10:16pm UTC](https://discuss.88.io/t/xmpp/396/3 "2022-05-02T22:16:01Z")

</div>

# XMPP iOS Clients

Reviews of some iOS clients:

- [XMPP Push Notification Test (iOS) - eversten.net](https://eversten.net/en/blog/notification/)

## 1. Monal IM

Monal is recommended for iOS.

> **[Monal](https://monal-im.org/)**
>
> \- this md intentionally left for our root page -

### Source Code

> **[GitHub - monal-im/Monal: Monal for XMPP (iOS and macOS)](https://github.com/monal-im/Monal)**
>
> Monal for XMPP (iOS and macOS)

### Call Limit

If you are missing the call icon on iOS as well, this can happen if your phone is set to a region where Apple restricts CallKit, changing your iOS region might help.

## 2. Siskin

> **[Siskin IM](https://siskin.im/)**
>
> Lightweight and powerful XMPP client for iPhone and iPad, with audio and video calls and built-in privacy

### Source Code

> **[GitHub - tigase/siskin-im: Public Project of Tigase Messenger for iOS devices...](https://github.com/tigase/siskin-im)**
>
> Public Project of Tigase Messenger for iOS devices based on Tigase Swift XMPP library.

### Documentation

[https://docs.tigase.net/projects/tigase-siskin-im/en/latest/](https://docs.tigase.net/projects/tigase-siskin-im/en/latest/)

## 3. ChatSecure

Note ChatSecure has NOT been updated for a while, but as of 2025-07-01 it is still available on Apple App Store.

> **[chatsecure.github.io](https://chatsecure.org/)**
>
> Free and open source encrypted chat for iOS.

### Source Code

> **[GitHub - ChatSecure/ChatSecure-iOS: ChatSecure is a free and open source encrypted...](https://github.com/ChatSecure/ChatSecure-iOS)**
>
> ChatSecure is a free and open source encrypted chat client for iOS that supports OTR and OMEMO encryption over XMPP.

---

<div class="post-metadata">

**Author:** ![admin](https://discuss.88.io/user_avatar/discuss.88.io/admin/32/38_2.png) [@admin](https://discuss.88.io/u/admin)\
**Post date:** [May 3, 2022, 10:53pm UTC](https://discuss.88.io/t/xmpp/396/4 "2022-05-03T22:53:19Z")

</div>

# XMPP Android Clients

There is currently no perfect XMMP client for Android.

- Conversations can search by messages while aTalk cannot.
- aTalk uses ZRTP to [secure RTP streams](https://cmeng-git.github.io/atalk/faq.html#media_05) while Conversations does not.

## 1. Conversations

Conversations is recommended for Android.

> **[Conversations - Jabber/XMPP client for Android](https://conversations.im/)**
>
> An open source instant messaging client. Easy to use, reliable, battery friendly. With built-in support for e2e encryption, group chats and media transfer.

### Source Code

[https://github.com/iNPUTmice/Conversations](https://github.com/iNPUTmice/Conversations)

### Download

> **[Conversations | F-Droid - Free and Open Source Android App Repository](https://f-droid.org/packages/eu.siacs.conversations/)**
>
> Encrypted, easy-to-use XMPP instant messenger for your mobile device

> <https://play.google.com/store/apps/details?id=eu.siacs.conversations>
>
> Federated instant messaging for your mobile device (Jabber, XMPP, Snikket...

## 2. aTalk

> **[aTalk.org](https://cmeng-git.github.io/atalk/)**
>
> Sublime Stunning free HTML5/CSS3 website template

### Source Code

> **[GitHub - cmeng-git/atalk-android: xmpp/jabber client for android](https://github.com/cmeng-git/atalk-android)**
>
> xmpp/jabber client for android

### Download

> **[aTalk | F-Droid - Free and Open Source Android App Repository](https://f-droid.org/en/packages/org.atalk.android/)**
>
> XMPP/Jabber client with encrypted instant messaging and video calls

> <https://play.google.com/store/apps/details?id=org.atalk.android>
>
> An encrypted instant messaging with video call and GPS features for androi...

---

<div class="post-metadata">

**Author:** ![admin](https://discuss.88.io/user_avatar/discuss.88.io/admin/32/38_2.png) [@admin](https://discuss.88.io/u/admin)\
**Post date:** [May 4, 2022, 1:07am UTC](https://discuss.88.io/t/xmpp/396/5 "2022-05-04T01:07:32Z")

</div>

# XMPP macOS Clients

## 1. Beagle IM

Beagle IM is recommended for macOS

> **[Beagle IM](https://beagle.im/)**
>
> Lightweight and powerful XMPP client for macOS, with audio and video calls and built-in privacy

### Source Code

> **[GitHub - tigase/beagle-im: XMPP client for macOS based on TigaseSwift XMPP...](https://github.com/tigase/beagle-im)**
>
> XMPP client for macOS based on TigaseSwift XMPP library

## 2. Monal IM

> **[Monal](https://monal-im.org/)**
>
> \- this md intentionally left for our root page -

### Better Privacy

You should:

1. Turn OFF sending data to Apple Maps
2. Stop "previews of web sites" so you visit an URL only when you click on it.

 ![Screenshot 2026-09-22 at 10.14.30 am](https://discuss.88.io/uploads/default/original/2X/e/ec7d5702cb29b1daf855002cd346ab107b5748e6.jpeg)

### Call Limitation

The missing call button in Monal for macOS is due to a temporary limitation in the Mac version's user interface.

While the iOS version utilizes Apple's CallKit framework to seamlessly handle VoIP and audio/video calls, the macOS application interface is still catching up. The developers have been incrementally rewriting the codebase to achieve full feature parity across platforms. Audio and video calling capabilities are built into Monal's core standard compliance, but the actual UI call button functionality on Mac is historically delayed or dependent on upcoming interface overhauls.

### Source Code

> **[GitHub - monal-im/Monal: Monal for XMPP (iOS and macOS)](https://github.com/monal-im/Monal)**
>
> Monal for XMPP (iOS and macOS)

## 3. Gajim

> **[Gajim](https://gajim.org/)**
>
> Free and fully featured chat app for XMPP

---

<div class="post-metadata">

**Author:** ![admin](https://discuss.88.io/user_avatar/discuss.88.io/admin/32/38_2.png) [@admin](https://discuss.88.io/u/admin)\
**Post date:** [December 13, 2023, 6:18am UTC](https://discuss.88.io/t/xmpp/396/6 "2023-12-13T06:18:46Z")

</div>

# XMPP Windows Clients

## 1. DinoX

DinoX is recommended for Windows

> **[DinoX - Secure XMPP Messenger for Desktop](https://dinox.im/)**
>
> DinoX is a secure XMPP messenger for Linux and Windows with encrypted chat, calls, files, optional Tor, MQTT and automation APIs.

## 2. Pidgin

> **[Pidgin :: Pidgin, the universal chat client](https://www.pidgin.im/)**
>
> Pidgin is a chat program which lets you log into accounts on multiple chat networks simultaneously. This means that you can be chatting with friends on XMPP and sitting in an IRC channel at the same time.
> Pidgin runs on Windows, Linux, and other...

- [ThirdPartyPlugins – Pidgin](https://developer.pidgin.im/wiki/ThirdPartyPlugins.html)
- no video

## 3. Gajim

> **[Gajim](https://gajim.org/)**
>
> Free and fully featured chat app for XMPP

- [gajim / gajim-plugins · GitLab](https://dev.gajim.org/gajim/gajim-plugins)
- no video

## 4. PSI

> **[Psi Instant Messenger](https://psi-im.org/)**
>
> Psi is a multi-platform and standards-based instant messaging client available for Windows, Linux, Mac and more.

- [GitHub - psi-im/psi: XMPP client · GitHub](https://github.com/psi-im/psi)
- [GitHub - psi-im/plugins: Officially supported Psi plugins · GitHub](https://github.com/psi-im/plugins)
- video support: [GitHub - psi-im/psimedia: Audio/video RTP abstraction library · GitHub](https://github.com/psi-im/psimedia) (but not xmpp compatible)

## 5. Miranda

> **[Miranda NG](https://miranda-ng.org/)**
>
> Miranda NG official website.

- [GitHub - miranda-ng/miranda-ng: Miranda NG: Next Generation of Miranda IM · GitHub](https://github.com/miranda-ng/miranda-ng)
- [Plugin list - Miranda NG](https://wiki.miranda-ng.org/Plugin_list)
- no video

---

<div class="post-metadata">

**Author:** ![admin](https://discuss.88.io/user_avatar/discuss.88.io/admin/32/38_2.png) [@admin](https://discuss.88.io/u/admin)\
**Post date:** [February 20, 2024, 1:54am UTC](https://discuss.88.io/t/xmpp/396/7 "2024-02-20T01:54:53Z")

</div>

# XMPP Linux Clients

## 1. DinoX

DinoX is recommended for Linux

> **[DinoX - Secure XMPP Messenger for Desktop](https://dinox.im/)**
>
> DinoX is a secure XMPP messenger for Linux and Windows with encrypted chat, calls, files, optional Tor, MQTT and automation APIs.

supports video

# 2. Dino

> **[Dino. Communicating happiness.](https://dino.im/)**
>
> A privacy-friendly messaging app for the desktop. It uses the XMPP protocol and provides a clean UI with modern features.

supports video

## 3. Gajim

> **[Gajim](https://gajim.org/)**
>
> Free and fully featured chat app for XMPP

## 4. go-sendxmpp

> **[Martin Dosch / go-sendxmpp · GitLab](https://salsa.debian.org/mdosch/go-sendxmpp)**
>
> A tool to send messages or files to an XMPP contact or MUC.

---

<div class="post-metadata">

**Author:** ![admin](https://discuss.88.io/user_avatar/discuss.88.io/admin/32/38_2.png) [@admin](https://discuss.88.io/u/admin)\
**Post date:** [February 20, 2024, 2:38am UTC](https://discuss.88.io/t/xmpp/396/8 "2024-02-20T02:38:02Z")

</div>

# XMPP Gateways

## 1.Slidge

- [https://slidge.im/](https://slidge.im/)
- [slidge - Codeberg.org](https://codeberg.org/slidge)

Instructions

- [Setting Up Slidge Gateway with Openfire for use with WhatsApp, Matrix, Telegram - Ignite Realtime Blogs - Ignite Realtime Community Forums](https://discourse.igniterealtime.org/t/setting-up-slidge-gateway-with-openfire-for-use-with-whatsapp-matrix-telegram/95656)

Old links of same software by [nicoco](https://www.nicoco.fr):

- [slidgnal](https://git.sr.ht/~nicoco/slidgnal) ([Signal](https://signal.org/))
- [slidge-whatsapp](https://git.sr.ht/~nicoco/slidge-whatsapp) ([Whatsapp](https://whatsapp.com/))
- [slidgram](https://git.sr.ht/~nicoco/slidgram) ([Telegram](https://telegram.org/))
- [slidcord](https://git.sr.ht/~nicoco/slidcord) ([Discord](https://discord.com/))
- [matteridge](https://git.sr.ht/~nicoco/matteridge) ([Mattermost](https://mattermost.com/))
- [sleamdge](https://git.sr.ht/~nicoco/sleamdge) ([Steam](https://steamcommunity.com/))
- [skidge](https://git.sr.ht/~nicoco/skidge) ([Skype](https://skype.com/))
- [messlidger](https://git.sr.ht/~nicoco/messlidger) ([Facebook Messenger](https://messenger.com/))
- [matridge](https://git.sr.ht/~nicoco/matridge) ([Matrix](https://matrix.org/))

## 2. ActivityPub

- Bridge  
[GitHub - Barbapulpe/xmpp-ap-bridge: XMPP / ActivityPub Bridge to chat between XMPP and the Fediverse.](https://github.com/barbapulpe/xmpp-ap-bridge)

- Gateway  
[NLnet; XMPP-ActivityPub gateway](https://nlnet.nl/project/Libervia/)  
[https://libervia.org/](https://libervia.org/)  
[2024-02-03\_Bridging\_Open\_Protocols\_bpxu5Qi.pdf](https://discuss.88.io/uploads/short-url/1kvebPGvLqCD4nuyNd6vxmjkE2K.pdf) (229.7 KB)

## 3. Matrix

- [Matrix.org - Bridges](https://matrix.org/bridges/)
- [GitHub - matrix-org/matrix-bifrost: General purpose bridging with a variety of backends including libpurple and xmpp.js](https://github.com/matrix-org/matrix-bifrost)
- [Matrix gateway setup with ejabberd](https://www.process-one.net/blog/matrix-gateway-setup-with-ejabberd/)

## 4. Mattermost

- [GitHub - 42wim/matterbridge: bridge between mattermost, IRC, gitter, xmpp, slack, discord, telegram, rocketchat, twitch, ssh-chat, zulip, whatsapp, keybase, matrix, microsoft teams, nextcloud, mumble, vk and more with REST API (mattermost not required!)](https://github.com/42wim/matterbridge)

## 5. Libpurple

Libpurple supports A LOT of protocols and is available in some of the bridges above.

- [WhatIsLibpurple – Pidgin](https://developer.pidgin.im/wiki/WhatIsLibpurple)
- [Plugins](https://pidgin.im/plugins/) (for proxy look under Type = Protocol)

## 6. Others

1. [GitHub - SpectrumIM/spectrum2: Spectrum 2 IM transports](https://github.com/SpectrumIM/spectrum2) (multiple protocols)
2. [GitHub - louiz/biboumi: IRC gateway for XMPP](https://github.com/louiz/biboumi) (IRC)
3. [https://dev.narayana.im/narayana/zhabogram](https://dev.narayana.im/narayana/zhabogram) (telegram)
4. [GitHub - codingteam/emulsion: XMPP ↔ Telegram bridge](https://github.com/codingteam/emulsion) (telegram)
5. [GitHub - Shura0/mastaj: mastodon \<-\> XMPP gate](https://github.com/Shura0/mastaj) (mastodon)

---

<div class="post-metadata">

**Author:** ![admin](https://discuss.88.io/user_avatar/discuss.88.io/admin/32/38_2.png) [@admin](https://discuss.88.io/u/admin)\
**Post date:** [July 18, 2025, 4:34am UTC](https://discuss.88.io/t/xmpp/396/9 "2025-07-18T04:34:29Z")

</div>

# XMPP Server

Team Compute supports most open sourced XMPP servers, including those listed below.

ejabberd is the recommended one.

## ejabberd

> **[ejabberd XMPP Server with MQTT Broker & SIP Service](https://www.ejabberd.im/)**
>
> ejabberd is an XMPP server (Jabber server), MQTT broker and SIP gateway built to create awesome realtime services like massive chat, instant communication, IoT and more.

XMPP Extensions

- [Specification & Reference Sheets](https://www.process-one.net/ejabberd-features/)

### Matrix Protocol

Besides XMPP, all ejabberd servers deployed by Team Compute are also Matrix servers:

**Address differences:**

- XMPP  
`614xxxxxx@88.com`

- Matrix  
`@614xxxxxx:88.com`

**DNS differences:**

- XMPP  
`_xmpp-server._tcp.example.com. 86400 IN SRV 5 0 5269 xmpp.example.com.`

- Matrix  
`_matrix._tcp.example.com. 3600 IN SRV 10 5 8448 matrix.example.com.`

## Prosody

[https://prosody.im/](https://prosody.im/)

XMPP Extensions

- [XMPP Extensions (XEPs) supported in Prosody – Prosody IM](https://prosody.im/doc/xeplist)

## Openfire

> **[Ignite Realtime: Openfire Server](https://www.igniterealtime.org/projects/openfire/)**

XMPP Extensions

- [Openfire: Protocol Support](https://download.igniterealtime.org/openfire/docs/latest/documentation/protocol-support.html)

---

<div class="post-metadata">

**Author:** ![admin](https://discuss.88.io/user_avatar/discuss.88.io/admin/32/38_2.png) [@admin](https://discuss.88.io/u/admin)\
**Post date:** [July 21, 2025, 10:37pm UTC](https://discuss.88.io/t/xmpp/396/10 "2025-07-21T22:37:03Z")

</div>

# XMPP Blacklist

- [https://xmppbl.org/](https://xmppbl.org/)

---

<div class="post-metadata">

**Author:** ![admin](https://discuss.88.io/user_avatar/discuss.88.io/admin/32/38_2.png) [@admin](https://discuss.88.io/u/admin)\
**Post date:** [September 3, 2025, 1:12am UTC](https://discuss.88.io/t/xmpp/396/11 "2025-09-03T01:12:04Z")

</div>

# XMPP Roster

## 1. Table

ejabberd sql table:

- [SQL Schema - ejabberd Docs](https://docs.ejabberd.im/developer/sql-schema/#rosters)

```auto
CREATE TABLE rosterusers (
    username text NOT NULL,
    jid text NOT NULL,
    nick text NOT NULL,
    subscription character(1) NOT NULL,
    ask character(1) NOT NULL,
    askmessage text NOT NULL,
    server character(1) NOT NULL,
    subscribe text,
    "type" text
);

```

## 2. Subscription

> **[XEP-0162: Best Practices for Roster and Subscription Management](https://xmpp.org/extensions/xep-0162.html)**

1. "subscription" value should be B  
'B'=both | 'T'=To | 'F'=From | 'N'=none

2. "ask" value should be  
'S'=subscribe | 'U'=unsubscribe | B='both' | 'O'=out | 'I'=in | 'N'=none
