Saltar al contenido
claudemods

Cache Clock: vigila cuándo caduca la caché de prompt de Claude Code

Una línea de caché de prompt bajo la barra de estado: tiempo restante, aciertos y tokens que se recachean en frío.

Permisos

  • Lee archivosPuede leer archivos y listar directorios en tu equipo ($.fs.read / list / stat / exists).
  • Escribe archivosPuede crear o sobrescribir archivos en tu equipo ($.fs.write).
  • Ejecuta comandosPuede ejecutar programas de shell en tu equipo ($.process.run / spawn). Revisa el código fuente para ver exactamente cuáles.
  • Añade comandos/herramientasRegistra nuevos comandos de barra o herramientas invocables por ti o por Claude ($.command.register / $.tool.register).
probado con
v2.1.296
última prueba
requiere
Claude Code ≥ 2.1.287
superficies
estado

Instalar dentro de Claude Code:

/plugin install cache-clock --marketplace hamzafer/claude-code-mods
Todas las opciones de instalación ↓

¿Qué hace este mod?

Cache Clock es un mod de la comunidad de Hamza Zafar (hamzafer), parte de su colección claude-code-mods. Muestra el estado de la caché de prompt de Claude Code en una línea bajo la barra de estado. Mientras la caché está caliente, la línea es verde y se lee así: cache ● 1h ██████████ 59m left · hit 48% · misses 0. Son la duración de la caché (5m o 1h), una barra de diez celdas con lo que queda, el tiempo restante, la tasa de aciertos y el número de fallos.

Cuando queda menos del 20 % de la duración, la línea se vuelve amarilla. Cuando la caché ha caducado, pasa a rojo: cache ○ cold · next message re-caches 82k tokens, con la causa del último fallo si Claude Code la informa. La idea es ver, antes de enviar un mensaje, si se servirá desde la caché o si tendrá que pagar por reconstruir todo el prefijo.

Las cifras no las calcula el mod. Claude Code envía un objeto prompt_cache al comando de la barra de estado (desde la 2.1.251) y el mod solo le da formato. Los plugins no pueden registrar una barra de estado, así que el mod añade el comando /cache-clock: setup hace que statusLine apunte al script del mod y remove lo deja todo como estaba. Si ya tienes una barra de estado, se mantiene y la línea de caché va debajo.

Demo

La grabación inicia Claude Code con el mod cargado en el pequeño proyecto de demostración, con la barra de estado ya apuntada al script del mod; omitimos a propósito el paso /cache-clock setup para que la demo no escriba en el ~/.claude de quien graba. Se le pide a Claude que lea README.md y describa el proyecto en una frase. Mientras corre el turno, bajo el prompt aparece una línea verde cache ● 1h con la barra llena, 59m left y hit 0% · misses 0. Cuando el turno termina, la misma línea pasa a hit 48% · misses 0.

Instalación

Usa cualquiera de los métodos del bloque de instalación; instalan directamente desde el marketplace del propio autor. Después ejecuta /cache-clock setup en una sesión. La línea aparece tras la siguiente respuesta de Claude, y /cache-clock a secas te dice si está activa.

$ install cache-clock

Requiere Claude Code ≥ 2.1.287

Se instala desde el marketplace del autor: hamzafer/claude-code-mods

  1. 1.Una línea, dentro de Claude Code

    /plugin install cache-clock --marketplace hamzafer/claude-code-mods

    Pégala en una sesión abierta (v2.1.275+). Claude Code te pedirá primero añadir el marketplace.

  2. 2.Desde tu shell

    claude plugin marketplace add hamzafer/claude-code-mods
    claude plugin install cache-clock@claude-code-mods

    Después ejecuta /reload-plugins en cualquier sesión que ya esté abierta.

  3. 3.Pruébalo sin instalarlo

    git clone https://github.com/hamzafer/claude-code-mods
    claude --plugin-dir ./claude-code-mods/mods/cache-clock

    Carga el mod solo para una sesión. No se añade nada a tu configuración.

Cómo funciona

hooks/register.ts registra el comando y hace la configuración. El statusline/cache-clock.mjs incluido es lo que Claude Code ejecuta en cada actualización de la barra de estado. Lee el JSON de stdin, ejecuta tu comando original si se guardó uno e imprime la línea de caché. El formateador puro está en statusline/render.mjs:

export function render(input, nowSeconds) {
  const cache = input?.prompt_cache
  if (!cache || typeof cache !== 'object') return ''
  if (cache.caching_observed === false) return ''

  const left = typeof cache.expires_at === 'number' ? cache.expires_at - nowSeconds : null
  const isWarm = cache.warm !== false && left !== null && left > 0
  return isWarm ? warmLine(cache, left) : coldLine(cache)
}

La línea cuenta como fría en cuanto pasa expires_at, aunque la entrada dijera caliente cuando se construyó. setup escribe los dos scripts en <config dir>/cache-clock/ en lugar de la carpeta del plugin, porque esa carpeta cambia con cada versión. En el siguiente inicio de sesión, refreshScripts sobrescribe las copias con las versiones nuevas si la barra de estado es la del mod. setup fija refreshInterval en 30 segundos, salvo que el tuyo ya sea menor, para que la cuenta atrás avance entre respuestas.

Personalízalo

No hay opciones. /cache-clock setup y /cache-clock remove son los únicos interruptores. Para cambiar el aspecto, edita render.mjs: BAR_CELLS para el ancho de la barra, WARN_SHARE para el punto en que la línea se vuelve amarilla (20 % por defecto) y los códigos de escape de color al principio. Edita la copia de <config dir>/cache-clock/; mientras esté configurado, el mod la sobrescribe con la versión incluida en el siguiente inicio de sesión.

Permisos y seguridad

Antes de ejecutarlo leímos todos los archivos que el plugin ejecuta: .claude-plugin/plugin.json, hooks/hooks.json, hooks/register.ts, los dos scripts de la barra de estado y las pruebas. No hay package.json, script de instalación, código empaquetado o minificado ni binarios. El repositorio tiene un LICENSE MIT.

  • Cambia ajustes solo si lo pides. Al instalar o iniciar sesión no se escribe nada, salvo refrescar sus propios scripts. /cache-clock setup escribe settings.json en tu carpeta de configuración de Claude (o CLAUDE_CONFIG_DIR), o <project>/.claude/settings.local.json cuando la barra de estado viene de los ajustes del proyecto. También escribe los scripts y una copia de seguridad setup-<hash>.json en <config dir>/cache-clock/. /cache-clock remove restaura la statusLine anterior, salvo que la hayas cambiado desde entonces. No toca barras de estado gestionadas (policy) ni las de --settings, y deja intacto un JSON de ajustes no válido.
  • Ejecuta un comando en cada actualización. Tras el setup, Claude Code ejecuta node "<config dir>/cache-clock/cache-clock.mjs". Ese script ejecuta tu comando de barra de estado anterior mediante un shell (spawnSync(..., { shell: true }), 5 s de límite) con la misma entrada. El propio setup ejecuta node --version para comprobar que Node existe.
  • Sin red, sin telemetría, sin llamadas al modelo, sin demonios. Lee HOME y CLAUDE_CONFIG_DIR solo para encontrar la carpeta de configuración. No lee tokens ni credenciales.
  • Sin inyección de prompts ni hooks que bloqueen. Solo registra session.start y su propio comando, y no añade nada a los prompts ni a los resultados de herramientas.
  • Requisitos: Node en el PATH y Claude Code 2.1.251 o posterior.

claude plugin validate no informó de errores ni avisos, y las 25 pruebas del autor pasaron con Claude Code 2.1.296.

Lee archivos
Puede leer archivos y listar directorios en tu equipo ($.fs.read / list / stat / exists).
Escribe archivos
Puede crear o sobrescribir archivos en tu equipo ($.fs.write).
Ejecuta comandos
Puede ejecutar programas de shell en tu equipo ($.process.run / spawn). Revisa el código fuente para ver exactamente cuáles.
Añade comandos/herramientas
Registra nuevos comandos de barra o herramientas invocables por ti o por Claude ($.command.register / $.tool.register).

Compatibilidad y solución de problemas

Comprobado con Claude Code 2.1.296 en macOS (validate, pruebas y demo). Si la línea no aparece:

  • Ejecuta /cache-clock. Debería decir “cache-clock is on”.
  • Envía primero un mensaje. La línea está vacía hasta que llega prompt_cache, y también cuando el proveedor informa de que no hay caché.
  • claude --version es 2.1.251 o posterior y node --version funciona en el mismo terminal.
  • Tu barra de estado no viene de ajustes gestionados ni de --settings; el setup no los cambia.
  • Tras hacer el setup en una sesión ya abierta, espera a la siguiente respuesta o a la actualización de 30 segundos.

Preguntas frecuentes

¿Cache Clock llama a la API o gasta tokens?
No. Solo da formato a las cifras de prompt_cache que Claude Code ya pasa al comando de la barra de estado. Los scripts no hacen peticiones de red ni llaman al modelo.
¿Qué cambia /cache-clock setup en mi equipo?
Copia dos scripts en tu carpeta de configuración de Claude, dentro de cache-clock/, guarda allí tu barra de estado anterior y edita un archivo de ajustes para que statusLine apunte al script. La barra de estado compartida de un proyecto no se edita: recibe una anulación local. /cache-clock remove restaura el original guardado.
¿Qué pasa con mi barra de estado actual?
Sigue funcionando. El script del mod ejecuta primero tu comando original con la misma entrada, imprime su salida y añade debajo la línea de caché. El comando original se ejecuta mediante un shell con un límite de 5 segundos.
¿Qué dice la línea cuando la caché está fría?
Muestra un “cache ○ cold” en rojo, cuántos tokens recachea el siguiente mensaje (por ejemplo 82k) y la causa del último fallo cuando Claude Code la informa, como tools changed.
¿Qué versión de Claude Code necesito?
La 2.1.251 o posterior, la primera que envía prompt_cache a la barra de estado. En versiones anteriores la línea queda vacía. Node debe estar en el PATH.
Medidor de contexto funcionando en Claude CodeDestacado

Medidor de contexto

Contexto ocupado, uso del plan en 5 h y 7 días y coste de la sesión en la barra de estado, con aviso cerca del límite.

  • estado
  • aviso
  • Modifica la interfaz

probado con v2.1.310

Context Bar funcionando en Claude CodeDestacado

Context Bar

La ventana de contexto de Claude Code como una barra apilada sobre el prompt, un color por categoría, con tokens.

  • sobre el prompt
  • Modifica la interfaz
  • Añade comandos/herramientas
  • Guarda datos

probado con v2.1.291

Compact Adviser funcionando en Claude CodeDestacado

Compact Adviser

Sugiere ejecutar /compact cuando tu sesión de Claude Code llega a un punto de control, según el modelo Jev de TypeSafe.

  • estado
  • panel
  • aviso
  • Lee archivos
  • Escribe archivos
  • Red
  • Lee tus prompts
  • Modifica la interfaz
  • Añade comandos/herramientas
  • Guarda datos

probado con v2.1.291

Más en Barra de estado y barra del prompt, Contexto, cuota y coste.