🌱 Empieza aquí · Aviso de costo al reanudar conversación
¿Alguna vez dejaste una conversación larga a medias y al día siguiente la retomaste? Tu asistente guarda todo ese contexto en una especie de memoria rápida temporal (el "caché") para no rehacer el trabajo en cada turno. Pero esa memoria rápida caduca a los pocos minutos u horas. Cuando reanudas una conversación vieja, ya caducó, así que tu asistente tiene que reconstruirla completa desde cero en el primer turno, y eso cuesta más de lo normal, muchas veces sin que te enteres.
Esta semilla instala un pequeño vigilante que, en el momento exacto en que reanudas, te avisa cuánto contexto se va a reconstruir, para que decidas con conciencia: seguir con el historial completo, o abrir una conversación nueva y limpia (más barata).
Para instalarla
Abre esta carpeta con Claude Code 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 aviso de caché al reanudar", "haz el setup de esto". Te entiende igual.
Para el asistente que siembra 🤖
Instala este hook (gancho de automatización) del evento SessionStart (inicio de
sesión). Es un script de Python que solo actúa cuando source == "resume". Sigue estos
pasos y no inventes rutas: usa $HOME siempre.
1. Copia el script del kernel (el corazón de la semilla)
Copia kernel/cache-resume-detect.py a la carpeta de hooks del usuario y dale permiso
de ejecución.
Claude Code (macOS o Linux):
mkdir -p "$HOME/.claude/hooks"
cp kernel/cache-resume-detect.py "$HOME/.claude/hooks/cache-resume-detect.py"
chmod +x "$HOME/.claude/hooks/cache-resume-detect.py"
Windows (Git Bash / WSL): misma ruta ~/.claude/hooks/. Requiere python3
disponible en el PATH (viene con Git Bash + Python, o con WSL). Si el usuario corre
Claude Code nativo en Windows sin python3, avísale que este hook necesita Python 3.
2. Registra el hook en settings.json
Abre $HOME/.claude/settings.json (créalo si no existe) y agrega esta entrada dentro de
hooks.SessionStart. Si ya hay hooks de SessionStart, suma este objeto al arreglo
hooks existente en lugar de reemplazarlo:
{
"hooks": {
"SessionStart": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "python3 $HOME/.claude/hooks/cache-resume-detect.py",
"timeout": 5
}
]
}
]
}
}
El
matchervacío hace que el hook corra en todos los inicios de sesión; el script mismo filtra y solo actúa cuando reanudas. Si prefieres afinar, puedes poner"matcher": "resume"para que ni siquiera arranque en sesiones nuevas.
3. (Opcional) Ajusta el umbral o agrega un costo estimado
El aviso solo aparece si el caché superaba cierto tamaño (por defecto 5000 tokens), para no molestar en conversaciones chicas y baratas. Estas variables de entorno lo personalizan (exportarlas antes de que corra el hook, o dejarlas fijas en el entorno del usuario):
CACHE_RESUME_MIN_TOKENS— tamaño mínimo de caché (en tokens) para disparar el aviso (por defecto 5000). Súbelo si quieres que avise solo en conversaciones muy grandes.CACHE_RESUME_PRICE_PER_MTOK— precio por 1,000,000 de tokens de escritura de caché, en la moneda del usuario, como número sin símbolo (ej. 3.75). Si lo fijas, el aviso agrega una línea de costo estimado; si lo dejas vacío, solo muestra el tamaño en tokens. El precio exacto depende del modelo y del plan del usuario, así que no lo adivines: pregúntaselo o déjalo sin fijar.CACHE_RESUME_WARN_DISABLE— ponlo en 1 para apagar el aviso por completo.
4. Verificación post-siembra (obligatoria)
Comprueba que el hook se dispara de verdad. Como por seguridad solo lee registros que
viven dentro de ~/.claude, la prueba coloca ahí un transcript de mentiritas:
TT="$HOME/.claude/_prueba-transcript.jsonl"
printf '%s\n' '{"message":{"role":"assistant","usage":{"cache_creation_input_tokens":118000,"cache_read_input_tokens":6000}}}' > "$TT"
echo '{"source":"resume","session_id":"t","transcript_path":"'"$TT"'"}' | python3 "$HOME/.claude/hooks/cache-resume-detect.py"; echo "EXIT=$?"
Salida esperada: una línea JSON con un campo "systemMessage" que menciona
~124 000 tokens, y EXIT=0. Ese systemMessage es justo el aviso que verá el usuario.
Ahora comprueba el caso feliz (una sesión nueva NO debe avisar):
echo '{"source":"startup","session_id":"t"}' | python3 "$HOME/.claude/hooks/cache-resume-detect.py"; echo "EXIT=$?"
rm -f "$TT"
Salida esperada: sin ninguna salida y EXIT=0.
Por último, confirma que el hook quedó registrado en settings.json:
grep -q 'cache-resume-detect' "$HOME/.claude/settings.json" && echo 'REGISTRADO'
Salida esperada: REGISTRADO.
Cuando las tres pruebas den lo esperado, avísale al usuario que ya quedó y explícale en una línea qué gana con esto.
✅ ¿Cómo sé que funcionó?
De ahora en adelante, cada vez que reanudes una conversación que traía bastante contexto, apenas arranque verás un aviso corto: "ojo, retomar esto reconstruye ~X tokens de caché, tiene un costo; si no necesitas el historial, empieza limpio". No tienes que hacer nada especial en el día a día. Solo vas a tomar mejores decisiones sobre cuándo seguir una conversación vieja y cuándo abrir una nueva, y a gastar menos sin pensarlo. Eso es todo. 🌱
