How to talk to your agent on Discord
Connecting the bot is the part people write guides about. Actually talking to it afterward is simpler than the setup made it look, but Discord behaves differently in a direct message than it does in a busy server channel, and a few slash commands make the difference between poking at the agent and actually driving it. Here is how to use your agent once it is in your server, whether you run OpenClaw yourself or let Operator.io host it for you.
DMs and server channels
A Discord bot can hear you in a direct message or in a server channel, and the agent treats those two surfaces differently on purpose.
A direct message is the closest thing to a private chat with the agent. Open a DM with the bot, type, and send. There is no mention to remember and no channel etiquette to worry about, so a DM is the right place for anything personal or anything you would rather not broadcast.
The one wrinkle is the first contact. OpenClaw's default DM policy is pairing, which means the very first time an unknown account messages the bot it replies with a short code instead of answering, and someone approves that code from the machine running the gateway with openclaw pairing approve discord <CODE>. For pairing to even reach you, Discord has to allow the bot to DM you, which you enable by right clicking the server icon, opening Privacy Settings, and turning on Direct Messages as described in the Discord channel docs. If you are on Operator the pairing is already done when you sign in, so the DM just works.
A server channel is the shared surface, and there the agent is mention gated by default. It sits silently in the channel and only wakes up when you @mention it or reply directly to one of its messages. This is deliberate, because an agent that answered every line in an active channel would be unbearable. The OpenClaw Discord docs describe the mention rules in full, including replying to the bot counting as a mention.
If the server is your own and you want the agent to read everything without the tag, set requireMention: false for that guild in your config and it behaves like a real assistant workspace instead of a command bot. That switch reaches further than it looks once a channel has other people in it, because with the tag gone the agent reads and acts on everything posted there, and any member can talk to it and point it at the integrations you connected. It fits a server that is only you, or a small trusted one where everyone is meant to drive the agent. Where that is not the case, keep the mention gate and name the specific people or roles allowed to trigger it under the guild's users list, so the bot can sit in a shared channel without treating every line as an instruction.
Group DMs, the multi person ones, are ignored unless you explicitly allow them.
Discord also requires the Message Content Intent for bots to read plain text in server channels. Without it the bot may appear online but never see your messages. That intent is enabled in the Discord Developer Portal under your application's Bot settings, alongside Server Members Intent if you use role based routing.
Slash commands
OpenClaw registers native slash commands with Discord on startup through the Application Commands API, so you do not have to memorize anything. Type / in the message box and Discord shows the menu with descriptions and, for commands that take options, autocomplete. The invite URL you used during setup needs the applications.commands scope, or the menu will never appear even though the bot is online.
A few come up often enough to name.
| Command | What it does |
|---|---|
/help, /commands | Show what exists |
/status | Runtime details, and how much model quota is left when usage tracking is on |
/tools | What the agent can do in this conversation right now, which depends on which integrations you have connected |
/model | Opens an interactive picker with provider and model dropdowns |
/stop | Aborts a run in progress |
The /model picker is a couple of clicks rather than a typed string, and its reply is ephemeral, so only you see it.
Native slash commands run in isolated command sessions on Discord, prefixed agent::discord:slash:, separate from the regular chat transcript for that channel. That keeps command output from polluting your conversation history. Plain @mention messages always use the normal channel session. If slash commands look stale after an upgrade, restart the gateway so OpenClaw re registers them with Discord.
The two that trip people up are /new and /reset, which sound like aliases and are not. /new archives the current conversation and starts a fresh one, keeping the old transcript around. /reset wipes the current session in place. Reach for /new when you are changing topics and want a clean slate without losing history, and /reset when you want the current thread cleared.
Sessions and threads
The agent does not pour every channel into one memory. Direct messages share a single ongoing session, so a DM is one continuous conversation that remembers what you said yesterday. Every server channel and every thread, by contrast, gets its own session keyed by the channel or thread ID. You can have a deployment thread, a research channel, and a private DM all running at once without any of them contaminating the others.
Threads are the cleanest way to keep a server tidy. Spin a request into its own thread and the whole back and forth lives there instead of scrolling the main channel away. Discord forum channels only accept posts inside threads, and OpenClaw can auto create a thread when you send a message to the forum parent.
If you want a thread permanently tied to a particular agent or session, /focus binds it, and /unfocus releases it again. That binding is what lets you point one thread at a long running task and keep chatting normally everywhere else.
While the agent is generating in a channel, OpenClaw can stream a draft reply by sending a temporary message and editing it as text arrives, similar to the preview behavior on Telegram. The default is partial preview mode under channels.discord.streaming. Long answers respect Discord's 2000 character message limit and may split across multiple messages.
Everyday use
After the mechanics, the agent is just an assistant you talk to in plain language. The useful requests are the ones that lean on whatever you have connected: ask it to summarize a channel before you scroll back, pull a thread of links into a single note, kick off a search and post the findings, or run a task against one of your integrations and report back in the channel. On Operator those integrations come from connecting Composio or Pipedream, which reach Gmail, Slack, Notion, GitHub, and the other apps you wire in through your own accounts, so "check my inbox and tell me what needs a reply" becomes a thing you can type into a Discord DM.
The bot needs a few permissions in any channel where you expect it to work:
- Send Messages
- Read Message History
- Embed Links
- Attach Files
- Send Messages in Threads, for thread heavy setups
Missing permissions produce Discord error 50013 in the gateway logs rather than a helpful reply in the channel.
If the bot is misbehaving rather than just quiet, the Discord gateway intents and the recurring setup issues are covered in our Discord troubleshooting guide. And if the entire connect a bot detour is more than you want to deal with, Operator runs OpenClaw with Discord wired up as a managed channel, so the agent is reachable in your server from the first message. You can try it free and message it in a minute, or self host with the steps in the OpenClaw docs. Either way the conversation works the same once you are in it.
Frequently asked questions
How do I message my agent in a Discord server?
+
In a server channel the bot is mention gated by default, so it stays quiet until you @mention it or reply to one of its messages. Type @ plus the bot name, write your request, and send. If it is your own private server you can set requireMention to false for that guild so it answers every message without the tag. Direct messages need no mention at all.
What slash commands can I use with the agent on Discord?
+
OpenClaw registers native slash commands on Discord automatically, so typing / shows the menu. The ones you will use most are /help and /commands to see what is available, /status for runtime and usage, /tools for what the agent can do right now, /model to switch models through an interactive picker, /new to start a fresh conversation, /reset to wipe the current one, and /stop to abort a run in progress.
Does each Discord channel keep its own conversation?
+
Yes. Direct messages share one ongoing session, while each server channel and each thread keeps its own separate context. That means you can run a coding thread and a research channel side by side without them bleeding into each other. Use /new to archive a session and start clean, or /focus to bind a thread to a specific agent session.
Why do Discord slash commands behave differently from chat messages?
+
Native slash commands run in isolated command sessions on Discord, separate from the regular chat transcript for that channel. That keeps command output from polluting your conversation history. Commands like /stop still target the active chat session so they can abort a run in progress. Plain @mention messages always use the normal channel session.
Keep reading
Set up your Discord channel on Operator
On Operator you connect Discord from the dashboard. You still make your own bot in Discord's Developer Portal, but there is no config file to edit and no terminal pairing. Paste the token, set the server policy, and your agent answers in your server.
May 31, 2026Set up your Telegram channel on Operator
On Operator you connect Telegram from the dashboard. Make a bot with BotFather, paste the token, and send your agent a message. It listens for that first hello and pairs your account, so there is no config file and no pairing code from a terminal.
May 31, 2026How to talk to your agent on Telegram
In a Telegram DM you just type and the agent answers. Groups need a mention, the command menu is built into the app, and each chat keeps its own memory. Here is how to actually use your agent once the bot is connected.
May 30, 2026