# Custom Command Setup Guide

A custom command is a chat trigger you define once. When a viewer types `!yourcommand` in your Kick chat, KickBot posts the response you saved. The response can be plain text, a link, or a template that pulls in live data like the chatter's username or the current viewer count.

{% hint style="info" %}
This guide assumes you have a KickBot account with your Kick channel connected.
{% endhint %}

## Default and custom commands

The dashboard at [kickbot.com/dashboard/commands](https://kickbot.com/dashboard/commands) splits into two sections.

* **Default Commands** ship with every KickBot account. The current set includes `!commands`, `!followage`, `!lurk`, `!me`, `!so`, and `!welcome`. You can edit each one's response, cooldowns, and role gating, but the trigger word itself stays the same. Toggle the switch in the **Status** column to turn one on or off.
* **Custom Commands** is where the commands you create live. The trigger word, response, and every other setting are yours to define.

<figure><img src="/files/jtTB9TLxafrMq8Acqr8l" alt="KickBot custom commands dashboard with default kick chat commands and a !socials custom command."><figcaption><p>Default commands collapse with the chevron in the top-right of that card. Custom commands sit in their own card below.</p></figcaption></figure>

## Add a command

Click **+ Add Command** in the top-right of the **Custom Commands** card. A popup opens for the trigger and the response.

<figure><img src="/files/c4b7uNPTsnJwfSn94xu2" alt="New Command popup with trigger word, response, role buttons, and cooldown sliders."><figcaption><p>Type the trigger word without the leading exclamation mark. KickBot adds it for you.</p></figcaption></figure>

Fill out the popup:

* **Command.** The trigger word. 1 to 20 characters, no spaces. The `!` prefix is added automatically. For example, typing `discord` here means viewers run the command with `!discord`.
* **Response.** What KickBot posts in chat when the command runs. Up to 500 characters. Plain text, a link, or a template using variables (see below).
* **Who Can Use.** Pick any combination of **Everyone**, **Subs**, **VIPs**, or **Mods**. Selecting **Everyone** opens it to all chatters. Stacking, say, **Subs** and **VIPs**, restricts the command to those two groups.
* **User Cooldown.** Seconds before the same chatter can run this command again. Range is 0 to 300.
* **Global Cooldown.** Seconds before anyone in chat can run this command again. Range is 0 to 300.
* **Enabled.** Whether the command is live. New commands are enabled by default.

Click **Create Command** to save. The command appears in the **Custom Commands** table and is live in your chat the next time it is triggered.

{% hint style="info" %}
Free accounts can have up to 5 enabled custom commands. Default commands do not count against this cap. Premium accounts have no limit.
{% endhint %}

## Variables for dynamic responses

The **Show Variables** button on the right side of the **Response** label opens a panel with every supported placeholder. Drop them into your response and KickBot fills in the live value before posting.

<figure><img src="/files/nDLsBhzsx7aKIKp0krVs" alt="Command Variables panel listing sender, streamer, tagged user, stream, random, and request variables."><figcaption><p>The full list covers the chatter, the streamer, a tagged user, current stream info, random values, and external API requests.</p></figcaption></figure>

A few common ones:

* `{{sender.username}}` is the chatter who ran the command.
* `{{streamer.username}}` and `{{streamer.url}}` are your channel name and link.
* `{{taggedUser.username}}` is whoever the chatter tagged after the command (handy for shout-outs: `!so @somebody`).
* `{{stream.title}}`, `{{stream.category}}`, and `{{stream.viewers}}` pull from your current broadcast.
* `{{randomRange(1,100)}}` and `{{randomItem("a","b","c")}}` add randomness for game-style commands.
* `{{request("https://api.example.com").value}}` calls an external API and inserts the response.

For example, a response of `Follow @{{streamer.username}} on Discord! discord.gg/your-server-code` will post your real username in front of the link every time the command runs.

## Edit, disable, or delete

Each row has icons under **Actions** (or **Edit** for default commands).

* The **Status** toggle turns a command on or off without removing it. Default commands have only this toggle plus an edit icon.
* The pencil icon opens the popup pre-filled, where you can change any field and click **Save Changes**. From inside that popup, the **Delete** link in the bottom-left removes the command.
* The trash icon on a row deletes a custom command after a second click confirms.

## Troubleshooting

If a command is not posting in chat:

* **Make sure KickBot is a moderator on your Kick channel.** Without mod permission, KickBot's responses get filtered. Add it at [dashboard.kick.com/community/roles/moderator](https://dashboard.kick.com/community/roles/moderator).
* **Check the Status toggle.** A disabled command is silent.
* **Check role gating.** With only **Subs** selected, a regular viewer running the command will get no response.
* **Check cooldowns.** A high global cooldown can hide a command for several minutes after the last use.

## FAQ

<details>

<summary>How do I add a custom command on Kick?</summary>

Navigate to [kickbot.com/dashboard/commands](https://kickbot.com/dashboard/commands), click **+ Add Command**, type a trigger word and a response, and click **Create Command**. Viewers can run it the next time they type `!yourcommand` in your chat.

</details>

<details>

<summary>How do I add commands on Kick as a mod?</summary>

Adding KickBot commands is done from the streamer's KickBot dashboard, not from Kick chat. If you are a mod and the streamer wants you to manage commands on their behalf, ask them to add you in **Manage Team** on their dashboard so you can sign in and edit commands directly.

</details>

<details>

<summary>How many custom commands can I have?</summary>

Free accounts can have up to 5 enabled custom commands at once, on top of the default commands KickBot ships with. Premium accounts have no cap.

</details>

<details>

<summary>Can I limit a command to subs or mods only?</summary>

Yes. Untick **Everyone** in the popup and tick any combination of **Subs**, **VIPs**, and **Mods**. Only chatters in the selected roles will get a response.

</details>

<details>

<summary>Can a chat command include a viewer's name or other live data?</summary>

Yes. Click **Show Variables** next to the response and drop placeholders like `{{sender.username}}` or `{{stream.viewers}}` into the text. KickBot replaces them with the live value when the command runs.

</details>

## Need help?

Drop a note to <support@kickbot.com> or join the `#support` channel on the [KickBot Discord](https://discord.gg/MAg3gBbc89) and we will sort it out with you.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.kickbot.com/dashboard/chat-bot/custom-command-setup-guide.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
