GO-SENDXMPP(5)

πŸ’– GO-SENDXMPP β€” bestie edition πŸ’–

okay so. go-sendxmpp(5), manual section 5 (File Formats Manual) β€” it's literally the config-file lore for go-sendxmpp, a tool to send messages to an XMPP contact or MUC. yes it's a manual page. yes i made it cute. no the facts did not change, bestie, i would never.


🌸 NAME 🌸

go-sendxmpp β€” a tool to send messages to an XMPP contact or MUC. that's it, that's the whole job, and it ate.


πŸ“ LOCATION πŸ“

so here's where your account data is supposed to live. go-sendxmpp goes looking in these spots, in this order of preference:

  • ~/.config/go-sendxmpp/config β€” the preferred one, the main character ✨
  • ~/.config/go-sendxmpp/sendxmpprc β€” deprecated 🫠 still works but like. c'mon.
  • ~/.sendxmpprc β€” kept around for compatibility with the original perl sendxmpp
heads up: all that searching only happens if you didn't tell it where to look with -f or --file. you say the word, it listens. periodt.

the configuration file is expected to be in this format:


πŸ“ FORMAT πŸ“

username: [your_jid]
jserver: [jabber_server]
port: [jabber_port]
password: [your_jabber_password]
eval_password: [command_to_unlock_your_password]
alias: [your_alias]
allow_plain: [bool]
no_root_warning: [bool]
no_legacy_pgp_warning: [bool]
ox_trust_mode: [blind|tofu]

that's the blueprint. obey it and you're golden πŸ’…


βœ… REQUIRED SETTINGS βœ…

plot twist: nothing is required-required. if you pass all the necessary settings as command line arguments, you don't need a config file at all. iconic behaviour honestly.

setting jserver and port might not be necessary at all, depending on the server you're using β€” a properly set-up server just knows.

and for your password, you've got two routes, bestie:

  • use a password manager and go with the setting eval_password, or
  • drop your password into the config file in plaintext with the setting password
⚠️ please be careful with eval_password β€” any command you put there will be executed. that's not a vibe, that's a real "don't paste random stuff from the group chat" situation 😭

✨ OPTIONS ✨

  • username β€” your JID, e.g. user@example.com.
  • jserver β€” your server, e.g. xmpp.example.com. should not be necessary if the server is set up properly.
  • port β€” the client-to-server port of the XMPP server, e.g. 5222. should not be necessary if the server is set up properly.
  • password β€” your accounts password, e.g. hunter2 (please, do not use hunter2). use " if your password contains spaces, e.g. "hunter 2" (please, also do not use hunter 2). i'm begging you πŸ₯Ί
  • eval_password β€” a command to retrieve the password from a password manager, e.g. pass xmpp/user@example.com. chef's kiss if you're doing this fr fr πŸ”
  • alias β€” the alias/nickname for chatrooms, e.g. Martin or "My nick contains spaces".
  • allow_plain β€” boolean to allow PLAIN authentication. note that this setting has no effect if there was a successful connection using a SCRAM authentication mechanism before. in that case PLAIN is not allowed, to prevent downgrades by a man-in-the-middle attack. allowed values: true/false (Default: false)
  • no_root_warning β€” boolean to disable the warning when running as root. note that running as root is discouraged, although go-sendxmpp tries to drop the root privileges before doing network calls. be aware that OX, legacy PGP and the pinning to not use PLAIN authentication after a successful SCRAM authentication are disabled as those need file system access in the private user scope after dropping the privileges. allowed values: true/false (Default: false)
  • no_legacy_pgp_warning β€” boolean to disable the warning when using legacy PGP. please note, that legacy PGP is deprecated and will be removed in an upcoming update. it is highly recommended to use OX instead. allowed values: true/false (Default: false)
  • ox_trust_mode β€” accepts the strings tofu and blind. tofu means trust on first usage and accepts any OX key if none is stored in the cache yet; if the key ID changes go-sendxmpp will refuse to encrypt. blind means go-sendxmpp will import and trust any new key that is advertised by the recipient. allowed values: tofu/blind (Default: blind)

πŸ‘‘ AUTHOR πŸ‘‘

Written by Martin Dosch. absolute legend, no notes 🫢


πŸ› REPORTING BUGS πŸ›

found a bug? it's giving "tell the devs". report bugs at https://salsa.debian.org/mdosch/go-sendxmpp/-/work_items. they want to know. πŸ’Œ


Copyright (c) Martin Dosch License: BSD 2-clause License


πŸ¦‹ SEE ALSO πŸ¦‹

iykyk β€” go read those next, bestie πŸ’œ


that's the whole page, you're welcome. this little masterpiece is from the File Formats Manual and it's dated July 2026, filed under GO-SENDXMPP(5). mwah πŸ’…βœ¨

πŸ“¦ where this page comes from