Messaging Adapter

Discord

Discord is now a live Waterbrother messaging surface. It supports DM-first control, guild-channel control, native slash commands, text-command parity, and Roundtable room operations against the same shared project state as Telegram.

The terminal remains the source of truth. Discord messages route into the same live TUI bridge, shared room, task system, reviewer and verifier workflow, and role model that Waterbrother already exposes elsewhere.

DM + Guild Direct messages, mentions, and slash-command control
Slash Grouped commands, autocomplete, and ephemeral operator replies
Room Project share, tasks, invites, roles, verification, and natural-language room control
Prerequisites

Before you start

  1. Create a Discord application and bot.
  2. Enable Message Content Intent.
  3. Copy the bot token and application id.
  4. Invite the bot into your server with the minimum useful permissions.
  5. Set channels.discord.guildId if you want slash commands to appear immediately in one server.
Shape

What Discord is for right now

  • DM-first remote control
  • guild mentions and native slash-command control
  • live TUI bridging through the managed Discord gateway
  • shared-room status, membership, invites, tasks, and role control
  • reviewer and verifier workflow control
  • native Discord autocomplete and grouped slash commands

Discord is no longer staged or onboarding-only. It is a live Waterbrother integration with native slash commands, text-command parity, and shared-room control against the same project state as Telegram.

Setup

Terminal commands

waterbrother config set-json channels '{"discord":{"enabled":true,"botToken":"YOUR_BOT_TOKEN","applicationId":"YOUR_APP_ID","guildId":"YOUR_GUILD_ID","pairingMode":"manual","allowedUserIds":[]}}' --scope user
waterbrother config set-json gateway '{"enabled":true,"controlMode":"single-user","startupChannels":["discord"]}' --scope user
waterbrother discord status
waterbrother discord sync-commands
waterbrother

If you skip guildId, slash commands still work, but Discord may take longer to surface globally synced commands in the client.

Bot Setup

Discord-side checklist

Discord setup still starts in the Discord Developer Portal. Create the application, add the bot, enable Message Content Intent, and invite it with channel read/send permissions plus thread permissions if you want thread use later.

Scopes: bot
Permissions: View Channels, Send Messages, Read Message History,
Create Public Threads, Create Private Threads, Send Messages in Threads

If you are starting from zero, the beginner flow still lives on Discord onboarding. This page is the integration/runtime view, not the beginner walkthrough.

Remote Commands

Available in Discord

  • /help
  • /about
  • /state
  • /status
  • /project status
  • /project share
  • /room
  • /people
  • /terminals
  • /executor
  • /reviewer
  • /verifier
  • /assign-role
  • /verify
  • /verification
  • /review-status
  • /session new
  • /session list
  • /session resume
  • /session clear
Runtime Behavior

What a normal Discord message does

In DMs, normal messages route into the linked Waterbrother session. In guilds, slash commands, mentions, and supported text commands target the bot directly. If the TUI is open, Discord requests route into the live terminal session. If no live TUI host is attached, Waterbrother falls back to the remote session runner where that path is supported.

Discord also supports natural room language for the main room questions and role changes. Requests like “who is in the room?”, “which terminals are live?”, “make bert the verifier”, or “compare executor and reviewer” now resolve against live room and agent state.

Interaction Model

Discord-native behavior

Discord now supports native grouped slash commands, autocomplete for room objects, and private operator responses for commands like /status, /help, and session-management commands when run in guilds.

For server-first UX, set channels.discord.guildId before syncing commands so Discord does not fall back to slower global slash registration.

Shared Projects

Roundtable in Discord

Discord now binds into the same shared project model as Telegram. That means one Discord room can show room status, manage membership and invites, mutate shared tasks, inspect terminals, assign executor/reviewer/verifier roles, and drive verification against the same .waterbrother/shared.json state.

/project share
/room
/people
/invite @username editor
/invites
/approve-invite INVITE_ID
/task add Ship Discord room parity
/task assign TASK_ID MEMBER_ID
/terminals
/assign-role grace verifier
/verify

Discord now supports room status, room events, invites, claims, releases, shared tasks, explicit role control, verification controls, and reviewer workflow controls. It is no longer just a setup page for future work.

Onboarding

Use the beginner guide when needed

If you are new to Discord itself, use the onboarding page for the step-by-step bot creation flow. If you already have a bot token and server, this integration page is the better reference for how Discord behaves inside Waterbrother now.

Open Discord onboarding