Homepage | Edited April 2022

Private instant messenger overviews

Glossary

┌Introduction
FAQ about messengers
Which messengers to avoid
└──
┌Private messengers
Private messenger feature comparison
│Server-based
│┌Protocol
XMPP protocol
Matrix protocol
│E-Mail based
DeltaChat
│└──
└──
Session
Peer-to-Peer
Jami
Briar
Advanced
Self-Hosting

An attempt to simplfy choosing a messenger from my search for the best. My current favourite is XMPP. xmpp logo If there are any errors or you have suggestions please let me know.

I will prioritise messengers with:
Ease to use
Support for all major platforms
Native clients
Self-hostable servers
Ease to use

I will not list messengers with:
No client and source code available or non-free licences
No Encryption (unless self-hostable)
A phone number required
It uses/advertises cryptocurrencies (currently excluding Session)

Consider using a privacy respecting operating system for the safety of yourself and your contact.

Key
~ = informational
¶ = in-page link
Review dot points are top to bottom by piority
Client = App, application, program
Server = service provider website

Where to start

What should I use?
Consider your use case. I have listed some suggestions below.

Looking for Slack or Discord-like grouped chat channels? Have a look at Matrix ¶
Looking for Telegram or Whatsapp-like simple 1-on-1 or single room group chats? Have a look at XMPP ¶ or DeltaChat ¶
Looking for peer-to-peer 1-on-1 chats? Have a look at Jami ¶
Want to communicate with e-mail with an easy interface? Have a look at DeltaChat ¶

Related resources

Wikipedia's Comparison of cross-platform instant messaging clients

Improve privacy on privacy disrespecting services

FAQ about messengers

Why should I avoid phone number services?

Why should I care about encryption?
Messages should only be able to be read by you and your peers. If anything were to be leaked from the server you would not need to worry about your messages being publicly available online.

I don't have anything to hide
You may not but your contact might

Which messengers to avoid

Avoid anything without a viewable client and encryption method source code. Server source code is prefered but methods that don't give the server your encryption key should be good to use (such as encrypting an E-Mail outside the servers webmail interface)

I don't know what any of that means
It's basically any messenger that is run for profit, which is probably 95% of messengers

Helpful tool: tosdr.org see an easly readable overview of a sites Terms of Service

"Privacy focused" messengers Popular messengers

Why not electron?

Electron, Chromium Embedded Framework or any other downloadable web applications are slow, bloated and full of security flaws. It's basicly a seperate web browser for your programs which will eat up RAM and leave you behind on web browser security fixes because they are seperated processes from your main web browser. For something as simple and private as sending messages it is not recommended.

How do I check that something I'm running uses electron?

If you press Ctrl+Shift+i it should open a developer console. Another way is to press the Alt key, if a menu pops up at the top with something like "File Edit View Help" it likely uses electron.


Private messenger feature comparison

Protocols depend on client so I have based XMPP on Dino/Conversations and Matrix on Element. Consider Jitsi when you want to do a voice/video call or screenshare on messengers that do not have it.

Features XMPP Matrix DeltaChat Session Jami
Account creation in-app
✔ ﹖ With XEP-0077
📞 1-on-1 Audio/Video Calls
✔ ﹖ With XEP-0166 Jingle
❌ ﹖ DeltaChat allows you to send Jitsi links from the application, but it is not native
❌ ﹖ Planned
📞 Group Audio/Video Calls
❌ ﹖ DeltaChat allows you to send Jitsi links from the application, but it is not native
❌ ﹖ Planned
Screensharing ? ? ? ?
👥 Group Chats
✔ ﹖ With XEP-0045
❌ ﹖ Planned
🌐 Link previews
~ ﹖ Available as an option in blabber.im (Android), pull request for Dino (Desktop)
✔ ﹖ With a compatible homeserver, enabled in settings and in an unincrypted room. only applies to yourself
🖊️ Edit sent messages
✔ ﹖ With XEP-0308
🗑️ Retract your own messages from others
💬 Optional typing indication ? ?
✔️ Optional read receipts
✔ ﹖ When messaging other DeltaChat users
?
Send to offline users
✔ ﹖ Works best with XEP-0160
?
⤵️ Send to yourself
❌ ﹖ Creates a new group chat room
🤖 Chat bots
💣 Optional self-detructing messages ?
✔ ﹖ When messaging other DeltaChat users
Share multiple attachments at the same time ? ? ? ?
Include text while sending attachment
~ ﹖ Sends text message at same time as the attachment
Screensharing ? ?
Quote messages
✔ ﹖ Text only, doesn't link to original message
✒️ Text formatting
🔍 Emoji search
✔ ﹖ Desktop only
🎤 Voice messages
🎥 Quick video message buttons
🟢 Online/offline status ?
└🟡 Away/busy status ?
Writen status message
✔ ﹖ Uses last sent E-Mails signature, only visible when clicking users profile
Message without adding as contact
✔ ﹖ Some servers may prevent you
?
~ ﹖ Adds to local contacts but can be deleted afterwards. Contact is not notified
?
Set own nickname ? ? ? ?
Give others nicknames
🌐 IP hidden from contact
~ ﹖ Uses peer-to-peer when using voice/video calls and direct file transfers with XEP-0166 Jingle
? ? ?
🚫 Block users
✔ ﹖ Called "ignore"
📍 Location sending
✔ ﹖ With Conversations (Android) XEP-0080
Attachments keep their filename ? ? ? ? ?
Avatar transparency ? ? ? ?
Ability to change contract ID ? ? ?
Does not require account verification
~ ﹖ Depends on the homeserver, uncommon on XMPP
~ ﹖ Depends on the homeserver
Allows TOR connections
~ ﹖ Depends on the homeserver(?)
? ? ? ?
Message character limit ? ? ? ? ?
XMPP Matrix DeltaChat Session Jami

Encryption method/s

XMPP: OpenPGP, OMEMO: Based on a Double Ratchet and PEP, OTR & others
Matrix: ?
DeltaChat: Implements the Autocrypt Level 1 standard
Session: Session Protocol built on libsodium
Jami: TLS 1.3 with a perfect forward secrecy requirement for the negotiated ciphers for calls and file transfers. Messages are encrypted with an RSA key.

Account creation difficulty

XMPP: Medium-Hard. You will need to find a client with a high amount of features. You will need to find a server with modern features.
Matrix: Easy-Medium. Popular client available (Element), others are available if needed. Default homeserver is easy to setup but not recommended, other servers are harder to find but most have modern features.
DeltaChat: Easy-Medium. Official client available. May require configuration depending on your E-Mail provider and if you are using an existing E-Mail adress or creating a new one.
Session: Very easy. Official client available. Click create and type in a display name
Jami: Very easy. Official client available. Click create, choose username (optional), choose password (optional), choose display name and picture (optional) and backup account to device storage (optional).

Logging in with another device

XMPP: Sign in with XMPP ID and password. Will need configuration to recover encrypted messages.
Matrix: Sign in with Matrix ID and password. Will need another signed in device or a recovery key/phrase to recover encrypted messages.
DeltaChat: Sign in with E-Mail and password, configuration will be needed if you do not have a backup. Will need to input a set of numbers from another signed in device or a deltachat account backup to recover encrypted messages.
Session: Enter recovery phrase and a display name to use
Jami: Load account profile from device storage

Censorship

XMPP: Account can be deleted by server admin. You can be banned from group chats by group moderators
Matrix: Account can be deleted by server admin. You can be banned from group chats by group moderators
DeltaChat: E-Mail account can be deleted by server admin. You can be removed from group chats by group moderators (I believe)
Session: Onion routes could be blocked by server administrators or your local network connection. Only group creator can remove users from group chats
Jami: Contact server, proxy, bootstrap and TURN address could be blocked by server administrators or your local network connection. You are able to configure them to different URLs. Group chats currently unavailable
Briar:

Contact ID

XMPP: username@domain.name
Matrix: username:domain.name
DeltaChat: username@domain.name
Session:
Jami:

Attachment limit

XMPP: P2P 1-on-1 with XEP-0166 Jingle: Unlimited, server upload is server dependent. Expiry date is server dependent
Matrix: Server dependent
DeltaChat: E-Mail server dependent. Usually 10~MB
Session: ?
Jami: Unlimited

Metadata leakage

XMPP: host server knows your IP unless the server supports a tor address
Matrix:
DeltaChat:
Session:
Jami:

Group chat roles

XMPP:
Matrix: Admin, Moderator or a custom number up to 100
DeltaChat:
Session:
Jami:

soon

XMPP:
Matrix:
DeltaChat:
Session:
Jami:

Server-based

Reliable, but could be taken offline without any notice

Protocols

Why protocols?
Protocols are good for messengers as there is no one point of failure. A protocol can't be taken down or become bankrupt like a single server, for example: Wikipedia's list of defunct instant messaging platforms


XMPP (formally Jabber) protocol

XMPP does not have an offical client or server, you will need to choose your own. Servers can connect to any other server. Some clients can make accounts in-app to compatable servers

My recommended clients:
Windows: Dino unofficial alpha Windows builds Keep up to date with the RSS feed
Android: blabber.im Google Play Store F-Droid
GNU/Linux: Dino
Untested: iOS: Chatsecure, monal.im
Untested: Mac: monal.im
Web: conversejs.org

Servers picked at random with many features (full complience, see below for info)
trashserver.net 🇩🇪 Germany
hookipa.net 🇩🇪 Germany since around 2007. 100MB attachment limit, lasts for 30 days. Account deletes after a year of inactivity
xmpp.social 🇩🇪 Germany since around 2007
jabbers.one 🇩🇪 Germany. 50MB attachment limit, quota 200 MB, lasts for 10 days
openim.de 🇩🇪 Germany
anonym.im 🇩🇪 Germany
jabber.lqdn.fr 🇬🇧 France
chinwag.im 🇦🇺 Australia since 2015
xmpp.is/.chat/.co/.cx/.fi/.si/.xyz 🇷🇴 Romania
lightwitch.org 🇮🇹 Italy

e2e.ee/.wtf/ee.e2e.ee/noarchive.chat 🇳🇱 Netherlands Free usernames must be more than 8 characters
riotcat.org 🇩🇪 Germany / Click jabber. Need to request account Can only register from within a client!

Avoid:
creep.im 🇬🇧 France, United Kingdom. Can only register from within a client Requires a captcha to contact creep.im users
sum7.eu

Or choose your own client** and server* (Click one on the left)

Advanced serverlist
Check server uptime

*Check how long servers have been up to lower chances of having to move hosts later on and location of servers for speed here

**OMEMO allows the client to automaticly end to end encrypt messages and attachments to another client with OMEMO with any compatable server.

The higher server complience is for a server, the more modern features you will be able to use with a client, if compatable. These features include

*Both users servers must have the same features to be compatable with each other

Resources

https://kill-9.xyz/no_category/xmpp XMPP servers comparision
https://privacy.flounder.online/article_xmpp_guide.gmi Guide: Start Chatting With XMPP (Very Easy)

XMPP overall review

Pros
+ Extremely lightweight
+ Been around since 1999, used and proven through many corperate services (WhatsApp, Zoom, Google and Apple mobile push notifications and many more, check the sidebar)
+ No file size limit on 1-on-1 chats using peer-to-peer Jingle (XEP-0166)
+ Ability to edit messages
+ User text and avaiabilty statuses

Cons
- Hard to "start using". The user needs to know that there is no main client like other services
- No group call availability
- Link previews aren't common on clients

Informational
~ E-mail like contact addresses: name@server.com

Client reviews

Dino (Windows, GNU/Linux)

Unofficial alpha Windows builds Windows builds RSS feed Official Website

Pros
+ (Currently a pull request) Optional link previews
+ Supports calls
+ Connect multiple accounts at the same time
+ Low RAM usage on Linux ~30MB

Cons
- Doesn't encrypt new conversations by default (there are pull requests to fix this)
- High RAM usage on Windows alpha ~60-100MB
- No abillity to use dark theme on Windows yet
- No thumbnails in the filepicker (GTK issue)

Informational
~ GTK interface
~ Still in beta

--------------------------------------

Conversations (Android)

F-Droid Website Github

The best XMPP experience, developer constantly pushing XMPP forward

Pros
+ Supports calls
+ Connect multiple accounts at the same time
+ Embedded audio file player

Cons
- Non F-Droid users will be put off by it costing money upfront on Google Play, making it harder to migrate people to it
- First launch prompts to create an account on the conversations.im instance which is free for 6 months then paid. Might confuse people to think XMPP is a paid service.
- P2P (Jingle) sent attachments do not keep their filename

Informational
~ No embedded picture viewer or video and gif playback
~ Many different forks if you dislike certain features

blabber.im (Android)

Google Play Store F-Droid Website

Conversations fork with extra features and a different look

I will list the differences from Conversations below

Pros
+ Free on the Google Play store (also on F-Droid)
+ Lists some good servers to choose on the account creation screen, but also shows some servers without a high amount of features the application makes use of
+ Optional support for simple HTTP link previews, but won't embed images links or Youtube and Twitter content (their fault). Off by default
+ Allows you to replace YouTube links with invidio.us links of the server of your choosing which fixes link previews
+ Optional GIF playback in chat view. Off by default(?)
+ First launch gives information on what XMPP is and how user IDs work
+ Different UI accent colours to choose from

Cons
- Too many tutorials
- Can't disable (disconnect) account without enabling multiple account support
- Ugly theme colours

Informational
~ Need to change a setting to allow multiple accounts
~ Button to browse chat media on chat screen
~ In-app fullscreen media viewer

Monocules Chat (Android)

F-Droid

Different skin blabber.im fork

Cons
- Paid on the Google Play store (available on F-Droid)
- Shows more servers on account creation, but chooses quantity over quality

--------------------------------------

Gajim (Windows, GNU/Linux)

Pros
+ Nice interface
+ Plugin to preview image URLs
+ Connect multiple accounts at the same time

Cons
- Doesn't support calls on Windows. Perhaps consider using Jitsi (open source in-browser voice and video calls)
- Doesn't encrypt new conversations by default
- High RAM usage ~100MB
- Some issues with sending attachments
- Long Chat log timestamps on each message


Matrix protocol

Matrix does not have an offical client, you will need to choose your own. There is an official server and servers can connect to any other server.

Official server (matrix.org) is not recommended as it is slow and bans users randomly. It has also has also been hijacked before.

My recommended clients:
Android and iOS: Element
Desktop: Element, until there's a better native alternative
Web: Element

Clients and servers

Matrix overall review

Cons
- Potentially shady history
- Chat rooms and spaces (Element's grouped chats) can't be deleted
- Heavy to run for server owners, meaning less servers will be able to host their own server

Informational
~ Modern chat gimick bloat such as emoji reactions and stickers
~ Some servers require an E-Mail address to register (can be removed after registration)

Resources

Notes on privacy and data collection of Matrix.org

Client reviews

Element

Official Website

Element is the most popular and feature rich client available for Matrix, but it uses electron

Pros

+ Spaces lets you group chatrooms between other users, similar to Slack or Discord

Cons
- Can only handle one account unless you use workarounds
- Android client on F-Droid is over 100MB due to being a universal APK

Informational
~ You need to keep your encryption key if you do not have another logged in device which may be difficult to remember or weak if you don't use a password manager
~ Visually similar to Discord, often concidered a good alternative


(old screenshot)

--------------------------------------

Cinny

Official Website

Cons
- Electron
- Can only handle one account

Informational
~ Beta
~ More Slack/Discord style interface than Element


DeltaChat

Website FAQ (well documented)

- Official desktop client uses electron! (Runs on a web browser, bloat!)

DeltaChat is an e-mail client with a traditional messenger interface. It automatically encrypts when messenging another DeltaChat user. Different clients are possible but I haven't tested them, for example adbenitez/deltachat-cursed

Pros
+ Compatability with E-Mail, something almost everyone already has

Cons
- Slow. Upon pressing send it takes Gmail to Outlook 5-12 seconds to receive
- Doesn't work with two-step verification login on E-Mail accounts except Gmail on phones, you need to create an "app password" from the your E-Mail provider settings. Solutions to this are well documented but consider this if you have less tech-savvy contacts. Some E-Mail providers also try to scare you out of using app passwords for being only used by "insecure apps".
- Questionable usage of funds
- Press enter to send is not default on desktop
- Chat bubble design doesn't work well on desktop computers due to the large display size

Informational
~ No voice or video calls, intergrates Jisti links for calls
~ First message to new contacts are unencrypted because encryption files need to be exchanged
~ Using an existing E-mail address could be bad for anonymity. Consider what information about your E-Mail address is available on the internet when talking to people, especially if your E-Mail address is on haveibeenpwned
~ GIF attachment autoplay
~ May have issues with attachments if your servers attachment download limit is low. 10MB is ususally the recommended limit
~ Supports multiple accounts but only one at a time
~ Some E-Mail providers might not allow sending .exe or zips with .exe (I don't know if the encryption fixes this)


Session

- Desktop client uses electron! (Runs on a web browser, bloat!)

Website TOS overview (tosdr.org)

Pros
+ Optional support for link previews
+ Promises to hide your IP

Cons
- Developed in Australia, a five eyes country. Could be tampered with from the inside at any time by gag order, read under the Australia section for info from their side
- Plans to make clientside features paid in the future (See: Session: Session Pro and beyond)
- Feels sketchy
- Currently does not support voice or video calls

Informational
~ Uses random 66 number and letter ID codes for adding contacts. Example: 056fc434103b82d15...
~ Android application optionally uses google services for push notifications. Can be disabled on first launch


Peer-to-Peer


Jami

Gives me too many problems. I am checking the progress the program is making because it has great potential

Pros
+ No limit on attachment size

Cons
- Unrelyable on mobile right now, need to adjust settings to not drain battery life

Informational
~ Peer to peer, no servers
~ Accounts are stored in local files


Briar

Only for Android and (soon) desktop computers. Focuses on being unable to be censored


ADVANCED | Self-hosted


rocket.chat (official web/Electron)

XMPP

https://snikket.org easy server software
XMPP Server (Prosody)

Mumble

Official site
Server

IRC

irchelp.org
IRC interface
Another IRC interface

Extra related resources

Similar pages

the final redpill: you have to use what your friends use