@technomancy I have tried ement, I couldn't get it working reliably enough. There's also a newer matrix-client.el by the same author, which seems promising, but is alpha.
There's no elisp implementation of the overly complicated encryption stuff, so neither support end-to-end encrypted messages, which I need. You can get around it by standing up Pantalaimon, which is a native proxy that deals with the crypto stuff and exposes it as unencrypted messages to the clients that connect to it. I have never gotten this setup working, it's all very finicky.