mautrix
A Python 3 asyncio Matrix framework.
Decision gist · record as of 2026-08-14
Yes, if you are building a Matrix application or bridge. The framework is actively maintained, has low install friction, and provides well-structured abstractions for the full Matrix protocol stack. The copyleft license (MPL 2.0) requires source disclosure if you modify and redistribute, so review your licensing constraints. No known security vulnerabilities as of the fact sheet date.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- End-to-end encryption support requires libolm system library (installed via python-olm dependency).
- Low install friction with a pure-Python wheel distribution.
License · maintenance · safety
copyleft license (copyleft) — Licensed under Mozilla Public License 2.0 (MPL 2.0), a copyleft license. You must disclose source code modifications and distribute under the same license if you modify and redistribute the package.
last release 2026-07-05 (40 days) · last repo commit 2026-07-05 · 251 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 973,500 downloads/mo, #4,603 on PyPI
Alternatives
Verify before relying
pip install mautrix
import asyncio
from mautrix.client import Client
async def main():
client = Client(homeserver="https://matrix.example.com", user_id="@user:example.com")
# Use client for Matrix operations
asyncio.run(main())- Whether libolm system library is required for end-to-end encryption support or if python-olm handles installation
- Specific asyncpg or SQLAlchemy version requirements for database helpers
- Whether all advertised components (bridge, crypto, appservice) are production-ready or still experimental
What it is and what it does
Mautrix is an asyncio-based Python framework for building applications that interact with the Matrix protocol. It sits between raw HTTP and high-level application logic, offering layered abstractions: a basic HTTP client, Matrix Client API endpoints, application service transaction handling, end-to-end encryption support via libolm, and specialized bridging utilities. The framework targets developers building Matrix bots, bridges to other chat systems, or custom Matrix clients.
The package provides utilities for common tasks like HTML parsing, configuration management, database access (via asyncpg or SQLAlchemy), and token signing. It requires Python 3.10+ and depends on aiohttp, attrs, and yarl for async HTTP operations. The codebase is actively maintained and classified as Beta, indicating core functionality is stable but the API may evolve.
Use it for
- Build a Matrix appservice that bridges messages between Matrix and another chat platform
- Create a Matrix bot that syncs room state and handles encrypted messages
- Implement end-to-end encryption in a custom Matrix client using the crypto framework
- Develop a Matrix application service with transaction support and user/alias query handling
- Build double-puppeting integrations where a bridge controls user accounts on both sides
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you are building a Matrix application or bridge.
The framework is actively maintained, has low install friction, and provides well-structured abstractions for the full Matrix protocol stack. The copyleft license (MPL 2.0) requires source disclosure if you modify and redistribute, so review your licensing constraints. No known security vulnerabilities as of the fact sheet date.
Install
mautrix on PyPI
Before you install
Low install friction with a pure-Python wheel distribution. Actively maintained with a recent release (40 days old) and ongoing repository activity. Requires Python 3.10 or later.
Requires Python 3.10 or later. End-to-end encryption support requires libolm system library (installed via python-olm dependency).
License in practice
Licensed under Mozilla Public License 2.0 (MPL 2.0), a copyleft license. You must disclose source code modifications and distribute under the same license if you modify and redistribute the package.
Quickstart
pip install mautrix
import asyncio
from mautrix.client import Client
async def main():
client = Client(homeserver="https://matrix.example.com", user_id="@user:example.com")
# Use client for Matrix operations
asyncio.run(main())
Verify before relying
- Whether libolm system library is required for end-to-end encryption support or if python-olm handles installation
- Specific asyncpg or SQLAlchemy version requirements for database helpers
- Whether all advertised components (bridge, crypto, appservice) are production-ready or still experimental
Package facts
| License | copyleft license copyleft |
| Python support | Supports the current Python release ~=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagesaiohttpattrsyarl |
| Maintenance | Actively maintained 40 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 973,500 / month, #4,603 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaFramework :: AsyncIOLicense :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)Programming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Communications :: Chat |
Evidence: mautrix-0.21.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “asyncio matrix framework”
- mautrixAn asyncio Matrix framework for Python that provides HTTP client…
- matrix-niomatrix-nio is an asyncio-based Python client library for the Matrix…
- sgl-deep-gemmsgl-deep-gemm provides optimized GEMM (matrix multiplication) kernels…
Give your agent the search over MCP, or paste the wish link into any chat.
More Chat packages
Provides Python bindings for Slack's Web API, webhooks, Socket Mode, OAuth, and other platform APIs, enabling apps to send messages, manage files, verify requests, and interact with Slack workspaces.
Install it if you need to integrate Python applications with Slack—whether for bots, notifications, or custom workflows.
Provides a pure Python asynchronous interface to the Telegram Bot API, with convenience methods and high-level classes for building chatbots.
Install it if you need to build or integrate with Telegram bots in Python.
Provides Python interfaces to Slack's Web API and Real Time Messaging (RTM) API for building Slack applications and bots.
Install only if you are maintaining legacy code or have a specific reason not to migrate.
aiogram is an asynchronous Python framework for building Telegram bots using asyncio and aiohttp, with type hints, routing, state machines, and middleware support.
Telethon is an asyncio-based Python library that implements the MTProto protocol to interact with Telegram's API as a user account or bot, providing an alternative to Telegram's official bot API.
Serializes and deserializes machine learning pipelines to a portable Bundle.ML format for cross-platform deployment and execution.
See also matrix-nio · vodozemac · matrix-client · matrix-synapse · httpx-aiohttp · aionotion · aiohue · dj-rest-auth · unicrypto · aioesphomeapi