Discord Setup
Complete guide to connecting Discord with OpenClaw
Complete guide to connecting Discord with OpenClaw
Discord is a popular platform for communities and gaming. OpenClaw connects to Discord using the Bot API via channels.discord.js, providing DMs, server channels, and rich Discord features. New here? Use the Discord quickstart (Developer Portal, intents, token, first message) before diving into voice, threads, and stream previews below.
Stable v2026.5.20: Voice sessions can follow configured Discord users into voice channels (allowed-channel checks, multi-user handoff)—see release notes. Optional bounded IDENTITY.md/USER.md/SOUL.md context in realtime voice instructions (voice.realtime.bootstrapContextFiles: [] to disable).
Recent channel features (2026.2.21): Voice channel join/leave/status via /vc and auto-join configuration for realtime voice; thread-bound subagent sessions with per-thread focus/list controls; stream preview mode for live draft replies (partial/block options, configurable chunking); configurable lifecycle status reactions (queued/thinking/tool/done/error) with emoji and timing overrides; forum available_tags updates via channel edit actions; configurable ephemeral defaults for slash-command responses. Channel topics are included in trusted inbound metadata on new sessions.
Setting up Discord requires creating a bot application:
Set bot options:
{
"channels": {
"discord": {
"enabled": true,
"token": "YOUR_BOT_TOKEN_HERE"
}
}
}
Add your bot token:
DISCORD_BOT_TOKENYou can configure the bot's presence status, activity type, and custom status (e.g. "Playing…" or "Listening to…") in config.
{
"channels": {
"discord": {
"guilds": {
"123456789012345678": {
"channels": ["general", "support"]
}
}
}
}
}
{
"channels": {
"discord": {
"guilds": {
"123456789012345678": {
"channels": {
"general": {
"requireMention": true
},
"support": {
"requireMention": false,
"activation": "always"
}
}
}
}
}
}
}
Required permissions:
Keep your bot token secure:
If bot doesn't respond:
If bot can't read messages:
If you get permission errors: