Custom commands let you automate repeated messages without typing them each time
A custom command on Twitch is a shorthand trigger that sends a pre-written message to chat whenever you or a moderator type it. When you type !socials, the bot posts your Discord link and Twitter handle. When someone types !schedule, it shows your streaming times. You set these up once, then they run automatically — no manual copy-paste, no typos, no forgetting what you meant to say.
The commands live in a bot, not in Twitch itself. Twitch does not have a built-in command system. You need a third-party bot — usually Nightbot, Streamlabs Chatbot, or Moobot — to store the commands and post them when triggered. Each bot connects to your channel and watches for the trigger word. When it sees !command, it sends the response you wrote.
This matters for privacy because bots read your chat in real time. They see every message, every username, and every link. Before you add a bot, you should know what data it collects and who can see it. The bot's privacy policy, not Twitch's, controls what happens to that information.
Key Takeaways
- Custom commands run through a third-party bot, not through Twitch itself, so you must authorize the bot to read and post in your chat.
- Nightbot is the most common choice and requires no payment for basic commands, though it collects chat data to run moderation and analytics features.
- You create commands by typing the trigger (like !socials) and the response message in the bot's dashboard, then save it.
- Only you and your moderators can trigger most commands by default, but you can change permissions so any viewer can use them.
- Bots can post commands on a timer (every 10 minutes) or only when someone types the trigger, depending on what you need.
Setting up Nightbot, the most common choice
Nightbot is free and works on any streaming platform — Twitch, YouTube, Kick. It handles commands, moderation, and chat logs. To start, go to nightbot.tv, click "Sign in with Twitch," and authorize Nightbot to access your channel. Twitch will ask you to confirm that you want Nightbot to read your chat, post messages, and manage moderators. Click "Authorize" to proceed.
Once authorized, log into your Nightbot dashboard. On the left menu, click Commands, then Custom Commands. Click the blue Add Command button. You will see two fields: Command (the trigger, like !socials) and Message (what the bot posts). Type your trigger without spaces, then write the response. Click Submit. The command is now live — type it in your chat and the bot will respond.
By default, only you and moderators can trigger custom commands. If you want any viewer to use them, click the command you just made, scroll down to User Level, and change it from Moderator to Everyone. Save the change.
What data Nightbot collects and stores
Nightbot reads every message in your chat to power its moderation and command features. It stores usernames, message text, timestamps, and user IDs. This data is used to detect spam, track repeated messages, and build the chat logs you can view in your dashboard. Nightbot's privacy policy says it keeps this data to run the service and does not sell it to third parties.
However, Nightbot is owned by Paladin Technologies, a company that also owns other streaming tools. If you use multiple Paladin products, your data may be linked across them. You can request to see what data Nightbot has collected about you, or ask for it to be deleted, by contacting their support team through the dashboard.
If you are uncomfortable with a bot reading your entire chat, you have two options: use a bot with fewer features (some bots only store command data, not chat logs), or run commands manually. Neither is ideal — the first trades privacy for convenience, the second trades convenience for privacy. The choice depends on your own risk tolerance.
Using Streamlabs Chatbot if you stream on Windows
Streamlabs Chatbot is a desktop process that runs on your computer instead of in the cloud. Because it runs locally, it does not send your chat to a remote server — the bot reads your chat directly from Twitch and responds from your machine. This means less data leaves your control, though Streamlabs still collects some usage information.
read Streamlabs Chatbot from streamlabs.com/chatbot. Install it, open it, and sign in with your Twitch account. Go to the Chatbot tab on the left, then Commands. Click Add Custom Command. Enter the trigger and the response, then click Save. The command works when ready in your chat.
Streamlabs Chatbot is Windows-only and requires your computer to stay on while you stream. If your computer crashes or loses internet, the bot stops working. Nightbot keeps running because it lives on Nightbot's servers. For most streamers, this makes Nightbot more reliable, but if you want to minimize data sent to the cloud, Streamlabs is the trade-off.
Commands that change based on who types them
Some commands need to show different information depending on who triggered them. For example, a !age command might show how long each viewer has followed your channel. Nightbot and Streamlabs both support variables — placeholders that fill in with real data when the command runs.
In Nightbot, the variable $(user) inserts the username of whoever typed the command. So if you create a command !shoutout with the message "Go follow $(user)!", and someone types !shoutout, the bot posts "Go follow [their username]!" You can also use $(touser) to shout out someone else — if a moderator types !shoutout @jane, it will say "Go follow jane!"
Other useful variables include $(channel) (your channel name), $(game) (the game you are currently streaming), and $(status) (your stream title). Nightbot's documentation lists all available variables. Streamlabs Chatbot has a similar system with slightly different syntax — check their command builder for the exact format.
Timed commands that post automatically
Instead of waiting for someone to type a command, you can set a command to post on a timer. This is useful for reminders: "Follow the channel," "Check out the Discord," "Subscribe for emotes." The bot posts the message every 10 minutes, or every 30 minutes, or whatever interval you choose.
In Nightbot, create the command as usual, then scroll down to Cooldown and Timers. Set the timer interval (in seconds — 600 seconds is 10 minutes). Check the box next to Timer to enable it. Save the command. The bot will now post that message automatically at the interval you set, whether or not anyone types the trigger.
Timed commands are useful, but they also mean more messages in chat. If you set too many timers, chat becomes cluttered and viewers may mute the bot or leave. Most streamers use one or two timed commands per hour — enough to remind people without overwhelming the channel.
Permissions: who can use which commands
By default, custom commands are restricted to moderators. This prevents viewers from spamming commands or triggering ones you did not intend to be public. You can change this for each command individually.
In Nightbot, click the command, scroll to User Level, and choose from the dropdown: Moderator (only you and mods), Regular (viewers with a certain chat activity level), Subscriber (only people who have paid to subscribe), or Everyone (anyone in chat). Save the change. Now the command will only work for the user level you selected.
You can also set a cooldown — a waiting period before the same person can use the command again. This prevents someone from typing !socials fifty times in a row. In Nightbot, set Cooldown to a number of seconds (30 seconds is common). The command will work once per person, then require them to wait before using it again.
Frequently Asked Questions
Do I have to use a bot, or can Twitch run commands natively?
Twitch does not have a built-in command system. You must use a third-party bot. The most common options are Nightbot (cloud-based, free), Streamlabs Chatbot (desktop-based, free), and Moobot (cloud-based, free tier available). Each has different privacy and reliability trade-offs.
What happens if the bot goes offline or gets banned?
If Nightbot's servers go down, your commands stop working until the service is restored. If Twitch bans the bot account, you lose access to commands until you switch to a different bot. Keep a backup list of your commands so you can recreate them quickly if you need to switch.
Can I make a command that links to my Discord or other social media?
Yes. Create a command with the trigger !discord and the message as your Discord invite link. Twitch will not block the link in a bot message the way it sometimes blocks links in regular chat. However, Twitch's Terms of Service require that you do not spam links, so use timed commands sparingly.
Can viewers see the command list, or is it hidden?
Nightbot has a public command list that anyone can view by typing !commands in chat. You can turn this off in the Nightbot dashboard under Settings > Commands > Command List. If you disable it, viewers will not know what commands exist unless you tell them.
What if I want a command that does something besides post a message?
Basic bots only post text. If you want a command that plays a sound, triggers an overlay, or controls OBS, you need a more advanced tool like Streamlabs Chatbot (which integrates with Streamlabs alerts) or a custom bot built with code. These require more setup and technical knowledge.