Skip to main content

No project description provided

Project description

XMPP Utilities

XMPP Utilities is a simple XMPP bot that provides various diagnostic and informational tools for XMPP entities and domains. It can be used to check software versions, service items, contact information, uptime, and more.

Features

The bot responds to commands prefixed with !xmpp in both direct messages and configured Multi-User Chats (MUCs).

Available Commands

  • !xmpp help - Displays the help message with all available commands.
  • !xmpp version <jid> - Shows the software version of an XMPP entity (XEP-0092).
  • !xmpp items <jid> - Lists the service items of an XMPP entity (XEP-0030).
  • !xmpp contact <jid> - Displays contact information for an XMPP entity (XEP-0030).
  • !xmpp info <jid> - Lists the identities and features of an XMPP entity (XEP-0030).
  • !xmpp ping <jid> - Pings an XMPP entity and reports the round-trip time (XEP-0199).
  • !xmpp uptime <jid> - Shows the uptime of an XMPP entity (XEP-0012).
  • !xmpp srv <domain> - Performs DNS SRV lookups for XMPP services (_xmpp-client, _xmpp-server, etc.).
  • !xmpp compliance <domain> - Shows the compliance score of a server from compliance.conversations.im.

Configuration

The bot is configured using environment variables. You can copy .env.example to .env and fill in your details:

cp .env.example .env
# Edit .env with your credentials
Variable Description Required Default
XMPP_UTILS_JID The JID of the bot account (e.g., bot@example.com). Yes -
XMPP_UTILS_PASSWORD The password for the bot account. Yes -
XMPP_UTILS_MUCS A comma-separated list of MUC JIDs to join. No -
XMPP_UTILS_NICK The nickname to use in MUCs. No XMPP Utilities

Requirements

  • Python 3.13+
  • slixmpp
  • dnspython

Installation

pip/pipx (PyPI)

You can install XMPP Utilities from PyPI with pip:

pip install xmpp-utilities

Or with pipx for an isolated environment:

pipx install xmpp-utilities

pip/pipx (FSKY Foundry)

To download the package from FSKY Foundry instead of PyPI:

pip install xmpp-utilities --pip-args="--index-url https://foundry.fsky.io/api/packages/telepath/pypi/simple --extra-index-url https://pypi.org/simple"

Or with pipx:

pipx install xmpp-utilities --pip-args="--index-url https://foundry.fsky.io/api/packages/telepath/pypi/simple --extra-index-url https://pypi.org/simple"

From wheel

Download the wheel from the releases page and install with pip:

pip install xmpp_utilities-*.whl

Running

Installed package

After installing, set the environment variables and run the bot:

export XMPP_UTILS_JID="xmpp-utilities@telepath.im"
export XMPP_UTILS_PASSWORD="your-password"
xmpp-utilities

Local development

Requires uv.

  1. Clone the repository:

    git clone https://foundry.fsky.io/telepath/xmpp-utilities.git
    cd xmpp-utilities
    
  2. Install dependencies:

    uv sync
    
  3. Set the environment variables and run the bot:

    export XMPP_UTILS_JID="xmpp-utilities@telepath.im"
    export XMPP_UTILS_PASSWORD="your-password"
    uv run xmpp-utilities
    

Container (Docker/Podman)

A container image is available for this project.

podman run -d \
  --name xmpp-utilities \
  -e XMPP_UTILS_JID="xmpp-utilities@telepath.im" \
  -e XMPP_UTILS_PASSWORD="your-password" \
  foundry.fsky.io/telepath/xmpp-utilities:latest

Systemd Quadlet

A Quadlet file is available at contrib/quadlet/xmpp-utilities.container. You can use it to manage the container via systemd.

Edit the file to suit your needs, place it into ~/.config/containers/systemd/ or /etc/containers/systemd/, and run:

systemctl --user daemon-reload
systemctl --user start xmpp-utilities

License

This project is released into the public domain under the Unlicense.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xmpp_utilities-1.1.0.tar.gz (9.6 kB view details)

Uploaded Source

File details

Details for the file xmpp_utilities-1.1.0.tar.gz.

File metadata

  • Download URL: xmpp_utilities-1.1.0.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"EndeavourOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for xmpp_utilities-1.1.0.tar.gz
Algorithm Hash digest
SHA256 6c255acff086482723f0600b0eee471419606ca4e6b3f0e7a286b1f5fc9281ce
MD5 5dca6e5a4ee7a4d9669ac668bbb7148c
BLAKE2b-256 82a27742d9972dc6bcd3724748f340d5dd6b4f3bf6e353029ea04c175ead3a47

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page