The !Uptime Command: Show How Long You've Been Live

Answer “how long have you been streaming?” without breaking your train of thought — and without doing the mental arithmetic yourself.

!uptime
Get Started Free

What Does the !Uptime Command Do?

The !uptime command reports how long the current broadcast has been running. A viewer types it, and the bot replies with something like “The stream has been live for 3 hours 42 minutes.” It reads the actual start time of the broadcast from the platform, so the answer is accurate to the minute regardless of whether you remember when you hit Go Live.

Neither Twitch, YouTube Live nor Kick shows a running clock to viewers by default. The player shows that a stream is live, not when it started, and the only native hint is the VOD timeline — which most viewers never open and which doesn't exist at all if you have VODs disabled. That gap is why !uptime is one of the oldest and most universally installed chat commands: it fills in information the platform simply doesn't surface.

Unlike a static link command, this one needs live data. The bot has to know when the broadcast started, which means either an API call to the platform or its own record of when it saw the stream come online. That distinction sounds academic but it's the source of nearly every wrong answer an uptime command gives, and it's covered in detail further down.

The command's usefulness scales with how long you stream. On a 90-minute broadcast, nobody needs it. On a six-hour marathon, a subathon, or a charity stream where the total elapsed time is part of the event, it gets typed constantly — and it gives you a natural way to mark milestones without checking a clock mid-sentence.

Why Viewers Ask How Long You've Been Live

The most common reason is orientation after arriving. Someone lands on your channel from the directory, from a raid, or from a notification, and the first thing they want to know is where they are in the broadcast. Did they catch the start, or have they walked in on hour five of something with context they've missed? “Did I miss much?” is really a question about uptime, and a viewer who can answer it themselves settles into the stream faster than one who has to interrupt to ask.

Raids sharpen this. Forty people arrive at once, all with the same question, and none of them want to be the one who asks it. A single !uptime from any one of them — or from a mod welcoming the raid — answers it for the whole group, and it tells them something useful about what they've joined. A stream two hours in is settled and mid-flow; a stream twenty minutes in is still warming up and is a better moment to introduce yourself.

Regulars use it differently. For them uptime is a status check on you: how long have you been going, and should someone be telling you to take a break? Long-session streamers know this feeling — chat starts asking for uptime around hour five, and the number becomes a gentle collective nudge toward food, water and a screen break. Some streamers lean into it and write the response to acknowledge it directly.

Then there's the event case. Subathons, 24-hour charity streams and marathon runs make elapsed time part of the content. When the length of the broadcast is the thing, viewers check it the way they'd check a scoreboard, and an uptime command that returns a clean, readable number gets typed hundreds of times in a session. If that's your format, it's worth writing a response that celebrates the number rather than just stating it.

Finally, uptime is how a returning viewer decides whether to stay. Someone who checks in at hour six of a scheduled eight-hour stream knows they've got two hours of content ahead; someone who checks in at hour seven and a half might leave rather than get invested. That's not a reason to hide the number — it's a reason to pair the response with what's coming next, which costs you nothing and turns a stat into a reason to stick around.

!Uptime Variations & Example Responses

CommandExample ResponseNotes
!uptimeThe stream has been live for 3 hours 42 minutes.The default. Clean, rounded to minutes, no seconds.
!uptime (offline)The stream is offline right now — next one is Thursday at 7pm.Always handle the offline case. An error message here looks broken.
!uptime (with context)Live for 3 hours 42 minutes. Ranked until 10, then viewer games.Turns a stat into a reason to stay. Costs nothing, keeps arrivals watching.
!uptime (marathon)Hour 19 of 24. Send snacks.For subathons and charity streams where elapsed time is the content.
!uptime (humour)3 hours 42 minutes. That's roughly 4 energy drinks in real money.Rotate two or three joke variants so regulars get something new.
!downtimeNext stream: Thursday 7pm UK. Set a reminder!The companion command for offline chat. Answers what viewers ask next anyway.
!uptime after a crashThe stream has been live for 4 minutes.Not a bug. Restarting a broadcast resets the platform's start time — nothing can recover it.

Set Up !Uptime in StreamUps

StreamUps reads the broadcast start time from the platform rather than counting from when the bot connected, so the answer stays correct even if the bot reconnects mid-stream — and it stays consistent across Twitch, YouTube Live and Kick while you multistream.

  1. 1Sign in to StreamUps and connect the channels you broadcast to, so the bot can read each platform's live status.
  2. 2Open the Commands section of the dashboard and add a new command.
  3. 3Set the trigger to !uptime and choose the uptime response type so the value is pulled live rather than typed as static text.
  4. 4Write the wrapper text around the value — for example: The stream has been live for [uptime]. Keep the format in hours and minutes.
  5. 5Set the offline response separately so viewers in an offline chat get your schedule instead of an error.
  6. 6Set a 30-second global cooldown (not per-user) so a raid full of people typing !uptime doesn't flood chat, then enable the command on each platform and save.

Set Up !Uptime in Nightbot

Nightbot pulls uptime through its built-in Twitch variable, which queries the Twitch API for the current broadcast's start time. It's free and takes about a minute.

  1. 1Sign in at nightbot.tv with your Twitch account and confirm Nightbot has joined your channel.
  2. 2Open Commands in the sidebar, go to the Custom tab and click Add Command.
  3. 3Set Command to !uptime.
  4. 4For the Message, use Nightbot's Twitch variable with an uptime query — the common form is: The stream has been live for $(twitch $(channel) "{{uptimeLength}}")
  5. 5Set User Level to Everyone and Cooldown to 30 seconds, then Submit.
  6. 6Test it in your own chat while live and while offline. Nightbot returns a not-live message when the channel is offline; if you want your own wording there, add a separate !downtime command with your schedule.

Set Up !Uptime in StreamElements

StreamElements ships an uptime variable you can drop straight into any custom command response. The bot is Twitch-focused and free.

  1. 1Sign in at streamelements.com, open the Bot section and make sure the bot has joined your channel.
  2. 2Go to Chat Commands and check the Default Commands tab first — an uptime command may already exist and only need enabling.
  3. 3If you want your own wording, open Custom Commands and click Add New Command.
  4. 4Set the command name to !uptime and write the response around the uptime variable, e.g. The stream has been live for ${uptime}
  5. 5Under Advanced Settings, set access level to Everyone and a 30-second cooldown.
  6. 6Save and test while live. Add a !downtime command with your next stream time so offline chat gets a useful answer too.

How Bots Calculate Uptime (And Where It Goes Wrong)

There are two ways a bot can work out how long you've been live, and they disagree more often than you'd expect. The first is to ask the platform: Twitch's API exposes a started_at timestamp on the live stream object, and the bot subtracts that from the current time. This is the accurate method — it's true whether the bot was running when you went live, whether it restarted mid-stream, and whether you were away from your dashboard. The second method is for the bot to note the moment it first saw the channel go live and count from there. It requires no API access, and it's wrong whenever the bot joined late.

That second method is the cause of the classic complaint: uptime resets to zero mid-stream, or reports twenty minutes when you've been live for three hours. If your bot reconnects — a service restart, a network blip, a deploy on the bot provider's side — a session-based counter starts over. An API-based counter doesn't move at all, because the platform's record of when the broadcast started hasn't changed. When you're choosing a bot, this is a genuine differentiator for anyone who streams long sessions.

The other reliable source of wrong answers is you. Ending and restarting a broadcast resets the platform's started_at too, so if OBS crashes at hour four and you go live again, your uptime command will honestly report four minutes. There is no way around this — the platform genuinely started a new stream — but it's worth knowing before you accuse your bot of being broken. Twitch does keep a short grace window during which a reconnect can be stitched into the same stream, so a brief drop may not reset the clock; a longer outage will.

Multistreaming adds a wrinkle that most bots ignore entirely. If you go live on Twitch at 19:00, and your YouTube and Kick outputs come up thirty seconds later, you now have three different start times. A single-platform bot will report whichever one it happens to be reading, and a viewer on Kick can get an answer that's noticeably off from what a Twitch viewer sees. Any bot that runs commands across all three platforms at once has to decide which clock is authoritative — usually the earliest start across your outputs, since that's when the broadcast actually began from your point of view.

A few formatting notes worth getting right. Round sensibly: “3 hours 42 minutes” is readable, “3.7 hours” is not, and seconds are noise unless you're under a minute. Handle the offline case explicitly — a viewer typing !uptime in an offline chat should get “The stream is offline,” not an error or a stale number from last night. And set a global cooldown rather than a per-user one; during a raid, forty people typing the same command in ten seconds is exactly the scenario that turns a helpful command into a wall of identical bot messages. Thirty seconds globally is plenty, and it looks far better in a merged chat overlay where every platform's copy of the response would otherwise appear at once.

!Uptime Command FAQ

How do I check how long a stream has been live?
Type !uptime in the chat if the channel has the command set up — the bot reads the broadcast's start time from the platform and reports the elapsed time. Twitch, YouTube Live and Kick don't show viewers a running clock natively, which is why almost every channel installs a bot command for it.
Why did my uptime command reset to zero mid-stream?
Either your broadcast actually restarted, or your bot counts from when it connected rather than from the platform's start time. A dropped OBS connection that ends and restarts the stream genuinely resets the platform's clock and nothing can recover it. A bot reconnect shouldn't reset anything — if it does, your bot is using session-based counting rather than the platform API.
What uptime does the command show when I'm multistreaming?
It depends on the bot. Each platform records its own start time, so going live on Twitch thirty seconds before YouTube and Kick gives you three different clocks. A single-platform bot reports whichever one it reads. StreamUps runs commands across all three at once and reports a consistent figure, so a Kick viewer and a Twitch viewer get the same answer.
Does !uptime work when the channel is offline?
It should, but only if you configure it. Set an explicit offline response — your next stream time is the most useful thing to put there. Without one, some bots return an error or a stale value from the previous broadcast, both of which look broken to a viewer who's just checking whether they missed you.
Should !uptime have a per-user or global cooldown?
Global, around 30 seconds. Uptime is the command a whole raid types at once, and a per-user cooldown does nothing to stop forty different people triggering forty identical bot messages in ten seconds. A global cooldown means the first answer serves everyone, which is exactly what you want during an arrival surge.
Can I show uptime as an on-screen overlay instead of a chat command?
Yes, and for long-format streams it's worth doing both. An on-screen timer answers the question before anyone has to ask, while the chat command covers viewers watching on mobile or in a small player where overlay text is hard to read. Subathon and charity streams almost always run both.
Is there a native /uptime command on Twitch or Kick?
No. Neither platform has a built-in viewer-facing uptime command — the information exists in the API but isn't exposed in chat. Every uptime command you've seen in a stream came from a bot, which is why the setup steps differ by bot rather than by platform.

Related Commands

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.

Related Pages