{"id":161,"date":"2026-05-06T00:00:00","date_gmt":"2026-05-06T00:00:00","guid":{"rendered":"https:\/\/local.paioclawblog.com\/openclaw-discord-setup\/"},"modified":"2026-05-06T00:00:00","modified_gmt":"2026-05-06T00:00:00","slug":"openclaw-discord-setup","status":"publish","type":"post","link":"https:\/\/paioclaw.ai\/blog\/openclaw-discord-setup\/","title":{"rendered":"How to Set Up OpenClaw on Discord (Bot Setup, Permissions, Slash Commands)"},"content":{"rendered":"\n<div><p>Discord is where communities live. Gaming guilds, developer hangouts, study groups, NFT projects. If your community is on Discord, your AI agent should be too.<\/p><p>Unlike Telegram (simple bot setup) or WhatsApp (complicated approval process), Discord sits in the middle: <strong>powerful bot features but requires understanding permissions and intents<\/strong>. This guide walks you through creating a Discord bot from scratch, connecting it to OpenClaw, and avoiding the #1 mistake that breaks 80% of new bots \u2014 forgetting to enable gateway intents.<\/p><h2 id=\"why-different\">Why Discord Bots Are Different<\/h2><p>Discord&#8217;s approach: bots are first-class citizens. Discord <em>wants<\/em> bots \u2014 excellent docs, generous rate limits, rich features. The catch is complexity. Every Discord bot needs:<\/p><ul><li><span>\u25cf<\/span>Application \u2014 registered in Discord Developer Portal<\/li><li><span>\u25cf<\/span>Bot user \u2014 the actual bot account<\/li><li><span>\u25cf<\/span>OAuth2 scopes \u2014 what the bot can access<\/li><li><span>\u25cf<\/span>Permissions \u2014 what the bot can do<\/li><li><span>\u25cf<\/span>Gateway intents \u2014 which events the bot receives<\/li><\/ul><p>Miss one and the bot either doesn&#8217;t work or has bizarre partial functionality. Let&#8217;s set it up correctly from the start.<\/p><h2 id=\"create-app\">Step 1: Create Discord Application<\/h2><p>Go to <code>discord.com\/developers\/applications<\/code> and log in. Click <strong>New Application<\/strong>, name it &#8220;OpenClaw Bot&#8221;, accept the ToS, and click Create. You now have a Discord Application \u2014 the container for your bot. Copy the <strong>Application ID<\/strong> from the General Information tab; you&#8217;ll need it later.<\/p><h2 id=\"bot-user\">Step 2: Create Bot User &amp; Token<\/h2><ol><li><span>1.<\/span>Click Bot in the left sidebar<\/li><li><span>2.<\/span>Click Add Bot, then confirm<\/li><li><span>3.<\/span>Under Token, click Reset Token, then Copy immediately<\/li><li><span>4.<\/span>Save it somewhere secure \u2014 you can&#8217;t view it again, only reset<\/li><\/ol><div><span>? Tip:<\/span>The bot token is like a password. Never commit it to git. Use environment variables.<\/div><h3>Bot Settings<\/h3><ul><li><span>\u25cf<\/span>Public Bot \u2014 uncheck unless you want anyone to add it<\/li><li><span>\u25cf<\/span>Require OAuth2 Code Grant \u2014 leave unchecked<\/li><\/ul><h2 id=\"intents\">Step 2.5: Privileged Gateway Intents (CRITICAL)<\/h2><p>This is where 80% of new bot devs fail. Still in the Bot tab, scroll to <strong>Privileged Gateway Intents<\/strong> and enable:<\/p><ul><li><span>\u25cf<\/span>Presence Intent \u2014 see when users go online\/offline<\/li><li><span>\u25cf<\/span>Server Members Intent \u2014 see member join\/leave events<\/li><li><span>\u25cf<\/span>Message Content Intent \u2014 read message content<\/li><\/ul><p>Without Message Content Intent, your bot can see that messages exist but <strong>can&#8217;t read what they say<\/strong>. It&#8217;s like having eyes but no brain. Discord made this privileged for privacy reasons, but OpenClaw needs it. Click <strong>Save Changes<\/strong> at the bottom.<\/p><h2 id=\"oauth\">Step 3: OAuth2 Scopes &amp; Permissions<\/h2><p>Click <strong>OAuth2 \u2192 URL Generator<\/strong>. Under SCOPES, check:<\/p><ul><li><span>\u25cf<\/span>bot \u2014 your application has a bot user<\/li><li><span>\u25cf<\/span>applications.commands \u2014 bot can create slash commands<\/li><\/ul><h3>Minimal Bot Permissions<\/h3><ul><li><span>\u25cf<\/span>Read Messages \/ View Channels<\/li><li><span>\u25cf<\/span>Send Messages<\/li><li><span>\u25cf<\/span>Embed Links<\/li><li><span>\u25cf<\/span>Attach Files<\/li><li><span>\u25cf<\/span>Read Message History<\/li><li><span>\u25cf<\/span>Add Reactions<\/li><\/ul><h3>Additional Permissions for Moderation<\/h3><ul><li><span>\u25cf<\/span>Manage Messages \u2014 delete spam<\/li><li><span>\u25cf<\/span>Kick Members<\/li><li><span>\u25cf<\/span>Ban Members<\/li><li><span>\u25cf<\/span>Manage Roles<\/li><\/ul><div><span>? Tip:<\/span>Don&#8217;t go overboard. Only request permissions you actually need \u2014 users see the full list when adding the bot.<\/div><p>At the bottom, copy the generated invite URL. It looks like:<\/p><div><pre>https:\/\/discord.com\/api\/oauth2\/authorize?client_id=APP_ID&amp;permissions=274878024768&amp;scope=bot%20applications.commands<\/pre><\/div><h2 id=\"invite\">Step 4: Add Bot to Your Server<\/h2><ol><li><span>1.<\/span>Paste the OAuth2 URL into your browser<\/li><li><span>2.<\/span>Select which server (you need Manage Server permission)<\/li><li><span>3.<\/span>Review permissions, click Authorize, complete CAPTCHA<\/li><\/ol><p>The bot appears in your member list with a &#8220;BOT&#8221; tag (offline until you start the code).<\/p><h2 id=\"configure\">Step 5: Configure OpenClaw for Discord<\/h2><p>In your <code>.env<\/code> file:<\/p><div><pre>DISCORD_ENABLED=true\nDISCORD_BOT_TOKEN=your-bot-token-here\nDISCORD_APPLICATION_ID=123456789012345678<\/pre><\/div><h3>Create the Discord Adapter<\/h3><div><pre>\/\/ adapters\/discord.js\nconst { Client, GatewayIntentBits, Partials } = require('discord.js');\n\nclass DiscordAdapter {\n  constructor(config) { this.config = config; this.client = null; }\n\n  async initialize() {\n    this.client = new Client({\n      intents: [\n        GatewayIntentBits.Guilds,\n        GatewayIntentBits.GuildMessages,\n        GatewayIntentBits.MessageContent,\n        GatewayIntentBits.GuildMembers,\n      ],\n      partials: [Partials.Channel, Partials.Message],\n    });\n\n    this.client.on('ready', () =&gt; {\n      console.log(`[Discord] Logged in as ${this.client.user.tag}`);\n    });\n\n    this.client.on('messageCreate', async (msg) =&gt; await this.handleMessage(msg));\n    this.client.on('interactionCreate', async (i) =&gt; await this.handleInteraction(i));\n\n    await this.client.login(this.config.token);\n  }\n\n  async handleMessage(message) {\n    if (message.author.bot) return;\n    const isMentioned = message.mentions.has(this.client.user);\n    const isDM = message.channel.type === 'DM';\n    if (!isMentioned &amp;&amp; !isDM) return;\n    const text = message.content.replace(`&lt;@${this.client.user.id}&gt;`, '').trim();\n    const response = await this.processWithOpenClaw(message.author.id, text);\n    await message.reply(response);\n  }\n\n  async handleInteraction(interaction) {\n    if (!interaction.isChatInputCommand()) return;\n    await interaction.deferReply();\n    const response = await this.processSlashCommand(interaction);\n    await interaction.editReply(response);\n  }\n}\n\nmodule.exports = DiscordAdapter;<\/pre><\/div><p>Install discord.js: <code>npm install discord.js<\/code>. Then enable the channel in <code>config\/channels.yml<\/code>:<\/p><div><pre>channels:\n  discord:\n    enabled: true\n    adapter: adapters\/discord.js\n    token: ${DISCORD_BOT_TOKEN}\n    application_id: ${DISCORD_APPLICATION_ID}\n    respond_to_mentions: true\n    respond_to_dms: true\n    rate_limit:\n      messages_per_second: 1<\/pre><\/div><h2 id=\"test\">Step 6: Test Your Bot<\/h2><p>Run <code>npm start<\/code>. You should see <code>[Discord] Logged in as OpenClaw Bot#1234<\/code> and the bot will switch to Online (green) in your server. Mention it in any channel \u2014 <code>@OpenClaw Bot what's 2+2?<\/code> \u2014 or send a DM. If it doesn&#8217;t reply, check that the bot is online, that OpenClaw logs show the message arriving, and that Message Content Intent is enabled.<\/p><h2 id=\"slash\">Step 7: Register Slash Commands<\/h2><p>Slash commands are Discord&#8217;s modern command interface \u2014 they appear when users type <code>\/<\/code>. Create <code>scripts\/register-discord-commands.js<\/code>:<\/p><div><pre>const { REST, Routes } = require('discord.js');\nrequire('dotenv').config();\n\nconst commands = [\n  {\n    name: 'ask',\n    description: 'Ask OpenClaw a question',\n    options: [{ name: 'question', description: 'Your question', type: 3, required: true }],\n  },\n  { name: 'help', description: 'Show available commands' },\n  { name: 'skills', description: 'List available skills' },\n];\n\nconst rest = new REST({ version: '10' }).setToken(process.env.DISCORD_BOT_TOKEN);\n\n(async () =&gt; {\n  await rest.put(\n    Routes.applicationCommands(process.env.DISCORD_APPLICATION_ID),\n    { body: commands }\n  );\n  console.log('Successfully registered slash commands!');\n})();<\/pre><\/div><p>Run <code>node scripts\/register-discord-commands.js<\/code>. Global commands take up to 1 hour to appear; for instant testing, register against a single guild using <code>Routes.applicationGuildCommands(APP_ID, GUILD_ID)<\/code> instead.<\/p><h2 id=\"intents-explained\">Gateway Intents: What They Actually Mean<\/h2><ul><li><span>\u25cf<\/span>Guilds (always on) \u2014 required for the bot to work at all<\/li><li><span>\u25cf<\/span>Guild Members (privileged) \u2014 see members join\/leave; required for welcome messages and role assignment<\/li><li><span>\u25cf<\/span>Guild Messages \u2014 know that messages were sent (but not their content)<\/li><li><span>\u25cf<\/span>Message Content (privileged) \u2014 actually read message text; the one most people forget<\/li><li><span>\u25cf<\/span>Guild Presences (privileged) \u2014 see online\/offline\/idle status<\/li><\/ul><h2 id=\"perms-vs-intents\">Permissions vs Intents (Common Confusion)<\/h2><p><strong>Permissions:<\/strong> what the bot <em>can do<\/em> in a server (send messages, ban members). <strong>Intents:<\/strong> what events the bot <em>receives<\/em> from Discord (messages, joins). A moderation bot needs the &#8220;Ban Members&#8221; permission AND the &#8220;Guild Members&#8221; intent. Missing either and the bot won&#8217;t work as expected.<\/p><h2 id=\"common-issues\">Common Discord Bot Issues (And Fixes)<\/h2><h3>Bot doesn&#8217;t respond to messages<\/h3><ul><li><span>\u25cf<\/span>Cause 1: Message Content Intent disabled \u2014 re-enable in Developer Portal \u2192 Bot<\/li><li><span>\u25cf<\/span>Cause 2: Bot wasn&#8217;t mentioned and isn&#8217;t in a DM \u2014 adjust the trigger logic<\/li><\/ul><h3>Slash commands don&#8217;t appear<\/h3><p>Re-run the registration script. Wait up to 1 hour for global commands, or use guild-scoped commands for instant updates.<\/p><h3>Bot goes offline randomly<\/h3><div><pre>client.on('error', err =&gt; console.error('[Discord] Client error:', err));\nprocess.on('unhandledRejection', err =&gt; console.error('[Discord] Unhandled:', err));\n\n\/\/ Auto-restart with PM2\npm2 start npm --name \"openclaw\" -- start<\/pre><\/div><h3>Rate limit errors<\/h3><p>Discord allows ~5 requests per 5 seconds per channel. Add a per-channel rate limiter and queue bursts.<\/p><h2 id=\"moderation\">Community Moderation Starter Persona<\/h2><p>OpenClaw can act as a community moderator. A starter <code>config\/discord-moderation.yml<\/code>:<\/p><div><pre>moderation:\n  enabled: true\n  rules:\n    spam_detection:\n      enabled: true\n      max_messages_per_minute: 10\n      action: timeout\n      duration: 300\n    forbidden_words:\n      enabled: true\n      words: [word1, word2]\n      action: delete_and_warn\n    excessive_caps:\n      enabled: true\n      threshold: 0.7\n      action: warn\n    link_spam:\n      enabled: true\n      max_links_per_message: 3\n      action: delete_and_timeout\n  warnings:\n    strike_limit: 3\n    actions: { 1: warn_dm, 2: timeout_30min, 3: kick, 4: ban }\n  exempt_roles: [Moderator, Admin]\n  log_channel: mod-logs<\/pre><\/div><p>Pair it with a moderator persona (firm but fair, transparent, never power-trippy) and OpenClaw will auto-delete spam, warn users, escalate to timeout\/kick\/ban, welcome new members, and log every action to a mod-logs channel.<\/p><h2 id=\"advanced\">Advanced Features<\/h2><h3>Embeds (Rich Messages)<\/h3><div><pre>const { EmbedBuilder } = require('discord.js');\nconst embed = new EmbedBuilder()\n  .setColor('#FF8C2A')\n  .setTitle('OpenClaw Response')\n  .setDescription(\"Here's what I found:\")\n  .addFields(\n    { name: 'Item 1', value: 'Description' },\n    { name: 'Item 2', value: 'Description' },\n  )\n  .setTimestamp();\nawait message.reply({ embeds:  });<\/pre><\/div><h3>Buttons (Interactive UI)<\/h3><div><pre>const { ButtonBuilder, ActionRowBuilder, ButtonStyle } = require('discord.js');\nconst button = new ButtonBuilder()\n  .setCustomId('confirm')\n  .setLabel('Confirm')\n  .setStyle(ButtonStyle.Primary);\nconst row = new ActionRowBuilder().addComponents(button);\nawait message.reply({ content: 'Confirm this action?', components: [row] });<\/pre><\/div><h3>Voice Channel Integration<\/h3><p>Install <code>@discordjs\/voice<\/code> for voice command bots, music bots, or audio announcements.<\/p><h2 id=\"paio-alt\">The PaioClaw Alternative<\/h2><p>Self-hosted Discord setup runs ~30-45 minutes if everything goes smoothly, with ongoing maintenance for discord.js updates, command re-registration, rate limit tuning, and moderation rules. PaioClaw&#8217;s Discord integration is a 2-minute path: paste your bot token, pick a permissions template (basic or moderation), deploy. Pre-configured intents, slash commands auto-registered, moderation templates, multi-server support. Starts free, $4\/month for paid plans.<\/p><p><strong>DIY when:<\/strong> you need custom Discord-specific features, you&#8217;re building a Discord-focused product, or learning the API is the goal. <strong>Use PaioClaw when:<\/strong> you want Discord plus other channels (Slack, Telegram, WhatsApp), you don&#8217;t want to debug intents, or you need moderation features that just work.<\/p><h2 id=\"bottom-line\">The Bottom Line<\/h2><p>Discord bot setup is more complex than Telegram but more structured than WhatsApp. The Developer Portal has a lot of options, but they&#8217;re all documented and logical. The critical thing: <strong>enable Message Content Intent<\/strong>. 80% of &#8220;my bot doesn&#8217;t work&#8221; issues trace back to this single checkbox.<\/p><p>Whether you self-host or use PaioClaw depends on whether you want to become a Discord API expert or just want your agent on Discord.<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>PaioClaw gives you a private, always-on AI assistant powered by your own API keys. No Docker, no command line \u2014 sign up and it&#8217;s ready in 60 seconds.<\/p>\n","protected":false},"author":0,"featured_media":162,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-161","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-how-to"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to Set Up OpenClaw on Discord (Bot Setup, Permissions, Slash Commands) - PaioClaw<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/paioclaw.ai\/blog\/openclaw-discord-setup\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Set Up OpenClaw on Discord (Bot Setup, Permissions, Slash Commands) - PaioClaw\" \/>\n<meta property=\"og:description\" content=\"PaioClaw gives you a private, always-on AI assistant powered by your own API keys. No Docker, no command line \u2014 sign up and it&#039;s ready in 60 seconds.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/paioclaw.ai\/blog\/openclaw-discord-setup\/\" \/>\n<meta property=\"og:site_name\" content=\"PaioClaw\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/paioclaw\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-06T00:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/paioclaw.ai\/blog\/wp-content\/uploads\/2026\/05\/openclaw-discord-setup.png\" \/>\n\t<meta property=\"og:image:width\" content=\"852\" \/>\n\t<meta property=\"og:image:height\" content=\"341\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@PaioClaw\" \/>\n<meta name=\"twitter:site\" content=\"@PaioClaw\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/openclaw-discord-setup\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/openclaw-discord-setup\\\/\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"How to Set Up OpenClaw on Discord (Bot Setup, Permissions, Slash Commands)\",\"datePublished\":\"2026-05-06T00:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/openclaw-discord-setup\\\/\"},\"wordCount\":1075,\"publisher\":{\"@id\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/openclaw-discord-setup\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/openclaw-discord-setup.png\",\"articleSection\":[\"How to\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/openclaw-discord-setup\\\/\",\"url\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/openclaw-discord-setup\\\/\",\"name\":\"How to Set Up OpenClaw on Discord (Bot Setup, Permissions, Slash Commands) - PaioClaw\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/openclaw-discord-setup\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/openclaw-discord-setup\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/openclaw-discord-setup.png\",\"datePublished\":\"2026-05-06T00:00:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/openclaw-discord-setup\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/openclaw-discord-setup\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/openclaw-discord-setup\\\/#primaryimage\",\"url\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/openclaw-discord-setup.png\",\"contentUrl\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/openclaw-discord-setup.png\",\"width\":852,\"height\":341},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/openclaw-discord-setup\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Set Up OpenClaw on Discord (Bot Setup, Permissions, Slash Commands)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/\",\"name\":\"PAIO Blog \u2014 Guides, tips, and updates\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/#organization\",\"name\":\"PAIO\",\"url\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/local.paioclawblog.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/paioclaw_logo.webp\",\"contentUrl\":\"https:\\\/\\\/local.paioclawblog.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/paioclaw_logo.webp\",\"width\":128,\"height\":128,\"caption\":\"PAIO\"},\"image\":{\"@id\":\"https:\\\/\\\/paioclaw.ai\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/paioclaw\\\/\",\"https:\\\/\\\/x.com\\\/PaioClaw\",\"https:\\\/\\\/www.instagram.com\\\/paioclaw\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/paioclaw\",\"https:\\\/\\\/www.youtube.com\\\/@PaioClaw\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Set Up OpenClaw on Discord (Bot Setup, Permissions, Slash Commands) - PaioClaw","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/paioclaw.ai\/blog\/openclaw-discord-setup\/","og_locale":"en_US","og_type":"article","og_title":"How to Set Up OpenClaw on Discord (Bot Setup, Permissions, Slash Commands) - PaioClaw","og_description":"PaioClaw gives you a private, always-on AI assistant powered by your own API keys. No Docker, no command line \u2014 sign up and it's ready in 60 seconds.","og_url":"https:\/\/paioclaw.ai\/blog\/openclaw-discord-setup\/","og_site_name":"PaioClaw","article_publisher":"https:\/\/www.facebook.com\/paioclaw\/","article_published_time":"2026-05-06T00:00:00+00:00","og_image":[{"width":852,"height":341,"url":"https:\/\/paioclaw.ai\/blog\/wp-content\/uploads\/2026\/05\/openclaw-discord-setup.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_creator":"@PaioClaw","twitter_site":"@PaioClaw","twitter_misc":{"Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/paioclaw.ai\/blog\/openclaw-discord-setup\/#article","isPartOf":{"@id":"https:\/\/paioclaw.ai\/blog\/openclaw-discord-setup\/"},"author":{"name":"","@id":""},"headline":"How to Set Up OpenClaw on Discord (Bot Setup, Permissions, Slash Commands)","datePublished":"2026-05-06T00:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/paioclaw.ai\/blog\/openclaw-discord-setup\/"},"wordCount":1075,"publisher":{"@id":"https:\/\/paioclaw.ai\/blog\/#organization"},"image":{"@id":"https:\/\/paioclaw.ai\/blog\/openclaw-discord-setup\/#primaryimage"},"thumbnailUrl":"https:\/\/paioclaw.ai\/blog\/wp-content\/uploads\/2026\/05\/openclaw-discord-setup.png","articleSection":["How to"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/paioclaw.ai\/blog\/openclaw-discord-setup\/","url":"https:\/\/paioclaw.ai\/blog\/openclaw-discord-setup\/","name":"How to Set Up OpenClaw on Discord (Bot Setup, Permissions, Slash Commands) - PaioClaw","isPartOf":{"@id":"https:\/\/paioclaw.ai\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/paioclaw.ai\/blog\/openclaw-discord-setup\/#primaryimage"},"image":{"@id":"https:\/\/paioclaw.ai\/blog\/openclaw-discord-setup\/#primaryimage"},"thumbnailUrl":"https:\/\/paioclaw.ai\/blog\/wp-content\/uploads\/2026\/05\/openclaw-discord-setup.png","datePublished":"2026-05-06T00:00:00+00:00","breadcrumb":{"@id":"https:\/\/paioclaw.ai\/blog\/openclaw-discord-setup\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/paioclaw.ai\/blog\/openclaw-discord-setup\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/paioclaw.ai\/blog\/openclaw-discord-setup\/#primaryimage","url":"https:\/\/paioclaw.ai\/blog\/wp-content\/uploads\/2026\/05\/openclaw-discord-setup.png","contentUrl":"https:\/\/paioclaw.ai\/blog\/wp-content\/uploads\/2026\/05\/openclaw-discord-setup.png","width":852,"height":341},{"@type":"BreadcrumbList","@id":"https:\/\/paioclaw.ai\/blog\/openclaw-discord-setup\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/paioclaw.ai\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Set Up OpenClaw on Discord (Bot Setup, Permissions, Slash Commands)"}]},{"@type":"WebSite","@id":"https:\/\/paioclaw.ai\/blog\/#website","url":"https:\/\/paioclaw.ai\/blog\/","name":"PAIO Blog \u2014 Guides, tips, and updates","description":"","publisher":{"@id":"https:\/\/paioclaw.ai\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/paioclaw.ai\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/paioclaw.ai\/blog\/#organization","name":"PAIO","url":"https:\/\/paioclaw.ai\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/paioclaw.ai\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/local.paioclawblog.com\/wp-content\/uploads\/2026\/05\/paioclaw_logo.webp","contentUrl":"https:\/\/local.paioclawblog.com\/wp-content\/uploads\/2026\/05\/paioclaw_logo.webp","width":128,"height":128,"caption":"PAIO"},"image":{"@id":"https:\/\/paioclaw.ai\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/paioclaw\/","https:\/\/x.com\/PaioClaw","https:\/\/www.instagram.com\/paioclaw\/","https:\/\/www.linkedin.com\/company\/paioclaw","https:\/\/www.youtube.com\/@PaioClaw"]}]}},"_links":{"self":[{"href":"https:\/\/paioclaw.ai\/blog\/wp-json\/wp\/v2\/posts\/161","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/paioclaw.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/paioclaw.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/paioclaw.ai\/blog\/wp-json\/wp\/v2\/comments?post=161"}],"version-history":[{"count":0,"href":"https:\/\/paioclaw.ai\/blog\/wp-json\/wp\/v2\/posts\/161\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/paioclaw.ai\/blog\/wp-json\/wp\/v2\/media\/162"}],"wp:attachment":[{"href":"https:\/\/paioclaw.ai\/blog\/wp-json\/wp\/v2\/media?parent=161"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/paioclaw.ai\/blog\/wp-json\/wp\/v2\/categories?post=161"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/paioclaw.ai\/blog\/wp-json\/wp\/v2\/tags?post=161"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}