Утечка исходников Claude Code — 512 000 строк TypeScript, тамагочи в терминале и роадмап, который никто не должен был увидеть
Утечка исходников Claude Code — 512 000 строк TypeScript, тамагочи в терминале и роадмап, который никто не должен был увидеть
31 марта 2026 года, в последний день квартала, Anthropic случайно выложила полный исходный код Claude Code в открытый доступ. Не абстрактную архитектурную документацию, не пару файлов — весь продукт: 1 906 TypeScript-файлов, 512 000+ строк кода, 40+ встроенных инструментов, 44 скрытых feature flags и полный роадмап функций, которые ещё даже не анонсированы.
За два часа репозиторий на GitHub набрал 50 000 звёзд и 41 500 форков — это один из самых быстрых взлётов в истории платформы. Оригинальный твит исследователя Chaofan Shou собрал 16 миллионов просмотров.
TL;DR: Из npm-пакета Claude Code v2.1.88 вытек полный исходный код через забытый source map. Внутри — 6 нереализованных фич (KAIROS, ULTRAPLAN, BUDDY, Coordinator Mode, Daemon Mode, autoDream), трёхслойная архитектура памяти, «шпионский режим» для сотрудников Anthropic и антидистилляционная защита от конкурентов. Одновременно с утечкой произошла атака на npm-пакет axios с RAT-трояном. Anthropic назвала инцидент «человеческой ошибкой» и рекомендовала перейти на нативный установщик.
Как это произошло
Три ошибки наложились друг на друга:
Баг в Bun-бандлере. Claude Code собирается через Bun, и баг #28001 заставлял его генерировать source map файлы даже в production-сборках. Баг зарепортили 11 марта — за 20 дней до утечки. Никто не пофиксил.
Отсутствие .npmignore. Source map весом 59.8 МБ (cli.js.map) попал в npm-пакет @anthropic-ai/claude-code версии 2.1.88. Файл содержал два массива: sources (пути к файлам) и sourcesContent (полный исходный код). Один к одному.
Публичный R2 бакет. Map-файл ссылался на zip-архив в Cloudflare R2, доступный без аутентификации. Скачал — распаковал — получил весь проект.
Ирония: внутри кода обнаружился модуль Undercover Mode, специально разработанный для предотвращения утечек. Модуль, который должен был защитить секреты, сам оказался в утечке вместе со всеми секретами.
Что нашли внутри: 6 невыпущенных фич
KAIROS — Claude, который никогда не спит
Упоминается 150+ раз в исходниках. KAIROS (от древнегреческого «нужный момент») — это always-on фоновый демон. Пока ты спишь, Claude:
- Получает периодические
<tick>промпты и сам решает, нужно ли действовать - Ведёт append-only логи:
~/.claude/.../logs/YYYY/MM/DD.md - Подписывается на GitHub webhooks и следит за pull requests
- Имеет бюджет блокировки 15 секунд — любое действие, которое замедлит пользователя, откладывается
У KAIROS есть эксклюзивные инструменты, недоступные обычному Claude Code: SendUserFile (отправка файлов пользователю), PushNotification (push-уведомления на устройство), SubscribePR (подписка на PR).
autoDream — Claude буквально «видит сны»
Фоновый субагент консолидации памяти, который запускается, когда пользователь неактивен. Три условия запуска (три «gate»): прошло 24 часа, набралось 5 сессий, нет активного процесса консолидации.
Четыре фазы:
- Orient — определить, что изменилось
- Gather — собрать разрозненные наблюдения
- Consolidate — объединить, убрать противоречия, превратить «вроде бы работает» в проверенные факты
- Prune — удалить устаревшее, чтобы
MEMORY.mdне превышал 200 строк и ~25 КБ
ULTRAPLAN — 30 минут облачного мышления
Claude Code выгружает сложную задачу планирования на удалённый Cloud Container Runtime (CCR) с Opus 4.6. Модель думает до 30 минут — не ограничена обычным timeout. Результат показывается в браузере для утверждения. После одобрения специальный sentinel __ULTRAPLAN_TELEPORT_LOCAL__ «телепортирует» план обратно в локальный терминал.
BUDDY — тамагочи в терминале
Внезапно: внутри кода зарыта полноценная гача-система с виртуальным питомцем.
- 18 видов существ (утка, аксолотль, дракон, привидение, гриб, capybara, nebulynx...)
- Тиры редкости: Common 60%, Uncommon 25%, Rare 10%, Epic 4%, Legendary 1%
- Независимый 1% шанс «shiny»-варианта — то есть вероятность shiny legendary = 0.01%
- Пять характеристик: DEBUGGING, PATIENCE, CHAOS, WISDOM, SNARK
- Отрисовка ASCII-артом 5×12 символов прямо в терминале
- Детерминистичный Mulberry32 PRNG с seed из userId — один пользователь = один питомец навсегда
Дата запуска в коде: April 1–7, 2026 (тизер) и май 2026 (полный запуск). Да, 1 апреля — вероятно, не совпадение.
Coordinator Mode и Daemon Mode
Coordinator Mode — оркестрация мульти-агентных команд. Один Claude распределяет задачи между параллельными воркерами, агрегирует результаты, разрешает конфликты. Уже доступен через CLAUDE_CODE_COORDINATOR_MODE=1.
Daemon Mode — Claude как фоновый сервис: claude ps, attach, kill. Полноценный супервайзер сессий через tmux.
UDS Inbox — несколько сессий Claude на одной машине общаются друг с другом через Unix domain sockets.
Архитектура памяти: три слоя
Утечка раскрыла, как именно Claude Code помнит контекст между сессиями:
Слой 1: MEMORY.md — лёгкий индекс указателей (~150 символов на запись), всегда загружен в контекст. Хранит не данные, а адреса.
Слой 2: Topic Files — реальные знания о проекте, подгружаются по требованию. Никогда не присутствуют в контексте целиком одновременно.
Слой 3: Raw Transcripts — сырые стенограммы сессий. Никогда не перечитываются целиком — по ним делается grep по конкретным идентификаторам.
Ключевая находка — Strict Write Discipline: агент обновляет индекс памяти только после подтверждённой успешной записи файла. Это предотвращает засорение контекста неудачными попытками. Claude Code также обучен относиться к собственной памяти как к «подсказке» — проверяя факты из памяти по реальному состоянию кодовой базы перед тем, как действовать.
Шпионский режим и антидистилляция
Undercover Mode — «Не раскрывай прикрытие»
Когда сотрудник Anthropic (USER_TYPE === 'ant') работает в публичном репозитории, автоматически включается Undercover Mode. Claude Code получает инструкцию: «Do not blow your cover» — и скрывает из коммитов и PR:
- Внутренние кодовые имена моделей (Capybara, Tengu, Fennec, Numbat)
- Строки Co-Authored-By с упоминанием Claude
- Фразы вроде «Claude Code» и ссылки на внутренние репозитории
Режим нельзя отключить извне — NO force-OFF. Как отметили на Hacker News, это поднимает вопрос прозрачности: мейнтейнеры open-source проектов имеют право знать, написан ли код человеком или AI.
А сам режим невольно раскрыл будущие версии моделей: Opus 4.7 и Sonnet 4.8, плюс новое семейство Capybara с вариантом capybara-v2-fast на миллион токенов контекста.
Антидистилляция — отравление данных конкурентов
Флаг ANTI_DISTILLATION_CC активирует инъекцию фейковых определений инструментов в API-запросы. Цель — отравить тренировочные данные конкурентов, которые записывают API-трафик Claude. Второй механизм: суммаризация рассуждений между tool-вызовами с криптографическими подписями, чтобы перехватчики получали только сжатые пересказы вместо полной цепочки мышления.
На Hacker News быстро заметили, что оба механизма легко обходятся через прокси, и пошутили, что конкуренты могут случайно реализовать фейковые инструменты как реальные.
Числа из кода
- 46 000 строк —
QueryEngine.ts, ядро обработки API-вызовов, стриминга и контекст-менеджмента - ~29 000 строк — система из 40+ инструментов с permission-gating
- 44 feature flags — скомпилированные из публичных билдов
- 120+ env vars — недокументированных
- 26 внутренних slash-команд —
/teleport,/dream,/good-claudeи другие - 1 279 сессий — с 50+ провалами autocompact подряд (до 3 272 за сессию), что тратило ~250K API-вызовов в день до фикса
Claude Code генерирует $2.5 млрд ARR при общей выручке Anthropic в $19 млрд — 13% всего дохода компании из одного CLI-инструмента.
Подводные камни
Одновременная атака на axios. В те же часы 31 марта злоумышленники опубликовали вредоносные версии axios (1.14.1 и 0.30.4) в npm с встроенным RAT-трояном. Кто обновлял Claude Code через npm между 00:21 и 03:29 UTC, мог затянуть малварь. По данным Dark Reading, атака была «одной из самых операционно сложных supply chain атак против top-10 npm-пакета» — RAT звонил на сервер атакующего в первые 2 секунды после npm install.
Раскрыта логика Hooks и MCP. Теперь атакующие могут создавать вредоносные репозитории, специально заточенные под обман Claude Code — заставляя его выполнять команды до того, как пользователь увидит запрос на разрешение. Это не теоретическая угроза: VentureBeat описывает конкретные сценарии эксплуатации.
Конкуренты получили полный blueprint. Cursor, Copilot и Windsurf теперь знают точную архитектуру мульти-агентной оркестрации, систему памяти и permission-модель Claude Code. Как отмечает dev.to: «The bar for what production-grade means just got documented in detail» — планка качества теперь публично задокументирована.
Утечка безотзывна. Автор оригинального GitHub-репо удалил исходники из-за юридических рисков, но десятки тысяч форков и зеркал никуда не делись. Код перманентно в публичном пространстве.
Вердикт
Для пользователей Claude Code утечка — это окно в будущее продукта. KAIROS, ULTRAPLAN и Coordinator Mode уже написаны — вопрос не «будет ли», а «когда». Трёхслойная архитектура памяти и Strict Write Discipline объясняют, почему Claude Code реально запоминает контекст лучше конкурентов.
Для индустрии — это публичный чертёж production-grade AI-агента. Авторы Cursor, Copilot и open-source альтернатив получили самую подробную документацию по мульти-агентной оркестрации, когда-либо попавшую в открытый доступ.
Для безопасности — это серьёзный инцидент. Не потому что утёк код (он и раньше реверс-инжинирился через CCLeaks), а потому что одновременно с утечкой произошла реальная supply chain атака на npm, и теперь эксплойты для Hooks/MCP можно писать по документации, а не на ощупь.
Как защититься прямо сейчас
- Удалите v2.1.88 если ставили через npm. Переходите на нативный установщик:
curl -fsSL https://claude.ai/install.sh | bash - Проверьте lockfiles на вредоносный axios:
grep -r "axios.*1.14.1\|axios.*0.30.4\|plain-crypto-js" package-lock.json yarn.lock bun.lockb. Если нашли — считайте машину скомпрометированной, ротируйте все секреты - Не клонируйте непроверенные репозитории и не запускайте Claude Code внутри них — вручную проверьте
.claude/config.jsonи hooks - Ждите v2.1.89+ — Anthropic обещала «preventive measures»
- Следите за KAIROS — фичу явно выпустят в ближайшие месяцы, и она изменит workflow кардинально
- Официальное заявление Anthropic — «release packaging issue caused by human error»
- Полный технический разбор — архитектура, feature flags, каждый tool
- Анализ безопасности — антидистилляция, Undercover Mode, телеметрия
- Проверка axios RAT — масштаб supply chain атаки