Плагины
За курс у вас накопилось: навык проверки, навык-ревьюер, три хука, набор правил разрешений. Всё это лежит в .claude/ одного проекта. Скопировать в двадцать других — можно, но через месяц двадцать копий разойдутся. Плагин решает это: тот же набор упаковывается один раз, кладётся в git-репозиторий, а проекты подключают его одной строкой в настройках и получают обновления. В этом уроке разберём, как плагин устроен, как его собрать и проверить и как раздать команде.
Когда плагин, а когда просто .claude/
Документация даёт простое разделение. Папка .claude/ в проекте — для личных сценариев, проектных особенностей и экспериментов; навык вызывается как /verify. Плагин — для того, что нужно нескольким людям или проектам, с версиями и обновлениями; навык вызывается как /amiga:verify. Совет оттуда же: начинайте в .claude/, быстро итерируйте, и переводите в плагин, когда стало понятно, что это нужно не только вам.
Плагин может содержать:
| Папка или файл | Что это |
|---|---|
.claude-plugin/plugin.json |
Манифест: имя, описание, версия |
skills/<имя>/SKILL.md |
Навыки |
agents/*.md |
Субагенты |
hooks/hooks.json |
Хуки в том же формате, что в settings.json |
.mcp.json |
MCP-серверы |
.lsp.json |
Языковые серверы для навигации по коду |
commands/*.md |
Навыки в виде плоских файлов; устаревший вариант, для новых плагинов используйте skills/ |
Частая ошибка: положить skills/ или hooks/ внутрь .claude-plugin/. Там лежит только манифест. Всё остальное — в корне плагина.
Собираем плагин командных стандартов
Структура плагина amiga-standards:
amiga-standards/
├── .claude-plugin/
│ └── plugin.json
├── skills/
│ ├── verify/
│ │ └── SKILL.md
│ └── review-diff/
│ └── SKILL.md
├── agents/
│ └── security-reviewer.md
├── hooks/
│ └── hooks.json
└── README.mdМанифест .claude-plugin/plugin.json:
{
"name": "amiga-standards",
"description": "Проверка, ревью и защитные хуки для проектов Amiga",
"version": "1.0.0",
"author": {
"name": "Amiga"
}
}Поле name становится пространством имён: навык verify будет вызываться как /amiga-standards:verify. Поле version определяет, когда пользователи получат обновление: пока вы не подняли версию, у них остаётся старая.
Навыки переносятся из .claude/skills/ без изменений — verify и review-diff из урока «Навыки проверки» работают как есть. Субагент agents/security-reviewer.md:
---
name: security-reviewer
description: Проверяет изменения на уязвимости
tools: Read, Grep, Glob, Bash
model: opus
---
Ты — инженер по безопасности. Проверь код на:
- инъекции (SQL, XSS, команды);
- ошибки авторизации и аутентификации;
- секреты в коде;
- небезопасную обработку данных.
Давай ссылки на строки и предлагай исправления.Хуки переезжают из settings.json в hooks/hooks.json — формат тот же, только скрипты адресуются через ${CLAUDE_PLUGIN_ROOT}, папку установленного плагина:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/protect-files.sh"
}
]
}
],
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"
}
]
}
]
}
}Скрипт protect-files.sh кладётся рядом, в hooks/, и делается исполняемым.
Проверяем локально
Плагин подключается на одну сессию флагом --plugin-dir:
claude --plugin-dir ./amiga-standardsВ сессии: /amiga-standards:verify должен работать, субагент должен появиться в /context в разделе Custom Agents, а хук — сработать при попытке отредактировать .env. После правок в файлах плагина — /reload-plugins, перезапуск не нужен. Флаг можно повторять, чтобы подключить несколько плагинов сразу.
Перед публикацией — валидация:
claude plugin validate ./amiga-standardsОна проверяет структуру и манифест. Если плагин с таким же именем уже установлен из маркетплейса, локальная копия из --plugin-dir на эту сессию имеет приоритет — удобно тестировать изменения, не удаляя рабочую версию.
Для черновика есть и claude plugin init <имя>: создаёт заготовку с манифестом и стартовым SKILL.md в папке навыков, откуда она загружается автоматически.
Маркетплейс: как раздать команде
Маркетплейс — каталог плагинов: git-репозиторий с файлом .claude-plugin/marketplace.json. Плагины могут лежать в том же репозитории или ссылаться на другие.
Репозиторий amiga/claude-plugins:
claude-plugins/
├── .claude-plugin/
│ └── marketplace.json
└── plugins/
├── amiga-standards/
└── amiga-mobile/marketplace.json:
{
"name": "amiga",
"owner": {
"name": "Amiga Dev Tools"
},
"plugins": [
{
"name": "amiga-standards",
"source": "./plugins/amiga-standards",
"description": "Проверка, ревью и защитные хуки",
"version": "1.0.0"
},
{
"name": "amiga-mobile",
"source": "./plugins/amiga-mobile",
"description": "Навыки для мобильных проектов"
}
]
}Поле source — относительный путь внутри репозитория либо объект со ссылкой на другой репозиторий: {"source": "github", "repo": "amiga/other-plugin"} или git-URL для GitLab и самохостинга. Репозиторий может быть приватным: Claude Code использует ваши обычные git-учётные данные.
Разработчик подключает маркетплейс и ставит плагин:
/plugin marketplace add amiga/claude-plugins
/plugin install amiga-standards@amigaДля GitHub достаточно owner/repo; для других хостов — полный URL с .git на конце. При установке выбирается область: пользовательская (для всех ваших проектов), проектная (для всех участников репозитория — пишется в .claude/settings.json) или локальная (только вы в этом репозитории).
Но лучше не заставлять каждого выполнять команды. В .claude/settings.json проекта:
{
"extraKnownMarketplaces": {
"amiga": {
"source": {
"source": "github",
"repo": "amiga/claude-plugins"
}
}
},
"enabledPlugins": {
"amiga-standards@amiga": true
}
}Когда участник команды открывает проект и подтверждает доверие папке, Claude Code регистрирует маркетплейс сам. Плагин с внешним источником всё же потребует одной команды claude plugin install — Claude Code подскажет, какой. Двадцать проектов агентства получают стандарты через один и тот же фрагмент настроек, а обновление — через поднятие version в маркетплейсе.
Управление и обновления
/plugin открывает менеджер с вкладками: Discover (что доступно), Installed (что установлено — включить, выключить, удалить), Marketplaces (каталоги), Errors (ошибки загрузки). Из командной строки: /plugin list, /plugin disable amiga-standards@amiga, /plugin enable ..., /plugin uninstall .... Для скриптов есть claude plugin install <имя>@<маркетплейс> --scope project — без интерактивной панели.
Обновление маркетплейса — /plugin marketplace update amiga. У сторонних маркетплейсов автообновление по умолчанию выключено; администратор может включить его в управляемых настройках через "autoUpdate": true в записи extraKnownMarketplaces.
Готовые плагины есть в официальном маркетплейсе claude-plugins-official, который Claude Code подключает сам при первом запуске. Там — интеграции с GitHub, GitLab, Jira, Figma, Slack, Sentry в виде преднастроенных MCP-серверов, плагины кодовой навигации по языкам (typescript-lsp, pyright-lsp и другие; сам языковой сервер нужно установить отдельно), плагин security-guidance и наборы для работы с PR. Устанавливаются так же: /plugin install github@claude-plugins-official.
О доверии
Плагин выполняет код на вашей машине с вашими правами: хуки — это shell-команды, MCP-серверы — процессы. Anthropic не проверяет содержимое сторонних плагинов. Ставьте только из источников, которым доверяете; для команды это собственный маркетплейс в приватном репозитории. Организация может ограничить список разрешённых маркетплейсов управляемыми настройками.
Попробуйте сами
10–15 мин на рабочем месте- Соберите плагин из своего
.claude/: создайте манифест, перенесите навыки и хуки, запуститеclaude --plugin-dir ./мой-плагини проверьте каждый компонент. Прогонитеclaude plugin validate. - Создайте приватный репозиторий с
marketplace.json, положите туда плагин и подключите его из другого проекта через/plugin marketplace add. Установите плагин в проектную область и посмотрите, что появилось в.claude/settings.json. - Добавьте в
.claude/settings.jsonтестового проектаextraKnownMarketplacesиenabledPlugins, склонируйте проект в новую папку и откройте в Claude Code. Убедитесь, что маркетплейс зарегистрировался без ваших команд.
Коротко
- Плагин — папка с манифестом
.claude-plugin/plugin.jsonи папкамиskills/,agents/,hooks/, файлом.mcp.json; навыки получают префикс/имя-плагина:. - Начинайте в
.claude/, переводите в плагин, когда нужно нескольким людям или проектам. - Локальная проверка —
claude --plugin-dir ./путь,/reload-pluginsпосле правок,claude plugin validateперед публикацией. - Маркетплейс — git-репозиторий с
.claude-plugin/marketplace.json; подключение/plugin marketplace add owner/repo, установка/plugin install имя@маркетплейс. extraKnownMarketplacesиenabledPluginsв.claude/settings.jsonраздают стандарты на все проекты; обновления — черезversion.- Плагины выполняют код с вашими правами: только доверенные источники.
Видеоверсия
Сценарий озвучки · 528 слов, ≈ 4 мин
За курс у вас накопилось: навык проверки, навык-ревьюер, несколько хуков, правила разрешений. Всё это лежит в папке точка-клод одного проекта. Скопировать в двадцать других можно, но через месяц двадцать копий разойдутся. Плагин решает это: набор упаковывается один раз, кладётся в репозиторий, а проекты подключают его одной строкой в настройках и получают обновления. Разберём, как плагин устроен и как раздать его команде.
Когда плагин, а когда просто папка точка-клод? Папка — для личных сценариев и экспериментов. Плагин — для того, что нужно нескольким людям или проектам, с версиями. Совет из документации: начинайте в папке, быстро итерируйте, и переводите в плагин, когда стало ясно, что это нужно не только вам. Отличие видно в вызове: навык из папки — просто слеш и имя, навык из плагина — слеш, имя плагина, двоеточие, имя навыка.
Из чего состоит плагин. В подпапке точка-клод-плагин лежит манифест — джейсон с именем, описанием и версией. Имя становится пространством имён для навыков. Версия определяет, когда пользователи получат обновление: пока вы её не подняли, у них старая. Дальше, в корне плагина: папка навыков, папка субагентов, папка хуков с файлом хукс-джейсон — формат тот же, что в настройках, — и файл с MCP-серверами. Частая ошибка — положить навыки или хуки внутрь папки с манифестом. Там только манифест.
Соберём плагин командных стандартов. Навыки проверки и ревью переносятся из папки проекта без изменений. Добавим субагента — ревьюера по безопасности: короткий файл с описанием, списком инструментов и инструкцией, что искать: инъекции, ошибки авторизации, секреты в коде. Хуки переезжают из настроек в файл плагина; скрипты адресуются через переменную с корнем плагина, чтобы путь не зависел от того, куда он установлен.
Проверяем локально. Флаг «плагин-дир» подключает плагин на одну сессию. В сессии вызываем навык с префиксом, смотрим, появился ли субагент в списке контекста, пробуем отредактировать защищённый файл и убеждаемся, что хук сработал. После правок — команда «релоад-плагинс», перезапуск не нужен. Перед публикацией — команда валидации: она проверяет структуру и манифест.
Теперь раздача. Маркетплейс — это каталог плагинов: гит-репозиторий с файлом маркетплейс-джейсон в той же служебной подпапке. В файле — имя каталога, владелец и список плагинов с путями внутри репозитория или ссылками на другие репозитории. Репозиторий может быть приватным — Claude Code использует ваши обычные учётные данные гита. Разработчик подключает каталог командой «плагин маркетплейс эдд» с именем репозитория и ставит плагин командой «плагин инсталл» с именем через собачку. При установке выбирается область: для всех своих проектов, для всех участников этого репозитория или только для себя в нём.
Но лучше не заставлять каждого выполнять команды. В проектный файл настроек добавляются два ключа: известные маркетплейсы — со ссылкой на репозиторий каталога, и включённые плагины. Когда участник команды открывает проект и подтверждает доверие папке, Claude Code регистрирует каталог сам и подсказывает команду установки. Двадцать проектов агентства получают стандарты через один и тот же фрагмент настроек, а обновление — через поднятие версии.
Управлять плагинами можно через менеджер — команда «плагин» открывает вкладки: что доступно, что установлено, каталоги, ошибки. Есть и официальный каталог Anthropic, который подключается сам при первом запуске: интеграции с GitHub, Jira, Figma, Slack, плагины кодовой навигации по языкам, плагин проверки безопасности.
И о доверии. Плагин выполняет код на вашей машине с вашими правами: хуки — это шелл-команды, MCP-серверы — процессы. Anthropic не проверяет содержимое сторонних плагинов. Ставьте только из источников, которым доверяете. Для команды это свой каталог в приватном репозитории, а организация может ограничить список разрешённых каталогов.
