Connect a Discord bot
The Discord control bot gives you the same command surface as the web terminal
and the Telegram bot — launch tasks, check status, run the issue wizard, manage
schedules — from any Discord client. It runs as a single persistent gateway
connection and boots only when DISCORD_BOT_TOKEN is set.
Prerequisites
Section titled “Prerequisites”- A Discord application with a bot user and its token (from the Discord Developer Portal).
- The bot invited to at least one server, or available for DMs.
- A running SupaCloud instance reachable by its server process.
- Your own SupaCloud account (so you can generate a link token in Settings).
-
Set the bot token.
Add
DISCORD_BOT_TOKENto your SupaCloud server environment before starting (or restarting) the server. The control bot will not boot if this variable is absent.DISCORD_BOT_TOKEN=<your-bot-token>On a successful gateway connection the server logs:
discord control bot gateway live -
Generate a link token in SupaCloud.
Open Settings in the web UI and navigate to the Telegram section. A one-time link token is generated automatically and shown there; copy it (use Refresh to mint a new one). It expires after a short window and can only be used once.
-
Link your Discord account — in a DM.
Open a direct message with your bot and send:
/link <token>where
<token>is the value from the previous step.The bot replies with a confirmation on success. If your Discord identity is already linked to a different SupaCloud account the token is not consumed, so the rightful owner can still use it.
-
Verify the link.
Send
/statusto the bot (in a DM or any channel it can read). It should reply with your active tasks rather than a “not linked” prompt.
Commands used on this page
Section titled “Commands used on this page”| Command | Description |
|---|---|
/link <token> |
Link this Discord identity to your SupaCloud account. |
/status |
Verify the link — shows active tasks when the account is linked. |
For the full command set see Discord commands.
Button pickers and the issue wizard
Section titled “Button pickers and the issue wizard”/tasks and /issues open interactive button flows rather than plain-text
replies. Button presses are delivered to the bot via Discord’s
INTERACTION_CREATE event; no additional configuration is needed.
The issue wizard walks you through Project → Issue → Agent → Launch with
inline buttons, then launches the task. This mirrors the same capability
available from the web terminal (issues <project> + run … --issue <id>) and
the Telegram bot.
Live mode
Section titled “Live mode”A task launched from Discord — a direct /run, the /run wizard, or the
/issues wizard — auto-enters live mode in the launching channel. Its
progress streams into a single message edited in place: the agent’s answer,
a rolling list of the tools it runs, and its current thinking, all coalesced so
the channel stays readable. A persistent Unfollow button stops the stream,
the message auto-finalises when the task completes, and any plain (non-command)
message you send while following is delivered to the task as an intervention.
Following is per-surface — a Discord launch streams in Discord only. This is full parity with the Telegram live mode.