SpyBara
Go Premium

plugins/cli-reference.md 2026-09-24 22:57 UTC to 2026-09-25 23:58 UTC

This page contains 841 additions and 0 deletions.

2026
Fri 25 23:58

Справочник команд плагинов

Полный справочник по командам оболочки claude plugin, /plugin и /reload-plugins в сеансе, а также флагам, которые загружают плагин на один сеанс.

Вы запускаете команды плагинов либо как claude plugin из вашей оболочки или скрипта, либо как /plugin и /reload-plugins внутри сеанса Claude Code. Этот справочник содержит флаги каждой команды, значения по умолчанию, выходные данные и коды выхода, а также два флага, которые загружают плагин на один сеанс.

Запустите claude plugin --help на вашей сборке, чтобы подтвердить, какие подкоманды есть в вашей версии.

Команды claude plugin

Запустите claude plugin <subcommand> из вашей оболочки или скрипта, вне сеанса Claude Code. Эти подкоманды устанавливают и управляют плагинами без открытия панели /plugin.

claude plugins — это псевдоним для claude plugin.

Каждая подкоманда имеет эти коды выхода, аргументы плагина и значения области действия:

  • Коды выхода: 0 при успехе и 1 при ошибке. validate добавляет выход 2 для неожиданной ошибки, а eval добавляет коды, указанные в его разделе.
  • Аргументы плагина: аргумент <plugin> — это name плагина или name@marketplace. Когда два маркетплейса предлагают одно и то же имя, используйте квалифицированную форму.
  • Области действия: --scope принимает user, project или local, и называет файл параметров, в который команда записывает. update также принимает managed.

plugin init

Создайте каркас нового плагина в ~/.claude/skills/<name>/. Он загружается в вашем следующем сеансе как <name>@skills-dir без шага установки.

new — это псевдоним для init.

Для рабочего процесса создания, тестирования и редактирования, который начинается с этой команды, см. Создание плагина.

claude plugin init <name> [options]

<name> становится именем каталога под ~/.claude/skills/ и name плагина в его манифесте.

Команда не имеет флага для другого местоположения. Чтобы создать каркас внутри проекта, см. Создание плагина.

Флаг Описание
--description <text> Описание манифеста
--author <name> Имя автора. По умолчанию git config user.name
--author-email <email> Email автора. По умолчанию git config user.email
--with <components...> Также создайте файлы-заготовки для skills, agents, hooks, mcp, lsp, output-style или channel
-f, --force Перезапишите существующий .claude-plugin/ в целевом месте

Создайте плагин с файлами-заготовками skill и hook:

claude plugin init my-helper --with skills hooks

Claude Code проверяет то, что он написал, и выводит Created plugin "my-helper" at ~/.claude/skills/my-helper, за которым следует идентификатор, под которым он загружается, и команда claude plugin disable, которая его отключает.

Claude Code выходит с кодом 1 без записи, когда не может безопасно создать каркас, и сообщение называет причину. Это распространённые причины:

  • Неизвестное значение --with
  • Существующий каркас в целевом месте без --force
  • Управляемый параметр, который блокирует плагины из каталога skills

plugin install

Установите плагин из маркетплейса, который вы добавили. i — это псевдоним для install.

claude plugin install <plugin> [options]

Большинство плагинов устанавливаются без запроса. Для плагина, запись маркетплейса которого запускает команду для его установки или устанавливает headersHelper для его загрузки, Claude Code сначала выводит команду и спрашивает Run this command now? [y/N].

Флаг Описание
-s, --scope <scope> Область действия установки: user, project или local. По умолчанию user
--config <key=value> Установите опцию userConfig, которую объявляет манифест плагина. Повторите флаг для каждой опции. Требует Claude Code v2.1.147 или позже
-y, --yes Примите отображаемую команду установки без запроса Run this command now?. Игнорируется, когда команда запускается внутри сеанса Claude Code, например из инструмента Bash или hook. Требует Claude Code v2.1.229 или позже
--accept-command <sha256> Примите отображаемую команду установки, чей sha256 предыдущий запуск --json сообщил в shownCommand, вместо -y. Не может быть объединён с -y. См. Принять отображаемую команду установки. Требует Claude Code v2.1.271 или позже
--json Выведите результат как один JSON объект на последней строке stdout вместо читаемого сообщения для использования в скриптах. См. Формат результата JSON. Требует Claude Code v2.1.268 или позже

Передайте -y из вашего собственного терминала, чтобы принять отображаемую команду без запроса. Вот что происходит без TTY и когда Claude запускает команду:

  • stdin или stdout не является TTY, и вы не передаёте ни -y, ни --accept-command: установка отклоняется. Выходные данные говорят, что команда была только отображена, и код выхода — 1
  • Claude запускает команду через свой инструмент Bash: -y игнорируется. Запустите команду из вашего собственного терминала вместо этого

Установите плагин для всех, кто клонирует проект:

claude plugin install formatter@my-marketplace --scope project

Claude Code выводит Successfully installed plugin: formatter@my-marketplace (scope: project). Когда ничего нового не устанавливается, выходные данные объясняют почему:

  • Уже установлено в этой области действия: выходные данные — Plugin "formatter@my-marketplace" is already installed (scope: project) и код выхода — 0
  • Вы отклоняете запрос источника команды: выходные данные — Aborted. и код выхода — 1
  • Вы отклоняете запрос headersHelper, или его нельзя подтвердить без TTY: выходные данные — Aborted — the command was not run. и код выхода — 1

Формат результата JSON

Когда вы передаёте --json в plugin install, последняя строка stdout — это один JSON объект. Разбирайте только эту строку, потому что Claude Code выводит любую команду, которую объявляет маркетплейс, перед ней.

Три поля всегда присутствуют:

  • command: подкоманда, которая запустилась, например install
  • outcome: ok или failed
  • message: читаемое описание результата

Другие поля, такие как pluginId, scope и failureCode, появляются только когда они применяются.

Ошибка использования, такая как неверный --scope, не выводит строку результата и выходит с кодом 1 с причиной на stderr.

Принять отображаемую команду установки

Когда запуск --json отображает команду, объявленную маркетплейсом, и не запускает её, результат failed также содержит объект shownCommand. Его поля включают команду в том виде, в котором она отображается, плагин, к которому она принадлежит, и sha256 команды.

Чтобы принять именно эту команду, повторно запустите с этим sha256 как --accept-command из вашего собственного терминала, потому что флаг не имеет эффекта внутри сеанса Claude Code. Требует Claude Code v2.1.271 или позже.

sha256 считается принятием именно этой команды, плагина и каталога маркетплейса. Если любой из них изменился с момента отображения команды, Claude Code не принимает sha256 и показывает команду снова. Изменение, которое обновление маркетплейса собственного запуска получает, также считается таким изменением.

Если shownCommand.acceptCommandMatched — это false, sha256, который вы передали, не совпадает с командой, которая сейчас отображается. Проверьте эту команду перед повторным запуском с её sha256.

plugin uninstall

Удалите установленный плагин из одной области действия. remove и rm — это псевдонимы для uninstall.

claude plugin uninstall <plugin> [options]
Флаг Описание
-s, --scope <scope> Удалить из области действия: user, project или local. По умолчанию user
--keep-data Сохраните каталог постоянных данных плагина, ~/.claude/plugins/data/<id>/
--prune Также удалите автоустановленные зависимости, которые больше не нужны ни одному оставшемуся плагину
-y, --yes Пропустите запрос подтверждения --prune. Требуется с --prune, когда stdin или stdout не является TTY
--json Выведите результат как один JSON объект на последней строке stdout в том же формате, что и plugin install --json. Не может быть объединён с --prune. Требует Claude Code v2.1.268 или позже

Удалите плагин из области действия проекта:

claude plugin uninstall formatter@my-marketplace --scope project

Claude Code выводит Successfully uninstalled plugin: formatter (scope: project). Когда плагин не установлен в этой области действия, команда выводит строку, которая начинается с Failed to uninstall plugin "formatter@my-marketplace": и выходит с кодом 1.

plugin enable

Включите отключённый плагин. Для плагина, синхронизированного с claude.ai, передайте <name>@synced как плагин.

claude plugin enable <plugin> [options]
Флаг Описание
-s, --scope <scope> Область действия для включения: user, project или local. Автоопределяется при пропуске
--json Выведите результат как один JSON объект на последней строке stdout в том же формате, что и plugin install --json. Требует Claude Code v2.1.268 или позже

Без --scope команда проверяет ваши файлы параметров в порядке local, project, user и использует первую область действия, которая упоминает плагин.

Если вы передаёте --scope, где плагин не объявлен, команда либо записывает переопределение, либо не выполняется:

  • Область действия, которая имеет приоритет над объявляющей: Claude Code записывает переопределение в переданную область действия. Например, claude plugin disable formatter --scope local отключает плагин, включённый на уровне проекта, только для вас
  • Любая другая область действия: команда не выполняется с Plugin "formatter" is installed at project scope, not user. Use --scope project or omit --scope to auto-detect.

Если плагин уже включён в разрешённой области действия, команда выводит Plugin "formatter" is already enabled и выходит с кодом 1. С --json результат имеет "failureCode": "already_in_goal_state" и "alreadyInGoalState": true, поэтому скрипт может рассматривать этот случай как успех.

Когда плагин объявляет зависимости, Claude Code также включает их. Команда не выполняется в этих случаях:

  • Зависимость не установлена: включение не выполняется и выводит команду claude plugin install для каждой отсутствующей зависимости
  • Зависимость заблокирована политикой плагинов вашей организации: включение не выполняется и называет заблокированную зависимость
  • Зависимость установлена на false в области действия с более высоким приоритетом, чем целевая область действия: включение не выполняется. Включите зависимость в этой области действия или передайте --scope для записи там

Повторно включите плагин везде, где он объявлен:

claude plugin enable formatter

Claude Code выводит Successfully enabled plugin: formatter (scope: project), называя обнаруженную область действия.

plugin disable

Отключите плагин без его удаления. Для плагина, синхронизированного с claude.ai, передайте <name>@synced как плагин.

claude plugin disable [plugin] [options]
Флаг Описание
-a, --all Отключите каждый включённый плагин. Не может быть объединён с именем плагина или --scope
-s, --scope <scope> Область действия для отключения: user, project или local. Автоопределяется при пропуске
--json Выведите результат как один JSON объект на последней строке stdout в том же формате, что и plugin install --json. Требует Claude Code v2.1.268 или позже

Без --scope область действия автоопределяется в том же порядке local, project, user, что и plugin enable.

Если вы не передаёте ни имя плагина, ни --all, Claude Code выводит Please specify a plugin name or use --all to disable all plugins и выходит с кодом 1. Отключение плагина, который уже отключён, выводит Plugin "formatter" is already disabled и выходит с кодом 1, как plugin enable делает для уже включённого плагина.

Команда не выполняется для плагина, который всё ещё требуется:

  • Другой включённый плагин зависит от него: команда не выполняется и называет зависимые плагины для отключения в первую очередь
  • Ваша организация требует его как синхронизированный плагин: команда не выполняется и ничего не сохраняет

Отключите один плагин:

claude plugin disable formatter

Claude Code выводит Successfully disabled plugin: formatter (scope: project).

plugin update

Обновите плагин до последней версии, которую предлагает его маркетплейс. Новая версия загружается в вашем следующем сеансе или после запуска /reload-plugins в работающем.

claude plugin update <plugin> [options]
Флаг Описание
-s, --scope <scope> Область действия для обновления: user, project, local или managed. По умолчанию область действия, в которой установлен плагин
-y, --yes Примите изменённую команду установки из плагина command-source без запроса. Требуется, когда stdin или stdout не является TTY, если вы не передаёте --accept-command. Требует Claude Code v2.1.229 или позже
--accept-command <sha256> Примите команду, объявленную маркетплейсом, чей sha256 предыдущий запуск --json сообщил в shownCommand, вместо -y. Не может быть объединён с -y. Требует Claude Code v2.1.271 или позже
--json Выведите результат как один JSON объект на последней строке stdout в том же формате, что и plugin install --json. Требует Claude Code v2.1.268 или позже

managed — это единственная область действия, которую вы можете обновить, но не установить. Для плагинов, установленных администратором, см. Управление плагинами для вашей организации.

Обновите плагин:

claude plugin update formatter@my-marketplace

Claude Code выводит Checking for updates for plugin "formatter@my-marketplace"…, затем результат. Когда ничего не новее, он выводит formatter is already at the latest version (1.0.0). и выходит с кодом 0.

Вы можете передать простое имя плагина, которое команда сопоставляет с установленными плагинами. Когда установленные плагины из разных маркетплейсов имеют одно и то же имя, команда отклоняет обновление и выводит квалифицированные команды plugin-name@marketplace-name для запуска вместо этого. Обновление по простому имени требует Claude Code v2.1.246 или позже.

plugin list

Выведите список установленных плагинов с их версией, областью действия и статусом.

claude plugin list [options]
Флаг Описание
--json Выведите список как JSON
--available Также выведите плагины, которые предлагают ваши маркетплейсы, но которые вы не установили. Не имеет эффекта без --json

Claude Code группирует читаемый выход по тому, как загружается каждый плагин:

  • Installed plugins:: плагины, которые вы установили из маркетплейса
  • Session-only plugins (--plugin-dir / --plugin-url):: плагины, загруженные этими флагами в той же команде, как в claude --plugin-dir ./my-plugin plugin list
  • Skills-directory plugins (.claude/skills/*):: плагины, которые Claude Code нашёл в каталоге skills
  • Synced from claude.ai: плагины, синхронизированные с вашей учётной записью claude.ai

Когда в любой группе ничего нет, Claude Code выводит No plugins installed. Use `claude plugin install` to install a plugin.

Выход JSON

С --json Claude Code выводит массив с одним объектом на установку. Каждый объект содержит поля ниже. id, version, scope, enabled и installPath всегда присутствуют, а остальные появляются только когда они применяются.

Поле Тип Описание
id string name@marketplace для установок, name@inline для плагинов только для сеанса, name@skills-dir для плагинов из каталога skills, name@synced для плагинов, синхронизированных с claude.ai
version string Для установки маркетплейса, версия, которую вычислил Claude Code при установке. Для плагина только для сеанса, из каталога skills или синхронизированного, version из манифеста или unknown, когда он не объявляет
scope string user, project, local или managed для установок; user или project для плагинов из каталога skills; session для плагинов только для сеанса; synced для плагинов, синхронизированных с claude.ai
enabled boolean Включён ли плагин в ваших объединённых параметрах
installPath string Каталог, из которого загружается плагин
installedAt string ISO временная метка установки. Только установки маркетплейса
lastUpdated string ISO временная метка последнего обновления. Только установки маркетплейса
projectPath string Проект, к которому принадлежит установка. Только области действия project и local
mcpServers object Определения MCP сервера плагина, когда установленный на маркетплейсе плагин имеет какие-либо
errors array of strings Ошибки загрузки, когда плагин не загрузился
notes array of strings Предупреждения авторства для плагина, который загрузился и работает
errorDetails array of objects Один объект на запись errors, дающий его диагностический type и имена, на которые он ссылается, такие как плагин, маркетплейс, сервер или файл. Требует Claude Code v2.1.268 или позже
noteDetails array of objects Те же объекты деталей для каждой записи notes. Требует Claude Code v2.1.268 или позже

С --json --available Claude Code выводит один объект вместо массива. Его поле installed содержит массив объектов установленных плагинов, а его поле available содержит один объект на неустановленный плагин маркетплейса с полями ниже.

Поле Тип Описание
pluginId string name@marketplace
name string Имя плагина в маркетплейсе
marketplaceName string Маркетплейс, который его предлагает
source string or object Источник записи маркетплейса: строка для относительного пути, объект в противном случае
description string Описание записи, когда оно есть
version string Версия записи, когда она объявляет
installCount number Количество установок, когда Claude Code имеет его для плагина

plugin details

Покажите инвентарь компонентов плагина и его прогнозируемую стоимость в токенах.

Плагин должен быть загружен: установлен, найден в каталоге skills или передан с --plugin-dir или --plugin-url в той же команде. <name> — это name плагина или name@marketplace.

claude plugin details <name>

Команда не принимает флаги кроме --help.

Покажите, что вносит установленный плагин:

claude plugin details formatter

Claude Code выводит имя плагина, версию, описание и источник, затем эти разделы:

  • Component inventory: skills, agents, hooks, MCP серверы и LSP серверы плагина
  • Projected token cost: всегда включённые токены, которые плагин добавляет в каждый сеанс
  • Per-component (rounded): оценки всегда включённых и при вызове для каждого skill, agent и команды. Пропускается, когда плагин не имеет ни одного

Для того, что означают две цифры стоимости, см. Измерение стоимости и использования плагина.

Для плагина, который не загружен, Claude Code выводит Plugin "formatter" not found. Run `claude plugin list` to see installed plugins, or pass --plugin-dir <path> to load one from disk. и выходит с кодом 1.

plugin prune

Удалите автоустановленные зависимости, которые больше не нужны ни одному установленному плагину. Команда никогда не удаляет плагин, который вы установили сами. autoremove — это псевдоним для prune.

claude plugin prune [options]
Флаг Описание
-s, --scope <scope> Очистить в области действия: user, project или local. По умолчанию user
--dry-run Выведите список того, что было бы удалено, без удаления
-y, --yes Пропустите запрос подтверждения. Требуется, когда stdin или stdout не является TTY

Предпросмотрите то, что удалила бы очистка:

claude plugin prune --dry-run

Claude Code выводит список сиротских зависимостей и заканчивается с (dry run — nothing removed). Когда нечего удалять, он выводит строку, которая начинается с Nothing to prune.

Без --dry-run команда удаляет сиротские зависимости только после того, как вы подтвердите в запросе или передадите -y.

Код выхода — 0 независимо от вашего ответа в запросе.

То, что делает prune, зависит от того, подключен ли терминал и передаёте ли вы -y:

Терминал и флаги Что происходит
Интерактивный терминал, без -y Выводит список сиротских зависимостей и спрашивает Remove? [y/N]
Любой терминал, -y Удаляет их и выводит Removed N auto-installed plugins: <names>
Non-TTY stdin или stdout, без -y Выводит список и Not a TTY — run `claude plugin prune -y` to remove., удаляя ничего

plugin eval

Запустите eval случаи плагина и сообщите оценённые результаты. Требует Claude Code v2.1.269 или позже.

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

См. Тестирование плагинов с помощью evals для формата случая, оценщиков, результатов и использования CI.

claude plugin eval [target] [options]

Необязательный target по умолчанию — текущий каталог и принимает любую из этих форм:

  • Каталог плагина
  • Один файл prompt.md или case.yaml
  • Установленный плагин как name или name@marketplace
  • name@skills-dir

Поместите target перед --tag, --allow-tools и --json. Каждая из этих опций принимает слова, которые следуют за ней, как её значение, поэтому target, написанный после одной из них, читается как тег, имя инструмента или путь выходного JSON вместо target.

Эта таблица выводит опции, которые используют большинство запусков. Запустите claude plugin eval --help для полного набора, включая --case, --tag, --output-dir, --report, --allow-real-servers, --keep-temp и --verbose.

Опция Описание По умолчанию
--runs <n> Запусков на случай в каждом arm runs каждого случая, иначе 3
-j, --concurrency <n> Сеансы агента для запуска одновременно, 1 до 8. Они делят ваш лимит скорости 1
--model <model> Модель для тестируемого агента model каждого случая, иначе ANTHROPIC_MODEL, если установлено, иначе по умолчанию Claude Code
--judge-model <model> Модель для оценщиков llm и baseline Маленькая быстрая модель
--ablation <mode> none или with-without. См. Сравнение с базовым уровнем без плагина with-without, когда плагин разрешается, иначе none
--threshold <0..1> Выход 1, если какой-либо случай оценивается ниже этого 1.0
--max-cost-usd <usd> Остановитесь перед следующим запуском, когда расходы достигнут этого, выход 2 и сообщите частичные результаты Без ограничений
--allow-tools <tools...> Предоставьте инструменты помимо набора только для чтения, такие как Bash, Write, Edit или "mcp__plugin_<plugin>_<server>__*". См. Предоставление инструментов
--scaffold Запустите scaffold_script каждого случая Выключено
--trust-plugin Пропустите первый запрос доверия, для CI. См. Что может получить доступ запуск Выключено
--mocks <mode> record или off. См. Mock MCP серверы record
--eval-dir <dir> Каталог ниже плагина, который содержит случаи experimental.evals манифеста, иначе evals
--json [path] Выведите документ результата на stdout или запишите его в путь .json
--no-publish Держите HTML отчёт локально

Код выхода сообщает, как закончился запуск. Чтобы действовать на нём в конвейере, см. Запуск evals в CI.

Код выхода Значение
0 Каждый случай соответствует порогу
1 Неудачный случай, ошибка загрузки или недоверенный каталог плагина
2 Частичный запуск
130 Прервано
143 Завершено

plugin eval init

Создайте набор eval для плагина в текущем каталоге. Требует Claude Code v2.1.269 или позже. См. Создание вашего первого набора eval.

claude plugin eval init [name] [options]

В терминале команда открывает интерактивный сеанс Claude Code для интервью авторства. В интервью Claude делает следующее:

  1. Читает плагин
  2. Спрашивает вас, что он должен делать хорошо
  3. Предлагает случаи и оценщиков
  4. Записывает файлы случаев
  5. Запускает случаи и проверяет оценки с вами, чтобы убедиться, что оценщики оценивают так, как вы бы оценили

С --bare или без терминала команда записывает пустой шаблон одного случая вместо этого. Когда Claude запускает команду из внутри сеанса Claude Code, команда выводит инструкции интервью для этого сеанса, чтобы следовать, а не записывать шаблон.

Необязательный name — это имя случая. Это требуется с --bare или без терминала, потому что команда записывает пустой шаблон для этого случая. Интервью не нуждается в одном.

Команда принимает эти опции:

Опция Описание По умолчанию
--bare Запишите пустой prompt.md и graders/criteria.md для <name> вместо запуска интервью
-i, --interactive Требуйте интервью. Не выполняется без терминала вместо записи шаблона
--eval-dir <dir> Каталог ниже текущего каталога для записи случаев в experimental.evals манифеста, иначе evals

plugin tag

Создайте аннотированный git тег с именем <name>--v<version> для выпуска плагина. Перед тегированием команда проверяет, что plugin.json плагина и любая запись маркетплейса, которая его выводит, согласны по версии.

Для того, когда тегировать выпуск, см. Публикация плагина.

claude plugin tag [path] [options]

[path] — это каталог плагина, по умолчанию текущий каталог. Команда находит запись маркетплейса, поднимаясь от этого каталога к .claude-plugin/marketplace.json, который выводит плагин.

Флаг Описание
--push Отправьте тег в --remote после создания
--dry-run Выведите то, что было бы тегировано, без создания тега
-f, --force Пропустите проверки грязного рабочего дерева и существующего тега
-m, --message <msg> Сообщение аннотации тега. %s обозначает версию. По умолчанию <name> <version>
--remote <name> Удалённый для отправки с --push. По умолчанию origin

Предпросмотрите тег для плагина в проверке маркетплейса:

claude plugin tag plugins/formatter --dry-run

Claude Code выводит план:

  • Имя плагина
  • Версию и из какого файла она взята
  • Соответствующую запись маркетплейса, когда она есть
  • Имя тега
  • Команды git tag и git push, которые он запустил бы

Без --dry-run Claude Code выводит Created tag formatter--v1.0.0 и либо Pushed to origin, либо команду push для запуска самостоятельно. Если push не выполняется, тег всё ещё создаётся локально и команда выходит с ошибкой.

Команда выходит с кодом 1 и выводит причину, когда не может безопасно тегировать. Распространённые причины:

  • Нет version в plugin.json или записи маркетплейса
  • Тег уже существует
  • Рабочее дерево грязное

plugin validate

Проверьте манифест плагина, манифест маркетплейса или skills, agents и команды в каталоге, и выходите с кодом, на который может действовать задача CI. Для рабочего процесса создания, тестирования и редактирования см. Создание плагина. Для того, что проверяет валидатор в каждом манифесте, см. справочник манифеста плагина и справочник маркетплейса.

claude plugin validate <path> [options]
Флаг Описание
--strict Рассматривайте предупреждения как ошибки, поэтому нераспознанные поля и отсутствующие метаданные, которые среда выполнения допускает, не выполняют запуск. Требует Claude Code v2.1.145 или позже
--json Выведите отчёт о проверке как один JSON объект с теми же кодами выхода. Требует Claude Code v2.1.259 или позже

Проверьте плагин перед фиксацией:

claude plugin validate ./my-plugin --strict

Проверка каталога

<path> — это файл манифеста или каталог. Учитывая каталог, Claude Code выбирает то, что проверять, по тому, что он там находит:

  • .claude-plugin/marketplace.json, когда он существует
  • Иначе .claude-plugin/plugin.json
  • Иначе файлы компонентов, выбранные по имени каталога. Проверка файлов компонентов без манифеста требует Claude Code v2.1.233 или позже:
    • Каталог с именем skills, agents или commands: файлы внутри него
    • Каталог с именем .claude: каталоги skills, agents и commands внутри него
    • Любой другой каталог: эти три каталога под его .claude

Claude Code не следует символическим ссылкам внутри названного вами каталога. То, что он делает, зависит от того, где находится ссылка:

  • Связанный каталог skills, agents или commands под корнем плагина или .claude: Claude Code предупреждает, что ничего в нём не было прочитано.
  • Связанная запись внутри каталога skills, agents или commands: Claude Code пропускает её и предупреждает, по каталогу, сколько записей оно пропустило, которые сеанс загрузил бы.
  • Каталог skills, agents или commands, который вы называете, сам является символической ссылкой, или его родительский каталог .claude является: Claude Code сообщает об ошибке и ничего в нём не проверяет. Назовите реальный каталог вместо этого.

Несколько файлов не читаются запуском проверки:

  • SKILL.md в корне плагина: когда вы запускаете claude plugin validate против каталога плагина, Claude Code не проверяет SKILL.md в корне плагина
  • CLAUDE.md в корне плагина: в запуске плагина Claude Code также предупреждает о CLAUDE.md в корне плагина
  • Файлы плагина в запуске маркетплейса: из каталога маркетплейса Claude Code не открывает файлы skill, agent, command или hook плагинов. Чтобы найти ошибки в этих файлах, проверьте каждый каталог плагина

Выход и коды выхода

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

Код выхода Строка вердикта Значение
0 Validation passed или Validation passed with warnings Манифест загружается. С --strict, нет предупреждений либо
1 Validation failed или Validation failed (--strict treats warnings as errors) Ошибка или предупреждение под --strict
2 Unexpected error during validation: <reason> Сам валидатор не выполнился, например на нечитаемом пути

С --json Claude Code записывает отчёт на stdout как один JSON объект с этими полями верхнего уровня:

  • success: тот же вердикт, который даёт код выхода
  • strict: рассматривал ли запуск предупреждения как ошибки
  • target: разрешённый путь, который Claude Code проверил
  • manifest: собственный результат манифеста или null для запуска без манифеста
  • contents: результаты для каждого файла, каждый называет свой file и содержит массивы errors, warnings и notes

При выходе 2 команда ничего не записывает на stdout. Сообщение об ошибке идёт на stderr.

Команды claude plugin marketplace

Запустите claude plugin marketplace <subcommand> из вашей оболочки, чтобы добавить, вывести, обновить и удалить маркетплейсы, из которых вы устанавливаете плагины.

  • Коды выхода: эти подкоманды следуют соглашению кода выхода команд плагина
  • Области действия: их флаг --scope не имеет короткой формы -s

Для того, что такое маркетплейс и как Claude Code его кэширует, см. Справочник загрузки плагинов.

plugin marketplace add

Добавьте маркетплейс из репозитория GitHub, URL git, размещённого marketplace.json или локального пути, и объявите его в файле параметров.

После добавления Claude Code устанавливает любые зависимости, которые отсутствовали у ваших установленных плагинов.

claude plugin marketplace add <source> [options]
Флаг Описание
--scope <scope> Файл параметров для объявления маркетплейса в: user, project или local. По умолчанию user
--sparse <paths...> Ограничьте проверку git этими каталогами для монорепозиториев. Только источники github и git
--claudeai Читайте аргумент как имя маркетплейса, размещённого на claude.ai. Требует Claude Code v2.1.273 или позже

<source> принимает любую из форм в таблице ниже, и его форма решает тип источника и как Claude Code получает маркетплейс. Для результирующего объекта источника см. справочник маркетплейса.

Вы вводите Тип источника Как Claude Code его получает
owner/repo, owner/repo#ref или owner/repo@ref github Клонирует репозиторий GitHub, закреплённый на ref, когда дан. Владелец и репо должны следовать правилам именования GitHub
user@host:path[.git][#ref] git Клонирует по SSH
https://example.com/repo.git[#ref] или URL, содержащий /_git/ git Клонирует по HTTPS, включая URL Azure DevOps
https://github.com/owner/repo или https://gitlab.com/namespace/project git Клонирует по HTTPS после добавления .git
Любой другой URL http:// или https://, включая самостоятельно размещённый git хост без .git url Получает URL как marketplace.json. Чтобы клонировать репозиторий там вместо этого, добавьте .git
./path, ../path, /path или ~/path в каталог directory Читает каталог на месте. На Windows, .\, ..\ и C:\ формы также работают
Те же формы пути в файл .json file Читает файл на месте

Для хоста, чьи URL клонирования не содержат суффикс .git, такого как AWS CodeCommit, добавьте маркетплейс как запись git в extraKnownMarketplaces вместо этого. Claude Code клонирует запись git независимо от того, заканчивается ли её URL на .git.

Claude Code также клонирует URL gitlab.com с вложенными подгруппами, такой как https://gitlab.com/group/subgroup/project.

Добавьте маркетплейс и поделитесь им с проектом:

claude plugin marketplace add your-org/your-marketplace --scope project

Claude Code выводит Successfully added marketplace: your-marketplace (declared in project settings), используя name из собственного манифеста маркетплейса. Повторное добавление или неверный источник выводит один из этих результатов вместо этого:

  • Маркетплейс уже на диске: выходные данные — Marketplace 'your-marketplace' already on disk — declared in project settings и код выхода — 0
  • Нераспознанный источник: выходные данные — Invalid marketplace source format. Try: owner/repo, https://..., or ./path и код выхода — 1
  • Простой хост, такой как gitlab.example.com/team/plugins: добавление не выполняется как неверный ярлык owner/repo, и сообщение говорит вам добавить https:// или использовать локальный путь

Добавьте маркетплейс, размещённый на claude.ai по имени, выведённому в разделе From claude.ai: из claude plugin marketplace list:

claude plugin marketplace add --claudeai claudeai-organization-library

С --claudeai команда отклоняет --scope и --sparse. Маркетплейс размещён для вашей учётной записи, не объявлен в файле параметров, поэтому вы не можете поделиться им через .claude/settings.json проекта.

plugin marketplace list

Выведите список каждого маркетплейса, который вы добавили, с его источником.

claude plugin marketplace list [options]
Флаг Описание
--json Выведите список как JSON

Claude Code выводит Configured marketplaces: и одну строку Source: на маркетплейс, или No marketplaces configured.

С --json Claude Code выводит массив с одним объектом на маркетплейс, содержащий поля ниже. Каждое поле — это строка.

Поле Описание
name Имя маркетплейса
source github, git, url, directory, file или claudeai
repo owner/repo. Только источники github
url URL клонирования или получения. Только источники git и url
path Локальный путь. Только источники directory и file
ref Закреплённая ветвь или тег. Источники github и git, только когда закреплено
installLocation Где Claude Code кэшировал маркетплейс

Добавленный маркетплейс claude.ai не имеет локального клона, поэтому его запись содержит его идентификаторы claude.ai, marketplaceId и organizationUuid, вместо installLocation. Он также содержит scope, когда один записан, и status.

Если ваши сеансы терминала синхронизируют плагины с вашей учётной записью claude.ai, текстовый список заканчивается разделом From claude.ai:. Этот раздел называет маркетплейсы, которые claude.ai выводит для вашей учётной записи, которые вы не добавили, как основанные на git, так и размещённые. Это требует Claude Code v2.1.273 или позже.

Чтобы добавить маркетплейс из этого раздела, см. Добавление маркетплейса с claude.ai.

Выход --json охватывает только настроенные маркетплейсы и оставляет раздел.

plugin marketplace remove

Удалите объявление маркетплейса из ваших параметров. rm — это псевдоним для remove.

claude plugin marketplace remove <name> [options]

<name> — это имя маркетплейса, которое показывает plugin marketplace list, не источник, который вы передали в add.

Флаг Описание
--scope <scope> Удалить объявление из одной области действия параметров: user, project или local. Без него Claude Code удаляет объявление из каждой области действия

Удалите маркетплейс из каждой области действия:

claude plugin marketplace remove your-marketplace

Claude Code выводит Successfully removed marketplace: your-marketplace, добавляя (from project settings), когда вы его ограничили. Если вы ограничиваете файл параметров, который не объявляет маркетплейс, команда не выполняется с Marketplace 'your-marketplace' is not declared in project settings. Omit --scope to remove it from all scopes.

plugin marketplace update

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

claude plugin marketplace update [name]

Команда не принимает флаги кроме --help.

Обновите один маркетплейс:

claude plugin marketplace update your-marketplace

Claude Code выводит Successfully updated marketplace: your-marketplace. Когда вы пропускаете имя, он выводит счёт, такой как Successfully updated 2 marketplaces. Без добавленных маркетплейсов он выводит No marketplaces configured и выходит с кодом 0.

/plugin в сеансе

Внутри интерактивного сеанса /plugin открывает панель плагина. Каждая подкоманда открывает панель на вкладке, запускает действие там или выводит результат встроенно. /plugins и /marketplace — это псевдонимы для /plugin.

Вы можете запускать эти команды только в интерактивном сеансе терминала. В неинтерактивном запуске, таком как claude -p, Claude Code отвечает, что /plugin недоступен в этой среде.

Для того, какие поверхности имеют /plugin, как установить без него и что показывает каждая вкладка панели, см. Установка и управление плагинами.

<plugin> — это name плагина или name@marketplace.

Таблица ниже выводит каждую форму сеанса. Подкоманды оболочки init, update, details, prune, eval и eval init не имеют формы сеанса.

Команда Псевдонимы Что она делает
/plugin Открывает панель на вкладке Discover. Любое нераспознанное первое слово после /plugin делает то же самое
/plugin help /plugin --help, /plugin -h Показывает список использования подкоманд /plugin
/plugin list [--enabled|--disabled] ls Выводит ваши установленные на маркетплейсе плагины встроенно, с версией, областью действия и статусом. Флаг фильтра показывает только это состояние. Плагин, чьё состояние включения ещё не применено, отмечен — run /reload-plugins to apply. Требует Claude Code v2.1.163 или позже
/plugin install i Открывает вкладку Discover
/plugin install <plugin> i Открывает детали плагина на вкладке Discover. С name@marketplace открывает их в списке этого маркетплейса
/plugin install <plugin> --marketplace <source> i Добавляет маркетплейс в <source>, когда вы его ещё не добавили, спрашивая вас подтвердить сначала, затем открывает детали плагина. См. Добавление маркетплейса и установка в одной команде. Требует Claude Code v2.1.275 или позже
/plugin manage Открывает вкладку Installed
/plugin stats Открывает вкладку Stats в сеансах, где /skill-doctor доступен. Везде ещё открывает панель на вкладке Discover
/plugin enable <plugin> Открывает вкладку Installed на плагине и включает его
/plugin disable <plugin> Открывает вкладку Installed на плагине и отключает его
/plugin uninstall <plugin> Открывает вкладку Installed на плагине и удаляет его
/plugin configure <plugin> config Открывает диалог userConfig плагина или сообщает, что плагин не объявляет ни одного. Требует Claude Code v2.1.147 или позже
/plugin validate <path> Выводит тот же отчёт, что и claude plugin validate, встроенно
/plugin tag [path] [--push] [--dry-run] [--force] Создаёт тег выпуска как claude plugin tag делает. Принимает --push, --dry-run и --force или -f; с любым другим флагом или дополнительным аргументом Claude Code выводит использование вместо этого
/plugin marketplace market Ничего видимого не делает. Передайте add, list, update или remove
/plugin marketplace add [source] market add С источником добавляет его и сообщает результат. Без одного открывает ввод Add marketplace
/plugin marketplace list market list Выводит имена ваших маркетплейсов встроенно
/plugin marketplace update [name] market update Открывает вкладку Marketplaces. С именем обновляет этот маркетплейс там
/plugin marketplace remove [name] market remove, market rm, marketplace rm Открывает вкладку Marketplaces. С именем удаляет этот маркетплейс там

Если вы называете плагин, который не установлен в текущем проекте в /plugin enable, disable, uninstall или configure, Claude Code выводит Plugin "<plugin>" is not installed in this project вместо действия.

/reload-plugins

Примените ожидающие изменения плагина к работающему сеансу без перезагрузки. Ожидающие изменения — это плагины, которые вы установили, обновили, включили, отключили или отредактировали на диске с момента начала сеанса.

Когда вы закрываете панель /plugin с ожидающими изменениями, которые вы сделали в ней, Claude Code запускает /reload-plugins для вас. Запустите его самостоятельно после изменений плагина, которые происходят вне панели, такие как команда claude plugin, которую вы запустили в другом терминале.

/reload-plugins [--force]
Флаг Описание
--force Примените перезагрузку, даже если она инвалидирует кэш подсказок. force без дефисов также работает

Сводка перезагрузки

Claude Code перезагружает каждый активный плагин и выводит одну строку сводки, Reloaded: N plugins · N skills · N agents · N hooks · N plugin MCP servers · N plugin LSP servers, пропуская счёт сервера MCP плагина в сеансе без интерактивного терминала. Когда какой-либо плагин не выполнился, сводка добавляет N errors during load. Run /plugin for details.

Счёт skills охватывает каждый skill, который предоставляет плагин, как его записи commands/, так и skills SKILL.md. Счёт agents — это количество агентов, загруженных в сеансе, включая те, которые не поступают из плагинов.

Когда перезагруженный плагин зависимости отсутствуют, Claude Code устанавливает их, перезагружает снова и добавляет (+ N dependencies: <names>) resolved к сводке.

Перезагрузки, которые изменяют инструменты MCP

Когда перезагрузка добавляет или удаляет сервер MCP плагина или инструмент LSP, и это изменение инвалидирует кэш подсказок, Claude Code не применяет перезагрузку. Он выводит строку, такую как This reload changes MCP tools (<server>) — your next message will re-read the whole conversation instead of using the cache. Run /reload-plugins --force to apply. Передайте --force, чтобы применить её в любом случае.

Сеансы без интерактивного терминала

/reload-plugins также запускается в сеансах без интерактивного терминала, такие как приложение для рабочего стола, Agent SDK и неинтерактивный режим с -p. Требует Claude Code v2.1.260 или позже.

В этих сеансах команда запускается только когда вы вводите её в сеанс самостоятельно, такие как в подсказке -p или поле подсказки приложения для рабочего стола. Когда она приходит другим способом, такой как через Remote Control или сообщение, переданное из Slack, команда отвечает /reload-plugins isn't available over a remote connection in this session. и ничего не перезагружает.

Перезагрузка в этих сеансах не подключает или отключает серверы MCP плагина. Эти изменения вступают в силу в вашем следующем сеансе.

Флаги, которые загружают плагин на один сеанс

Два флага claude загружают плагин на один сеанс только, без установки. Оба повторяемы.

Авторы плагинов используют их для тестирования плагина перед публикацией. Для рабочего процесса загрузки-редактирования-перезагрузки см. Разработка без маркетплейса.

Флаг Описание Пример
--plugin-dir <path> Загрузите плагин из каталога или архива .zip одного. Папка плагинов загружает каждую дочернюю папку, которая содержит .claude-plugin/plugin.json. Каждый флаг принимает один путь claude --plugin-dir ./my-plugin --plugin-dir ./other.zip
--plugin-url <url> Получите архив плагина .zip из URL. Повторите флаг или передайте несколько URL, разделённых пробелом, в одном цитируемом значении claude --plugin-url "https://example.com/a.zip https://example.com/b.zip"

Плагин, который загружает любой флаг, — это плагин только для сеанса. claude plugin list показывает его как <name>@inline с областью действия session, но только когда тот же флаг предшествует подкоманде. Например, запустите claude --plugin-dir ./my-plugin plugin list.

Когда плагин только для сеанса имеет одно и то же имя с установленным плагином, Claude Code загружает копию только для сеанса для этого сеанса и пропускает установленную. Установленная копия загружается вместо этого, если вы отключили копию только для сеанса с claude plugin disable <name>@inline, или если управляемые параметры блокируют это имя плагина. Для приоритета см. Справочник загрузки плагинов.

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

Из Agent SDK опция plugins — это эквивалент --plugin-dir.

Следующие шаги