https://github.com/spiccinini/xarebot
Xarebot can send and receive XMPP text and media from the cmdline
https://github.com/spiccinini/xarebot
cmdline python3 xmpp xmpp-bot
Last synced: about 1 month ago
JSON representation
Xarebot can send and receive XMPP text and media from the cmdline
- Host: GitHub
- URL: https://github.com/spiccinini/xarebot
- Owner: spiccinini
- License: agpl-3.0
- Created: 2025-03-25T23:22:53.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-25T23:42:34.000Z (over 1 year ago)
- Last Synced: 2025-11-02T00:03:32.715Z (8 months ago)
- Topics: cmdline, python3, xmpp, xmpp-bot
- Language: Python
- Homepage:
- Size: 124 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Xarebot
Xarebot can send and receive XMPP text and media from the cmdline.
I use it mainly to exchange things with myself from my smartphone to the cmdline and vice versa.
I run a snikket chat instance but any XMPP server should work.
This bot does not need to be running to receive messages, it fetches them using the archive feature of the server.
Features
* Sends OMEMO-encrypted text messages
* Sends OMEMO-encrypted files
* Reads unencrypted messages from the server archive (recent messages)
* Downloads unencrypted files from the archive
Receiving OMEMO-encrypted messages is partially implemented.
The client must be active at the moment of message arrival to decrypt OMEMO content.
Reading encrypted messages from MAM is yet to be done.
## Examples
### Sends a text message and also prints the last messages received
`uv run xarebot.py --send-msg 'Greetings from Pycamp 2025!'`
### Sends a file and also prints the last messages received
`uv run xarebot.py --send-file ~/Downloads/foo.jpeg`
### Just receives and prints the last messages received
`uv run xarebot.py`
## Usage
Copy credentials_example.py to credentials.py.
## History
I started working on this idea in Argentina's awesome PyCamp 2025.
## License
It is AGPL lincensed. Please read all the licenses of the dependencies.
## TODO
* Expose it as a QubesOs service so the bot only runs when requests and
in one qube but every qube can send or receive messages and files.
* Make the encription reception work.