Runing the Jami daemon - Not missing messages with Jami

Jami is a very cool distributed instant messaging program under the GNU project. The same GNU that brings you GIMP, glibc, Octave and much more. Jami clients communicate through the OpenDHT distributed hash table. However, the DHT only stores your message briefly. Thus, you miss your messages if you don’t have clients logged into your account.

Jami isn’t the best at documenting the everything. So hopefully my experience can assist.

The obvious solution

The most straightforward solution is to keep your computer on or install the Jami client on your smartphone and let it run 24-7. Jami is very lightweight and does not consume much bandwidth and battery life. Be aware that newer versions of Android can put apps into sleep mode. Preventing Jami from reviving message. Make sure that Jami is running if you are going this route.

Jami on your other devices will automatically sync up with online devices after starting.

Running the Jami daemon

If you have a Raspberry Pi or a cheap VPS somewhere. It’s possible to just run the Jami daemon in background and let your devices sync up to that. This way you don’t have to worry Android stopping Jami or your PC consuming too much power.

First, login to Jami. For RPi users this should be exactly like how you login on a desktop. Download the client and open the login window. For VPS. I haven’t figure out how to do it from the command line yet. I spun a VNC server and run Jami from there. We don’t need the GUI after that.

Now we can run the Jami daemon. All clients communicates with this daemon to send and receive messages. By default the daemon is located in /usr/lib/jamid. So now

/usr/lib/jamid -c

The -c flag tells it to dump output to console. This instance will receive all messages when your other devices are disconnected. Now keep it running by running it in tmux or turn it into a systemd service. In any case. You won’t miss your messages any more.

Happy messenging

Author's profile. Photo taken in VRChat by my friend Tast+
Martin Chang
Systems software, HPC, GPGPU and AI. I mostly write stupid C++ code. Sometimes does AI research. Chronic VRChat addict

I run TLGS, a major search engine on Gemini. Used by Buran by default.


  • marty1885 \at protonmail.com
  • Matrix: @clehaxze:matrix.clehaxze.tw
  • Jami: a72b62ac04a958ca57739247aa1ed4fe0d11d2df