Adapter and service sections
| Section | What it configures |
|---|---|
twitch, helix, youtube, discord, kick | Chat adapters and their platform credentials |
llm, jev | The OpenAI-compatible reply endpoint and required JEV gate |
avatar, tts | The avatar listener, static files, and custom TTS |
dashboard | Dashboard database and live-settings file |
billing | The configured plan and billing options |
Rate limits, abuse, and moderation
rate_limit sets a message count and time window. The abuse keys are cooldown_seconds, blocklist, max_triggers_per_minute, and pause_seconds. mod.users identifies moderators; the bridge supports !bot pause N, !bot resume, !bot forget <key>, and !bot status. Twitch channel owners and YouTube or Kick moderators are also moderators automatically.
Memory and proactive replies
memory.dir stores channel and viewer facts. The dashboard Memory page and !bot forget <key> can edit or delete facts. proactive.silence_minutes enables one short reply after chat has been quiet for that interval, once per silence and only while the channel is live. proactive.eventsub configures Twitch follow, subscription, and raid reactions.
Persona, trigger, and evaluation
Select a persona with the persona setting or -persona <id>; a file path also works. personas_dir is relative to the config file and defaults to personas. trigger sets the chat command. eval.judge_model configures the judge used by -eval; evaluation runs scenarios through the reply path and uses tokens.
Metering and multiple streamers
metering.db stores usage counters. limits applies reply and TTS caps alongside plan limits. To run several streamers in one process, use -tenants tenants.json; each tenant has a separate config and state files. A tenant with a broken config is skipped while the other tenants run.