132 lines
3.2 KiB
Markdown
132 lines
3.2 KiB
Markdown
MATRIX-SEND(1) - General Commands Manual
|
|
|
|
# NAME
|
|
|
|
**matrix-send** - send a message to a Matrix room
|
|
|
|
# SYNOPSIS
|
|
|
|
**matrix-send**
|
|
\[**-t** *type*]
|
|
\[**-c**]
|
|
\[**-h**]
|
|
\[**-v**]
|
|
*message room*
|
|
|
|
# DESCRIPTION
|
|
|
|
**matrix-send**
|
|
is a script to send a message to a Matrix room.
|
|
It works by sending a JSON message to your Matrix server. The default message
|
|
type is m.text, but you can specify a custom type with
|
|
*-t*.
|
|
|
|
The options are as follows:
|
|
|
|
**-t** *type*
|
|
|
|
> Change the event type to
|
|
> *type*.
|
|
> Currently supported types are
|
|
> *m.text*
|
|
> and
|
|
> *m.notice*.
|
|
> Default is
|
|
> *m.text*.
|
|
|
|
**-c**
|
|
|
|
> Clear cached access tokens.
|
|
|
|
**-h**
|
|
|
|
> Show the help menu, then exit.
|
|
|
|
**-V**
|
|
|
|
> Print version and program information, then exit.
|
|
|
|
To begin, start by making a configuration file. This always has the location of
|
|
*~/.config/matrix-send.conf*.
|
|
|
|
At the very least, your configuration file has to contain 3 directives:
|
|
*Server*,
|
|
*Username*,
|
|
and
|
|
*Password*.
|
|
Let's say your Matrix server is envs.net. Your username is john, and your password
|
|
is supersecretpassword. Your configuration could look like this:
|
|
|
|
Server matrix.envs.net
|
|
Username john
|
|
Password supersecretpassword
|
|
|
|
In that example, we used matrix.envs.net instead of envs.net. This is because
|
|
matrix.envs.net is the address in which the Client-Server API is listening on.
|
|
You can find your server's Client-Server API URL in Element by entering in
|
|
your server into the Homeserver dialogue in the sign-in screen, then hovering
|
|
over it once entered. Your server's Client-Server API URL should appear once
|
|
you hover over it. If it doesn't appear, you've already got it.
|
|
|
|
You may have noticed that with this configuration, your password
|
|
is visible in plain sight.
|
|
|
|
At its most basic, matrix-send.conf is a shell script. This means you could
|
|
replace the
|
|
*Password*
|
|
line with something similar to this
|
|
|
|
Password $(gpg -d /path/to/passwd.gpg)
|
|
|
|
where
|
|
*/path/to/passwd.gpg*
|
|
is a GPG-encrypted plain text file containing only your password.
|
|
This line would mean that you would be asked for the passphrase required to
|
|
decrypt your password file before authenticating. This way, your password
|
|
is not in plain text.
|
|
|
|
More information on configuration options can be found in
|
|
matrix-send.conf(5).
|
|
|
|
To use
|
|
**matrix-send**,
|
|
you will need to get the Room ID of the room you'd like to send to.
|
|
This will be something like
|
|
*!zyxwvutsrq:example.org*.
|
|
|
|
Type the Room ID as the argument after the message you wish to send.
|
|
You may have to escape the exclamation mark with a backslash. For example:
|
|
|
|
matrix-send "Hello world!" \!zyxwvutsrq:example.org
|
|
|
|
That should send a message saying
|
|
*Hello world!*
|
|
to the room with the Room ID !zyxwvutsrq:example.org.
|
|
|
|
By default,
|
|
**matrix-send**
|
|
caches access tokens in
|
|
*$HOME/.cache/matrix-send/access-token*.
|
|
If you would like to disable caching of access tokens, add NoCache to your
|
|
*matrix-send.conf*.
|
|
|
|
Encryption is not supported. All messages will be sent unencrypted.
|
|
There are currently no plans to add encryption to
|
|
**matrix-send**.
|
|
|
|
# FILES
|
|
|
|
*~/.config/matrix-send.conf*
|
|
|
|
> configuration file for
|
|
> **matrix-send**
|
|
|
|
*~/.cache/matrix-send/access-token*
|
|
|
|
> access token cache file
|
|
|
|
# SEE ALSO
|
|
|
|
matrix-send.conf(5)
|
|
|
|
OpenBSD 7.1 - July 29, 2022
|