The very last word in instant messaging

Conversations is a Jabber/XMPP client for Android 5.0+ smartphones that has been optimized to provide a unique mobile experience.

Buy now on google play

Screenshot of image embedded in conversation

Send Images

Don’t stop at text messages. Conversations allows you to easily share files with your contacts and embeds images directly into your chat. Even in conferences.

Have something personal to say? Turn on end-to-end encryption for extra privacy.

security & privacy

Screenshot showing a read marker in a conversation

Read Markers

Wondering if your contact has read your messages? Conversations will tell you.

And if you don’t want your contacts to know whether you have read a message yourself you can simply disable that feature in the settings.

Message confirmation

Server reporting no more history

Dynamic history loading

Conversations will automatically load the message history from your server when you need it.

If you are using more than one device at the same time, both your sent and received messages will show up on all devices.

message synchronization

Screenshot of conference avatar

Conferences

Creating group chats has never been easier. Simply choose Invite contact from the menu to start a group chat. Conversations will automatically create the group chat on your server and invite your contacts to it.

And of course you don’t have to miss out on your contacts profile pictures when using group chats either.

Profile pictures

Screenshot of Android battery stats

Low impact on battery

Even though Conversations keeps its own connection to the XMPP server and thus is independent of Google’s push messaging system (GCM), it does a lot of work to keep the impact on battery life as low as possible.

mobile optimizations

Photo of some source code

Open Source

The entire source code of Conversations is publicly available on Codeberg and licensed under the GPLv3, which means you can not only review the code and verify its correct behaviour but also modify it to your own wishes.

Start developing


Security & Privacy

XMPP is a federated protocol, which means you can freely choose a trustworthy server for yourself while still chatting with contacts that are using other servers. The communication between Conversations and the XMPP server as well as the communication between the individual servers is TLS encrypted.

This way, not only your messages are safe but more importantly it is impossible for an outside attacker to intercept your meta data (with whom you are chatting) without attacking your server first.

On top of that, Conversations gives you the choice to enable one of two end-to-end encryption mechanisms. The first one is OMEMO, a state of the art multi-end-to-multi-end encryption method which is very easy to setup and gives you forward secrecy and plausible deniability.

For backwards compatibility reasons Conversations also supports OpenPGP.

Buy now on google play


XMPP Features

XEP-0027 Current Jabber OpenPGP Usage
XEP-0030 Service Discovery
XEP-0045 Multi-User Chat
XEP-0048 Bookmarks
XEP-0084 User Avatar
XEP-0115 Entity Capabilities
XEP-0163 Personal Eventing Protocol
XEP-0166 Jingle
XEP-0184 Message Delivery Receipts
XEP-0191 Blocking command
XEP-0198 Stream Management
XEP-0234 Jingle File Transfer
XEP-0237 Roster Versioning
XEP-0245 The /me Command
XEP-0249 Direct MUC Invitations
XEP-0260 Jingle SOCKS5 Bytestreams Transport Method
XEP-0261 Jingle In-Band Bytestreams Transport Method
XEP-0280 Message Carbons
XEP-0313 Message Archive Management
XEP-0333 Chat Markers
XEP-0352 Client State Indication

XMPP is an extensible protocol. These extensions are defined in so called XEPs. Conversations supports a couple of those XEPs to improve reliability and all in all provide for a better user experience.

There is a chance that your current XMPP server does not support these extensions; therefore to get the most out of Conversations you should consider either switching to an XMPP server that does or — even better — run your own XMPP server for you and your friends.

We also made it very easy to register an account on our very own XMPP server conversations.im.

Mobile optimizations

The internet connection on cell phones is rather unstable. It constantly switches between WiFi and 3G and might even drop out on occasion. The XEP-0198: Stream Managment allows Conversations to survive those switches. Instead of having to establish a completely new session the servers gives the client a 5 minute window to resume a previously established session. Messages that arrived in the mean time will be redelivered automatically.

Stream management also minimizes traffic by sparing the client from fetching static information (contact list, conference bookmark, avatars) on every connect.

Using XEP-0352: Client State Indication Conversations communicates to the server whether or not the client is in the background right now. Based on this information, the server can withhold unimportant packages and thus allowing the client to stay in deep sleep for longer.

Message synchronization

You are no longer limited to one device. If you are online with multiple devices simultaneously, the XEP-0280: Message Carbons will be used to send copies of both your sent and received messages to all devices.

If you are installing Conversations on a new device or catching up after being offline for a while, Conversations will use XEP-0313: Message Archive Management to fetch the message history from your server.

Message confirmation

Your contact isn’t responding immediately? Conversations uses XEP-0333: Chat Markers to inform you when your messages have been read.
And since Conversations cares about your privacy you can easily opt-out of this feature as well.

Are your contacts still using old, unreliable clients? Turn on XEP-0184: Message Delivery Receipts in the expert settings to make sure your contacts have successfully received your messages.

Contact pictures

Put a face to your contacts. Conversations lets you upload a profile picture (Avatar) to your server for all your contacts to see by utilizing the PEP based XEP-0084: User Avatar. Contrary to other methods of publishing avatars, the PEP based approach handles data usage more efficiently by separating data and meta data.

On top of that, Conversations allows you to use the contact name and pictures provided by the Android address book.

Dynamic tags

Conversations gives old features a new spin. Being able to organize your contacts into groups has been an XMPP feature for a long time. However, instead of the tree-like representation most XMPP clients provide, Conversations uses a tag based approach, letting you easily search for any group or status.
To keep Conversations as simple as possible, this feature is turned off by default. If you need to handle a large contact base, you can enable it via the Show dynamic tags switch in the settings.

Buy now on google play


Support

Questions?

If you have a general question about Conversations that has not been answered by our FAQ, you can join the Conversations group chat on: [email protected]

Need professional support?

Do you want to use Conversations in your company and require assistance in setting up a suitable XMPP server or are you having problems getting started with Conversations?

Contact the maintainer Daniel Gultsch to purchase professional support.

This is a short excerpt of the entire, much more detailed FAQ that can be found in the README.md at our Codeberg repository.

How do I install Conversations?

Conversations is entirely open source and licensed under GPLv3. So if you are a software developer, you can check out the sources from Codeberg and use gradle to build your APK file.

The more convenient way — which not only gives you automatic updates but also supports the further development of Conversations — is to buy the App in the Google Play Store.

Buying the App from the Play Store will also give you access to our beta test.

How do I create an account?

XMPP, like email, is a federated protocol, which means that there is not one company you can create an official XMPP account with. Instead there are hundreds, or even thousands, of providers out there. One of those providers is our very own conversations.im. If you don’t like to use conversations.im use a web search engine of your choice to find another provider. Or maybe your university has one. Or you can run your own. Or ask a friend to run one. Once you've found one, you can use Conversations to create an account. Just select register new account on server within the create account dialog.

Domain hosting

Using your own domain not only gives you a more recognizable Jabber ID, it also gives you the flexibility to migrate your account between different XMPP providers. This is a good compromise between the responsibilities of having to operate your own server and the downsides of being dependent on a single provider.

Learn more about conversations.im Jabber/XMPP domain hosting.

Running your own

If you already have a server somewhere and are willing and able to put the necessary work in, one alternative-in the spirit of federation-is to run your own. We recommend either Prosody or ejabberd. Both of which have their own strengths. Ejabberd is slightly more mature nowadays but Prosody is arguably easier to set up.

For Prosody you need a couple of so called community modules most of which are maintained by the same people that develop Prosody.

If you pick ejabberd make sure you use the latest version. Linux Distributions might bundle some very old versions of it.

How can I set up a custom hostname and port?

Conversations will automatically look up the SRV records for your domain name, which can point to any hostname port combination. If your server doesn’t provide those, please contact your admin and have them read this document on the prosody wiki. If your server operator is unwilling to fix this you can enable advanced server settings in the expert settings of Conversations.

How does the address book integration work?

The address book integration was designed to protect your privacy. Conversations neither uploads contacts from your address book to your server nor fills your address book with unnecessary contacts from your online roster. If you manually add a Jabber ID to your phones address book, Conversations will use the name and the profile picture of this contact. To make the process of adding Jabber IDs to your address book easier, you can click on the profile picture in the contact details within Conversations. This will start an add to address book intent with the JID as the payload. This doesn’t require Conversations to have write permissions on your address book, but also doesn't require you to copy/paste a JID from one app to another.


Development

Conversations is being developed on Codeberg by a team of volunteers under the lead of project founder and maintainer Daniel inputmice Gultsch. Translations are being managed on Weblate.

Helping out

The Conversations Team is always looking for new volunteers to fix bugs, develop new features or for simply providing unique and fresh ideas that help Conversations to stay the most advanced and easiest to use XMPP client out there.

Start out by searching our issue tracker for open tickets or get to know us in our group chat on [email protected]

We are also looking for translators. Transifex provides a very easy to use GUI. You just need to create an account and request to join a language team.

Beta Testing

If you bought the App on Google Play, you can get access to the latest beta version by joining the testing program using this link.

Customizations

Conversations also provides you with a great base to create your own instant messenger for your customers or employees. If you don’t have the time or resources to do this yourself you can hire the lead developer Daniel Gultsch to provide you with the solution you need.

Daniel added a couple of features we needed to be able to roll out Conversations to our users, one was support for server side group bookmarks, the other one was avatars. Development was professional and we got early snapshots to test ourselves, the features then got added to the next public release. I can highly recommend hiring Daniel.

Anders Sandblad

Daniel has consistently impressed us with the quality of his code and responsiveness. Definitely one of the best and most professional programmers we've encountered.

Lumie Technologies

Building Conversations

  • Download and install the Android SDK
  • Install the Google Repository and the latest SDK tools with the Android SDK Manager
  • Check out the source code using
    git clone https://codeberg.org/iNPUTmice/Conversations.git
  • Compile with ./gradlew assembleConversationsFreeDebug
  • Your APK will be at build/outputs/apk/conversationsFree/debug/Conversations-$version-conversations-free-universal-debug.apk

Copyright 2014–2024 Daniel Gultsch