Skip to main content

PyPI PyPI - Python Version

poezio-omemo - OMEMO plugin for Poezio

This is a Poezio plugin providing OMEMO support. It's distributed separately for licensing reasons.

This plugin is very much alpha. It handles encryption and decryption of OMEMO messages, but doesn't display the encryption state of messages, and neither does it have a way to do manual trust management.

OMEMO Protocol Version Support

Currently supports OMEMO in the eu.siacs.conversations.axolotl namespace. Support for OMEMO in the omemo:2 namespace will be added as soon as Slixmpp gains support for XEP-0420: Stanza Content Encryption.

Trust

Internally supports both Blind Trust Before Verification and manual trust management, however the UI does not currently offer a way to manage trust manually. This means that for now, all devices are always trusted blindly.

Installation

Arch Linux (AUR)

Packages for Arch Linux are available on AUR:

Debian

A Request for packaging has been posted, but so far, Debian has not packaged poezio-omemo yet..

Everything else (pip/uv)

For all other cases, the plugin can be installed and made available to Poezio by adding one of the following at the end of Poezio's update.sh script:

For the latest release:
uv pip install poezio-omemo
For the latest commit on the main branch:
uv pip install git+https://codeberg.org/poezio/poezio-omemo
For your local clone of this repository:
uv pip install /path/to/your/clone

After adding that line, you might have to create a local commit in your clone of Poezio using:

git add update.sh && git commit -m "Install poezio-omemo in update.sh"

You should now be able to use ./update.sh and ./launch.sh as usual.

Common Issues

This plugin is NOT to be placed in the Poezio plugin folder, doing so may shadow the OMEMO library and render it inaccessible from Poezio. This module declares itself via pkg_resources under the poezio_plugins group.

Other possible issues when loading the plugin may be that the OMEMO library is incorrectly setup.

In a Python interpreter:

>>> # Is the backend OMEMO library is reachable? (success: no error, no output)
>>> import omemo
>>> # Is poezio-omemo reachable? (success: no error, no output)
>>> import poezio_omemo
>>> # Is the module probably declared in plugin entries? (success: true)
>>> import pkg_resources
>>> "omemo" in map(lambda e: e.name, pkg_resources.iter_entry_points("poezio_plugins"))

If this doesn't yield any error and Poezio still can't load the plugin, try starting it with a debug file (-d poezio.log) and join our channel.

Use in Poezio

Once installed (see the Installation section), you can add omemo in the plugin_autoload configuration. See the Poezio documentation for more information about autoloading plugins. To load it manually in Poezio, type /load omemo.

Type Checks and Linting

poezio-omemo uses mypy for static type checks and both pylint and Flake8 for linting. All checks can be run locally with the following commands:

$ pip install --upgrade .[lint]
$ mypy poezio_omemo/
$ pylint poezio_omemo/
$ flake8 poezio_omemo/

Note on the Underlying OMEMO Library

The underlying library python-omemo has not undergone any security audits. If you have the knowledge, any help is welcome.

Please take this into consideration when using this library.

Release files for poezio-omemo 0.9.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 poezio-omemo 0.9.1
File Size Uploaded
poezio_omemo-0.9.1.tar.gz 20.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for poezio-omemo 0.9.1
File Interpreter ABI Platform
poezio_omemo-0.9.1-py3-none-any.whl Python 3 none any Details

Total release size: 42.0 kB

Release files / poezio_omemo-0.9.1.tar.gz

Download URL poezio_omemo-0.9.1.tar.gz
Size 20.6 kB
Tags Source
SHA-256 checksum
How to use checksums
7c5183410f99decf3b26482d177cc9ba89c1b129454145f0e05cb486787942b5
BLAKE2b-256 checksum
How to use checksums
d788c7b0d97dce31b282bea3dbb83e09d96cff9b55d24878df3ad0801a3e2701
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Release files / poezio_omemo-0.9.1-py3-none-any.whl

Download URL poezio_omemo-0.9.1-py3-none-any.whl
Size 21.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
516a1cb6031d296816683de74df235e52e3e8b13b1141933c0a80cdd9a7d9267
BLAKE2b-256 checksum
How to use checksums
977757fdeea889f3488c3c7b7048a60dd41a8ae482bde8760f3299191a3d819d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Release history Release notifications | RSS feed

This release

0.9.1 This release

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

1 release file

0.6.0

1 release file

0.5.1

1 release file

0.5.0

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.3.0

1 release file

0.2.0

1 release file

0.1.0

1 release file

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