go-sendxmpp - A tool to send messages to an XMPP contact or
MUC.
go-sendxmpp [-cdilnt] [-a value] [--allow-plain] [--anonymous]
[--fast-invalidate] [--fast-off] [-f value] [--headline] [--help] [-h value]
[-j value] [-m value] [--muc-password value] [--no-sasl-upgrade] [--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] [--ssdp-off] [-s value]
[--suppress-root-warning] [--timeout value] [--tls-version value] [-u value]
[--version] [recipients…]
A tool to send messages to an XMPP contact or MUC inspired by
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.
- -a,
--alias=[value]
- Set alias/nickname for chatrooms.
- --allow-plain
- 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.
- --anonymous
- Use anonymous authentication. Specify the the target server by using the
flag -u or --username. Username is used to specify the
server to be able to override the server by using -j or
--jserver in cases where the service (e.g. anon.example.org) is
served by another server (e.g. xmpp.example.org) but no SRV records are
set up.
- -c,
--chatroom=[value]
- Send message to a chatroom.
- -d, --debug
- Show debugging info.
- --fast-invalidate
- Invalidate XEP-0484: Fast Authentication Streamlining Tokens. The current
FAST token will be invalidated and a new one will be requested. If used
together with --fast-off the FAST token will be invalidated and the
stored FAST token deleted.
- --fast-off
- Disable XEP-0484: Fast Authentication Streamlining Tokens. Deletes the
stored FAST token when used together with --fast-invalidate.
- -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. Can be invoked several times to upload
multiple files.
- -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.
- --no-sasl-upgrade
- Disable XEP-0480: SASL Upgrade Tasks.
- -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.
- -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 and requires a SCRAM authentication
mechanism).
- --ssdp-off
- Disable XEP-0474: SASL SCRAM Downgrade Protection.
- -s,
--subject=[value]
- Set message subject.
- --suppress-root-warning
- Suppress warning when run as root.
- --timeout=[value]
- Connection timeout in seconds. (Default: 10)
- -t, --tls
- Use direct TLS.
- --tls-version=[value]
- Minimal TLS version. 10 (TLSv1.0), 11 (TLSv1.1), 12 (TLSv1.2), 13
(TLSv1.3) (Default: 12)
- -u,
--username=[value]
- Username for XMPP account (JID).
- --version
- Show version information.
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
-
In general it's a good advice to only perform commands as root
when it is strictly necessary. To be able to send the output from commands,
that need to be performed as root, with go-sendxmpp without invoking
go-sendxmpp by root sudo can be used.
In this example there is a user sendxmpp with a go-sendxmpp
config in its $HOME:
-
-
# command-that-requires-root|sudo -H -u sendxmpp go-sendxmpp me@example.org
-
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
-
There are no shell completions yet, but FISH can generate them
from the man page with following command:
-
-
fish_update_completions
-
Feel free to join
https://join.jabber.network/#go-sendxmpp@chat.mdosch.de?join.
Report bugs at
https://salsa.debian.org/mdosch/go-sendxmpp/issues.
Copyright (c) Martin Dosch License: BSD 2-clause License
go-sendxmpp(5), xmppc(1), sendxmpp(1)