Slidge is a general purpose XMPP (puppeteer) gateway framework in python
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nicoco 9144185884 telegram: move contact logic into Contact class 4 days ago
.builds CI: make python packages and docs downloadable artifacts 1 week ago
assets core: use PEP for avatars and nicknames 4 days ago
confs Add discord plugin 1 month ago
debian add debian packaging 2 weeks ago
docs discord: use discord IDs for puppets JIDs 6 days ago
slidge telegram: move contact logic into Contact class 4 days ago
tests core: use PEP for avatars and nicknames 4 days ago
.gitignore Add generic chat commands for the gateway component 2 months ago
.readthedocs.yaml (attempt to) fix "read the docs" 4 months ago
Dockerfile chores: dependency bump, formatting, fix steam dockerfile 1 month ago
LICENSE Move to sourcehut 3 months ago readme: update installation instructions 1 week ago
docker-compose.yml bump {aio,}signald version 4 days ago
poetry.lock bump {aio,}signald version 4 days ago
pyproject.toml bump {aio,}signald version 4 days ago

Slidge 🛷

Home | Source | Issues | Patches | Chat

Turn any XMPP client into that fancy multiprotocol chat app that every cool kid want.

Documentation status status Debian package pypi

Slidge is a general purpose XMPP (puppeteer) gateway framework in python. It's a work in progress, but it should make writing gateways to other chat networks (plugins) as frictionless as possible.

It comes with a few plugins included, implementing at least basic direct messaging and often more "advanced" instant messaging features:

Presences¹ Typing² Marks³ Upload Edit React Retract Reply
Signal N/A N/A
Discord N/A ~
Steam N/A N/A ~ N/A N/A
Mattermost ~ ~

This table may not be entirely accurate, but in theory, stuff marked works. N/A means that the legacy network does not have an equivalent of this XMPP feature (because XMPP is better, what did you think?).

WARNING: you may break the terms of use of a legacy network and end up getting your account locked by using slidge. Refer to the keeping a low profile documentation page for more info.


Slidge is beta-grade software. Right now, only direct messages are implemented, no group chat stuff at all. Direct messaging does (more or less) work though. Any contribution whatsoever (testing, patches, suggestions, beer, …) is more than welcome.

Try slidge and give us some feedback, through the MUC, the issue tracker or in the public inbox. Don't be shy!



Containers are available on docker hub.


Debian packages are built on each push to master as artifacts of this build job


Tagged releases are uploaded to pypi.

pip install slidge[signal]  # you can replace signal with any network listed in the table above
python -m slidge --legacy-module=slidge.plugins.signal

If you're looking for the bleeding edge, download an artifact here.

About privacy

Slidge (and most if not all XMPP gateway that I know of) will break end-to-end encryption, or more precisely one of the 'ends' become the gateway itself. If privacy is a major concern for you, my advice would be to:

  • use XMPP + OMEMO
  • self-host your gateways
  • have your gateways hosted by someone you know AFK and trust