Конец марта 2026 года принёс неожиданный подарок для тех, кто любит разбирать вещи по винтикам. Npm-пакет Claude Code версии 2.1.88 оказался достаточно прозрачен, чтобы сообщество смогло декомпилировать и разложить по полочкам всю его внутреннюю кухню. Проект Claude Code Unpacked (ccunpacked.dev) систематизировал находки — от агентного цикла и 50+ встроенных инструментов до ещё не выпущенных функций вроде виртуального питомца в терминале. Давайте разберёмся, что из этого действительно меняет представление о том, как устроены ИИ-ассистенты для разработчиков.
Не чат-бот с плагинами, а агентный рантайм
Первое и главное, что стоит понять: Claude Code — это не обёртка над API с красивым интерфейсом. Это полноценная агентная среда исполнения (agent runtime), которая живёт в вашем терминале.
Когда вы вводите запрос, запускается цикл, который работает так:
⚙️ Вы отправляете промпт — хоть текст, хоть слеш-команду
⚙️ Claude решает: ответить текстом или вызвать инструмент (прочитать файл, выполнить команду, поискать в вебе)
⚙️ Инструмент выполняется, результат возвращается модели
⚙️ Модель анализирует результат и решает, нужен ли следующий шаг
⚙️ Цикл повторяется, пока задача не решена
Ключевой файл — query.ts, он же «мозг» системы. Это крупнейший файл во всей кодовой базе — 785 КБ чистой логики основного агентного цикла. Для масштаба: вся кодовая база Claude Code — примерно 163 000 строк TypeScript.
Что здесь по-настоящему интересно — философия Anthropic: минимум жёстких правил, максимум доверия модели. Нет сложных деревьев решений, классификаторов интентов или роутеров. Модель сама определяет, какой инструмент вызвать, в каком порядке и когда остановиться. Это принципиально отличается от подхода «workflow-builder», где разработчик вручную прописывает цепочки действий.
Как точно сформулировал автор одного из open-source проектов, вдохновлённых этой архитектурой: «Модель — это и есть агент. Код — это harness (обвязка). Стройте хорошие обвязки, агент сделает остальное».
50+ инструментов: от grep до мультиагентных команд
Декомпиляция показала, что Claude Code имеет доступ к более чем 50 встроенным инструментам. Это куда больше, чем следовало из документации. Они делятся на несколько категорий:
📁 Файловые операции — Read, Edit, Write, Glob, Grep, NotebookEdit. Базовый набор для навигации по кодовой базе. Примечательно, что для поиска по коду используется ripgrep — быстрый CLI-инструмент на Rust — а не какая-нибудь эмбеддинг-система. По данным из Telegraph-статьи, Anthropic экспериментировали с семантическим поиском (RAG через эмбеддинги), но отказались в пользу grep. Причины прагматичные: проще архитектура, нет зависимости от внешних сервисов эмбеддингов, нулевой риск утечки данных. Иногда инженерная простота побеждает модную технологию.
🖥️ Выполнение кода — Bash, PowerShell, REPL. Bash тут — настоящая «суперсила». Через него Claude может запускать любые CLI-инструменты: git, npm, docker, curl, make, и вообще всё, что можно набрать в терминале. Модель обучена на огромных объёмах данных командной строки, и это чувствуется.
🌐 Веб — WebFetch, WebSearch. Claude может гуглить, читать документацию, проверять ошибки. Не привязан к вашей локальной среде.
🤖 Мультиагентность — и вот тут начинается самое интересное. Целых 11 инструментов для оркестрации: AgentSendMessage, TaskCreate, TaskGet, TaskList, TaskUpdate, TeamCreate, TeamDelete, ListPeers и другие. Это полноценная система координации нескольких агентов.
Claude Code поддерживает два режима параллельной работы. Первый — субагенты (subagents): лёгкие, работают в том же процессе, подходят для быстрых параллельных задач вроде исследования кодовой базы. Второй — команды (teams): каждый участник получает отдельную tmux-панель с собственной сессией Claude, общение через общую шину сообщений. Это для настоящего параллелизма — один агент рефакторит бэкенд, другой обновляет фронтенд-тесты.
🔧 Системные и UX — AskUserQuestion (запросить ввод от пользователя), TodoWrite (вести список задач), SkillConfig (настройка навыков), Snip (сворачивание длинных результатов). Плюс блок из 80+ слеш-команд — от утилитарных /compact и /memory до любопытных /stickers, /good-claude и /btw.
Терминальный интерфейс на React — не шутка
Одна из самых неожиданных находок: весь терминальный UI Claude Code — это React-приложение, отрисованное через Ink (React-рендерер для CLI). Диалоги, индикаторы прогресса, запросы разрешений — всё это React-компоненты, использующие Yoga (flexbox-движок от Facebook) для вёрстки и ANSI-коды для стилизации.
Но ещё удивительнее то, что под капотом рендерера найдены оптимизации из мира игровых движков:
🎮 Int32Array-пул ASCII-символов для эффективного использования памяти
🎮 Bitmask-кодирование метаданных стилей для компактного представления
🎮 Оптимизатор патчей, который мержит перемещения курсора и отменяет парные hide/show
Для терминального приложения это впечатляющий уровень инженерии. Становится понятнее, почему Claude Code ощущается быстрее и отзывчивее многих аналогов.
Контекстное окно: как впихнуть невпихуемое
У моделей Claude есть ограничение контекста (~200K токенов). Это звучит как много, но при работе с реальными кодовыми базами заканчивается быстро. Внутри Claude Code работает сложная система управления этим бюджетом.
Распределение примерно такое:
📊 Системный промпт — 5–15K токенов (инструкции, описания инструментов, правила безопасности)
📊 Файлы CLAUDE.md — 1–10K (ваши проектные инструкции и конвенции)
📊 История диалога — динамически
📊 Результаты инструментов — содержимое файлов, вывод команд
📊 Резерв для ответа — ~40–45K (чтобы модели было где «подумать»)
Когда контекст заполняется на 75–92%, срабатывает авто-компактификация — система суммирует старые части диалога, сжимая их. Внутри кода обнаружены три стратегии: reactive compression (реактивная), micro-compression (микро) и trimmed compression (обрезающая).
Отдельная история — ленивая загрузка MCP-инструментов. Раньше определения всех подключённых инструментов грузились в контекст целиком, занимая до 55K токенов. С февраля 2026 года Claude Code подгружает описания инструментов по запросу через механизм Tool Search. Расход сократился до ~8.7K — экономия 85%. Когда платишь за каждый токен, такая оптимизация — это, по сути, бухгалтерская задача не хуже инженерной.
Ещё одна находка: система отслеживает 14 различных «векторов разрыва кеша» и использует «липкие защёлки» (sticky latches), предотвращающие инвалидацию кеша промптов при переключении режимов. Кеширование промптов — одна из ключевых оптимизаций для снижения стоимости API-вызовов, и архитектура Claude Code явно проектировалась с учётом этого.
Безопасность: пять слоёв между Claude и вашей файловой системой
Дать ИИ-агенту доступ к терминалу — рискованно. Anthropic это понимают, и система безопасности тут многослойная:
🛡️ Режимы работы — три уровня: default (спрашивать пользователя), bypass (разрешать всё автоматически) и strict (запрещать всё автоматически)
🛡️ Белые и чёрные списки — в settings.json можно точно указать, какие команды разрешены, а какие запрещены
🛡️ Хуки — скрипты, которые выполняются до и после вызова инструментов. Можно валидировать, логировать или блокировать действия
🛡️ Песочница ОС — Seatbelt на macOS, bubblewrap на Linux. Изоляция на уровне операционной системы
🛡️ Git-чекпоинты — Claude Code создаёт снапшоты перед изменениями. Если что-то пошло не так — можно откатиться одной командой
На практике большинство вызовов проходят мгновенно, потому что режим и белые списки покрывают типичные сценарии. Пользователь видит запрос на подтверждение только когда происходит что-то действительно необычное.
Скрытые функции: Buddy, Kairos и UltraPlan
И вот ради чего, честно говоря, многие полезли в исходники. В коде обнаружены несколько ещё не выпущенных функций:
🐾 Buddy — виртуальный питомец в терминале. Его вид и «редкость» определяются по ID вашего аккаунта. Абсолютно бесполезная и абсолютно очаровательная штука. Anthropic, видимо, решили, что даже суровым разработчикам нужна капля геймификации.
🧠 Kairos — персистентный режим с ежедневными логами и памятью, которая сохраняется между сессиями. Сейчас у Claude Code уже есть CLAUDE.md и MEMORY.md, но Kairos — это, видимо, следующий уровень: полноценная долговременная память.
📋 UltraPlan — режим долгосрочного планирования на моделях уровня Opus с окном исполнения до 30 минут. Для сложных архитектурных задач, где нужно не просто написать код, а продумать стратегию.
🎯 Coordinator Mode — главный агент дробит задачу на подзадачи и распределяет их между параллельными воркерами в изолированных git-worktree. По сути, мультиагентный менеджер проектов.
📱 Bridge — удалённое управление Claude Code с телефона или из браузера. С поддержкой подтверждения разрешений. Можно запустить долгую задачу на рабочей машине и контролировать процесс с дивана.
🌙 Daemon Mode — фоновое выполнение через tmux. Сессия продолжает работать, даже если вы закрыли терминал.
Моё мнение: почему это важно за пределами хайпа
Давайте честно: «утечка исходников» — это всегда хайп. Но за хайпом здесь стоят действительно важные архитектурные решения, которые стоит понимать любому, кто работает с AI-инструментами.
Во-первых, выбор grep вместо RAG — это урок для всей индустрии. Мы так привыкли к нарративу «эмбеддинги решают всё», что забываем: для навигации по кодовой базе ripgrep со скоростью гигабайт в секунду может быть надёжнее, чем семантический поиск с его ложными срабатываниями и зависимостью от качества чанкинга. Не каждая задача требует нейросети.
Во-вторых, архитектура «модель решает сама» — это смелый, но обоснованный выбор. Если вы уже платите за мощную модель, зачем строить вокруг неё ещё один слой принятия решений? Дайте модели инструменты и позвольте ей разобраться. Это контринтуитивно для разработчиков, которые привыкли контролировать каждый шаг, но результаты говорят сами за себя.
В-третьих, мультиагентная оркестрация — это не маркетинговый буллет-поинт, а рабочая система с двумя уровнями параллелизма. Субагенты для лёгких задач внутри одного процесса, команды с tmux для тяжёлого параллелизма. Когда я вижу такое разделение, я понимаю, что за этим стоит реальный опыт эксплуатации, а не whiteboard-архитектура.
При этом Claude Code — не серебряная пуля. Он не заменяет полноценную IDE. Интеграция с редакторами кода слабее, чем у Cursor. Контекстное окно в 200K токенов — это много, но для больших проектов всё равно приходится думать об управлении контекстом. И, конечно, стоимость API-вызовов при активном использовании набегает ощутимая.
Но если оценивать тренд — а тренд здесь в переходе от пассивных автокомплитеров к активным агентам, которые запускают команды, координируют подзадачи и помнят контекст между сессиями — то Claude Code сейчас задаёт планку. И по 163 000 строкам TypeScript видно, что за этой планкой стоит серьёзная инженерная работа, а не пара промптов поверх API.
Источники
🔗 Claude Code Unpacked — интерактивный анализ кодовой базы: ccunpacked.dev
🔗 Перевод-разбор на Telegra.ph: Заглядываем под капот Claude Code
🔗 Официальная документация Claude Code: How Claude Code works
🔗 Анализ архитектуры на DEV Community: Inside Claude Code's Architecture
🔗 Декомпилированный исходный код на GitHub: collection-claude-code-source-code
🔗 Образовательный проект learn-claude-code: shareAI-lab/learn-claude-code
🔗 Архитектура агентного цикла (Agent SDK): Agent Loop Docs
🔗 Подробный разбор на TechPlanet: Claude Code Unpacked: A Deep Dive