A Matrix puppeting bridge for Zulip
Project description
MatrixZulipBridge
A Matrix puppeting appservice bridge for Zulip
Join the Matrix room #MatrixZulipBridge:shema.lv if you have any questions or just want to chat.
Features
- Streams
- Zulip topics - Matrix threads
- Direct messages
- Formatted text* (not all of Zulip's formatting)
- Matrix puppets
- Zulip puppets
- Message Media* (only translating URIs)
- Presence
- Reactions
- Redactions* (only from Matrix in DMs)
- Replies
- Typing indicators
Installation
Prerequisites
- Python >=3.10
- Matrix homeserver with ability to add appservices
PyPI
pip install matrixzulipbridge
Docker
docker run ghcr.io/gearkite/matrixzulipbridge:{tag} ...
See packages for possible tags
From source
- Clone or download this git repository
git clone https://github.com/GearKite/MatrixZulipBridge.git
- Install Poetry
- Install dependencies
poetry install
- Enter the virtual environment
poetry shell
Running
Example
- Generate a registration file
python3 -m matrixzulipbridge --config config.yaml --generate
- Install the appservice on your homeserver
- Run the bridge
python3 -m matrixzulipbridge --config config.yaml https://homeserver.example.com
Usage
usage: python3 -m matrixzulipbridge [-h] [-v] (-c CONFIG | --version) [-l LISTEN_ADDRESS] [-p LISTEN_PORT] [-u UID] [-g GID] [--generate] [--generate-compat] [--reset] [--unsafe-mode] [-o OWNER] [homeserver]
A puppeting Matrix - Zulip appservice bridge (v0.1.1.dev2+g3ed8ed7)
positional arguments:
homeserver URL of Matrix homeserver (default: http://localhost:8008)
options:
-h, --help show this help message and exit
-v, --verbose log debug messages
-c CONFIG, --config CONFIG
registration YAML file path, must be writable if generating (default: None)
--version show bridge version
-l LISTEN_ADDRESS, --listen-address LISTEN_ADDRESS
bridge listen address (default: as specified in url in config, 127.0.0.1 otherwise) (default: None)
-p LISTEN_PORT, --listen-port LISTEN_PORT
bridge listen port (default: as specified in url in config, 28464 otherwise) (default: None)
-u UID, --uid UID user id to run as (default: None)
-g GID, --gid GID group id to run as (default: None)
--generate generate registration YAML for Matrix homeserver (Synapse)
--generate-compat generate registration YAML for Matrix homeserver (Dendrite and Conduit)
--reset reset ALL bridge configuration from homeserver and exit
--unsafe-mode allow appservice to leave rooms on error (default: False)
-o OWNER, --owner OWNER
set owner MXID (eg: @user:homeserver) or first talking local user will claim the bridge (default: None)
After registering and launching the bridge, start a chat. You can find the localpart in your registration.yaml
This bridge is mainly configurable through Matrix, send help
to get a list of commands
Bridging a stream
In your control room chat with the bridge send:
addorganization {name}
open {name}
In the organization room send:
site example.com
email my-bot@example.com
apikey xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
connect
subscribe {zulip stream name}
Credits
This bridge is heavily based on Heisenbridge. Thank you, Heisenbridge contributors!
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
Built Distribution
File details
Details for the file matrixzulipbridge-0.4.1.tar.gz
.
File metadata
- Download URL: matrixzulipbridge-0.4.1.tar.gz
- Upload date:
- Size: 56.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dff2af6b3a6a92f35d6edbd50561405629372fe3b8e1828e10c9d6cfe459b673 |
|
MD5 | 82a1d31a7bfcf20d9ed42344b966dd1a |
|
BLAKE2b-256 | 6cd1d2a71b04c491950a0ea0caaaeaa2dba8370d1be9a418c8db9abddb7f22db |
File details
Details for the file matrixzulipbridge-0.4.1-py3-none-any.whl
.
File metadata
- Download URL: matrixzulipbridge-0.4.1-py3-none-any.whl
- Upload date:
- Size: 72.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 378d3c71639b5f6ba79bc5abe55bd15390ce5726a7007715c5a8a02c522008c0 |
|
MD5 | 7785004207fd38cf53160df22fafe2df |
|
BLAKE2b-256 | fd81098ea2519e2fe6a5bd4b48e65c0e1026435c1c4e65e83d0f9d4a0c583ea0 |