mindroom-nio
July 23, 2026 · View on GitHub
This fork publishes the Matrix nio changes needed by MindRoom on a release schedule independent of upstream matrix-nio. It follows active upstream development closely and carries a focused set of additions, primarily bot-oriented E2EE behavior, reliability fixes, and Simplified Sliding Sync support that are not yet available in an upstream release. Generally useful changes are kept suitable for upstream contribution, while fork-specific packaging and policy remain clearly separated.
mindroom-nio is a fork of nio, a multilayered Matrix
client library. The distribution name is mindroom-nio; the Python import name
remains nio. The underlying base layer doesn't do any network IO on its own,
but on top of that is a full-fledged batteries-included asyncio layer using
aiohttp. File IO is only done if you
enable end-to-end encryption (E2EE).
Documentation
The full API documentation for nio can be found at https://matrix-nio.readthedocs.io
Features
nio has most of the features you'd expect in a Matrix library, but it's still a work in progress.
- ✅ transparent end-to-end encryption (EE2E)
- ✅ encrypted file uploads & downloads
- ✅ space parents/children
- ✅ manual and emoji verification
- ✅ custom authentication types
- ✅ threading support
- ✅ well-integrated type system
- ✅ knocking, kick, ban and unban
- ✅ typing notifications
- ✅ message redaction
- ✅ token based login
- ✅ user registration
- ✅ read receipts
- ✅ live syncing
- ✅
m.reactions - ✅
m.tags - 🟡 cross-signing support (fork addition; bot-scoped producer side — self-signs the account's own device so it stays usable under MSC4153. The verifier side, Secret Storage, and key backup are not implemented. See doc/cross-signing.md.)
- ❌ server-side key backups (room key backup, "Secure Backup")
- ❌ user deactivation (#112)
- ❌ in-room emoji verification
Installation
To install mindroom-nio, simply use pip:
$ pip install mindroom-nio
Note that this installs mindroom-nio without end-to-end encryption support. The e2ee enabled version can be installed using pip:
$ pip install "mindroom-nio[e2e]"
Additionally, a docker image with the e2ee enabled version of nio is provided in
the docker/ directory.
Examples
For examples of how to use nio, and how others are using it, read the docs