← Artículos

Cómo saber qué cambió de verdad en Claude Code

· 6 min de lectura

Claude Code guarda cada versión que instala en la carpeta ~/.local/share/claude/versions. Como el binario lleva dentro sus propios textos, puedes contar cuántas veces aparece una cadena en cada versión y ver en cuál nació una función: cero en las anteriores, alguna en la nueva. Es un diff de funciones que corres en tu máquina en dos minutos.

Claude Code se actualiza cada pocos días. Un martes te aparece un ajuste que el lunes no estaba, y la pregunta es siempre la misma: ¿esto es nuevo, o llevaba semanas ahí y yo no lo había visto?

Hay una forma de responderla con precisión de día, sin esperar a que nadie lo anuncie y sin instalar nada. La respuesta ya está en tu disco.

Por qué funciona esto

El instalador nativo de Claude Code no pisa la versión anterior: la deja guardada. En una máquina que lleva unas semanas actualizándose hay cuatro o cinco versiones conviviendo, una por cada actualización.

Cada una de esas versiones es un binario que lleva dentro todos sus textos: nombres de ajustes, descripciones de ayuda, mensajes de error. Una función que todavía no existe no tiene textos. Una que acaba de nacer los tiene, y la versión anterior no.

Ahí está el truco: no comparas código, cuentas cadenas de texto. Si una palabra aparece cero veces en la versión de ayer y varias veces en la de hoy, esa función nació hoy.

Qué necesitas

Paso 1 — mira qué versiones tienes

ls -1 ~/.local/share/claude/versions/

Y para saber cuándo se instaló cada una, que es la fecha que de verdad te interesa:

ls -lT ~/.local/share/claude/versions/

En mi máquina esa lista tenía cinco entradas: 2.1.231 y 2.1.232 del 13 de agosto, la .233 del 14, la .234 del 17 y la .235 del 18 a las 16:38. Esa columna de fechas es tu línea de tiempo.

Paso 2 — cuenta una cadena en todas las versiones

Elige un texto que identifique la función que te interesa: el nombre del ajuste, un trozo de su descripción, una palabra rara. Y cuéntalo en cada versión con una sola línea:

for v in ~/.local/share/claude/versions/*; do echo "$(basename "$v"): $(grep -oa "Continue automatically at usage limit" "$v" | wc -l | tr -d ' ')"; done

En mi máquina eso devuelve, exactamente:

Cero, cero, cero, dos, dos. Esa función nació en la 2.1.234, que se instaló el 17 de agosto. No "a mediados de agosto": el 17.

El parámetro -a de grep es el que importa: le dice que trate el binario como si fuera texto. Sin él, grep se limita a decirte que el archivo coincide y no te da el número.

Paso 3 — busca qué se estrenó, cuando no sabes qué buscar

El paso 2 sirve cuando ya sospechas de algo. Cuando no tienes ni idea de qué cambió, dale la vuelta: pídele a la máquina la lista de textos que la versión nueva tiene y la anterior no.

comm -13 <(strings -a ~/.local/share/claude/versions/2.1.234 | sort -u) <(strings -a ~/.local/share/claude/versions/2.1.235 | sort -u) | grep -i spell

Eso te devuelve solo lo nuevo, filtrado por la palabra que te interese. Quita el último filtro y tendrás la lista completa: es larga, porque un binario minificado trae mucho ruido, pero se lee en diagonal buscando frases en inglés que suenen a mensaje de ayuda.

Así encontré, en la 2.1.235 del 18 de agosto, esta descripción que la .234 no tenía:

Turn on spell checking of the prompt input (default: false)

Un corrector ortográfico para el prompt, apagado por defecto. Y con la misma técnica del paso 2: la palabra hunspell aparece cero veces en la .231, la .232, la .233 y la .234, y aparece en la .235. La función no es de "hace un tiempo". Es de ese día.

Paso 4 — lee la descripción del ajuste en vez de adivinarla

Esta es la parte que más tiempo ahorra y casi nadie usa. Los ajustes de Claude Code no son solo nombres: cada uno lleva su descripción escrita al lado, y esa descripción te dice el valor por defecto, qué acepta y qué hace.

strings -a ~/.local/share/claude/versions/2.1.235 | grep -o "Turn on spell checking of the prompt input (default: false)"

En el caso del corrector, el bloque completo tiene cuatro piezas: enabled para encenderlo, checker para elegir cuál (la lista literal del binario es aspell, hunspell, ispell, o auto para el primero que encuentre instalado), language para el diccionario, que se le pasa al corrector tal cual como hacen aspell --lang o hunspell -d, y color para el subrayado.

Es documentación de primera mano, escrita por quien programó la función, y la tienes antes que cualquier artículo que la explique.

Cómo encender el corrector de verdad

El ejemplo completo, porque aquí está la trampa: encender el ajuste no basta.

  1. Instala un corrector. En Mac con Homebrew: brew install hunspell (o brew install aspell).
  2. Dale un diccionario. Homebrew avisa de que hunspell no trae ninguno: los archivos .aff y .dic van en ~/Library/Spelling/ o /Library/Spelling/. Aspell instala los suyos por su cuenta.
  3. Enciende el ajuste en tu archivo de configuración de usuario, ~/.claude/settings.json, con el bloque "spellcheck": {"enabled": true}. Puedes añadir "checker": "hunspell" y "language": "es_ES" si no quieres que elija solo.
  4. Comprueba que el sistema los ve: command -v aspell hunspell ispell. Si ese comando no devuelve ninguna ruta, todavía no tienes nada instalado.

Un detalle que sale del propio binario y que te ahorra un rato de confusión: ese bloque se lee de la configuración de usuario, de flags y de la configuración gestionada. La descripción dice, literal, que se ignora en el .claude/settings.json del proyecto. Si lo pones ahí, no aplica.

Qué puede salir mal

Preguntas frecuentes

¿Dónde guarda Claude Code las versiones anteriores?
El instalador nativo las deja en la carpeta ~/.local/share/claude/versions, una por cada actualización que hayas instalado, sin borrar las anteriores. Puedes listarlas con ls -1 sobre esa carpeta, y ver la fecha de instalación de cada una con ls -lT. Esa fecha es la que te permite decir en qué día exacto apareció una función nueva.
¿Es seguro abrir el binario de Claude Code con grep o strings?
Sí, porque los dos comandos solo leen. Ni grep ni strings modifican el archivo ni ejecutan nada de lo que hay dentro: se limitan a mostrarte el texto legible que contiene. Es la misma operación que hacer una búsqueda dentro de un documento, solo que el documento es un programa.
¿Por qué me salen números distintos a los de este artículo?
Casi siempre porque estás contando de otra forma o en otra versión. Con grep -oa cuentas cada aparición de la cadena, mientras que con grep -c cuentas líneas que la contienen, y en un binario minificado una línea puede tener muchas apariciones. Lo que importa no es el número absoluto sino la comparación entre dos versiones con el mismo comando.
¿Sirve esto para saber qué hace una función nueva, o solo cuándo apareció?
Sirve para las dos cosas. Junto al nombre de cada ajuste, el binario guarda su descripción de ayuda, que suele indicar el valor por defecto y los valores aceptados. Buscar esa descripción con strings y grep te da la explicación oficial de la función escrita por quien la programó, normalmente antes de que exista ningún artículo o video que la explique.

Fuentes

MÁQUINA IA

La comunidad donde dejas de usar IA y empiezas a dirigirla.

Entrar a la comunidad →