Micare
Calidad de vida

Guardián anti-suspensión por sesión

Evita que tu Mac se duerma por inactividad mientras tu asistente trabaja en una tarea larga o desatendida, y se apaga solo cuando la sesión termina. La suspensión manual (cerrar la tapa) sigue funcionando: tú decides cuándo duerme.

HookPremiumCalidad de vidaenergia y sesion

🌱 Empieza aquí · Guardián anti-suspensión

¿Alguna vez dejaste a tu asistente en una tarea larga, te fuiste por un café y volviste a encontrar la computadora dormida y el trabajo congelado? Esta semilla resuelve justo eso.

Para ti (el humano)

Solo tienes que decir una frase. Abre esta carpeta con tu asistente (Claude Code o Cowork) y escríbele:

Dile a tu asistente: siembra esta semilla 🌱

¿Otras formas de pedirlo? "instala esta semilla", "haz el setup de esto", "ponme esto a funcionar". Te entiende igual. De aquí en adelante, tu asistente hace toda la parte técnica. Tú no tocas nada.


Para el asistente que siembra

Eres el asistente que va a instalar esta semilla. Sigue estos pasos tal cual. Es un hook (gancho de automatización) de tipo SessionStart para macOS. En Windows o Linux los scripts se instalan igual pero no hacen nada (salen sin efecto, sin daño): caffeinate solo existe en macOS.

Los placeholders entre <...> los resuelves tú según la plataforma del humano:

  • <TU-RUTA-DE-HOOKS> → carpeta donde viven los scripts de hooks del asistente.
    • Claude Code: ~/.claude/hooks/ (recomendado, aplica a todas las sesiones del usuario).
    • Cowork: la carpeta de configuración equivalente del proyecto o del usuario (~/.claude/hooks/ si comparte el mismo directorio de config).
  • <TU-ARCHIVO-DE-SETTINGS> → el settings.json del asistente.
    • Claude Code (usuario): ~/.claude/settings.json.
    • Por proyecto: .claude/settings.json dentro del proyecto.

Paso 1 · Copiar los dos scripts del kernel

Copia kernel/keep-awake.sh y kernel/keep-awake-off.sh a <TU-RUTA-DE-HOOKS>. Crea la carpeta si no existe.

mkdir -p <TU-RUTA-DE-HOOKS>
cp kernel/keep-awake.sh kernel/keep-awake-off.sh <TU-RUTA-DE-HOOKS>/

Paso 2 · Dar permisos de ejecución

chmod +x <TU-RUTA-DE-HOOKS>/keep-awake.sh <TU-RUTA-DE-HOOKS>/keep-awake-off.sh

Paso 3 · Registrar el hook SessionStart

Abre <TU-ARCHIVO-DE-SETTINGS>. Si ya tiene una sección hooks, fusiona este bloque dentro sin borrar lo que ya exista (agrega tu entrada al arreglo SessionStart, no lo reemplaces). Si el archivo no existe, créalo con este contenido:

{
  "hooks": {
    "SessionStart": [
      {
        "hooks": [
          { "type": "command", "command": "<TU-RUTA-DE-HOOKS>/keep-awake.sh" }
        ]
      }
    ]
  }
}

Paso 4 · Apagado (OFF) — queda como comando a la mano

keep-awake-off.sh NO se registra como hook. Es un comando que corres cuando el humano quiera devolverle a la máquina su energía normal sin cerrar la sesión ("apaga el guardián", "deja que la compu duerma"). No es obligatorio: el guardián se apaga solo cuando la sesión termina.

Opcional (auto-limpieza): si quieres que el guardián se apague también al cerrar cada sesión, agrega un hook SessionEnd que llame a keep-awake-off.sh, con el mismo formato del Paso 3 pero con la clave "SessionEnd". No es necesario para que funcione: el flag -w ya mata al guardián cuando el proceso del asistente muere.

Paso 5 · VERIFICACIÓN post-siembra (obligatoria)

Ejecuta esto desde tu propia herramienta de terminal (corres dentro del proceso del asistente, así que el guardián encontrará su ancestro):

bash <TU-RUTA-DE-HOOKS>/keep-awake.sh; sleep 1; pgrep -fl "caffeinate -i -w"

Salida esperada en macOS — una línea con un proceso caffeinate atado al PID de TU sesión, por ejemplo (si aparecen varias líneas, las demás son guardianes de otras sesiones activas — es normal, identifica el tuyo comparando el número final con el PID del proceso ancestro de tu propia sesión):

57321 caffeinate -i -w 57000

Si ves esa línea, el guardián quedó activo. ✅

  • Si no imprime nada en macOS: revisa que copiaste bien los scripts y que corres el comando desde la terminal del asistente (no una terminal suelta).
  • En Windows o Linux: el script sale sin efecto y pgrep no devuelve nada. Eso es lo correcto: la semilla solo actúa en macOS.

Prueba también el apagado y confirma su mensaje:

bash <TU-RUTA-DE-HOOKS>/keep-awake-off.sh

Salida esperada: Guardián de esta sesión (asistente <PID>) apagado. seguido del censo de guardianes restantes.

Cuando estos dos comandos den la salida esperada, la siembra está completa. Reporta al humano en una línea, sin tecnicismos.


¿Cómo sé que funcionó? (para el humano)

Fácil: pon a tu asistente en una tarea larga, deja la computadora sola un rato y regresa. Ya no debería estar dormida ni con el trabajo congelado a la mitad. Cuando cierres la sesión (o le pidas "apaga el guardián"), tu Mac vuelve a dormir con normalidad. Y ojo: cerrar la tapa siempre la duerme al instante, eso no cambia. Tú mandas.