Перейти к содержанию

claude-code

Моды на TypeScript перекраивают Claude Code изнутри

Promtime

Встроенную команду /diff в Claude Code можно выключить в /plugin или заменить собственной версией, потому что её переписали как мод. На этом примере Anthropic показывает моды: небольшие функции на TypeScript, которые меняют поведение Claude Code изнутри и уже работают в CLI и десктопном приложении.

Как сказано в анонсе в блоге Claude, мод может переписать промпт, добавить новый интерфейс, заменить встроенную функцию или добавить совсем новую. Написать мод можно самому, а можно поручить это самому Claude Code.

Коротко

  • Моды поставляются внутри плагинов, поэтому ставятся и распространяются как обычные плагины: через каталог Claude или команду /plugin, а поделиться своим можно, отправив плагин в каталог.
  • Каждое действие Claude Code порождает событие, мод цепляется к нему функцией и срабатывает до, после или вместо него либо оборачивает его, выполняя код и до, и после.
  • Песочницы у модов нет: у них тот же доступ к машине, что у Claude Code, поэтому Anthropic советует ставить моды только из источников, которым вы доверяете.

Если вы не следили: до модов главным способом вмешаться в работу Claude Code были хуки. По данным Pushary, хук представляет собой shell-команду, которая запускается на фиксированном этапе работы, читает JSON с описанием события из stdin и отвечает кодом выхода или JSON в stdout. Плагины, как описано в репозитории на GitHub, собирают в один пакет слэш-команды, субагентов, MCP-серверы и хуки и включаются или отключаются командой /plugin.

Хуки не умели переписывать события и рисовать интерфейс, моды умеют

В Anthropic объясняют запуск просьбами разработчиков: им нужен контроль над Claude Code без ожидания, пока компания выпустит нужную функцию. Хуки дали часть этого контроля, но переписывать события, рисовать новый интерфейс и подменять встроенные функции они не могли. Дизайн модов до запуска выложили на GitHub, чтобы собрать отзывы.

Ограничения хуков хорошо видны в деталях. По данным Pushary, на 29 сентября 2026 года в официальном справочнике значилось 33 события хуков, и блокировать умеют лишь некоторые: PreToolUse может остановить вызов инструмента, PostToolUse уже нет, потому что инструмент отработал. Код выхода 2 тоже ведёт себя по-разному: на Stop он останавливает ход, на SessionStart ничего не блокирует, на PermissionDenied игнорируется.

Кое-что переписывать хуки, по тем же данным Pushary, всё же умели: PreToolUse возвращает updatedInput, PostToolUse возвращает updatedToolOutput, событие MessageDisplay меняет текст через displayContent. Но каждое такое поле живёт в своём событии, общей модели переписывания у хуков не было.

Встроенный /diff стал модом, и Anthropic собирается перевести туда другие функции

Часть встроенных функций Claude Code уже поставляется как моды. Команду /diff можно отключить в /plugin или заменить своей реализацией. Anthropic обещает со временем переносить в моды и другие функции, чтобы Claude Code можно было урезать до небольшого ядра и вернуть только то, что вам нужно.

Моды меняют и то, что вы видите на экране. Мод может отредактировать или заменить часть интерфейса, например результат инструмента или вопрос от Claude, добавить кнопки и поля ввода, на нажатие которых отреагируют другие моды. Целью может быть терминал, десктопное приложение или оба сразу.

Отдельный пункт касается самого Claude Code: его можно попросить написать мод. Он сгенерирует TypeScript, установит мод и перезагрузит его на лету прямо в текущей сессии, так что инструмент дорабатывает себя сам.

Мод, загруженный первым, видит событие раньше всех, а результат последним

Каждое действие Claude Code порождает событие: вызов инструмента, запрос разрешения, отрисовка куска экрана. Мод представляет собой функцию, подписанную на одно из таких событий. Она выполняется до него, после него, вместо него или оборачивает его, запуская свой код с обеих сторон.

Одной такой функции хватает, чтобы переписать промпт до того, как он попадёт в модель, заблокировать, переписать или повторить вызов инструмента, одобрить или отклонить запрос разрешения, вычистить секреты из вывода инструмента, прежде чем его прочтёт Claude.

Если на одно событие подписано несколько модов, они срабатывают в порядке загрузки. Представьте слои луковицы: первый загруженный мод лежит снаружи, он первым видит входящее событие и последним получает готовый результат. Так моды разных авторов складываются стопкой, а мод аудита, загруженный первым, может записывать каждый вызов всех остальных модов.

На Team и Enterprise первым загружается встроенный мод sec-default

Раз моды живут в плагинах, на них действуют прежние правила для плагинов: администратор разрешает или блокирует маркетплейсы. На тарифах Team и Enterprise это делает владелец в админ-консоли, на Claude API и сторонних API администраторы рассылают managed settings на машины пользователей.

В документации Claude Code сказано, что managed settings применяются поверх всех остальных уровней, и их не перекрывают ни пользовательские, ни проектные настройки, ни флаг --settings, кроме нескольких параметров безопасности, где более строгое значение снизу всё равно учитывается. Доставить их можно четырьмя способами: с сервера, через MDM или политику ОС, файлом managed-settings.json и значением в реестре Windows HKCU.

На Team, Enterprise и любой машине с managed settings первым грузится sec-default. Он не даёт установленным пользователями модам делать рискованное, например обходить ваши правила запрета разрешений, а его исходный код открыт. Администратор может поставить первыми свои моды, но тогда sec-default нужно добавить в список, иначе его ограничения пропадут.

Компании могут строить на модах и собственные инструменты: панель статуса CI/CD рядом с диалогом, которая обновляется по мере прохождения сборок, или обязательное подтверждение перед любой командой, затрагивающей конфигурацию продакшена.

Цена гибкости в том, что мод выполняется с правами Claude Code и без песочницы. Как пишет Penligent, уязвимость CVE-2026-55607 в Claude Code, исправленная в 2.1.163, давала вредоносному репозиторию с промпт-инъекцией выполнить код на машине разработчика вне песочницы, и безобидные по отдельности функции сложились во взлом хоста. На наш взгляд, открытый исходник sec-default решение здравое, но, судя по описанию, разработчик без managed settings этой страховки не получает и полагается только на своё доверие к автору мода.

Какие функции уйдут в моды следующими

Anthropic обещает переносить встроенные функции в моды постепенно, но не называет ни список, ни сроки: пока известен только /diff. О песочнице для модов в анонсе речи нет. Открытыми остаются и другие вопросы: сколько сторонних модов появится в каталоге Claude и как администраторы будут сочетать собственные моды с ограничениями sec-default.

Читайте также

  1. Хук админа отберёт у плагинов Claude Code права
  2. DeepSeek Harness v0.2 вышел без Linux, хотя его обещали
  3. OpenAI научила Luna выбирать ответ за 150 миллисекунд
  4. Claude Code урезал счёт за тикет примерно до пятой части
  5. В Microsoft Copilot завезли кодинг на базе GitHub Copilot
  6. Бот Rollouts в Cursor следит за кодом уже в продакшене

Комментарии

Пока никто не написал. Будьте первым.

Присоединяйтесь к разговору

Войдите через Google, чтобы оставить комментарий. Имя и аватар подставятся из вашего профиля Google, а комментарий появится после модерации.

Из Google мы используем только имя и аватар. Почту не сохраняем.