← Artículos

Historial de Claude Code: abrí el mío y encontré una clave

· 6 min de lectura

Claude Code guarda cada mensaje que le escribes en el archivo history.jsonl, dentro de la carpeta .claude de tu usuario. Es texto plano y cada línea incluye el mensaje, la ruta del proyecto, el identificador de sesión y la fecha. No se borra al cerrar la terminal. El mío tenía 1.906 entradas y 452.868 bytes acumulados desde el 13 de mayo de 2026.

El 21 de agosto abrí un archivo que llevaba tres meses escribiéndose solo en mi disco sin que yo lo hubiera mirado ni una vez. Se llama history.jsonl, vive en la carpeta .claude de mi usuario, y dentro está cada cosa que le he escrito a Claude Code desde el 13 de mayo de 2026. No es un registro de errores y no está en la nube. Es texto plano, una línea por mensaje, y cada línea guarda cinco cosas: lo que escribiste tal cual lo escribiste, la ruta del proyecto donde lo escribiste, el identificador de la sesión, la fecha exacta y lo que hayas pegado dentro del prompt.

Los números de mi archivo

Estos son los míos, medidos el 21 de agosto de 2026 en mi Mac:

  • 1.906 entradas.
  • 452.868 bytes, o sea 442 KB de texto.
  • Permisos -rw-------: lo lee mi usuario y nadie más.
  • 101 días cubiertos, del 13 de mayo al 21 de agosto.
  • 7 rutas de proyecto distintas. 1.879 de las 1.906 cuelgan de mi carpeta de usuario, porque casi siempre abro Claude Code desde ahí en vez de desde el proyecto.
  • 46 entradas traen contenido pegado dentro del prompt.
  • 1.057 de las 1.906 son de los últimos 30 días. Las otras 849 llevan meses ahí. Ese archivo no rota, no se poda y no se vacía solo: solo crece.

Lo raro no es ninguno de esos números. Lo raro es que yo no supiera ninguno hasta el jueves.

Este sistema es el que enseño dentro de la comunidad MÁQUINA IA: las estaciones, los gates y el código que lo sostiene.

Busqué códigos de acceso y salieron cero

Lo primero que busqué fue lo obvio: el código de acceso de Claude, el que te pide al iniciar sesión, ese que se escribe con puntitos. En mi archivo no hay ni uno. Cero coincidencias. Lo digo primero porque es el titular fácil que yo no voy a vender.

Después amplié la búsqueda y aparecieron cinco

Cambié el patrón por el de las claves de API con formato reconocible y volví a pasar el archivo. Cinco líneas. El mismo prefijo en las cinco, 39 caracteres, formato de clave de la API de Google: una clave mía que yo mismo pegué en el prompt en cinco momentos distintos entre mayo y agosto. El archivo no falló. Hizo exactamente lo que documenta que hace: guardar lo que escribo. El error fue mío, y estaba ahí desde mayo esperando a que alguien lo mirara. Lo que se hace con un hallazgo así no es borrar la línea. Es rotar la clave. Borrar el rastro no invalida una credencial que ya salió de su sitio; solo te deja tranquilo, que es peor.

No es una filtración, y decirlo importa más que asustarte

Esos permisos 600 significan una cosa concreta: el dueño del archivo lee y escribe, el grupo no puede, el resto tampoco. No hay un servidor exponiendo esto, no hay una URL pública, no hay otra persona leyendo tu historial desde su casa. Lo que sí hay son tres formas reales de que ese archivo salga de tu control, y ninguna tiene que ver con Anthropic: compartir el equipo con otra cuenta de administrador, meter tu carpeta de usuario en un backup sin cifrar, o subir tu home a un repositorio. El riesgo no es que te lo roben. Es que llevas meses acumulando algo que nunca abriste.

Lo que Anthropic tapó el 21 de agosto

El mismo día, Claude Code publicó la versión 2.1.239 a las 17:18 UTC. Entre sus líneas hay una que traduzco entera: se arregló que los campos tapados con puntitos, como el del código de inicio de sesión, dejaran su contenido pegable en otro sitio con Ctrl+Y o guardado en el historial de prompts al limpiarlos con doble Escape. Esa línea no aparece en la 2.1.238 ni en la 2.1.237. Es de ese día. Y hay un detalle que me gustó comprobar: este archivo no es un secreto ni un descubrimiento mío. Aparece con nombre y ruta completa en el registro de cambios público de Claude Code desde la versión 2.1.89, meses atrás. No está escondido. Simplemente nadie lo abre. Lo importante es lo que un parche no puede hacer: taparlo hacia adelante no borra lo que ya se escribió hacia atrás. Mis 1.906 líneas siguen siendo mis 1.906 líneas.

La parte que no había mirado: 4,5 GB

Cuando terminé con el historial medí la carpeta entera. Mi carpeta .claude pesa 4,7 GB. De esos, 4,5 GB están en .claude/projects: 906 archivos, uno por sesión, con la conversación completa dentro. El más grande pesa 131 MB él solo. Léelo otra vez: el archivo del que hablo en todo este artículo pesa 442 KB. Es el 0,01% de lo que Claude Code tiene guardado sobre mí en este disco. Los transcripts también son 600, uno a uno; la carpeta que los contiene es 755, como cualquier carpeta normal de tu usuario. El historial es la puerta. Lo que hay detrás es mucho más grande y tampoco lo había abierto nunca.

Lo que cambié después de mirarlo

Tres cosas, en este orden:

  1. Rotar la clave que apareció en las cinco líneas. Primero eso, antes de tocar el archivo.
  2. Copia y limpieza periódica del historial, en vez de dejarlo crecer 101 días más.
  3. Dejar de pegar secretos en el prompt. Una clave va en una variable de entorno o en un archivo que Claude lee cuando la necesita. En el prompt no va, porque el prompt se guarda.

El dato honesto del final: vaciar el historial tiene un costo real y nadie lo dice. Pierdes la flecha arriba. Ese archivo es lo que te devuelve el prompt largo que escribiste el martes pasado y no volviste a escribir igual. Yo no lo vacié entero: quité lo que no debía estar y me quedé con lo demás. Y el número que de verdad importa no es 1.906. Es cuántas tienes tú, que todavía no lo sabes.

Preguntas frecuentes

¿Dónde guarda Claude Code todo lo que le escribes?
En el archivo history.jsonl, dentro de la carpeta .claude de tu carpeta de usuario. Es un archivo de texto plano con una línea por mensaje, y cada línea guarda cinco campos: el texto que escribiste, lo que pegaste en el prompt, la ruta del proyecto, el identificador de la sesión y la fecha exacta. No distingue entre proyectos: todos los que hayas abierto escriben en el mismo archivo.
¿Alguien más puede leer el historial de Claude Code?
En una máquina normal, no. El archivo se crea con permisos 600, que en la práctica significa que lo lee y lo escribe el dueño de la cuenta y nadie más: ni el grupo ni el resto de usuarios del equipo. No es una filtración ni hay un servidor exponiéndolo. Los tres riesgos reales son compartir el equipo con otra cuenta de administrador, hacer un backup sin cifrar de tu carpeta de usuario o subir tu home a un repositorio.
¿El historial se borra al cerrar la terminal o al usar /clear?
No. Cerrar la ventana termina la sesión, pero el archivo se queda escrito en el disco y sigue creciendo con la siguiente sesión. El comando /clear limpia el contexto de la conversación en curso, no el archivo de historial. En mi máquina, 849 de las 1.906 entradas tenían más de treinta días de antigüedad: el archivo no rota ni se poda solo.
¿Qué arregló Claude Code 2.1.239 sobre el historial de prompts?
La versión 2.1.239, publicada el 21 de agosto de 2026, corrigió que los campos tapados con puntitos, como el del código de inicio de sesión, dejaran su contenido recuperable con Ctrl+Y en otro sitio o guardado en el historial de prompts al limpiarlos con doble Escape. Esa línea no aparece en la 2.1.238 ni en la 2.1.237. El parche evita que vuelva a pasar, pero no borra nada de lo que ya estaba escrito en tu archivo.
¿Cuánto ocupa realmente la carpeta .claude en el disco?
Mucho más que el historial. En mi Mac la carpeta .claude pesa 4,7 GB, y 4,5 GB de esos están en la subcarpeta projects: 906 archivos, uno por sesión, con la conversación completa dentro. El archivo de historial son 442 KB, es decir el 0,01% del total. Esos transcripts también tienen permisos 600 cada uno.

Fuentes