Bots for Mumble
Mumbot
Mumbot logs in like a person, with its own certificate. That's why it runs on any standard Mumble server, with no plugin and no change to the server config. From the Mumcord family, open source under AGPL-3.0.
Two bots, one program
Both live in the same program, mumbot, for Linux, Windows, macOS and as a Docker image.
Webhook bot
Monitoring, CI or your own script sends one HTTP request with an API key, and the bot posts the text into a Mumble channel.
- Set per key which channels it may write to
- Bold, italic, code, lists and links in Markdown
- Channel passwords, reconnects after drops and a fixed identity through its certificate
- Rate limit and a clear answer whether the message arrived
curl -X POST http://127.0.0.1:8080/message \
-H 'X-API-Key: <your key>' \
-d '{"channel": 1, "message": "**deploy** finished"}' Test bot
A scripted second participant for automated tests of Mumble clients. Mumcord's own tests run on it.
- Drive chat, state, permissions and moderation, and wait for conditions
- Play, record and check the level of voice, with real Opus
- A load test fills a local server with up to 1000 users
- Exit code 0 means passed: fits into any CI
printf '%s\n' 'join Lobby' 'say "<b>hello</b>"' \
'expect message --from Alice --contains hi' \
| mumbot --port 44738 --name Bob script Download
The archive holds the mumbot program, the README and an example config, bot.example.toml.
- Linux x86_64 mumbot-0.1.1-linux-x86_64.tar.gz · 2 MB
- Linux ARM64 mumbot-0.1.1-linux-aarch64.tar.gz · 2 MB
- Windows mumbot-0.1.1-windows-x86_64.zip · 2 MB
- macOS mumbot-0.1.1-macos-universal.tar.gz · 4 MB
Or as a Docker image for amd64 and arm64:
docker run -d --name mumbot \
-v "$PWD/bot.toml:/config/bot.toml:ro" \
-v mumbot-data:/data -p 127.0.0.1:8080:8080 \
ghcr.io/mumcord/mumbot:0.1.1 Roadmap
Like Mumcord, Mumbot is built in epics. Epic 2 is a proposal from the open issues and still gets planned in detail.
-
Epic 0
done v0.1.0
Test bot
The scripted bot from Mumcord's tests, now a program of its own.
- Chat, state, permissions and moderation, waiting for conditions and a script mode
- Play, record and check the level of voice, with Opus as in Mumcord
- Load test with up to 1000 users on a local test server
-
Epic 1
done v0.1.0
Webhook bot
Messages from outside into a Mumble channel.
- HTTP API with API keys and allowed channels per key
- Markdown, channel passwords, reconnects and a rate limit
- Programs for Linux, Windows and macOS and a Docker image
- Since 0.1.1: Docker Compose examples and docs for the config, command line, HTTP API and security
-
Epic 2
up next
Modules, music and history
One bot becomes a toolkit.
- Modules: pick which bots run in the config or on the command line, in one program and one image
- Music bot: send MP3s or links over HTTP, and the bot plays them in the voice channel with a queue
- History bot: keeps the chat of the channels it may see and hands it to Mumcord users who were offline. Never private messages
- Message cards: the webhook sends alerts with a title, status colour, graph and link that Mumcord shows as a card
- Adjustable bitrate for speech and music, never above the server's limit
- Peer module: registers the server's users with a mumpeer relay and tells Mumcord the relay exists
-
Beyond
later
Ideas
Not planned yet, but noted.
- A bot that reads chat and answers commands
- Text-to-speech or alert sounds in a channel
- One bot for several servers or with several identities
- Whispers and private messages, swapping keys without a restart, built-in TLS
- Remember the server's certificate on first contact and refuse a changed one
An idea for a bot?
Wishes go into Mumbot's issues on GitHub.