SSD Nodes Learn Hosting plans →
Guías Matt ConnorPor Matt Connor

context-mode y tus límites de Claude Code: cómo ayuda

Por qué una sesión de Claude Code agota tu límite de Pro o Max, cómo context-mode saca la salida de las herramientas del contexto y cómo medir el ahorro tú mismo.

La respuesta corta

context-mode reduce el gasto de tu límite de Claude Code en un punto concreto: la salida de las herramientas. Cada lectura de archivo, cada log, cada instantánea de Playwright y cada respuesta de una API se queda en el contexto de la sesión, y el modelo la vuelve a procesar en cada turno. context-mode ejecuta esas herramientas en un sandbox (un proceso aislado), guarda la salida completa en una base SQLite local y solo devuelve al modelo el fragmento que importa.

No hace que Claude escriba menos, y no sirve en el chat de claude.ai. Tu ahorro real tampoco lo conoce nadie hasta que lo mides tú. Al final de esta guía tienes el método.

Por qué tu sesión de Claude Code agota el límite de Pro o Max

Un modelo de lenguaje no tiene memoria entre turnos. En cada turno, Claude Code envía a la API la conversación entera: tus mensajes, las respuestas del modelo y el resultado de cada herramienta que se ejecutó. El modelo lee todo eso otra vez antes de escribir la siguiente respuesta.

En un chat normal eso pesa poco, porque los mensajes son cortos. En una sesión agéntica, donde el agente decide qué herramientas usar y las ejecuta él solo, el peso cambia. El agente lee archivos enteros con Read. Lanza npm test y recibe cien líneas de log. Abre una página con Playwright y recibe una instantánea de la página entera. Consulta la API de GitHub y recibe JSON con campos que nunca va a usar. El README de context-mode da sus propios ejemplos: una instantánea de Playwright de 56 KB, veinte issues de GitHub de 59 KB y un log de acceso de 45 KB.

Todo eso entra en el historial y no sale. Si en el turno 5 lees un log de 45 KB, ese log viaja también en los turnos 6, 7, 8 y siguientes. Son tokens de entrada (input tokens), es decir, el texto que el modelo lee, no el que escribe. La diferencia entre los dos tipos y cómo se cobra cada uno está en la guía sobre tokens de entrada y de salida en Claude.

El caché de prompts (prompt caching) abarata la relectura de la parte del historial que no cambia, pero no la elimina. El contenido sigue ocupando la ventana de contexto, así que la sesión llega antes al punto en que Claude Code compacta la conversación. Anthropic no publica la fórmula exacta con la que cada token cuenta para el límite de los planes Pro y Max. La causa práctica es simple: cuanto más grande es el historial, más texto procesa el modelo en cada turno. Si ya te ha salido el aviso, qué hacer cuando Claude te dice que llegaste al límite explica las opciones inmediatas.

Qué hace context-mode con la salida de las herramientas

context-mode es un servidor MCP (Model Context Protocol, el protocolo con el que un agente se conecta a herramientas externas) acompañado de un conjunto de hooks. Un hook es un comando que Claude Code ejecuta en un momento fijo, por ejemplo antes de cada llamada a una herramienta. El proyecto está en GitHub como mksglu/context-mode y en npm como context-mode.

La idea central es esta. En lugar de que el modelo lea 50 archivos para contar funciones, escribe un pequeño script que hace el recuento, y solo el resultado entra en el contexto. Para eso, context-mode añade herramientas propias:

  • ctx_execute ejecuta código en un sandbox. Solo la salida estándar (stdout) entra en el contexto.
  • ctx_execute_file procesa un archivo dentro del sandbox. El contenido en bruto no llega al modelo.
  • ctx_batch_execute agrupa varios comandos y búsquedas en una sola llamada.
  • ctx_index y ctx_search trocean texto, lo guardan en un índice y lo consultan.
  • ctx_fetch_and_index descarga una URL, la indexa y la guarda en caché durante 24 horas.
  • ctx_stats, ctx_doctor, ctx_upgrade, ctx_purge y ctx_insight son utilidades.

El índice es SQLite con FTS5 (Full-Text Search 5, el módulo de búsqueda de texto completo de SQLite). Ordena los resultados con BM25, un algoritmo clásico de relevancia. Así, cuando el agente necesita una línea concreta de un log de 45 KB, pide una búsqueda y recibe solo los fragmentos que coinciden. El log completo se queda en disco, en tu máquina. Según el README, las bases de contenido con más de 14 días se borran al arrancar.

El proyecto resume su resultado con una frase propia: «315 KB becomes 5.4 KB. 98% reduction.» Es decir, 315 KB de salida se convierten en 5,4 KB. Es la cifra de referencia del propio proyecto, medida por sus autores en sus escenarios. No la hemos reproducido, y tu ahorro dependerá de cuánto pese la salida de herramientas en tu trabajo.

Hay una segunda función: la continuidad de la sesión. context-mode registra en SQLite las ediciones de archivos, las operaciones de git, las tareas y los errores. Cuando Claude Code compacta la conversación, un hook guarda una instantánea de unos 2 KB y otro la restaura al empezar la sesión compactada. El objetivo es que el modelo no olvide qué archivos estaba tocando.

context-mode y caveman: dos lados del mismo límite

Es fácil confundir las dos herramientas, porque las dos prometen alargar tu límite. Actúan sobre lados opuestos de la conversación.

La skill caveman para agentes de código cambia cómo escribe el modelo. Le pide respuestas telegráficas, sin frases de cortesía ni explicaciones largas. Reduce tokens de salida, el texto que Claude genera.

context-mode no toca cómo escribe el modelo. Su README lo dice de forma explícita: decide adónde va la información, no cómo habla el modelo. Reduce tokens de entrada, el texto que Claude lee, y en concreto la parte que viene de herramientas.

Por eso no compiten. Si tus sesiones son sobre todo lectura de código, logs y páginas web, context-mode actúa sobre la parte grande. Si tus sesiones son conversaciones largas con pocas herramientas y respuestas extensas, caveman actúa sobre lo que más pesa. Puedes usar las dos a la vez.

Cómo instalar context-mode en Claude Code

Cuando se escribió esta guía, en octubre de 2026, la versión más reciente en la página de releases y en npm era v1.0.169, publicada el 29 de junio de 2026. Revisa la página de releases antes de instalar, porque el proyecto publica versiones con frecuencia.

Necesitas Claude Code v1.0.33 o superior y Node.js 22.5 o superior (o Bun). Los hooks se ejecutan con node, así que Node tiene que estar en tu PATH. Comprueba las dos cosas:

claude --version
node --version

En Ubuntu 24.04, el paquete nodejs de apt instala Node 18, que es demasiado antiguo. Necesitas una versión 22 o posterior de otra fuente.

Dentro de Claude Code, añade el marketplace del proyecto e instala el plugin:

/plugin marketplace add mksglu/context-mode
/plugin install context-mode@context-mode

Reinicia Claude Code o ejecuta /reload-plugins. Después lanza el diagnóstico:

/context-mode:ctx-doctor

Todas las comprobaciones deben salir marcadas con [x]. El diagnóstico revisa los runtimes, los hooks, FTS5, el registro del plugin y las versiones instaladas. El comando del marketplace no lleva número de versión, así que la línea de versiones del diagnóstico es la forma de saber cuál tienes.

Si quieres fijar exactamente v1.0.169, el README documenta un modo solo MCP, y npx acepta la versión en el nombre del paquete:

claude mcp add context-mode -- npx -y context-mode@1.0.169

Este modo da las 11 herramientas ctx_*, pero sin hooks ni comandos de barra. Sin hooks, nada obliga al agente a usar el sandbox: Claude decide en cada caso si llama a ctx_execute o a Read. Para la mayoría de usuarios, el plugin es la opción correcta. Si no tienes clara la diferencia entre un plugin y un servidor MCP suelto, la guía de plugins de Claude Code la explica.

Qué hooks registra context-mode y qué intercepta

Instalar el plugin significa que un programa de terceros se ejecuta en cada llamada a herramienta. Conviene saber exactamente dónde. El archivo hooks/hooks.json del repositorio registra seis eventos, y cada uno ejecuta un script con node:

  • PreToolUse: se ejecuta antes de Bash, WebFetch, Read, Grep y Agent, antes de las propias herramientas de ejecución de context-mode y antes de cualquier herramienta MCP (el patrón mcp__). Aquí está el enrutado: el hook puede desviar la llamada hacia el sandbox o bloquear un comando peligroso.
  • PostToolUse: se ejecuta después de casi todas las herramientas de Claude Code, entre ellas Bash, Read, Write, Edit, Grep y todas las MCP. Registra eventos de la sesión: ediciones, operaciones de git, errores y tareas.
  • UserPromptSubmit: se ejecuta con cada mensaje que escribes. Registra tus decisiones y tus correcciones.
  • PreCompact: crea la instantánea antes de que Claude Code compacte el contexto.
  • SessionStart: restaura esa instantánea e inyecta las instrucciones de enrutado al empezar o reanudar una sesión.
  • Stop: registra el estado al final de cada turno del asistente.

De aquí salen dos consecuencias prácticas. La primera: context-mode recibe tus prompts, porque UserPromptSubmit se los pasa. Los guarda en local, pero conviene saberlo. La segunda: respeta tus reglas de permisos. Si bloqueas sudo en la configuración de Claude Code, el README indica que también queda bloqueado dentro de ctx_execute.

Si un día Claude Code se comporta de forma extraña con una herramienta, por ejemplo un Read que devuelve menos de lo esperado, estos hooks son el primer sitio donde mirar. Desactiva el plugin desde el menú /plugin y repite la acción. Si el resultado cambia, la causa está en el enrutado.

context-mode en OpenCode, Codex y otros agentes

El mismo paquete funciona en otros agentes. Cada uno se configura de forma distinta, porque cada agente expone los hooks a su manera.

En OpenCode, el plugin es nativo. Añade esto a opencode.json en la raíz del proyecto, o a ~/.config/opencode/opencode.json para todos tus proyectos:

{
  "$schema": "https://opencode.ai/config.json",
  "plugin": ["context-mode"]
}

Reinicia OpenCode y escribe ctx stats en la sesión. Si las herramientas responden, está activo. El README ofrece además un archivo opcional con reglas de enrutado, que se copia desde el paquete instalado en el proyecto:

cp node_modules/context-mode/configs/opencode/AGENTS.md AGENTS.md

En Codex CLI se añade el marketplace y se activan dos opciones en ~/.codex/config.toml:

codex plugin marketplace add mksglu/context-mode
[features]
plugin_hooks = true
hooks = true

En GitHub Copilot CLI, Gemini CLI, Cursor y VS Code Copilot el patrón es instalar el paquete de forma global y registrar el servidor MCP y los hooks en la configuración de cada agente:

npm install -g context-mode@1.0.169
copilot mcp add context-mode -- context-mode

La segunda línea es solo para Copilot CLI. Los archivos de hooks de Gemini CLI (~/.gemini/settings.json), Cursor (.cursor/hooks.json) y VS Code (.github/hooks/context-mode.json) tienen formatos distintos. Copia el bloque exacto del README para tu agente en lugar de adaptarlo del de otro. Si ejecutas el agente en un servidor, la guía de servidores MCP en un VPS cubre lo que cambia cuando no hay escritorio.

Licencia: Elastic License 2.0 no es código abierto OSI

context-mode usa la Elastic License 2.0 (ELv2), que npm declara como Elastic-2.0. El README la describe como «source-available»: el código es público, pero la licencia no está aprobada por la OSI (Open Source Initiative). Por tanto, no es código abierto en el sentido estricto del término.

Para un uso personal o dentro de tu empresa cambia poco. Puedes usarlo, modificarlo, hacer un fork y redistribuirlo. La licencia prohíbe ofrecerlo a terceros como servicio alojado o gestionado, y prohíbe quitar los avisos de licencia. Si tu empresa solo admite licencias aprobadas por la OSI, context-mode no cumple esa política. Consulta antes de instalarlo en los equipos de trabajo.

Qué recogen las analíticas desde v1.0.162

El README dice «Nothing leaves your machine»: nada sale de tu máquina, sin telemetría y sin cuenta. Eso describe el comportamiento por defecto. Existe además una capa opcional, Insight, un panel de analíticas alojado en context-mode.com. La página de Insight explica el interruptor: «the plugin sends nothing until ~/.context-mode/platform.json holds an Insight key». Sin ese archivo con una clave, el plugin no envía nada. Para desactivarlo, borras ese archivo.

Si lo activas, la misma página enumera lo que se envía: «Each event's type, tool name, file path, command type, exit code, time and project name, and the first 200 characters of the event's text». Según esa página, esos datos se enmascaran antes de salir para quitar formatos sensibles conocidos, como claves de API o direcciones de correo. Y añade: «File contents and full tool output are not sent.»

La versión v1.0.162, del 2 de junio de 2026, amplió lo que se registra. Sus notas de versión anuncian «privacy-first multilingual analytics» y nueve tipos de evento nuevos. Entre ellos están agent_usage, con tokens y coste por modelo, y session_settings_snapshot, con el modelo, el modo de permisos, el número de servidores MCP y los nombres de hasta ocho de ellos. Sobre tus prompts, las notas dicen que el nuevo campo prompt_word_tokens lleva «letter-only words ≥3 chars, lowercased, deduplicated». Es decir: las palabras de tu prompt con tres letras o más, en minúsculas y sin repetir. La plataforma las agrega así: «Aggregated per org+week; no individual prompt token surfaces in any UI.»

Léelo con calma. Una lista de palabras únicas no reproduce tu prompt completo, pero sí revela de qué trata. Las rutas de archivo y los nombres de proyecto también se envían. Si trabajas con código de un cliente, toma la decisión antes de crear platform.json.

Cómo medir tu propio ahorro, antes y después

Aquí no hay ningún porcentaje de ahorro, porque no lo hemos medido en tu flujo de trabajo, y la cifra del proyecto es la del proyecto. Puedes medirlo tú con herramientas que ya tienes.

Claude Code tiene dos vistas útiles. /context muestra cuánto de la ventana de contexto ocupa cada parte de la sesión: el prompt de sistema, las herramientas, los servidores MCP y los mensajes. /usage muestra cuánto has gastado de tu límite de Pro o Max en el periodo actual. context-mode añade /context-mode:ctx-stats, con los bytes que se quedaron fuera del contexto, el número de llamadas, el desglose por herramienta y la proporción de ahorro según sus propios cálculos.

Ten en cuenta una cosa: ctx-stats solo mide lo que context-mode evitó. Para tu límite necesitas /usage, así que apunta las dos vistas.

El método:

  1. Elige una tarea repetible con mucha salida de herramientas. Por ejemplo: «lee los logs de tests/ y dime qué tests fallan y por qué».
  2. Desactiva el plugin desde el menú /plugin, abre una sesión nueva y ejecuta la tarea.
  3. Al terminar, apunta lo que muestran /context y /usage.
  4. Activa el plugin, abre otra sesión nueva y ejecuta la misma tarea con el mismo prompt.
  5. Apunta /context, /usage y /context-mode:ctx-stats.

Compara el uso de la ventana de contexto entre las dos sesiones. Es la cifra más fiable, porque no depende de otras sesiones abiertas. El porcentaje de /usage sirve como confirmación, pero cambia con todo lo que hagas en ese periodo, así que no uses Claude para otra cosa durante la prueba. Repite la prueba dos o tres veces. El modelo no sigue exactamente los mismos pasos cada vez, y una sola ejecución puede dar una impresión falsa.

Si la diferencia es pequeña, lo normal es que tu sesión no tuviera mucha salida de herramientas. En ese caso el gasto de tu límite está en otro sitio. La guía de gestión del contexto en Claude Code cubre /compact, /clear y las demás opciones. Para ver qué partes de una sesión consumen más, lee también qué consume tu límite de Claude Pro.

Dónde context-mode no ayuda a tu límite

context-mode es un plugin para Claude Code y otros agentes de terminal. Fuera de ellos no hace nada.

El caso más común es el chat de claude.ai, en la web o en la app. Mucha gente llega al límite ahí: pega un documento largo o mantiene la misma conversación durante horas. Ese historial también se vuelve a leer en cada turno, pero no pasa por hooks ni por herramientas locales, así que context-mode no lo ve. Si tu límite se agota en el chat, este plugin no cambia nada. Lo que sí ayuda es empezar una conversación nueva cuando cambias de tema.

Tampoco ayuda si el gasto viene de lo que escribe el modelo, como respuestas largas o archivos generados desde cero. Eso son tokens de salida, y ahí la herramienta adecuada es otra.

Y tiene un coste fijo. Las once herramientas y las instrucciones de enrutado ocupan su propio espacio en el contexto, y lo puedes ver en /context. En una tarea corta, que lee tres archivos pequeños y termina, ese coste puede ser mayor que lo que se ahorra. El mismo razonamiento vale para cualquier extensión, y el coste en tokens del propio arnés del agente lo explica con más detalle.

FAQ

¿context-mode reduce el límite que gasto en Claude Pro o Max?

Reduce la parte del contexto que ocupa la salida de las herramientas, como archivos leídos, logs, páginas web o respuestas de API. Como el modelo vuelve a leer el contexto en cada turno, menos contexto significa menos texto procesado. Cuánto se nota en tu límite depende de tu sesión. Mídelo con /context, /usage y /context-mode:ctx-stats en dos sesiones iguales, una con el plugin y otra sin él.

¿Funciona context-mode en el chat de claude.ai?

No. context-mode es un plugin para Claude Code y otros agentes de terminal como OpenCode o Codex CLI. Actúa sobre las llamadas a herramientas mediante hooks, y el chat de claude.ai en la web o en la app no tiene esos hooks. Si tu límite se agota en el chat, este plugin no lo cambia.

¿context-mode envía mis datos o mis prompts a algún servidor?

Por defecto, no. Según la página de Insight, el plugin no envía nada hasta que el archivo ~/.context-mode/platform.json contiene una clave de Insight, y basta con borrarlo para desactivar el envío. Si lo activas, se envían metadatos de eventos con rutas de archivo y los primeros 200 caracteres del texto de cada evento. Las notas de v1.0.162 añaden un campo con las palabras únicas de tus prompts, que la plataforma agrega por organización y semana.

¿context-mode es software de código abierto?

No en el sentido de la OSI. Usa la Elastic License 2.0, que su README describe como «source-available». Puedes usar el código, modificarlo, hacer un fork y redistribuirlo, pero no ofrecerlo como servicio alojado a terceros. Si tu empresa solo acepta licencias aprobadas por la OSI, context-mode no cumple esa política.

¿Qué diferencia hay entre context-mode y caveman?

caveman cambia cómo escribe el modelo y reduce tokens de salida con respuestas más cortas. context-mode no toca cómo escribe el modelo. Reduce tokens de entrada, porque saca la salida de las herramientas del contexto y solo devuelve el fragmento relevante. Actúan sobre lados distintos del consumo y se pueden usar juntos.