At Akademy in Milan – I’m pretty sure it was then – I gave a talk about “Managing meeting in Matrix”. The Blue Systems crew has a kind of weekly stand-up over text chat to coordinate things and to keep everyone in the loop. That meeting is managed by a Bot, which I call QuatBot. Only two years after my talk about it, I’ve gotten around to doing an actual release.

No Screenshots

QuatBot is a Bot for use in text-chat. So there are no pretty screenshots of it in action, or what the UI looks like: pick your favorite Matrix client (I switch between nheko and neochat depending on which has a more recent release fixing bugs that annoy me).

Getting the Source

QuatBot isn’t a KDE project, so it lives over on GitHub.

Now that I write it like that, I’m starting to wonder why it is not-a-KDE-project. It could easily live in KDE’s Invent, gaining the ability to be translated and possibly attracting a few more users.

Building QuatBot takes a since-2019-era collection of dependencies. Nothing bleeding edge. If you can build some KDE applications, you can build QuatBot. The more detailed requirements are in the README and the CMake output.

Using QuatBot

The heart of the application is the meeting module (but there are other modules, which we’ll get to). Running a meeting means someone is the chair, and they shout ~rollcall in the channel to get things started. That does a roll call of everyone in the channel, and people who shout (respond at all) are added to the agenda. After that it’s a matter of discussing and the chair saying ~next to move on to the next person, until everyone’s had their say.

There is support for breakouts, and re-ordering people, and some basic meeting maintainence. It does the job for the weekly status chat quite well.

The fun bits of the application live in other modules. One is the coffee module, inspired by the KoffiePot bot on IRC (which was around 1996, I guess). QuatBot can keep track of cups of coffee consumed and maintains a cookie jar, which magically regenerates cookies every hour.

In this initial release, I finally added a ~tea command because not everyone likes coffee. It does roughly the same as ~coffee. Because QuatBot keeps track of how many beverages are consumed, this required an upgrade to track tea and coffee separately, and a database schema update, and .. well, over-engineering FTW.

The Future

The bot does the things I need it for. It massages our meetings and helps run them smoothly and quickly. Looking at the code makes me think it could use a going-over with a little more C++17, and there’s a missing CONTRIBUTING.md and .. well, if I wanted to put a lot more time into building meeting-management bots for Matrix, I could. I don’t, particularly, so it’s just going to sit there unless people show up with pull requests or specific issues (either would be great, since then there would be a user besides myself).