Si ya tienes OpenClaw funcionando y querés llevar tu asistente de IA a donde ya está tu equipo o comunidad, Discord es una de las integraciones más naturales. En este tutorial te mostramos paso a paso cómo conectar Discord como canal en OpenClaw para que tu agente responda directamente en canales de texto y por mensajes directos (DMs).
Requisitos previos
- OpenClaw instalado y corriendo en tu servidor
- Una cuenta de Discord
- Un servidor de Discord donde seas administrador
Paso 1 — Crear la aplicación y el bot
Andá al Discord Developer Portal y hacé click en New Application. Ponele el nombre que quieras (por ejemplo, "OpenClaw" o "MiBot"). Después, en el sidebar izquierdo, hacé click en Bot y configurá el username — este es el nombre que va a aparecer en Discord.
Paso 2 — Habilitar los Privileged Gateway Intents
Seguí en la página Bot, bajá hasta Privileged Gateway Intents y activá estos tres toggles:
- Message Content Intent (obligatorio) — sin esto, el bot NO puede leer el contenido de los mensajes
- Server Members Intent (recomendado) — para resolución de nombres y allowlists por rol
- Presence Intent (opcional) — solo si querés que el bot muestre estado de presencia
Paso 3 — Copiar el Bot Token
Volvé arriba en la página Bot y hacé click en Reset Token. No te asustes por el nombre — la primera vez simplemente genera el token, no está reseteando nada.
Copiá el token y guardalo en un lugar seguro. Es como una contraseña: nunca lo compartas públicamente.
Paso 4 — Invitar el bot al servidor
En el sidebar, andá a OAuth2 y bajá a OAuth2 URL Generator. Habilitá estos scopes:
botapplications.commands
Aparece una sección Bot Permissions. Habilitá como mínimo:
- General: View Channels
- Text: Send Messages, Read Message History, Embed Links, Attach Files
Copiá la URL generada abajo, pegala en el navegador, seleccioná tu servidor y hacé click en Continue. El bot debería aparecer en la lista de miembros.
Paso 5 — Obtener los IDs de Discord
Para la configuración de OpenClaw necesitás dos IDs internos. Primero, activá el modo developer:
- En Discord: User Settings (engranaje) → Advanced → activá Developer Mode
- Click derecho en el icono de tu servidor → Copy Server ID
- Click derecho en tu propio avatar → Copy User ID
Guardá ambos IDs — los vas a necesitar en el siguiente paso.
Paso 6 — Habilitar DMs desde miembros del servidor
Para que el bot pueda enviarte mensajes directos:
- Click derecho en el icono de tu servidor → Privacy Settings
- Activá Direct Messages
Esto permite que miembros del servidor (incluidos bots) te manden DMs. Después del pairing inicial puedes desactivarlo si solo vas a usar canales del servidor.
Paso 7 — Configurar el token de forma segura
El token del bot es un secreto. La forma correcta de configurarlo es como variable de entorno, no en texto plano en el JSON:
# Agregar el token al archivo .env de OpenClaw
echo 'DISCORD_BOT_TOKEN=<TU_TOKEN>' >> ~/.openclaw/.envopenclaw.json. Si el archivo se sube a un repo o se comparte, tu bot queda expuesto. La variable de entorno es la forma segura.Paso 8 — Configurar el canal en openclaw.json
Editá ~/.openclaw/openclaw.json y agregá la sección channels.discord:
{
"channels": {
"discord": {
"enabled": true,
"token": {
"source": "env",
"provider": "default",
"id": "DISCORD_BOT_TOKEN"
},
"guilds": {
"<TU_SERVER_ID>": {
"requireMention": false,
"users": ["<TU_USER_ID>"]
}
},
"dmPolicy": "pairing",
"allowFrom": ["<TU_USER_ID>"]
}
}
}Reemplazá <TU_SERVER_ID> y <TU_USER_ID> con los IDs del Paso 5.
Algunas notas sobre la configuración:
requireMention: false— el bot responde a todos los mensajes sin necesidad de @. Si es un servidor compartido, cambialo atruedmPolicy: "pairing"— los DMs requieren emparejamiento (seguro por defecto)allowFrom— tu User ID se salta el pairing y tiene acceso directo
Antes de continuar, validá la config:
openclaw config validateSi ves Config valid, todo bien. Si hay errores, openclaw doctor te dice exactamente qué campo falla.
Paso 9 — Instalar el plugin de Discord
Discord no viene incluido en OpenClaw por defecto — es un plugin externo:
openclaw plugins install @openclaw/discordopenclaw --version y openclaw gateway status. El plugin debe instalarse con la misma versión que el gateway.Paso 10 — Reiniciar y verificar
# Reiniciar el gateway
openclaw gateway restart
# Verificar que Discord esté conectado
openclaw statusDeberías ver algo como:
│ Discord │ ON │ OK │ ...Paso 11 — Probar la conexión
Andá a Discord y mandale un mensaje directo al bot (click en su nombre en la lista de miembros → "Mensaje"). Si configuraste allowFrom con tu User ID, el bot te va a responder directamente.
Si usas dmPolicy: "pairing" sin allowFrom, el bot te da un código de emparejamiento. Aprobalo con:
openclaw pairing approve discord <CODIGO>Resumen de la configuración
| Campo | Valor | Qué hace |
|---|---|---|
token.source: "env" |
Variable de entorno | El token se lee de DISCORD_BOT_TOKEN, no queda en texto plano |
requireMention |
false |
El bot responde sin necesidad de @ |
guilds.{id}.users |
["user_id"] |
Solo este usuario puede interactuar en canales |
dmPolicy |
"pairing" |
Los DMs requieren emparejamiento |
allowFrom |
["user_id"] |
Este usuario se salta el pairing |
Troubleshooting
| Problema | Solución |
|---|---|
Config invalid: must NOT have additional properties |
Verificá que el guild use users (array de IDs), no allow u otras keys |
plugin not installed |
Ejecutá openclaw plugins install @openclaw/discord |
| Version mismatch entre CLI y gateway | Verificá con which openclaw y openclaw --version |
| Bot no responde en canales | Verificá que requireMention esté en false |
| Bot no responde a DMs | Verificá que allowFrom tenga tu User ID o aprobá el pairing |
Siguiente paso
Con Discord conectado, tu agente de OpenClaw puede responder en tiempo real en los canales de tu servidor. Si también querés conectar Telegram, consultá nuestro tutorial "Cómo conectar Telegram como canal en OpenClaw". Y si necesitás que el agente tenga acceso a herramientas HTTPS dentro del sandbox, tenemos otra guía sobre cómo construir una imagen Docker personalizada para el sandbox.