Skip to main content

Discord

Setup​

1. Create a Bot​

2. Enable Intents​

  • In Bot settings, enable MESSAGE CONTENT INTENT

3. Get Your User ID​

  • Discord Settings → Advanced → enable Developer Mode
  • Right-click your avatar → Copy User ID

4. Configure​

{
"channels": {
"discord": {
"enabled": true,
"token": "YOUR_BOT_TOKEN",
"allow_from": ["YOUR_USER_ID"],
"group_trigger": {
"mention_only": false
}
}
}
}
FieldTypeDescription
enabledboolEnable/disable the channel
tokenstringBot token from Discord Developer Portal
proxystringHTTP/SOCKS proxy URL (optional)
allow_fromarrayList of allowed user IDs (empty = allow all)
group_triggerobjectGroup chat trigger settings (see below)
reasoning_channel_idstringRoute reasoning output to a separate channel

5. Invite the Bot​

  • OAuth2 → URL Generator
  • Scopes: bot
  • Bot Permissions: Send Messages, Read Message History
  • Open the generated invite URL and add the bot to your server

6. Run​

picoclaw gateway

Group Trigger​

Control how the bot responds in server channels (does not affect DMs — the bot always responds in DMs):

{
"group_trigger": {
"mention_only": true,
"prefixes": ["/ask", "!bot"]
}
}
FieldTypeDescription
mention_onlyboolOnly respond when @-mentioned in groups
prefixesarrayKeyword prefixes that trigger the bot in groups
Migration

The old top-level "mention_only": true field is automatically migrated to "group_trigger": {"mention_only": true}.

Voice Channel​

PicoClaw can join Discord voice channels and participate in voice conversations:

  • Join a voice channel yourself, then type !vc join in a text channel to make the bot join
  • Leave the voice channel with !vc leave
  • Voice input is transcribed using the configured ASR model and sent to the agent
  • The agent's response is converted to audio via TTS and played back in the voice channel

Voice requires voice.tts_model_name to be configured in config.json. See Model Configuration for details.

Media Support​

Discord audio attachments are automatically transcribed if an ASR model is configured. Other attachments (images, files) are downloaded and included as context.