> For the complete documentation index, see [llms.txt](https://kermitcloud.gitbook.io/kermitcloud-hosting-wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kermitcloud.gitbook.io/kermitcloud-hosting-wiki/discord-bot/streamtools.md).

# StreamTools

StreamTools is a collection of features in KermitCloud which aim to help out Content Creators!

#### Stream Actions

This is a feature that allows users to make **KermitCloud** do something based on **Twitch Redemptions, Twitch Subs, and Twitch Follows**.

**These are all the Actions that KermitCloud can perform:**

| Name                | ID            |
| ------------------- | ------------- |
| Join Voice Channel  | `voice-join`  |
| Leave Voice Channel | `voice-leave` |
| Play TTS            | `play-tts`    |
| Play URL            | `play-url`    |
| Play Blerp          | `play-blerp`  |
| Say Message         | `say`         |

***

#### **Requirements**

Before we start, let’s go over the **requirements**:\
You will need to **link your Twitch account** with **KermitCloud**.\
To do this, go to: [kermitbotpanel.kermitcloud.co&#x6D;**/external/twitch**](https://kermitbotpanel.kermitcloud.com)

***

#### **Commands**

**Create a Stream Action**

With this command, you can create a **Stream Action**:

```
bashCopyEdit/stream-action create
```

When creating a **Stream Action**, you must give it a **name**.\
You will need this name later to manage it.

**Example:**

```
pgsqlCopyEdit/stream-action create name:MyAction
```

***

**Delete a Stream Action**

This command deletes a **Stream Action**:

```
arduinoCopyEdit/stream-action delete
```

You must enter the **name** of the Stream Action you want to delete.

**Example:**

```
pgsqlCopyEdit/stream-action delete name:MyAction
```

***

**Points Command**

This command shows all **Redemptions** that **KermitCloud** has access to on your Twitch Channel.\
It will display a list similar to this:

```
nginxCopyEditID - NAME
```

***

#### **Manage Stream Actions**

This command allows you to **manage** your **Stream Actions**.\
Before using this, you must **already have a Stream Action** (see "Create" above).

```
bashCopyEdit/stream-action manage
```

The **Manage** command has **4 subcommands**:

**1. Create a New Action in a Stream Action**

This allows you to create **actions** inside a **Stream Action**.

```
bashCopyEdit/stream-action manage create
```

**Example:**\
Let’s create an action that makes **KermitCloud** join a **Voice Channel** using a previously created Stream Action called **TTS**:

```
pgsqlCopyEdit/stream-action manage create name:TTS action:voice-join VOICEID
```

Replace **VOICEID** with the **ID** of the **Voice Channel**.

***

**2. Delete an Action in a Stream Action**

This command deletes a specific **action** inside a **Stream Action**.

```
arduinoCopyEdit/stream-action manage delete
```

**Example:**\
Let’s delete the **first action** inside the Stream Action **TTS**:

```
pgsqlCopyEdit/stream-action manage delete name:TTS line:1
```

***

**3. List All Actions in a Stream Action**

This command lists all **actions** inside a **Stream Action**.

```
bashCopyEdit/stream-action manage list
```

**Example:**\
List all actions inside **TTS**:

```
bashCopyEdit/stream-action manage list name:TTS
```

You will receive a message that looks like this:

```
rustCopyEditActionName -> ActionParameter
```

***

**4. Set a Listener for a Stream Action**

This command allows **KermitCloud** to **listen** for a specific **Twitch event**.

```
bashCopyEdit/stream-action manage listener
```

**Example:**\
Let’s set the **TTS Stream Action** to listen for a **Redemption**:

```
bashCopyEdit/stream-action manage listener name:TTS listener:redemption REDEMPTIONID
```

Replace **REDEMPTIONID** with the **Redemption ID** (found using the Points command).

***

#### **Example: Create a TTS Stream Action**

Let’s create a **Stream Action** that plays **TTS messages** based on **user input**.

**Step 1: Create the Stream Action**

```
pgsqlCopyEdit/stream-action create name:TTS
```

(The name **TTS** will be used to manage it later.)

**Step 2: Manage the Actions**

We need to **tell KermitCloud what to do**—join a **Voice Channel** and play a **TTS message**.

```
pgsqlCopyEdit/stream-action manage create name:TTS action:voice-join VOICEID
/stream-action manage create name:TTS action:play-tts %user_input%
```

* **%user\_input%** will take the **user’s message input** from the **Twitch Redemption**.
* **VOICEID** is the **ID of the Voice Channel**.

**Step 3: Set the Listener**

We need to **listen** for a specific **Twitch Redemption**.\
First, get the **REDEMPTIONID** using the **Points command**.\
Then, set up the listener:

```
bashCopyEdit/stream-action manage listener name:TTS listener:redemption REDEMPTIONID
```

Replace **REDEMPTIONID** with the actual ID from your Twitch channel.

***

That’s it! Now **KermitCloud** will respond to Twitch Redemptions and play **TTS messages** in your **Voice Channel**. 🚀
