- BrainTools - https://www.braintools.ru -

Выкладывание закрытых проприетарных исходников может жёстко караться GitHub. Поэтому я их мгновенно переложил на GitVerse в свою организацию Anarchic, пока то репо не забанили на GitHub по DMCA.
Вопросы ко мне со стороны Anthropic тоже могут возникнуть, но на этот случай тоже есть несколько обходных манёвров. Если они всё-таки удосужатся приехать лично в Санкт-Петербург и написать на меня заявление участковому Василеостровского района, есть люди и площадки и в других странах тоже.
В общем, не буду томить.
Вот ссылка: https://gitverse.ru/anarchic/claude-code [1]
Репозиторий снабжён подробным README, автор которого всё хорошо описал, а я здесь привожу краткий перевод на русский язык.
Кому интересен оригинал — могут сходить в оригинальный репозиторий и сами всё посмотреть. Автор также перепостил разбор в своём блоге [2].
Shameless plug. Если вам интересны подобные сливы, всякая инфа про джейлбрейки нейросетей и просто AI-новости — заходите ко мне в Телегу [3] и на YouTube [4].
Сегодня (31 марта 2026 года) Chaofan Shou обнаружил в X (бывш. Twitter) нечто, что Anthropic явно не планировала показывать миру: весь исходный код Claude Code, официального CLI-инструмента Anthropic для программирования с помощью Claude, лежал на виду в реестре npm — через файл sourcemap, попавший в опубликованный пакет.
Этот репозиторий — резервная копия утёкшего исходного кода, а данная статья — полный разбор содержимого: как произошла утечка и, что важнее всего, что именно мы теперь знаем из того, что не предназначалось для публики.
Поехали.
Вот эта часть вызывает реакцию [5] «…серьёзно?».
Когда вы публикуете JavaScript/TypeScript-пакет в npm, тулчейн сборки часто генерирует файлы source map (.map-файлы). Эти файлы — мост между минифицированным/собранным продакшн-кодом и исходниками: когда что-то падает в продакшне, стек-трейс указывает на настоящую строку в оригинальном файле, а не на какую-нибудь нечитаемую строку 1, колонку 48293 минифицированного блоба.
Но фишка в том, что source map содержит оригинальный исходный код. Буквально, в сыром виде, встроенный как строки в JSON-файл.
Структура .map-файла выглядит примерно так:
{
"version": 3,
"sources": ["../src/main.tsx", "../src/tools/BashTool.ts", "..."],
"sourcesContent": ["// ВЕСЬ оригинальный исходный код каждого файла", "..."],
"mappings": "AAAA,SAAS,OAAO..."
}
Массив sourcesContent? Там всё. Каждый файл. Каждый комментарий. Каждая внутренняя константа. Каждый системный промпт. Всё это лежит в JSON-файле, который npm радостно отдаёт любому, кто запустит npm pack или просто откроет содержимое пакета в браузере.
Это не новый вектор атаки. Такое случалось раньше и, честно говоря, случится снова.
Ошибка [6] почти всегда одна и та же: кто-то забывает [7] добавить *.map в .npmignore или не настраивает бандлер на пропуск генерации source map для продакшн-сборок. В бандлере Bun (который использует Claude Code) source map генерируются по умолчанию, если явно не отключить.
Самое смешное — в коде есть целая система под названием «Режим прикрытия» (Undercover Mode) [8], специально разработанная для предотвращения утечки внутренней информации Anthropic.
Они построили целую подсистему, чтобы их ИИ случайно не засветил внутренние кодовые имена в git-коммитах… а потом отгрузили весь исходный код в .map-файле. Вероятно, руками самого Claude.
Если вы жили в пещере: Claude Code — это официальный CLI-инструмент Anthropic для кодирования с Claude и самый популярный AI-агент для программирования.
Снаружи он выглядит как отполированный, но относительно простой CLI.
Изнутри это 785-килобайтный main.tsx [9] — входная точка, кастомный React-рендерер для терминала, 40+ инструментов, система мультиагентной оркестрации, фоновый движок консолидации памяти [10] под названием «dream» (сон [11]) и многое другое.
Хватит болтовни — вот действительно крутые вещи из исходного кода, которые автор репозитория нашёл за вечер глубокого погружения:
Без шуток.
В Claude Code встроена полноценная система компаньона в стиле тамагочи под названием «Buddy». Детерминистическая гача-система с редкостью видов, блестящими (shiny) вариантами, процедурно сгенерированными характеристиками и описанием души, которое Claude пишет при первом «вылуплении» — прямо как в OpenClaw.
Всё это живёт в buddy/ [12] и доступно только за compile-time feature flag BUDDY.
Вид вашего компаньона определяется ГПСЧ Mulberry32 — быстрым 32-битным генератором псевдослучайных чисел, засеянным хешем userId с солью 'friend-2026-401':
// Mulberry32 PRNG — детерминистический, воспроизводимый для каждого пользователя
function mulberry32(seed: number): () => number {
return function() {
seed |= 0; seed = seed + 0x6D2B79F5 | 0;
var t = Math.imul(seed ^ seed >>> 15, 1 | seed);
t = t + Math.imul(t ^ t >>> 7, 61 | t) ^ t;
return ((t ^ t >>> 14) >>> 0) / 4294967296;
}
}
Один и тот же пользователь всегда получает одного и того же компаньона.
Названия видов скрыты через массивы String.fromCharCode() — Anthropic явно не хотела, чтобы они всплывали при поиске по строкам. В раскодированном виде полный список:
|
Редкость |
Виды |
|---|---|
|
Обычные (60%) |
Pebblecrab, Dustbunny, Mossfrog, Twigling, Dewdrop, Puddlefish |
|
Необычные (25%) |
Cloudferret, Gustowl, Bramblebear, Thornfox |
|
Редкие (10%) |
Crystaldrake, Deepstag, Lavapup |
|
Эпические (4%) |
Stormwyrm, Voidcat, Aetherling |
|
Легендарные (1%) |
Cosmoshale, Nebulynx |
Сверх того, есть 1% шанс на блестящий (shiny) вариант, полностью независимый от редкости. Так что шанс получить Shiny Legendary Nebulynx составляет 0,01%.
Для каждого компаньона процедурно генерируются:
5 характеристик: DEBUGGING, PATIENCE, CHAOS, WISDOM, SNARK (от 0 до 100 каждая)
6 стилей глаз и 8 вариантов шляп (часть заблокирована за редкостью)
«Душа» — личность, которую Claude генерирует при первом вылуплении, написанная от лица персонажа
Спрайты отрисовываются как ASCII-арт высотой в 5 строк и шириной в 12 символов с несколькими кадрами анимации. Есть анимации ожидания, анимации реакций, и компаньон сидит рядом с вашей строкой ввода.
В коде упоминается период 1–7 апреля 2026 как окно тизера (вероятно, к Пасхе?), а полный запуск запланирован на май 2026. У компаньона есть системный промпт, который сообщает Claude:
Маленький {вид} по имени {имя} сидит рядом с полем ввода пользователя
и иногда комментирует в пузыре речи. Ты — не {имя}, это отдельный
наблюдатель.
То есть это не просто косметика — у компаньона своя личность, и к нему можно обращаться по имени. Остаётся надеяться, что они это выпустят.
Внутри assistant/ [13] есть целый режим под названием KAIROS — постоянно работающий ассистент Claude, который не ждёт, пока вы что-то напечатаете. Он наблюдает, ведёт логи и проактивно действует на основании замеченного.
Режим доступен за compile-time feature flags PROACTIVE / KAIROS и полностью отсутствует во внешних сборках.
KAIROS ведёт append-only дневные лог-файлы — записывает наблюдения, решения и действия на протяжении дня. С регулярным интервалом он получает <tick>-промпты, по которым решает, стоит ли действовать проактивно или лучше промолчать.
У системы есть бюджет блокировки в 15 секунд — любое проактивное действие, которое заблокировало бы рабочий процесс пользователя дольше 15 секунд, откладывается. Claude пытается быть полезным, не будучи назойливым.
Когда KAIROS активен, есть специальный режим вывода — Brief: предельно лаконичные ответы, рассчитанные на постоянного ассистента, который не должен заваливать ваш терминал. Представьте разницу между болтливым приятелем и профессиональным помощником, который говорит только когда ему есть что сказать.
KAIROS получает инструменты, недоступные обычному Claude Code:
|
Инструмент |
Назначение |
|---|---|
|
SendUserFile |
Отправка файлов пользователю (уведомления, сводки) |
|
PushNotification |
Push-уведомления на устройство пользователя |
|
SubscribePR |
Подписка на активность пулл-реквестов и их мониторинг |
Дикая штука с инфраструктурной точки зрения [14].
ULTRAPLAN — режим, в котором Claude Code выгружает сложную задачу планирования в удалённую сессию Cloud Container Runtime (CCR), работающую на Opus 4.6, даёт ей до 30 минут на размышление и позволяет вам одобрить результат из браузера.
Базовый flow:
Claude Code определяет задачу, требующую глубокого планирования
Поднимает удалённую CCR-сессию через конфиг tengu_ultraplan_model
Ваш терминал показывает состояние поллинга — проверка каждые 3 секунды
Тем временем в браузерном UI можно наблюдать за процессом планирования и одобрить/отклонить результат
При одобрении используется специальное sentinel-значение __ULTRAPLAN_TELEPORT_LOCAL__, которое «телепортирует» результат обратно в ваш локальный терминал
Это, пожалуй, одна из самых крутых вещей в утечке.
В Claude Code есть система autoDream (services/autoDream/ [15]) — фоновый движок консолидации памяти, работающий как форкнутый субагент. Название выбрано намеренно. Это Claude… видящий сны.
Забавное совпадение: у автора репозитория была точно такая же идея для LITMUS на прошлой неделе — субагенты OpenClaw, которые в свободное время творчески ищут интересные новые статьи [16].
Сон [17] не запускается когда вздумается. У него система триггеров с тремя вентилями:
Временной вентиль: 24 часа с последнего сна
Сессионный вентиль: минимум 5 сессий с последнего сна
Блокировочный вентиль: захват блокировки консолидации (предотвращает параллельные сны)
Все три должны пройти. Это предотвращает как избыточные, так и недостаточные сны.
При запуске сон проходит четыре строгие фазы из промпта в consolidationPrompt.ts [18]:
Фаза 1 — Ориентация: ls директории памяти, чтение MEMORY.md, просмотр существующих тематических файлов для улучшения.
Фаза 2 — Сбор свежих сигналов: поиск новой информации, достойной сохранения. Источники по приоритету: дневные логи → дрейфующие воспоминания → поиск по транскриптам.
Фаза 3 — Консолидация: запись или обновление файлов памяти. Перевод относительных дат в абсолютные. Удаление опровергнутых фактов.
Фаза 4 — Очистка и индексация: MEMORY.md должен оставаться в пределах 200 строк и ~25 КБ. Удаление устаревших указателей. Разрешение противоречий.
В промпте буквально сказано:
«Вы выполняете сон — рефлексивный проход по вашим файлам памяти. Синтезируйте недавно изученное в устойчивые, хорошо организованные воспоминания, чтобы будущие сессии могли быстро сориентироваться.»
Субагент-сновидец получает bash только для чтения — он может смотреть ваш проект, но не изменять его. Это чисто проход консолидации памяти.
Пожалуй, самая интересная находка с точки зрения корпоративной стратегии.
Сотрудники Anthropic (определяемые по USER_TYPE === 'ant') используют Claude Code в публичных/открытых репозиториях. Режим прикрытия (utils/undercover.ts [19]) не даёт ИИ случайно раскрыть внутреннюю информацию в коммитах и пулл-реквестах.
При активации в системный промпт внедряется:
## РЕЖИМ ПРИКРЫТИЯ — КРИТИЧЕСКИ ВАЖНО
Вы работаете ПОД ПРИКРЫТИЕМ в ПУБЛИЧНОМ/OPEN-SOURCE репозитории. Ваши
сообщения коммитов, заголовки PR и тела PR НЕ ДОЛЖНЫ содержать НИКАКОЙ
внутренней информации Anthropic. Не раскрывайте себя.
НИКОГДА не включайте в сообщения коммитов или описания PR:
- Внутренние кодовые имена моделей (имена животных вроде Capybara, Tengu и т.д.)
- Номера невыпущенных версий моделей (напр., opus-4-7, sonnet-4-8)
- Внутренние имена репозиториев или проектов
- Внутренний тулинг, Slack-каналы или короткие ссылки (напр., go/cc, #claude-code-…)
- Фразу "Claude Code" или любое упоминание того, что вы — ИИ
- Строки Co-Authored-By или любую другую атрибуцию
Логика [20] активации:
CLAUDE_CODE_UNDERCOVER=1 принудительно ВКЛЮЧАЕТ (даже во внутренних репозиториях)
В остальных случаях — автоматически: активен, ЕСЛИ удалённый адрес репозитория не совпадает с внутренним списком разрешённых
Принудительного ВЫКЛЮЧЕНИЯ нет — «если мы не уверены, что находимся во внутреннем репозитории, остаёмся под прикрытием»
Из этого следует:
Сотрудники Anthropic активно используют Claude Code для контрибуций в open-source — и ИИ сказано скрывать, что он ИИ
Внутренние кодовые имена моделей — это имена животных: Capybara, Tengu и т.д.
«Tengu» встречается сотни раз как префикс для feature flags и аналитических событий — это почти наверняка внутреннее кодовое имя проекта Claude Code
Всё это удаляется dead code elimination из внешних сборок. Но source map’ам на dead code elimination плевать.
Остаётся вопрос: какой масштаб «тихих» контрибуций в open-source репозитории стоит за этим режимом?
В Claude Code есть полноценная система мультиагентной оркестрации в coordinator/ [21], активируемая через CLAUDE_CODE_COORDINATOR_MODE=1.
При включении Claude Code трансформируется из одиночного агента в координатора, который порождает, направляет и управляет несколькими рабочими агентами параллельно. Системный промпт координатора в coordinatorMode.ts [22] — образцовый пример мультиагентного дизайна:
|
Фаза |
Кто |
Назначение |
|---|---|---|
|
Исследование |
Рабочие (параллельно) |
Изучить кодовую базу, найти файлы, понять проблему |
|
Синтез |
Координатор |
Прочитать результаты, осмыслить проблему, составить спецификации |
|
Реализация |
Рабочие |
Внести целевые изменения по спецификации, закоммитить |
|
Верификация |
Рабочие |
Проверить, что изменения работают |
Промпт явно обучает параллелизму:
«Параллелизм — ваша суперсила. Рабочие асинхронны. Запускайте независимых рабочих одновременно, когда это возможно — не сериализуйте работу, которую можно выполнить параллельно.»
Рабочие общаются через XML-сообщения <task-notification>. Есть общая директория-черновик (scratchpad, за флагом tengu_scratch) для обмена устойчивыми знаниями между рабочими. В промпте также стоит замечательный запрет на ленивое делегирование:
НЕ говорите «на основе ваших результатов» — прочитайте реальные результаты и укажите точно, что делать.
Система также включает возможности команд агентов/роя (Agent Teams/Swarm, feature gate tengu_amber_flint): внутрипроцессные участники команды с AsyncLocalStorage для изоляции контекста, процессные участники через панели tmux/iTerm2, синхронизация памяти команды и назначение цветов для визуального различения.
Да, они реально так назвали. API-эндпоинт в utils/fastMode.ts [23] буквально:
const endpoint = `${getOauthConfig().BASE_API_URL}/api/claude_code_penguin_mode`
Ключ конфигурации — penguinModeOrgEnabled. Kill-switch — tengu_penguins_off. Аналитическое событие при ошибке — tengu_org_penguin_mode_fetch_failed. Пингвины до самого дна.
Системный промпт — это не единая строка, как в большинстве приложений. Он собирается из модульных кешируемых секций, компонуемых в рантайме в constants/ [24].
Архитектура использует маркер SYSTEM_PROMPT_DYNAMIC_BOUNDARY, который разделяет промпт на:
Статические секции — кешируемые между организациями (то, что не меняется от пользователя к пользователю)
Динамические секции — контент, специфичный для пользователя/сессии, который инвалидирует кеш при изменении
Есть функция DANGEROUS_uncachedSystemPromptSection() для volatile-секций, которые вы явно хотите исключить из кеширования. Одно название говорит о том, что кто-то усвоил этот урок на собственном опыте [25].
Особенно интересный раздел — CYBER_RISK_INSTRUCTION в constants/cyberRiskInstruction.ts [26], с массивным предупреждением в шапке:
ВАЖНО: НЕ ИЗМЕНЯЙТЕ ЭТУ ИНСТРУКЦИЮ БЕЗ РЕВЬЮ КОМАНДЫ SAFEGUARDS
Эта инструкция принадлежит команде Safeguards (David Forsythe, Kyla Guru)
Теперь мы точно знаем, кто в Anthropic отвечает за решения по границам безопасности, и что это управляется конкретными людьми в конкретной команде. Сама инструкция проводит чёткие линии: авторизованное тестирование безопасности — ок, деструктивные техники и компрометация цепочки поставок — нет.
Система инструментов Claude Code живёт в tools/ [27]. Полный список:
|
Инструмент |
Назначение |
|---|---|
|
AgentTool |
Порождение дочерних агентов/субагентов |
|
BashTool / PowerShellTool |
Выполнение команд оболочки (с опциональной песочницей) |
|
FileReadTool / FileEditTool / FileWriteTool |
Файловые операции |
|
GlobTool / GrepTool |
Поиск файлов (используют нативные |
|
WebFetchTool / WebSearchTool / WebBrowserTool |
Веб-доступ |
|
NotebookEditTool |
Редактирование Jupyter-ноутбуков |
|
SkillTool |
Вызов пользовательских навыков |
|
REPLTool |
Интерактивная VM-оболочка (bare mode) |
|
LSPTool |
Общение по Language Server Protocol |
|
AskUserQuestionTool |
Запрос ввода у пользователя |
|
EnterPlanModeTool / ExitPlanModeV2Tool |
Управление режимом планирования |
|
BriefTool |
Загрузка/суммаризация файлов в claude.ai |
|
SendMessageTool / TeamCreateTool / TeamDeleteTool |
Управление роем агентов |
|
TaskCreateTool / TaskGetTool / TaskListTool / TaskUpdateTool / TaskOutputTool / TaskStopTool |
Управление фоновыми задачами |
|
TodoWriteTool |
Запись задач (устаревший) |
|
ListMcpResourcesTool / ReadMcpResourceTool |
Доступ к MCP-ресурсам |
|
SleepTool |
Асинхронные задержки |
|
SnipTool |
Извлечение фрагментов истории |
|
ToolSearchTool |
Обнаружение инструментов |
|
ListPeersTool |
Список peer-агентов (UDS inbox) |
|
MonitorTool |
Мониторинг MCP-серверов |
|
EnterWorktreeTool / ExitWorktreeTool |
Управление git worktree |
|
ScheduleCronTool |
Планирование cron-задач |
|
RemoteTriggerTool |
Запуск удалённых агентов |
|
WorkflowTool |
Выполнение скриптов воркфлоу |
|
ConfigTool |
Изменение настроек (только для внутреннего использования) |
|
TungstenTool |
Расширенные функции (только для внутреннего использования) |
|
SendUserFile / PushNotification / SubscribePR |
Эксклюзивные инструменты KAIROS |
Инструменты регистрируются через getAllBaseTools() и фильтруются по feature gates, типу пользователя, переменным окружения и правилам запрета разрешений. Есть кеш схем инструментов (toolSchemaCache.ts [28]), который кеширует JSON-схемы для экономии промпт-токенов.
Система разрешений Claude Code в tools/permissions/ [29] значительно сложнее, чем «разрешить/запретить»:
Режимы разрешений: default (интерактивные запросы), auto (автоматическое одобрение на основе ML через классификатор транскриптов), bypass (пропуск проверок), yolo (запретить всё — ироничное название).
Классификация рисков: каждое действие инструмента классифицируется как LOW, MEDIUM или HIGH. Есть YOLO-классификатор — быстрая ML-система принятия решений о разрешениях, работающая автоматически.
Защищённые файлы: .gitconfig, .bashrc, .zshrc, .mcp.json, .claude.json и другие защищены от автоматического редактирования.
Предотвращение path traversal: URL-кодированные обходы, атаки через Unicode-нормализацию, инъекции обратных слэшей, манипуляции с регистром путей — всё обрабатывается.
Объяснение разрешений: отдельный LLM-вызов объясняет пользователю риски инструмента перед одобрением. Когда Claude говорит «эта команда изменит ваш git config» — это объяснение само по себе сгенерировано Claude.
Файл constants/betas.ts [30] раскрывает все бета-фичи, которые Claude Code запрашивает у API:
'interleaved-thinking-2025-05-14' // Расширенное мышление
'context-1m-2025-08-07' // Контекстное окно на 1М токенов
'structured-outputs-2025-12-15' // Структурированный формат вывода
'web-search-2025-03-05' // Веб-поиск
'advanced-tool-use-2025-11-20' // Продвинутое использование инструментов
'effort-2025-11-24' // Управление уровнем усилий
'task-budgets-2026-03-13' // Управление бюджетами задач
'prompt-caching-scope-2026-01-05' // Скоупинг кеша промптов
'fast-mode-2026-02-01' // Быстрый режим (Penguin)
'redact-thinking-2026-02-12' // Редактирование мышления
'token-efficient-tools-2026-03-28' // Токен-эффективные схемы инструментов
'afk-mode-2026-01-31' // AFK-режим
'cli-internal-2026-02-09' // Только для внутреннего использования (ant)
'advisor-tool-2026-03-01' // Инструмент-советник
'summarize-connector-text-2026-03-13' // Суммаризация текста коннекторов
redact-thinking, afk-mode и advisor-tool тоже пока не выпущены.
Это одна из архитектурно самых интересных частей кодовой базы.
Claude Code использует compile-time feature flags через функцию feature() из bun:bundle. Бандлер свёртывает константы и элиминирует мёртвый код загейтованных ветвей из внешних сборок. Полный список известных флагов:
|
Флаг |
Что он закрывает |
|---|---|
|
|
Режим всегда включённого ассистента |
|
|
Краткая команда |
|
|
Удалённое управление через claude.ai |
|
|
Фоновый демон |
|
|
Голосовой ввод |
|
|
Автоматизация воркфлоу |
|
|
Мультиагентная оркестрация |
|
|
AFK-режим (ML-автоодобрение) |
|
|
Система питомца-компаньона |
|
|
Аттестация клиента |
|
|
Обрезка истории |
|
|
Обнаружение навыков |
Дополнительно USER_TYPE === 'ant' закрывает функции для внутреннего использования Anthropic: доступ к staging API (claude-ai.staging.ant.dev), внутренние бета-заголовки, режим прикрытия, команду /security-review, ConfigTool, TungstenTool и дамп промптов в ~/.config/claude/dump-prompts/.
Рантайм feature gating обслуживает GrowthBook с агрессивно кешированными значениями. Feature flags с префиксом tengu_ управляют всем — от быстрого режима до консолидации памяти. Многие проверки используют getFeatureValue_CACHED_MAY_BE_STALE(), чтобы не блокировать основной цикл — устаревшие данные считаются допустимыми для feature gates.
Директория upstreamproxy/ [31] содержит контейнеро-ориентированное прокси-реле, которое использует prctl(PR_SET_DUMPABLE, 0) для предотвращения ptrace кучи от процессов с тем же UID. Оно читает сессионные токены из /run/ccr/session_token в CCR-контейнерах, загружает CA-сертификаты и запускает локальное CONNECT→WebSocket-реле. Anthropic API, GitHub, npmjs.org и pypi.org явно исключены из проксирования.
JWT-аутентифицированная bridge-система в bridge/ [32] для интеграции с claude.ai. Поддерживает рабочие режимы: 'single-session' | 'worktree' | 'same-dir'. Включает токены доверенных устройств для повышенных уровней безопасности.
Директория migrations/ [33] раскрывает историю внутренних кодовых имён:
migrateFennecToOpus — «Fennec» (лиса фенек) было кодовым именем Opus
migrateSonnet1mToSonnet45 — Sonnet с 1М контекстом стал Sonnet 4.5
migrateSonnet45ToSonnet46 — Sonnet 4.5 → Sonnet 4.6
resetProToOpusDefault — Pro-пользователей в какой-то момент переключили на Opus по умолчанию
Каждый API-запрос включает:
x-anthropic-billing-header: cc_version={VERSION}.{FINGERPRINT};
cc_entrypoint={ENTRYPOINT}; cch={ATTESTATION_PLACEHOLDER}; cc_workload={WORKLOAD};
Фича NATIVE_CLIENT_ATTESTATION позволяет HTTP-стеку Bun перезаписать плейсхолдер cch=00000 вычисленным хешем — по сути, это проверка подлинности клиента, чтобы Anthropic мог убедиться, что запрос пришёл от настоящей установки Claude Code.
Claude Code включает полноценную реализацию Computer Use, внутреннее кодовое имя «Chicago», построенную на @ant/computer-use-mcp. Предоставляет захват экрана, ввод кликов/клавиш и преобразование координат. Доступна только для подписок Max/Pro (с обходом для внутренних пользователей Anthropic).
Для интересующихся — все цены в utils/modelCost.ts [34] полностью совпадают с публичными ценами Anthropic [35]. Ничего сенсационного.
Это, без преувеличения, один из самых полных взглядов на внутреннее устройство продакшн AI-ассистента для кодирования. Через реальный исходный код.
Несколько вещей бросаются в глаза:
Инженерия впечатляет. Это не проект выходного дня, обёрнутый в CLI. Мультиагентная координация, система снов, архитектура триггеров с тремя вентилями, compile-time элиминация фич — это глубоко продуманные системы.
Впереди ещё очень много. KAIROS (всегда включённый Claude), ULTRAPLAN (30-минутное удалённое планирование), компаньон Buddy, режим координатора, рои агентов, скрипты воркфлоу — кодовая база значительно опережает публичный релиз. Большинство из этого спрятано за feature gates и невидимо во внешних сборках.
Внутренняя культура видна. Кодовые имена-животные (Tengu, Fennec, Capybara), игривые названия фич (Penguin Mode, Dream System), система тамагочи-питомца с гача-механикой. Кому-то в Anthropic определённо весело.
Если есть один вывод из всего этого — безопасность это сложно. А .npmignore, похоже, ещё сложнее.
Автор: olegchir
Источник [36]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/28061
URLs in this post:
[1] https://gitverse.ru/anarchic/claude-code: https://gitverse.ru/anarchic/claude-code
[2] разбор в своём блоге: https://kuber.studio/blog/AI/Claude-Code
[3] в Телегу: https://t.me/tg_1red2black
[4] YouTube: https://www.youtube.com
[5] реакцию: http://www.braintools.ru/article/1549
[6] Ошибка: http://www.braintools.ru/article/4192
[7] забывает: http://www.braintools.ru/article/333
[8] «Режим прикрытия» (Undercover Mode): #%D1%80%D0%B5%D0%B6%D0%B8%D0%BC-%D0%BF%D1%80%D0%B8%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D1%8F----%D0%BD%D0%B5-%D1%80%D0%B0%D1%81%D0%BA%D1%80%D1%8B%D0%B2%D0%B0%D0%B9-%D1%81%D0%B5%D0%B1%D1%8F
[9] main.tsx: https://github.com/kuberwastaken/claude-code/blob/main/main.tsx
[10] памяти: http://www.braintools.ru/article/4140
[11] сон: http://www.braintools.ru/article/9809
[12] buddy/: https://github.com/kuberwastaken/claude-code/tree/main/buddy
[13] assistant/: https://github.com/kuberwastaken/claude-code/tree/main/assistant
[14] зрения: http://www.braintools.ru/article/6238
[15] services/autoDream/: https://github.com/kuberwastaken/claude-code/tree/main/services/autoDream
[16] была точно такая же идея для LITMUS на прошлой неделе — субагенты OpenClaw, которые в свободное время творчески ищут интересные новые статьи: https://github.com/Kuberwastaken/litmus
[17] Сон: http://www.braintools.ru/article/9150
[18] consolidationPrompt.ts: https://github.com/kuberwastaken/claude-code/blob/main/services/autoDream/consolidationPrompt.ts
[19] utils/undercover.ts: https://github.com/kuberwastaken/claude-code/blob/main/utils/undercover.ts
[20] Логика: http://www.braintools.ru/article/7640
[21] coordinator/: https://github.com/kuberwastaken/claude-code/tree/main/coordinator
[22] coordinatorMode.ts: https://github.com/kuberwastaken/claude-code/blob/main/coordinator/coordinatorMode.ts
[23] utils/fastMode.ts: https://github.com/kuberwastaken/claude-code/blob/main/utils/fastMode.ts
[24] constants/: https://github.com/kuberwastaken/claude-code/tree/main/constants
[25] опыте: http://www.braintools.ru/article/6952
[26] constants/cyberRiskInstruction.ts: https://github.com/kuberwastaken/claude-code/blob/main/constants/cyberRiskInstruction.ts
[27] tools/: https://github.com/kuberwastaken/claude-code/tree/main/tools
[28] toolSchemaCache.ts: https://github.com/kuberwastaken/claude-code/blob/main/tools/toolSchemaCache.ts
[29] tools/permissions/: https://github.com/kuberwastaken/claude-code/tree/main/tools/permissions
[30] constants/betas.ts: https://github.com/kuberwastaken/claude-code/blob/main/constants/betas.ts
[31] upstreamproxy/: https://github.com/kuberwastaken/claude-code/tree/main/upstreamproxy
[32] bridge/: https://github.com/kuberwastaken/claude-code/tree/main/bridge
[33] migrations/: https://github.com/kuberwastaken/claude-code/tree/main/migrations
[34] utils/modelCost.ts: https://github.com/kuberwastaken/claude-code/blob/main/utils/modelCost.ts
[35] публичными ценами Anthropic: https://docs.anthropic.com/en/docs/about-claude/models
[36] Источник: https://habr.com/ru/companies/bar/articles/1017574/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1017574
Нажмите здесь для печати.