Skip to content
Select themeSelect language

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.

  • 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).
  1. Set the bot token.

    Add DISCORD_BOT_TOKEN to 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
  2. 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.

  3. 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.

  4. Verify the link.

    Send /status to the bot (in a DM or any channel it can read). It should reply with your active tasks rather than a “not linked” prompt.

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.

/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.

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.