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

Auto-guardado de tu trabajo a git al cerrar sesión

Hook que, al cerrar la sesión, guarda (commit) y sube (push) automáticamente al remoto los cambios del repositorio git que elijas —con escaneo anti-secretos antes de guardar y reintento automático ante conflictos de fusión. Tu respaldo sin clics para no perder trabajo ni olvidar el push.

HookPremiumTrucos técnicosgit e infra

🌱 Empieza aquí · Auto-guardado de tu trabajo a git al cerrar sesión

¿Cuántas veces terminaste de trabajar, cerraste la laptop… y se te olvidó guardar y subir los cambios al repositorio? Al día siguiente el trabajo no estaba donde lo buscabas, o lo tenías en una máquina y no en la otra. Esta semilla mata ese dolor de raíz: cada vez que cierras una sesión de trabajo, tu asistente guarda (commit) y sube (push) tus cambios automáticamente al repositorio que tú elijas. Sin clics, sin acordarte de nada.

Y lo hace con red de seguridad: revisa que no se te escape ningún secreto (una contraseña o llave de API) al historial, y si otra computadora subió algo antes que tú, resuelve el choque solo en vez de romper nada.

Para instalarla

Abre esta carpeta con Claude Code o Cowork y dile a tu asistente:

"Siembra esta semilla 🌱"

Con eso basta de tu parte. Tu asistente hace todo lo técnico y al final te dice cómo comprobar que quedó funcionando. Vas a ver algunas palabras en inglés en la pantalla; ni caso, él te guía.

¿Otras formas de pedírselo? "instala esta semilla", "pon a funcionar el auto-guardado a git", "haz el setup de esto". Te entiende igual.


Para el asistente que siembra 🤖

Instala este hook (gancho de automatización) del evento SessionEnd (fin de sesión). Sigue estos pasos y no inventes rutas: usa $HOME siempre.

1. Copia el script del kernel (el corazón de la semilla)

Copia kernel/sync-git-end.sh a la carpeta de hooks del usuario y dale permiso de ejecución.

Claude Code / Cowork (macOS o Linux):

mkdir -p "$HOME/.claude/hooks"
cp kernel/sync-git-end.sh "$HOME/.claude/hooks/sync-git-end.sh"
chmod +x "$HOME/.claude/hooks/sync-git-end.sh"

Windows (Git Bash / WSL): misma ruta ~/.claude/hooks/. El script usa bash y git, que vienen con Git Bash o WSL. Si el usuario corre Claude Code nativo en Windows sin bash, avísale que este hook necesita un entorno con bash disponible.

2. Pregúntale al usuario QUÉ repositorio quiere auto-sincronizar

Este es el único dato que necesitas de él. La semilla auto-guarda un repositorio que él elige (típicamente su carpeta de notas, su configuración de ~/.claude, o un proyecto donde quiere respaldo constante). Fija esa ruta en la variable GIT_SYNC_REPO al registrar el hook (paso 3). Si no la fijas, la semilla intenta usar el repo git del directorio donde corre; para un hook de fin de sesión eso puede no ser fiable, así que lo recomendado es fijar GIT_SYNC_REPO explícito.

3. Registra el hook en settings.json

Abre $HOME/.claude/settings.json (créalo si no existe) y agrega esta entrada dentro de hooks.SessionEnd. Reemplaza <RUTA-DE-TU-REPO> por la ruta real que te dio el usuario en el paso 2, dejando las comillas simples (así funciona aun si la carpeta tiene espacios, muy común en Mac, ej. /Users/ana/Mis Notas). Si ya hay hooks de SessionEnd, suma este objeto al arreglo hooks existente en lugar de reemplazarlo:

{
  "hooks": {
    "SessionEnd": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "GIT_SYNC_REPO='<RUTA-DE-TU-REPO>' bash $HOME/.claude/hooks/sync-git-end.sh",
            "timeout": 30
          }
        ]
      }
    ]
  }
}

timeout: 30 le da aire al push (subir por red puede tardar). Si el repo es grande o la conexión lenta, súbelo.

4. (Opcional) Ajustes finos por variables de entorno

Todo se configura sin tocar el script. Estas son las variables que entiende, con su significado y su valor por defecto:

  • GIT_SYNC_REPO — ruta absoluta del repositorio a auto-sincronizar (default: el repo del directorio actual). Es la que casi siempre querrás fijar.
  • GIT_SYNC_REMOTE — nombre del remoto al que se sube (default: origin).
  • GIT_SYNC_BRANCH — rama a subir (default: la rama actual).
  • GIT_SYNC_MACHINE_TAG — etiqueta que aparece en el mensaje del commit para saber desde qué equipo se guardó (default: autodetecta mac / windows / linux).
  • GIT_SYNC_SECRET_SCAN — comando externo de escaneo de secretos. Si lo fijas, la semilla usa ESE escáner en vez del interno (ver "Combínala" en el README). Si ese escaneo falla, el commit se aborta. Default: escaneo interno mínimo.

5. Verificación post-siembra (obligatoria)

No hace falta un remoto real para probar que la mecánica funciona. Crea un repo de prueba, métele un cambio y corre el hook apuntándolo ahí. Debe aparecer un commit auto-sync.

TREPO="${TMPDIR:-/tmp}/sync-git-end-prueba"
mkdir -p "$TREPO" && git -C "$TREPO" init -q
git -C "$TREPO" config user.email "you@localhost"
git -C "$TREPO" config user.name  "prueba"
echo "hola" > "$TREPO/nota.txt"
GIT_SYNC_REPO="$TREPO" bash "$HOME/.claude/hooks/sync-git-end.sh"; echo "EXIT=$?"
git -C "$TREPO" log --oneline

Salida esperada: EXIT=0 y una línea de commit que empieza con auto-sync desde …. (No hay remoto, así que solo guarda local; eso está bien para la prueba.)

Ahora comprueba el escudo anti-secretos: si metes algo que parece una llave, NO debe commitear y debe dejar un aviso.

printf 'API_KEY=AKIA%s\n' 'ABCDEFGHIJKLMNOP' > "$TREPO/config.txt"
GIT_SYNC_REPO="$TREPO" bash "$HOME/.claude/hooks/sync-git-end.sh"; echo "EXIT=$?"
cat "$TREPO/.git-sync-secret-detected" 2>/dev/null && echo "ESCUDO_OK"
git -C "$TREPO" log --oneline   # debe seguir habiendo UN solo commit

Salida esperada: EXIT=0, aparece el archivo .git-sync-secret-detected con el aviso (imprime ESCUDO_OK), y el log sigue con un solo commit (el secreto NO se guardó).

Por último, confirma que el hook quedó registrado en settings.json:

grep -q 'sync-git-end' "$HOME/.claude/settings.json" && echo 'REGISTRADO'

Salida esperada: REGISTRADO.

Cuando las tres pruebas den lo esperado, borra el repo de prueba (rm -rf "$TREPO", pídele confirmación al usuario si prefieres) y avísale en una línea qué gana con esto.


✅ ¿Cómo sé que funcionó?

A partir de ahora, cada vez que cierres una sesión de trabajo, tu asistente guarda y sube tus cambios solo. No tienes que acordarte de nada. Si alguna vez ves un aviso de .git-sync-secret-detected, es tu red de seguridad avisándote que había algo que parecía un secreto en los cambios: sácalo de ahí y guarda a mano esa vez. Y si trabajas el mismo repositorio desde dos computadoras, cada commit te dirá desde cuál se hizo.

Tu trabajo queda respaldado sin fricción, y un secreto nunca se te escapa al historial. Eso es todo. 🌱

¿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