Saltar al contenido
claudemods

Context Inspector: encuentra el desperdicio de contexto en Claude Code

Muestra qué llena el contexto de Claude Code, cuánto es desperdicio y qué conservó la compactación.

Permisos

  • Escribe archivosPuede crear o sobrescribir archivos en tu equipo ($.fs.write).
  • Intercepta llamadas a herramientasVe cada llamada a herramienta que hace Claude (tool.call / tool.check) y podría bloquearla o modificarla.
  • Lee tus promptsPuede ver lo que escribes y la transcripción de la conversación (prompt.* / session.append / session.messages).
  • Modifica la interfazDibuja en la interfaz de Claude Code: bandas, paneles, texto de estado, avisos (ui.render / $.ui.*).
  • Añade comandos/herramientasRegistra nuevos comandos de barra o herramientas invocables por ti o por Claude ($.command.register / $.tool.register).
probado con
v2.1.303
última prueba
requiere
Claude Code ≥ 2.1.287
superficies
estado, panel, aviso

Instalar dentro de Claude Code:

/plugin install context-inspector --marketplace YeonwooSung/my-claude-code-mods
Todas las opciones de instalación ↓

¿Qué hace este mod?

Context Inspector es un mod de la comunidad de YeonwooSung (my-claude-code-mods) que busca el desperdicio de contexto en Claude Code. Lleva un libro de registro de todo lo que entra en la conversación (prompts, respuestas, resultados de herramientas, adjuntos) y responde tres preguntas: qué llena la ventana ahora, por qué la misma información vuelve una y otra vez, y qué conservó o perdió una compactación.

Añade una línea de estado como ctx 62% · waste≈8.1k, donde el porcentaje es medido y el desperdicio es estimado. También añade tres comandos. /context-inspect imprime un informe de texto con las secciones overview, occupants, rereads, similar, compactions, efficiency y advice. /context-pane abre un panel en vivo. /context-export guarda el libro de registro como JSONL, solo metadatos.

Los análisis son concretos. Las relecturas de un archivo se clasifican, por ejemplo como sin cambios mientras la copia anterior sigue en la ventana (desperdicio puro), tras una edición o tras una compactación. Las salidas de herramientas casi duplicadas se agrupan con un SimHash léxico, no por significado. Tras una compactación, comprueba si los archivos editados y leídos, los errores y los identificadores de usuario siguen apareciendo en el resumen. El README del autor requiere Claude Code 2.1.287 o posterior.

Demo

La grabación inicia Claude Code con el mod cargado en el pequeño proyecto de demostración y le pide a Claude que lea README.md y diga en una frase qué es el proyecto. Cuando termina el turno, el pie muestra context-inspector: ctx 4% · waste≈0. Después ejecutamos /context-inspect. El informe lista los tokens vivos (unos 6,2k en 17 elementos), los principales ocupantes por categoría (los adjuntos de lista de skills, instrucciones de MCP y herramientas diferidas), relecturas, salidas similares, compactaciones, eficiencia y consejos. En esta sesión corta no se leyó nada dos veces, así que el desperdicio es cero y los consejos indican que nada destaca.

Instalación

Usa cualquiera de los métodos del bloque de instalación; instalan directamente desde el marketplace del propio autor. La línea de estado aparece tras el siguiente inicio de sesión, cuando se completa el primer turno.

$ install context-inspector

Requiere Claude Code ≥ 2.1.287

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

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

    /plugin install context-inspector --marketplace YeonwooSung/my-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 YeonwooSung/my-claude-code-mods
    claude plugin install context-inspector@my-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/YeonwooSung/my-claude-code-mods
    claude --plugin-dir ./my-claude-code-mods/context-inspector

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

Cómo funciona

El módulo es una sola función register en hooks/register.tsx que envuelve los eventos y los pasa sin cambios. Cada paso de registro pasa por un ayudante que se traga sus propios errores, así que el inspector no puede romper una sesión. Una llamada a herramienta se registra antes y después de ejecutarse, y la respuesta se devuelve tal como llegó:

on('tool.call', async ($, e, next) => {
  const id = e.tool_use_id
  if (id !== undefined) safe(() => ingestToolCall(ledger, id, String(e.tool), e.agentId, e as unknown as Record<string, unknown>))
  const answer = await next(e)
  if (id !== undefined) safe(() => ingestToolResult(ledger, id, answer))
  return answer
}).catch(($, e, next) => next(e))

El fragmento es de hooks/register.tsx. Las filas llegan por session.append, los tamaños medidos de las peticiones por turn.step y las compactaciones por session.compact. Tras cada turno, turn.complete encola un repintado que lee $.session.usage() y escribe la línea de estado. El código de análisis de hooks/core/ es TypeScript simple con solo importaciones locales, y el libro de registro está limitado a 20 000 elementos.

Personalízalo

/config tiene dos opciones. outputDir indica dónde escribe /context-export; vacío significa ~/.claude/context-inspector. toastAdvice (activada por defecto) muestra un aviso por sesión la primera vez que aparece una recomendación de severidad alta. Los comandos aceptan argumentos: /context-inspect advice muestra una sola sección y --agents incluye los subagentes.

Permisos y seguridad

Leímos todos los archivos que el plugin puede ejecutar antes de correrlo: el manifiesto, hooks/hooks.json, hooks/register.tsx y todo hooks/core/, incluidas las reglas de enmascaramiento. No hay package.json, script de instalación, binario ni código empaquetado, y las únicas importaciones son archivos locales.

  • Red, procesos, demonios, telemetría: ninguno. Ni fetch, ni comandos de shell, ni nada que siga funcionando tras cerrar Claude Code.
  • Cambia la interfaz: la línea de estado, un aviso y el panel. Añade comandos: los tres de arriba.
  • Observa cada llamada a herramienta y cada fila mediante tool.call, session.append, turn.step y session.compact. Son hooks de control, pero cada uno devuelve sin cambios el resultado del siguiente manejador y tiene un .catch de respaldo; no se bloquea ni se reescribe nada. validate también señala que los hooks de session.compact no se ejecutan en un plugin instalado por una persona cuando una organización gestiona Claude Code, salvo que la organización lo incluya en la configuración gestionada.
  • Escrituras de archivos: solo con /context-export, mediante $.fs.write, en <outputDir>/<id de sesión>/context-<load>-<n>.jsonl. Por defecto está dentro de ~/.claude, en la subcarpeta propia del plugin. Lee HOME para expandir ~. Las rutas de archivo se exportan tal cual y los demás destinos se enmascaran en la medida de lo posible; el autor recomienda revisar las exportaciones antes de compartirlas.
  • Influencia en los prompts: no se encontró ninguna. No inyecta texto en prompts ni en resultados de herramientas; los consejos solo te los muestra a ti.
  • Requisitos externos: ninguno. Licencia: Apache-2.0, con archivo LICENSE en la raíz del repositorio.

claude plugin validate no informó de errores ni advertencias, solo de las notas anteriores. Las 102 pruebas del autor pasaron en Claude Code 2.1.303.

Escribe archivos
Puede crear o sobrescribir archivos en tu equipo ($.fs.write).
Intercepta llamadas a herramientas
Ve cada llamada a herramienta que hace Claude (tool.call / tool.check) y podría bloquearla o modificarla.
Lee tus prompts
Puede ver lo que escribes y la transcripción de la conversación (prompt.* / session.append / session.messages).
Modifica la interfaz
Dibuja en la interfaz de Claude Code: bandas, paneles, texto de estado, avisos (ui.render / $.ui.*).
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.303 en macOS (validate y pruebas). Si falta la línea de estado:

  • claude --version es 2.1.287 o posterior.
  • Ya se completó un turno; la línea se pinta después de turn.complete.
  • /context-inspect imprime el informe incluso sin línea de estado, así que sirve para comprobar que el mod está cargado.
  • En el panel de chat de VS Code solo funcionan los hooks y el texto de los comandos; usa /context-inspect.

Límites conocidos del README: tras una recarga, reanudación o /clear el libro de registro empieza de nuevo, y la supervivencia a la compactación se juzga por coincidencia de subcadenas, así que lo que el resumen parafrasea cuenta como perdido.

Preguntas frecuentes

¿Context Inspector cambia mi sesión o llama al modelo?
No. El README del autor dice que solo observa, y el código lo confirma. Sus hooks pasan sin cambios cada llamada a herramienta, cada fila, cada paso y cada compactación, y nunca llama al modelo. Del estado de Claude Code solo lee las cifras de uso y, una vez tras una recarga, los mensajes ya existentes.
¿La cifra de desperdicio es exacta?
No. La ocupación de la ventana sale de los tokens que informó la API, pero el tamaño de cada elemento y el desperdicio son estimaciones, marcadas con ≈ en el informe. El tamaño de un elemento son los caracteres divididos entre cuatro, escalados por un factor de calibración entre 0,5 y 2,0.
¿Qué escribe /context-export y dónde?
Solo metadatos, como archivos JSONL en <outputDir>/<id de sesión>/. Por defecto es ~/.claude/context-inspector. Las rutas de archivo se conservan; los comandos, patrones y URL se enmascaran en la medida de lo posible y se recortan a 200 caracteres. No se escribe nada hasta que ejecutas el comando.
¿En qué se diferencia de Context Bar?
Context Bar divide la ventana por categorías, como hace /context. Context Inspector sigue cada elemento que entró en la conversación, así que puede decir qué archivo se leyó dos veces, qué salidas se repiten y qué archivos editados descartó la compactación. Añade una línea de estado, un panel y un informe de texto en lugar de una banda.
¿Funciona después de /clear o al reanudar?
Sí, con límites. El libro de registro se vacía y después se vuelve a leer una sola vez la conversación principal desde los mensajes de la sesión. No se recuperan adjuntos, subagentes ni tiempos, y la primera compactación tras una recarga cuenta los prompts y respuestas recuperados como descartados.
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

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

Más en Contexto, cuota y coste, Comandos slash, Paneles y dashboards.