The !Hug Command: Let Your Chat Interact With Each Other
Most commands point at you. This one points viewers at each other — which is how a chat turns into a community.
!hugWhat Does the !Hug Command Do?
A viewer types !hug @Sarah and the bot posts something like “@Dave wraps @Sarah in a hug. Wholesome.” If they type !hug with no name, most setups fall back to hugging the streamer, or hugging the person who typed it — your choice, and worth deciding deliberately rather than discovering by accident.
It belongs to a small family of targeted commands: triggers that take another chatter's name as an argument and build a sentence around it. !slap, !highfive, !pat and !boop are all the same command with different verbs, and once you've built one the rest take about a minute each.
What makes this category structurally different from every other command on this site is the direction of the interaction. !uptime answers a question about you. !socials promotes you. !lurk is a viewer telling you something. !hug is one viewer addressing another, with your bot as the medium — you're not in the sentence at all.
The technical piece that makes it work is a variable that resolves to “the name in the message, or the sender if there isn't one”. Every major bot has some version of it, usually called touser, and it's the single thing separating this from a static text command.
Why Viewer-to-Viewer Commands Matter
There's a ceiling on any channel where every interaction runs through the streamer. You can only reply to so many people, and when you're concentrating — a hard boss, a competitive match, a tricky bit of a build — you can't reply to anyone. In that model, a chat with thirty people in it is thirty individual conversations queued for one person, and most of them go unanswered.
Channels that grow past that point are the ones where viewers talk to each other, and that transition doesn't happen by itself. Two strangers watching the same stream have no reason to address each other, and no obvious opening line. A targeted command manufactures the opening: !hug @Sarah requires no wit, risks nothing, and produces a named interaction between two people who had never spoken. It's the smallest possible unit of a friendship forming in your chat.
The pattern that follows is predictable and worth encouraging. Someone hugs a name they've seen before. That person hugs back. A third person joins in. Within a few streams there's a group of regulars who show up partly for each other rather than only for you — and that group is what keeps a channel alive through the weeks when your numbers dip or you need to take a break.
Practically, this is also the command that fills the gaps in your attention. When you're mid-fight and chat has gone quiet waiting for you, an interaction command gives the room something to do that doesn't need you. Combine it with an AI chat bot keeping the conversational thread alive and a quiet stretch stops feeling like dead air. For a broader look at engagement mechanics, the stream engagement bot page covers the same idea at channel scale.
!Hug Variations & Example Responses
| Command | Example Response | Notes |
|---|---|---|
| !hug @Sarah | @Dave wraps @Sarah in a hug. Wholesome behaviour in this chat. | The standard form. The target's name comes from the message. |
| !hug (no target) | @Dave hugs the streamer. Awkward but appreciated. | Decide the fallback deliberately — target the streamer or the sender. |
| !highfive @Sarah | @Dave and @Sarah high five. The sound echoes across the server. | Same template, celebratory verb. Takes a minute to duplicate. |
| !pat @Sarah | @Dave pats @Sarah on the head. There there. | The consolation version. Pairs well with a bad run of luck. |
| !slap @Sarah | @Dave slaps @Sarah with a large wet trout. | Aggressive verbs need tighter cooldowns and a watchful mod team. |
| !boop @Sarah | @Dave boops @Sarah's nose. No further explanation given. | Pure nonsense, and usually the most-used one in the set. |
| !hugs | @Sarah has been hugged 47 times. | Needs a bot with per-viewer counters. Turns the joke into a leaderboard. |
Set Up !Hug in StreamUps
StreamUps runs the same command list on Twitch, YouTube Live and Kick, so viewers can interact across platforms in a merged chat rather than only with the people on their own.
- 1Sign in to StreamUps and connect the channels you stream to.
- 2Open the Commands section of the dashboard and add a new command.
- 3Set the trigger to !hug.
- 4Write the response using the sender placeholder and the target placeholder — for example: $(user) wraps $(touser) in a hug. Wholesome behaviour in this chat.
- 5Check what the target placeholder falls back to when nobody is named, and write the response so that fallback still reads correctly.
- 6Set a per-user cooldown of 30 seconds, leave the user level at everyone, and save. Duplicate the command with new verbs for !highfive, !pat and !boop.
Set Up !Hug in Nightbot
Nightbot handles this with the $(touser) variable, which resolves to the name given in the message or falls back to whoever typed the command.
- 1Sign in at nightbot.tv and confirm Nightbot has joined your channel with moderator status.
- 2Open Commands, then the Custom tab, and click Add Command.
- 3Set Command to !hug.
- 4Set Message to $(user) wraps $(touser) in a hug. Wholesome behaviour in this chat. — $(user) is the person who typed it and $(touser) is the target.
- 5Remember the fallback: with no name supplied, $(touser) becomes the sender, so the message reads as someone hugging themselves. Reword it if that bothers you.
- 6Set User Level to Everyone and Cooldown to 30 seconds, then Submit. Repeat for !highfive, !pat and !slap, changing only the verb.
Set Up !Hug in StreamElements
StreamElements offers the same targeting variable and adds a random picker, which lets one hug command rotate several phrasings instead of repeating one line all stream.
- 1Sign in at streamelements.com, open the Bot section and confirm the bot has joined your channel.
- 2Go to Chat Commands, open the Custom Commands tab and click Add New Command.
- 3Set the command name to !hug.
- 4Set the response to ${sender} wraps ${touser} in a hug. Wholesome behaviour in this chat.
- 5To rotate the wording, wrap several endings in the random picker: ${sender} hugs ${touser} ${random.pick tightly., like they mean it., for a suspiciously long time.}
- 6Set Cooldown to 30 seconds and access level to Everyone, save, and test with and without a target name so you know how both cases read.
The Moderation Side of Targeted Commands
Any command that names another person is, in principle, a way to direct attention at someone who didn't ask for it. In practice a hug command causes almost no trouble and a slap command occasionally does, and the difference is entirely in the verb. Affectionate verbs are safe; aggressive ones are a harassment vector wearing a joke as a disguise, because “it's just a command” is the exact defence someone will use when they've typed !slap at the same person forty times.
Three guardrails cover it. First, cooldowns per user — 30 seconds is enough to make sustained targeting tedious. Second, write the responses so the target is never the butt of the joke: “@Dave slaps @Sarah with a wet trout” is a Monty Python reference, while anything implying the target deserved it is not. Third, tell your mods that repeated targeting is a moderation issue regardless of which command carried it — the trigger doesn't launder the behaviour.
Two smaller details worth handling. Bots generally don't verify that the target is actually in chat, so !hug @someone_who_left posts happily into the void, and someone will use that to name a person who isn't there. And if your channel has had a stalking or harassment problem, targeted commands are the first thing to disable — they're a convenience, not a necessity, and turning them off for a while costs you nothing.
On the lighter side, decide what happens when a viewer targets you. Most streamers let it through and it's a nice moment. If your responses are written to imply consent from the target, though, read them once from the streamer's perspective before you go live — some phrasings that read as sweet between two viewers read differently when pointed at the person on camera.
Building a Family of Interaction Commands
Once !hug exists, the same template gives you as many as you want. !highfive for celebration, !pat for consolation after a bad run, !boop for no reason at all, !cheers for a channel that streams in the evening. Copy the command, change the verb and the wording, save. Five minutes buys you the whole set.
The temptation is to build twenty, and that's a mistake for the same reason a thirty-command list is a mistake: viewers use the triggers they've seen used, and a wide menu of near-identical commands means none of them gets used often enough to become a habit. Three or four is the sweet spot — one warm, one celebratory, one silly, and optionally one aggressive if your community's humour supports it.
If your bot can count, a tally turns the set into something stickier. “@Sarah has been hugged 47 times” gives regulars a number to compete over and gives you an easy thing to react to on stream. Not every bot tracks per-viewer counters, so check before you promise it — and if yours doesn't, a !quote command capturing the best interactions gets you something similar with no counting involved.
Finally, keep the wording platform-neutral. Interaction commands are heavy on personality, and personality often means emotes — which don't exist across platforms. A response built around a Twitch emote name renders as gibberish on Kick and YouTube, so if you run one command list across all three, write the warmth into the words instead.
!Hug Command FAQ
How does the bot know who to hug?
What happens if nobody is named?
Can viewers use !hug on someone who isn't in chat?
Is a !slap command a bad idea?
How many interaction commands should a channel have?
Can I count how many hugs someone has received?
Do interaction commands work across platforms when multistreaming?
Related Commands
!lurkLurk
Let viewers announce they're watching quietly without leaving the stream.
!followageFollowage
Show viewers exactly how long they've been following your channel.
!watchtimeWatchtime
Show a viewer's total hours spent watching your streams.
!soShoutout
Give another streamer an on-stream shoutout with a link to their channel.
!discordDiscord
Drop your community Discord invite into chat on demand.
!socialsSocials
Share all of your social media links in a single chat message.
!uptimeUptime
Tell chat how long the stream has been live at any moment.
!quoteQuote
Save memorable stream quotes and replay them in chat later.
!rulesRules
Post your chat rules on demand so moderation stays transparent.
!clipClip
Let chat capture the last 30 seconds the moment something happens.
!songSong
Show whatever track is playing right now without breaking your flow.
!subcountSubcount
Put your live subscriber total in chat to fuel milestone hype.
!8ball8ball
Answer chat's questions with a random magic eight ball verdict.
!specsSpecs
Answer the most-asked question on any stream: what's in your PC?
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.