Stream Kit Docs
Plugins

Bot

Chat commands, timers, auto-moderation, custom roles, and built-in system commands for Twitch and YouTube.

Bot

The Bot plugin adds chat commands, timers, auto-moderation, and custom roles for Twitch and/or YouTube.

Requirements

Connect at least one platform:

  • Twitch — OAuth + EventSub
  • YouTube — Google OAuth + live chat

The Bot plugin is configured when either platform is connected. You can use both together.

Pages

Open Bot in the sidebar:

PageDescription
OverviewConnection status, Twitch bot account, bot settings, summary counts
CommandsCustom chat commands with handler chains
TimersScheduled actions on an interval
ModerationCustom auto-mod rules
RolesCustom user roles for command permissions

Plugins can also register commands programmatically via app.commands.create() — see Plugin API — Chat commands.

Bot settings

SettingDefaultDescription
Bot enabledonMaster toggle for commands and timers
Command prefix!Prefix that triggers commands
Auto-moderationonRun moderation rules on chat messages
Send responses as bot accountonUse the connected Twitch bot account for command replies when available
Twitch / YouTube chatonPer-platform toggles

Twitch bot account

For Twitch, you can connect a separate bot account so command responses appear from a dedicated bot user (similar to Nightbot or StreamElements) instead of your streamer account.

Your main Twitch account must stay connected via the Twitch plugin for chat listening, EventSub, and moderation. The bot account is used only to send messages.

Setup

  1. Connect your streamer account on Plugins → Twitch (if not already connected).
  2. Create a separate Twitch account for the bot.
  3. Mod the bot in your channel: /mod YourBotName
  4. Open Bot → Overview.
  5. Click Connect bot account and authorize the bot Twitch account.
  6. Keep Send responses as bot account enabled.

If messages still fail, disconnect and reconnect the bot account so Twitch grants the latest chat scopes.

YouTube

YouTube live chat always sends messages as the connected channel. There is no separate bot identity on YouTube, so the Bot plugin does not offer a second account link for YouTube.

Commands

Custom commands work like Actions handler chains: aliases, permissions, cooldowns, platform sources, and a top-to-bottom handler chain.

Allowed roles include platform roles (Everyone, Mod, Broadcaster, VIP, Subscriber) and custom roles from Bot → Roles.

Chat messages matching {prefix}{command} are processed after moderation and before built-in commands.

Command arguments

Use <arg> placeholders in the command pattern:

PatternExample chatVariables
setalias <target>!setalias CoolUser{target} = CoolUser
say <message>!say hello world{message} = hello world

The last <arg> captures the rest of the message. Earlier arguments match one word each.

Cooldowns

Each command can have optional cooldowns:

FieldDescription
Global cooldownMinimum time between any use of the command (all viewers)
User cooldownMinimum time before the same viewer can use it again

Leave a field empty for no cooldown on that scope. Cooldown state is kept in memory and resets when the app restarts. When a command is blocked by cooldown, the bot replies in chat with the command name and how long is left.

Built-in commands

CommandDescription
!commandsLists enabled custom commands
!uptimeStream uptime
!botBot status and prefix

Custom commands with the same name override built-ins.

Organizing commands

The Commands page works like Actions: commands are grouped, reorderable, and bulk-editable.

  • Groups — assign a group per command in the edit form, or move multiple commands at once with Edit selected
  • Drag and drop — reorder commands within a group, move them between groups, or reorder groups
  • Collapse — collapse groups to focus on one section; state is remembered across sessions
  • Clone — duplicate a command (including handlers) from the command card or the edit header
  • Enable / Disable — select commands and use the toolbar (same pattern as Actions); there is no Enabled toggle in the edit form
  • Export / Import — share commands as a JSON file

Export and import

Use Export all (or Export selected when commands are selected) to download a JSON file of your commands. Import always creates new commands — existing ones are never replaced.

  • Plugin-owned commands (for example seeded by Rankings) are not included in exports.
  • Handlers from plugins that are not installed still import, but show as unavailable until those plugins are available.

Timers

Timers run handler chains on a random interval between min and max seconds (minimum 30s). Optional minimum chat activity and online-only mode.

Handlers receive timerId, name, platforms, and firedAt. Twitch and YouTube Send Message handlers work without live chat context.

Moderation

Rules use a condition tree (AND/OR/negate). Actions: delete message, timeout (10 min), warn (Twitch only).

Moderators, broadcasters, and owners are exempt by default.

Using moderation in Actions

TriggerDescription
Moderation ruleFires when a saved rule matches (exempt roles from the rule are not applied)
Chat messageFires when a custom condition tree matches

Browse IDs: Bot triggers.

Roles

Custom roles are lists of users you can use as command permissions (permission value role:<id>). Manage them under Bot → Roles, or with handlers in Actions:

HandlerDescription
Add user to roleAdd a user by username or from trigger data
Remove user from roleRemove a user from a role
User in roleWrite whether the user is a member into an action variable

These are separate from command layout groups on the Commands page (those only organize the UI).

Browse IDs: Bot handlers.

On this page