Skip to main content

Matrix backend plugin for Errbot

Project description

Errbot Matrix Backend

A fully functional, modern Matrix backend for Errbot built using matrix-nio.

Features

  • Connection to any Matrix homeserver via username/password or access token.
  • Automatic acceptance of room invitations.
  • Formatted messages (HTML/xhtml and markdown) sent and received natively.
  • Full support for threaded replies using standard Matrix relations.
  • Support for End-to-End Encryption (E2EE) using matrix-nio's database storage.

Requirements

  • Python 3.11 - 3.14
  • errbot >= 6.2.0
  • matrix-nio >= 0.24.0

Installation

Local Installation for Development

You can install the backend locally inside your Errbot virtual environment:

pip install -e .

Creating a Bot Account on Matrix

Errbot connects to the Matrix network using a standard Matrix user account. To set up an account for your bot:

  1. Register the User Account:

    • Open a Matrix client such as Element.
    • Register a new account on your desired homeserver (e.g., matrix.org or a self-hosted instance).
    • Save the bot's full User ID (MXID, e.g., @my_errbot:matrix.org) and password.
  2. (Optional) Obtain an Access Token:

    • If you prefer to authenticate using a login token rather than storing a plaintext password in config.py:
      • Log in to Element using the bot account.
      • Open Settings -> Help & About -> scroll down to the Advanced section and copy the Access Token.
      • Paste this token into the BOT_IDENTITY dictionary under the token key.
  3. Invite the Bot:

    • Start a chat with the bot's MXID or invite the bot to a room. The backend is configured to automatically accept invites by default.

Configuration

To use the Matrix backend, update your Errbot config.py file with the following settings:

# Set the backend to 'Matrix'
BACKEND = 'Matrix'

# Provide connection credentials and settings
BOT_IDENTITY = {
    # The Matrix homeserver URL
    'homeserver': 'https://matrix.org',
    
    # The full Matrix user ID (MXID) of the bot
    'username': '@my_errbot:matrix.org',
    
    # Authentication (use either password OR token)
    'password': 'my-secure-password',
    # 'token': 'syt_your_access_token_here...',
    
    # Optional settings:
    # 'device_id': 'ERRBOT_DEVICE',
    # 'ssl': True,
    # 'proxy': 'http://proxy.example.com:8080',
    # 'auto_join_on_invite': True,
    
    # To enable End-to-End Encryption (E2EE), provide a path for the database store:
    # 'store_path': '/path/to/errbot/matrix_store'
}

End-to-End Encryption (E2EE) Support

To use End-to-End Encryption in rooms, you must:

  1. Ensure the libolm system library is installed (on macOS, brew install libolm; on Debian/Ubuntu, apt-get install libolm-dev).
  2. Specify a 'store_path' inside BOT_IDENTITY in config.py where matrix-nio can store its encryption keys.

Running the Bot

Start Errbot normally:

errbot

Publishing to PyPI

This project uses modern PEP 517/518 build standards. To publish the package to PyPI:

  1. Install build and upload tools:

    pip install build twine
    
  2. Build the package distribution files:

    python -m build
    

    This will generate a .tar.gz source archive and a .whl wheel file inside the dist/ directory.

  3. Verify the built packages:

    twine check dist/*
    
  4. Upload to PyPI:

    twine upload dist/*
    

    (Note: You will be prompted to enter your PyPI API token. Use __token__ as the username and your token string starting with pypi- as the password).

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

errbot_backend_matrix-0.0.1.tar.gz (24.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

errbot_backend_matrix-0.0.1-py3-none-any.whl (21.8 kB view details)

Uploaded Python 3

File details

Details for the file errbot_backend_matrix-0.0.1.tar.gz.

File metadata

  • Download URL: errbot_backend_matrix-0.0.1.tar.gz
  • Upload date:
  • Size: 24.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for errbot_backend_matrix-0.0.1.tar.gz
Algorithm Hash digest
SHA256 14b5c807194ad41dc26c60130cdb124ffe6f0b9fcf73770d6e8527cac870ebdb
MD5 655bac62c1e4a3b5c0c204b7d3cd27e5
BLAKE2b-256 59191920f83524afa7e2543c81f04ffb4ffda311aae621595684e866bca9ed05

See more details on using hashes here.

File details

Details for the file errbot_backend_matrix-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for errbot_backend_matrix-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a0fe0371e7a0ab4c15c18c213c5f15e87194f16a276ce5194338243ea852f1d9
MD5 163fbcad16d437d86ae1776aa41a6981
BLAKE2b-256 d7a3cc7f4fe075dbf24a10bd676028cda6779458174433abb41e2649d1c5770a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page