Discord commands
The SupaCloud Discord control bot accepts slash-prefixed message bodies in any
channel or DM where the bot is present. The bot boots only when
DISCORD_BOT_TOKEN is set and is entirely separate from the per-workspace
Discord notify/trigger resource.
Ids: every listing shows the first 8 characters of an id, and every command
that takes an id (/task, /logs, /cancel, /follow, /intervene, …)
accepts that short form — a unique prefix resolves, an ambiguous one lists the
candidates with a longer prefix each. Detail replies print the full id as a code
span (Discord has no copy button; select it to copy).
Commands
Section titled “Commands”| Command | Description |
|---|---|
/help |
Show the list of available commands. |
/status |
Active tasks. |
/task <id> |
Task details. |
/run <project> <agent> <prompt> |
Launch a task. |
/tasks |
Open a button-driven recent-task picker (tap a task for detail, then act). |
/issues [project] |
Open the Project → Issue → Agent → Launch wizard (button-driven). |
/intervene <id> <msg> |
Send a message to a running task. |
/approvals [tool|workflow] |
List pending human decision gates; the bare command lists the workflow human-gates (the default), tool lists the interactive tool/question/visual gates. Workflow gates carry inline Approve/Reject buttons (ADR 0045). |
/skills [approve|reject <id>] |
List the open induced-skill proposals, or approve/reject one by id. Deciding is workspace-admin only (ADR 0045). |
/usage |
Per-provider subscription-saturation windows for the active workspace (admin/owner only) (ADR 0045). |
/budget |
The $-budget status (cap, spend, remaining) — a member read (ADR 0045). |
/autonomy [0-100] |
Show the resolved effective autonomy (level, named stop, policy preview). Setting from chat is not yet available — use the web settings or the Management API (ADR 0045). |
/approval_mode <project> [none|pr_draft|human_gate] |
Show or set a project’s PR-review approval mode. Setting is workspace-admin only (ADR 0045). |
/schedule list|add|pause|resume|delete |
Manage schedules. |
/link <code> |
Link your Discord identity to your SupaCloud account. |
Account linking
Section titled “Account linking”Run /link <code> in a DM with the bot. The link code is a short-lived
bearer secret; sending it in a guild channel would expose it in shared history.
The bot rejects /link calls made outside a DM and asks you to retry in a DM.
To obtain a link code, open Settings in the SupaCloud web UI, go to the
Telegram section, and click Generate link token. The same one-time link
token works for both the Telegram and Discord bots
(POST /api/settings/telegram-link-token); there is no separate Discord token
page.
Once linked, SupaCloud remembers your Discord identity against your account. The same account record backs both the Discord and Telegram control bots — you only need to link once per platform.
Button-driven flows
Section titled “Button-driven flows”Two commands open interactive button flows rather than returning plain text:
/tasks— presents the five most recent active tasks as buttons. Tap a task to see its detail, then choose an action./issues [project]— chains a wizard: Project → Issue → Agent → Launch. Omitprojectto be prompted for it first. Button interactions are handled as DiscordINTERACTION_CREATEevents and edit the source message in place.
Live mode
Section titled “Live mode”Launching a task from Discord — a direct /run, the /run wizard, or the
/issues wizard — enters live mode automatically on the launching channel.
Each task step updates a single message edited in place: the agent’s answer, a
rolling list of the tools it runs, and its current thinking, all coalesced (with
tool-line deduplication) so the channel stays readable. An Unfollow button sits
under the confirmation so you can leave the stream in one press, and any plain
(non-command) message you send while following is forwarded to the task as an
intervention. The message finalises and live mode stops automatically when the task
completes. Following is per-surface: a task you start from Discord streams in
Discord only.
Task TL;DR notifications
Section titled “Task TL;DR notifications”When a task finishes, a short TL;DR is pushed to the task owner’s linked Discord account. It carries a status glyph, the task title, a one-line result and a direct link to the task:
- a task that succeeded reports what it produced — its result summary, or the agent’s last message when the summary has not been written yet;
- a task that failed leads with the failure class — provider overloaded, usage limit reached, context window exceeded, auth / configuration error, or a plain error — followed by the error text itself, never a bare “failed”.
Both outcomes close with a narrow operational footer naming the model that ran,
what it cost and the token counts — gpt-5.6-luna · $0.42 · 12.3k→4.1k tok. A value
the server does not know simply drops its segment; a missing figure is never shown
as $0.00.
The result line is clamped to about two sentences and passes the secret-redaction wall first, so nothing an agent printed can leak a key or token into chat. A per-account opt-out toggle in the chat-account settings turns the push off. With no linked Discord account there is nothing to push.
See also
Section titled “See also”- Web terminal commands — the equivalent command
set for the
/cliterminal. - Launch a task from an issue — the cross-interface issue→task recipe.