[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Use cases](https://cotlet.dev/use-cases.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# Update StreamElements chat commands every week

> Rewrite your StreamElements !schedule and !socials replies each week, keep aliases and cooldowns, and see old against new. Runs from Claude or n8n.

Source: https://cotlet.dev/integrations/streamelements-api-mcp-server/update-chat-commands

Your !schedule command still lists last week's streams, and your socials link changed on Friday. Each reply lives in its own command, so a weekly refresh means opening every one of them.

Cotlet does it in your own StreamElements account with list\_commands, update\_command and create\_command, called by your AI agent, an n8n workflow or a script.

[Sign up free](https://cotlet.dev/app/signup?app=streamelements) [All StreamElements tools](https://cotlet.dev/integrations/streamelements-api-mcp-server.md)

Hosted · nothing to install or maintain

## Can StreamElements do this on its own?

StreamElements has a full API for this (checked 17 Oct 2026): POST and PUT on /bot/commands, with the OAuth scope bot:write or your secret JWT. It has no MCP server, so an agent can only use it through code you write and a token you keep. Inside StreamElements, !command edit changes one reply per message and has no way to find every command that mentions a date.

## How you do it in StreamElements today

1. Open the bot commands dashboard and switch to the "Custom commands" tab.
2. Find the command and edit it: the "Reply" field holds the response, and the "Response type" dropdown picks Say, Mention, Reply or Whisper.
3. The "Advanced settings" tab holds aliases, cooldowns, a loyalty-point cost and conditions such as running only while the stream is live.
4. In chat, a moderator can do the same for the reply text with !command edit !<name> <new reply>, and !command show !<name> prints the current level, cost and cooldowns.
5. Every command that mentions the schedule or a link has to be found and changed by hand, and an alias or a second command with the old text is easy to miss.

## How to update StreamElements chat commands every week

Prompt

```
Every Monday, update !schedule with this week's stream times and point !socials at my new link. Show me the old and new reply for each command, and create any command that is missing.
```

1. 01  
### Find every command that needs a change  
list\_commands returns all commands with their reply text and aliases. The agent matches your rule against the reply, so a !stream alias with last week's times is found along with !schedule.
2. 02  
### Write the new reply and keep the settings  
The agent changes only the reply. Level, cooldowns, point cost and response type stay as they are, and variables such as $(user) or $(count) are copied into the new text unchanged.
3. 03  
### Show old against new  
update\_command runs once per command and returns the reply as saved. The agent prints the old and the new text side by side, so you can check a date or a link before it reaches chat.
4. 04  
### Create what is missing  
If no command matches, create\_command makes it with the level and response type you named, and the agent says it was new. Both write tools ask for your OK per call until you switch confirmation off for them.

### What you get back

Example data

```
Commands checked: 14
Updated 3:
- !schedule: "Mon-Fri 19:00 CET" now "Tue, Thu 19:00 CET, Sat 16:00 CET"
- !socials: old link replaced with the new one
- !stream (alias of !schedule): same text
Created 1: !discord (Everyone, Say)
No change: 10
```

### Other ways to ask

- Every Friday, change the !raid command to the shoutout text for this weekend's event.
- Switch every command that costs loyalty points to the Reply response type and show me which ones.
- List commands that no one can use because they are disabled, and ask me which to switch on.

## What StreamElements allows, and what to know first

- A StreamElements custom command answers in one of four ways: Say, Mention, Reply or Whisper, and the platform may not support every type.
- The permission level of a command is one of Everyone, Subscriber, Regular, VIP, Moderator or Super Moderator.
- A command with a loyalty-point cost does nothing without an error when a viewer has too few points, and it needs the Loyalty System switched on.
- The !command suite is available on Twitch, YouTube and Kick and needs the Moderator level.
- Each command can have aliases, which are alternate trigger words, and listing them in chat only works with the original command name.

update\_command and create\_command ask for your OK by default. To run it weekly without you, switch confirmation off for those tools in your dashboard.

Sources: [StreamElements Docs: Custom Commands](https://docs.streamelements.com/chatbot/commands/custom) · [StreamElements Docs: Getting Started with the Chatbot](https://docs.streamelements.com/chatbot/getting-started) · [StreamElements Docs: !command](https://docs.streamelements.com/chatbot/commands/default/command) · [StreamElements API docs (OpenAPI spec)](https://github.com/StreamElements/api-docs/blob/main/api.yaml)

## Call update\_command from a script

curl

```
curl -X PATCH https://cotlet.dev/api/v1/streamelements/commands/c_4b19e0 \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"reply":"Streams this week: Tue and Thu 19:00 CET, Sat 16:00 CET."}'
```

Example response

```
{
"command_id": "c_4b19e0",
"trigger": "!schedule",
"reply": "Streams this week: Tue and Thu 19:00 CET, Sat 16:00 CET.",
"level": "Everyone",
"response_type": "say",
"enabled": true
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is streamelements\_write → update\_command. Example data.

[Schedule it in n8n, Make, Zapier or cron](https://cotlet.dev/integrations/streamelements-api-mcp-server.md#automations)

## StreamElements tools this automation uses

__Cotlet StreamElements tools used to update StreamElements chat commands every week__
| Tool | Parameters |
| --------------- | ------------------------------------------------------------------------------------------ |
| list\_commands | search, enabled, limit, cursor |
| update\_command | command\_id, reply, level, response\_type, cooldown\_global, cooldown\_user, cost, enabled |
| create\_command | trigger, reply, level, response\_type, cooldown\_global, cooldown\_user, cost |

[All 14 StreamElements tools with descriptions](https://cotlet.dev/integrations/streamelements-api-mcp-server.md#tools)

## Frequently asked questions

### Is it safe to connect StreamElements to Cotlet?

Yes. You sign in to StreamElements yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get StreamElements once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

## More StreamElements automations

- [Approve or decline StreamElements store redemptions](https://cotlet.dev/integrations/streamelements-api-mcp-server/manage-store-redemptions.md)
- [Reward your top StreamElements tippers with loyalty points](https://cotlet.dev/integrations/streamelements-api-mcp-server/reward-top-tippers-with-points.md)
- [StreamElements API and MCP server: every tool](https://cotlet.dev/integrations/streamelements-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to StreamElements.

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with StreamElements.

[Sign up free](https://cotlet.dev/app/signup?app=streamelements)

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [Use cases](https://cotlet.dev/use-cases.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.

## For AI agents: sign your user up

Is your user asking you to sign them up for Cotlet? You can do it for them, no account or key needed.

1. Read the fields and their allowed values: GET https://cotlet.dev/api/v1/access-requests
2. Ask the user for each value: email, apps, what you will do with them. If they leave the password to you, generate a strong one and show it to them.
3. Show the user what you will send, then POST it as JSON to https://cotlet.dev/api/v1/access-requests.

One call creates the account and sends the access request; we email the user when access is granted.
