The monocles chat. A modern and secure chat client for Android based on Conversations with features from blabber.im and Cheogram and a lot of own changes and improvements. This chat client is optimized for the monocles server's setting to get more security. https://monocles.eu/more
  • Java 96.7%
  • C 1.6%
  • Kotlin 1.3%
  • C++ 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-27 16:55:33 +01:00
.builds Further applying monocles database and strings 2024-09-01 09:54:22 +02:00
.github Disable initial onboarding for now + improve strings 2024-09-14 15:57:38 +02:00
art Add play store badges 2025-10-28 18:35:16 +01:00
deps PQ auth check and hardening 2026-10-14 19:28:08 +02:00
docs End empty group calls after a connection only and document group-call rules (XEP-0272 monocles2) 2026-10-22 23:43:29 +02:00
fastlane/metadata/android Update Readmes and fastlane description 2026-10-17 21:46:36 +02:00
gradle/wrapper Update several dependencies and upgrade to sdk37 2026-10-05 19:34:48 +02:00
libs Update several dependencies and upgrade to sdk37 2026-10-05 19:34:48 +02:00
monocleschatFree/debug Initial rebase for monocles chat 1.8 2024-08-31 20:41:31 +02:00
src Merge MiniDNS upstream changes until 2026-10-24 + Fix custom DNS options and add DoT setting + Improve server lookup 2026-10-27 16:55:33 +01:00
.gitignore Initial PQ OMEMO2 2026-07-20 20:52:59 +02:00
.gitlab-ci.yml merge changes from PixArtMessenger 2020-05-07 21:12:51 +02:00
.gitmodules Implement Post-Quantum OMEMO2 with separate identity keys and hybrid fingerprints, and update database and UI for PQXDH support 2026-07-20 20:54:28 +02:00
.woodpecker.yml Initial rebase for monocles chat 1.8 2024-08-31 20:41:31 +02:00
build.gradle Harden PEP device list syncing, restrict SystemEventReceiver actions, and update MiniDNS DANE verification 2026-10-20 16:02:38 +02:00
CHANGELOG.md Initial rebase for monocles chat 1.8 2024-08-31 20:41:31 +02:00
Gemfile Initial rebase for monocles chat 1.8 2024-08-31 20:41:31 +02:00
Gemfile.lock Initial rebase for monocles chat 1.8 2024-08-31 20:41:31 +02:00
gradle.properties Fix build issues 2026-05-22 17:57:45 +02:00
gradlew Update several dependencies and upgrade to sdk37 2026-10-05 19:34:48 +02:00
gradlew.bat Update several dependencies and upgrade to sdk37 2026-10-05 19:34:48 +02:00
LICENSE Update XEP support (0393, 0425, 0440, 0474), relicense to AGPL-3.0, drop fuzzywuzzy and update Readmes 2026-10-17 18:33:52 +02:00
monocles_chat.doap Update XEP support (0393, 0425, 0440, 0474), relicense to AGPL-3.0, drop fuzzywuzzy and update Readmes 2026-10-17 18:33:52 +02:00
proguard-rules.pro Update several dependencies and upgrade to sdk37 2026-10-05 19:34:48 +02:00
README-de.md Update Readmes and fastlane description 2026-10-17 21:46:36 +02:00
README-fr.md Update Readmes and fastlane description 2026-10-17 21:46:36 +02:00
README-it.md Update Readmes and fastlane description 2026-10-17 21:46:36 +02:00
README-pl.md Update Readmes and fastlane description 2026-10-17 21:46:36 +02:00
README-tr.md Update Readmes and fastlane description 2026-10-17 21:46:36 +02:00
README.md Update Readmes and fastlane description 2026-10-17 21:46:36 +02:00
settings.gradle Initial PQ OMEMO2 2026-07-20 20:52:59 +02:00

monocles chat

🇩🇪 Deutsch / 🇫🇷 Français / 🇮🇹 Italiano / 🇵🇱 Polski / 🇹🇷 Türkçe

monocles chat is a modern and secure XMPP client for Android. It is based on Conversations, includes features from blabber.im and Cheogram, and adds many changes and features of its own to improve usability and security.

Screens designed by Pigeonalley (https://pigeonalley.com)

Features

  • End-to-end encryption with OMEMO, OpenPGP or OTR
  • Experimental post-quantum end-to-end encryption (PQ OMEMO2)
  • Encrypted connections only, TLS 1.3 required by default; outdated cipher suites are removed
  • DNSSEC-verified server lookup and DANE certificate checks (can be enforced)
  • Protection against login downgrade attacks: channel binding and SCRAM downgrade protection (XEP-0440 / XEP-0474); never falls back to PLAIN once SCRAM was used
  • Encrypted local database with an optional startup password
  • Send and receive images, videos, files, locations and voice messages
  • Message styling (XEP-0393): *bold*, _italic_, ~strike~, monospace and code blocks
  • Audio and video calls
  • Group chats and channels
  • Synchronized message history across your devices
  • Profile pictures, status messages and stories
  • Address book integration (your address book is never shared with the server)
  • Daily backup of the database to local storage
  • Very low battery consumption

Download

Get it on F-Droid Get it on Google Play

Nightly and beta APKs are available on Codeberg under Releases.

Building from source

You need the Android SDK and NDK, and a Rust toolchain. The libsignal library is built from source from the deps/libsignal submodule instead of using prebuilt binaries.

git clone --recurse-submodules https://codeberg.org/monocles/monocles_chat.git
cd monocles_chat
rustup target add aarch64-linux-android armv7-linux-androideabi x86_64-linux-android i686-linux-android
./gradlew assembleMonocleschatFreeRelease

If you already cloned without submodules, run git submodule update --init --recursive first.

Community

Follow us on monocles social.

We run English and German speaking XMPP group chats:

How can I help with translations?

You can improve or create translations on Codeberg Translate. Thank you very much.

Help! I've run into a problem!

The easiest way to get help is to join our support group chat (English and German).

If we can't fix your problem there, you can open an issue. Describe your problem, explain how to reproduce it and attach logs. See below for how to create log files.

How do I create debug logs? (adb)

GNU/Linux, macOS and other Unix-like systems:

  1. First install the Android Debug Bridge (adb), if it isn't already installed.

    Debian and derivatives like Ubuntu / Linux Mint
    sudo apt-get update
    sudo apt-get install adb
    
    openSUSE
    sudo zypper ref
    sudo zypper install android-tools
    
    macOS (Homebrew)
    brew install android-platform-tools
    
    other systems

    Install adb in the way that suits your system.

  2. Open a terminal and go to a directory of your choice with cd.

  3. Follow steps [6] to [10] of the Windows instructions.

  4. Start writing the log to a file on your computer. We use logcat.txt. monocles chat must be running. Enter:

    $ adb -d logcat -v time --pid=$(adb -d shell pidof -s de.monocles.chat) > logcat.txt
    
  5. Follow the remaining steps [12] and [13] of the Windows instructions.

Windows:

  1. Download Google's SDK Platform Tools:

    https://developer.android.com/tools/releases/platform-tools

  2. If they aren't included, you also need the USB driver for your version of Windows:

    https://developer.android.com/studio/run/win-usb

  3. Extract the zip archive (for example to C:\ADB\).

  4. Open the command line (CMD) from the Start menu: Start > Run: cmd

  5. Go to the directory you extracted the zip to. We use C:\ADB\:

    c:
    cd ADB
    
  6. On your smartphone, open the settings and look for Developer options. If you don't see this option, unlock it first: go to Settings > About phone, find Build number (or similar) and tap it 7 times in a row. A notification tells you that you are now a developer, and Developer options appears in your settings.

  7. In Developer options, turn on USB debugging (sometimes called Android debugging).

  8. Connect your phone to your computer with a USB cable. Any missing drivers should now be installed. On Windows they should be downloaded automatically if you did step [2]. On most GNU/Linux systems you don't need to do anything else.

  9. If everything worked, go back to the command line and check that your device is recognized. Enter adb devices -l. You should see output similar to:

    > adb devices -l
    List of devices attached
    * daemon not running. starting it now on port 5037 *
    * daemon started successfully *
    042111560169500303f4   unauthorized
    
  10. If your device is shown as unauthorized, accept the prompt on your phone that asks whether to allow USB debugging. If you run adb devices again, you should see:

    > adb devices
    List of devices attached
    042111560169500303f4    device
    
  11. Start writing the log to a file on your computer. We use logcat.txt in C:\ADB\. Enter the following (without the > ):

    > adb -d logcat -v time | FINDSTR /I monocles > logcat.txt
    
  12. Now reproduce the problem.

  13. Stop logging (Ctrl+C). Look through your log file carefully and remove any personal or private information. Then send it with a detailed description of the problem and how to reproduce it, using the issue tracker.

License

monocles chat is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License version 3 only (AGPL-3.0-only), as published by the Free Software Foundation.

The app includes libsignal (Copyright © Signal Messenger, LLC), which is licensed under the GNU AGPLv3 only. The app as a whole is therefore is distributed under the terms of the AGPLv3, version 3 only. That includes the requirement to make the complete corresponding source code available to its users. Code taken from Conversations, blabber.im and Cheogram, and contributions made while this repository was licensed under the GPLv3, are licensed under the GNU GPLv3; section 13 of the GPLv3 allows it to be combined with AGPLv3 code.

monocles chat is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE file for details.

Copyright © 2020-2026 Arne-Brün Vogelsang and contributors