A Matrix puppeting appservice bridge for Zulip
Join the Matrix room #MatrixZulipBridge:shema.lv if you have any questions or just want to chat.
- 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
- Python >=3.10
- Matrix homeserver with ability to add appservices
pip install matrixzulipbridge
docker run ghcr.io/gearkite/matrixzulipbridge:{tag} ...
See packages for possible tags
- 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
- 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: 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
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}
This bridge is heavily based on Heisenbridge. Thank you, Heisenbridge contributors!