31 марта 2026 года исследователь безопасности Чаофан Шоу обнаружил, что исходный код Claude Code утек в сеть.
Это флагманский CLI-инструмент Anthropic, который полностью доступен через файл source map, опубликованный в реестре npm. Около 1900 TypeScript-файлов и более 512 000 строк кода оказались в открытом доступе.
Архив быстро появился на GitHub, где уже набрал более 1100 звезд и 1900 форков.
Как это произошло
Source map — это файл для отладки: он связывает минифицированный код с исходным. Если включить его в npm-пакет при публикации, исходники оказываются в открытом доступе в читаемом виде.
Именно это и произошло — одна ошибка в конфигурации сборки открыла весь проект. Проверить, что попадает в пакет перед публикацией, можно одной командой:
npm pack --dry-run
Что внутри
Claude Code — не просто обертка над API. Это полноценная производственная система с около 40 инструментами и 50 slash-командами.
Инструменты построены по плагинной архитектуре: каждая возможность (чтение файлов, выполнение bash-команд, веб-запросы) это отдельный модуль с системой разрешений. Движок запросов занимает 46 000 строк и отвечает за все вызовы к API, стриминг и кэширование.
Нестандартные технические решения
Что интересно, Anthropic выбрала Bun вместо Node в качестве среды выполнения — ради быстрого старта и удаления неиспользуемого кода.
Для терминального интерфейса используется Ink — библиотека, позволяющая писать UI для терминала на React с управлением состоянием.
Валидация входных данных и API-ответов построена на Zod v4. Тяжелые зависимости вроде OpenTelemetry загружаются лениво, чтобы не замедлять запуск.
Мультиагентность и память
Claude Code умеет запускать подагентов (внутри проекта они называются «swarms») для параллельного выполнения сложных задач. Каждый агент работает в собственном контексте с отдельным набором разрешений.
Между сессиями инструмент сохраняет контекст о пользователе и проекте через файловую систему памяти. IDE-расширения для VS Code и JetBrains общаются с CLI через двунаправленный канал с JWT-аутентификацией.
