Анализ архитектуры Claude Code на основе утекших исходных карт

Технический стек и архитектура
Пакет Claude Code, опубликованный в npm 31 марта 2026 года, включал .map файлы, которые раскрыли полный исходный код на TypeScript. Кодовая база состоит примерно из 1900 файлов с более чем 512 000 строк кода на TypeScript.
Основные технологии
- Среда выполнения: Bun
- Язык: TypeScript (строгий режим)
- Терминальный интерфейс: React + Ink (React для CLI)
- Парсинг CLI: Commander.js с дополнительными типами
- Валидация схем: Zod v4
- Поиск кода: ripgrep через GrepTool
- Протоколы: MCP SDK, LSP (vscode-jsonrpc)
- API: Anthropic SDK
- Телеметрия: OpenTelemetry + gRPC (ленивая загрузка, ~400КБ + 700КБ)
- Флаги функций: GrowthBook
- Аутентификация: OAuth 2.0, JWT, macOS Keychain
- Управление состоянием: Zustand (хранилище на основе React)
Основные моменты структуры каталогов
Каталог src/ содержит:
main.tsx- Точка входа с CLI Commander.js + рендеринг React/Inkcommands.ts- Реестр команд с более чем 100 командамиtools.ts- Реестр инструментов с более чем 38 инструментамиTool.ts- Определения типов инструментовQueryEngine.ts- Механизм запросов LLM (~46К строк)query.ts- Основной цикл запросов (~1729 строк)context.ts- Сбор системного/пользовательского контекстаcost-tracker.ts- Отслеживание стоимости токеновcommands/- Реализации слэш-команд (100+)tools/- Реализации инструментов (38+)components/- Компоненты Ink UI (~140)hooks/- React Hooks + хуки разрешенийservices/- Интеграции внешних сервисов, включая API, MCP, LSP, сжатие контекста, извлечение памяти и аналитикуconstants/- Системные промпты + константыbridge/- Мост интеграции IDEcoordinator/- Координатор нескольких агентовplugins/- Система плагиновskills/- Система навыковmemdir/- Система постоянной памятиtasks/- Система управления задачамиstate/- Управление состояниемremote/- Удаленные сессииserver/- Серверный режимvim/- Режим Vim с полным конечным автоматомvoice/- Голосовой вводkeybindings/- Система горячих клавишscreens/- Полноэкранный интерфейс (Doctor, REPL, Resume)schemas/- Схемы конфигурации Zodmigrations/- Миграции конфигурацииquery/- Подмодули конвейера запросовoutputStyles/- Стили выводаbuddy/- Компаньон-спрайт (пасхальное яйцо)
Основной поток данных
Система следует следующей схеме потока данных:
- Пользовательский ввод (терминал / IDE / удаленно)
main.tsx→ парсинг Commander.jsREPL.tsx(основной цикл взаимодействия)QueryEngine.submitMessage()← жизненный цикл сессии- Этап подготовки сообщения включает:
applyToolResultBudget()- ограничение размера результатаsnipCompact()- компактирование сниппетовmicroCompact()- микро-компактированиеcontextCollapse()- схлопывание контекстаautoCompact()- автоматическое компактирование
Этот анализ основан на утекшем исходном коде, который дает представление о том, как производственный AI-агент для программирования управляет контекстом, инструментами и координацией нескольких агентов.
📖 Read the full source: r/ClaudeAI
👀 Смотрите также

Сервер MCP для локальных файлов XMind Mind Map выпущен
Разработчик опубликовал MCP-сервер, предоставляющий 22 инструмента для чтения и записи локальных файлов ментальных карт XMind. Сервер работает с совместимыми с MCP AI-клиентами, такими как Claude Desktop и Cursor.

LAP: Собрано более 1500 спецификаций API для использования в LLM с целью снижения галлюцинаций у Claude
LAP — это инструмент, который компилирует более 1500 реальных спецификаций API в облегчённый формат, оптимизированный для LLM, предоставляя проверенные конечные точки и параметры, чтобы предотвратить создание AI-агентами, такими как Claude, некорректных вызовов API.

嵌入Shell中的AI代理:终端缓冲与覆盖扩展
Оболочка с открытым исходным кодом и встроенным ИИ-агентом, который читает вывод терминала и вводит команды через плавающее наложение. Поддерживает локальные и облачные модели.

nah: Контекстно-зависимый охранник разрешений для Claude Code
nah — это PreToolUse-хук, который перехватывает каждый вызов инструмента в Claude Code, классифицируя команды по типам действий, таким как filesystem_read или git_history_rewrite, и применяя политики на основе контекста. Он запускает детерминированный классификатор за миллисекунды с возможностью эскалации к LLM для неоднозначных случаев.