A Freedom Respecting Android Chat Client https://mercury-im.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Paul Schaub c9e2c48060
Remove unused disposable
3 days ago
app Remove unused disposable 3 days ago
cli Some cleanup 3 weeks ago
config/checkstyle Deactivate too strict checkstyle rules 10 months ago
data Start work on new message sending logic 2 weeks ago
documentation Move Murmelbahn to documentation 2 months ago
domain Pass IDs instead of value pairs to initialize fragments/view models 5 days ago
entity Start work on new message sending logic 2 weeks ago
gradle/wrapper Start work on new message sending logic 2 weeks ago
libs Use gradle wrapper in smack to fix build failures 2 weeks ago
utils Update smack-unique-snapshots.sh 1 year ago
.gitignore Add new icon 11 months ago
.gitmodules Point Smack submodule to mercury fork on codeberg 11 months ago
README.md Add some info to README 2 weeks ago
build.gradle Fix message adapter 1 month ago
gradle.properties Wip: Work on enabling accounts from accounts fragment 3 months ago
gradlew Initial commit 1 year ago
gradlew.bat Initial commit 1 year ago
mercury_black_24dp.svg Add new icon and text to foreground notification 2 weeks ago
mercury_icon.svg Add new icon 11 months ago
settings.gradle Add cli module 2 months ago
version.gradle Start work on new message sending logic 2 weeks ago



Mercury-IM will be an XMPP messenger that aims to be portable. Most of the core logic is pure Java, so the final goal is to make it as easy as possible to add different UIs for different platforms on top of it.


  • Mercury IM’s development tries to follow architectural principles know from Clean Architecture.
  • The app is developed using the MVVM (Model View Viewmodel) pattern
  • Components are wired together using Dependency Injection (DI) with Dagger 2
  • Data is persisted using the requery ORM framework


Since there are some issues with Android Studio and composite builds, it is currently only possible to build Mercury-IM either using the Gradle command line tool (see below), or by using Android Studio 3.5.3.

git clone <project-url>
cd <project-directory>
git submodule update --init --recursive
gradle assembleDebug


  • I want to develop, but lots of org.jivesoftware.smackx.* classes cannot be found!
    • You forgot to type git submodule init && git submodule update as mentioned above
  • It looks like I’m missing org.mercury_im.messenger.data.* classes???
    • In Android Studio select the data module and then click “Build -> Make Module ‘data’".