Tutorial

Nightbot Commands: The Complete Setup Guide

Every Nightbot command in one place — the default commands you get for free, how to build custom !commands from chat or the dashboard, the variables that make them dynamic, and the timers and cooldowns that stop them becoming spam.

12 min read

What Nightbot Commands Actually Are

Nightbot commands are text triggers your chat can type to get an instant, pre-written reply. A viewer types !discord, Nightbot posts your invite link. That's the whole mechanic, and it has been the backbone of Twitch chat since 2013.

Nightbot is a cloud-hosted bot: you never install anything, you just authorise it against your channel and it joins your chat as a regular user with moderator powers. Everything is configured at nightbot.tv or from chat itself, and it splits into two groups that behave very differently.

Default commands ship with the bot and control Nightbot itself — adding commands, managing filters, running polls. Custom commands are the ones you write: !socials, !specs, !lurk and the rest of your channel's personality. This guide covers both, then looks at where Nightbot's model runs out of road — mainly Kick, which it doesn't support at all.

Nightbot's Default Commands

These come switched on the moment Nightbot joins your channel. Most are moderator-only management tools rather than things you'd advertise to viewers, and every one of them can be renamed, restricted or disabled from the Commands page of the dashboard.

Nightbot default commands, what they do and who can run them
CommandWhat It DoesDefault User Level
!commandsReturns a link to the public list of every custom command on your channel, and lets mods add, edit and delete them.Everyone (management is mod-only)
!filtersTurns Nightbot's spam filters on and off without opening the dashboard.Moderator
!regularsAdds and removes viewers from the regulars list, which is its own user level for command permissions.Moderator
!songsControls the song request queue — skipping, clearing, opening and closing requests.Everyone (control is mod-only)
!titleReads back the current stream title, or sets a new one if a mod passes text after it.Everyone to read, mod to set
!gameReads back the current category, or changes it when a mod passes a game name.Everyone to read, mod to set
!pollCreates and reports on a Strawpoll from chat.Moderator
!winnerPicks a random active chatter — the built-in giveaway draw.Moderator
!uptimePosts how long the current broadcast has been live.Everyone
!followageTells a viewer how long they have followed the channel.Everyone
!accountagePosts how long a viewer's platform account has existed — useful for spotting fresh troll accounts.Everyone

Nightbot's dashboard lists these under Commands → Default. Availability and user levels can change — the dashboard is always the source of truth.

The one worth showing viewers is !commands, which returns a link to a public web page listing every custom command on your channel. Pin that link in a panel and you stop answering "what commands do you have?" for the rest of your streaming career.

How to Add a Custom Nightbot Command

There are two routes and they write to the same place. Chat is faster mid-stream; the dashboard gives you every option in one screen.

  1. 1Sign in at nightbot.tv with the platform account you stream from, then use Join Channel so Nightbot enters your chat.
  2. 2Give Nightbot moderator status in your channel — without it, links and longer messages get filtered before anyone sees them.
  3. 3Open Commands → Custom in the dashboard and choose Add Command.
  4. 4Set the Command field to your trigger, including the exclamation mark, for example !discord.
  5. 5Write the Message — the exact line Nightbot will post. Keep it to one line so it doesn't dominate chat or your overlay.
  6. 6Pick a User Level: Everyone for viewer-facing commands, Moderator for anything that changes channel state.
  7. 7Set a Cooldown in seconds. Thirty is a good default for informational commands.
  8. 8Add an Alias if you want a second trigger to fire the same response, then save and test it in your own chat.

Nightbot must be modded in your channel to post links or long messages reliably. If it joins but never replies, that's almost always the reason.

Adding Commands From Chat

The chat syntax is quicker once you know it, and it's how most streamers add commands live while someone is asking a question. Every one of these is moderator-level by default.

Nightbot chat syntax for adding, editing and deleting custom commands
Type In ChatWhat Happens
!addcom !trigger responseCreates a new custom command with that trigger and response.
!addcom -ul=mod !trigger responseCreates the command restricted to moderators and above.
!addcom -cd=60 !trigger responseCreates the command with a 60-second cooldown.
!editcom !trigger new responseRewrites the response of an existing command.
!editcom -ul=everyone !triggerChanges the user level without touching the response text.
!delcom !triggerDeletes the command permanently.
!commandsPosts the public link listing every command on the channel.

A worked example: typing !addcom -cd=30 !discord Come hang out with us: discord.gg/yourinvite creates a !discord command with a 30-second cooldown. Change the wording later with !editcom !discord …, and remove it with !delcom !discord. If you'd rather see the finished wording before you commit, our !discord command guide has copy-ready responses.

Nightbot Variables: Making Commands Dynamic

A static response is fine for a Discord link. Variables are what turn a command into something that reacts to who typed it, what they typed and what's happening on your stream. Nightbot writes them as $(name).

Nightbot variables and what each one returns
VariableWhat It ReturnsTypical Use
$(user)The display name of whoever typed the command."$(user) is now lurking" for a !lurk response.
$(touser)The name typed after the trigger, falling back to the sender's own name.Interaction commands like !hug and !highfive.
$(channel)Your channel name.Signing off a response with the channel's own name.
$(query)Everything the viewer typed after the trigger, as one string.Passing a search term into an API lookup.
$(1) $(2) $(3)Individual words after the trigger, positionally.Commands that take two arguments, like a duel or a versus line.
$(count)A number that increases by one every time the command runs.Death counters, fail counters, "asked about my chair" counters.
$(urlfetch URL)The plain-text body of a web request, pasted straight into chat.Community APIs for followage, watchtime or now-playing.
$(querystring)The viewer's input, URL-encoded so it's safe inside a link.Wrapped inside $(urlfetch) when passing user input to an API.
$(eval …)The result of a small JavaScript expression.Random picks, simple maths, formatting other variables.
$(time ZONE)The current time in a named timezone.A !time command for an international audience.
$(twitch CHANNEL)Live status and stream details for a Twitch channel.Shoutout commands that name the other streamer's last category.
$(weather LOCATION)A short weather summary for a place.IRL streams that get asked about the weather constantly.

Variables can be nested — $(urlfetch) commonly wraps $(querystring) so user input is safely encoded into the URL.

Two of these do most of the heavy lifting. $(touser) is how interaction commands work: it returns the name the viewer typed after the trigger, and falls back to the viewer's own name if they typed nothing — which is exactly the behaviour you want for !hug and its variants. $(urlfetch) is how Nightbot does anything it can't do natively: it calls an external API and pastes the plain-text response into chat, which is the standard trick behind community !followage and !watchtime commands.

Worth knowing before you lean on it: a $(urlfetch) command is only as reliable as the third-party API behind it. Free community APIs go down, get rate-limited or quietly disappear, and when they do your command starts posting error text to chat. If a command matters to your channel, prefer a bot that computes the value itself over one that borrows it.

Cooldowns, User Levels and Aliases

Three settings decide whether your commands feel useful or feel like spam. All three sit on the same Add/Edit Command screen.

Cooldown

How long before the command can run again. Nightbot applies it channel-wide, not per user, so one person firing it locks it for everyone until the timer clears.

User Level

Who is allowed to run it — Everyone, Regular, Subscriber, Moderator or Owner. Regular is Nightbot's own tier: a list of trusted viewers you maintain with !regulars.

Alias

A second trigger that runs the same response. Aliases are how you cover the spelling viewers actually type: !socials, !social and !links pointing at one message.

Nightbot's cooldown is channel-wide rather than per-user: once anyone fires !uptime, nobody can fire it again until the timer clears. That's a blunt instrument, but it does stop the "five people spam the same command" problem that ruins a chat overlay during a busy moment. Thirty seconds is a sensible starting point for informational commands and ninety for anything fun.

Nightbot Timers: Commands That Fire Themselves

A timer posts a message on a schedule without anyone typing anything — your socials, your Discord, the fact that you're doing a giveaway at the top of the hour. Nightbot gates them behind two conditions so they can't talk to an empty room.

  1. 1Open Timers in the Nightbot dashboard and choose Add Timer.
  2. 2Write the message, or point the alias field at an existing command so the wording lives in one place.
  3. 3Set the interval in minutes — five is the minimum Nightbot accepts, and 15 to 30 is kinder to your chat.
  4. 4Set the chat-lines threshold so the timer only fires when the room has actually been talking.
  5. 5Save, then watch one full rotation live before you add a second timer.

Nightbot enforces a minimum interval of five minutes. Three or four timers on a long rotation reads as helpful; eight timers reads as an ad break.

The chat-lines threshold is the setting people skip and then regret. It tells Nightbot to only post if that many messages have gone by since the last timer fired, which means a quiet stream doesn't end up with your bot talking to itself. Set it to at least five and your timers will look like they're responding to an active chat rather than running on a clock.

A neat trick: point a timer at an existing command by using the alias field, so your !socials wording lives in exactly one place. Change the command, and the timer's message changes with it. Our !socials command guide covers how to format a multi-link response so it doesn't get truncated.

Where Nightbot Stops: The Kick Gap

Nightbot is genuinely good at what it does, and for a single-platform Twitch streamer it may be all you ever need. The honest limits are these.

  • No Kick support — Nightbot covers Twitch and YouTube Live, so a Kick simulcast is left without a bot.
  • Cooldowns are channel-wide rather than per-user, so you can't let each viewer run a fun command once a minute.
  • Anything Nightbot can't calculate itself needs $(urlfetch) and a third-party API, which is a dependency you don't control.
  • It's a chat bot only — no overlays, no clipping, no multistreaming, and no conversational AI to fill a quiet room.
  • Command lists live per platform, so a Twitch list and a YouTube list are maintained separately even inside Nightbot.

The Kick gap is the one that bites hardest in 2026. If you simulcast to Twitch and Kick, Nightbot covers half your audience — the Kick half types !discord and gets silence. There's no configuration that fixes it, because the platform simply isn't supported.

Nightbot vs StreamUps Commands

StreamUps runs custom !commands too, so it's a fair comparison rather than an apples-to-oranges one. Here's where each is stronger.

Nightbot compared with StreamUps on commands, platforms and moderation
AreaNightbotStreamUps
Custom !commandsYes, with variables and aliasesYes, with variables and aliases
PlatformsTwitch, YouTube LiveTwitch, YouTube Live, Kick
One list across platformsConfigured per platformOne command answers everywhere you're live
Spam and link filteringDeep, mature, highly configurableBasic AI flagging
Song requestsBuilt inNow-playing via !song
Conversational AINot availableIncluded
Merged chat overlayNot availableIncluded
MultistreamingNot availableIncluded
CostFree, no paid tierFree tier plus Pro

The short version: Nightbot wins on moderation depth and a decade of community-written command recipes. StreamUps wins on platform coverage — one command list that answers on Twitch, YouTube Live and Kick at once — and on everything that isn't a command, since the same account also handles AI chat, merged chat overlays and multistreaming. Nothing stops you running both in the same chat, and plenty of streamers do exactly that.

If you're weighing up a switch rather than a supplement, the full breakdown lives on our Nightbot alternative page, and you can browse the whole chat commands library to see what a finished command list looks like.

Commands Worth Adding First

If you're starting from an empty command list, these five earn their place on almost every channel — each one links to a full setup guide with copy-ready responses for Nightbot and beyond.

Nightbot Commands FAQ

How do I add a command to Nightbot?
Either type !addcom !trigger followed by your response in chat, or open Commands → Custom in the Nightbot dashboard and use Add Command. Both write to the same list. The dashboard is the better route when you want to set a cooldown, user level and alias at the same time.
Why isn't Nightbot responding to my commands?
In order of likelihood: Nightbot isn't modded in your channel, the command's user level is higher than the person testing it, the cooldown is still running, the trigger is spelled differently than you remember, or the response contains a link that the platform's own filters strip. Check the mod status first — it accounts for most cases.
How many commands can Nightbot have?
Far more than any channel needs in practice. The real limit is your viewers' memory: past about fifteen commands people stop discovering them, which is why the !commands link and a channel panel matter more than the raw number.
Does Nightbot work on Kick?
No. Nightbot supports Twitch and YouTube Live. If you simulcast to Kick you need a bot that connects to Kick directly — StreamUps runs the same command list across Twitch, YouTube Live and Kick, so all three chats get the same answer.
What is the difference between $(user) and $(touser) in Nightbot?
$(user) is always the person who typed the command. $(touser) is the name they typed after it, and falls back to their own name when they typed nothing. Use $(user) for announcements about the sender and $(touser) for anything aimed at another chatter.
Can I use Nightbot and another chat bot at the same time?
Yes. Multiple bots can sit in the same chat without conflicting, as long as you don't give two of them the same trigger — if you do, both will answer and chat sees a duplicate. Plenty of streamers keep Nightbot for its spam filters while another tool handles commands, AI chat and overlays.
How do I make a Nightbot command that counts things?
Use the $(count) variable in the response. Every time the command runs, the number goes up by one and Nightbot stores it for you — the standard pattern for death counters and running jokes. Reset it by editing the command's count value in the dashboard.
What is the minimum interval for a Nightbot timer?
Five minutes. You should usually go longer — 15 to 30 minutes with a chat-lines threshold of at least five keeps timers feeling like reminders instead of adverts.

Related Guides & Tools

Set Up Chat Commands in Minutes

Add !lurk, !so, !discord, and more to your Twitch, YouTube, or Kick chat with StreamUps. No bot hosting, no code—just pick your commands and go live.

Keep up to date

Sign up to our NewsLetter

Contact Us