Tulir Asokan / Blog

June 2026 releases // Full-text search in gomuks

Posted on • 453 words

This month's development was focused on gomuks, with new features like full-text search including encrypted rooms, a proper desktop wrapper and more.

Software Version
mautrix-whatsapp v26.06
mautrix-telegram v26.06
mautrix-twitter v26.06
mautrix-signal v26.06
mautrix-slack v26.06
mautrix-meta v26.06
meowlnir v26.06
gomuks v26.06
mautrix-go v0.28.1
go-util v0.9.10

gomuks

Electron wrapper

Previously, gomuks had a desktop wrapper written with Wails. The primary issue was that Wails uses WebKitGTK on Linux, which is too buggy to use in practice. Since there's no way to use Firefox/Gecko in a standalone desktop app the way GeckoView allows making Android apps, the only solution was to switch to Electron.

In addition to having a browser engine that actually works, the new Electron wrapper brings multiple improvements:

The backend now has full-text search powered by SQLite's FTS5 extension. It covers all events that the backend has encountered, so if you run the backend 24/7, it'll have all new messages. Fetching old messages is not yet automated, but you can use the archivemuks script to do it in individual rooms.

The search UI in the web frontend supports both local backend search and the standard search API that calls the homeserver. By default, it uses the homeserver for searching in unencrypted rooms and backend in encrypted rooms, but you can of course choose which to use.

Other changes

The devtools in the web interface now include a fully featured push rule editor, which allows you to inspect and modify push rules however you like.

For people who want to make their own gomuks frontends, there's now slightly better documentation for the RPC and HTTP APIs.

Bridges

Bridges didn't have many changes this month, though the upcoming months might bring bigger changes in Metaland. It appears that in addition to abandoning encrypted chats on Instagram, they've ditched the entire shared API. The current version of Instagram's web client no longer uses the same lightspeed API as Facebook Messenger, which could mean that the bridges have to be split up into mautrix-facebook and mautrix-instagram again.

Telegram added a new rich text message format, which the bridge now mostly supports.