5 октября 2026 г.

Моды Claude Code: что меняют внутри агента и как попробовать без риска

Андрей Присекин
Автор

Андрей Присекин

Создаю AI-агентов, автоматизирую бизнес-процессы

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

Первого октября Anthropic выпустила эту возможность для терминала и десктопного приложения. Я бы не бросился ставить все красивые панели из каталога. Гораздо интереснее разобраться, где именно мод встраивается в работу агента. Там же становится понятно, почему удобный индикатор и опасный плагин устанавливаются одинаковой командой.

Что поменялось и где граница с обычными скиллами

Скилл даёт Claude инструкции: как решить задачу, какие правила соблюдать, в каком формате ответить. Обычный hook на настройках вызывает внешнюю команду при событии и обменивается с ней JSON. Мод живёт внутри сессии Claude Code и получает доступ к событиям через программный интерфейс. Он может наблюдать за ними, передать изменённое событие дальше или полностью ответить вместо штатного обработчика. Anthropic отдельно подчёркивает: старые hooks не умели рисовать новый интерфейс и заменять встроенные функции.

Например, в Claude Code уже есть встроенная панель /diff, показывающая незакоммиченные изменения. Теперь она сама реализована как мод. Есть и поддержка AGENTS.md как мода: если у проекта нет CLAUDE.md, Claude может прочитать альтернативный файл инструкций. Сами эти возможности не появились из воздуха первого октября; изменился способ их расширять и заменять. Про AGENTS.md у меня есть отдельный практический разбор.

Нижний порог для собственных модов - Claude Code версии 2.1.287, согласно официальному учебнику и журналу релизов. Проверь claude --version на своём компьютере. Если версия старее, обнови установленный Claude Code обычным способом для твоей установки, а затем повтори проверку. Я не советую копировать случайный установочный скрипт из поисковой рекламы ради одной новой функции.

Скилл даёт инструкцию, а мод получает доступ к событиям и интерфейсу запущенного Claude Code

Что мод видит и что может сделать

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

В официальной подборке Token Weather показывает заполнение контекстного окна. Blast Radius перехватывает рискованную команду и даёт человеку выбрать Proceed или Cancel после просмотра возможных последствий. Replay Theater воспроизводит правки файлов по очереди. Это примеры того, как далеко простирается интерфейс: от пассивной строки до остановки команды. Но пример с кнопкой Cancel не означает, что любой мод безопасности поймает все опасные варианты Bash. Защиту нужно проверять на твоих сценариях.

Есть и сторонний пример с открытым кодом: автор What's Agent Doing сделал панель над приглашением Claude Code. Пока агент возится с длинной командой, панель показывает, что он пытается выполнить и сколько времени уже ждёт. Мне тут нравится приземлённая задача: отличить зависание от нормальной долгой операции, не отдавая моду право автоматически разрешать опасные действия. Но чужие исходники всё равно нужно читать перед установкой.

Часть «работает внутри» легко понять неправильно. В учебнике Anthropic модуль описан как собственная программная песочница без прямого Node и DOM: для операций снаружи он обращается к объекту $, который предоставляет хост. Однако в анонсе Anthropic прямо предупреждает, что моды не изолированы от доступа Claude Code к машине. Эти утверждения совместимы: отсутствие прямого fs в JavaScript-модуле не делает чужой мод безопасным для твоих файлов. Его разрешённые API-операции могут читать данные и запускать действия с правами сессии.

Как попробовать без установки чужого мода

Самый безопасный первый опыт - попросить Claude Code сделать локальный индикатор заполнения контекста, который ничего не блокирует и ничего не отправляет наружу. В терминале запусти claude в тестовом проекте и попроси: «Сделай временный мод, который показывает процент занятого контекста над строкой ввода. Не меняй мои запросы и вызовы инструментов, не используй сеть. Покажи исходники перед включением». По официальному учебнику Claude предложит включить горячую перезагрузку для текущей сессии; соглашайся только после просмотра того, что он создал. После хода индикатор должен появиться над полем ввода.

Проверь глазами, что мод лишь считывает статистику сессии, обновляет свой индикатор после хода и рисует строку. В уроке Anthropic для этого используются события turn.complete и ui.render, метод $.session.usage() и состояние $.state. Просмотри код на дополнительные события вроде tool.call, чтение файлов и вызовы процессов. Такая проверка проще, чем пытаться сразу написать «второй интерфейс» для агента. Временный мод в режиме быстрого создания живёт только в текущей сессии; чтобы оставить его надолго, нужно вынести и установить как плагин.

Если хочешь сделать мод вручную, структура из официального урока небольшая: .claude-plugin/plugin.json хранит манифест, hooks/hooks.json указывает на модуль, модуль экспортирует register(on, options). Для проверки папки авторы дают claude plugin validate ./token-weather; для прогона тестов плагина - claude plugin test ./token-weather. Запустить папку локально можно через claude --plugin-dir ./token-weather. Это примеры команд для собственного проекта token-weather, а не готовый мод, который надо скачивать с неизвестного сайта.

Как поставить готовый мод и не перепутать команды

Мод распространяется внутри обычного плагина Claude Code. В официальном примере для установки через собственный каталог сначала внутри сессии выполняют /plugin marketplace add your-org/my-mods, потом /plugin install token-weather@my-mods, затем /reload-plugins. Здесь your-org/my-mods и token-weather@my-mods - условные имена из документации, не адрес проверенного репозитория. Сперва открой настоящий репозиторий, прочитай манифест и модуль, только потом подставляй его название. Если после перезагрузки плагинов мод не появился, официальный урок советует перезапустить Claude Code.

Для своего каталога авторы показывают и вариант из оболочки: claude plugin marketplace add ./my-mods плюс claude plugin install token-weather@my-mods --scope user. Обрати внимание на --scope user: этот выбор относится к установке для пользователя. Для первого опыта разумнее временная папка через --plugin-dir, чтобы не добавлять постоянный плагин во все будущие сессии. Готовые чужие плагины лучше оценивать как исполняемые зависимости, а не как набор промптов.

На сайте Anthropic есть демо-моды и исходники встроенных модов в репозитории anthropics/claude-code/mods. Разбор исходников особенно полезен для модов, обещающих автоматическую защиту. Посмотри, на какие события они подписаны, читают ли историю и файлы, где хранят данные, есть ли сетевые вызовы и как ведут себя при ошибке. claude plugin validate проверяет форму плагина и используемый API; это не аудитор, который докажет отсутствие вредных действий.

Проверка модификации перед включением: исходники, права и поведение при ошибке

Почему «защитный» мод не равен системной защите

У модов есть право вмешиваться в поток событий, включая решение о разрешении действия. На корпоративных планах и при управляемых настройках Anthropic ставит первым встроенный sec-default: он должен мешать пользовательским модам обходить запреты администратора. Но это защита в определённой конфигурации, а не обещание для любой личной установки. Порядок загрузки имеет значение; в собственной администраторской сборке Anthropic советует не забыть включить sec-default в список.

Есть и свежий нюанс: в журнале версии 2.1.289 от 3 октября описан фикс, связанный с сочетанием правила deny/ask внутри составной shell-команды и одобрения пользовательского мода на управляемых машинах. Это напоминание, что даже на защищённой установке границы модов нужно тестировать и вовремя обновлять клиент. Из одного исправленного случая нельзя делать вывод, что любой мод теперь способен обойти любой запрет. Для реально опасных команд оставляй подтверждение человеком и отдельную изоляцию рабочей среды.

Меня здесь больше всего смущает ложное чувство спокойствия. Мод с названием Blast Radius может показать список удаляемых файлов, но если его логика не распознала команду или сломалась на нестандартном аргументе, рабочий проект всё равно окажется под ударом. Запускай эксперименты в копии репозитория без секретов; проверяй сценарии с безопасными тестовыми файлами, а не на реальной базе. Про побеги из песочницы другого кодинг-агента я уже писал: любая внутренняя защита имеет границу, и её надо знать до инцидента.

Что показал независимый опыт и стоит ли переходить

Автор RationalDev 4 октября попробовал собрать мод по собственным старым сессиям Claude Code. Анализ его истории нашёл повторяющиеся проверки статуса репозитория, расход лимитов и моменты, когда холодный кэш заставлял перечитывать длинный контекст. Но часть идей для модов оказалась лишней: десктопное приложение уже показывает состояние репозитория. Автор оставил панель про контекст, лимиты и передачу сессии, а не весь список первоначальных идей. Мне близок такой подход: сначала посмотреть, чего в программе действительно не хватает.

При сборке он столкнулся с конкретными шероховатостями. Тестовый рантайм мода не предоставил ему используемое состояние $.state; команда с именем /handoff пересеклась с существующим скиллом; таймер кэша оказался оценкой, а не достоверным временем истечения. Это единичный опыт одного разработчика, а не измерение качества всех модов. Но он хорошо объясняет, почему готовую панель стоит запустить в пробной сессии, проверить её цифры и убедиться, что она не дублирует встроенную функцию.

Я бы начал с наблюдающего мода и оставил его, только если он снимает конкретную ежедневную ручную проверку. Моды, которые меняют промпты, одобряют действия и запускают процессы, требуют другого уровня ревью. Это способ переделать сам Claude Code под себя, а не обязательное обновление для каждого пользователя. Если тебе хватает инструкций проекта и обычных скиллов, можешь ничего не ставить. Если агент регулярно упирается в одну и ту же повторяемую проблему, тогда уже есть предмет для маленького проверяемого мода.

Источники

← Все статьи