TL;DR Déjala encendida. Si tus sesiones largas no llegan a 200K, baja el umbral con
CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS(el mínimo es 100.000). Y si prefieres compactar tú con instrucciones, pon"idleCompaction": false.
Te levantas a comer con una conversación de 300K tokens abierta. Hasta ahora, al volver, tu primer mensaje reconstruía la caché con el historial entero a precio completo, porque la caché de una hora ya había caducado. Desde la v2.1.299, Claude Code se adelanta: a los 54 minutos de silencio compacta la conversación él solo, mientras la caché sigue viva, y vuelves a un resumen en lugar de a 300K tokens fríos.
Qué hace exactamente
Cuando termina tu última petición, Claude Code programa un temporizador al 90% de la vida de la caché: 54 minutos sobre una hora. Si al dispararse nadie ha escrito nada y la conversación cumple las condiciones, manda la misma petición de resumen que un /compact. Esa petición lee tu historial desde la caché, a en torno al 10% del precio de entrada, y el resumen sustituye a la conversación.
Al volver lo ves en el propio hilo:
Compacted while idle, before the prompt cache expired · turn off with "idleCompaction": false in settings.json
Es justo lo que te recomendaba hacer a mano antes de la pausa, solo que ahora pasa aunque se te olvide.
Cuándo salta y cuándo no
Tienen que cumplirse todas a la vez:
| Condición | Qué la rompe |
|---|---|
| Sesión interactiva en la terminal | claude -p, el Agent SDK y los subagentes no la usan |
| Caché de una hora en la conversación principal | Con API key o usage credits suele ser de cinco minutos. "promptCacheTtl": "1h" la sube |
| Contexto por encima del umbral, 200.000 tokens por defecto | Una sesión de 120K no se toca salvo que bajes el umbral |
| El ordenador despierto en el minuto 54 | Si el portátil está dormido, el temporizador llega tarde y no compacta |
| Claude Code puede descargar los flags de Anthropic | DISABLE_TELEMETRY, DO_NOT_TRACK, Bedrock, Google Cloud, Foundry o el Claude apps gateway la dejan fuera |
Lo del portátil dormido es la trampa más fácil: cierras la tapa para irte a comer y la caché caduca igual, sin resumen de por medio.
Ajustarla
1. Bájale el umbral si tus sesiones largas se quedan cortas
En settings.json, dentro de env:
{
"env": {
"CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS": "100000"
}
}
Cualquier valor por debajo de 100.000 se sube a 100.000, que es el mínimo.
2. Dile qué conservar
El resumen lo escribe un modelo que no sabe qué vas a retomar. Usa el mismo camino que /compact, así que una sección # Compact instructions en tu CLAUDE.md le marca qué conservar aunque no estés delante:
# Compact instructions
Conserva los tests que fallan y los ficheros que estamos migrando.
3. O apágala
Desde /config, en la fila Idle compaction, o en settings.json:
{
"idleCompaction": false
}
DISABLE_AUTO_COMPACT=1 también la apaga, junto con el auto-compact. Poner true no la enciende si no te ha llegado.
Si nunca te salta
Las docs dicen que viene encendida por defecto, pero llega por un flag que Claude Code descarga de Anthropic, y la primera sesión tras actualizar puede no tenerlo todavía. En mi cuenta, el 18 de octubre y ya en la v2.1.302, seguía apagado. Si quieres mirarlo en la tuya, el valor en caché está en ~/.claude.json (es un nombre interno y puede cambiar):
jq '.cachedGrowthBookFeatures.tengu_sunny_locket' ~/.claude.json
"mode": "off" significa que aún no te ha llegado, aunque tu settings.json diga lo contrario.
Sigue valiendo compactar tú
Esto es una red, no un sustituto. Si sabes que te vas, un /compact con instrucciones antes de levantarte sigue siendo mejor: eliges qué conservar para esa tarea concreta y no dependes de que el portátil siga despierto. Y si no vas a volver a esa conversación, la compactación en reposo te cobra un resumen que no vas a usar: ahí lo tuyo es /clear.
Para entender por qué el turno de la vuelta pesaba tanto, está cómo funciona el prompt caching en Claude Code. Y si lo que te preocupa es el compact que salta por llenado, quién decide tu ventana de auto-compact.
Documentación oficial: idleCompaction
Requisitos: la compactación en reposo llegó en la v2.1.299 y la fila de /config, en la v2.1.302.