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).
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.jsono<repo>/.claude/settings.local.json): el hook solo se dispara cuando trabajás en ese repo puntual.settings.local.jsonno se versiona (pensado para configuración personal), mientras quesettings.jsonsí 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).
/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).