go-sendxmpp(1) -- A tool to send messages to an XMPP contact or MUC.
====

## SYNOPSIS

`go-sendxmpp` [-cdintx] [-f value] [--help] [-j value] [-m value] [-p value] [-r value] [-u value] [parameters ...]

## 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)

* `--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).

* `--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.

* `-r`, `--resource`=[<value>]:
DEPRECATED: Set resource. When sending to a chatroom this is used as 'alias'.

* `--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.

## CHAT

Feel free to join [https://join.jabber.network/#go-sendxmpp@chat.mdosch.de?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](https://salsa.debian.org/mdosch/go-sendxmpp/issues).

## COPYRIGHT

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

## SEE ALSO

go-sendxmpp(5), sendxmpp(1)
