A Streamlabs Cloudbot custom command pairs a chat trigger, such as .socials, with a response the bot posts when someone uses it. Variables are placeholders in that response which Cloudbot may replace with changing information, such as a channel name or a user detail.
To make one, enable Cloudbot for the relevant platform, add a command in the dashboard, write its reply and set who can use it. Start with a plain response, then add a variable only after checking that it is available for the command type and platform you are using.
What custom commands and variables do
A command saves you from repeatedly typing the same useful information. For a devotional channel, .schedule might return the times of the next live sessions. A local news channel might use .source to point viewers towards its official updates. The command itself is a trigger; the response is the text Cloudbot sends back.
A variable makes part of the response dynamic. Instead of storing only fixed text, you can include a recognised placeholder that Cloudbot resolves using information from chat or the streaming service. For example, a response containing {channel.name} may display the channel name. The precise tokens available can depend on where you configure them, so examples should not be treated as a complete reference.
Custom commands are separate from ordinary video or broadcast setup. They do not create a live stream or keep one running, and they are not a substitute for a channel’s stream settings. If your main task is keeping a playlist on air, first consider the operational choices in how to run a 24/7 YouTube stream of relaxing music from cloud storage. Cloudbot commands address chat interaction, not the playback chain.
This guide follows the dashboard-based Cloudbot workflow. Do not assume that Cloudbot and Streamlabs Desktop Chatbot are the same tool, or that the menus and permissions behave identically on every platform. Use the current dashboard and help pages for the account and platform you actually use.
Enable Cloudbot
Sign in to the Streamlabs dashboard and open Cloudbot. Turn it on for the platform you want to use. A command cannot answer chat if Cloudbot is off, even if the command itself is saved correctly.
Cloudbot may also need moderator or equivalent chat permissions to participate. Streamlabs’ quick setup guide describes platform-specific steps, including adding Streamlabs as a moderator. For YouTube, it points creators to YouTube Studio’s Community settings; for other platforms, the route differs. These controls can move or change, so follow the current instructions in the dashboard and platform rather than relying on an old menu path.
For a YouTube channel, check the current YouTube Studio community moderation guidance before changing moderators. Give a bot only the access needed to participate in chat, and make sure you are adding the intended account. A moderator setting for one channel does not automatically mean another connected channel is configured the same way.
Once Cloudbot is on, confirm that the dashboard is showing the right platform and channel. This is especially useful if you manage more than one destination: editing a command in one account or platform area will not necessarily configure another. The rest of the workflow assumes you are in the intended Cloudbot section.
Create a custom command
In Cloudbot, open Commands, then Custom, and choose Add Command. Streamlabs’ custom commands and variables guide walks through this workflow. You can begin from a template if one fits, or create a command from scratch.
Choose a trigger that is short, easy to remember and unlikely to appear accidentally in ordinary chat. A trigger such as .schedule clearly signals a deliberate request. A command like .socials can return the channel’s approved social links. Keep the trigger distinct from the names of other commands you already use.
In the response field, enter the text you want the bot to send. At first, use a fixed reply, such as: “The next live session begins at the time listed on our channel schedule.” The example is illustrative; replace it with information that is accurate for your channel. Save the command, and check that it is enabled if the interface offers an individual on/off control.
A command trigger is typically entered at the start of a chat message and begins with an exclamation mark, according to Streamlabs’ advanced settings guide. An alias can offer another trigger for the same command. For example, you might add a shorter alternate name if viewers use different wording. Check how the current interface labels aliases, and test each one rather than assuming it works from the primary trigger.
Streamlabs also distinguishes commands from keywords. A keyword can match text without the usual command prefix or message-start requirement, and may include spaces. That can make it easier for viewers, but also risks triggering on ordinary conversation. For a first setup, use a deliberate command trigger; only choose a keyword when you have a clear reason and have tested likely accidental matches.
Write a response viewers can use
Treat the response as a small piece of information design. Put the answer or action first, use plain language, and include only links or details that viewers can follow. For instance, .schedule could return “Live bhajans continue here; the next special programme is listed in the channel description.” If the programme time changes, remember to update the command as well as any video description or scheduled announcement.
Avoid putting a long set of instructions into a single reply. Chat is a narrow space, and an overloaded response is difficult to read on a phone. If a viewer needs a full timetable, a stable page on your channel or website is usually a better destination than a paragraph of dates embedded in a command. Review any link in the response while signed out or using a viewer account so you know what the audience can access.
You can also make a command answer a repeated question without implying that the bot has live knowledge. A small business might have .hours with the regular opening hours; it should not imply that a holiday exception is current unless someone updates it. A study channel could have .break with a general suggestion to pause, but it should not claim to know how long a particular viewer has been studying unless a supported variable provides that information.
If the stream itself is built from a continuous playlist, keep the jobs distinct: the video loop handles the broadcast content, while a chat command points a viewer towards information. For production questions, how to create a seamless loop for YouTube Live with FFmpeg covers a different part of the setup. Do not use a chat command as evidence that a stream is scheduled or playing correctly.
Set permissions and optional behaviour
Command permissions determine which chat roles may invoke it. Depending on platform and dashboard controls, role choices may include regular viewers, subscribers, moderators or the streamer. Begin with the broadest access that is appropriate for a harmless informational reply. Restrict commands that could clutter chat, spend loyalty points or affect a channel workflow.
Reply mode determines where a response appears. Chat posts a public answer; Whisper, where available, sends a private reply. Streamlabs’ guide describes Whisper as Twitch-only at the time of its publication, so do not assume it exists on YouTube or Kick. Check the current controls for your platform before designing a command around private replies.
Cooldown settings manage how often a command can be used. A global cooldown holds the command for everyone after someone triggers it. A user cooldown delays only the person who used it, while other viewers may still use the command. If a public .schedule reply is being repeated too often, a global cooldown may reduce duplication; if each viewer should be able to ask independently, a user cooldown may be less restrictive.
Some command settings can charge loyalty points or set role-based costs. This is an optional interaction, not a requirement for a basic command. If you enable a cost, explain it to viewers and test what happens for the intended roles. A command that silently fails because the user cannot afford its cost looks broken even when the configuration is working as designed.
| Setting | What it changes | A useful starting decision |
|---|---|---|
| Permission | Who can trigger the command | Allow ordinary viewers for general information; restrict staff-only actions |
| Reply mode | Public chat or private reply where supported | Use public chat for shared answers; verify platform support before choosing private |
| Global cooldown | How soon anyone can repeat it | Use when repeated public replies would clutter chat |
| User cooldown | How soon the same person can repeat it | Use when each viewer should have a separate chance to ask |
| Loyalty cost | Whether a user spends points to trigger it | Leave unused for a straightforward information command |
The table describes configuration choices, not universal defaults. Names and availability may vary with the platform and current Streamlabs dashboard. After changing a setting, save the command and test as a viewer who has the relevant role, if you can do so safely.
Add a variable carefully
A variable is a placeholder, not ordinary prose. If Cloudbot recognises it in that command context, it substitutes data when sending the reply. Streamlabs’ tutorial gives {channel.name} as a channel-name example, and uses {touser.name} and {touser.followage} in a follow-age example. These examples illustrate the concept; they do not establish a complete or guaranteed current token inventory.
A cautious way to use one is to draft the sentence first, then replace only the part that genuinely needs to change. For example: “You are watching {channel.name}.” Another illustrative follow-age style response might use {touser.name} and {touser.followage}. Whether those tokens resolve as intended depends on the command, target and section; the same placeholder should not be assumed to work everywhere.
The target matters. In Streamlabs’ follow-age example, a command without a named target refers to the requesting user, while a target username can refer to another user. That distinction affects what a reply says and to whom it refers. Test with your own account and a consenting test account before making a user-specific response public, and avoid a format that could embarrass someone or expose information they did not ask to share.
Before relying on a token, consult the current Cloudbot reference or the help article for the exact command section. Streamlabs notes that some parameters work only in particular Cloudbot sections. The linked variable reference was login-gated during research, so this guide deliberately does not reproduce a purported full list. If a token is missing, displayed literally or returns an unexpected value, remove it and use plain wording until you verify the supported syntax.
A variable is useful when the changing detail adds value to the response. It is not useful merely because it exists. For a fixed schedule or business hours, manually maintained text may be clearer and more reliable than a dynamic placeholder. For a response tied to a viewer or channel, a verified variable can reduce repetition, but only if its meaning in that command is unambiguous.
Test the command in chat
Test from the chat attached to the platform and channel you configured. Type the trigger exactly as a viewer would, including its prefix and any target argument. Confirm that Cloudbot responds once, in the expected place, with the intended text. If the response includes a variable, check that it resolves rather than appearing as raw placeholder text.
A useful first test is a simple command such as .hello with the response “Thanks for joining the stream.” Keep permissions open to the intended test role, leave optional costs off, and avoid a cooldown that could block your immediate retry. Once the basic reply works, change one setting at a time and test again. That makes it easier to identify which setting caused a change in behaviour.
If the bot does not respond, check these items in order: Cloudbot is enabled for the right platform; the bot has the required chat permission; the command is enabled; the trigger is spelled and punctuated correctly; the sender meets the command’s role requirement; and no cooldown or loyalty cost blocks the use. If only the variable fails, verify that the token belongs in that section and that the target is supplied in the way the command expects.
If you use a keyword instead of a command trigger, test both the intended phrase and a normal sentence that contains similar words. If it replies too readily, choose a more distinctive keyword or return to a command beginning with .. For a channel that runs recorded content around the clock, chat behaviour remains a separate concern from keeping the playback stable; how to stream music on YouTube without storing files locally explains the file-location side of that problem.
Keep a short note of what the command is meant to do, which role can use it and any non-default cooldown or cost. This helps when another moderator needs to update a link or troubleshoot a reply later. Revisit commands when channel links, schedules or platform controls change; a saved response can become inaccurate even while Cloudbot continues working normally.
For a 24/7 channel, separate the need for reliable playback from the need for responsive chat. A custom command can answer recurring viewer questions, but it does not restart or manage the video broadcast. StreamNeo addresses the specific burden of leaving your own computer on to keep an uploaded video streaming: you upload the file and provide your YouTube stream key, and it can run the broadcast with the computer switched off. It is YouTube-only, so use it only if that describes your channel’s need.
Before committing, compare the operating options on the pricing page. When the file and channel are ready, start free — 24-hour trial, no card.
FAQ
Do I need Streamlabs Desktop Chatbot to use Cloudbot custom commands?
This guide covers Cloudbot’s dashboard workflow and does not treat it as interchangeable with Desktop Chatbot. Check the current Streamlabs documentation for the specific tool you intend to use, because setup and available controls should not be presumed identical.
Why does my command work for a moderator but not a viewer?
The command may be restricted to a role that the viewer does not have, or a cooldown or loyalty cost may prevent their use. Review the permission and optional settings, then test from an account with the viewer’s role. Also confirm that Cloudbot is enabled and has chat permission on that platform.
Why is a variable printed instead of replaced?
The placeholder may not be available in that command section, may be misspelled, or may need a target argument. Check the current reference for the exact Cloudbot context and test a simple, known example. The examples in this guide are not an exhaustive variable list.
Can I use a private reply on YouTube?
Do not assume that Whisper is supported on YouTube. Streamlabs’ tutorial described it as Twitch-only when that guide was published; check the current dashboard and platform documentation before choosing a reply mode that depends on private delivery.