Discord
The Discord bridge connects Ghast to a Discord bot you own and have invited to a server. Mapped channel messages flow into Ghast conversations; agent replies post back via the bot.
Setup
1. Create a Discord application and bot
- Go to Discord Developer Portal and click New Application.
- Name it and create.
- In the left sidebar, click Bot.
- Click Add Bot if prompted.
- Under Token, click Reset Token (or Copy if newly created). Save the token.
- Under Privileged Gateway Intents, enable Message Content Intent (required to read message text in non-mention contexts).
2. Invite the bot to your server
- In the developer portal, go to OAuth2 → URL Generator.
- Scopes: check bot and applications.commands.
- Bot Permissions: at minimum, Read Messages/View Channels, Send Messages, Embed Links, Attach Files, Add Reactions, Read Message History, Use Slash Commands.
- Copy the generated URL, open it in a browser, and authorise the bot into your server.
3. Add the token to Ghast
- Settings → Channels → Discord.
- Paste the bot token, click Connect.
- Once connected, Ghast lists every server and channel the bot can see.
4. Map channels
For each channel you want the agent to respond in:
- Pick a workspace.
- (Optional) configure prompt overrides and skill defaults.
- Save.
Supported content
| Direction | Supported |
|---|---|
| Inbound text | Yes |
| Inbound images | Yes (vision-capable models) |
| Inbound voice (Discord voice messages) | Yes (transcribed) |
| Inbound files / embeds | Yes |
| Thread replies | Yes — the agent treats threads as scoped conversations |
| Outbound text | Yes, including Discord's Markdown subset |
| Outbound embeds | Yes (link previews, attachments) |
| Reactions | Both directions |
Threads
Discord threads are first-class. When the agent replies in a thread, subsequent agent activity stays inside that thread. This is the right shape for "have a long conversation in a sub-thread without cluttering the main channel."
Slash commands
If you registered application commands during the bot setup, the agent can respond to slash commands as well. Slash commands are useful for one-off, structured requests ("/translate this message").
Privacy and revocation
- Bot token lives encrypted in the Profile Vault.
- The bot only sees servers it's been invited to.
- Revoke via the Developer Portal (Reset Token) and update in Ghast.
- To remove from a server: server owner removes the bot in Server Settings → Integrations.
Failure modes
| Symptom | Cause | Action |
|---|---|---|
| Bot connects but doesn't see messages | Message Content Intent not enabled | Developer Portal → Bot → Privileged Gateway Intents |
| Bot can't post in a channel | Missing Send Messages permission for the bot's role | Server Settings → Roles |
| Embeds don't render | Missing Embed Links permission | Same |
| Slash commands not visible | OAuth2 scope applications.commands not granted | Re-invite the bot with both scopes |
