Discord Setup
Deploy Mona as a Discord bot for your server or DMs.
Prerequisites
- A working MonoClaw installation
- A Discord account
- A Discord application with bot token
1. Create a Discord application
- Go to discord.com/developers/applications
- Click New Application and name it
- Go to the Bot tab
- Click Reset Token and copy the token
- Enable these intents:
- MESSAGE CONTENT INTENT — Required to read messages
- SERVER MEMBERS INTENT — For user allowlists
- PRESENCE INTENT — Optional, for status features
2. Invite the bot
- Go to OAuth2 → URL Generator
- Select scopes:
botapplications.commands
- Select permissions:
- Send Messages
- Read Messages/View Channels
- Embed Links
- Attach Files
- Read Message History
- Use Slash Commands
- Connect (for voice)
- Speak (for voice)
- Copy the generated URL and open it in your browser
- Select your server and authorize
3. Configure MonoClaw
monoclaw gateway setup
Choose Discord and paste your bot token.
Or manually:
monoclaw config set DISCORD_BOT_TOKEN "your-token"
4. Start the gateway
monoclaw gateway start
Interaction modes
DMs
Message the bot directly for private conversations.
Text channels
Mention the bot or reply to her messages:
@Mona summarize the last 10 messages
Slash commands
Use Discord slash commands:
/model
/help
/voice join
Voice channels
Mona can join voice channels for voice conversations:
/voice join
See the Voice Mode guide for details.
Configuration
# ~/.monoclaw/config.yaml
gateway:
discord:
home_channel: "general" # Default response channel
dm_only: false # Allow server messages
require_mention: true # Require @mention in servers
voice:
enabled: true
auto_join: false
Security
gateway:
discord:
allowlist:
- "discord-user-id-1"
- "discord-user-id-2"
admins:
- "discord-admin-id"
Troubleshooting
| Problem | Fix |
|---|---|
| Bot offline | Check monoclaw gateway status |
| Bot doesn't respond to messages | Enable MESSAGE CONTENT INTENT in Discord Developer Portal |
| Slash commands missing | Re-invite bot with applications.commands scope |
| Voice not working | Ensure bot has Connect and Speak permissions |