Skip to content

AI Assistant

This content is for v1.0.0. Switch to the latest version for up-to-date documentation.

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.

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.

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.
  • Synthesizer: OpenRouterSynthesizer using 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: !chatvoice enables or disables voice output.
  • Transcriber: OpenRouterTranscriber using openai/whisper-1.
  • VoiceListener captures PCM audio from Mumble, detects silence boundaries, and sends segments for transcription.
Command Description
!speak Start listening.
!speakcancel Cancel listening.

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.

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.

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 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.