/reload-plugins. Вы также можете попросить Claude прочитать эту страницу и диагностировать вашу конфигурацию.
Эти случаи рассмотрены на других страницах:
- Шаги установки, включения, отключения и обновления: см. Установка и управление плагинами
- У вас есть конкретное сообщение об ошибке: см. Устранение неполадок плагинов
- Плагин, который вы отключили, всё ещё загружается: Найдите, где плагин включен
- Обновление ничего не изменило: Версии и обновления
- Вы смотрите на файлы в
~/.claude/plugins/: Найдите плагины на диске - Плагин
--plugin-dirне загрузился, или вместо него загрузился плагин с тем же именем: Конфликты имён - Плагин в
~/.claude/skills/или.claude/skills/не загрузился, и никакая ошибка не объясняет причину: Плагины из каталога скиллов, заблокированные управляемыми настройками
Проверьте, на каком этапе находится плагин
ЗаписьenabledPlugins становится плагином, который вы можете использовать, в несколько этапов: ваши параметры объявляют его, Claude Code загружает его на диск, и работающий сеанс загружает его. Когда плагин ведёт себя не так, как предполагает файл параметров, проверьте, на каком этапе он находится:
- Объявлен в параметрах:
enabledPluginsуказывает, какие плагины должны быть включены, аextraKnownMarketplacesуказывает, какие маркетплейсы должны существовать. Когда вы запускаетеclaude plugin marketplace add, Claude Code записывает маркетплейс вextraKnownMarketplacesв ваши пользовательские параметры, а также на диск - Загружен на диск в
~/.claude/plugins/: записи о том, что Claude Code загрузил, и сами загруженные файлы:known_marketplaces.jsonзаписывает каждый маркетплейс, который Claude Code загрузил, с егоsource,installLocation,lastUpdatedиautoUpdate. На одного пользователя приходится одинknown_marketplaces.json, поэтому маркетплейс, который вы добавляете в одном проекте, доступен в каждом проектеinstalled_plugins.jsonзаписывает каждую установку с еёscope,installPathиversioncache/содержит файлы плагинов
- Загружен в работающем сеансе: набор плагинов, который Claude Code загрузил при запуске или при последнем
/reload-plugins. Изменения параметров или диска не достигают этого уровня до тех пор, пока вы не запустите/reload-pluginsили не начнёте новый сеанс. Вот почемуclaude plugin updateзаканчивается наRestart to apply changes.и фоновые обновления предлагают вамRun /reload-plugins to apply
Плагины и маркетплейсы, которых нет на диске при запуске сеанса
Плагины загружаются при запуске сеанса изinstalled_plugins.json и кэша без использования сети. После запуска сеанса Claude Code проверяет объявленные маркетплейсы в фоновом режиме:
- Маркетплейс, который параметры объявляют, но
known_marketplaces.jsonне содержит: Claude Code клонирует его, затем перезагружает плагины и загружает включённые плагины, которые ещё не кэшированы - Объявленный маркетплейс, чей источник изменился в параметрах: Claude Code повторно загружает его из нового источника и показывает
Plugins changed. Run /reload-plugins to activate.
Plugin "<name>" not cached at <path> на вкладке /plugin Errors. Для исправления см. Plugin "<name>" not cached at <path>.
Как узнать, откуда взялся плагин
У каждого плагина есть идентификатор вида<name>@<origin>, который вы видите в файлах настроек и в выводе claude plugin list --json. Часть после @ показывает, где Claude Code нашёл плагин:
Для плагина из маркетплейса
<name> — это имя записи в marketplace.json; для @inline и @skills-dir — это name в манифесте плагина.
Имена источников из этой таблицы зарезервированы, поэтому ни один маркетплейс не может называться inline, skills-dir или synced.
Имя записи и имя в манифесте
У плагина из маркетплейса есть два имени, и они могут различаться:- Имя записи в
marketplace.json: ключ для установки и включения. Именно его вы пишете вenabledPlugins, по нему называется каталог кэша, и его показываетclaude plugin list nameв манифесте: пространство имён, в котором находятся компоненты плагина, и то, что сравнивается при конфликтах имён
Плагины, распространяемые через репозиторий
Чтобы поделиться плагином через репозиторий, укажите его вenabledPlugins в .claude/settings.json или поместите его в .claude/skills/. Claude Code не сканирует каталог .claude/plugins/ проекта.
Облачная сессия не добавляет маркетплейсы, которые репозиторий перечисляет в extraKnownMarketplaces, поскольку для этого требуется диалог доверия к рабочему пространству, который облачная сессия никогда не показывает.
Проверка доверия и ограничения компонентов для плагинов из репозитория
Плагин уровня проекта хранится в репозитории и попадает к каждому участнику, который его клонирует. Поскольку это содержимое поступает из репозитория, а не от вас, оно загружается только после той же проверки доверия, которая применяется к правилам разрешений проекта в.claude/settings.json. Доверия к родительской папке или запуска с -p недостаточно. Компоненты, выполняющие код, ограничены ещё сильнее:
- Объявленные в нём MCP-серверы проходят такое же подтверждение для каждого сервера, как и в
.mcp.jsonпроекта - Объявленные в нём MCP-серверы в виде MCP bundle — файла
.mcpbили.dxt— или из файла вне каталога плагина пропускаются. Объявляйте их встроенно или в.mcp.jsonвнутри каталога плагина - Фоновые мониторы не загружаются
~/.claude/skills/.
О том, как писать плагины для --plugin-dir и каталога скиллов, см. Создание плагинов.
Выяснение, почему плагин из репозитория не загрузился
Если плагин в.claude/skills/ вашего репозитория не загружается, проверьте следующие причины:
- В подкаталоге: плагин в корне репозитория не загружается. Claude Code читает
.claude/skills/основного рабочего каталога сессии и, в отличие от обычных скиллов и команд, не ищет плагины в родительских каталогах. Вместо этого запускайте из корня репозитория или переместите туда сессию с помощью/cdв версии v2.1.246 или новее - Из десктопного приложения, в worktree: плагин загружается из
.claude/skills/основного checkout, а не из worktree. См. Что worktree разделяют с основным checkout - В папке, которой вы не доверяете: плагин загружается только после того, как вы примете диалог доверия к рабочему пространству для этой папки
- В организации, которая управляет Claude Code: см. Плагины из каталога скиллов, заблокированные управляемыми настройками
Плагины из каталога скиллов, заблокированные управляемыми настройками
Если папка плагина в~/.claude/skills/ или в .claude/skills/ проекта не загрузилась и вы не видите ошибки, возможно, ваш администратор заблокировал её через управляемые настройки. Эти папки поступают от вас или из вашего репозитория, а не из маркетплейса, поэтому Claude Code пропускает их, когда администратор задаёт одно из следующих ограничений:
- Настройка ограничена плагинами:
strictPluginOnlyCustomizationимеет значениеtrueили массив, называющий один или несколько видов настройки, которые нужно заблокировать. Плагин пропускается целиком, если заблокирован хотя бы один вид, напримерmcp, независимо от того, какие компоненты в нём есть. - Источники маркетплейсов ограничены: список разрешённых источников
strictKnownMarketplacesбез записи{ "source": "skills-dir" }или списокblockedMarketplaces, содержащий такую запись.
/plugin и claude plugin list не показывают ни плагина, ни ошибки для пропущенной папки. Её команды /<name>:<skill> и агенты отсутствуют, как и её хуки и MCP-серверы.
Если скиллы не входят в число заблокированных видов, SKILL.md в корне папки по-прежнему загружается как обычный скилл. В э��ом случае /<name> продолжает работать, а вкладка Installed в /plugin показывает этот скилл в разделе Skills.
- Подтвердите причину: выполните
/statusв сессии Claude Code. Если в строкеSetting sourcesуказаноEnterprise managed settings, спросите администратора, применяется ли к вам одна из этих настроек. Если нет, см. Выяснение, почему плагин из репозитория не загрузился, чтобы найти другие причины. - Загрузите плагин целиком: добавьте его в маркетплейс, разрешённый вашей организацией, и установите оттуда. Чтобы вместо этого загрузить его на одну сессию, запустите
claudeиз оболочки с--plugin-dirи путём к папке — это работает, если только администратор не отключил и этот флаг.
Плагины, синхронизированные с claude.ai
Плагин, который вы включаете для своей учётной записи claude.ai, также загружается в Claude Code наряду с плагинами, которые вы устанавливаете из маркетплейсов. Сюда входят и плагины, которые ваша организация включает для своих участников. Каждый из этих плагинов загружается как<name>@synced, без маркетплейса и без записи об установке.
В терминальных сессиях загружаются все скиллы, агенты, хуки, MCP-серверы и LSP-серверы синхронизированного плагина с тем же уровнем доверия, что и у установленного вами плагина из маркетплейса.
О компонентах, которые загружает Cowork, см. таблицу поддержки компонентов на claude.com.
Синхронизированные плагины загружаются в сессиях Cowork и в терминальных сессиях, в которых вы входите с помощью своей учётной записи claude.ai:
- Cowork: Claude Code скачивает их в собственное окружение сессии при её запуске
- Терминальные сессии: при каждом запуске Claude Code один раз выполняет синхронизацию в фоновом режиме, скачивая новые и обновлённые плагины и удаляя те, которые вы или ваша организация отключили. Для синхронизации в терминальных сессиях требуется Claude Code v2.1.273 или новее
Время синхронизации в облачных сессиях Cowork
Если вы включаете или отключаете плагин для своей учётной записи claude.ai во время сессии Cowork, которая выполняется в облаке, продолжайте работать в этой сессии. Если после нескольких сообщений ничего не изменилось, начните новую сессию.Время синхронизации в терминальных сессиях
Поскольку синхронизация в терминале выполняется в фоновом режиме, она может завершиться уже после начала сессии. Когда она добавляет, обновляет или удаляет синхронизированный плагин в интерактивной сессии, вы видитеPlugins changed. Run /reload-plugins to activate. Выполните /reload-plugins, чтобы загрузить изменение в этой сессии, или оставьте его до следующего запуска Claude Code.
Е��ли вы включаете или отключаете плагин для своей учётной записи claude.ai во время терминальной сессии, Claude Code скачивает или удаляет его при следующем запуске Claude Code.
Требования ко входу для синхронизации в терминале
В терминале плагины синхронизируются только в сессиях, в которых вы входите с помощью своей учётной записи claude.ai. Claude Code не скачивает и не загружает синхронизированные плагины в следующих терминальных сессиях, даже после входа с помощью/login:
- Сессия, в которой
ANTHROPIC_AUTH_TOKEN,CLAUDE_CODE_OAUTH_TOKENили скриптapiKeyHelperпредоставляет учётные данные вместо такого входа - Сессия, которая не получает флаги функций от Anthropic, например сессия, в которой вы задали
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC - Сессия в режиме bare или сессия, запущенная с
--safe-mode - Сессия, запущенная со списком
--setting-sources, в который не входитuser
/login. Синхронизация плагинов начнётся при следующем запуске Claude Code.
Управление загрузкой синхронизированных плагинов
Вы можете отключать синхронизированные плагины по одному, за исключением плагина, обязательного для вашей организации, или отключить все синхронизированные плагины на компьютере:- Один плагин:
claude plugin disable <name>@syncedв оболочке и вкладка Installed в/pluginв сессии сохраняют"<name>@synced": falseв ваших пользовательскихenabledPlugins. Чтобы исключить плагин из проекта во всех окружениях, задайте тот же ключ в закоммиченном.claude/settings.jsonпроекта - Все синхронизированные плагины на компьютере: задайте
syncClaudeAiPluginsравнымfalseв пользовательских настройках, или ваша организация задаёт его в управляемых настройках. Claude Code прекращает скачивание, а при следующем запуске перемещает уже синхронизированные плагины в~/.claude/plugins/.trash/и больше не загружает их. Если ваша организация отключает Skills на claude.ai, синхронизация плагинов также прекращается - Плагин, обязательный для вашей организации: плагин, который ваша организация пометила как обязательный на claude.ai, загружается, даже если вы ранее его отключили.
claude plugin disableотклоняет его с сообщениемPlugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it., аclaude plugin listпомечает его какrequired by your org
Найдите, где плагин включен
Вы можете установить записьenabledPlugins в любом из шести источников. Таблица перечисляет их от самого низкого приоритета к самому высокому и указывает, к кому применяется каждый. Для самих файлов параметров см. Файлы параметров и кто они затрагивают.
Эти источники объединяются ключ за ключом. Для каждого идентификатора плагина применяемое значение — это значение из источника с наивысшим приоритетом, который упоминает идентификатор. Источник, который не упоминает идентификатор, оставляет значение из источника с более низким приоритетом в силе.
Отключено в пользовательских параметрах, но всё ещё загружается
Если вы установили плагин вfalse в ~/.claude/settings.json и он всё ещё загружается, true в источнике с более высоким приоритетом его переопределяет. Строка плагина в claude plugin list и в /plugin показывает Disabled in ~/.claude/settings.json but still loads — project settings enable it, which overrides your user setting. Сообщение называет источник, который вас переопределил: project, project, gitignored для .claude/settings.local.json, cli flag, или managed.
��тобы отказаться от плагина, включённого проектом, на вашей машине, установите идентификатор в false в .claude/settings.local.json, который имеет более высокий приоритет, чем файл проекта.
Включено в параметрах проекта, но не установлено
Когда единственныйtrue плагина находится в .claude/settings.json проекта, Claude Code не загружает его на машину, где он не установлен, если только его запись маркетплейса не имеет источника с относительным путём или каталог семян уже его содержит. Вместо этого вкладка /plugin Errors показывает Plugin "<name>" is enabled in project settings but isn't installed here.
Плагин с относительным путём не нуждается в записи об установке, потому что он загружается из самого маркетплейса.
Claude Code загружает плагин с внешним источником только когда один из этих источников устанавливает его в true:
- Ваши пользовательские параметры
.claude/settings.local.json, который git не отслеживает- Флаг
--settings - Управляемые параметры
Найдите плагины на диске
Claude Code хранит файлы плагинов и записи состояния в одном корне плагинов, который является~/.claude/plugins, если вы не установили CLAUDE_CODE_PLUGIN_CACHE_DIR. Каждый путь в таблице относителен к этому корню.
Поскольку
${CLAUDE_PLUGIN_ROOT} указывает на каталог версии, путь корня плагина изменяется с каждой версией. Сохраняйте постоянные файлы плагина в ${CLAUDE_PLUGIN_DATA} вместо этого.
Плагины на месте и скопированные плагины
Claude Code загружает некоторые плагины на месте из того места, где вы их храните, и копирует остальные в кэш, в соответствии с их источником:- Плагины
--plugin-dirи каталога навыков: каталог загружается на месте и никогда не копируется. Архив--plugin-urlили.zip--plugin-dirсначала извлекается во временный каталог сеанса - Плагины с относительным путём в маркетплейсе, который вы добавили из локального пути: плагин загружается на месте из его пути внутри папки маркетплейса. Ваши правки в исходный каталог вступают в силу при следующем запуске сессии или
/reload-plugins, и вам не нужно увеличивать версию. Процессы хуков плагина и серверы MCP и LSP получаютCLAUDE_PLUGIN_ROOT, который указывает на исходный каталог. О его зависимостях пакета Node.js см. Когда запускается установка зависимостей - Плагины источника
commandв режиме ссылки: каталог, который напечатала команда, загружается на месте через ссылки в записи кэша - Каждый другой плагин маркетплейса: Claude Code копирует плагин в
cache/<marketplace>/<plugin>/<version>/при установке и загружает эту копию. Файлы вне каталога плагина не копируются, поэтому когда скрипт внутри скопированного плагина читает путь выше корня плагина, такой как../shared, он их не находит
Пути, которые выходят за пределы каталога плагина
Загружается ли плагин на месте или из кэшированной копии, Claude Code не позволяет ему объявлять компоненты вне его собственного каталога. Он отклоняет путь компонента, который разрешается вне корня плагина, независимо от того, объявлен ли путь вplugin.json или в записи маркетплейса:
- Путь, который указывает вне плагина в написанном виде, такой как
../shared-utils - Символическая ссылка, которая ведёт вне плагина, кроме ссылок между плагинами в одном маркетплейсе
- На macOS и Linux, путь, который содержит обратную косую черту где-либо в нём, даже когда путь остаётся внутри плагина. Компоненты, объявленные с путями обратной косой черты, поэтому загружаются только на Windows, поэтому пишите пути компонентов с прямыми косыми чертами, такие как
./commands/deploy.md
path escapes plugin directory, и плагин загружается без этого компонента.
Очистка предыдущих версий
Когда вы обновляете или удаляете плагин, Claude Code записывает маркер.orphaned_at в каталог предыдущей версии. Он удаляет этот каталог в фоновой очистке через 14 дней, поэтому сеанс, который уже загрузил старую версию, продолжает работать.
Очистка выполняется только пока installed_plugins.json записывает по край��ей мере одну установку. После удаления последнего плагина осиротелые каталоги остаются до тех пор, пока вы не установите другой.
Зависимости пакета Node.js
Когда Claude Code копирует плагин в кэш, он также устанавливает зависимости пакета Node.js плагина там, поэтому hooks и MCP серверы плагина могут их загружать. Этот раздел охватывает пакеты npm и Bun, которые плагин объявляет в своём собственномpackage.json. О плагинах, которые зависят от других плагинов, см. версии зависимостей плагина.
Когда запускается установка зависимостей
Claude Code устанавливает зависимости в скопированный каталог версии каждый раз, когда создаёт его:- Когда вы устанавливаете плагин
- Когда Claude Code обновляет плагин до новой версии
- При запуске сеанса, когда включённый плагин ещё не кэширован, например, на новой машине
${CLAUDE_PLUGIN_DATA}.
Установка запускается только когда каталог корня плагина содержит как package.json, так и поддерживаемый файл блокировки.
Файл блокировки решает, какой менеджер пакетов запускает Claude Code:
Если плагин содержит более одного из этих файлов блокировки, Claude Code использует первое совпадение, проверяя по порядку:
bun.lock, npm-shrinkwrap.json, package-lock.json.
Claude Code пропускает установку в следующих случаях, связанных с файлом блокировки:
bun.lockb: двоичный файл блокировки Bun невозможно проверить. Поставляйте вместо него текстовыйbun.lockили файл блокировки npmyarn.lockилиpnpm-lock.yaml: замените его файлом блокировки npm- Файл блокировки в формате, который Claude Code не читает: файлу блокировки npm нужен
lockfileVersionравный2или3, который записывает npm 7 или новее, аbun.lockнуженlockfileVersionне выше2
npm-shrinkwrap.json, потому что npm исключает package-lock.json из опубликованных пакетов.
Ограничения на установку зависимостей
Claude Code ограничивает эту установку зависимостей так, чтобы никакой код из плагина или его пакетов не выполнялся во время неё, и ограничивает, как долго она может выполняться:- Только пакеты из реестра: каждая зависимость должна быть пакетом из реестра, закреплённым в файле блокировки на точной версии. Плагин с зависимостью из git, GitHub, папки, рабочего пространства или связанной зависимостью не получает установки.
- Загрузки по
https: ссылка для загрузки в файле блокировки должна использоватьhttps, если только она не указывает на собственный реестр npm по умолчанию устанавливающего пользователя. - Отдельная папка установки: менеджер пакетов запускается в собственной папке, которая содержит только копию проверенного списка зависимостей, поэтому npm и Bun не читают
.npmrc,.envилиbunfig.tomlплагина. Когда установка завершается успешно, Claude Code перемещает полученныйnode_modulesв плагин. - Замороженное разрешение: установка использует ровно те версии, которые закрепляет файл блокировки, и Claude Code пропускает её, когда
package.jsonи файл блокировки перечисляют разные зависимости - Нет скриптов жизненного цикла:
--ignore-scriptsпредотвращает запуск скриптовpreinstall,installиpostinstall, поэтому зависимости, которые собирают собственные модули в этих скриптах, загружаются, но не компилируются во время этой установки - Нет переопределений или патчей: плагин, чей
package.jsonзадаётoverridesnpm, не получает установки из файла блокировки npm, а плагин, который задаётpatchedDependenciesBun, не получает установки изbun.lock - Тайм-аут 60 секунд: Claude Code останавливает установку, которая выполняется дольше, и рассматривает её как неудачную
Когда установка зависимостей не удаётся или пропускается
Если установка не удаётся или пропускается, плагин всё равно загружается, но те его части, которым нужны отсутствующие пакеты, могут не работать./plugin и claude plugin list показывают примечание для включённого плагина, кэшированная копия которого содержит файл блокировки и package.json со списком зависимостей времени выполнения, но не содержит каталога node_modules. В примечании указано, не завершилась ли установка или она не может быть выполнена для этого плагина. О том, что делать в каждом случае, см. соответствующий раздел по устранению неполадок.
Когда автоматическая установка не может предоставить зависимость, установите её из хука в каталог постоянных данных. Это включает пакеты, которым нужны их скрипты жизненного цикла для сборки, зависимости Python, плагины, заблокированные Yarn или pnpm, и зависимости, которые не являются пакетами из реестра, например зависимости из git.
Версии и обновления
Если автор плагина отправил новые коммиты иclaude plugin update печатает <name> is already at the latest version (<version>)., версия, которую Claude Code вычисляет для плагина, не изменяется, поэтому файлы плагина на диске не изменяются.
Claude Code вычисляет версию для каждого плагина, который он устанавливает, и эта версия — это то, как он обнаруживает обновление. claude plugin update и фоновое автоматическое обновление вычисляют версию снова и не заменяют кэшированную копию, когда она совпадает с тем, что записывает installed_plugins.json. Обновление, которое запускаете вы, всё равно может повторить попытку незавершённой установки зависимостей в этой копии.
Версия также называет каталог кэша плагина.
Манифест, который закрепляет "version", — это один способ, которым вычисленная версия остаётся неизменной при коммитах. См. Как Claude Code вычисляет версию для порядка разрешения.
Плагин, загруженный на месте из маркетплейса, который вы добавили из локального пути, загружает свои текущие исходные файлы при каждом запуске сессии, независимо от того, что говорит его строка версии. Для плагина из маркетплейса, размещённого на claude.ai, версия, которую claude.ai записывает для плагина, — это его версия, и version манифеста не читается.
Как Claude Code вычисляет версию
Для маркетплейса, который вы добавили по источнику, Claude Code выбирает правило по типуsource записи маркетплейса плагина. Справочник маркетплейса перечисляет типы источников. Для каждого типа источника в этом списке, кроме command:
- Поле
versionв манифесте плагина идёт первым - Затем поле
versionв записи маркетплейса плагина - Когда ни один не установлен, версия поступает из типа источника:
Claude Code не берёт версию из репозитория, который охватывает путь установки, такого как управляемый git
~/.claude.
Для источника command Claude Code всегда выводит версию из того, что произвела команда: 12-символьный хэш сам по себе, или <manifest version>-<hash>, когда манифест устанавливает один. version записи маркетплейса игнорируется для источников команд. О том, что охватывает хэш, см. Режим копирования и режим ссылки.
Поскольку манифест идёт первым, манифест, который закрепляет "version": "1.0.0", держит каждого пользователя на кэшированной копии до тех пор, пока его автор не изменит строку, сколько бы коммитов они ни отправили. Чтобы позволить пользователям отслеживать коммиты вместо этого, оставьте version вне манифеста и записи. Размещение маркетплейса охватывает, какой выбор подходит для какой установки выпуска.
Когда Claude Code обновляет маркетплейс перед установкой
Когда вы устанавливаете плагин, Claude Code ищет его в своей локальной копии каталога маркетплейса. Вы можете запустить/plugin install в сеансе или claude plugin install в вашей оболочке и назвать плагин с его маркетплейсом или без. Таблица показывает, какие из этих комбинаций обновляют локальную копию.
Обновление перед установкой
name@marketplace не зависит от параметра автоматического обновления маркетплейса или от DISABLE_AUTOUPDATER.
Когда обновление не удаётся, установка продолжается из кэшированного каталога и claude plugin install сообщает marketplace not refreshed.
Claude Code пропускает обновление перед установкой name@marketplace, когда:
- Маркетплейс был добавлен из локального источника
fileилиdirectory, или определён встроенным в параметрах с источникомsettings - Каталог семян предоставляет маркетплейс
- Claude Code обновил маркетплейс в течение последних 30 секунд
- Вы установили
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC - Управляемые параметры блокируют маркетплейс, в этом случае Claude Code также отказывает в установке
Когда запускается автоматическое обновление
В интерактивном сеансе, после того как вы отправите своё первое сообщение, Claude Code ждёт случайную задержку до десяти минут. Затем он обновляет каждый маркетплейс с включённым автоматическим обновлением и обновляет плагины, установленные из них, на диске. Работающий сеанс сохраняет версии, которые он загрузил, и вы видитеPlugin updated: <name> · Run /reload-plugins to apply. Загружаете ли вы или нет, новые версии загружаются при следующем запуске.
Какие маркетплейсы и плагины автоматически обновляются
Автоматическое обновление маркетплейса следует первому из этих, что установлено:autoUpdateна его записиextraKnownMarketplacesв файле параметровautoUpdateна его записиknown_marketplaces.json, которую переключатель Enable auto-update под/pluginMarketplaces пишет. Когда файл параметров также объявляет маркетплейс подextraKnownMarketplaces, переключатель пишетautoUpdateв эту запись параметров также- По умолчанию: включено для официальных маркетплейсов Anthropic, таких как
claude-plugins-official, отключено дляknowledge-work-pluginsиfirst-party-plugins, включено для маркетплейсов, добавленных с claude.ai, и отключено для каждого другого маркетплейса
DISABLE_UPDATES=1, DISABLE_AUTOUPDATER=1 или CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1, весь проход отключен и переключатель Enable auto-update скрыт, если вы также не установите FORCE_AUTOUPDATE_PLUGINS=1. Справочник переменных окружения охватывает более широкий эффект каждой переменной.
Автоматическое обновление также пропускает плагин, чья запись маркетплейса объявляет headersHelper. Установки и обновления, которые отказывают команде вместо запроса объясняют, когда такой плагин появляется на вкладке /plugin Errors и как вы его обновляете оттуда.
Когда скопированный плагин обновляется в середине сеанса, команды hooks, мониторы, MCP серверы и LSP серверы продолжают использовать путь предыдущей версии. Запустите /reload-plugins, чтобы переключить hooks, MCP серверы и LSP серверы на новый путь. Мониторы требуют перезагрузки сеанса.
Когда источник команды повторно запускается
Плагины с источникомcommand не ждут прохода автоматического обновления. Напечатанный каталог отражает состояние инструмента в момент запуска команды, поэтому Claude Code запускает команду, которую вы приняли, снова в эти моменты:
- Каждый раз, когда вы устанавливаете или обновляете плагин
- Один раз за сеанс для каждого включённого плагина с источником команды, в фоновом режиме, вскоре после запуска сеанса. Этот запуск не зависит от параметра автоматического обновления маркетплейса или от
DISABLE_AUTOUPDATER - При запуске или на
/reload-plugins, когда установленная версия включённого плагина отсутствует в кэше плагина
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC. Явные установки и обновления всё ещё запускают команду с этой переменной установленной.
Когда хэшированный вывод команды изменился, Claude Code устанавливает результат как новую версию и перезагружает его в работающем интерактивном сеансе, переключая те же компоненты, которые переключает /reload-plugins. Вы видите уведомление о том, что плагин был перезагружен.
Если перезагрузка на месте сделает кэш подсказок сеанса недействительным, Claude Code вместо этого предлагает вам запустить /reload-plugins, который предупреждает о стоимости кэша и применяется при повторном запуске с --force.
Конфликты имён
Когда включённые плагины из разных источников имеют одно имя манифеста, этот порядок решает, какой загружается, от наивысшего приоритета к самому низкому:- Плагин, чей идентификатор появляется в управляемых параметрах
enabledPlugins, какtrueилиfalse. Копия--plugin-dir, чьё имя манифеста совпадает с частью имени идентификатора, не загружается, и вы видите--plugin-dir copy of "<name>" ignored: plugin is locked by managed settings - Включённый плагин
--plugin-dir,--plugin-urlилиCLAUDE_CODE_PLUGIN_DIRS. Он заменяет установленный плагин маркетплейса с тем же именем или плагин каталога навыков:- Установленный плагин маркетплейса: заменён молча.
claude plugin listвсё ещё показывает строку маркетплейса как включённую, потому что эта строка отражает ваши параметры. Только журнал, который Claude Code пишет в~/.claude/debug/, когда вы запускаете с--debug, записываетPlugin "<name>" from --plugin-dir overrides installed version - Плагин каталога навыков: заменён строкой вкладки
/pluginErrors, которая читаетNot loaded — the name "<name>" is already taken by a session-only plugin (--plugin-dir / --plugin-url), which takes precedence
- Установленный плагин маркетплейса: заменён молча.
- Установленный плагин маркетплейса. Плагин каталога навыков с тем же именем получает ту же строку
Not loaded, называя установленный плагин - Плагин каталога навыков. Между двумя из них копия под
~/.claude/skills/загружается и копия проекта.claude/skills/отбрасывается, со строкой, которая говорит, какой путь её затенил - Плагин синхронизированный с claude.ai. Когда включённый плагин из любого другого источника совпадает с его именем, Claude Code ��агружает этот плагин и сообщает о синхронизированной копии как не загруженной. Чтобы использовать копию claude.ai вместо этого, отключите свою собственную копию
--plugin-dir с именем hello-plugin заменяет hello@example-marketplace, когда манифест этого плагина также говорит "name": "hello-plugin".
Хуки, когда два включённых плагина имеют одно имя
Когда вы устанавливаете и включаете два плагина с одинаковым именем манифеста из разных маркетплейсов, оба отображаются как включённые в/plugin, но хуки одного из них не используются. Для каждого имени только один плагин регистрирует хуки из своего hooks/hooks.json, и только один плагин загружает модуль хуков. Когда управляемые настройки вашей организации включают одну из копий, имя закрепляется за этой копией. В противном случае имя закрепляется за копией, которую Claude Code загружает первой.
Чтобы узнать, за какой копией закреплено имя, выполните /plugin в своей сессии и откройте вкладку Errors. Там для копии, хуки которой не используются, есть примечание с названием копии, за которой закреплено имя, и то же примечание отображается в сведениях о неиспользуемой копии. Для хуков из hooks/hooks.json примечание начинается с Its hooks.json hooks do not run, а для модуля хуков — с Its hooks module does not load. Примечание требует Claude Code v2.1.296 или новее.
Чтобы вместо этого запускать хуки неиспользуемой копии, отключите или удалите копию, за которой закреплено имя, затем выполните /reload-plugins в своей сессии. Перезагрузка регистрирует хуки оставшейся копии и убирает примечание. Если копия, за которой закреплено имя, включена вашими управляемыми настройками, вы не можете её отключить, и хуки другой копии остаются выключенными, пока установлены обе.
Держите плагин только для сеанса от загрузки
Чтобы плагин--plugin-dir не затенял ничего, или чтобы отключить его, когда родительский процесс передаёт флаг для вас, установите его идентификатор в false в любом файле параметров. Для плагина, чьё имя манифеста — hello-plugin, запись — "enabledPlugins": {"hello-plugin@inline": false}. Отключённый плагин только для сеанса не затеняет, поэтому вместо этого загружается копия маркетплейса или каталога навыков.
Следующие шаги
- Установка и управление плагинами: сами шаги установки, включения, отключения и обновления
- Устранение неполадок плагинов: сообщения об ошибках по этапам, которые их производят
- Справочник команд плагинов: флаги и команды, названные на этой странице
- Управление плагинами для вашей организации: управляемые параметры, которые принудительно включают или блокируют плагины