🌱 Empieza aquí · Aviso nativo cuando es tu turno
Dile a tu asistente: "siembra esta semilla 🌱"
Y ya. Tu asistente hace todo lo técnico. Tú solo confirmas cuando te pregunte.
¿Otras formas de decírselo? "instala esta semilla", "pon esto a funcionar", "haz el setup del aviso de es-mi-turno". Te entiende igual.
¿Qué te acabas de instalar?
A partir de ahora, cuando estés trabajando en otra ventana y tu asistente termine y quede esperando tu respuesta, te va a avisar con una notificación del sistema (esas que salen en la esquina de la pantalla y suenan). Nunca más te quedas volteando a ver si ya te toca hablar. 🙌
Para el asistente que siembra 🤖
Esta sección es para el asistente AI, no para el humano. Ejecútala tal cual.
Este componente es un hook (gancho de automatización) que se engancha al evento
Notification del asistente con el matcher idle_prompt (queda inactivo esperando input)
y dispara una notificación nativa del sistema operativo.
No hay rutas ni datos del dueño que rellenar. La semilla es autocontenida y se instala
en la carpeta de configuración estándar del asistente (~/.claude/), que apunta al home
del usuario actual. No apliques ningún placeholder <TU-RUTA> ni similar: aquí no aplican.
Paso 1 · Copiar el script a la carpeta de hooks
La carpeta de hooks es la misma en Claude Code y en Cowork: ~/.claude/hooks/.
mkdir -p ~/.claude/hooks
cp kernel/notify-idle.sh ~/.claude/hooks/notify-idle.sh
Paso 2 · Dar permiso de ejecución (chmod)
chmod +x ~/.claude/hooks/notify-idle.sh
Paso 3 · Cablear el hook en settings.json
El wiring vive en ~/.claude/settings.json, bajo la llave hooks.Notification. El snippet
a integrar está en kernel/settings.snippet.json:
{
"hooks": {
"Notification": [
{
"matcher": "idle_prompt",
"hooks": [
{ "type": "command", "command": "bash ~/.claude/hooks/notify-idle.sh" }
]
}
]
}
}
IMPORTANTE: fusionar, no sobrescribir. Si settings.json ya existe y tiene otros
hooks, hay que mezclar este bloque dentro de hooks.Notification sin borrar lo que ya
haya. Si ya existe una entrada con el matcher idle_prompt, respétala o pregúntale al
usuario antes de reemplazarla. Si ~/.claude/settings.json no existe, créalo con
exactamente el contenido del snippet.
Comando de fusión sugerido (crea el archivo si falta y respeta lo existente):
python3 - <<'PY'
import json, os
p = os.path.expanduser("~/.claude/settings.json")
entry = {"matcher": "idle_prompt",
"hooks": [{"type": "command", "command": "bash ~/.claude/hooks/notify-idle.sh"}]}
data = {}
if os.path.exists(p):
with open(p) as f:
data = json.load(f)
existing = data.setdefault("hooks", {}).setdefault("Notification", [])
if entry["matcher"] not in {e.get("matcher") for e in existing}:
existing.append(entry)
with open(p, "w") as f:
json.dump(data, f, indent=2, ensure_ascii=False)
print("settings.json actualizado:", p)
PY
Paso 4 · Verificación post-siembra (obligatoria)
(a) Comprobar que el script corre y sale limpio:
bash ~/.claude/hooks/notify-idle.sh </dev/null; echo "salida: $?"
Salida esperada: aparece una notificación nativa del sistema (o suena la campana de terminal en entornos sin interfaz gráfica) y la última línea imprime exactamente:
salida: 0
(b) Comprobar que el wiring quedó en settings.json:
python3 -c "import json,os; d=json.load(open(os.path.expanduser('~/.claude/settings.json'))); n=d.get('hooks',{}).get('Notification',[]); print('OK' if 'idle_prompt' in {e.get('matcher') for e in n} else 'FALTA')"
Salida esperada:
OK
Si ambos dan verde, la semilla quedó sembrada. Recuérdale al usuario que debe cerrar y reabrir la sesión del asistente para que el hook se cargue (el asistente lee los hooks al iniciar).
Personalización opcional
Si el usuario quiere otro texto o sonido, edita las variables TITULO, MENSAJE y
SONIDO_MAC al inicio de ~/.claude/hooks/notify-idle.sh. No hace falta más.
✅ ¿Cómo sé que funcionó? (para ti, el humano)
- Cierra y vuelve a abrir tu asistente (Claude Code o Cowork).
- Pídele una tarea que le tome unos segundos.
- Cámbiate a otra ventana mientras trabaja.
- En cuanto termine y quede esperándote, te va a saltar una notificación en la esquina de tu pantalla. 🔔
Si la ves, ya quedó. Si no, dile a tu asistente: "revisa que el aviso de es-mi-turno haya quedado bien instalado" y él verifica los dos pasos de arriba por ti.
