!create
Creates a custom command. Example:
  • !create !тг My Telegram channel: *link*
Note: Moderators can repeat a created command by putting a number after it. Example:
  • !тг 10
Replaceable tags: You can put tags anywhere in the command text and the bot will replace them with the matching value. Tags:
  • ${notag} – the bot will not tag whoever called the command.
  • ${user} – the name of the chatter who called the command.
  • ${randomchatter} – picks a random chatter (the bot needs moderator rights for this).
  • ${title} – the stream title.
  • ${game} – the current category.
  • ${arg1} – the first word after the command.
  • ${arg2} – the second word after the command.
  • ${arg3} – the third word after the command.
  • ${args} – every word after the command.
Example:
  • !create !кто ${randomchatter} ${args} ${notag}

!delete
Deletes a custom command. Example:
  • !delete !тг

!edit
Edits an existing custom command. Example:
  • !edit !тг *new text*

!commands
Lists every custom command on the channel.

!spam
Repeat a message several times.
  • !spam 5 text – five ordinary messages.
  • !spam 5a text – five announcement banners.
  • !спам – the same in Russian.
The bot will not send more than 25 at once: Twitch has a limit, and hitting it means going silent on every channel at the same time. The banner colour comes from the panel settings («Announcements» on the status page). For a single announcement in a chosen colour use !announce blue text instead.

!pin
Pins any custom command. Important: The bot must be a moderator for this to work. Example:
  • !pin !тг

!settimer
Sets a timer on a custom command so the bot posts it once per given interval. Example:
  • !settimer !тг 10m
  • !settimer !donat 1h
  • !settimer !ip 1h 20m 30s
Set the value to "0" to clear the timer.

!dropcd
Resets every cooldown that is currently running.

!alias
A second name for the channel's own command.
  • !alias nopixel gta – !nopixel will answer to !gta as well.
  • !alias del gta – remove a second name.
  • !alias list nopixel – show the second names.
Custom commands only: built-in ones get their names from the code. A name is up to 25 characters: letters, digits and underscore. One command holds at most five second names, and a name already taken is never handed out. Moderators and the broadcaster only.

!copy
Copy a channel command from another channel.
  • !copy discord from Better_Than_Drugs
  • !copy discord from Better_Than_Drugs as ds – under another name.

!language
The language the bot answers in, in this chat.
  • !language – show the current one.
  • !language de – switch: ru — Russian, en — English, de — German, es — Spanish.
The language can be named in words too: !language german, !язык испанский. The Russian name of the command is !язык. Moderators and the streamer can change it. There is one language per channel, on both Twitch and Kick: the same person runs the chat for the same viewers. The website language is a separate setting, chosen by each visitor.

!announce
An announcement banner over the chat, in a colour you pick.
  • !announce text – in the colour from settings.
  • !announce blue text – in that colour, once.
  • !анонс – the same in Russian.
Colours: primary (the channel colour), blue, green, orange, purple. Twitch takes no others. The first word counts as a colour only when text follows it: !announce blue announces the word «blue» instead of sending nothing. The default colour lives on the panel status page, section «Announcements». !spam with an «a» takes it from there too. Twitch only: Kick has no announcements.

!settitle
Change the stream title from the chat.
  • !settitle new title
Moderators and the streamer only. The title is up to 140 characters, the Twitch limit. The bot answers with the new title. Works once the streamer has connected the bot permissions on the website: Twitch allows this only with the streamer's own token, not a moderator's — even when that moderator is the bot. Until then the command says exactly that.

!ctime
How long the current category has been running.
  • !ctime
  • !ctime @name – the answer is addressed to that viewer.
The bot learns when the category changed by itself, from Twitch. !upgame is still there for a manual correction: it restarts the count from this minute. Until the bot has seen a category change on the channel, it falls back to the old !upgame mark, and without one it plainly says it does not know.

!clips
Posts a link to a random clip from this channel.

!notify
What the bot posts in the chat by itself: raids and the stream start.
  • !notify – show what is on.
  • !notify raid on – or off: the raid message.
  • !notify shoutout on – or off: a shoutout for the raider.
  • !notify live on – or off: the stream start message.
Raids are on by default. When a raid of 15 viewers or more arrives, the bot posts "Raid from name with 25 viewers!". Smaller raids are not announced. The shoutout for the raider is off by default; turn it on with !notify shoutout on. For the shoutout the bot has to be a moderator of the channel, and Twitch has its own limit: one shoutout per two minutes, and the same channel at most once an hour. The raid message goes out even when the shoutout does not. Turning raids off removes both. Stream start is off by default. Turn it on and the bot posts "The stream has started: title (category)". The bot checks once a minute, so the message may come up to a minute late. If the stream drops and starts again, the bot says it again no sooner than half an hour later. For moderators and the streamer only. Twitch only.

!poll
A Twitch poll from the chat.
  • !poll What do we play? | Rust | Dota | Minecraft – for two minutes.
  • !poll What do we play? | Rust | Dota 5m – for five minutes: the duration goes last.
  • !poll end – end it now and show the result.
Moderators and the streamer only. The question and the choices are separated by |. Twitch limits: a question up to 60 characters, 2 to 5 choices, a choice up to 25 characters, 15 seconds to 30 minutes; two minutes by default. One poll per channel at a time. Twitch offers polls to affiliates and partners only. Works once the streamer has connected the bot permissions on the website: Twitch allows this only with the streamer's own token, not a moderator's — even when that moderator is the bot. Until then the command says exactly that.

!prediction
A channel points prediction from the chat.
  • !prediction Will we win? | Yes | No – two minutes to bet.
  • !prediction Will we win? | Yes | No 60s – one minute to bet.
  • !prediction lock – close betting.
  • !prediction win 1 – the first outcome won, points go to those who picked it.
  • !prediction cancel – cancel, everyone gets the points back.
Moderators and the streamer only. Twitch limits: a question up to 45 characters, 2 to 10 outcomes, an outcome up to 25 characters, 30 seconds to 30 minutes to bet. The number in win is the order in which the outcomes were written. Twitch offers predictions to affiliates and partners only. Works once the streamer has connected the bot permissions on the website: Twitch allows this only with the streamer's own token, not a moderator's — even when that moderator is the bot. Until then the command says exactly that.

!nuke
Punish everyone who recently wrote a given phrase, and keep watching new messages for five more minutes. Made for raids.
  • !nuke phrase – time out everyone who wrote it.
  • !nuke check phrase – see how many would be hit, punishing nobody.
  • !nuke ban phrase – ban instead of a timeout.
  • !nuke stop – call it off.
Moderators only. Moderators, the broadcaster and the bot itself are never touched. The number punished in one run has a cap (the "Mass ban" setting on the state page): when more match, the bot punishes the cap and says in chat how many it saw. It no longer refuses outright — during a raid that left the moderator alone with the chat. Every punishment goes into the action log and can be undone from the statistics page with one click.

!bterm
The channel AutoMod blocked phrases, right from the chat.
  • !bterm add phrase – block a phrase.
  • !bterm del phrase – unblock it.
  • !bterm list – how many phrases there are and the first five.
This is the same list as in the channel moderation settings on Twitch: a message with such a phrase does not get into the chat. A phrase is 2 to 500 characters long; an asterisk at the start or end of a word makes it a pattern (*word, word*). A phrase is removed by its text: case and extra spaces do not matter. For moderators and the streamer only. The bot has to be a moderator of the channel — otherwise Twitch refuses, and the bot says so. Twitch only.

!vip
Give VIP — for good or for a while.
  • !vip @name – for good.
  • !vip @name 7d – for a week; terms: 30m, 12h, 1h30m, 7d, 2w.
Moderators and the streamer only. The bot removes the VIP itself when the term ends, and remembers it across restarts; the list is !vips, to cancel use !unvip cancel @name. A term is from one minute to one year. If the removal fails (permissions revoked, Twitch down), the bot retries every five minutes and gives up after a day, noting it in the log. A moderator cannot be made a VIP until the moderator role is removed. Already a VIP and only a term is needed — !unvip @name in 7d. Works once the streamer has connected the bot permissions on the website: Twitch allows this only with the streamer's own token, not a moderator's — even when that moderator is the bot. Until then the command says exactly that.

!unvip
Remove VIP — now, after a while or when the stream ends.
  • !unvip @name – now.
  • !unvip @name in 2h – in two hours.
  • !unvip @name offline – when the stream ends.
  • !unvip cancel @name – cancel a scheduled removal.
Moderators and the streamer only. "When the stream ends" means ten minutes offline after being live: a short drop does not count. If the stream is not live now, the VIP goes when the next stream ends. All scheduled removals of the channel: !vips. Works once the streamer has connected the bot permissions on the website: Twitch allows this only with the streamer's own token, not a moderator's — even when that moderator is the bot. Until then the command says exactly that.

!vips
Who loses VIP and when.
  • !vips
Moderators and the streamer only. Shows the plans made with !vip @name term and !unvip @name in …/offline: the name and the time left, or "after the stream". It does not list every VIP of the channel — only the scheduled removals. Works once the streamer has connected the bot permissions on the website: Twitch allows this only with the streamer's own token, not a moderator's — even when that moderator is the bot. Until then the command says exactly that.

!lastmessage
Shows a user's last message in this channel. Important: The bot must be a moderator for this to work. Example:
  • !lastmessage etozhemorty

!lastseen
When a viewer was last seen in this chat.
  • !lastseen – about yourself.
  • !lastseen name – about another viewer.
  • !ls – short name.
On Twitch it goes by the viewer list: once a minute the bot looks at who is in chat and remembers the last time it saw them. That is why the answer covers people who never write a word. The list holds those who have the CHAT OPEN. Someone watching without chat never appears there — that is what Twitch gives us, not something the bot missed. The bot has to be a moderator: the viewer list is a moderator's right. Kick has no viewer list at all, so there the command answers from message history — that is, when the person last WROTE. A Twitch channel without moderator rights answers the same way.

!stats
Shows how many messages a user has sent in this channel, based on StreamElements data. (you need to connect the SE bot before the stats start being collected) Example:
  • !stats – shows your own message count.
  • !stats Kozakovi4 – shows the message count of Kozakovi4.
Note: SE only returns the top 100.

!watchtime
How long a viewer has watched this channel.
  • !watchtime
  • !wt – the short form.
  • !watchtime @name – about another viewer.
Time is counted from the channel's viewer list and only while the stream is live. Counting starts when this command is installed, not from the beginning of time. Where the bot is not a moderator there is no viewer list at all, and the command plainly says it counted nothing.

!wtop
Who watched the channel the most.
  • !wtop
Top five by watch time, counted the same way as !watchtime.

!subage
Shows information about a paid subscription to a channel. Example:
  • !subage – your subscription to this channel.
  • !subage freedomcheek – the subscription of freedomcheek to this channel.
  • !subage freedomcheek anek – the subscription of freedomcheek to the anek channel.
There is also an alias – «!sa».

!afk
Mark yourself AFK — away from keyboard — in every channel the bot is in at once.
  • !afk – without a reason.
  • !afk having dinner – with a reason.
  • !афк – the same in Russian.
One mark for every channel of the bot. Set it in one channel and you are back as soon as you write anything in any other: the bot says in THAT channel, where you wrote, that you are back and how long you were away. The !afk message itself does not count as coming back — use it to change the reason. While you are AFK, a mention of @name in any channel gets an answer: you are away, for how long and why. At most once a minute per name per channel, so the chat is not flooded. A mention inside a command (a message starting with «!») gets no answer. The reason is up to 200 characters, longer is cut. It goes to the chat through the common banned-words filter. If the afk command is turned off in a channel, the bot stays silent there: no «is back», no answers to mentions. Coming back still counts — the person is writing, after all. A mark nobody came back from is removed by itself after 30 days. Twitch only.

!remind
Pass a message to a viewer or remind yourself — across every channel the bot is in.
  • !remind @name text – deliver when that person writes.
  • !remind @name in 2h text – remind them here in two hours.
  • !remind me in 30m text – remind yourself in half an hour.
  • !remind list – your pending ones: number and recipient.
  • !remind del 12 – cancel your own number 12.
  • !напомни, !передай – the same in Russian.
A message follows the person across channels. Left in one channel, it is delivered with the recipient's next message in ANY channel the bot is in, right where they wrote: «@name, from the author (in such-and-such channel, 3 hours ago): text». If several are waiting, up to three go in one message with «and N more» at the end; the rest come with the next message. A timed reminder arrives in the channel where it was left. The time is one word: 10m, 2h, 1d, 1h30m; from a minute up to 30 days. If the command gets turned off in that channel, the reminder waits for the recipient's message in another channel. Limits: text up to 300 characters; up to 10 pending per author and up to 20 per recipient. Undelivered messages are kept for 30 days and then removed. Leaving one for yourself is fine. The text goes to the chat through the common banned-words filter. If the person has opted out of reminders, the bot says so and saves nothing; if they opt out later, the messages waiting for them are removed. If the remind command is turned off in a channel, nothing is delivered there: the bot waits until the recipient writes in another channel. Twitch only.

!optout
Opt out of commands other viewers use on you.
  • !optout duel – nobody can challenge you to a duel.
  • !optout pair – your name stays out of !pair.
  • !optout remind – other viewers cannot set reminders for you.
  • !optout all – everything at once, including whatever appears later.
  • !optout – show your opt-outs.
  • !отказ – the same in Russian.
To undo an opt-out use !optin. An opt-out is shared by every channel the bot is in, and only you can set it, for yourself. Moderators cannot set or remove other people's opt-outs. Whoever calls on a person who opted out gets name does not take part in duels, and no duel starts. An opt-out is about others calling on you. You can still challenge someone yourself or put yourself into !pair: that is your own choice.

!optin
Undo an opt-out set with !optout.
  • !optin duel – you can be challenged to duels again.
  • !optin pair – your name can appear in !pair again.
  • !optin remind – other viewers can set reminders for you again.
  • !optin all – remove every opt-out.
  • !optin – show your opt-outs.
  • !согласие – the same in Russian.
You can take back a single kind after opting out of everything: !optin duel after !optout all brings duels back while pair and reminders stay closed. Opt-outs are shared by every channel, and only the person themselves can remove one.

!queue
A viewer queue — for playing with viewers and anything else where people are called one at a time.
  • !queue – whether the queue is open, how many are in it and who is first.
  • !queue join – join the queue.
  • !queue leave – leave it.
  • !queue pos – your position.
For a moderator, the broadcaster and the bot owner:
  • !queue open – open the queue.
  • !queue open 20 – open it with 20 places.
  • !queue close – stop new entries; those already in stay.
  • !queue next – call the first one ("@name, you're up!") and take them out of the queue.
  • !queue list – the first ten in order.
  • !queue clear – empty the queue.
  • !очередь – the same in Russian.
The queue survives a bot restart: it is kept in a database, not in memory. While the queue is open, join, leave and pos work without the shared cooldown — otherwise out of thirty people only two would get in. Spam is held back by a personal limit: one answer per person every 5 seconds. The command's access level on the site does not apply to these three while the queue is open; to stop entries use !queue close. The queue holds at most 500 people. !join belongs to the giveaway, which is why the queue uses !queue join. If the channel has its own command called !queue, that one answers and the built-in stays silent.

!randline
Posts a random message from this channel's chat. Important – the channel must have PotatBotat in it, since it is the one collecting the logs (https://potat.app/). Once PotatBotat has been added you may block it in your chat if you like. Example:
  • !randline – posts a random message of yours.
  • !randline feels0l00natic – posts a random message from feels0l00natic.
  • !randline random – posts a random message from a random user.
There is also an alias – «!rl».

!badges
How many global Twitch badges you have, your place in the overall ranking, and which of the badges on offer right now you are missing.
  • !badges – about yourself.
  • !badges name – about another viewer.
  • !bg – short name.
The full list with how to get each one is on the /badges page.

!badge
Which badge a viewer has next to their name in chat.
  • !badge – about yourself.
  • !badge name – about another viewer.
  • !bd – short name.
Your own badge comes from the message itself and is therefore always current: badges arrive with every chat frame, so there is nobody to ask. Another viewer's badge is looked up at Twitch, and the bot keeps three answers apart: "I could not find that viewer", "I cannot look it up right now — ask them to type !badge" and "no badge is set". Only the last one means the viewer has no badge. The name is followed by how many people wear it and by the rarity — "rarity: rare (12 of 640)" — and then a link to the badge page. Both numbers and the link come from our catalogue. If the badge was handed out moments ago and the catalogue has not reached it yet, the bot gives the number of owners from an outside counter and invents neither rarity nor link: they are simply absent from the answer. A name shorter than three characters is not treated as a name: !badge 5 asks about yourself, not about a viewer called "5". Twitch only: badges belong to a Twitch account, a Kick viewer has none.

!color
Shows a user's HEX colour and the name of that colour in the palette. Example:
  • !color – shows your own colour.
  • !color I__LEGENDA__I – shows the colour of I__LEGENDA__I.

!chatcolor
Changes the colour of the bot's name. Example:
  • !chatcolor #FF0000
Note: Only the standard Twitch colours are available at the moment.

!presence
Syncs your 7TV colour. Important – you (or the target) need an active 7TV subscription and an active 7TV colour. Example:
  • !presence – syncs your own 7TV colour.
  • !presence lockwwood – syncs the 7TV colour of lockwwood.
There is also an alias – «!pr».

!seventv
Lets moderators manage 7TV emotes from chat. Example:
  • !seventv join – refresh the bot's knowledge of its editor rights. (Add the bot to your 7TV editors first – https://7tv.app/settings/editors)
  • !seventv add [link] [alias, if needed] – add an emote.
  • !seventv remove [name/link/id] – remove an emote.
  • !seventv rename [name] [new name] – rename an emote.
  • !seventv steal [channel] [emotes] – copy emotes from any channel to this one.
  • !seventv set – see how many slots the current set uses.
  • !seventv unused – which emotes of the set nobody types.
!seventv unused answers from the bot's own count, not from 7TV: 7TV does not know whether an emote was ever typed in your chat. The bot matches the words of every message against the names of the set, and refreshes that list every six hours. Counting starts when this feature is installed, and for the first day the command says it is too early to judge: an emote first seen ten minutes ago is not unused — nothing is known about it yet. An emote removed from the set drops out of the answer, but its count is kept: put it back and counting continues from where it stopped.

!ecount
How many times a 7TV emote was typed in chat in 30 days.
  • !ecount KEKW
Case matters, as on 7TV itself: KEKW and kekw are different emotes. If the case is off, the bot suggests the right name. Only emotes of this channel's set count. One word is one hit, but no more than five of one emote per message. Bot commands (messages starting with «!») are not counted. The bot counts by itself since this command was installed; 7TV does not know what is typed in your chat.

!mostused
The five emotes of the 7TV set typed most often.
  • !mostused
Counted over the last 30 days, by the same rules as !ecount.

!leastused
The five emotes of the 7TV set typed least often — candidates to go when the slots run out.
  • !leastused
Zeros are included: emotes nobody typed in 30 days. For the first day of counting the command says it is too early to judge: zero in an hour means «unknown», not «unused». For the same reason emotes added in the last day are left out.

!etop
The three people who type this emote most.
  • !etop KEKW
Counted over the whole counting time on this channel. Case matters, as in !ecount.

!ehistory
Recent changes of the 7TV set: what was added, removed, renamed — and by whom.
  • !ehistory – the last five.
  • !ehistory 10 – how many to show, up to ten.
The bot compares the set every 10 minutes and logs only what it saw itself, so the time is accurate to those minutes. The author is shown if, within 15 minutes before the change, a moderator typed !seventv add, remove, rename, replace or steal with that emote in this chat. Otherwise it says «not via the bot»: 7TV does not tell who edited the set on its website. The log is kept for 90 days. Changes made while the bot was offline are not logged.

!eflush
Emotes of the set that 7TV calls deleted or unavailable.
  • !eflush – show them.
  • !eflush confirm – remove them from the set.
The bot guesses nothing: deleted means 7TV itself says so, unavailable means the set points to an emote 7TV no longer serves. If 7TV sends no deleted flag, the bot says so. With confirm the list is fetched again. At most ten at a time; if 7TV flags more than a quarter of the set, the bot touches nothing — that looks like a glitch, not like deleted emotes. Moderators and the broadcaster only; the bot needs 7TV editor rights, as for !seventv remove.

!combo
The bot marks combos and pyramids of 7TV emotes.
  • !combo on – turn on.
  • !combo off – turn off.
  • !combo – show whether it is on.
A combo is five or more different people typing the same set emote in a row, each message being exactly that emote. When the chain breaks, the bot writes KEKW ×7 — combo! The number is how many different people. A pyramid is one person typing 1-2-3-2-1 of one emote, message after message (a peak of three or more). Anyone else's message in between breaks it. Off by default. At most once per 30 seconds per channel. Moderators and the broadcaster turn it on and off.

!duel
The "Duel" mini-game. Works only with existing Twitch accounts. Example:
  • !duel HelKesTheMonage
The bot also keeps the score between two players. Extra commands:
  • !duel HelKesTheMonage счёт – (show the score)
  • !duel HelKesTheMonage сброс – (reset the score)
  • For moderators: !duel set *seconds*
0 = permanent ban.

!accept
Helper command for the "Duel" mini-game.
  • !accept – accept the challenge.
  • !deny – decline the challenge.

!cnb
The "Rock-Paper-Scissors" mini-game. ⛰✂️📜 Works only with existing Twitch accounts. Example:
  • !cnb VIKTORIA_VYS
  • !cnb VIKTORIA_VYS камень
  • !cnb VIKTORIA_VYS Н
  • !cnb VIKTORIA_VYS 📜
The move is typed in Russian — камень (rock), ножницы (scissors), бумага (paper) — or as the first letter, or as the emoji. The bot also keeps the score between two players. Extra commands:
  • !cnb VIKTORIA_VYS счёт – (show the score)
  • !cnb VIKTORIA_VYS сброс – (reset the score)

!throw
*Throw* something at a random chatter. Example:
  • !throw кирпич
Important: The bot must be a moderator for this to work. (Twitch will not give out the viewer list without moderator rights)

!trivia
A question for the chat: the first correct answer wins.
  • !trivia
The answer is typed as an ordinary chat message, with no command. There are 90 seconds; if nobody gets it, the bot says the answer. Case, punctuation, spacing, accents and umlauts do not matter (cancion = canción, Mueller = Müller). Typos do. Questions come in the channel language — Russian, English, German or Spanish, 1600 in each. One round per channel at a time.

!unescramble
A scrambled word: the first to unscramble it wins.
  • !unescramble
The word is typed as an ordinary chat message. Same rules as !trivia: 90 seconds, one round per channel. The word is taken in the channel language — Russian, English, German or Spanish, 1600 words in each.

!giveaway
A giveaway among viewers.
  • !giveaway 60 – open it for a minute.
  • !giveaway 60 a game key – the same, with a prize named.
  • !giveaway draw – draw right now.
  • !giveaway stop – cancel.
A viewer enters by typing !join once; repeats do not count. From 15 to 600 seconds. One giveaway per channel.

!wins
How many rounds a viewer has won.
  • !wins – your own.
  • !wins @name – someone else's.
  • !wins top – the channel top five.
A win is a correct answer in !trivia or !unescramble. The count is kept per channel. Giveaways do not count: they are won by luck, not by a person. Counting starts when this feature is installed.

!top
Who is best at the channel mini-games.
  • !top – everything together: duels, rock-paper-scissors and rounds.
  • !top duel
  • !top cnb
  • !top rounds
Wins are counted: duels and rock-paper-scissors from the head-to-head score, rounds from !wins. This channel only. There is no cross-channel scoreboard.

!horoscope
A joke horoscope for today — for your own sign.
  • !horoscope scorpio – save your sign (once) and get the forecast right away.
  • !horoscope – the forecast for your saved sign.
Set your sign first. Until then a bare !horoscope asks you to pick one. The sign is saved once for every channel of the bot; to change it, just name another sign. The sign can be written in English or Russian, as a symbol (♏) or by its first letters: sag, cap. There is one forecast per sign per day, the same for everyone who asks, and it changes at 00:00 UTC. Asking again won't reroll it. The forecasts are ironic and kind: chat, streams, lag and cats.

!counter
Channel counters: "how many deaths", "how many raids" — anything counted in pieces.
  • !counter – the channel counters (up to ten names, the rest as a number).
  • !counter deaths – the value: "deaths: 42".
  • !counter deaths + – add one. A counter that did not exist is created from zero.
  • !counter deaths +5 – add five.
  • !counter deaths - or !counter deaths -3 – subtract.
  • !counter deaths =10 – set the value.
  • !counter deaths del – delete the counter.
  • !счётчик – the same in Russian.
Any viewer can look. Only a moderator, the broadcaster or the bot owner can change a counter: the bot checks that itself, not just the access level on the site. A name is up to 25 characters: letters, digits and underscore. Case does not matter: Deaths and deaths are one counter. The value is a whole number from minus one billion to one billion; going past the limit is refused, not silently cut. A channel holds at most 50 counters. Counters are per channel. If the channel has its own command called !counter, that one answers and the built-in stays silent.

!quote
Channel quotes: a moderator saves a line, viewers fetch it by number, at random or by a word.
  • !quote – a random quote.
  • !quote 12 – quote #12.
  • !quote find word – the first quote with that word, and how many more matched.
  • !quote add text – save a quote of the broadcaster.
  • !quote add @name: text – a viewer's quote: the author is the name before the colon.
  • !quote del 12 – delete quote #12.
  • !цитата – the same in Russian.
The answer looks like this: #12 "text" — author, 2026-09-21. On a Russian channel the date is written 21.09.2026. Any viewer can read and search. Only a moderator, the broadcaster or the bot owner can add or delete: the bot checks that itself. Who added a quote and when is remembered. Numbers are never reused. Delete #12 and the next quote gets a new number, not 12, so an old "that's quote #12" never starts showing something else. A quote is up to 300 characters. Search ignores case. Banned words in the answer are starred out, as everywhere in the bot. Quotes are per channel. If the channel has its own command called !quote, that one answers and the built-in stays silent.

!8ball
A magic 8-ball: a random answer to any question.
  • !8ball question

!fact
A random fact.
  • !fact

!pick
Pick one option out of several.
  • !pick tea | coffee | sleep
The separator is a vertical bar; a comma works too. A space is not a separator.

!pair
A joke compatibility score for two names.
  • !pair name
  • !pair name1 name2
The number is not random: it stays the same all day for a given pair and changes tomorrow.

!reverse
Write the text backwards.
  • !reverse text

!uwuify
A cutesy rewrite of the text.
  • !uwuify text

!upsidedown
Turn the text upside down.
  • !upsidedown text

!morse
Turn the text into Morse code.
  • !morse text
Characters that have no Morse code are skipped.

!ai
Ask Google Gemini a question. (gemini-3-flash-preview) While the command is enabled, the bot also answers when you mention @peepebot or reply to any of its messages.

!aic
Clear your personal conversation memory with the AI.

!pic
Draw a picture with a neural network. (Kandinsky v4)

!weather
The weather in a city right now.
  • !weather London
  • !погода – the same in Russian.
The answer gives the temperature, "feels like", the sky and the wind: London, United Kingdom: 12°C, feels like 10°C, overcast, wind 15 km/h. The city is looked up by name, in the channel language. The answer names it the way the service found it, with the country, so you can see whether it is the right one. Of several cities with the same name the first search result is taken, usually the largest one. The data comes from Open-Meteo. When it does not answer, the bot says so: "city not found" means the city really was not found. If the channel has its own command with the same name, that one answers. Twitch only.

!time
What time it is in a city.
  • !time Tokyo
  • !время – the same in Russian.
The answer is the local time and the offset from UTC: Tokyo, Japan: it is 14:05 now (UTC+9). The time zone of the city comes from the Open-Meteo city search; daylight saving time is taken into account. If the channel has its own command with the same name, that one answers. Twitch only.

!translate
Translate a text into English, Russian, German or Spanish.
  • !translate text – into the channel language; if the text is already in it — into English (on an English channel — into Russian).
  • !translate en text – into English.
  • !translate ru text – into Russian.
  • !translate de text – into German.
  • !translate es text – into Spanish.
  • !перевод – the same in Russian.
The source text can be in any language, up to 300 characters. The translation is made by the same neural network that answers !ai and goes through the same word filter as every bot answer. The default cooldown is 30 seconds: every translation is a request to a paid model. If the channel has its own command with the same name, that one answers. Twitch only.

!rub
Shows the rouble exchange rate.

!uah
Shows the hryvnia exchange rate.

!music
Shows the track playing right now. (see the description of «!link») Example:
  • !music – shows what you are listening to.
  • !music CarlBraun – shows what CarlBraun is listening to.

Iniciar sesión en peepebot

Elige una plataforma.

La contraseña se escribe en la propia plataforma: nunca la vemos ni la guardamos.