Founding Member: $499/mes de por vida
Micare
Trucos técnicos

Apagar el guardián anti-sueño de tu sesión

Script para macOS que, al cerrar tu tanda de trabajo, apaga SOLO el guardián anti-sueño (caffeinate) atado al proceso de ESA sesión, para que el Mac vuelva a poder dormir. Si tienes otras sesiones abiertas con su propio guardián, no las toca: las cuenta y las respeta.

HookPremiumTrucos técnicosgit e infra

🌱 Empieza aquí · Apagar el guardián anti-sueño de tu sesión

Abre esta carpeta con tu asistente (en Claude Code) y dile:

"Siembra esta semilla 🌱"

Eso es todo de tu parte. Tu asistente hace lo técnico; tú solo conversas. Vas a ver algunas palabras en inglés en la pantalla; ni caso, él te guía.

¿Otras formas de decírselo? "instala este apagador", "activa el apagado del guardián anti-sueño", "pon esto a funcionar". Te entiende igual.

Cuando termine, salta a la sección "¿Cómo sé que funcionó?" al final.


¿Qué es y por qué querrías esto? (en cristiano)

Cuando le pones a tu asistente una tarea larga en la Mac (un proceso que tarda minutos u horas), es común usar un pequeño guardián anti-sueño para que la computadora no se duerma a medias y deje la tarea colgada. En macOS ese guardián es el comando caffeinate, y lo normal es atarlo al proceso de tu sesión para que se muera solo cuando termines.

El problema aparece cuando cierras tu trabajo pero la ventana sigue abierta, o cuando tienes varias sesiones a la vez: quieres soltar el candado de tu sesión (que la Mac pueda volver a dormir) sin apagar por error el guardián de las OTRAS sesiones que siguen trabajando.

Esta semilla resuelve justo eso: apaga solo tu guardián, cuenta los que quedan de otras sesiones y los deja en paz. Es un apagado con buenos modales.

Nota honesta: esto es la contraparte "off" de un guardián anti-sueño. Funciona apagando cualquier caffeinate -i -w <PID> atado al proceso de tu sesión. Si nunca usas un guardián anti-sueño, esta semilla simplemente te dirá "no había nada que apagar" y no hará daño.


Para el asistente que siembra 🤖

Estás instalando un script de apagado selectivo (formato hook) para macOS. Sube por el árbol de procesos hasta el proceso del asistente que originó la sesión y mata únicamente el caffeinate -i -w <PID> atado a ese proceso; luego censa y respeta los guardianes de otras sesiones. Sigue los pasos con precisión.

Paso 1 · Copiar el archivo del kernel

Copia kernel/keep-awake-off.sh a la carpeta de hooks. Elige una ubicación:

  • Recomendado — global (disponible para todas tus sesiones): cópialo a <TU-CARPETA-DE-CLAUDE>/hooks/keep-awake-off.sh, donde <TU-CARPETA-DE-CLAUDE> es la carpeta de configuración del asistente (en Claude Code suele ser ~/.claude). Crea la carpeta hooks/ si no existe.
  • Alternativa — por proyecto: cópialo a <TU-PROYECTO>/.claude/hooks/keep-awake-off.sh.

Paso 2 · Dar permiso de ejecución

chmod +x "<RUTA-DONDE-LO-COPIASTE>/keep-awake-off.sh"

Paso 3 · Ajustar el nombre del proceso (solo si hace falta)

Por defecto el script busca un proceso llamado claude (Claude Code). Si tu asistente corre bajo otro nombre de proceso, exporta la variable de entorno antes de usarlo, o edita la línea ASSISTANT_PROC al inicio del script:

export KEEP_AWAKE_PROC="nombre-de-tu-proceso"

En Claude Code no necesitas tocar nada: el valor por defecto ya es correcto.

Paso 4 · Elige cómo se dispara

Este apagado tiene dos formas de uso; ofrécele la que le acomode a la persona:

Opción A — a mano, al terminar tu tanda (la más simple y fiel al diseño). Cuando la persona termine su trabajo (o dentro de su propia rutina de cierre), corre:

bash "<RUTA-DONDE-LO-COPIASTE>/keep-awake-off.sh"

Suelta el guardián de esa sesión de inmediato, aunque la ventana siga abierta.

Opción B — automático al cerrar la sesión (Claude Code). Si la persona quiere que corra solo cuando la sesión termina, regístralo bajo el evento SessionEnd en el settings.json que corresponda a la ubicación del Paso 1:

  • Global → <TU-CARPETA-DE-CLAUDE>/settings.json
  • Por proyecto → <TU-PROYECTO>/.claude/settings.json

Si ya existe un bloque hooks, fusiona: agrega este elemento al arreglo SessionEnd, no lo sobrescribas.

Por proyecto (usa $CLAUDE_PROJECT_DIR, así no dependes de rutas absolutas):

{
  "hooks": {
    "SessionEnd": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "$CLAUDE_PROJECT_DIR/.claude/hooks/keep-awake-off.sh"
          }
        ]
      }
    ]
  }
}

Si lo instalaste global, usa la ruta absoluta real del archivo en command (settings.json no expande ~).

Paso 5 · Verificación post-siembra

# a) Existe y es ejecutable
ls -l "<RUTA-DONDE-LO-COPIASTE>/keep-awake-off.sh"
# Esperado: los permisos empiezan con -rwx (la 'x' confirma que es ejecutable)

# b) Comportamiento real: córrelo una vez
bash "<RUTA-DONDE-LO-COPIASTE>/keep-awake-off.sh"; echo "código de salida: $?"
# En macOS, si esta sesión no tenía guardián:
#   imprime "Esta sesión no tenía guardián anti-sueño activo." + un resumen del censo, y "código de salida: 0".
# En macOS, si esta sesión SÍ tenía un guardián atado a su proceso:
#   imprime "Guardián anti-sueño de esta sesión (proceso NNNN) apagado." y "código de salida: 0".
# Fuera de macOS:
#   imprime "no es macOS · nada que hacer" y "código de salida: 0".

Si ves un mensaje coherente y código de salida: 0, quedó vivo. Nunca devuelve error: su trabajo es soltar candados, no romper tu cierre.

Placeholders que debes reemplazar por valores reales:

| Placeholder | Qué es | |---|---| | <TU-CARPETA-DE-CLAUDE> | La carpeta de configuración del asistente (normalmente ~/.claude). | | <TU-PROYECTO> | La carpeta raíz del proyecto/repositorio de la persona. | | <RUTA-DONDE-LO-COPIASTE> | La ubicación final del script tras el Paso 1. |


✅ ¿Cómo sé que funcionó?

De ahora en adelante, cuando termines una tanda de trabajo pesada en tu Mac, vas a poder soltar el candado anti-sueño de esa sesión con un solo comando (o solo, al cerrar la sesión). Tu computadora vuelve a poder dormir y ahorrar batería, sin que tengas que acordarte de nada.

Y lo mejor: si tienes otras sesiones trabajando al mismo tiempo, el apagado es educado. Te dice algo como "apagué el guardián de esta sesión; hay 2 más trabajando, esas las dejo despiertas hasta que terminen". Nunca vas a tumbar por error una tarea larga que estaba corriendo en otra ventana. 🫡

¿Quieres implementarla con acompañamiento?

Agenda una asesoría directa con JP y aterrízala en tu caso · desde $600 MXN.

Agendar una asesoría