---
title: "mxadm: a small CLI Matrix room admin tool"
slug: introducing-mxadm
date: 2021-08-04T17:11:49+01:00
type: post
tags:
- Rust
- Matrix
- Open source
- Communication
---

I've enjoyed learning [Rust](https://www.rust-lang.org/) (the programming language) recently, but having only really used it for [solving programming puzzles](/blog/day-15) I've been looking for an excuse to use it for something more practical.

At the same time, I've been using and learning about [Matrix](https://matrix.org) (the chat/messaging platform), and running some small rooms there I've been a bit frustrated that some pretty common admin things don't have a good user interface in any of the available clients.

So…

I decided to write a little command-line tool to do a few simple tasks, and it's now released as `mxadm`! It's on [crates.io](https://crates.io), so if you have Rust and [cargo](https://doc.rust-lang.org/cargo/) available, installing it is as simple as running `cargo install mxadm`.

I've only taught it to do a few things so far:

-   List your joined rooms
-   Add/delete a room alias
-   Tombstone a room (i.e. redirect it to a new room)

I'll add more as I need them, and I'm open to suggestions too.

It uses [matrix-rust-sdk, the Matrix Client-Server SDK for Rust](https://github.com/matrix-org/matrix-rust-sdk), which is built on the lower-level [Ruma](https://www.ruma.io/) library, along with [anyhow](https://github.com/dtolnay/anyhow) for error handling. The kind folks in the [#matrix-rust-sdk:matrix.org](https://matrix.to/#/#matrix-rust-sdk:matrix.org) have been particularly kind in helping me get started using it.

More details from:

-   [Source code on tildegit](https://tildegit.org/petrichor/mxadm)
-   [mxadm on crates.io](https://crates.io/crates/mxadm/)
-   [mxadm on lib.rs](https://lib.rs/crates/mxadm)

Suggestions, code reviews, pull requests all welcome, though it will probably take me a while to act on them. Enjoy!
