Skip to main content

MatrixZulipBridge

Tests PyPI version Python versions

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

  1. Clone or download this git repository
    git clone https://github.com/GearKite/MatrixZulipBridge.git
  2. Install Poetry
  3. Install dependencies
    poetry install
  4. Enter the virtual environment
    poetry shell

Running

Example

  1. Generate a registration file
    python3 -m matrixzulipbridge --config config.yaml --generate
  2. Install the appservice on your homeserver
  3. 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:

  1. addorganization {name}
  2. open {name}

In the organization room send:

  1. site example.com
  2. email my-bot@example.com
  3. apikey xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  4. connect
  5. subscribe {zulip stream name}

Credits

This bridge is heavily based on Heisenbridge. Thank you, Heisenbridge contributors!

Metadata

Release files for matrixzulipbridge 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for matrixzulipbridge 0.4.1
File Size Uploaded
matrixzulipbridge-0.4.1.tar.gz 56.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for matrixzulipbridge 0.4.1
File Interpreter ABI Platform
matrixzulipbridge-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 129.2 kB

Release files / matrixzulipbridge-0.4.1.tar.gz

Download URL matrixzulipbridge-0.4.1.tar.gz
Size 56.4 kB
Tags Source
SHA-256 checksum
How to use checksums
dff2af6b3a6a92f35d6edbd50561405629372fe3b8e1828e10c9d6cfe459b673
BLAKE2b-256 checksum
How to use checksums
6cd1d2a71b04c491950a0ea0caaaeaa2dba8370d1be9a418c8db9abddb7f22db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / matrixzulipbridge-0.4.1-py3-none-any.whl

Download URL matrixzulipbridge-0.4.1-py3-none-any.whl
Size 72.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
378d3c71639b5f6ba79bc5abe55bd15390ce5726a7007715c5a8a02c522008c0
BLAKE2b-256 checksum
How to use checksums
fd81098ea2519e2fe6a5bd4b48e65c0e1026435c1c4e65e83d0f9d4a0c583ea0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page