lefteros_by SomniusX
EL ↗Say hello

LEFTEROS / PERSONAL ARCHIVE

nema — an XMPP messenger for Android, by Thanos Apollo

13 October 2026 / Lefteris Iliadis / SomniusX

nema is an XMPP messenger for Android, written by Thanos Apollo. XMPP is the open chat protocol where nobody owns the network: you pick a server, or run your own, and talk to people on any other server, the way email works. nema is a new, native client for it. I contribute to it; the project and every decision about it are Thanos's.

What it does

  • Direct and group chats (MUC), with the room's name instead of its generated address.
  • History from the server (message archive), so older messages come back, and Carbons, so your other devices stay in sync.
  • Replies, drafts, bookmarks, blocking, profiles (vCards) and file uploads over HTTP.
  • Named threads inside a conversation, since 0.3.0. Sharing thread names with other apps is still experimental and needs a server that supports it.
  • Tor through Orbot, for accounts on onion servers, since 0.3.0.
  • Message actions on a double-tap, and day separators in the conversation (merged after 0.3.1, so in the next release).

No end-to-end encryption yet. OMEMO, in both its older and newer form, is on the roadmap, but the current builds are not an encrypted messenger. The project's README says the same.

Where it stands

Alpha. Database changes and messaging behaviour are covered by automated tests, but releases can still have bugs or unfinished screens. Releases so far:

Version Date
0.1.1 29 August 2026
0.2.0 30 August 2026
0.3.0 23 September 2026, named threads and Tor
0.3.1 29 September 2026

Work after 0.3.1 is about reliability, on the way to 0.3.2.

Try it

It needs Android 8.0 or newer. The APK is on the releases page. Bugs and ideas go to the issue tracker.

To build it yourself you need JDK 17 and the Android SDK 36:

git clone https://git.thanosapollo.org/nema.git
cd nema
./gradlew assembleDebug

How to contribute

nema takes patches by email, not pull requests: commit your change, turn it into emails with git format-patch --cover-letter origin/master, and send them with git send-email to the address in the project's CONTRIBUTING.org. Patches are reviewed and applied with you as the author. Keep each patch small and standing on its own: that's what gets in fastest.

What I've contributed

Change Sent State
Group chats show their name, not the generated room address August in 0.2.0
A double-tap on a message opens its actions August in 0.2.0
A conversation shows when it's inside a thread August in 0.2.0
A database test that works with older SQLite 10 October applied
Day separators in the conversation (second version) 10 October applied
Time of the last message on each conversation row 12 October waiting for review
Copy in the message menu 12 October waiting for review

Last checked on 13 October 2026.

Thanos Apollo

Posts