man(1)

๐Ÿ’… man(1) โ€” Profanity XMPP client, but make it OX

okay bestie, so this is the man page for Profanity, a simple console based XMPP chat client. โœจ But specifically? This one is here to walk you through setting up XEP-0374: OpenPGP for XMPP Instant Messaging โ€” aka OX. ๐ŸŽ€


๐Ÿฆ‹ NAME

Profanity โ€” a simple console based XMPP chat client. ๐Ÿ’–


๐ŸŒธ DESCRIPTION

This man page is here to help you set up XEP-0374: OpenPGP for XMPP Instant Messaging. Which is also known as OX. iykyk. ๐Ÿ’…

For the deets on usage, go check man profanity-ox or peek at /help ox. ๐Ÿซถ

So here's the thing โ€” Profanity wants to give you, the user, maximum freedom in setting up your own system. So it will not touch your GPG settings directly. Which lowkey means you're gonna have to do some manual steps yourself. They're all described right here. No cap. ๐Ÿ˜ญ

๐Ÿ”‘ Generate OpenPGP key materials

Step one, babes: make an OpenPGP key pair. The key pair generation gets done with the gpg command of GnuPG.

gpg --quick-generate-key xmpp:alice@domain.tld future-default default 3y

This command will generate an OpenPGP key with a UID of xmpp:alice@domain.tld. The option future-default is what was used to generate a ed25519/cv25519 key. And the key is set to expire in three years. โณ

Replace the Jabber ID with your JID and do not forget the URI xmpp: prefix โ€” it's giving essential, fr fr.

Example output:

pub   ed25519 2021-09-21 [SC] [verfรคllt: 2024-09-20]
      583BAE703A801095B6B71A56BD801174B1A0B84A
uid                      xmpp:alice@domain.tld
sub   cv25519 2021-09-21 [E]

๐Ÿ“ค Export your public key

You need to export your public key so you can later upload it into a PEP node. It's just a way for your chat partners to retrieve the public key from you. ๐Ÿซถ Use the command below to export that public key:

Example command:

gpg --export \
  --export-options export-minimal \
  --export-filter 'keep-uid=uid =~ xmpp:alice@domain.tld' \
  --export-filter 'drop-subkey=usage =~ a' \
  583BAE703A801095B6B71A56BD801174B1A0B84A \
  > /tmp/pep-key.gpg

The key will be exported to /tmp/pep-key.gpg. And you may check the key with the command below:

gpg --show-key --with-sig-list /tmp/pep-key.gpg
โš ๏ธ Keep in mind, bestie: public keys may have some information in them (signatures, name, e-mail address). Be careful which data will be exported. ๐Ÿ‘€ The export-options and export-filter option of GnuPG will help you filter that data.

๐Ÿ“ฎ Publish your key

You can use Profanity to publish your exported key into your account (PEP). The /ox announce command will publish your key. ๐Ÿš€

/ox announce /tmp/pep-key.gpg - the Profanity /ox announce /tmp/pep-key.gpg command.

The command will create two PEP node records to store the key. Iconic behavior honestly.

๐Ÿ” Discover keys

To discover public keys of your partners, use the /ox discover command. Sherlock era. ๐Ÿ•ต๏ธ

Example output:

/ox discover buddy@domain.tld
Discovering Public Key for buddy@domain.tld
1234567890ABCDEF1234567890ABCDEF12345678

To request and import a key, you can use the /ox request command.

/ox request buddy@domain.tld 1234567890ABCDEF1234567890ABCDEF12345678
Requesting Public Key 1234567890ABCDEF1234567890ABCDEF12345678 for buddy@domain.tld
Public Key imported

The key will be imported into your gnupg keyring. periodt. ๐Ÿ’ซ

โœ๏ธ Sign the imported key

The key can be shown via gpg โ€” gpg -k xmpp:buddy@domain.tld. Make sure the key is the key of your buddy, and then sign that key with your key. ๐Ÿ”

gpg --ask-cert-level --default-key 583BAE703A801095B6B71A56BD801174B1A0B84A --sign-key 1234567890ABCDEF1234567890ABCDEF12345678

The command /ox contacts will show the keys with XMPP-UID. The command /ox keys will show all known OpenPGP keys. ๐Ÿ‘‘

๐Ÿšจ Only once you signed the key can you actually use OX with your partner. Like, actually. No shortcuts.

๐Ÿ’ฌ Use OX

Within a chat window you can start OX via /ox start and stop it via /ox end. ๐ŸŽ€

Messages will be sent signed and encrypted. main character secure communication energy, we love to see it. ๐Ÿ”ฅ


and that's a wrap, bestie!! ๐Ÿฆ‹ this whole thing was brought to you by Profanity 0.18.2, dated 2026-06-08 โ€” man(1) out, slay forever ๐Ÿ’…โœจ

๐Ÿ“ฆ where this page comes from