Обзор модов
Добавляйте панели, команды и правила вызова инструментов в Claude Code с помощью мода. Узнайте, что может делать мод, как его создать или установить, и где работают моды.
Мод — это плагин, который изменяет внешний вид и поведение Claude Code. Он состоит из обработчиков событий на JavaScript или TypeScript: Claude Code вызывает один из них при возникновении события, например при вызове инструмента, отправке подсказки или отрисовке части интерфейса, и обработчик может наблюдать за событием, изменять его или брать его под контроль. Используйте мод для добавления собственной функции в Claude Code, например панели, которая показывает, насколько заполнен ваш контекст после каждого запроса. Информацию о файлах в моде и полный пример см. в разделе Как работает мод.
Существующие hooks Claude Code также работают на событиях в виде команды оболочки, HTTP-запроса или подсказки, которые вы настраиваете в файле параметров. Обработчики мода — это функции, которые работают внутри Claude Code. Claude Code вызывает оба типа hooks: на этих страницах «hook» означает обработчик мода, а тип из файла параметров — это «settings hook».
Что может делать мод
Settings hooks, skills, строки состояния и серверы MCP работают вне Claude Code: каждый из них запускает скрипт или предоставляет Claude текст или инструменты. Мод работает внутри Claude Code, поэтому он может делать то, что они не могут:
- Нарисовать интерфейс, который вы можете использовать: панель рядом с транскриптом или полоса над подсказкой с вкладками, кнопками и текстовыми полями. См. Рисование в интерфейсе.
- Перерисовать собственный интерфейс Claude Code: заменить или переоформить части, которые рисует сам Claude Code, такие как строка вызова инструмента, спиннер или диалог, в котором Claude задает вопросы. См. Изменение того, что уже рисует Claude Code.
- Вмешаться в вызов инструмента или запрос: например, удержать вызов инструмента, пока вы задаете пользователю вопрос, ответить без запуска инструмента или отправить один запрос другой модели. См. Охрана или изменение вызова инструмента и Следование за ходом.
- Запустить собственный код на команде:
/command, который запускает вашу функцию сразу же, без хода Claude, даже если Claude работает. См. Добавление команды или инструмента. - Обмен данными между hooks: hooks мода совместно используют переменные в его файле, поэтому то, что записывает один hook, может показать другой. Например, один hook может считать вызовы инструментов, а другой показывает счетчик рядом со спиннером, или один может читать использование токенов каждого запроса, а другой отображает его на графике в панели. См. Реакция на события.
Моды работают в CLI Claude Code и на вкладке Code приложения Claude Desktop. См. Где работают моды, чтобы понять, как они ведут себя в других местах, например в расширении VS Code, claude -p и облачных сеансах. Если settings hook, skill или сервер MCP уже делает то, что вам нужно, сравните их перед написанием мода. Для управления модами для организации см. Управление модами для вашей организации.
Получить мод
Вы можете начать с мода одним из трех способов:
- Используйте уже имеющийся: некоторые собственные функции Claude Code — это моды, такие как
/diff. См. Моды, встроенные в Claude Code. - Создайте один: опишите, что вы хотите, в сеансе Claude Code, и Claude напишет мод. См. Попросите Claude написать мод. Чтобы узнать, как работает код мода, напишите его сами.
- Установите один: см. Установка или обновление мода
Установка или обновление мода
Мод — это код, который работает с вашими разрешениями. Он может читать и писать ваши файлы, запускать процессы и делать сетевые запросы. Устанавливайте моды только от авторов и маркетплейсов, которым вы доверяете. См. Решите, доверять ли моду.
Мод устанавливается как плагин из маркетплейса. Укажите имя плагина, @ и имя маркетплейса. Эти примеры устанавливают плагин с именем token-chart из маркетплейса с именем your-org:
- В сеансе Claude Code запустите
/plugin install token-chart@your-org. - В вашей оболочке запустите
claude plugin install token-chart@your-org.
Установка плагинов охватывает маркетплейсы, области видимости, расширение VS Code и приложение Desktop, а также поддержание плагинов в актуальном состоянии, все из которых применяются к плагину, содержащему мод без изменений.
Если вы устанавливаете или обновляете мод из вашей оболочки, пока сеанс открыт, запустите /reload-plugins в этом сеансе, чтобы загрузить его. В противном случае он загружается при следующем запуске Claude Code.
Решите, доверять ли моду
Мод — это код, который работает с вашими разрешениями внутри Claude Code. Устанавливайте моды только от авторов и маркетплейсов, которым вы доверяете.
Что может достичь мод
Мод работает с вашими разрешениями, поэтому перед установкой знайте, к чему у него есть доступ. После загрузки мод может:
- Действовать на вашей машине от вашего имени: читать и писать файлы в любом месте, где может ваша учетная запись пользователя, запускать программы и делать сетевые запросы
- Читать ваши секреты: переменные окружения и файлы параметров, включая ключ API, который вы храните в любом из них
- Видеть ваш сеанс: каждую подсказку, которую вы отправляете, и каждый вызов инструмента, который делает Claude
- Изменять ваш сеанс: переписывать подсказку или вызов инструмента, отправлять подсказку так, как если бы вы ее набрали, или отправлять сообщение в другой из ваших сеансов
- Действовать без вашего разрешения: одобрить вызов инструмента перед тем, как вас спросят
- Потратить вашу квоту: вызвать модель в вашем плане или ключе API
Мод, который одобряет вызовы инструментов, может одобрить тот, который правило ask запросит, или который заблокировал один из ваших собственных hooks PreToolUse. Расширение разрешений с помощью hooks перечисляет, что может одобрить такой мод, включая случаи, когда он может одобрить вызов, который правило deny отказывает.
Мод может переоформить большую часть интерфейса Claude Code, но не подсказку разрешения. Он не может изменить то, что вам показывает подсказка.
Перечислите, что делает мод перед установкой
Перед установкой мода вы можете перечислить, какие события он перехватывает и что он просит Claude Code делать, например читать файл или делать сетевой запрос, без его запуска. Сначала получите файлы плагина, например клонировав его репозиторий. Затем в вашей оболочке запустите claude plugin validate в каталоге плагина:
claude plugin validate ./some-mod
Строки hooks: и calls: в выводе перечисляют события, которые обрабатывает мод, и что он просит Claude Code делать. Просмотр того, что может делать мод показывает вывод и какие вызовы искать.
Включение или отключение модов
Моды требуют Claude Code v2.1.287 или позже, и они включены по умолчанию. В вашей оболочке запустите claude --version, чтобы проверить, и обновите Claude Code, если ваша версия старше.
Чтобы отключить моды, выберите, сколько их остановить и на как долго. Чтобы включить их обратно, отмените то же изменение:
- Один мод: отключите или удалите его плагин со вкладки Installed в
/plugin - Каждый установленный мод, для одного сеанса: запустите Claude Code с
--safe-mode, что также исключает ваши другие настройки - Каждый мод, который вы установили, в каждом сеансе: установите
"disableAllHooks": trueв~/.claude/settings.json. Ваши settings hooks и пользовательская строка состояния также остановятся. То, что управляет ваша организация, продолжает работать.
Если вы используете Claude Code через организацию, администратор также может ограничить, какие моды загружаются. Администраторы начинают с Остановка загрузки модов, установленных пользователем.
Чтобы узнать, могут ли моды загружаться для вас, см. Проверка, могут ли загружаться моды.
Если вы установили CLAUDE_CODE_ENABLE_FUNCTION_HOOKS во время раннего доступа, удалите его. Claude Code v2.1.287 и позже игнорирует его, поэтому установка его на 0 не отключает моды.
Посмотрите, какие моды загрузил сеанс
Чтобы увидеть, какие моды загрузил сеанс терминала, запустите /plugin в подсказке Claude Code. Тусклая линия под вкладками дает счетчик и имена, такие как 1 mod active · first-mod. Если мод, который вы установили, не указан там, см. Узнайте, почему мод ничего не делает.
Как работает мод
Мод — это плагин, чей код регистрирует обработчики событий, называемые hooks. Claude Code запускает hook при возникновении его события, например когда Claude вызывает инструмент или когда рисуется спиннер. Небольшой мод имеет три файла:
first-mod/
├── .claude-plugin/
│ └── plugin.json
└── hooks/
├── hooks.json
└── register.js
plugin.json: манифест плагинаhooks.json: указывает на ваш файл кодаregister.js: ваш код, называемый модулем hooks. Он сообщает Claude Code, на каких событиях запускать ваши функции.
Это полный register.js. Он считает вызовы инструментов, которые делает Claude, и показывает счетчик рядом со спиннером, пока Claude работает, как в Thinking · tool calls: 3….
// Счетчик, совместно используемый двумя hooks ниже
let calls = 0
// Claude Code вызывает это один раз при загрузке мода
export function register(on) {
// Запускается каждый раз, когда Claude собирается использовать инструмент
on('tool.call', async ($, e, next) => {
calls += 1
// Попросите Claude Code перерисовать интерфейс, чтобы показался новый счетчик
$.ui.invalidate('ui.render')
// Позвольте инструменту работать как обычно
return next(e)
})
// Запускается каждый раз, когда Claude Code рисует спиннер
on('ui.render', { component: 'Spinner' }, async ($, e, next) => {
// Сохраните спиннер Claude Code со счетчиком, добавленным после его слова
return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })
})
}
Файл регистрирует два hook, и оба используют переменную calls в верхней части:
- Hook
tool.callзапускается каждый раз, когда Claude собирается использовать инструмент. Он добавляет один кcalls, просит Claude Code перерисовать интерфейс и позволяет инструменту работать как обычно. - Hook
ui.renderзапускается каждый раз, когда Claude Code рисует спиннер. Он сохраняет собственный спиннер Claude Code и добавляет счетчик после слова.
Эта запись показывает мод в действии. Смотрите строку спиннера над полем подсказки: пока Claude перечисляет каталог и читает два файла, он читает Thinking · tool calls: 1…, затем 2…, затем 3….
Что hook может делать с событием
Claude Code запускает ваш hook перед тем, как действовать на событие, поэтому hook решает, что произойдет дальше. У него есть три варианта:
- Наблюдать: заметить, что происходит, и позволить ему продолжаться без изменений, как делает hook
tool.callв примере - Переписать: изменить событие перед его продолжением, как делает hook
ui.render, когда добавляет счетчик к спиннеру - Ответить: обработать событие самостоятельно, чтобы обычное поведение не запускалось, например отказать в команде
Чтобы делать что-либо вне собственного кода, такое как рисование, добавление команды, вызов модели, чтение файла, запуск процесса или создание сетевого запроса, hook вызывает API модов. Hook не имеет другого способа делать эти вещи, поэтому Claude Code может перечислить, что делает мод перед его установкой.
Для кода, стоящего за каждым выбором, см. Реакция на события. Для того, что может вызвать hook, см. Использование API модов.
Где работают моды
Hooks мода работают в каждом типе сеанса, который загружает плагин. Рисование более узко: только терминал и приложение Desktop показывают панели, полосы и замененные строки мода. Эта таблица перечисляет каждое место, где вы можете запустить Claude Code:
| Где вы запускаете Claude Code | Hooks работают | Что рисует мод появляется |
|---|---|---|
claude в терминале, включая интегрированный терминал редактора и плагин JetBrains |
Да | Да |
| Вкладка Code приложения Desktop, кроме сеанса WSL | Да | Да, кроме элементов, которые таблица элементов отмечает как только для терминала |
| Сеанс WSL в приложении Desktop | Нет, потому что плагины недоступны в сеансах WSL | Нет |
| Панель чата расширения VS Code | Да | Нет |
claude -p и Agent SDK |
Да | Нет |
| Remote Control из claude.ai или мобильного приложения | Да, в сеансе на вашей машине | В терминале на вашей машине |
| Облачный сеанс | Да, для плагина, который достигает облачного сеанса | Нет |
Мод, который рисует, может проверить, в каком приложении он работает, и вернуться к строке в транскрипте или текстовому ответу команды, где ничего не рисуется.
Управление модами для вашей организации
Администраторы решают, работают ли моды и какие из них, через управляемые параметры. Управление модами для вашей организации охватывает, что происходит по умолчанию, как просмотреть мод и как применить политику с помощью собственного мода.
Сравнение модов, settings hooks, skills и серверов MCP
Моды, settings hooks, skills и серверы MCP перекрываются. Эта таблица показывает, что это такое и когда выбрать каждый.
| Мод | Settings hook | Skill | Сервер MCP | |
|---|---|---|---|---|
| Что это | Функции в плагине, которые Claude Code вызывает в своем собственном процессе | Команда оболочки, HTTP-запрос или подсказка, которую Claude Code запускает на событии жизненного цикла | Файл SKILL.md с инструкциями, которые читает Claude |
Внешний процесс или сервис, который предоставляет Claude инструменты |
| Что он может изменить | Вызовы инструментов, подсказки, команды, ходы и то, что рисует интерфейс | Продолжается ли вызов инструмента или подсказка, аргументы и результат вызова инструмента, а также контекст, добавленный для Claude | Что знает и делает Claude | Какие инструменты есть у Claude |
| Может ли он рисовать в интерфейсе | Да | Нет | Нет | Нет |
| Что вы пишете | JavaScript или TypeScript | Скрипт и запись settings.json |
Markdown | Сервер на любом языке |
| Выберите его, когда | Вы хотите панель, полосу над подсказкой, пользовательскую команду или переписать событие | Вы хотите заблокировать, разрешить или зарегистрировать событие со скриптом, который у вас уже есть | Вы постоянно вставляете одни и те же инструкции в чат | Claude нужно достичь внешней системы |
Каждый из остальных имеет свою собственную страницу: Hooks, Skills и MCP. Плагин может содержать все четыре, поэтому мод может поставляться в одном плагине с skill и сервером MCP.
Моды, встроенные в Claude Code
Некоторые собственные функции Claude Code — это моды. Чтобы увидеть те, которые есть в вашем сеансе, запустите /plugin в подсказке Claude Code и перейдите на вкладку Installed, которая перечисляет их в разделе Built-in. Вы не можете обновлять или удалять встроенный мод, и последний столбец таблицы говорит, как отключить каждый. Строка mods active исключает встроенные моды.
Эта таблица перечисляет каждую запись по имени, которое показывает /plugin:
Имя в /plugin |
Что он делает | Где он включен | Как его отключить |
|---|---|---|---|
cc-plugin-agents-md |
Загружает AGENTS.md как инструкции проекта |
Каждый сеанс, кроме тех, которые не могут читать AGENTS.md |
Отключите его в /plugin или выберите, какие файлы инструкций загружаются |
cc-plugin-diff |
Берет на себя /diff и рисует его панель |
Интерактивные сеансы терминала | Отключите его в /plugin. /diff остается, и встроенная версия команды Claude Code отвечает на него. |
cc-plugin-plugin-authoring |
Дает Claude skill plugin-authoring для написания модов. Он содержит skill и без кода мода. |
Если Anthropic не отключила установленные моды удаленно | Отключите его в /plugin |
cc-plugin-sec-default |
Охраняет то, что управляет ваша организация, от модов, которые устанавливает пользователь | Где загружается охрана | Вы не можете. Администратор устанавливает порядок в управляемых параметрах |
cc-plugin-telemetry |
Отправляет записи аналитики, которые регистрируют Claude Code и его встроенные моды | Везде, где включена собственная аналитика Claude Code | Отключите его в /plugin или отключите аналитику, например с помощью DISABLE_TELEMETRY |
cc-plugin-you-should-know |
Запускает вспомогательного агента, который следит за вами, пока Claude работает над более длительными задачами. Когда он находит что-то стоящее знать, что вы можете пропустить, он показывает вам заметку над подсказкой. | Отключено по умолчанию. Указано в /plugin -> Installed -> Show disabled, если доступно для вашей организации. Включите с помощью /plugin enable cc-plugin-you-should-know@builtin. |
Отключите его в /plugin |
Параметры и флаги, которые останавливают установленные моды, такие как disableAllHooks, --bare и --safe-mode, не останавливают встроенные моды.
Прочитайте исходный код встроенных модов
Исходный код четырех из этих модов является общедоступным в каталоге mods репозитория Claude Code. Каждый — это полный плагин с его модулем hooks и тестами:
diff: панель/diffс кнопками, привязанными к действиям клавиатуры и прокруткой, которую обрабатывает модagents-md: загружаетAGENTS.mdкак инструкции проекта с опциейuserConfigsec-default: охрана, описанная в Знайте, что происходит по умолчанию, модель для мода, который применяет политикуtelemetry: добавляет методы, которые могут вызывать другие моды, и поставляет их типы
Следующие шаги
- Создание мода: создайте один, который считает вызовы инструментов, показывает счетчик рядом со спиннером и добавляет команду, и узнайте цикл редактирования и перезагрузки
- Рисование в интерфейсе: панели, полоса над подсказкой, кнопки, текстовые поля и состояние
- Реакция на события: вызовы инструментов, подсказки, ходы и порядок, в котором работают моды
- Использование API модов: команды, инструменты, вызовы моделей, таймеры и файлы
- Тестирование мода: автоматизированные тесты, которые работают без сеанса
- Устранение неполадок мода: причины, по которым мод ничего не делает, и журнал отладки
- Управление модами для вашей организации: значения по умолчанию, управляемые параметры, просмотр мода и моды политики
- Справочник модов: каждое событие, метод, элемент и ограничение