plugins.md +0 −527 deleted
File Deleted View Diff
1> ## Documentation Index
2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
3> Use this file to discover all available pages before exploring further.
4
5# Создание plugins
6
7> Создавайте пользовательские plugins для расширения Claude Code с помощью skills, agents, hooks и MCP servers.
8
9Plugins позволяют расширить Claude Code пользовательской функциональностью, которая может быть общей для проектов и команд. Это руководство охватывает создание собственных plugins с skills, agents, hooks и MCP servers.
10
11Ищете установку существующих plugins? См. [Обнаружение и установка plugins](/docs/ru/discover-plugins). Для полных технических спецификаций см. [Справочник plugins](/docs/ru/plugins-reference).
12
13<h2 id="when-to-use-plugins-vs-standalone-configuration">
14 Когда использовать plugins в сравнении с автономной конфигурацией
15</h2>
16
17Claude Code поддерживает два способа добавления пользовательских skills, agents и hooks:
18
19| Подход | Имена Skill | Лучше всего для |
20| :----------------------------------------------------------------------------------------------------------- | :------------------- | :------------------------------------------------------------------------------------------------------------------------- |
21| **Автономная** (директория `.claude/`) | `/hello` | Личные рабочие процессы, настройки для конкретного проекта, быстрые эксперименты |
22| **Plugins** (самостоятельные директории с skills, agents, hooks или манифестом `.claude-plugin/plugin.json`) | `/plugin-name:hello` | Совместное использование с коллегами, распространение в сообществе, версионные выпуски, повторное использование в проектах |
23
24<Tip>
25 Начните с автономной конфигурации в `.claude/` для быстрой итерации, затем [преобразуйте в plugin](#convert-existing-configurations-to-plugins) когда будете готовы поделиться.
26</Tip>
27
28<h2 id="quickstart">
29 Быстрый старт
30</h2>
31
32Этот быстрый старт проведёт вас через создание plugin с пользовательским skill. Вы создадите манифест (файл конфигурации, который определяет ваш plugin), добавите skill и протестируете его локально, используя флаг `--plugin-dir`.
33
34<h3 id="prerequisites">
35 Предварительные требования
36</h3>
37
38* Claude Code [установлен и аутентифицирован](/docs/ru/quickstart#step-1-install-claude-code)
39
40<h3 id="create-your-first-plugin">
41 Создайте ваш первый plugin
42</h3>
43
44<Steps>
45 <Step title="Создайте директорию plugin">
46 Каждый plugin находится в собственной директории, содержащей ваши skills, agents или hooks, опционально вместе с манифестом `.claude-plugin/plugin.json`. Расположение не имеет значения для этого быстрого старта, потому что вы будете указывать Claude Code на директорию с помощью `--plugin-dir` на этапе тестирования. Создайте её в любом удобном месте, например в папке для черновиков или в директории проектов:
47
48 ```bash theme={null}
49 mkdir my-first-plugin
50 ```
51
52 Остальные шаги выполняются из родительской директории и ссылаются на пути вроде `my-first-plugin/...` относительно неё.
53 </Step>
54
55 <Step title="Создайте манифест plugin">
56 Файл манифеста в `.claude-plugin/plugin.json` определяет идентичность вашего plugin: его имя, описание и версию. Claude Code использует эти метаданные для отображения вашего plugin в менеджере plugins.
57
58 Создайте директорию `.claude-plugin` внутри папки вашего plugin:
59
60 ```bash theme={null}
61 mkdir my-first-plugin/.claude-plugin
62 ```
63
64 Затем создайте `my-first-plugin/.claude-plugin/plugin.json` с этим содержимым:
65
66 ```json my-first-plugin/.claude-plugin/plugin.json theme={null}
67 {
68 "name": "my-first-plugin",
69 "description": "A greeting plugin to learn the basics",
70 "version": "1.0.0",
71 "author": {
72 "name": "Your Name"
73 }
74 }
75 ```
76
77 | Поле | Назначение |
78 | :------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
79 | `name` | Уникальный идентификатор и пространство имён skill. Skills имеют префикс этого (например, `/my-first-plugin:hello`). |
80 | `description` | Показывается в менеджере plugins при просмотре или установке plugins. |
81 | `version` | Опционально. Если установлено, пользователи получают обновления только когда вы увеличиваете это поле, кроме как для источника [`command`](/docs/ru/plugin-marketplaces#command-sources) или plugin [загруженного на месте](/docs/ru/plugins-reference#plugin-caching-and-file-resolution); см. [управление версиями](/docs/ru/plugins-reference#version-management). Если опущено, версия берётся из следующего источника в [управлении версиями](/docs/ru/plugins-reference#version-management). |
82 | `author` | Опционально. Полезно для атрибуции. |
83
84 Для дополнительных полей, таких как `homepage`, `repository` и `license`, см. [полную схему манифеста](/docs/ru/plugins-reference#plugin-manifest-schema).
85 </Step>
86
87 <Step title="Добавьте skill">
88 Skills находятся в директории `skills/`. Каждый skill — это папка, содержащая файл `SKILL.md`. Имя папки становится именем skill, с префиксом пространства имён plugin (`hello/` в plugin с именем `my-first-plugin` создаёт `/my-first-plugin:hello`).
89
90 Создайте директорию skill в папке вашего plugin:
91
92 ```bash theme={null}
93 mkdir -p my-first-plugin/skills/hello
94 ```
95
96 Затем создайте `my-first-plugin/skills/hello/SKILL.md` с этим содержимым:
97
98 ```markdown my-first-plugin/skills/hello/SKILL.md theme={null}
99 ---
100 description: Greet the user with a friendly message
101 disable-model-invocation: true
102 ---
103
104 Greet the user warmly and ask how you can help them today.
105 ```
106 </Step>
107
108 <Step title="Протестируйте ваш plugin">
109 Запустите Claude Code с флагом `--plugin-dir` для загрузки вашего plugin:
110
111 ```bash theme={null}
112 claude --plugin-dir ./my-first-plugin
113 ```
114
115 После запуска Claude Code попробуйте ваш новый skill:
116
117 ```shell theme={null}
118 /my-first-plugin:hello
119 ```
120
121 Вы увидите, как Claude ответит приветствием. Запустите `/help` и откройте вкладку **Custom commands**, чтобы увидеть ваш skill, указанный в пространстве имён plugin.
122
123 <Note>
124 **Почему пространство имён?** Skills plugin всегда имеют пространство имён (например, `/my-first-plugin:hello`) для предотвращения конфликтов, когда несколько plugins имеют skills с одинаковым именем.
125
126 Чтобы изменить префикс пространства имён, обновите поле `name` в `plugin.json`.
127 </Note>
128 </Step>
129
130 <Step title="Добавьте аргументы skill">
131 Сделайте ваш skill динамичным, принимая пользовательский ввод. Заполнитель `$ARGUMENTS` захватывает любой текст, который пользователь предоставляет после имени skill.
132
133 Обновите ваш файл `SKILL.md`:
134
135 ```markdown my-first-plugin/skills/hello/SKILL.md theme={null}
136 ---
137 description: Greet the user with a personalized message
138 ---
139
140 # Hello Skill
141
142 Greet the user named "$ARGUMENTS" warmly and ask how you can help them today. Make the greeting personal and encouraging.
143 ```
144
145 Запустите `/reload-plugins` для применения изменений. Затем попробуйте skill с вашим именем:
146
147 ```shell theme={null}
148 /my-first-plugin:hello Alex
149 ```
150
151 Claude поприветствует вас по имени. Для получения дополнительной информации о передаче аргументов в skills см. [Skills](/docs/ru/skills#pass-arguments-to-skills).
152 </Step>
153</Steps>
154
155<Tip>
156 Флаг `--plugin-dir` полезен для разработки и тестирования. Когда вы будете готовы поделиться вашим plugin с другими, см. [Создание и распространение marketplace plugin](/docs/ru/plugin-marketplaces).
157</Tip>
158
159<h2 id="develop-a-plugin-in-your-skills-directory">
160 Разработка plugin в вашей директории skills
161</h2>
162
163Вместо передачи `--plugin-dir` при каждом запуске, вы можете сохранить plugin в вашей директории skills и позволить Claude Code загружать его автоматически. `claude plugin init` создаёт каркас:
164
165```bash theme={null}
166claude plugin init my-tool
167```
168
169Это создаёт `~/.claude/skills/my-tool/` с манифестом `.claude-plugin/plugin.json` и стартовым `SKILL.md`. На следующем сеансе он загружается как `my-tool@skills-dir` без marketplace или шага установки.
170
171Для правил автозагрузки, личной и проектной области, требования доверия рабочей области и способов обновления или удаления, см. [Skills-directory plugins](/docs/ru/plugins-reference#skills-directory-plugins).
172
173<h2 id="plugin-structure-overview">
174 Обзор структуры plugin
175</h2>
176
177Вы создали plugin с skill, но plugins могут включать намного больше: пользовательские agents, hooks, MCP servers, LSP servers и фоновые мониторы.
178
179<Warning>
180 **Частая ошибка**: Не помещайте `commands/`, `agents/`, `skills/` или `hooks/` внутри директории `.claude-plugin/`. Только `plugin.json` находится внутри `.claude-plugin/`. Все остальные директории должны быть на уровне корня plugin.
181
182 Корень plugin — это собственная директория отдельного plugin, например `my-first-plugin/` из [quickstart](#quickstart). Это никогда не `~/.claude/`. Например, Claude Code не читает `.mcp.json`, размещённый в `~/.claude/.mcp.json`.
183</Warning>
184
185| Директория | Местоположение | Назначение |
186| :---------------- | :------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
187| `.claude-plugin/` | Корень plugin | Содержит манифест `plugin.json` (опционально, если компоненты используют местоположения по умолчанию) |
188| `skills/` | Корень plugin | Skills как директории `<name>/SKILL.md` |
189| `commands/` | Корень plugin | Skills как плоские файлы Markdown. Используйте `skills/` для новых plugins |
190| `agents/` | Корень plugin | Определения пользовательских agents |
191| `hooks/` | Корень plugin | Обработчики событий в `hooks.json` |
192| `.mcp.json` | Корень plugin | Конфигурации MCP server |
193| `.lsp.json` | Корень plugin | Конфигурации LSP server для интеллекта кода |
194| `monitors/` | Корень plugin | Конфигурации фонового монитора в `monitors.json` |
195| `bin/` | Корень plugin | Исполняемые файлы, добавленные в `PATH` инструмента Bash во время включения plugin. Вы не можете включить эту директорию в plugin, который вы [распространяете через параметры организации claude.ai](/docs/ru/plugin-marketplaces#keep-executables-out-of-the-top-level-bin-directory) |
196| `settings.json` | Корень plugin | Параметры по умолчанию [settings](/docs/ru/settings), применяемые при включении plugin |
197
198Plugin, который поставляется ровно с одним skill, может поместить `SKILL.md` непосредственно в корень plugin вместо создания директории `skills/`. Claude Code загружает его как один skill и использует поле frontmatter `name` для имени вызова. Используйте макет `skills/` для plugins, которые могут расширяться до более чем одного skill.
199
200<h2 id="develop-more-complex-plugins">
201 Разработка более сложных plugins
202</h2>
203
204Когда вы будете комфортно чувствовать себя с базовыми plugins, вы сможете создавать более сложные расширения.
205
206<h3 id="add-skills-to-your-plugin">
207 Добавьте Skills в ваш plugin
208</h3>
209
210Plugins могут включать [Agent Skills](/docs/ru/skills) для расширения возможностей Claude. Skills вызываются моделью: Claude автоматически использует их на основе контекста задачи.
211
212Добавьте директорию `skills/` в корень вашего plugin с папками Skill, содержащими файлы `SKILL.md`:
213
214```text theme={null}
215my-plugin/
216├── .claude-plugin/
217│ └── plugin.json
218└── skills/
219 └── code-review/
220 └── SKILL.md
221```
222
223Каждый `SKILL.md` содержит YAML frontmatter и инструкции. Включите `description` чтобы Claude знал, когда использовать skill:
224
225```yaml theme={null}
226description: Reviews code for best practices and potential issues. Use when reviewing code, checking PRs, or analyzing code quality.
227
228When reviewing code, check for:
2291. Code organization and structure
2302. Error handling
2313. Security concerns
2324. Test coverage
233```
234
235После установки plugin проверьте сводку установки: если она сообщает `Run /reload-plugins to activate.`, см. [Применение изменений plugin без перезагрузки](/docs/ru/discover-plugins#apply-plugin-changes-without-restarting) для загрузки Skills в вашем текущем сеансе. Для полного руководства по созданию Skill, включая прогрессивное раскрытие и ограничения инструментов, см. [Agent Skills](/docs/ru/skills).
236
237<h3 id="add-lsp-servers-to-your-plugin">
238 Добавьте LSP servers в ваш plugin
239</h3>
240
241<Tip>
242 Для распространённых языков, таких как TypeScript, Python и Rust, установите предварительно созданные LSP plugins из официального marketplace. Создавайте пользовательские LSP plugins только когда вам нужна поддержка языков, которые ещё не охвачены.
243</Tip>
244
245LSP (Language Server Protocol) plugins дают Claude интеллект кода в реальном времени. Если вам нужна поддержка языка, который не имеет официального LSP plugin, вы можете создать свой собственный, добавив файл `.lsp.json` в ваш plugin:
246
247```json .lsp.json theme={null}
248{
249 "go": {
250 "command": "gopls",
251 "args": ["serve"],
252 "extensionToLanguage": {
253 ".go": "go"
254 }
255 }
256}
257```
258
259Пользователи, устанавливающие ваш plugin, должны иметь двоичный файл языкового сервера, установленный на их машине.
260
261Чтобы подтвердить запуск сервера, запустите Claude Code с включённым plugin и проверьте вкладку `/plugin` Errors: языковой сервер, который не запустился, появляется там, например с `Executable not found in $PATH`, когда двоичный файл не установлен. Запись с неправильной конфигурацией пропускается; запустите `claude --debug` чтобы увидеть почему.
262
263Для полных опций конфигурации LSP см. [LSP servers](/docs/ru/plugins-reference#lsp-servers).
264
265<h3 id="add-background-monitors-to-your-plugin">
266 Добавьте фоновые мониторы в ваш plugin
267</h3>
268
269Фоновые мониторы позволяют вашему plugin отслеживать логи, файлы или внешний статус в фоне и уведомлять Claude по мере поступления событий. Claude Code автоматически запускает каждый монитор при активации plugin, поэтому вам не нужно инструктировать Claude запустить наблюдение.
270
271Добавьте файл `monitors/monitors.json` в корень plugin с массивом записей монитора:
272
273```json monitors/monitors.json theme={null}
274[
275 {
276 "name": "error-log",
277 "command": "tail -F ./logs/error.log",
278 "description": "Application error log"
279 }
280]
281```
282
283Каждая строка stdout из `command` доставляется Claude как уведомление во время сеанса. Для полной схемы, включая триггер `when` и подстановку переменных, см. [Monitors](/docs/ru/plugins-reference#monitors).
284
285<h3 id="ship-default-settings-with-your-plugin">
286 Поставляйте параметры по умолчанию с вашим plugin
287</h3>
288
289Plugins могут включать файл `settings.json` в корне plugin для применения конфигурации по умолчанию при включении plugin. В настоящее время поддерживаются только ключи `agent` и `subagentStatusLine`.
290
291Установка `agent` активирует один из [пользовательских agents](/docs/ru/sub-agents) plugin в качестве основного потока, применяя его системный prompt, ограничения инструментов и модель. Это позволяет plugin изменить поведение Claude Code по умолчанию при включении.
292
293```json settings.json theme={null}
294{
295 "agent": "security-reviewer"
296}
297```
298
299Этот пример активирует agent `security-reviewer`, определённый в директории `agents/` plugin. Параметры из `settings.json` имеют приоритет над `settings`, объявленными в `plugin.json`. Неизвестные ключи молча игнорируются.
300
301<h3 id="organize-complex-plugins">
302 Организуйте сложные plugins
303</h3>
304
305Для plugins с множеством компонентов организуйте структуру вашей директории по функциональности. Для полных макетов директорий и шаблонов организации см. [Структура директории Plugin](/docs/ru/plugins-reference#plugin-directory-structure).
306
307<h3 id="test-your-plugins-locally">
308 Протестируйте ваши plugins локально
309</h3>
310
311Используйте флаг `--plugin-dir` для тестирования plugins во время разработки. Это загружает ваш plugin напрямую без необходимости установки.
312
313```bash theme={null}
314claude --plugin-dir ./my-plugin
315```
316
317Флаг также принимает архив `.zip` директории plugin.
318
319```bash theme={null}
320claude --plugin-dir ./my-plugin.zip
321```
322
323Когда `--plugin-dir` plugin имеет то же имя, что и установленный marketplace plugin, локальная копия имеет приоритет для этого сеанса. Это позволяет вам протестировать изменения plugin, который у вас уже установлен, без необходимости его предварительной деинсталляции. Исключением являются plugins, которые управляемые параметры принудительно включают или отключают: `--plugin-dir` не может переопределить эти параметры.
324
325По мере внесения изменений в ваш plugin запустите `/reload-plugins` для применения обновлений без перезагрузки. Это перезагружает plugins, skills, agents, hooks, plugin MCP servers и plugin LSP servers; в сеансе без интерактивного терминала изменения plugin MCP server [ожидают вашего следующего сеанса](/docs/ru/discover-plugins#apply-plugin-changes-without-restarting). Протестируйте компоненты вашего plugin:
326
327* Попробуйте ваши skills с `/plugin-name:skill-name`
328* Проверьте, что agents появляются в `/context` под Custom Agents, или упомяните один по его scoped name с помощью @
329* Запустите событие, которое соответствует каждому hook, например попросите Claude отредактировать файл для hook `PostToolUse`, и подтвердите его эффект. Claude Code записывает, какие hooks совпали, их коды выхода и их вывод в [debug log](/docs/ru/hooks#debug-hooks)
330
331<Tip>
332 Вы можете загружать несколько plugins одновременно, указав флаг несколько раз:
333
334 ```bash theme={null}
335 claude --plugin-dir ./plugin-one --plugin-dir ./plugin-two
336 ```
337
338 Чтобы протестировать plugin вместе с plugin, от которого он зависит, см. [Протестируйте plugin и его зависимость локально](/docs/ru/plugin-dependencies#test-a-plugin-and-its-dependency-locally).
339</Tip>
340
341Чтобы загружать plugins в сеансе, где вы не можете добавить флаг, перечислите их абсолютные пути в переменной окружения [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/ru/env-vars#variables). Claude Code загружает каждый путь так же, как загружает путь `--plugin-dir`. Эти plugins загружаются в дополнение к любым, которые вы передаёте с помощью `--plugin-dir`. [Параметры проекта и локальные параметры не могут устанавливать эту переменную](/docs/ru/settings-reference#variables-claude-code-ignores-in-env). `CLAUDE_CODE_PLUGIN_DIRS` требует Claude Code v2.1.280 или более поздней версии.
342
343Попробовав plugin с `--plugin-dir`, вы узнаете, что он может работать. Чтобы узнать, как часто Claude на самом деле обращается к нему и получает правильный результат, запустите его против набора тестовых prompts с помощью [`claude plugin eval`](/docs/ru/plugin-evals). Каждый prompt запускается несколько раз с plugin и без него, поэтому вы можете увидеть, что вносит plugin, и поймать регрессии при его изменении или выпуске новой модели.
344
345Чтобы загружать несколько plugins из одного места, передайте папку, которая их содержит, например `--plugin-dir ./plugins`. Загрузка папки plugins требует Claude Code v2.1.265 или более поздней версии. Claude Code читает верхний уровень папки, чтобы решить, какие plugins загружаются, и в интерактивном сеансе он также отслеживает папку на предмет последующих изменений:
346
347* **Что загружается**: если папка не имеет манифеста или компонентов plugin на верхнем уровне, Claude Code рассматривает её как папку plugins. Каждая непосредственная подпапка, которая имеет манифест `.claude-plugin/plugin.json`, загружается как отдельный plugin. Claude Code пропускает всё остальное в папке без сообщения об ошибке, включая plugins, которые не имеют манифеста.
348* **Изменения во время интерактивного сеанса**: подпапка, которую вы добавляете, загружается как новый plugin после того, как её манифест находится на месте, и когда вы удаляете подпапку, её plugin выгружается. Claude Code выводит строку в сеансе для каждого изменения. Если применение изменения в середине разговора [инвалидирует кэш prompt](/docs/ru/prompt-caching#enabling-or-disabling-a-plugin), Claude Code удерживает его, и строка говорит запустить `/reload-plugins` для применения.
349
350Чтобы протестировать plugin, который уже упакован как архив `.zip` и размещён по URL-адресу, например артефакт сборки CI, используйте вместо этого `--plugin-url`. Claude Code загружает архив при запуске и загружает его только для этого сеанса. Если Claude Code не может загрузить архив или архив недействителен, он запускается без plugin и записывает ошибку загрузки plugin, которую вы можете просмотреть на вкладке **Errors** менеджера `/plugin`. Те же [соображения доверия](/docs/ru/discover-plugins#security) применяются как для любого источника plugin: указывайте этот флаг только на архивы, которыми вы управляете или которым доверяете.
351
352Чтобы загружать несколько plugins, повторите флаг для каждого URL:
353
354```bash theme={null}
355claude --plugin-url https://example.com/my-plugin.zip --plugin-url https://example.com/other.zip
356```
357
358Или передайте разделённые пробелами URL-адреса как один аргумент в кавычках:
359
360```bash theme={null}
361claude --plugin-url "https://example.com/my-plugin.zip https://example.com/other.zip"
362```
363
364<h3 id="debug-plugin-issues">
365 Отладка проблем plugin
366</h3>
367
368Если ваш plugin не работает как ожидается:
369
3701. **Проверьте структуру**: Убедитесь, что ваши директории находятся в корне plugin, а не внутри `.claude-plugin/`
3712. **Протестируйте компоненты отдельно**: Проверьте каждый skill, agent и hook отдельно
3723. **Используйте инструменты валидации и отладки**: См. [Инструменты отладки и разработки](/docs/ru/plugins-reference#debugging-and-development-tools) для команд CLI и методов troubleshooting
373
374<h3 id="share-your-plugins">
375 Поделитесь вашими plugins
376</h3>
377
378Когда ваш plugin готов к совместному использованию:
379
3801. **Добавьте документацию**: Включите `README.md` с инструкциями по установке и использованию
3812. **Выберите стратегию версионирования**: Решите, устанавливать ли явную `version` или полагаться на fallback, описанный в [управлении версиями](/docs/ru/plugins-reference#version-management).
3823. **Создайте или используйте marketplace**: Распространяйте через [plugin marketplaces](/docs/ru/plugin-marketplaces) для установки
3834. **Протестируйте с другими**: Попросите членов команды протестировать plugin перед более широким распространением
384
385Когда ваш plugin находится в marketplace, другие могут установить его, используя инструкции в [Обнаружение и установка plugins](/docs/ru/discover-plugins). Чтобы сохранить plugin внутри вашей команды, разместите marketplace в [приватном репозитории](/docs/ru/plugin-marketplaces#private-repositories).
386
387<h3 id="submit-your-plugin-to-the-community-marketplace">
388 Отправьте ваш plugin на официальный marketplace сообщества
389</h3>
390
391Anthropic поддерживает два публичных marketplace для plugins Claude Code:
392
393* **`claude-plugins-official`**: курируемый набор plugins, поддерживаемый Anthropic. Claude Code регистрирует его автоматически при первом запуске Claude Code в интерактивном режиме. Если вы запускаете Claude Code неинтерактивно перед этим первым интерактивным запуском или [политика marketplace](/docs/ru/plugin-marketplaces#managed-marketplace-restrictions) заблокировала более раннюю попытку, зарегистрируйте его самостоятельно с помощью `claude plugin marketplace add anthropics/claude-plugins-official`.
394* **`claude-community`**: публичный marketplace сообщества, где размещаются сторонние отправки после проверки. Пользователи добавляют его с помощью `/plugin marketplace add anthropics/claude-plugins-community` и устанавливают из него как `@claude-community`.
395
396Чтобы отправить ваш plugin на проверку в marketplace сообщества, используйте одну из встроенных форм:
397
398* **claude.ai**: [claude.ai/admin-settings/directory/submissions/plugins/new](https://claude.ai/admin-settings/directory/submissions/plugins/new)
399* **Console**: [platform.claude.com/plugins/submit](https://platform.claude.com/plugins/submit)
400
401Форма claude.ai требует организацию Team или Enterprise и доступ к управлению директорией; владельцы организации имеют этот доступ по умолчанию. Отдельные авторы, которые не являются частью организации Team или Enterprise, могут использовать форму Console вместо этого.
402
403Запустите `claude plugin validate ./your-plugin` локально перед отправкой, заменив `./your-plugin` на путь к директории вашего plugin. Конвейер проверки запускает ту же проверку для каждой отправки, а также автоматизированный скрининг безопасности. Когда валидация пройдена, Claude Code выводит `✔ Validation passed`, или `✔ Validation passed with warnings`, если есть предупреждения. Предупреждения не приводят к отказу валидации; добавьте `--strict` чтобы рассматривать их как ошибки.
404
405Одобренные plugins закреплены на определённом коммите SHA в каталоге [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community), и CI автоматически обновляет закрепление по мере того, как вы отправляете новые коммиты в ваш репозиторий. Публичный каталог синхронизируется ночью из конвейера проверки, поэтому может быть задержка между одобрением и появлением вашего plugin в `marketplace.json`. Чтобы проверить, установлен ли ваш plugin, выполните поиск его имени в [каталоге сообщества](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json).
406
407Официальный marketplace `claude-plugins-official` курируется отдельно. Anthropic решает, какие plugins включить по своему усмотрению. Нет процесса подачи заявки, и форма отправки не добавляет plugins в официальный marketplace.
408
409Если Anthropic включит ваш plugin в официальный marketplace, ваш CLI может предложить пользователям Claude Code установить его. См. [Рекомендуйте ваш plugin из вашего CLI](/docs/ru/plugin-hints).
410
411<h2 id="convert-existing-configurations-to-plugins">
412 Преобразование существующих конфигураций в plugins
413</h2>
414
415Если у вас уже есть skills или hooks в вашей директории `.claude/`, вы можете преобразовать их в plugin для более лёгкого совместного использования и распространения.
416
417<h3 id="migration-steps">
418 Шаги миграции
419</h3>
420
421<Steps>
422 <Step title="Создайте структуру plugin">
423 Создайте новую директорию plugin в корне вашего проекта, рядом с существующей папкой `.claude/`, чтобы относительные пути `cp` на следующем шаге разрешались:
424
425 ```bash theme={null}
426 mkdir -p my-plugin/.claude-plugin
427 ```
428
429 Создайте файл манифеста в `my-plugin/.claude-plugin/plugin.json`:
430
431 ```json my-plugin/.claude-plugin/plugin.json theme={null}
432 {
433 "name": "my-plugin",
434 "description": "Migrated from standalone configuration",
435 "version": "1.0.0"
436 }
437 ```
438 </Step>
439
440 <Step title="Скопируйте ваши существующие файлы">
441 Скопируйте каждую директорию конфигурации, которая у вас есть, в корень plugin. У вас может быть не все три: если директория не существует, `cp` выводит `No such file or directory` и ничего не копирует, поэтому пропустите эту команду или игнорируйте ошибку.
442
443 ```bash theme={null}
444 cp -r .claude/commands my-plugin/
445
446 cp -r .claude/agents my-plugin/
447
448 cp -r .claude/skills my-plugin/
449 ```
450
451 Ваш plugin теперь содержит копии директорий, которые у вас были в `.claude/`. Запустите `ls my-plugin` для подтверждения: вы должны увидеть каждую директорию, которую вы скопировали.
452 </Step>
453
454 <Step title="Мигрируйте hooks">
455 Если у вас есть hooks в ваших параметрах, создайте директорию hooks:
456
457 ```bash theme={null}
458 mkdir my-plugin/hooks
459 ```
460
461 Создайте `my-plugin/hooks/hooks.json` с конфигурацией вашего hooks. Скопируйте объект `hooks` из вашего `.claude/settings.json` или `settings.local.json`, так как формат одинаков. Команда получает входные данные hook как JSON на stdin, поэтому используйте `jq` для извлечения пути файла:
462
463 ```json my-plugin/hooks/hooks.json theme={null}
464 {
465 "hooks": {
466 "PostToolUse": [
467 {
468 "matcher": "Write|Edit",
469 "hooks": [{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npm run lint:fix" }]
470 }
471 ]
472 }
473 }
474 ```
475 </Step>
476
477 <Step title="Протестируйте ваш мигрированный plugin">
478 Загрузите ваш plugin для проверки того, что всё работает:
479
480 ```bash theme={null}
481 claude --plugin-dir ./my-plugin
482 ```
483
484 Протестируйте каждый компонент: запустите ваши команды, проверьте, что agents появляются в `/context`, и запустите событие, которое соответствует каждому hook, чтобы подтвердить его эффект. Claude Code записывает, какие hooks совпали и как они завершились в [журнал отладки](/docs/ru/hooks#debug-hooks).
485 </Step>
486</Steps>
487
488<h3 id="what-changes-when-migrating">
489 Что изменяется при миграции
490</h3>
491
492| Автономная (`.claude/`) | Plugin |
493| :---------------------------------------------------------- | :---------------------------------- |
494| Доступна только в одном проекте | Может быть общей через marketplaces |
495| Файлы в `.claude/commands/` | Файлы в `plugin-name/commands/` |
496| Hooks в `settings.json` | Hooks в `hooks/hooks.json` |
497| Необходимо вручную копировать для совместного использования | Установить с `/plugin install` |
498
499<Note>
500 После миграции удалите исходные файлы из `.claude/` для избежания дубликатов. Определения project и user `.claude/agents/` переопределяют agents plugin с тем же именем, поэтому версия plugin вступает в силу только после удаления исходных файлов. Plugin skills имеют пространство имён как `/plugin-name:skill-name`, поэтому исходный `/skill-name` и копия plugin остаются доступными, а не один переопределяет другой.
501</Note>
502
503<h2 id="next-steps">
504 Следующие шаги
505</h2>
506
507Теперь, когда вы понимаете систему plugins Claude Code, вот предлагаемые пути для различных целей:
508
509<h3 id="for-plugin-users">
510 Для пользователей plugin
511</h3>
512
513* [Обнаружение и установка plugins](/docs/ru/discover-plugins): просмотр marketplaces и установка plugins
514* [Настройка team marketplaces](/docs/ru/discover-plugins#configure-team-marketplaces): установка plugins на уровне репозитория для вашей команды
515
516<h3 id="for-plugin-developers">
517 Для разработчиков plugin
518</h3>
519
520* [Тестирование plugins с помощью evals](/docs/ru/plugin-evals): измерение того, что изменяет ваш plugin, и блокировка CI на основе этого
521* [Создание и распространение marketplace](/docs/ru/plugin-marketplaces): упаковка и совместное использование ваших plugins
522* [Справочник plugins](/docs/ru/plugins-reference): полные технические спецификации
523* Углубитесь в конкретные компоненты plugin:
524 * [Skills](/docs/ru/skills): детали разработки skill
525 * [Subagents](/docs/ru/sub-agents): конфигурация и возможности agent
526 * [Hooks](/docs/ru/hooks): обработка событий и автоматизация
527 * [MCP](/docs/ru/mcp): интеграция внешних инструментов