Skip to main content

Discord Bot Development

Run your own instance of the GAIA Discord bot.
Looking to use GAIA on Discord as a user? See Using GAIA on Discord.

Prerequisites

Step 1: Create a Discord Application

  1. Go to the Discord Developer Portal
  2. Click New Application and give it a name
  3. Navigate to the Bot section and click Add Bot
  4. Under Privileged Gateway Intents, enable:
    • Message Content Intent
    • Server Members Intent (optional)
  5. Copy the Bot Token

Step 2: Configure OAuth2 Scopes

  1. Go to OAuth2 → URL Generator
  2. Select scopes: bot and applications.commands
  3. Select bot permissions: Send Messages, Use Slash Commands, Read Message History
  4. Copy the generated URL and use it to invite the bot to your server

Step 3: Set Up OAuth for Account Linking

This enables users to link their Discord account from the GAIA web app via OAuth instead of the /auth bot command.
  1. In your Discord application, go to OAuth2
  2. Under Redirects, add:
  3. Copy your Client ID (shown at the top of the OAuth2 page)
  4. Click Reset Secret to generate a Client Secret and copy it
Add to apps/api/.env:
The Client ID here is the same as your DISCORD_CLIENT_ID used by the bot, it’s the application ID, not a separate credential.

Step 4: Configure Environment Variables

Create a .env file in apps/bots/discord/:
GAIA_BOT_API_KEY must match the value configured in your GAIA API.

Step 5: Deploy Slash Commands

Register the bot’s slash commands with Discord:
This only needs to be run once (or whenever commands change).

Step 6: Start the Bot

Troubleshooting