simple XMPP command line client
smplxmpp allows you to send and receive xmpp messages via the commandline.
Both normal chat messages and MUCs are supported.
This is another tool in your linux toolbelt:
To have it's output and/or input joined to other line-oriented tools like
awk in a pipeline.
Please have a look at the Tutorial for more detailed introduction.
This example shows sending and receiving messages when using a config file.
# send a message to alice $ echo "email@example.com Hello, World!" | smplxmpp # now wait for a response interactively (and clear the offline queue) $ smplxmpp firstname.lastname@example.org Hello Bot! email@example.com How are you doing?
Out of the box
This example will work out of the box.
Note that you should not do that, it will leak your password to all users of the system (via the process list).
$ smplxmpp -j firstname.lastname@example.org --pass=hackme
Don't forget to specify a nick.
Also, parsing nicks in MUCs is almost impossible (they basically can contain any character), so they are not displayed (so you don't have to write complex parsers for
$ smplxmpp --muc "email@example.com/nick"
Only one user
To only send and receive messages from a single user use
$ smplxmpp --focus "firstname.lastname@example.org" Hello! There are no more prefixes!
Every line contains only one message.
Newlines within a message are encoded to
To encode a message you may pipe it through
$ fortune | smplxmpp-nl | smplxmpp --focus "email@example.com"
Use the flag
-d to decode messages.
Place these in
/etc/smplxmpp.conf (system wide) or in
~/.smplxmpprc (only user).
jid firstname.lastname@example.org pass hackme
For the usage please refer to the man pages
smplxmpp(1) for the binary,
smplxmpp(5) for the configuration and
smplxmpp-nl(1) for the encoding and decoding helper.
man 1 smplxmpp man 5 smplxmpp man 1 smplxmpp-nl
Additional documentation on the internal structure is provided in the
Activate the build option
BUILD_DOCUMENTATION to build the API documentation.
This is a cmake project, and can be installed like any other cmake project.
git clone https://codeberg.org/tropf/smplxmpp.git cd smplxmpp mkdir build && cd build cmake .. ccmake . # optional, adjust build vars make -j8 sudo make install
See the docs for available build configuration.
cmake and a c++ compiler (e.g.
As libraries you need gloox and spdlog.
If you don't have them installed you can set
OFF respectively, which causes smplxmpp to fetch them via the internet and build them locally.
This project is available under the GNU GPLv3 only.
Find this project on Codeberg.