Matrix.el - Emacs-Lisp interface to the Matrix Distributed Chat

Table of Contents

1 Installation

matrix-client is installable via MELPA. Otherwise you can add this directory to your load-path and (require 'matrix-client).

2 Usage

There are two parts, a low-level API, and a terrible barely-alpha-quality client.

Either deploy your own homeserver or register account on the public homeserver . After you've done that, M-x matrix-client will set you up with buffers corresponding to your Matrix rooms. You can join new ones with /join, leave with /leave or /part, and hook in to the custom functions provided by matrix-client.

matrix-api is a low-level API right now; I'm planning to wrap it with high-level API that lets you easily per-room events, and that sort of thing, and eventually a full-fledged Matrix client. The API itself is pretty tightly based on the official Python API.

(let ((matrix-homeserver-base-url ""))
  (unless matrix-token
    (matrix-login-with-password "" "[REDACTED]"))
  (matrix-initial-sync 1)
  (matrix-send-message "!" "Test post please ignore"))

3 Contributing

To submit patches:

  • Clone the repo
  • Create a git branch, code in a branch.
  • When you're done, send me a git format-patch style patch
    • git format-patch --to master..HEAD > YOURBRANCHNAME.patch
    • Mail that patch to me at, and I will integrate it.
      • Or send it to me on Matrix, I'm

Project Discussion happens in

4 License

See LICENSE in the root of the repository for legal information.

Author: Ryan Rix

Created: 2015-12-01 Tue 20:54