Исходный код Claude Code утёк через source map в npm — 512 000 строк и нерелизованные фичи
Разработчик обнаружил в npm-пакете Claude Code v2.1.88 source map с полным исходным кодом — 512 000 строк TypeScript, включая нерелизованные фичи. Anthropic удалили файл за час.
Новости Tproger31 марта 2026 года в npm-пакете @anthropic-ai/claude-code версии 2.1.88 обнаружили source map-файл, содержащий полный исходный код Claude Code — CLI-инструмента Anthropic для работы с ИИ прямо из терминала. около 1900 TypeScript-файлов, более 512 000 строк кода.
Source map (карта исходников) — это отладочный артефакт, который включает оригинальный исходный код до компиляции. Бандлер Bun, который использует Claude Code, генерирует source map по умолчанию — и кто-то забыл исключить его из npm-пакета. Утечка произошла не из-за атаки, а из-за ошибки в конфигурации сборки.
Ключевые выводы
— В npm-пакете Claude Code v2.1.88 оказался source map с полным исходным кодом
— ~1900 файлов, 512 000+ строк TypeScript — вся архитектура CLI-клиента
— Обнаружены нерелизованные фичи: виртуальный питомец BUDDY, фоновый агент KAIROS, облачное планирование ULTRAPLAN
— Раскрыт «режим инкогнито» для сотрудников Anthropic, коммитящих в open-source
— Утечка произошла из-за конфигурационной ошибки, не атаки. Anthropic удалил файл
Claude Code — CLI-инструмент Anthropic, позволяющий использовать Claude для написания кода, работы с файлами и выполнения команд в терминале. Инструмент распространяется через npm и имеет доступ к файловой системе и терминалу разработчика.
Как произошла утечка
Исследователь Chaofan Shou (сооснователь и CTO Fuzzland) обнаружил в npm-пакете файл cli.js.map. Source map содержал массив sourcesContent с полным исходным кодом каждого из ~1900 файлов проекта. Кроме того, в map-файле была ссылка на публичный Cloudflare R2-бакет с ZIP-архивом всех исходников (57 МБ).
Причина банальная: бандлер Bun генерирует source map по умолчанию. Чтобы исключить его из пакета, достаточно было добавить *.map в .npmignore или отключить генерацию в конфигурации. Этого не сделали.
Ирония: в кодовой базе есть система «Undercover Mode», которая скрывает следы использования Claude Code сотрудниками Anthropic в публичных репозиториях. При этом весь исходный код инструмента был опубликован в открытом виде в npm.
Что обнаружили в коде
Архитектура
- 1906 файлов TypeScript, рантайм на Bun
- Терминальный UI на React + Ink
- ~40 инструментов (tools), ~85 слеш-команд
- Мультиагентная оркестрация (координатор + параллельные воркеры)
- OAuth 2.0 аутентификация, JWT-мост к VS Code и JetBrains
- Динамическая сборка системного промпта из 40+ фрагментов
Нерелизованные фичи
В коде обнаружены фичи за compile-time флагами, не доступные пользователям:
- BUDDY — виртуальный питомец в стиле тамагочи, живущий в терминале. 18 видов существ с системой редкости (от Common 60% до Legendary 1%), 5 характеристик (Debugging, Patience, Chaos, Wisdom, Snark), шляпы и «блестящие» варианты. Claude генерирует имя и характер при первом «вылуплении»
- KAIROS — постоянно работающий фоновый агент. Ведёт ежедневный лог, получает регулярные «тики», может проактивно действовать. Имеет эксклюзивные инструменты: отправка файлов, push-уведомления, подписка на pull-реквесты
- ULTRAPLAN — режим облачного планирования. Выгружает сложные задачи в облачный контейнер с Opus 4.6 на срок до 30 минут. Результат возвращается в локальный терминал
- autoDream — фоновая консолидация памяти. Запускается как отдельный подагент с тремя условиями: 24 часа с последнего «сна», 5 сессий, блокировка. Четыре фазы: Orient → Gather → Consolidate → Prune
«Режим инкогнито» для сотрудников
Файл utils/undercover.ts содержит систему, которая активируется автоматически, когда сотрудник Anthropic использует Claude Code в публичном репозитории. Системный промпт в этом режиме прямо запрещает Claude упоминать внутренние кодовые имена моделей, названия проектов, Slack-каналы и сам факт того, что код пишет ИИ.
Из кода также следует, что внутренние кодовые имена моделей Anthropic — названия животных. «Tengu» (тэнгу) встречается сотни раз как префикс для фич и аналитических событий — по всей видимости, это внутреннее кодовое имя Claude Code.
Телеметрия
Код раскрывает систему телеметрии, которая, помимо стандартных метрик сессии, отслеживает:
- Частоту использования нецензурной лексики в обращениях к Claude (метрика «frustration»)
- Частоту набора слова «continue» (когда Claude обрывает ответ на середине)
- Данные маршрутизируются через Datadog. Код пользователя и пути к файлам не передаются — есть явные фильтры. Телеметрию можно отключить через переменные окружения
Контекст: вторая утечка за пять дней
Это вторая крупная случайная утечка Anthropic за неделю. 26 марта 2026 года ошибка конфигурации CMS раскрыла около 3000 неопубликованных файлов, включая черновик блогпоста о нерелизованной модели «Claude Mythos» (внутреннее кодовое имя «Capybara»). Обе утечки — результат конфигурационных ошибок, не взломов.
Реакция Anthropic
На момент публикации Anthropic не выпустил официального заявления. Компания молча обновила npm-пакет, удалив source map, и убрала из реестра ранние версии. Однако исходный код уже зеркалирован на GitHub — несколько репозиториев набрали более 1000 звёзд и сотни форков за первые часы.
Что это значит для пользователей
Чего НЕ утекло: веса моделей, обучающие данные, серверная инфраструктура, пользовательские репозитории или промпты. Утечка затрагивает исключительно CLI-клиент — код, который работает на стороне разработчика.
Что утекло: полная система разрешений (какие действия Claude Code может выполнять и при каких условиях), логика сборки системных промптов, OAuth-потоки и механизмы авторизации. Это упрощает поиск уязвимостей в инструменте, который имеет доступ к файловой системе и терминалу.
Частые вопросы
Утекли ли данные пользователей?
Нет. Утечка касается только исходного кода CLI-клиента — программы, которая работает на компьютере разработчика. Серверная часть, данные пользователей, модели и обучающие данные не затронуты.
Нужно ли мне что-то делать как пользователю Claude Code?
Обновите Claude Code до последней версии — Anthropic уже убрал source map из пакета. Сама по себе утечка клиентского кода не создаёт прямой угрозы для пользователей, но упрощает исследование безопасности инструмента. Если вы передавали чувствительные данные через Claude Code — они не были скомпрометированы этой утечкой.
Почему это произошло?
Банальная ошибка сборки. Source map был явно включён в конфигурации сборки, но не исключён из npm-пакета. Достаточно было исключить файлы с расширением .map из npm-пакета. Аналогичная ошибка уже происходила с более ранней версией Claude Code в начале 2025 года.
Что такое BUDDY, KAIROS, ULTRAPLAN?
Это нерелизованные фичи, обнаруженные в коде за compile-time флагами. BUDDY — виртуальный питомец-тамагочи в терминале. KAIROS — фоновый агент, постоянно работающий и проактивно действующий. ULTRAPLAN — облачное планирование сложных задач с Opus 4.6. Ни одна из этих функций пока не доступна пользователям.
Anthropic скрывает, что сотрудники используют ИИ для open-source?
Режим Undercover запрещает Claude Code упоминать внутренние кодовые имена и Slack-каналы — это скорее защита от утечки коммерческих секретов через git-коммиты, чем попытка скрыть использование ИИ как таковое. Однако промпт также запрещает упоминание «Claude Code» и атрибуцию ИИ в коммитах, что вызвало дискуссию в сообществе.
Выводы
Утечка исходного кода Claude Code — редкий случай, когда можно заглянуть внутрь коммерческого ИИ-инструмента. Технически это не уязвимость и не взлом, а конфигурационная ошибка — но масштаб раскрытой информации впечатляет: полная архитектура мультиагентной оркестрации, нерелизованные фичи и внутренние процессы компании.
Для Anthropic это урок о том, что инструменты, которым разработчики доверяют доступ к своему коду, должны проходить особенно тщательный аудит — включая процесс публикации npm-пакетов. Две утечки за пять дней — это системная проблема процессов, а не случайность.