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.

v0.1.1

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
Terminal
curl -X POST http://127.0.0.1:8080/message \
  -H 'X-API-Key: <your key>' \
  -d '{"channel": 1, "message": "**deploy** finished"}'
Docs →

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
Terminal
printf '%s\n' 'join Lobby' 'say "<b>hello</b>"' \
  'expect message --from Alice --contains hi' \
  | mumbot --port 44738 --name Bob script
Docs →

Download

The archive holds the mumbot program, the README and an example config, bot.example.toml.

Or as a Docker image for amd64 and arm64:

Docker
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

Ready-made Docker Compose examples: webhook bot, webhook bot with its own Mumble server to try it out, and test bot in CI →

Checksums (SHA256SUMS) →

Roadmap

Like Mumcord, Mumbot is built in epics. Epic 2 is a proposal from the open issues and still gets planned in detail.

  1. 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
  2. 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
  3. 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
  4. 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.

Suggest an idea Source on GitHub →