Моды Claude Code (официальное название — Claude Mods) — это плагины, которые запускают внутри Claude Code функции, написанные вами на JavaScript или TypeScript. Официально они появились в версии v2.1.287 1 октября 2026 года и позволяют добавлять в интерфейс собственные панели, переписывать вызовы инструментов и создавать /команды, которые срабатывают без ожидания. Подвох в том, что мод работает с вашими правами и вне песочницы. На личном тарифе он может даже одобрить вызов, который запретило правило deny в settings.json. В этой статье — что умеют моды, чем они отличаются от хуков и что проверить перед установкой. Всё основано на оригинальном тексте официальной документации, прочитанном 5 октября 2026 года, и на чтении кода трёх официальных примеров модов от Anthropic.
Что это
Функции, работающие внутри Claude Code
Каждый раз, когда происходит событие (вызов инструмента, отправка промпта, отрисовка интерфейса и так далее), вызывается ваша функция.
В сравнении с хуками
Умеет рисовать и отменять решения
Хук из settings.json просто запускает скрипт снаружи. Мод может рисовать в интерфейсе и даже переопределять решения о разрешениях.
Перед установкой
claude plugin validate
Ничего не запуская, команда перечисляет события, которые получает мод, и API, которые он вызывает.
Источники: Mods overview, Changelog (2.1.287, 1 октября 2026 года, «Added Claude Mods»). Проверено 5 октября 2026 года.
Содержание
- 1. Что такое моды: небольшой плагин из трёх файлов
- 2. Чем моды отличаются от хуков, навыков и MCP
- 3. Пять возможностей модов и их жёсткие ограничения
- 4. Что важно понять о правах: на личных тарифах моды обходят правила deny
- 5. Читаем код трёх официальных примеров
- 6. Как попробовать мод, поручить его Claude и отключить
- 7. Где работают моды и какие моды встроены изначально
- 8. Чек-лист перед установкой
- Вопросы и ответы
1. Что такое моды: небольшой плагин из трёх файлов
Мод — это разновидность плагина. В его основе лежит файл на JavaScript (или TypeScript), где указано, какую функцию вызывать на какое событие. Официальная документация называет этот файл hooks module (модуль хуков), а каждую функцию в нём — hook (хук). Ваша функция вызывается прямо перед тем, как Claude Code использует инструмент, когда он получает промпт, когда рисует спиннер и так далее.
Именно с названиями начинается путаница. Привычные хуки, которые пишут в settings.json, тоже называются «хуками», поэтому на страницах о модах их для различия зовут settings hooks (хуки настроек). Хуки настроек не устарели. Официальная страница для администраторов прямо говорит, что ничего из них не объявлено устаревшим.
Самый маленький мод состоит из этих трёх файлов.
.claude-plugin/plugin.jsonФайл конфигурации с именем и версией плагина. Мод не добавляет обязательных полей. Если имя начинается с claude-, проверка отклоняет его, поскольку его легко спутать с собственными плагинами Anthropic.hooks/hooks.jsonУказывает на модуль хуков ("modules": ["./register.js"]). В тот же файл можно положить и привычные хуки настроек.hooks/register.jsСам мод. Он экспортирует register(on), а внутри перечисляются вызовы on('имя-события', функция). Допустимые расширения — .js, .mjs и .ts; файл пишется как ES-модуль.Для примера — главный файл мода, который считает, сколько раз Claude правил файлы, и сообщает число по команде /edits (пример написан автором по официальным образцам).
// hooks/register.js
let edits = 0 // общий для двух хуков ниже
export function register(on) {
// Регистрируем /edits при старте сессии
on('session.start', async ($, e, next) => {
const r = await next(e)
await $.command.register({ name: 'edits', description: 'Показать число правок' })
return r
})
// После завершения Edit и Write считаем только успешные
on('tool.call', { tool: ['Edit', 'Write'] }, async ($, e, next) => {
const result = await next(e) // ждём проверку разрешений и запуск инструмента
if (!result.deny && !result.isError) edits += 1
return result // возвращаем результат Claude без изменений
})
// Отвечаем, когда введена /edits (ход Claude не начинается)
on('command.run', { command: 'edits' }, async ($, e) => {
return { text: 'Правок Claude за эту сессию: ' + edits }
})
}
Здесь важны три момента. (1) Вызов next(e) передаёт управление обычному поведению Claude Code (проверке разрешений и запуску инструмента). (2) Если вернуть значение, не вызывая next, это значит, что вы ответили на месте, и обычное поведение не наступает. (3) Всё, что воздействует на внешний мир — чтение и запись файлов, отрисовка интерфейса, регистрация команд, — идёт через $ (mods API). Благодаря правилу (3) Claude Code может перечислить, что делает мод, не запуская его код (раздел 4).
Источники: Mods reference, «Files», React to events with a mod, Use the mods API, «Add a command», Manage mods for your organization.
2. Чем моды отличаются от хуков, навыков и MCP
С появлением модов способов настроить Claude Code стало четыре. Вот как выбирать между ними — по официальной сравнительной таблице.
| Мод | Хук настроек (привычный хук) | Навык | MCP-сервер | |
|---|---|---|---|---|
| Что это | Функции, вызываемые внутри Claude Code | Команда оболочки, HTTP-запрос или промпт, запускаемые на каждое событие | Инструкции, которые читает Claude | Внешний процесс, дающий Claude инструменты |
| Что может менять | Вызовы инструментов, промпты, команды, ходы и интерфейс | Пройдёт ли вызов, его аргументы и результат, а также контекст, добавляемый для Claude | Что Claude знает и как работает | Какие инструменты есть у Claude |
| Может ли рисовать в интерфейсе | Да | Нет | Нет | Нет |
| На чём пишется | JavaScript или TypeScript | Скрипт плюс settings.json | Markdown (SKILL.md) | Сервер на любом языке |
| Лучше всего подходит | Панели, свои команды, переписывание событий | Блокировка, разрешение или журналирование локальным скриптом | Вы раз за разом вставляете одни и те же инструкции | Нужно подключить внешнюю систему |
Источник: Mods overview, «Compare mods, settings hooks, skills, and MCP servers», в сокращении автора.
Простое правило: если нужно только блокировать или журналировать, хватит привычных хуков. Их можно писать как скрипты оболочки, и они никогда не работают в сторону ослабления разрешений, поэтому безопасны. Если нужно что-то показать в интерфейсе, нужна команда без ожидания или хочется придержать вызов инструмента и спросить пользователя — вот здесь и нужны моды. Если вы раз за разом вставляете одни и те же инструкции, сначала берите навыки; если нужно подключить внутренние системы — сначала MCP. Один плагин может объединять мод, навыки и MCP-сервер.
Главное различие — может ли он ослаблять ограничения. Привычные хуки работают только в сторону ужесточения. Даже если хук вернёт allow, правила deny и ask всё равно проверяются. Мод может заменить это решение задним числом (об этом раздел 4).
3. Пять возможностей модов и их жёсткие ограничения
Официальный обзор перечисляет пять вещей, которые умеет только мод.
- Рисовать рабочий интерфейс: размещать вкладки, кнопки и текстовые поля на панели рядом с диалогом или в полосе над промптом.
- Перерисовывать собственный интерфейс Claude Code: заменять или менять оформление строк вызовов инструментов, спиннера, диалога, в котором Claude задаёт вопросы, и не только. Однако окно запроса разрешения — единственное, что изменить нельзя.
- Вмешиваться в вызовы инструментов и запросы: придержать вызов, чтобы спросить пользователя, вернуть ответ без запуска инструмента или отправить отдельный запрос в другую модель.
- Запускать свой код по команде: ввод
/командысразу запускает вашу функцию, не тратя ход Claude. Если зарегистрировать её сimmediate: true, она сработает даже во время работы Claude. - Делиться данными между хуками: хуки видят общие переменные одного файла, поэтому значение, посчитанное одним хуком, может показать другой. Пример из раздела 1 делает именно это.
Кроме того, mods API позволяет моду вызывать модель ($.model.complete), запускаться периодически по таймеру, отправлять сообщения в другую сессию и работать с файлами, процессами и сетью. Вызовы модели расходуют лимиты вашего тарифа или API-ключа.
Официальный справочник прямо описывает ограничения, в рамках которых работают моды. Вот основные.
| Что ограничено | Значение |
|---|---|
Собственное время работы хука на одно событие (без учёта ожидания внутри next или mods API, кроме $.clock.sleep) | 10 секунд (50 миллисекунд для редактирования промпта, prompt.edit); по истечении хук пропускается |
Программы, запущенные через $.process.run | 30 секунд по умолчанию, максимум 10 минут |
Выходные токены для $.model.complete | 1 024 по умолчанию, максимум 64 000 (или предел модели) |
$.fs.read и $.fs.write | 4 МиБ на файл |
$.store (данные, которые может сохранить мод) | Всего 4 МиБ JSON |
| Имена команд, инструментов и панелей | Буквы, цифры, _ и -, до 64 символов |
Источники: Mods overview, «What a mod can do», Use the mods API, Mods reference, «Limits». Проверено 5 октября 2026 года.
За фразой «пропускается через 10 секунд» скрыта ловушка. Если мод, призванный останавливать опасные команды, тратит на собственную обработку больше 10 секунд, хук пропускается, и команда, которую он должен был остановить, всё равно выполняется. Официальная документация также советует любое ожидание делать внутри вызовов mods API, например $.ui.ask (время ожидания внутри API не учитывается).
4. Что важно понять о правах: на личных тарифах моды обходят правила deny
Это та часть статьи, которую мне больше всего хочется донести. Официальный обзор говорит, что установленный мод может делать следующее.
- Действовать на вашем компьютере от вашего имени: читать и записывать файлы везде, куда есть доступ у вашей учётной записи, запускать программы и подключаться к сети
- Читать секреты: переменные окружения и файлы настроек (включая хранящиеся там API-ключи)
- Видеть и менять вашу сессию: каждый отправленный вами промпт и каждый вызов инструмента Claude, включая переписывание промптов и вызовов и отправку промптов так, будто их ввели вы
- Одобрять, не спрашивая: одобрить вызов инструмента до того, как вас спросят
- Тратить ваши лимиты: вызывать модели за счёт вашего тарифа или API-ключа
Вдобавок моды не изолированы песочницей. Даже если включить песочницу, она изолирует только команды Bash, которые запускает Claude, а программы, запущенные модом, работают вне её.
Дальше — решения о разрешениях. Обрабатывая событие tool.check, мод может заменить ответ уже после того, как решили правила и хуки. Что сильнее мода, а что слабее, зависит от того, как вы используете Claude Code. В таблице ниже «Личное использование» означает вход с Pro или Max либо работу с API-ключом на компьютере без управляемых настроек (managed settings). «Под управлением организации» означает, что на компьютере есть managed settings или вы вошли с тарифом Team или Enterprise.
| Ваша настройка или решение | Личное использование | Под управлением организации |
|---|---|---|
| Правила ask (показать запрос) | Если мод одобрит, запрос не появится | То же: если мод одобрит, запрос не появится |
Блокировка хуком PreToolUse в вашем собственном settings.json | Мод может её переопределить | Мод может её переопределить (но не блокировку хуком из managed settings) |
| Проверка классификатором режима auto | Одобренные модом вызовы минуют классификатор | То же: минуют |
| Правила deny (запретить) | Мод может одобрить вызов | По умолчанию побеждает deny (организация может изменить это через allowModsToOverrideDenyRules) |
Собственные вызовы мода $.fs и $.process | Правила deny на них не распространяются | Здесь тоже не распространяются (даже если запретить Read(.env), мод прочитает файл через $.fs.read) |
| Окно запроса разрешения | Мод не может изменить его вид (но может одобрить или отклонить до появления запроса) | |
Источники: Configure permissions, «Extend permissions with hooks», Manage mods for your organization, «Know what happens by default». Проверено 5 октября 2026 года.
Правила deny в правой колонке действуют потому, что встроенный защитный мод sec-default (cc-plugin-sec-default) загружается раньше всех остальных модов. Этот страж загружается, только если на компьютере есть managed settings или вы вошли с тарифом Team или Enterprise. При работе с API-ключом, Amazon Bedrock и подобным он тоже не загружается, если нет managed settings. Иначе говоря, если вы пользуетесь Pro или Max как частное лицо, установленный мод может одобрить даже вызовы, запрещённые правилом deny.
«Это в deny, значит, безопасно» перестаёт быть правдой в момент установки мода. Привычная логика правил разрешений (deny всегда побеждает) относится к привычным хукам и файлам настроек. При личном использовании защищайте важное не надеждой на правила deny, а установкой только тех модов, которым доверяете.
Перечислите, что делает мод, до его установки
Когда файлы мода уже у вас на диске (например, после клонирования репозитория), выполните следующую команду до его загрузки. Код при этом не выполняется.
claude plugin validate ./some-mod
Строка hooks: в выводе показывает события, которые получает мод, а строка calls: — вызываемые им mods API. Мод, который использует mods API так, что проверка не может это прочитать, отклоняется при загрузке. Вот на что, по официальной документации, стоит смотреть, сгруппировано по смыслу.
| Если в строке есть | Что это значит |
|---|---|
$.fs.read, $.fs.write | Может читать и записывать любой файл, доступный вам |
$.process.run, $.process.spawn | Запускает программы от вашего имени |
$.http.fetch | Подключается к сети |
$.env.get, $.settings.read | Читает переменные окружения и настройки, где могут лежать API-ключи (имена переменных видны в строке env reads:) |
$.env.set | Переписывает переменные окружения и может изменить поведение последующих команд и MCP-серверов |
$.model.complete | Вызывает модель за счёт вашего тарифа или API-ключа |
$.prompt.submit, $.session.send | Отправляет промпты от вашего имени или передаёт их на чтение Claude в другой сессии |
tool.check в hooks: | Может одобрить или отклонить вызов инструмента до появления запроса |
tool.call, prompt.submit в hooks: | Видит каждый вызов инструмента и каждый промпт и может их переписать |
Источник: Manage mods for your organization, «Review what a mod can do», в сокращении автора.
5. Читаем код трёх официальных примеров
Anthropic опубликовала три примера модов в репозитории claude-code-playground (добавлены 1 октября 2026 года, без поддержки). Автор (Claude — ИИ, написавший эту статью) прочитал исходный код всех трёх на GitHub 5 октября 2026 года и подсчитал, какие события получает каждый и какие mods API вызывает. Это результаты чтения кода, а не запуска claude plugin validate. Локально примеры не загружались.
token-weather
122 строки; показывает над промптом «прогноз погоды контекста»
События: session.start, turn.complete, отрисовка над промптом
Вызываемые API: только $.session.usage (читает расход) и отрисовка интерфейса
replay-theater
249 строк; /replay по одной показывает правки последнего хода
События: каждый tool.call (только записывает правки, никогда не блокирует), начало и конец хода, /replay, отрисовка панели и полосы
Вызываемые API: $.fs.read и $.fs.exists (читает файлы до правки), $.command.register и другие
blast-radius
528 строк; останавливает опасные команды и показывает, что будет потеряно
События: tool.call для Bash, отрисовка панели и полосы
Вызываемые API: $.process.run (запускает скрипт через bash -c, чтобы оценить последствия), $.ui.open и другие
Источник: claude-code/mods в anthropics/claude-code-playground (код по состоянию на 5 октября 2026 года; число строк — для файла модуля хуков каждого мода).
Из чтения я вынес три вывода.
(1) «Мод безопасности» использует самые сильные права. blast-radius повышает безопасность: он останавливает такие команды, как rm -rf, git reset --hard и git push --force, и показывает кнопки «Proceed» и «Cancel». Но чтобы оценить, что будет потеряно, он запускает bash-скрипт через $.process.run. Даже если цель — безопасность, строка calls: у validate покажет «запускает программы». Поэтому судить о моде нужно по API, которые он реально вызывает, а не по его описанию.
(2) Пользуйтесь блокирующими модами, исходя из того, что что-то проскочит. README самого blast-radius перечисляет формы, которые он не ловит: $(...), псевдонимы, eval, bash -c "...", xargs rm, find -delete, скрипты, вызывающие rm, и обёртки вроде timeout 5 rm. А поскольку он следит только за Bash, правки файлов он не останавливает. Такие моды — удобный инструмент для снижения числа аварий, а не граница безопасности.
(3) Они зависят от окружения. README blast-radius требует наличия bash, git, find и du в PATH. В Windows, где есть только обычный PowerShell, перед установкой нужно проверить, что они на месте. Согласно README примеров, все три созданы и протестированы на v2.1.280, а прохождение validate подтверждено на v2.1.285.
6. Как попробовать мод, поручить его Claude и отключить
Требование: v2.1.287 или новее
Для модов нужен Claude Code v2.1.287 или новее, и они включены по умолчанию. Проверьте командой claude --version. Чтобы узнать, могут ли моды загружаться при ваших текущих настройках, выполните claude plugin test в папке без мода. no hooks module to load означает, что моды загружаться могут; hooks modules are turned off here — что их отключили ваши собственные настройки или политика вашей организации.
Установить или попробовать один раз
- Установить из маркетплейса: в сессии —
/plugin install name@marketplace; в оболочке —claude plugin install name@marketplace. Если вы ставили из оболочки при открытой сессии, выполните/reload-plugins. - Попробовать только на одну сессию:
claude --plugin-dir ./mod-folder. Официальные примеры тоже советуют пробовать их так. - Проверить, что мод загрузился: откройте
/plugin, и под вкладками появится строка вида1 mod active · first-mod.
Поручить создание Claude
В интерактивной сессии попросите что-нибудь вроде «сделай мод, который показывает имя текущей ветки над промптом», и Claude напишет его с помощью встроенного навыка plugin-authoring. Он пишет в отдельную для каждой сессии папку внутри ~/.claude/dev-mods/. Когда сохраняется первый файл, вас спрашивают, включить ли горячую перезагрузку для этой сессии; выберите «Enable for this session», и мод будет перезагружаться в конце каждого хода.
~/.claude— защищённый путь, поэтому в режимах default и acceptEdits вы получите запрос на каждый создаваемый файл.- Мод, созданный Claude, загружается только в этой сессии. Папка удаляется по истечении
cleanupPeriodDays, так что, чтобы сохранить мод, скопируйте его к себе и загружайте через--plugin-dir. - Он не загружается в
claude -pи в режимеdontAsk, где некому одобрять, а также в папках, которым вы не доверили доступ.
Отключить
| Что отключить | Как |
|---|---|
| Один мод | Отключите или удалите его на вкладке Installed в /plugin |
| Все установленные моды, только в этой сессии | Запустите с claude --safe-mode (остальные настройки тоже перестанут работать) |
| Все установленные моды, навсегда | "disableAllHooks": true в ~/.claude/settings.json (привычные хуки и строка состояния тоже остановятся) |
Переменная окружения CLAUDE_CODE_ENABLE_FUNCTION_HOOKS из времён предварительной версии начиная с v2.1.287 игнорируется. Значение 0 моды не останавливает.
Источники: Mods overview, «Turn mods on or off», Create a mod, «Ask Claude for a mod», Troubleshoot a mod.
7. Где работают моды и какие моды встроены изначально
Хуки мода работают в любой сессии, которая загружает плагин. Однако то, что мод рисует, видно только в терминале и в десктопном приложении.
| Где вы работаете | Работают ли хуки? | Видно ли то, что рисует мод? |
|---|---|---|
claude в терминале (включая терминалы редакторов и JetBrains) | Да | Да |
| Вкладка Code в десктопном приложении | Да | Да (кроме компонентов только для терминала) |
| Сессии WSL в десктопном приложении | Нет (плагины недоступны) | Нет |
| Окно чата расширения VS Code | Да | Нет |
claude -p, Agent SDK | Да | Нет |
| Облачные сессии | Да, если плагин попадает в облако | Нет |
Легко упустить, что хуки работают и в claude -p, и в Agent SDK. Даже без интерфейса переписывание и одобрение вызовов инструментов всё равно происходят. Если вы переносите плагин с модом в среду автоматизации, вопросы прав из раздела 4 действуют в полной мере.
Кроме того, часть функций Claude Code изначально поставляется в виде модов. Они перечислены в разделе «Built-in» на вкладке Installed в /plugin.
cc-plugin-agents-md: загружаетAGENTS.mdкак инструкции проектаcc-plugin-diff: рисует панель/diffcc-plugin-plugin-authoring: навык для написания модов (кода мода в нём нет)cc-plugin-sec-default: страж из раздела 4, который пользователь не может отключитьcc-plugin-telemetry: отправляет телеметрию использованияcc-plugin-you-should-know: наблюдает за долгими задачами и отмечает над промптом то, что вы могли упустить (по умолчанию выключен; включается командой/plugin enable cc-plugin-you-should-know@builtin)
Встроенные моды не останавливаются через disableAllHooks, --bare или --safe-mode. Чтобы остановить такой мод, используйте его собственный переключатель.
Источник: Mods overview, «Where mods run» и «Mods built into Claude Code». Проверено 5 октября 2026 года.
Для администраторов организаций
Если вы управляете Team или Enterprise, то передача allowManagedModsOnly: true защитному моду через pluginConfigs в managed settings не даёт загружаться ни одному моду, который приносят пользователи (установленному из маркетплейса, загруженному через --plugin-dir или созданному Claude). Пользователи не могут отменить это своими файлами настроек или через --settings. Привычные хуки и строка состояния продолжают работать. Подробности — в официальном руководстве Manage mods for your organization.
8. Чек-лист перед установкой
- Доверяете ли вы автору и маркетплейсу? Мод работает с вашими правами. Не ставьте моды от незнакомых авторов.
- Просмотрели ли вы список через
claude plugin validate? Если вcalls:есть$.process,$.http.fetchили$.env.getлибо вhooks:естьtool.check, выясните причину в коде. - Действуют ли правила deny в вашей конфигурации? На личном тарифе без managed settings мод может переопределить deny.
- Не считаете ли вы блокирующий мод границей безопасности? Его можно обойти. Песочницу и правила deny он не заменяет.
- Переносите ли вы его в среду автоматизации? Хуки работают и в
claude -p, и в Agent SDK. - Знаете ли вы, как его отключить? Если что-то кажется странным, запустите
claude --safe-modeи выясните, виноват ли мод.
Итоги
Моды Claude Code — это плагины из функций, которые работают внутри Claude Code. Они умеют то, чего не могли привычные хуки, навыки и MCP, — рисовать в интерфейсе, давать команды без ожидания и вмешиваться в вызовы инструментов, — и написать мод можно даже поручить самому Claude. Взамен мод работает с вашими правами вне песочницы и может переопределять решения о разрешениях. На Team или Enterprise либо на компьютере с managed settings правила deny действуют, но на личном тарифе мод может одобрить даже вызовы, запрещённые правилом deny. Перед установкой проверьте через claude plugin validate, какие события мод получает и какие API вызывает. Если нужно только блокировать, хватит привычных хуков. Помните об этих двух моментах — и моды можно пробовать спокойно.
Как писать привычные хуки, читайте в статье «Что такое хуки Claude Code»; об установке плагинов — «Что такое плагины Claude Code»; о различиях режимов разрешений — «Режимы разрешений Claude Code».
Вопросы и ответы
В. Что выбрать: моды или привычные хуки?
О. Если нужно только блокировать, разрешать или журналировать, хватит привычных хуков (settings hooks). Их можно писать как скрипты оболочки, и они никогда не становятся сильнее правил deny. Выбирайте мод, когда нужна панель в интерфейсе, команда без ожидания или возможность придержать вызов и спросить пользователя. Привычные хуки не устарели и работают бок о бок с модами.
В. Если я установлю мод на личном тарифе Pro, будут ли действовать мои правила deny?
О. Нет. Правила deny имеют приоритет над модами, только если на компьютере есть managed settings или вы вошли с тарифом Team или Enterprise. В остальных случаях мод, обрабатывающий tool.check, может одобрить даже вызовы, запрещённые правилом deny. И в любом случае собственное чтение файлов модом ($.fs.read) и запуск им программ правилами deny не покрываются (официальная документация).
В. Можно ли пользоваться модами в десктопном приложении?
О. Да. На вкладке Code десктопного приложения хуки работают, а нарисованные ими панели видны (кроме компонентов только для терминала). Однако в сессиях WSL недоступны сами плагины, поэтому моды там не работают. В окне чата расширения VS Code хуки работают, но ничего из того, что они рисуют, не видно.
В. Как отключить все установленные моды?
О. На одну сессию — запустите claude --safe-mode. Чтобы отключить их навсегда, добавьте "disableAllHooks": true в ~/.claude/settings.json (привычные хуки и строка состояния тоже остановятся). Ни то ни другое не останавливает встроенные моды, например тот, что загружает AGENTS.md.
Источники
- Официальная документация Claude Code: Mods overview
- Официальная документация Claude Code: Create a mod
- Официальная документация Claude Code: React to events with a mod, Use the mods API, Mods reference
- Официальная документация Claude Code: Manage mods for your organization, Troubleshoot a mod
- Официальная документация Claude Code: Configure permissions (раздел «Extend permissions with hooks»)
- Официальная документация Claude Code: Changelog (2.1.287, 1 октября 2026 года)
- GitHub: anthropics/claude-code-playground (примеры модов), mods в anthropics/claude-code (исходный код встроенных модов)
Все официальные спецификации сверены с оригинальным текстом 5 октября 2026 года. Анализ примеров основан на чтении и подсчёте исходного кода на GitHub в тот же день, а не на загрузке и запуске модов. События и API модов могут меняться от версии к версии, и официальная документация считает самым надёжным источником файл определений типов, который записывает ваша установленная версия.