Hi all! I’m doing the Matrix work for the Ansible community, and following a quick chat with @mattdm, it was suggested I put some of my thoughts on bots here for your consumption
meetbot - I have yet to find something that does meetings as well as zodbot on the Matrix side, so we’re still using that. However, Matrix has the bonus of always having history, so I think the key part here is the commands like #info, #action, and so forth. Having a bot that could gather those would be the minimum-viable thing here, I think. Reactions could be very useful, but obviously would be Matrix-only (think: an emoji for #info, etc, and the bot collates comments marked as such)
schedulebot - we’re using https://github.com/anoadragon453/matrix-reminder-bot which allows us to set reminders in the channel. it’s all “!command” driven so works for IRC too. Not exactly the same, but perhaps handy?
- There’s also https://github.com/maubot/reminder which is another take using reactions to subscribe to other people’s reminders. A cool idea but reactions don’t work in IRC, so I didn’t go for it.
- That second option is a
maubot plugin. Maubot is an excellent bot framework with many plugins, so worth a look for other needs (https://github.com/maubot/maubot#official-plugins) and a good potential starting point for writing new Matrix bot plugins. (c.f @bcotton’s point about monoliths, maubot gives you a single place to manage all the bots, and assign which bots have which plugins enabled)
- for interactions with other platforms, there are numerous github bots already, work a look
News is a bigger topic, because that has several strands. There’s a few things you could think about:
- Discourse / mailing lists can generate RSS. I know GNOME have a Matrix room that only the RSS bot can post in (but anyone can join), so that announcements elsewhere can come through to the Matrix users
- RSS bots can obviously be added elsewhere, there is a Maubot plugin for it.
- For a different take on more interactive news, take a look at This Week In Matrix. There, the community posts it’s own news updates (in markdown format) and the TWIM bot collates them for the editor to tidy up on a Friday. This has some interesting features:
In general, I love the idea of bots using reactions, but until IRC is a down to a small fragment of the community, it’s too exclusionary (since reactions do not appear in IRC at all, and there is no way to send them). Best case, of course, would be reactions with a subcommand fallback.
For admin work, we’re running a self-hosted instance of Mjolnir - the bot needs access to Synapse for certain things, but most of its work does not, so we can self-host while we evaluate it. I really like Mjolnir, but that’s probably a post on it’s own - at the very least, it’s use of reactions to acknowledge commands is
In terms of writing bots, I have a few ideas of my own. I know polls are on Element’s roadmap, but for now I’d love to replace my IRC pollbot, because constructing the polls is tedious. Also a channel-map bot would be cool (so someone says you should join #users:ansible.im" and the bot says “that’s #ansible-users if you’re on IRC btw”). The Matrix Client API is a REST API, and there are numerous bot frameworks already, so it shouldn’t be any harder than writing an IRC bot. I’m definitely interested in writing some bots myself, so if others are going to be working on that, I’d love to collaborate.
I’m sure I have more thoughts in my brain somewhere, but that’s what I’ve got for now. Very happy to eloborate / discuss things more, it’s a rich topic!