sudo pacman -S profanity
If you want OMEMO (end-to-end encryption) support too:
sudo pacman -S profanity
# omemo support is usually bundled if built with the right deps; check:
profanity --version
(If your build lacks OMEMO/PGP, you can rebuild from the AUR with the needed USE flags, but the repo package normally works fine.)
You need a JID (Jabber ID), like you@example.org. If you don’t have one, pick a public server such as conversations.im, movim.eu, or xmpp.jp, and register — either via their website or from Profanity itself:
profanity
/account add myaccount
/account set myaccount jid you@example.org
If the server supports in-band registration, some clients can register directly; otherwise sign up on the provider’s site first.
Launch Profanity:
profanity
Then inside the client:
/connect you@example.org
It’ll prompt for your password (or you can store it securely):
/account set myaccount password yourpassword
/account set myaccount server example.org
/connect you@example.org
To auto-connect on startup:
/account set myaccount autoconnect on
XMPP’s “communities/group chats” are called MUCs. To join one:
/join room@conference.example.org
For example, a public tech chat might be:
/join xmpp@conference.movim.eu
You can set a nickname when joining:
/join room@conference.example.org/YourNick
To find public rooms, many servers run a directory service — try:
/disco search conference.example.org
or browse via a service like search.jabber.network in a browser first to find room JIDs, then join them from Profanity.
| Action | Command |
|---|---|
| List joined rooms | /rooms |
| Switch between open chats | Alt+1, Alt+2, etc., or /win N |
| Send a message | just type and hit Enter (while a room/chat is focused) |
| Private message a user in a room | /msg room@conference.example.org/Nick hello |
| Leave a room | /leave |
| Add a contact | /roster add friend@example.org |
| See your roster | /roster |
| Start 1:1 chat | /msg friend@example.org |
| Enable encryption (OMEMO) | /omemo start friend@example.org |
| Show help | /help |
Inside Profanity:
/theme load default
/notify message on
/titlebar show on
/inpblock timeout 500
To edit config directly:
$EDITOR ~/.config/profanity/profrc
If you want something more IRC-like in feel, poezio is another solid CLI XMPP client, also in the Arch repos:
sudo pacman -S poezio
It uses a similar /join, /list, /msg-style command set and is particularly good if you’re coming from IRC and want MUCs to feel familiar.
A couple of practical notes:
Want me to also cover setting up OMEMO encryption keys/fingerprint verification, or scripting XMPP messages (e.g., via sendxmpp or a bot) for automation?