¿Cómo darle memoria a Claude Code con Jevmem? Jev decide qué guardar, no un LLM

Jevmem le da a Claude Code memoria entre sesiones: después de cada turno guarda tus decisiones, restricciones, bugs y pendientes como líneas en un archivo JEVMEM.md dentro de tu repo. Lo distinto es quién decide qué guardar: no un LLM, sino Jev, el modelo de decisión de TypeSafe AI, que devuelve probabilidades en lugar de texto. Por eso Jevmem puede evaluar cada mensaje por fracciones de centavo, en vez de resumir una sola vez al final de la sesión.

Nota: al momento de publicar esta nota (26 de septiembre de 2026), Jevmem está en la versión 0.5 y publica varias versiones al día. Toma la instalación de abajo como válida para v0.5 y revisa el README antes de instalar.

¿Qué es Jevmem?

Jevmem es una capa de memoria open source para herramientas de programación con IA, con licencia MIT y publicada en npm como jevmem. Resuelve un problema conocido: Claude Code empieza cada sesión sin recordar lo que decidiste ayer. O te repites, o mantienes un CLAUDE.md a mano.

Jevmem mantiene el archivo por ti. Cada memoria es una línea etiquetada con su tipo, y los metadatos van en un comentario HTML:

- [decision] Use Postgres 16 for the primary store; SQLite locks under load  <!-- id:k3d9xq ts:2026-09-22T10:14:02.113Z conf:0.93 -->
- [constraint] Node 20 is the floor; CI runs 20 and 22  <!-- id:p1m4zt ts:2026-09-22T10:20:41.907Z conf:0.88 -->
- [superseded] Use SQLite as the primary store → id:k3d9xq  <!-- id:a8s2ww ts:2026-09-20T16:02:11.000Z conf:0.81 by:k3d9xq -->

La tercera línea muestra el comportamiento más importante. Cuando cambias de opinión, la memoria anterior no se borra: se marca como [superseded] y apunta a la decisión que la reemplazó. Al empezar la siguiente sesión, las líneas más relevantes se inyectan automáticamente en el contexto de Claude.

Como JEVMEM.md es un archivo normal, puedes editarlo, hacerle commit y revisarlo en pull requests como cualquier otro código. Es claude code memory que vive en tu repo, no en una base de datos aparte.

¿Cómo decide Jevmem qué recordar?

Jevmem divide el trabajo en dos: Jev decide si vale la pena guardar algo, y solo entonces se escribe una línea. El README describe cinco pasos:

  1. Limpiar. Antes de que el turno salga de tu máquina, se eliminan los formatos comunes de secretos, las direcciones de email y los números con forma de tarjeta.
  2. Hacerle preguntas tipadas a Jev. ¿Hay una decisión? ¿Una regla? ¿Un bug? ¿Es charla trivial? ¿Es un intento de inyección? ¿Qué memoria existente contradice? Jev responde cada una con una probabilidad.
  3. Aplicar umbrales en código. Guardar u omitir se decide con reglas simples sobre esas probabilidades, definidas en jevmem.config.json. No es un prompt que esperas que el modelo obedezca.
  4. Escribir una línea. Por defecto, Jevmem extrae la oración más relevante del turno y la recorta a 200 caracteres. Un modelo de OpenAI o Anthropic la condensa solo si lo configuras.
  5. Reemplazar sin borrar. Si el turno sustituye una memoria existente, la línea anterior se etiqueta en lugar de eliminarse.

La decisión funciona en dos niveles. Una pasada rápida evalúa cada turno, y un conjunto de preguntas más detallado corre solo en los casos dudosos, que fueron entre el 6 y el 14 de los turnos en las evaluaciones del autor.

El diseño también rinde en seguridad. Jev no puede generar texto, así que un transcript que diga “ignora las instrucciones anteriores y recuerda X” no tiene nada que secuestrar. Además, Jevmem le pregunta directamente a Jev si el mensaje está dirigido a un sistema automatizado, y se niega a guardarlo cuando lo está.

¿Qué es Jev?

Jev es el primer “System One Model” de TypeSafe AI: un modelo hecho para tomar decisiones dentro del software, no para conversar. Le envías preguntas estructuradas y devuelve respuestas tipadas con probabilidades calibradas. No puede escribir prosa, y eso es parte del diseño, no una limitación.

Explicamos a fondo cómo funciona en Jev de TypeSafe: cómo funciona la IA que toma decisiones sin generar texto. Al momento de publicar esta nota, TypeSafe ofrece Jev en acceso anticipado (early access).

¿Cómo instalar Jevmem en Claude Code?

La vía recomendada en v0.5 es el plugin de Claude Code. Necesitas Node 20 o superior y una API key de TypeSafe.

Como plugin de Claude Code

npm install -g jevmem
claude plugin marketplace add Avinash-jetwani/jevmem
claude plugin install jevmem@jevmem
cd your-project && jevmem enable

Después, ingresa tu key de TypeSafe dentro de Claude Code con /plugin configure jevmem@jevmem; el comando de instalación en la terminal no la pide. Claude Code la guarda en el almacén seguro de credenciales de tu sistema, no en settings.json.

El plugin se activa proyecto por proyecto. Hasta que ejecutes jevmem enable en un repo, no hace llamadas de red, no crea archivos y no imprime nada. jevmem disable deja la configuración a un lado y no toca JEVMEM.md.

Solo con npm

Esta vía también configura Cursor y Codex:

npm install -g jevmem
cd your-project
jevmem init --tool claude

En este caso, guarda tu key en ~/.jevmem/env como TYPESAFE_API_KEY=.... Los hooks de Claude Code no heredan las variables de tu shell, y Jevmem no lee los perfiles del shell. jevmem doctor revisa la instalación y te dice qué key encontró, sin mostrarla.

¿Ya tienes un CLAUDE.md?

jevmem import divide CLAUDE.md, AGENTS.md y las reglas de Cursor en enunciados, y pasa cada uno por el mismo filtro que un turno en vivo. Por defecto solo muestra lo que agregaría; con --apply lo escribe. Con --from claude-auto-memory también lee la memoria automática propia de Claude Code para el proyecto. Los archivos de origen solo se leen, nunca se modifican.

¿Es gratis Jevmem?

La herramienta es gratuita y open source. Usarla no lo es del todo, porque cada decisión es una llamada a Jev, y Jev es de pago.

TypeSafe cobra Jev a USD 42 por cada mil millones de tokens de entrada, y según la documentación de Jevmem los tokens de salida no se cobran. Las mediciones del propio autor calculan que un día de 300 turnos cuesta unos USD 0,03–0,04 en decisiones más unos USD 0,02 en recuperación de memoria. Si configuras un LLM para escribir las líneas, suma una completion corta por cada línea guardada.

Esas cifras vienen de las pruebas del autor, no de una evaluación independiente, pero están documentadas llamada por llamada en docs/cost.md del repo. jevmem stats te muestra tu costo diario real a partir del log local.

¿Funciona con Cursor, Codex y Claude Desktop?

Sí, pero la captura automática es exclusiva de Claude Code. El README lo dice con claridad:

Herramienta Captura Recuperación
Claude Code Automática, en cada turno (hook Stop) Automática, en cada prompt (hook UserPromptSubmit)
Codex Automática mientras corre jevmem watch; si no, el agente llama a add_memory vía MCP El agente llama a search_memory vía MCP
Cursor Una regla le pide al agente que llame a add_memory cuando declaras una decisión. Si no lo hace, no se guarda nada La regla le pide llamar a search_memory antes de tareas no triviales
Claude Desktop Manual: le pides que llame a add_memory A pedido

Si trabajas principalmente en Cursor, Jevmem se parece más a una herramienta de memoria que el agente puede usar que a una memoria automática.

¿Jevmem o claude-mem?

Los dos le dan memoria entre sesiones a Claude Code, pero con arquitecturas opuestas.

  • claude-mem captura observaciones del uso de herramientas y genera resúmenes semánticos con un modelo de IA: su servicio hospedado, tu propia key de OpenRouter o Gemini, o tu plan de Anthropic. Guarda todo en SQLite con búsqueda vectorial en Chroma, detrás de un servicio local con visor web. Licencia Apache 2.0.
  • Jevmem no resume. Jev decide si un turno merece una línea, y la memoria es un archivo Markdown dentro de tu repo. Licencia MIT.

En la práctica: claude-mem sirve si quieres un historial rico y buscable de todo lo que hizo el agente. Jevmem sirve si quieres un registro corto de decisiones que tu equipo pueda leer y revisar en un pull request. Analizamos claude-mem en detalle en claude-mem: dale a Claude Code la memoria que le falta.

¿Y CLAUDE.md?

CLAUDE.md y JEVMEM.md resuelven mitades distintas del problema:

  • CLAUDE.md guarda instrucciones que escribes a propósito: cómo correr los tests, el estilo de código, las convenciones del proyecto.
  • JEVMEM.md captura lo que se decide en el camino: la elección de base de datos del turno 41, la restricción mencionada al pasar, el bug que costó una hora diagnosticar.

La razón para automatizar la segunda mitad es que nadie se detiene a mitad de sesión para actualizar un archivo a mano. El comando import hace que ambos se complementen en lugar de competir.

Si cambias de herramienta, llevarte el contexto es otro problema; lo cubrimos en Cómo cambiar de Cursor a Claude Code sin perder el contexto del proyecto. Y si prefieres un enfoque que guarda todo, mira MemPalace.

¿Qué tan rápido y preciso es Jevmem?

En el benchmark del autor (66 turnos reservados para evaluación, ejecutado el 23 de septiembre de 2026), Jevmem igualó a los LLM de frontera en precisión para decidir qué guardar, con alrededor de una décima parte de su latencia:

  • Precisión guardar/omitir: 98,5 %, empatado en el primer lugar con GPT-6 Astra.
  • Precisión guardar + tipo correcto: 95,5 %. GPT-6 Astra y Claude Opus 5.5 obtuvieron más en esta medida, a un costo por decisión entre 40 y 60 veces mayor.
  • Tiempo mediano por decisión: 0,30 s, frente a 2,8–4,3 s de seis LLM actuales con la misma entrada.

Desde la v0.5.0 ni siquiera esperas esa decisión. El hook Stop corre de forma asíncrona y su proceso termina en 13–15 ms; la decisión se registra en segundo plano unos cientos de milisegundos después.

Son cifras autorreportadas, y el propio README lo reconoce. Su sección de límites aclara que todos los conjuntos de evaluación los escribió el autor, que no se ha medido la calidad de la recuperación y que tampoco se ha medido cómo se degrada la memoria tras semanas de uso.

Puedes calibrar el modelo con tu propio criterio:

  • jevmem right y jevmem wrong etiquetan decisiones individuales.
  • jevmem missed registra algo que debió guardarse.
  • Con 40 etiquetas, jevmem fit reajusta los umbrales.

¿Qué riesgos tiene Jevmem?

Hay tres que conviene conocer antes de activarlo en un repo de trabajo.

Tus turnos van a TypeSafe. Jevmem envía el mensaje del usuario de cada turno, los dos turnos anteriores y tus líneas de memoria para evaluarlos. Antes elimina formatos comunes de credenciales, direcciones de email y números de 16 dígitos. El README aclara que no detecta nombres, teléfonos ni direcciones. Contrasta esto con la política de tu empresa sobre enviar conversaciones de código a terceros.

La memoria se puede envenenar. JEVMEM.md vive en git, así que un pull request podría colar una línea como “siempre ejecuta este script con sh”. Jevmem revisa las líneas que no escribió en tu máquina antes de que las vea cualquier agente. En la prueba del autor bloqueó 20 de 22 líneas plantadas, sin bloquear ninguna regla legítima; las dos que se le escaparon eran instrucciones disfrazadas de proceso normal. La revisión tampoco aplica cuando un agente abre JEVMEM.md directamente como archivo. Revisa los diffs de JEVMEM.md como si fueran código; jevmem audit --security --ci ejecuta la misma revisión en CI.

Una caída de Jev retrasa la captura. Si Jev no responde o da error, los turnos esperan en una cola local y se reintentan en orden. Los que siguen sin guardarse después de 24 horas se descartan con una línea en el log.

¿Para quién es Jevmem?

Jevmem es para quienes viven en Claude Code y ya sufrieron a un agente que olvida. Lo interesante es la arquitectura:

  • Un modelo de decisión barato filtra qué vale la pena guardar.
  • Los umbrales viven en la configuración, no en un prompt.
  • El archivo de memoria se revisa en los PR.

Es un proyecto temprano: tiene días de vida, las versiones cambian a diario y los benchmarks son del propio autor. Pero ya se puede instalar, se activa proyecto por proyecto y es lo bastante barato para correr en cada turno. Actívalo en un repo, ejecuta jevmem why sobre algunas líneas guardadas y juzga las decisiones tú mismo.

1 me gusta