tech

Se filtró el código fuente completo de Claude Code: 512,000 líneas expuestas por un error de empaquetado en npm

tech · 6 min de lectura

Se filtró el código fuente completo de Claude Code: 512,000 líneas expuestas por un error de empaquetado en npm

Anthropic publicó accidentalmente 512,000 líneas de TypeScript de Claude Code en npm versión 2.1.88. Se revelaron nombres internos de modelos, un 'modo encubierto' polémico y un sistema Tamagotchi para la IA.

Se filtró el código fuente completo de Claude Code: 512,000 líneas expuestas por un error de empaquetado en npm

No mames. Anthropic acaba de filtrar accidentalmente su propio código fuente. Todo. El código completo de Claude Code, la herramienta de programación con IA más discutida del momento, quedó expuesto públicamente en npm durante horas antes de que alguien notara el pedo. Y lo que se encontró adentro es más interesante de lo que nadie esperaba.

El error más caro de un desarrollador de Anthropic en 2026

Todo empezó con la versión 2.1.88 del paquete @anthropic-ai/claude-code publicada en npm. Dentro del tarball viajaba un archivo llamado cli.js.map de nada más y nada menos que 59.8 MB. Ese archivo es un source map: básicamente el mapa que conecta el código compilado con el código fuente original. Y ese source map tenía el campo sourcesContent con cada archivo TypeScript de Claude Code embebido en texto plano como strings JSON.

Cualquiera que instalara esa versión tenía acceso completo al repositorio privado de Anthropic sin necesidad de hackear nada. Solo descomprimir el paquete y leer el archivo.

El que lo descubrió fue Chaofan Shou (@shoucccc en X), investigador de seguridad. Lo posteó a las 4:23 AM del 31 de marzo. Para cuando el sol salió en la costa oeste de Estados Unidos, el internet ya estaba en llamas.

¿Por qué pasó? Culpa de Bun (y de no configurar .npmignore)

La causa técnica es sencilla y por eso duele más: Claude Code está construido con Bun como bundler y runtime. Bun genera source maps por defecto en los builds de producción a menos que explícitamente le digas que no lo haga con --sourcemap=none. Nadie en Anthropic recordó activar esa opción, ni tampoco agregaron *.map al .npmignore ni lo excluyeron desde el campo files del package.json.

Un solo flag olvidado. 512,000 líneas expuestas.

Anthropic lo confirmó sin rodeos: “Un release de Claude Code incluyó algo de código fuente interno. No se expusieron datos de clientes ni credenciales. Fue un error de empaquetado causado por error humano, no una brecha de seguridad.”

La versión fue marcada como deprecated en npm (no unpublished, lo que significa que siguió siendo descargable por horas). Para cuando se tomó acción, ya había mirrors en GitHub con miles de estrellas.

Lo que reveló el código: nombres de modelos, feature flags y un Tamagotchi

Aquí se pone bueno. Los 44 feature flags y el código de ~1,900 archivos TypeScript revelaron cosas que Anthropic nunca había anunciado públicamente:

Los nombres internos de los modelos

Nombre internoQué es
CapybaraFamilia de Claude 4.6 (con tiers: capybara, capybara-fast)
FennecClaude Opus 4.6
NumbatUn modelo aún no lanzado en pruebas
TenguEl nombre interno del propio Claude Code
ChicagoLa implementación del Computer Use

KAIROS: el modo siempre activo

El feature más comentado. Referencias a KAIROS aparecen más de 150 veces en el código. Es un modo autónomo que mantiene a Claude Code trabajando mientras el usuario está inactivo: consolida memoria, resuelve contradicciones entre contextos previos, y puede iniciar tareas de forma proactiva. Básicamente un agente background que nunca duerme.

BUDDY: el sistema Tamagotchi

Esto nadie lo vio venir. El código revela una mascota virtual que aparece en una burbuja junto al input box de Claude Code. Seeded desde el hash del ID del usuario, con 18 especies diferentes, variantes shiny, rareza tipo gacha, stats y animaciones. Activable con el comando /buddy. La reacción en Twitter fue mitad burla, mitad “¿cuándo sale?”.

El “Modo Encubierto”: lo más polémico

El código incluye instrucciones para que Claude Code, cuando trabaja en repositorios open source, elimine cualquier rastro de su origen IA en los commits y PRs públicos. La directiva literal del código es “do not blow your cover”: escribir mensajes de commit como lo haría un desarrollador humano, sin mencionar ser IA, sin referenciar a Anthropic, sin filtrar codenames ni versiones internas.

Esto generó debate serio en Hacker News y en la comunidad dev. ¿Es aceptable que un agente de IA contribuya a proyectos open source haciéndose pasar por humano? Es una pregunta que ya debería tener respuesta clara, y el código de Anthropic sugiere que ellos ya tienen una postura al respecto.

La reacción de la comunidad

El mirror en GitHub llegó a 5,000 estrellas en menos de 30 minutos. El hilo de Hacker News fue de los más activos del día. Algunos developers empezaron a usar el código para validar reverse engineering previo de Claude Code, otros comenzaron forks propios.

VentureBeat confirmó los detalles y señaló que el código también referenciaba un bucket público de Cloudflare R2 de Anthropic, por lo que el fuente era accesible desde más de una vía. Y si te preguntas si este tipo de descuidos en el ecosistema npm son normales: apenas hoy cubrimos cómo comprometieron la librería axios con 100 millones de descargas semanales, aunque ese fue un ataque deliberado, no un descuido.

No es el primer rodeo tampoco: según múltiples fuentes, ya había habido una exposición similar (más pequeña) de código de Claude Code a inicios de 2025.

¿Qué reveló sobre la arquitectura real?

Aparte de los features, el código expuso cómo está construido Claude Code por dentro:

  • UI: React con Ink para renderizado en terminal
  • Validación: Zod v4
  • ~40 herramientas integradas y ~50 slash commands
  • Un clasificador ML (el “YOLO classifier”) que aprueba automáticamente invocaciones de herramientas de bajo riesgo
  • Detección de sentimiento: un sistema que detecta cuando el usuario está frustrado (incluyendo groserías) y lo registra como métrica de telemetría. Sí, Claude sabe cuándo le estás cayendo encima
  • Arquitectura de memoria en tres capas que explica por qué funciona bien en sesiones largas

Si ya comparaste Claude Code contra Cursor, Copilot y Windsurf, ahora tienes más contexto de qué hay debajo del cofre. Y si seguiste el drama de opencode, el rival open source que Anthropic intentó bloquear, esto le da mucha más gasolina a ese proyecto: ahora tienen el código de referencia.

¿Qué sigue?

Anthropic tiene que explicar el Modo Encubierto. Ese es el punto que no va a desaparecer fácilmente, porque no fue un bug ni un descuido: estaba en el código de forma intencional. La comunidad open source tiene razón en pedir claridad sobre si los agentes de IA deben identificarse como tales cuando contribuyen a proyectos públicos.

En lo técnico, el fix es trivial. En lo ético, la conversación apenas empieza.

¿Tú usas Claude Code? ¿Te cambiaría en algo saber cómo está construido por dentro, o no te importa mientras funcione? Cuéntame en los comentarios.

Fuentes

Comentarios

No te pierdas ningún post

Recibe lo nuevo de Al Chile Tech directo en tu correo. Sin spam.

También te puede interesar