Skip to main content

Bot Commands

The Bot Commands view lets operators define global chat commands (available to every Lumio account out of the box) and inspect per-account overrides that accounts have customised on top of those globals. It also supports creating bot commands scoped to a single account.

Where to find it

Admin sidebar → Bot Commands (/bot-commands). Two tabs: Global Commands and Account Commands.

Quick start

  1. Open Admin → Bot Commands on the Global tab.
  2. Click Create Global Command.
  3. Fill in the command name (no ! prefix), description, platforms, minimum role, cooldowns, and pick a Response Type: Text, Template, or Automation.
  4. For Text / Template, enter the response text (template placeholders like \{user.name\} are allowed in Template mode). For Automation, paste the target automation UUID.
  5. Click Save. The command is live across all accounts immediately.

Detailed walkthrough

Global tab

Lists every command where the scope = global. Columns: command name (!name), description, response type, platforms, min role, cooldowns, enabled flag.

Row actions:

  • Edit Command — opens the command editor pre-filled.
  • Delete Command — prompts for confirmation ("Are you sure you want to delete the command !{name}?").

Account tab

Switches scope to per-account. Adds a search bar (search by account name or ID). For each account the admin can see the bot commands and their overrides.

Command editor

Fields:

  • Command Name — string without leading !.
  • Description — free text.
  • Response Type — one of text, template, automation.
  • Response Text — for text / template.
  • Automation ID — UUID when Response Type is automation. Inline UUID validation ("Invalid UUID format. Expected: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx").
  • Platforms — multi-select: twitch, youtube, kick, trovo, discord.
  • Minimum Role — viewer / moderator / vip / broadcaster (platform-dependent).
  • Global Cooldown (s) and Per-User Cooldown (s) — integer seconds.
  • Enabled — boolean toggle.

Create vs update

  • Create — POST /api/bot-commands with the full body.
  • Update — PUT /api/bot-commands/\{id\} with the mutated body.
  • Delete — DELETE /api/bot-commands/\{id\} (confirm dialog first).

Account-scoped commands and overrides

Accounts can override global commands (for example, changing the response text) without forking the command. The override lives in a separate table and is fetched alongside the global when the bot dispatches. The admin UI exposes this under the Account Commands tab; the underlying endpoints are:

  • POST /v1/bot-commands/\{id\}/override — set or update an override.
  • DELETE /v1/bot-commands/\{id\}/override — clear the override.

Common scenarios

  • Ship a new !lurk command to everyone — Create Global Command, Response Type Text, response "\{user.name\} is now lurking", enabled.
  • Quickly disable a misbehaving global — open it in the editor, toggle Enabled off, Save. Accounts won't see it.
  • Spot which accounts customised a command — open the command's detail via the overrides endpoint (adminBotCommandOverrides GraphQL) and review each account's override.
  • Wire a command to a complex automation — set Response Type to Automation and paste the UUID from the account's Automation Builder.

Permissions

ActionPermission
View global / account commandsbot-commands:read
Create a commandbot-commands:create
Edit a commandbot-commands:edit
Delete a commandbot-commands:delete

Dashboard entry requires admin:access. System admins implicitly hold every permission above.

API

UI actionGraphQLREST
List global commandsadminBotCommands(scope: GLOBAL)GET /v1/admin/bot-commands?scope=global
List per-account commandsadminBotCommands(accountId: X)GET /v1/admin/bot-commands?account_id=X
List account overrides for a globaladminBotCommandOverrides
Create global commandadminCreateGlobalCommandPOST /v1/admin/bot-commands
Update commandadminUpdateBotCommandPUT /v1/admin/bot-commands/\{id\}
Delete commandadminDeleteBotCommandDELETE /v1/admin/bot-commands/\{id\}
Account override setPOST /v1/bot-commands/\{id\}/override
Account override clearDELETE /v1/bot-commands/\{id\}/override

Tips & gotchas

  • Automation UUIDs are account-specific. A global command that calls an automation only fires for accounts that own that automation — typically you want Response Type Text or Template for globals.
  • Platforms without the required chat scopes (for example, a disabled Trovo bot) silently skip dispatch; the command stays listed but never runs.
  • Template placeholders follow the bot's template engine; see crates/lo-bot-modules docs for the full list.
  • Editing a global with active account overrides leaves the overrides intact — they still apply on top of the new base.
  • Bot Control — runtime pause / resume of bots
  • Providers — kill-switches that disable entire bot platforms
  • Discord Guilds — Discord-specific routing for slash commands