Chatters · free on every plan

Your own chatbot, built in — no third-party bot required.

Custom commands with variables, permissions and cooldowns. Auto Chats on a schedule or a keyword. Quotes, counters, giveaways, watch time, and the utility commands you would otherwise bolt on from a second service.

Overview
Docs
Commands, community, and bot health at a glance.
Module
Enabled
The bot answers commands, runs auto chats, and responds to quotes in your chat.
Bot identity
@StreamerCatalyst
The shared bot is connected and posting. Change →
Commands run
312
Stream214
7d1,94030d8,120
Auto chats sent
26
Stream18
7d16430d702
Quote pulls
41
Stream33
7d26030d1,105
Shoutouts sent
9
Stream7
7d5230d214
Commands
5 → unlimited

5 on Free, 25 on Affiliate, unlimited from Partner up.

Who sends
Three options

Your own account, the shared bot, or a bot account you own.

Import
Three bots

Nightbot, StreamElements and Fossabot, paste or account sync.

Setup
No downloads

One Twitch OAuth. No tokens to paste, nothing to host.

Commands

Custom commands, built-ins, auto chats and shoutouts — one page.

Every command carries a permission, a per-user and a global cooldown, an enabled switch and any number of aliases. Test one against your real channel before it ever posts.

  • Describe a command in plain English — AI writes the template
  • Auto Chats on an interval while live, or on a keyword
  • Hide a command from your public commands page
Commands
Custom commands, built-ins, auto chats, shoutouts, and import — one page.
CustomUtilityAuto ChatsShoutoutsImport
Command List
AI Generate+ Add Command
!hug
$(user) gives $(touser) a warm hug.
everyone · cooldown 0 / 10s
!socials
Follow $(channel) everywhere → sc.link/handles
everyone · cooldown 30 / 0s
!tacos
$(user) owes $(counter tacos) tacos.
regular · cooldown 0 / 5s
!raidplan
Tonight we raid $(randompick nordvvind|kaelith)
moderator · cooldown 0 / 0s
Reference

Every variable you can put in a response

Resolved at send time against live channel data. The channel-stat variables fail soft to a named [… unavailable] notice rather than to a zero — chat is never told your month is empty because a token expired.

VariableWhat it returns
$(user)Display name of the chatter who triggered the command
$(touser)First argument, or empty if none supplied
$(channel)Channel login name
$(query)Full message text after the command trigger
$(args)All arguments joined with spaces
$(1), $(2), …One positional argument — $(1) is the first word after the trigger, $(2) the second
$(eval EXPR)Evaluate a safe expression — result inserted inline
$(count)How many times this command has been used
$(counter NAME [add|sub|set N] [of T])Persistent per-user integer tally. The bare op top prints a leaderboard.
$(randompick A|B|C)One option picked at random. Each use draws independently.
$(randomchatter [FILTER])Display name of a random viewer in chat. FILTER is the bot-API syntax (sub, vip, mod, follower, …).
$(hypehigh FIELD)Hype-train all-time-high stats. FIELD: level (default), total, percent, shared_level, shared_total.
$(followers)Total people following the channel, live from Twitch (cached 60s). Also accepted as $(followcount).
$(subs)Total active subscribers, also accepted as $(subcount). Affiliate/Partner only — otherwise it resolves to [subs: unavailable].
$(subpoints)Total subscriber points (T1 = 1, T2 = 2, T3 = 6). Affiliate/Partner only.
$(plus [FIELD])Plus Program points for the month so far. FIELD: points (default), level, next, needed, share.
Migration

Bring your commands with you.

Paste a command list from Nightbot, StreamElements or Fossabot and the variables are translated as they land. Or connect your StreamElements account and bring across what a paste cannot carry — cooldowns, permissions, aliases, enabled state, timers and quotes.

  • Anything that cannot be translated is reported, never silently dropped
  • Review the whole batch before a single row is written
  • Pull-API endpoints keep old bot URLs answering during the switch
Read the import guide →
Reference
Template variables, expression helpers, and migration patterns.
Migration patterns
They writeYou write
$(user) / ${user}$(user)
$(touser) / ${touser}$(touser)
$(query) / ${query}$(query)
$(1) / ${1} — first argument$(1) — the brackets are required
$(random 1-100) — Nightbot random$(eval random(1, 100))

What Chatters costs on each plan

LimitFreeAffiliatePartnerPartner+
Custom commands525UnlimitedUnlimited
Auto Chats3UnlimitedUnlimited
Quotes, counters, regularsIncludedIncludedIncludedIncluded
Bulk import and account syncIncludedIncludedIncludedIncluded
AI command generatorIncludedIncludedIncluded

Full plan comparison, including everything else, is on the pricing page.

Chatters questions

Do I need to run anything on my own machine?

No. The bot runs server-side on Cloudflare Workers. There is nothing to install, host, or keep awake, and no bot token to paste.

Can I keep my old bot while I switch?

Yes. Pull-API endpoints answer at the same shape your old bot used, so URLs you have already published keep working while you migrate.

Which account posts the messages?

Whichever you pick in Bot Setup: your broadcaster account, the shared @StreamerCatalyst bot, or a dedicated bot account you own and authorise.

What happens when a variable cannot be read?

The command answers with a named unavailable notice instead of a zero. A zero is a claim about your channel, and chat reads it as one.

Is watch time exact?

It is a floor. Twitch publishes no watch-time API, so presence is polled every five minutes and credited in whole intervals. The dashboard and docs say so rather than presenting it as exact.

Can my mods edit commands?

Lead Mods can. Regular mods get read-only access, and every mod action is written to an audit log you can read.

Works with

Five commands, free, right now.

Connect with Twitch and import your existing bot in the same sitting.

Connect with Twitch