Полный исходный код Claude Code — терминального AI-агента от Anthropic с 82 000+ звёзд на GitHub — доступен любому, кто скачает npm-пакет и распакует source map. Это не баг последней версии: source map попала в npm-пакет в день релиза продукта — 24 февраля 2025 года. За 13 месяцев его изучили десятки исследователей, извлекли из него системные промпты, скрытые фичи и product roadmap — и ничего существенного не произошло, что заставляет задуматься: почему?
Чтобы ответить на него, нужна хронология.
Волна первая: февраль–март 2025
24 февраля 2025 года Anthropic выпустила Claude Code — терминальный AI-агент, который читает и редактирует код по команде на естественном языке. Инструмент распространялся через npm как пакет @anthropic-ai/claude-code. Внутри лежал минифицированный файл cli.mjs размером 23 мегабайта.
В тот же день разработчик Дэйв Шумейкер открыл этот файл в Sublime Text и обнаружил в конце строку из 18 миллионов символов — inline source map в формате base64. Source map — это стандартный механизм, который связывает минифицированный код с оригинальным исходником. Иными словами, внутри npm-пакета лежала полная карта для восстановления всего исходного кода Claude Code.
Шумейкер уехал к ветеринару. Пока он отсутствовал, Anthropic выпустила обновление (версия 0.2.9), в котором source map была удалена. Компания также удалила предыдущую версию пакета из npm-реестра и зачистила кэш. Реакция заняла приблизительно два часа — судя по временным меткам в npm-кэше Шумейкера, зафиксированным в его блог-посте от 27 февраля.
К тому моменту код уже разошёлся: 25 февраля, в 05:08 UTC, разработчик Daniel Nakov опубликовал репозиторий dnakov/claude-code с полным извлечённым исходным кодом. В тот же день тред на Hacker News, опубликованный пользователем npace12, вызвал активное обсуждение.
Шумейкер, вернувшись домой, обнаружил, что source map исчезла отовсюду — из npm, из кэша, из файла на его машине. Но Sublime Text хранит историю отмен, и комбинация ⌘+Z вернула удалённую строку. Он описал это 27 февраля.
Дальше события развивались быстро:
- 1 марта 2025 — Джеффри Хантли опубликовал блог-пост и репозиторий (877 звёзд) с другим подходом: он использовал LLM для cleanroom-деобфускации минифицированного JavaScript обратно в TypeScript.
- 7 марта 2025 — Lee Han Chung опубликовал детальный разбор архитектуры: системные промпты (включая директивы
megathinkиultrathink), парсинг языков через regex, MCP-интеграцию, настройку AWS Bedrock. - 30 марта 2025 — Рид Барбер опубликовал подробный технический анализ: агентный цикл, все инструменты (BashTool, FileEditTool, AgentTool и другие), система пермишенов, data flow.
Появились форки репозитория Nakov — leeyeel/claude-code-sourcemap, gasxia/claude-code-sourcemap — сохранившие код после того, как оригинальный репозиторий был заархивирован автором 4 марта.
Волна вторая: март 2026
Тринадцать месяцев спустя ситуация повторилась, причём по двум разным каналам.
7 марта 2026 — издание gentic.news обнаружило, что npm-пакет @anthropic-ai/claude-agent-sdk случайно содержит полный бандл CLI Claude Code — файл cli.js на 13 800 строк минифицированного JavaScript, версия 2.1.71, сборка от 6 марта 2026 года. Это другой вектор: не source map, а целый исполняемый файл внутри SDK.
30–31 марта 2026 — исследователь Chaofan Shou (@Fried_rice) обнаружил, что в npm-пакете @anthropic-ai/claude-code версии 2.1.88 снова присутствует файл cli.js.map размером 59.8 мегабайт — полная source map. На этот раз не inline (как в 2025 году), а как отдельный файл рядом с cli.js.
31 марта появились тред на Hacker News (от пользователя treexs), пост на Reddit r/LocalLLaMA (от Nunki08) и новые репозитории с извлечённым кодом, в том числе instructkr/claude-code.
Между двумя волнами Anthropic выпустила 363 версии пакета. В какой из них source map появилась снова — неизвестно.
На этом хроника заканчивается, и можно перейти к тому, что из неё реально извлекли.
Что нашли в исходном коде
Конкурентная разведка
Исходный код содержит feature flags — переключатели для функций, которые ещё не выпущены. Исследователи систематически их отслеживают.
Самый показательный случай: 24 января 2026 года разработчик Mike Kelly обнаружил в версии 2.1.19 скрытую мульти-агентную систему TeammateTool (кодовое название Swarms). 26 января ASCII News и paddo.dev опубликовали подробные разборы. 6 февраля 2026 года Anthropic официально анонсировала agent teams вместе с Opus 4.6 — через две недели после того, как сообщество уже задокументировало эту функцию.
Как написал один из комментаторов в HN-треде второй волны: «The big loss for Anthropic here is how it reveals their product roadmap via feature flags» — главная потеря для Anthropic в том, что feature flags раскрывают product roadmap.
Помимо TeammateTool, в коде обнаружены: «Kairos» (assistant mode), «Buddy System» (первоапрельский тамагочи-компаньон с ASCII-артом), «Undercover mode» (режим зачистки внутренней информации Anthropic). Alex Sorokoletov ведёт трекер версий Claude Code, документируя feature gates и модели с каждым релизом. В одном из ранних разборов он обнаружил 83 недокументированных переменных окружения.
Системные промпты Claude Code тоже извлекаются из source map. Репозиторий Piebald-AI/claude-code-system-prompts обновляется с каждой новой версией и содержит все промпты, описания 18 встроенных инструментов, промпты субагентов (Plan, Explore, Task) и служебные промпты.
Безопасность
В феврале 2026 года Check Point Research раскрыла две критических уязвимости: CVE-2025-59536 (удалённое выполнение кода через hooks в файлах проекта) и CVE-2026-21852 (утечка API-ключей через подмену ANTHROPIC_BASE_URL до подтверждения доверия).
Обе уязвимости позволяли скомпрометировать машину разработчика при клонировании вредоносного репозитория. Anthropic их исправила. О находке написали The Hacker News, SecurityWeek, The Register и Dark Reading.
Прямой связи между утечкой source maps и обнаружением этих CVE не установлено — Check Point не указывает source map как источник. Однако знание внутренней архитектуры инструмента сужает область поиска уязвимостей.
Экосистема
Вокруг извлечённого кода выросла инфраструктура: hitmux/HitCC (433 звезды) — полная документация логики CLI; N1-AI/claude-hidden-toolkit — каталог 37 внутренних инструментов Claude; Yuyz0112/claude-code-reverse (2 287 звёзд) — визуализация LLM-взаимодействий.
Последствий набралось немало, однако продукт продолжает расти, и это требует объяснения.
Три барьера, которые защищают продукт без защиты кода
Код — это клиент, ценность — на сервере
Claude Code — терминальное приложение на React и Ink, которое принимает команды пользователя, отправляет их в Claude API, получает ответ и вызывает инструменты (bash, file edit, grep). Вся интеллектуальная ценность — модели Opus, Sonnet, Haiku — находится на серверах Anthropic. Скопировать клиент без доступа к API — всё равно что скопировать пульт от телевизора без телевизора.
Проприетарная лицензия
Лицензия npm-пакета указана как SEE LICENSE IN README.md — это не MIT, не Apache, не какая-либо open-source лицензия. Использование кода за пределами условий лицензии является нарушением copyright.
Anthropic судится
19 марта 2026 года Anthropic подала иск против OpenCode — стороннего инструмента, который использовал внутренние API Claude Code, чтобы пользователи подписки Max (200 долларов в месяц) могли получать токены по сниженной цене через чужой клиент. OpenCode удалил соответствующие плагины в версии 1.3.0. В феврале 2026 года Anthropic обновила Terms of Service, явно запретив использование Claude через сторонние harness-ы.
Конкуренты (Cline, Goose, Aider) пишут собственные реализации тех же архитектурных паттернов — REPL, tool use, субагенты — не копируя код Claude Code. Для этого достаточно понять архитектуру, а не воспроизводить файлы.
Открытый код без open source
Полный исходный код коммерческого продукта лежит в публичном npm-реестре 13 месяцев. Его изучили, разобрали, задокументировали. Из него извлекли roadmap, промпты и скрытые фичи. За эти 13 месяцев продукт прошёл через 363 версии и набрал 82 000+ звёзд на GitHub, компания активно преследует тех, кто пытается использовать её API через сторонние клиенты, а лицензия остаётся проприетарной.
Возникает вопрос: это ошибка, которую не могут исправить, или ситуация, с которой можно жить? Claude Code де-факто прозрачен, но де-юре закрыт — конкуренты видят архитектуру, однако не могут воспроизвести продукт, а сообщество строит экосистему вокруг чужого кода, которым не владеет.
Для индустрии, привыкшей к бинарному выбору между open source и проприетарным кодом, это непривычная модель: код виден всем, но принадлежит одной компании, и пока ценность продукта определяется серверной стороной, эта модель, по-видимому, работает.