Chatbot
InstiBot commands and variables reference
Every built-in chat command and every $(variable) you can use in InstiBot commands and timers, with syntax, who can use it and an example of each.
How to read this page
Commands are shown with the default ! prefix; if you changed the prefix in Settings, use yours. Words in angle brackets are values you replace, words in square brackets are optional. Every default command can be renamed, given aliases or limited to a rank under Chat Bot → Commands → Default commands.
Variables are written $(name) inside a command or timer message. Names are not case-sensitive. A variable that can’t be resolved is left as plain text.
Chat and stream commands
| Command | Who | What it does |
|---|---|---|
| !commands | Anyone | Posts the link to your public command list. |
| !uptime | Anyone | How long the stream has been live. |
| !followage [@viewer] | Anyone | How long a viewer has followed, counted from follows InstiBot has seen. |
| !title [new title] | Moderator | Shows the title, or changes it on Kick (and Twitch if connected). |
| !game [category] | Moderator | Shows the category, or changes it to the best match. Alias !category. |
| !so @viewer | Moderator | Shoutout with a link and the Shoutout overlay. Aliases !shoutout, !promo. |
| !addcom !name message | Moderator | Creates a custom command. |
| !editcom !name message | Moderator | Changes a custom command’s message. |
| !delcom !name | Moderator | Deletes a custom command. |
| !permit @viewer | Moderator | Lets a viewer post one link while link protection is on. |
| !quote [add text | number | word] | Anyone (add and delete: Moderator) | Shows, searches, adds or deletes community quotes. |
| !schedule | Anyone | Your next planned stream. Alias !nextstream. |
| !clip [title] | Anyone | Kick only: clips the last 30 seconds, or saves a marker you can cut later. |
| !appeal | Anyone | Posts the unban request link when appeals are on. |
| !level / !xp [@viewer] | Anyone | Level and XP, when the level system is on. |
| !birthday DD/MM | Anyone | Saves a birthday for birthday greetings. |
| !tts message | Anyone (off by default) | Reads a message aloud on the TTS widget, for a price in points. |
Points and interaction commands
Every mini-game also has its own commands, such as !roulette, !slots, !heist and !crash. Each game’s guide lists them with examples.
| Command | Who | What it does |
|---|---|---|
| !points [@viewer] | Anyone | Shows a viewer’s points. |
| !give @viewer amount | Anyone | Gives some of your points to another viewer. |
| !top | Anyone | Posts the link to your points leaderboard. |
| !watchtime | Anyone | Time active in chat. |
| !shop | Anyone | Posts the link to your points shop. |
| !redeem item name | Anyone | Redeems a shop item from chat. |
| !addpoints @viewer amount | Owner | Adds points; a negative amount removes them. |
| !sr song | Anyone | Requests a song (YouTube). Also !song, !wrongsong, !skip. |
| !join / !leave / !queue | Anyone | The viewer queue. Moderators use !next and !pick. |
| !bet option amount | Anyone | Bets on a community prediction. |
| !giveaway start prize [5m] | Moderator | Starts a giveaway from chat. Viewers enter with !enter by default. |
| !poll Question | Option 1 | Option 2 60s | Moderator | Opens a poll. Viewers vote with !vote and a number. |
Variables
| Variable | Returns | Example |
|---|---|---|
| $(user) | The viewer who used the command | Hi $(user)! |
| $(touser) | The first word after the command without @, otherwise the viewer | $(user) hugs $(touser) |
| $(args) | Everything written after the command | You said: $(args) |
| $(1), $(2) … | The first, second … word after the command | Rating $(1) out of 10 |
| $(channel) | Your channel name | Welcome to $(channel) |
| $(random 1-100) | A random number in the range | You rolled $(random 1-6) |
| $(random a,b,c) | A random pick from the list | Tonight: $(random apex,valorant,chess) |
| $(randomchatter) | A random viewer who chatted in the last 10 minutes | $(randomchatter) gets the next shoutout |
| $(count) | How many times this command has been used | Used $(count) times |
| $(uptime) | How long the stream has been live, or offline | Live for $(uptime) |
| $(title), $(game) | The current title and category | Now playing $(game) |
| $(followage) | How long the viewer has followed | Following for $(followage) |
| $(points), $(pointsname) | The viewer’s points and your currency name | $(points) $(pointsname) |
| $(watchtime), $(level), $(xp), $(rank) | The viewer’s time in chat, level, XP and leaderboard place | Rank #$(rank) |
| $(time Europe/London) | The current time in a time zone | It is $(time America/New_York) in New York |
| $(countdown 2026-12-31T20:00) | Time left until a date and time | Event starts in $(countdown 2026-12-31T20:00) |
| $(math 2*3) | A calculation with + - * / % ^ and brackets | $(math 1500/3) each |
| $(counter deaths) | The value of a chat counter | Deaths: $(counter deaths) |
| $(nextstream) | Your next planned stream | Next stream: $(nextstream) |
| $(urlfetch https://…) | Text returned by a web address (Premium) | $(urlfetch https://example.com/status) |
Good to know
- Viewer variables such as $(points) and $(rank) read the viewer on the platform the command came from. Viewers on Kick and Twitch are counted separately.
- In timers, $(user) is your own name and $(count) has no value, so leave it out of timer messages.
- $(followage) only knows follows InstiBot has seen, because Kick offers no list of older followers.
- Messages longer than a platform allows are shortened on Kick and split into up to three messages on YouTube.