Poezio 0.18
I develop stuff and have opinions on things -
About me/Contact
Articles:
05/2026 Poezio 0.18
05/2026 Winding do...
05/2026 Typing som...
05/2026 My first m...
05/2026 slixmpp v1.15.0
04/2026 Poezio 0.17
04/2026 Poezio 0.16.1
03/2026 Poezio 0.16
03/2026 slixmpp v1.14.1
by mathieui
on Mon 25 May 2026
Tags: xmpp-en xmpp poezio
Poezio is a terminal-based XMPP client which aims to replicate the<br>feeling of terminal-based IRC clients such as irssi or weechat; to<br>this end, poezio originally only supported multi-user chats and anonymous<br>authentication.
This new release has mostly internal improvements, but a few improvements and<br>fixes as well.
Thanks to all contributors and users!
Features
Implementation of Message Retraction (XEP-0424) as the sending side.
Various improvements to the react plugin, notably a way to convert :emoji:<br>aliases to real emojis.
Overhaul of the hide_exit_join option (more in the next section).
Updates to hide_exit_join
The hide_exit_join option is meant to avoid displaying all join/part presences<br>since the MUC (XEP-0045) behaviour is heavily presence-based for now.
It is an integer, which can be -1 (display all exit/joins), 0 (display none),<br>and a positive value n (display anything inactive for more than n seconds).
How this worked previously is that poezio did not even add join/exit messages if<br>they matched the criteria, making its a bit difficult if you both did not want<br>to clutter your screen with mostly irrelevant information, while at the same time<br>being able to view them – e.g. if you are moderating the room –.
Now the positive value’s quirky behavior stays the same, but in the case of<br>-1 or 0, the join/exit messages will be kept in the buffer at all times,<br>but not displayed when the value is 0. This option can be set at runtime,<br>and the effects are instantaneous.
Since this is a special kind of value and not a boolean, /toggle will not<br>work on it, therefore two new "aliased keys" have been added for users who want<br>to bind keypresses to this toggling:
_toggle_presences_local to show or hide presences in the current MUC.
_toggle_presences_global to show or hide presences globally.
Fixes
The API used internally for message retraction or moderation is no longer<br>limited to the last 100 messagess.
Fixed the config file handling on Guix or related distributions where the config<br>file could actually be a symlink (in which case it produced undesired behavior).
Custom plugin and theme load should keep working on python 3.15, which removes<br>a number of deprecated APIs in python’s importlib.
The /xhtml command had been broken for a while.
Some coroutines in the admin or irc plugin were not awaited, which<br>broke functionality and produced unwanted errors in the output.
Fixed a traceback when receiving reactions from an unopened conversation.
Fixed a display bug in semi-anonymous rooms showing the room jid<br>(room@server/nick) for users when joining/leaving, which is useless.
Fixed a case where self-ping would be disabled when the room disconnects us,<br>instead of trying to rejoin later.
Packaging
Link Mauve updated both the flatpak and the sticker-picker plugin.
Goran updated the guix package.
Docs
Missing plugins documentation has been added.
Internal
As hinted in my previous post, a large effort was made towards better<br>typing and linting. This means there were a huge number of changes:
% git diff --stat v0.17...v0.18<br>157 files changed, 5366 insertions(+), 3158 deletions(-)
Which is risky, but at the same time since most of those changes added<br>stricter type checking, there are few possible regressions (and a few were<br>caught already, thanks to the kind people running the main branch).
Links
download
poezio documentation
If you have remarks or suggestions concerning this article, please by all means contact me.