AI module
The AI module builds a private, per-chatter persona from what eligible viewers say in your chat, then uses those personas to answer persona commands — !roast @viewer and custom commands you define — with responses grounded in each viewer’s actual chat history and your channel’s lore.
Requires the Affiliate tier or higher. See Module access by tier.
At a glance
| Capability | What it does |
|---|---|
| Personas | A ~150–200-word AI-written profile per eligible chatter, refreshed as they keep chatting |
| Persona commands | !roast @user plus up to your tier’s limit of custom commands, each with its own prompt |
| Eligibility rules | Choose who gets a persona: minimum sub tier (1–3) and whether moderators are included |
| Lore engine | Feed the AI channel context — manual entries plus AI-drafted insights you approve |
| Monetisation tracking | Lifetime/recent bits and gifted subs recorded on each persona |
| Privacy controls | Global viewer opt-out command, per-channel opt-in command, a viewer self-service page, broadcaster-side persona deletion |
| Daily token allowance | Tier-based budget for persona building and lore extraction, reset at midnight UTC |
The AI only speaks when commanded. There are no keyword, mention, or random-reply triggers — a response is generated only when someone runs an enabled command like !roast @username. Everything else the module does (persona building, lore drafting) happens silently in the background.
Personas
For each eligible chatter, the module keeps a rolling buffer of their recent messages (up to 300) and, every persona update interval messages (default 100, configurable 5–500), asks Workers AI to write or refresh a persona — a short profile of their tone, running jokes, and role in the community, capped at 2,000 characters. Personas also record structured facts: Twitch role, sub tier, message count, first/last seen, and lifetime/recent bits and gifted subs.
Eligibility is configured on the Eligibility tab:
- Minimum Subscriber Tier — 1 (any subscriber), 2 (default), or 3.
- Include Moderators — on by default.
The broadcaster is always eligible. Chatters who don’t qualify are ignored entirely — no persona, no message storage. Known chat bots (Nightbot, StreamElements, Fossabot, and others) are filtered out automatically. Cheers and gift events update the monetisation stats on an existing persona but never create one — personas come from chat (and qualifying subscription events).
Browse everyone on the Personas tab: view a chatter’s persona and stats, test any enabled command against them, or delete their record entirely. A one-time Bits Backfill seeds lifetime-bits stats from your channel’s all-time top-100 bits leaderboard.
Persona commands
Commands are run by chatters in your chat and always target a viewer: !roast @username.
!roast— built in and enabled by default. You can rename it and optionally replace its system prompt (the default prompt roasts quirks, never appearance, health, or identity).- Custom commands — add your own on the Commands tab: a name (starts with
!, lowercase, max 30 characters), a system prompt (up to 2,000 characters, required), and a prefix style for the reply:mention(default,@viewer — …),mimic([viewer]: …), ornone. Custom command limits are tier-based — see Tier comparison.
How a command resolves:
- Any eligible chatter can invoke a command; each invoker has a 60-second cooldown shared across all AI commands (silently ignored while cooling down).
- The target must be eligible and have a persona. Configurable chat replies cover the failure cases: target has no persona yet (“needs to chat more”), target is ineligible, or target opted out — edit these on the Messages tab (
$(user)placeholder supported; the older{user}form is still honoured). - Responses are capped at 500 characters and posted by your configured bot identity (broadcaster account, the shared @StreamerCatalyst bot, or your custom bot — chosen in Chatters → Bot Setup).
- For recently active chatters the module pre-computes a response per enabled command whenever a persona refreshes, so most command replies are instant; a fresh one is generated in the background after each use.
Lore engine
Lore gives the AI persistent channel context — inside jokes, characters, stream rules — injected into both persona building and command responses. Toggle it on under Config → Channel Lore Engine (off by default), then manage it on the Lore tab:
- Manual lore — entries you write yourself (up to 20 entries, 2,000 characters each).
- AI-generated insights — the module watches chat for lore-worthy moments and drafts observations into a pending review queue. Approve a draft to make it active lore (up to 10 active entries, oldest evicted first) or reject it. Nothing the AI observes is used until you approve it.
- A weekly background pass consolidates the pending queue — merging overlapping drafts and flagging stale ones — so the review list stays short.
Viewers who opt out have their contributions removed from pending lore drafts.
Privacy and opt-out
- What the module stores — while the module is on it stores and processes chat messages (buffered per chatter and synthesised into a persona), bits cheers, subscriptions (the tier), gifted subs, and resub messages. Personas are only built for eligible chatters — by default T2/T3 subscribers and moderators, configurable on the Eligibility tab. Telling your community that this is on, and how to opt out, is your responsibility as the broadcaster.
- Viewer opt-out is global — any viewer can type the opt-out command (default
!optoutai, configurable on the Messages tab) in any channel. Their persona text is deleted, their message buffer cleared, and they’re excluded from AI features in every channel using StreamerCatalyst AI, now and in future — not only the one they typed it in. - Opting back in is per channel — the opt-in command (default
!optinai, configurable on the same tab) re-includes the viewer in that channel only. They stay opted out everywhere else, and nothing already deleted is restored. - Viewer self-service — a viewer can see which channels hold their data, opt in or out per channel, and delete it without typing anything in chat, at ai.streamercatalyst.com/privacy/ai. It’s the only place a global opt-out can be lifted.
- The Opt-out tab is a record, not a switch — it lists viewers who opted out in your channel and shows each one’s scope. Removing a This channel entry clears your channel’s record of the gesture; it doesn’t consent on the viewer’s behalf. A Global entry can’t be removed by the broadcaster or a Lead Mod at all.
- Broadcaster deletion — delete any chatter’s persona and stored messages from the Personas tab at any time.
- Consent model — the default is opt-out. The
opt-inconsent model in Config — where nobody gets a persona until they ask for one — is a separate setting and is still not implemented; the!optinaicommand above is how an opted-out viewer comes back, not a channel-wide consent switch. - Data region — a EU/US label reflecting where the channel’s KV data lives (EU jurisdiction by default).
Daily token allowance
Persona building and lore extraction consume your channel’s daily AI token allowance:
| Tier | Daily tokens |
|---|---|
| Affiliate | 25,000 |
| Partner | 100,000 |
| Partner+ | 250,000 |
The allowance resets at midnight UTC. When it’s exhausted, persona updates and lore extraction quietly pause until the next day — but command responses keep working (they draw on the already-built personas and aren’t metered).
Automatic behaviors
- All EventSub processing acknowledges Twitch immediately and runs asynchronously — chat is never slowed down.
- Events are deduplicated (5-minute replay window), so Twitch redeliveries never double-count messages.
- EventSub subscriptions (chat messages, cheers, gift subs, subs, resub messages) are registered automatically the first time you open the dashboard with the module enabled; a manual re-setup endpoint exists on the Overview tab’s EventSub count.
- If your tier drops, custom commands beyond the new limit are disabled automatically (the earliest-created stay enabled).
Configuration reference
AI in the dashboard sidebar, tabs: Overview (enable toggle, persona/opt-out/EventSub counts), Config (persona update interval, message sender, consent model, data region, lore engine toggle), Commands, Eligibility, Messages (the opt-out and opt-in commands + the five reply templates), Personas, Opt-out, Backfill, Lore.
Regular moderators have read-only access; changes require the broadcaster or a Lead Mod.
API and endpoint reference
See AI — API endpoints for the full list of HTTP endpoints.
Auth reference
See AI — Authentication & permissions for the OAuth scopes this module uses and the EventSub subscriptions it registers.
Share Feedback
Need help or want to chat? Join our Discord to get support, report bugs, and talk with other streamers.▸ What we're sending
| Module | — |
| Page | — |
| Browser | — |
| Screen | — |
| Channel | anonymous |
| Submitted | — |