> · 9 мин

Утечка исходников Claude Code — 512 000 строк TypeScript, тамагочи в терминале и роадмап, который никто не должен был увидеть

Утечка исходников 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 сессий, нет активного процесса консолидации.

Четыре фазы:

  1. Orient — определить, что изменилось
  2. Gather — собрать разрозненные наблюдения
  3. Consolidate — объединить, убрать противоречия, превратить «вроде бы работает» в проверенные факты
  4. 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 можно писать по документации, а не на ощупь.

Как защититься прямо сейчас

  1. Удалите v2.1.88 если ставили через npm. Переходите на нативный установщик: curl -fsSL https://claude.ai/install.sh | bash
  2. Проверьте lockfiles на вредоносный axios: grep -r "axios.*1.14.1\|axios.*0.30.4\|plain-crypto-js" package-lock.json yarn.lock bun.lockb. Если нашли — считайте машину скомпрометированной, ротируйте все секреты
  3. Не клонируйте непроверенные репозитории и не запускайте Claude Code внутри них — вручную проверьте .claude/config.json и hooks
  4. Ждите v2.1.89+ — Anthropic обещала «preventive measures»
  5. Следите за KAIROS — фичу явно выпустят в ближайшие месяцы, и она изменит workflow кардинально
$ ls ./related/

Похожие статьи

subscribe.sh

$ cat /dev/blog/updates

> Свежие заметки о программировании,

> DevOps и AI — прямо в мессенджер

./subscribe