AI Assistant
The AI assistant plugin provides a full conversational AI experience in Mumble. It supports text chat, voice input and output, emotion tracking, karma feedback, and persistent memory — all powered by OpenRouter.
OpenRouter Integration
Section titled “OpenRouter Integration”| Feature | Details |
|---|---|
| Provider | OpenRouter (openrouter.ai/api/v1) |
| API key | Set via api_key config or api_key_env_var env var. |
| Chat model | Configurable (default: openai/gpt-4o-mini), switchable at runtime with !chatmodel. |
| Server-side tools | web_search, datetime_tool, web_fetch_tool — processed by OpenRouter. |
| Reasoning | Configurable effort (low/medium/high), thinking block stripping. |
| Context compression | OpenRouter can trim older messages to stay within context. |
Client-Side Tools
Section titled “Client-Side Tools”The bot executes these 15 tools locally when the AI requests them:
| Tool | Description |
|---|---|
get_server_state |
Connected users, channels, bot state. |
get_now_playing |
Current track info. |
get_channel_messages |
Recent channel chat. |
get_user_notes |
Memory notes for a user. |
get_conversation_history |
Chat history. |
save_memory |
Save a note. |
delete_memory |
Delete a note. |
get_bot_logs |
Read runtime logs. |
get_bot_source |
Read bot source (if self_inspect=true). |
get_sfx_clips |
List soundboard clips (if soundboard_tools=true). |
play_sfx |
Play a soundboard clip. |
play_media |
Queue YouTube/SoundCloud. |
play_radio |
Play a radio stream. |
control_playback |
Stop/skip/pause/resume. |
get_karma_feedback |
Read karma feedback. |
Text-to-Speech (TTS)
Section titled “Text-to-Speech (TTS)”- Synthesizer:
OpenRouterSynthesizerusing OpenRouter’s TTS endpoint. - Voice model:
google/gemini-3.1-flash-tts-preview(default). - Voices: 30 Gemini voices available (default:
Kore). - Inline SFX: The AI can embed
[[sfx: clip_name]]tags in responses. The TTS pipeline pauses, plays the clip, and continues. - Toggle:
!chatvoiceenables or disables voice output.
Voice Input (STT)
Section titled “Voice Input (STT)”- Transcriber:
OpenRouterTranscriberusingopenai/whisper-1. - VoiceListener captures PCM audio from Mumble, detects silence boundaries, and sends segments for transcription.
| Command | Description |
|---|---|
!speak |
Start listening. |
!speakcancel |
Cancel listening. |
Emotion System
Section titled “Emotion System”The AI tracks emotional state across 10 states:
neutral, happy, excited, amused, touched, annoyed, salty, bored,
frustrated, defensive
The AI emits [[mood: state]] and [[user_sentiment: ...]] tags (stripped
before display). Mood follows a valence/arousal model with decay toward
neutral over time.
Abuse detection: Rapid command spam triggers a penalty that pushes the mood toward negative states.
!feed <item> — The AI judges an item on a -10 to +10 scale and adjusts its
mood accordingly.
Karma System
Section titled “Karma System”| Command | Description |
|---|---|
!chatkarma +1/-1 [note] |
Rate the last AI response. |
!chatkarma 0 |
Undo a rating. |
!chatkarmastats |
View karma statistics. |
Karma feedback influences the emotion system.
Memory
Section titled “Memory”The AI maintains persistent per-user and global notes (stored as JSON). It can save and delete notes via its tools.
| Command | Description |
|---|---|
!chatnotes |
View your saved notes. |
!chatforget |
Delete all your notes. |
Personas and Voice Profiles
Section titled “Personas and Voice Profiles”- Personas are system prompt files that shape the AI’s personality. Switch
at runtime with
!chatpersona. - Voice profiles are speech prompt files that adjust tone and style. Switch
with
!chatvoiceprofile.