GO-SENDXMPP(1) | General Commands Manual | GO-SENDXMPP(1) |
NAME
go-sendxmpp - A tool to send messages to an XMPP contact or MUC.
SYNOPSIS
go-sendxmpp [-cdilnt] [-a value] [-f value] [--headline] [--help] [-h value] [-j value] [-m value] [--muc-password value] [--oob-file value] [--ox] [--ox-delete-nodes] [--ox-genprivkey-rsa] [--ox-genprivkey-x25519] [--ox-import-privkey value] [--ox-passphrase value] [-p value] [--raw] [--scram-mech-pinning value] [--timeout value] [--tls-version value] [-u value] [--version] [recipients…]
DESCRIPTION
A tool to send messages to an XMPP contact or MUC inspired by (but
not as powerful as) sendxmpp.
You can either pipe a programs output to go-sendxmpp, write in your
terminal (put ^D in a new line to finish) or send the input from a
file (-m or --message). The account data is expected at
~/.config/go-sendxmpp/config (preferred),
~/.config/go-sendxmpp/sendxmpprc (deprecated) ~/.sendxmpprc
(for compatibility with the original perl sendxmpp) if no other
configuration file location is specified with -f or
--file.
OPTIONS
- -a, --alias=[value]
- Set alias/nickname for chatrooms.
- -c, --chatroom=[value]
- Send message to a chatroom.
- -d, --debug
- Show debugging info.
- -f, --file=[value]
- Set configuration file. (Default: ~/.config/go-sendxmpp/config)
- --headline
- Send message as type headline.
- --help
- Show help.
- -h, --http-upload=[value]
- Send a file via http-upload.
- -i, --interactive
- Interactive mode (for use with e.g. tail -f).
- -j, --jserver=[value]
- XMPP server address.
- -l, --listen
- Listen for messages and print them to stdout. If JIDs are specified only messages from those contacts are shown. If no JIDs are specified all received messages will be shown.
- -m, --message=[value]
- Set file including the message.
- --muc-password=[value]
- Password for password protected MUCs.
- -n, --no-tls-verify
- Skip verification of TLS certificates (not recommended).
- --oob-file=[value]
- URL to send a file as out of band data.
- --ox
- Use "OpenPGP for XMPP" encryption (experimental).
Ox in go-sendxmpp only supports sending encrypted 1-1 messages. Sending to groupchats and sending encrypted files is not supported. There is no check whether the recipients key is trusted as there is no local keyring used. Go-sendxmpp just uses the most recent key that is provided via pubsub and checks that it is not expired. As a user facing client a notification would be shown that a new key is available and ask the user whether to use the new key or stick to the old one. As go-sendxmpp is usually used in scripts it just accepts the new key to prevent the user from missing a new notification due to changed keys. - --ox-delete-nodes
- Delete existing OpenPGP nodes on the server.
- --ox-genprivkey-rsa
- Generate a private OpenPGP key (RSA 4096 bit) for the configured account
(via config file or -u and -p) and publish the corresponding
public key. Go-sendxmpp will save the key in
$XDG_DATA_HOME/go-sendxmpp/oxprivkeys or
$HOME/.local/share/go-sendxmpp/oxprivkeys. To protect the key a
passphrase might be set using --ox-passphrase while generating the
key.
If there is an existing private key for "OpenPGP for XMPP" created by another client (e.g. profanity) it might be imported using --ox-import-privkey. - --ox-genprivkey-x25519
- Generate a private OpenPGP key (X25519) for the configured account (via
config file or -u and -p) and publish the corresponding
public key. Go-sendxmpp will save the key in
$XDG_DATA_HOME/go-sendxmpp/oxprivkeys or
$HOME/.local/share/go-sendxmpp/oxprivkeys. To protect the key a
passphrase might be set using --ox-passphrase while generating the
key.
If there is an existing private key for "OpenPGP for XMPP" created by another client (e.g. profanity) it might be imported using --ox-import-privkey. - --ox-import-privkey=[value]
- Import an existing private OpenPGP key.
- --ox-passphrase=[value]
- Passphrase for locking and unlocking the private OpenPGP key.
- --tls-version=[value]
- Minimal TLS version. 10 (TLSv1.0), 11 (TLSv1.1), 12 (TLSv1.2), 13 (TLSv1.3) (Default: 12)
- -p, --password=[value]
- Password for XMPP account.
- --raw
- Send raw XML. To send raw XML to a contact as normal chat message no contact must be specified. To send raw XML to a MUC you have to specify the MUC via -c and go-sendxmpp will join the MUC.
- --scram-mech-pinning=[<value>]
- Enforce the use of a certain SCRAM authentication mechanism. Currently go-sendxmpp supports SCRAM-SHA-1, SCRAM-SHA-1-PLUS, SCRAM-SHA-256, SCRAM-SHA-256-PLUS, SCRAM-SHA-512 and SCRAM-SHA-512-PLUS. You should know what you are doing when using this setting and make sure the chosen mechanism is supported by the server. If not set, go-sendxmpp will use XEP-0474 to prevent downgrade attacks (needs server support).
- --timeout=[value]
- Connection timeout in seconds. (Default: 10)
- -t, --tls
- Use direct TLS.
- -u, --username=[value]
- Username for XMPP account (JID).
- --version
- Show version information.
ENVIRONMENT VARIABLES
HTTP_PROXY
A SOCKS5 proxy can be used by setting the environment variable HTTP_PROXY. This feature is considered experimental and there is no guarantee that there won't be any connections not using the proxy although it didn't happen during testing.
HTTP_PROXY="socks5://127.0.0.1:9050" go-sendxmpp --http-upload file.txt user@example.org
SHELL COMPLETIONS
ZSH
There are no shell completions yet (contributions welcome) but for zsh it is possible to automatically create completions from --help which might work good enough.
Just place the following in your ~/.zshrc or ~/.zshrc.local:
compdef _gnu_generic go-sendxmpp
CHAT
Feel free to join https://join.jabber.network/#go-sendxmpp@chat.mdosch.de?join.
AUTHOR
Written by Martin Dosch.
REPORTING BUGS
Report bugs at https://salsa.debian.org/mdosch/go-sendxmpp/issues.
COPYRIGHT
Copyright (c) Martin Dosch License: BSD 2-clause License
SEE ALSO
go-sendxmpp(5), sendxmpp(1)
November 2024 |