matrix-nio
A Python Matrix client library, designed according to sans I/O principles.
Decision gist · record as of 2026-08-14
Yes. matrix-nio is actively maintained, has low install friction, no known vulnerabilities, and a permissive license. It is the standard choice for Python developers building Matrix clients or bots. Install without hesitation if you need Matrix protocol support; add the [e2e] extra only if you need end-to-end encryption and can install libolm on your system.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- For end-to-end encryption, libolm C library (version 3.x) must be installed system-wide before installing matrix-nio[e2e].
- Low friction install with a pure-Python wheel; active maintenance with a recent release 22 days ago.
License · maintenance · safety
(unclear) — Licensed under the Internet Systems Consortium license (ISC), a permissive open-source license similar to MIT. No notable restrictions for commercial or private use.
last release 2026-07-23 (22 days) · last repo commit 2026-08-08 · 705 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 943,808 downloads/mo, #4,671 on PyPI
Alternatives
Verify before relying
pip install matrix-nio
import asyncio
from nio import AsyncClient
async def main():
client = AsyncClient("https://matrix.org", "@user:matrix.org")
await client.login("password")
await client.sync()
await client.close()
asyncio.run(main())- Whether cross-signing and server-side key backup features are planned or deprioritized
- Performance characteristics under high message volume or large room counts
- Compatibility with non-standard or older Matrix homeserver implementations
What it is and what it does
matrix-nio is a multilayered Matrix protocol client library that separates the protocol logic (sans-IO base layer) from the network transport (asyncio/aiohttp layer). It handles the full lifecycle of Matrix client operations—authentication, room management, message synchronization, and user presence—with built-in support for end-to-end encryption when the optional libolm dependency is installed.
The library is designed for developers building bots, bridges, or interactive clients that need to connect to Matrix homeservers. It provides type hints throughout, supports custom authentication flows, and includes features like typing notifications, read receipts, message redaction, and emoji verification. File uploads and downloads are encrypted when E2EE is enabled. The package depends on aiohttp for HTTP, aiofiles for async file operations, h11 and h2 for HTTP protocol handling, jsonschema for validation, and pycryptodome for cryptographic operations.
Use it for
- Build a Matrix chat bot that listens to room messages and responds based on commands or triggers
- Create a bridge between Matrix and another chat platform by syncing messages bidirectionally
- Develop a custom Matrix client UI with end-to-end encryption support for secure messaging
- Monitor Matrix rooms programmatically and log or alert on specific message patterns
- Automate user registration and room management tasks on a Matrix homeserver
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
matrix-nio is actively maintained, has low install friction, no known vulnerabilities, and a permissive license. It is the standard choice for Python developers building Matrix clients or bots. Install without hesitation if you need Matrix protocol support; add the [e2e] extra only if you need end-to-end encryption and can install libolm on your system.
Install
matrix-nio on PyPI
Before you install
Low friction install with a pure-Python wheel; active maintenance with a recent release 22 days ago. Optional E2EE support requires the libolm C library (version 3.x) installed separately via system package manager.
Requires Python 3.10 or later. For end-to-end encryption, libolm C library (version 3.x) must be installed system-wide before installing matrix-nio[e2e].
License in practice
Licensed under the Internet Systems Consortium license (ISC), a permissive open-source license similar to MIT. No notable restrictions for commercial or private use.
Quickstart
pip install matrix-nio
import asyncio
from nio import AsyncClient
async def main():
client = AsyncClient("https://matrix.org", "@user:matrix.org")
await client.login("password")
await client.sync()
await client.close()
asyncio.run(main())
Verify before relying
- Whether cross-signing and server-side key backup features are planned or deprioritized
- Performance characteristics under high message volume or large room counts
- Compatibility with non-standard or older Matrix homeserver implementations
Package facts
| License | Not declared unclear |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 8 packagesaiohttpaiofilesh11h2jsonschemaunpaddedbase64pycryptodomeaiohttp-socks |
| Maintenance | Actively maintained 22 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 943,808 / month, #4,671 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14 |
Evidence: matrix_nio-0.26.0-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 › “matrix room management”
- matrix-niomatrix-nio is an asyncio-based Python client library for the Matrix…
- matrix-clientPython client library for connecting to and interacting with Matrix…
- mautrixAn asyncio Matrix framework for Python that provides HTTP client…
Give your agent the search over MCP, or paste the wish link into any chat.
More Internet packages
Botocore provides low-level, data-driven access to Amazon Web Services APIs, serving as the foundation for the AWS CLI and boto3 libraries.
Install it if you need programmatic access to AWS services.
Provides an async client for AWS services using botocore and aiohttp, allowing you to call AWS APIs asynchronously within asyncio-based applications.
Install it if you need to call AWS services from async Python code; it is the standard way to do so.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides a platform-independent file locking mechanism to coordinate access to files across processes and threads.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides common Protocol Buffer message definitions used across Google Cloud APIs, enabling Python clients to interact with Google services.
See also matrix-client · mautrix · vodozemac · matrix-synapse · aiohttp · aiorecollect · aioridwell · python-olm · aiosignal · sqlcipher3