Discord
A second provider next to Telegram, or on its own. Same tools, same access model, native buttons.
Setup
-
Create an application at discord.com/developers/applications, then add a Bot under it.
-
On the Bot page, enable the Message Content Intent under Privileged Gateway Intents. Without it the bot receives empty message bodies.
-
Copy the bot token into the shared
.env:# ~/.claude/channels/tele-go/.env DISCORD_BOT_TOKEN=your-bot-token DISCORD_BOT_TOKEN_WORK=… # discord:work, if you run named instances -
Invite the bot with an OAuth2 URL using the
botscope. For DMs no extra permissions are needed. For guild channels grant Send Messages, Read Message History, Add Reactions, and Attach Files:https://discord.com/oauth2/authorize?client_id=<APP_ID>&scope=bot&permissions=100416 -
Enable the provider and run:
HOTLINE_PROVIDERS=telegram,discord hotlineIn a Claude Code setup,
HOTLINE_PROVIDERSbelongs in theenvblock of your.mcp.json; see Multiple providers. -
DM the bot. It replies with a pairing code; approve it from your terminal:
hotline pair <code> --provider discord
--provider discord points pair/deny/status at the Discord state (<stateDir>/discord/); named instances use --provider discord:work with state under <stateDir>/discord/instances/work/.
Behavior notes
- Buttons are native Discord message components. A tap comes back as an inbound message with the tapped label, and the buttons are cleared so a question can't be answered twice.
- The permission relay works exactly like Telegram's: allow/deny/more buttons DM'd to allowlisted users,
yes <code>/no <code>text replies also accepted. - Bubbles are paced with Discord's typing indicator. Messages split at Discord's 2000-char cap.
- Guild channels gate as groups keyed by channel ID: add the channel to
groupsin the Discordaccess.json, withrequireMentionto only wake the bot on @-mention. - Inbound images download eagerly to the inbox; other attachments surface a CDN URL as
attachment_file_idfordownload_attachment(Discord CDN hosts only, 50MB cap). Outbound files cap at 10MB, Discord's default bot upload limit. - Messages from bots (including itself) are never relayed.