Chat bot
Answer chat commands and post timed messages on Twitch and stream.place with the Crossfeed bot.
The Crossfeed bot is a shared chat account that answers commands and posts timed messages in your chat. On Twitch it chats as crossfeedbot with the Chat Bot badge. On stream.place it chats as bot.crossfeed.live. In the dashboard chat, the pop-out chat, and your chat overlay, its replies show as Crossfeed with the Crossfeed logo next to the name.
The bot runs in the dashboard. It reads your chat and replies only while Crossfeed is open in a browser. It ignores messages from before you opened the dashboard, so reloading the page never answers old commands again.
Turn on the bot
- Open Settings and select Bot, or run Edit bot commands and timers from the command palette.
- Check the status line for each platform. It reads Replies as followed by the bot's name once the bot can chat there.
- Turn on Turn on the bot.
The status line shows what stops the bot on a platform:
- Connect Twitch in Accounts or Connect stream.place in Accounts means that platform isn't connected in this browser.
- Reconnect Twitch means your Twitch sign-in is missing the
channel:botpermission, which lets the bot chat in your channel. Select Reconnect Twitch and approve the new permission. - Bot not configured on this server means the bot isn't available on the server you're using.
- The last reply failed at followed by a time means the bot's last message didn't reach chat. The box below it names the reason and the fix, along with the reason code from the platform. It clears after the bot's next reply goes through.
Commands
A command is a word that starts with !. When someone types it in chat, the bot sends the reply. A command from Twitch gets its reply on Twitch, and a command from stream.place gets its reply on stream.place. A message you send to both platforms from the dashboard gets one reply on each.
Add a command
- In the Commands section, type the name in Command, for example
!discord. - Optionally, add other names for the same command in Aliases, separated by commas.
- Write the Reply.
- Pick Who can use it and set the Cooldown in seconds.
- Select Add command.
Each command has a switch to turn it off without deleting it, arrows to change its place in the list, Edit, and Delete. Deleting a command asks you to confirm first.
Names and aliases use up to 24 letters, digits, dashes, or underscores, and each name belongs to one command. Crossfeed matches them without regard to case, so !Discord also runs !discord. You can have up to 50 commands with up to 5 aliases each.
Who can use a command
| Setting | Twitch | stream.place |
|---|---|---|
| Everyone | Anyone in chat | Anyone in chat |
| Subscribers and VIPs | Subscribers, founders, and VIPs | Chatters with the VIP badge |
| Moderators | Moderators | Chatters with the moderator badge |
| Broadcaster | You | You |
Higher levels include the lower ones, so a moderator can use a command set to Subscribers and VIPs, and you can use every command.
Cooldowns
After the bot answers a command, it ignores that command for the cooldown. The cooldown counts on each platform separately, so a command used on Twitch still works on stream.place right away. Set the cooldown to 0 to answer every time. The longest cooldown is one hour.
Variables
Replies and timer messages can include variables in curly braces. The bot fills them in when it sends the message.
| Variable | Value |
|---|---|
{user} | The display name of the chatter who used the command |
{args} | Everything the chatter typed after the command |
{platform} | Twitch or stream.place, whichever platform the message goes to |
{title} | Your stream title on that platform |
{category} | Your Twitch category, or your stream.place category |
{viewers} | Viewers on both platforms together |
{uptime} | How long you've been live, for example 1h 24m, or offline |
Timer messages have no chatter, so {user} and {args} stay empty there. Other text in curly braces stays as you wrote it.
A reply or timer message can be up to 300 characters before the bot fills in variables. After that, stream.place messages are cut to 300 characters and Twitch messages to 500.
Timers
A timer posts a message on an interval while you're live. It also waits for chat to move, so it doesn't post twice into a quiet chat.
- In the Timers section, write the Message.
- Set Every, in minutes, from 5 to 240.
- Set Chat lines since the last post, from 0 to 500. Messages from the bot don't count.
- Pick the Platforms the timer posts to.
- Select Add timer.
A timer posts for the first time one interval after you go live or open the dashboard. It stops while you're offline. Like commands, timers have a switch, arrows to reorder them, Edit, and Delete. You can have up to 20 timers.
Channel chat requirements
Twitch applies your channel's chat settings to the bot like any other chatter. These settings can stop its replies:
- Chat verification that requires a verified phone number or email address to chat.
- Followers-only mode.
- Subscribers-only mode.
- Slow mode, which drops a reply sent before the wait is over.
When Twitch drops a reply, the status line reads The last reply failed at, and the box below it names the setting.
To lift these limits, make crossfeedbot a moderator or VIP in your channel, for example with /mod crossfeedbot or /vip crossfeedbot in your Twitch chat. Moderators and VIPs can chat in followers-only, subscribers-only, and slow mode. Chat verification skips moderators and VIPs only when your verification settings exempt them, so turn on that exemption in your Twitch moderation settings too.
Limits
- The bot only works while the dashboard is open. Closing the tab stops commands and timers.
- The bot sends up to 20 messages every 30 seconds on each platform. Messages above that fail until the limit clears.
- On stream.place, the bot only posts in the chat of the AT Protocol account on your Crossfeed account. If you signed in to Crossfeed with your email, link your AT Protocol account in the Accounts section of Settings first. See Account and billing.
- The demo shows the bot's replies in the dashboard only. They never reach Twitch or stream.place.
Bot commands and timers are part of your settings, so they sync to your other browsers and export and import include them. To hide ! commands from your chat overlay, see Overlays.