Saltar al contenido principal

Notificaciones de Claude Code por Discord

silsbot (el bot de Discord de la empresa) puede avisarte por DM cuando Claude Code termina una tarea, o cuando necesita que hagas algo (por ejemplo autorizar una tool). Para eso hay que suscribirse una vez y agregar unos hooks a la configuración de Claude Code.

Suscribirse​

En cualquier canal del servidor de Discord de la empresa, ejecutá:

/subscribe

El bot te va a responder por DM con:

  • Tu token personal (es secreto, no lo compartas: cualquiera con ese token le puede mandar mensajes a tu usuario a través del bot).
  • Las dos formas de instalar el hook (ver más abajo).
No recibiste el DM

Si tenés los mensajes directos del servidor deshabilitados, el bot no te va a poder escribir y /subscribe va a fallar. Habilitalos (Configuración del servidor → Privacidad) y volvé a correr el comando.

Instalar los hooks​

Claude Code ejecuta hooks configurados en un archivo settings.json. Hay dos niveles posibles:

  • Global (~/.claude/settings.json): el hook se dispara en todos tus proyectos.
  • Por proyecto (<repo>/.claude/settings.json o <repo>/.claude/settings.local.json): el hook solo se dispara cuando trabajás en ese repo puntual. settings.local.json no se versiona (pensado para configuración personal), mientras que settings.json sí se commitea y aplica a todo el equipo que trabaje en ese repo.

Opción A — script automático (solo config global)​

Con el token que te llegó por DM, corré el script install-notify-hook.sh del repo silsbot:

./install-notify-hook.sh <TU_TOKEN> https://bot.sils.tech/notify

Esto agrega los hooks Stop y Notification a tu ~/.claude/settings.json (config global), sin que tengas que editar el JSON a mano. Correrlo de nuevo con un token distinto (por ejemplo después de un /unsubscribe + /subscribe) reemplaza el hook viejo en vez de duplicarlo.

Opción B — edición manual (global o por proyecto)​

Agregá este bloque al settings.json que corresponda según el nivel que quieras (global o de proyecto, ver arriba):

{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "curl -s -X POST https://bot.sils.tech/notify -H 'Content-Type: application/json' -d '{\"token\":\"<TU_TOKEN>\",\"message\":\"Claude terminó una tarea\"}'"
}
]
}
],
"Notification": [
{
"matcher": "permission_prompt|agent_needs_input",
"hooks": [
{
"type": "command",
"command": "curl -s -X POST https://bot.sils.tech/notify -H 'Content-Type: application/json' -d '{\"token\":\"<TU_TOKEN>\",\"message\":\"Claude necesita que hagas algo\"}'"
}
]
}
]
}
}

Si el archivo ya tiene otros hooks configurados, agregá estas entradas dentro de los arrays hooks.Stop y hooks.Notification en vez de reemplazar el archivo entero.

El hook Stop se dispara cada vez que Claude Code termina de responder. El hook Notification, filtrado con ese matcher, se dispara cuando Claude necesita que autorices una tool (permission_prompt) o cuando está esperando que le respondas (agent_needs_input). En ambos casos vas a recibir un DM por cada evento que ocurra en ese proyecto (o en todos, si lo pusiste en la config global).

Desuscribirse​

/unsubscribe

Esto revoca todos tus tokens activos: cualquier hook que siga usando alguno de esos tokens va a empezar a fallar (recibe un 404 del bot).

tip

/unsubscribe solo revoca el token del lado del bot. No borra la entrada del hook de tu settings.json — si más adelante volvés a suscribirte vas a tener que reemplazar el token viejo por el nuevo (con la Opción A o B de arriba).