jutella-xmpp

Crates.iojutella-xmpp
lib.rsjutella-xmpp
version0.3.1
created_at2024-09-24 08:29:31.123978+00
updated_at2025-12-18 15:58:25.174857+00
descriptionXMPP – OpenAI API bridge
homepage
repositoryhttps://github.com/dmitry-markin/jutella-xmpp
max_upload_size
id1384901
size151,860
Dmitry Markin (dmitry-markin)

documentation

README

jutella-xmpp

License crates.io

XMPP LLM bridge based on tokio-xmpp and jutella.

Supports OpenAI (including Azure auth flavor) and OpenRouter chat completions API.

Features

  1. Allowlist of user JIDs with wildcards.
  2. Rolling context window with min/max token limits (see the config parameters description for details).
  3. Presence, read receipts & composing notifications.
  4. Image & PDF file attachments.
  5. Image generation (only with OpenRouter, no multi-turn editing support).

Installation

Install the executable

  1. Install cargo from https://rustup.rs/.
  2. Install jutella-xmpp from crates.io with cargo install jutella-xmpp.
    The executable will be installed as $HOME/.cargo/bin/jutellaxmpp.
  3. Alternatively, clone the repo and build the executable with cargo build --release. The resulting executable will be target/release/jutellaxmpp.
  4. Copy the executable to /usr/local/bin.

Create a user for runnig the daemon

sudo useradd --system --shell /sbin/nologin --home-dir /nonexistent jutella

Install the config

  1. Copy the config example to /etc.
  2. Make it readable by jutella group:
    sudo chmod 640 /etc/jutellaxmpp.toml
    sudo chown root:jutella /etc/jutellaxmpp.toml
    
  3. Edit the config to match your configuration.

Install the systemd service

  1. Copy systemd service to /etc/systemd/system.
  2. Enable it to run on system startup: sudo systemctl enable jutellaxmpp.service.
  3. Start the service: sudo systemctl start jutellaxmpp.service.
Commit count: 28

cargo fmt