SpyBara
Go Premium

Documentation 2026-09-24 22:57 UTC to 2026-09-25 23:58 UTC

105 files changed +9,067 −5,684. View all changes and history on the product overview
2026
Fri 25 23:58 Thu 24 22:57 Wed 23 23:57 Tue 22 23:59 Mon 21 22:59 Sun 20 23:59 Sat 19 23:57 Fri 18 23:58 Tue 15 23:58 Mon 14 22:58 Sun 13 21:00 Sat 12 03:02 Thu 10 23:00 Wed 9 22:58 Tue 8 20:00 Tue 1 21:02

admin-setup.md +3 −3

Details

94Управляемые параметры могут заблокировать инструменты, изолировать выполнение в песочнице, ограничить серверы MCP и источники плагинов, а также контролировать, какие hooks выполняются. Каждая строка — это поверхность управления с ключами параметров, которые её контролируют.94Управляемые параметры могут заблокировать инструменты, изолировать выполнение в песочнице, ограничить серверы MCP и источники плагинов, а также контролировать, какие hooks выполняются. Каждая строка — это поверхность управления с ключами параметров, которые её контролируют.

95 95 

96| Управление | Что это делает | Ключевые параметры |96| Управление | Что это делает | Ключевые параметры |

97| :-------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------- |97| :----------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------- |

98| [Правила разрешений](/docs/ru/permissions) | Разрешить, запросить или запретить определённые инструменты и команды | `permissions.allow`, `permissions.deny` |98| [Правила разрешений](/docs/ru/permissions) | Разрешить, запросить или запретить определённые инструменты и команды | `permissions.allow`, `permissions.deny` |

99| [Блокировка разрешений](/docs/ru/permissions#managed-only-settings) | Сделать управляемые параметры [единственным источником правил разрешений](/docs/ru/settings-reference#allowmanagedpermissionrulesonly). Отключить `--dangerously-skip-permissions` | `allowManagedPermissionRulesOnly`, `permissions.disableBypassPermissionsMode` |99| [Блокировка разрешений](/docs/ru/permissions#managed-only-settings) | Сделать управляемые параметры [единственным источником правил разрешений](/docs/ru/settings-reference#allowmanagedpermissionrulesonly). Отключить `--dangerously-skip-permissions` | `allowManagedPermissionRulesOnly`, `permissions.disableBypassPermissionsMode` |

100| [Начальный режим разрешений](/docs/ru/permission-modes#which-mode-a-session-starts-in) | Выберите режим разрешений, в котором начинаются сеансы терминала ваших разработчиков, вместо встроенного начального режима разрешений, или удалите режим авто. Расширение VS Code читает `defaultMode`, который вы устанавливаете только в планах Pro, Max и Team; [Переключение режимов разрешений](/docs/ru/permission-modes#switch-permission-modes) указывает, что читает расширение | `permissions.defaultMode`, `permissions.disableAutoMode` |100| [Начальный режим разрешений](/docs/ru/permission-modes#which-mode-a-session-starts-in) | Выберите режим разрешений, в котором начинаются сеансы терминала ваших разработчиков, вместо встроенного начального режима разрешений, или удалите режим авто. Расширение VS Code читает `defaultMode`, который вы устанавливаете только в планах Pro, Max и Team; [Переключение режимов разрешений](/docs/ru/permission-modes#switch-permission-modes) указывает, что читает расширение | `permissions.defaultMode`, `permissions.disableAutoMode` |

101| [Песочница](/docs/ru/sandboxing) | Изоляция файловой системы и сети на уровне ОС с allowlist доменов | `sandbox.enabled`, `sandbox.network.allowedDomains` |101| [Песочница](/docs/ru/sandboxing) | Изоляция файловой системы и сети на уровне ОС с allowlist доменов | `sandbox.enabled`, `sandbox.network.allowedDomains` |

102| [Управляемая политика CLAUDE.md](/docs/ru/memory#deploy-organization-wide-claude-md) | Инструкции на уровне организации, загружаемые в каждый сеанс, не могут быть исключены | Файл по пути управляемой политики |102| [Управляемая политика CLAUDE.md](/docs/ru/memory#deploy-organization-wide-claude-md) | Инструкции на уровне организации, загружаемые в каждый сеанс, не могут быть исключены | Файл по пути управляемой политики |

103| [Управление сервером MCP](/docs/ru/managed-mcp) | Ограничить, какие серверы MCP пользователи могут добавлять или подключать, развернуть фиксированный набор или предоставить удалённые серверы каждому пользователю наряду с их собственными | `allowedMcpServers`, `deniedMcpServers`, `allowManagedMcpServersOnly`, `managedMcpServers` или развёрнутый файл `managed-mcp.json` |103| [Управление сервером MCP](/docs/ru/managed-mcp) | Ограничить, какие серверы MCP пользователи могут добавлять или подключать, развернуть фиксированный набор или предоставить удалённые серверы каждому пользователю наряду с их собственными | `allowedMcpServers`, `deniedMcpServers`, `allowManagedMcpServersOnly`, `managedMcpServers` или развёрнутый файл `managed-mcp.json` |

104| [Управление маркетплейсом плагинов](/docs/ru/plugin-marketplaces#managed-marketplace-restrictions) | Ограничить, из каких источников маркетплейса пользователи могут добавлять и устанавливать плагины, отклонить флаги CLI, которые загружают плагины, агентов и серверы MCP для одного запуска, блокировать [источники плагинов `command`](/docs/ru/plugin-marketplaces#command-sources) и создать allowlist маркетплейсов, плагины которых могут быть предложены | `strictKnownMarketplaces`, `blockedMarketplaces`, `disableSideloadFlags`, `disableCommandPluginSources`, `pluginSuggestionMarketplaces` |104| [Управление маркетплейсом плагинов](/docs/ru/plugins/org#restrict-what-users-can-install) | Ограничить, из каких источников маркетплейса пользователи могут добавлять и устанавливать плагины, отклонить флаги CLI, которые загружают плагины, агентов и серверы MCP для одного запуска, блокировать [источники плагинов `command`](/docs/ru/plugins/marketplace-reference#command-plugin-source) и создать allowlist маркетплейсов, плагины которых могут быть предложены | `strictKnownMarketplaces`, `blockedMarketplaces`, `disableSideloadFlags`, `disableCommandPluginSources`, `pluginSuggestionMarketplaces` |

105| [Блокировка настройки](/docs/ru/settings-reference#strictpluginonlycustomization) | Заблокировать skills, агентов, hooks и серверы MCP из пользовательских и проектных источников, чтобы они могли поступать только из плагинов или управляемых параметров. Блокировка skills также останавливает [skills, которые ваши разработчики включают на claude.ai](/docs/ru/skills#where-synced-skills-load) от синхронизации | `strictPluginOnlyCustomization` |105| [Блокировка настройки](/docs/ru/settings-reference#strictpluginonlycustomization) | Заблокировать skills, агентов, hooks и серверы MCP из пользовательских и проектных источников, чтобы они могли поступать только из плагинов или управляемых параметров. Блокировка skills также останавливает [skills, которые ваши разработчики включают на claude.ai](/docs/ru/skills#where-synced-skills-load) от синхронизации | `strictPluginOnlyCustomization` |

106| [Отключить синхронизацию claude.ai](/docs/ru/settings-reference#syncclaudeaiskills) | Остановить Claude Code от загрузки [skills](/docs/ru/skills#how-synced-skills-behave) и [плагинов](/docs/ru/plugins-reference#synced-plugins), которые ваши разработчики включают на claude.ai. Если вы отключите Skills для вашей организации на claude.ai, Claude Code останавливает синхронизацию обоих, и на v2.1.273 или позже это также удаляет те, которые он уже синхронизировал. Чтобы остановить один из них без отключения Skills, установите его ключ на `false` в управляемых параметрах | `syncClaudeAiSkills`, `syncClaudeAiPlugins` |106| [Отключить синхронизацию claude.ai](/docs/ru/settings-reference#syncclaudeaiskills) | Остановить Claude Code от загрузки [skills](/docs/ru/skills#how-synced-skills-behave) и [плагинов](/docs/ru/plugins/loading#synced-plugins), которые ваши разработчики включают на claude.ai. Если вы отключите Skills для вашей организации на claude.ai, Claude Code останавливает синхронизацию обоих, и на v2.1.273 или позже это также удаляет те, которые он уже синхронизировал. Чтобы остановить один из них без отключения Skills, установите его ключ на `false` в управляемых параметрах | `syncClaudeAiSkills`, `syncClaudeAiPlugins` |

107| [Ограничения hooks](/docs/ru/settings-reference#allowmanagedhooksonly) | Ограничить, какие hooks выполняются, и ограничить URL-адреса HTTP hooks; см. [что выполняется под `allowManagedHooksOnly`](/docs/ru/settings-reference#what-runs-under-allowmanagedhooksonly) для полного списка эффектов | `allowManagedHooksOnly`, `allowedHttpHookUrls` |107| [Ограничения hooks](/docs/ru/settings-reference#allowmanagedhooksonly) | Ограничить, какие hooks выполняются, и ограничить URL-адреса HTTP hooks; см. [что выполняется под `allowManagedHooksOnly`](/docs/ru/settings-reference#what-runs-under-allowmanagedhooksonly) для полного списка эффектов | `allowManagedHooksOnly`, `allowedHttpHookUrls` |

108| [Принудительный вход](/docs/ru/settings-reference#forceloginmethod) | Ограничить вход определённым методом или организацией Anthropic. Ограничение метода применяется во всём расширении VS Code, Agent SDK, `claude setup-token` и `/install-github-app`, а интерактивный экран входа терминала, доступный через `/login` или первоначальную настройку, предварительно выбирает метод без его принудительного применения; Claude Code проверяет организацию для входов в учётную запись claude.ai в терминале, расширении VS Code и Agent SDK, и не проверяет её для входов в Claude Console или для входа через [gateway](/docs/ru/claude-apps-gateway). До версии 2.1.212 только входы в терминал применяли любой из ключей. Когда установлено, сеансы, аутентифицированные через `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` или `apiKeyHelper`, блокируются при запуске; облачные сеансы поставщиков не затрагиваются | `forceLoginMethod`, `forceLoginOrgUUID` |108| [Принудительный вход](/docs/ru/settings-reference#forceloginmethod) | Ограничить вход определённым методом или организацией Anthropic. Ограничение метода применяется во всём расширении VS Code, Agent SDK, `claude setup-token` и `/install-github-app`, а интерактивный экран входа терминала, доступный через `/login` или первоначальную настройку, предварительно выбирает метод без его принудительного применения; Claude Code проверяет организацию для входов в учётную запись claude.ai в терминале, расширении VS Code и Agent SDK, и не проверяет её для входов в Claude Console или для входа через [gateway](/docs/ru/claude-apps-gateway). До версии 2.1.212 только входы в терминал применяли любой из ключей. Когда установлено, сеансы, аутентифицированные через `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` или `apiKeyHelper`, блокируются при запуске; облачные сеансы поставщиков не затрагиваются | `forceLoginMethod`, `forceLoginOrgUUID` |

109| [Отключить представление агента](/docs/ru/agent-view#how-background-sessions-are-hosted) | Отключить `claude agents`, `--bg`, `/background` и супервизор по требованию | `disableAgentView` |109| [Отключить представление агента](/docs/ru/agent-view#how-background-sessions-are-hosted) | Отключить `claude agents`, `--bg`, `/background` и супервизор по требованию | `disableAgentView` |

Details

281 Режим обхода разрешений (`bypassPermissions`)281 Режим обхода разрешений (`bypassPermissions`)

282</h4>282</h4>

283 283 

284Автоматически одобряет использование инструментов без запроса, за исключением случаев, перечисленных в предупреждении ниже. Hooks по-прежнему выполняются и могут блокировать операции при необходимости.284Автоматически одобряет использование инструментов без запроса, за исключением случаев, перечисленных в предупреждении ниже. Hooks по-прежнему выполняются и могут блокировать операции при необходимости. На Linux и macOS Claude Code отказывается запускаться в этом режиме от имени root или под `sudo` вне [признанной песочницы](/docs/ru/permission-modes#skip-all-checks-with-bypasspermissions-mode), и запрос завершается ошибкой перед первым ходом.

285 285 

286<Warning>286<Warning>

287 Используйте с крайней осторожностью. Claude имеет полный доступ к системе в этом режиме. Используйте только в контролируемых средах, где вы доверяете всем возможным операциям.287 Используйте с крайней осторожностью. Claude имеет полный доступ к системе в этом режиме. Используйте только в контролируемых средах, где вы доверяете всем возможным операциям.

Details

13* **Hooks**: обработчики событий, которые реагируют на использование инструментов и другие события13* **Hooks**: обработчики событий, которые реагируют на использование инструментов и другие события

14* **MCP серверы**: интеграции внешних инструментов через Model Context Protocol14* **MCP серверы**: интеграции внешних инструментов через Model Context Protocol

15 15 

16Для полной информации о структуре plugin и способах создания plugins см. [Plugins](/docs/ru/plugins).16Для полной информации о структуре plugin и способах создания plugins см. [Plugins](/docs/ru/plugins/overview).

17 17 

18<h2 id="loading-plugins">18<h2 id="loading-plugins">

19 Загрузка plugins19 Загрузка plugins


21 21 

22Загружайте plugins, предоставляя пути их локальной файловой системы в конфигурации параметров. Поле `type` должно быть `"local"`, это единственное значение, которое принимает SDK. SDK поддерживает загрузку нескольких plugins из разных мест.22Загружайте plugins, предоставляя пути их локальной файловой системы в конфигурации параметров. Поле `type` должно быть `"local"`, это единственное значение, которое принимает SDK. SDK поддерживает загрузку нескольких plugins из разных мест.

23 23 

24Чтобы использовать plugin, распространяемый через [marketplace](/docs/ru/plugin-marketplaces) или удаленный репозиторий, сначала загрузите его и предоставьте путь локальной директории. Для структуры директории, которая требуется plugin, см. [справочник структуры plugin](#plugin-structure-reference) ниже.24Чтобы использовать plugin, распространяемый через [marketplace](/docs/ru/plugins/overview) или удаленный репозиторий, сначала загрузите его и предоставьте путь локальной директории. Для структуры директории, которая требуется plugin, см. [справочник структуры plugin](#plugin-structure-reference) ниже.

25 25 

26<CodeGroup>26<CodeGroup>

27 ```typescript TypeScript theme={null}27 ```typescript TypeScript theme={null}


138 ```138 ```

139</CodeGroup>139</CodeGroup>

140 140 

141<h2 id="using-plugin-skills">141<h2 id="use-plugin-skills">

142 Использование plugin skills142 Использование plugin skills

143</h2>143</h2>

144 144 


352 См. также352 См. также

353</h2>353</h2>

354 354 

355* [Plugins](/docs/ru/plugins) - Полное руководство по разработке plugin355* [Plugins](/docs/ru/plugins/overview) - Полное руководство по разработке plugin

356* [Plugins reference](/docs/ru/plugins-reference) - Технические спецификации356* [Plugins reference](/docs/ru/plugins/manifest-reference) - Технические спецификации

357* [Commands](/docs/ru/agent-sdk/skills#dispatch-commands-by-name) - Отправка команд в SDK357* [Commands](/docs/ru/agent-sdk/skills#dispatch-commands-by-name) - Отправка команд в SDK

358* [Subagents](/docs/ru/agent-sdk/subagents) - Работа со специализированными agents358* [Subagents](/docs/ru/agent-sdk/subagents) - Работа со специализированными agents

359* [Skills](/docs/ru/agent-sdk/skills) - Использование Agent Skills359* [Skills](/docs/ru/agent-sdk/skills) - Использование Agent Skills

Details

917| `cli_path` | `str \| Path \| None` | `None` | Пользовательский путь к исполняемому файлу Claude Code CLI |917| `cli_path` | `str \| Path \| None` | `None` | Пользовательский путь к исполняемому файлу Claude Code CLI |

918| `settings` | `str \| None` | `None` | Путь к файлу параметров или встроенная строка JSON |918| `settings` | `str \| None` | `None` | Путь к файлу параметров или встроенная строка JSON |

919| `add_dirs` | `list[str \| Path]` | `[]` | Дополнительные каталоги Claude может получить доступ. SDK передает каждую запись в Claude Code как `--add-dir`, поэтому с параметром `project` setting source Claude Code также [загружает skills, commands и subagents каталога](/docs/ru/permissions#additional-directories-grant-file-access-not-configuration) |919| `add_dirs` | `list[str \| Path]` | `[]` | Дополнительные каталоги Claude может получить доступ. SDK передает каждую запись в Claude Code как `--add-dir`, поэтому с параметром `project` setting source Claude Code также [загружает skills, commands и subagents каталога](/docs/ru/permissions#additional-directories-grant-file-access-not-configuration) |

920| `env` | `dict[str, str]` | `{}` | Переменные окружения, объединенные поверх унаследованного окружения процесса. См. [Environment variables](/docs/ru/env-vars) для переменных, которые читает базовый CLI, и [Handle slow or stalled API responses](#handle-slow-or-stalled-api-responses) для переменных, связанных с тайм-аутом |920| `env` | `dict[str, str]` | `{}` | Переменные окружения, объединенные поверх унаследованного окружения процесса. См. [Environment variables](/docs/ru/env-vars) для переменных, которые читает базовый CLI, и [Handle slow or stalled API responses](#handle-slow-or-stalled-api-responses) для переменных, связанных с тайм-аутом. Установите `CLAUDE_AGENT_SDK_CLIENT_APP` для идентификации вашего приложения в заголовке User-Agent |

921| `extra_args` | `dict[str, str \| None]` | `{}` | Дополнительные аргументы CLI для прямой передачи в CLI |921| `extra_args` | `dict[str, str \| None]` | `{}` | Дополнительные аргументы CLI для прямой передачи в CLI |

922| `max_buffer_size` | `int \| None` | `None` | Максимальные байты при буферизации stdout CLI |922| `max_buffer_size` | `int \| None` | `None` | Максимальные байты при буферизации stdout CLI |

923| `debug_stderr` | `Any` | `sys.stderr` | *Устарело* - Объект, подобный файлу, для вывода отладки. Вместо этого используйте обратный вызов `stderr` |923| `debug_stderr` | `Any` | `sys.stderr` | *Устарело* - SDK игнорирует это значение. Используйте обратный вызов `stderr` для вывода stderr CLI |

924| `stderr` | `Callable[[str], None] \| None` | `None` | Функция обратного вызова для вывода stderr из CLI |924| `stderr` | `Callable[[str], None] \| None` | `None` | Функция обратного вызова для вывода stderr из CLI |

925| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | Функция обратного вызова разрешения инструмента, вызываемая только когда [permission flow](/docs/ru/agent-sdk/permissions#how-permissions-are-evaluated) переходит к подсказке. Не вызывается для вызовов, автоматически одобренных `allowed_tools`, правилами разрешения или `permission_mode`. Правило разрешения не предварительно одобряет [действия, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes#actions-no-mode-auto-approves). См. [`CanUseTool`](#canusetool) для деталей |925| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | Функция обратного вызова разрешения инструмента, вызываемая только когда [permission flow](/docs/ru/agent-sdk/permissions#how-permissions-are-evaluated) переходит к подсказке. Не вызывается для вызовов, автоматически одобренных `allowed_tools`, правилами разрешения или `permission_mode`. Правило разрешения не предварительно одобряет [действия, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes#actions-no-mode-auto-approves). См. [`CanUseTool`](#canusetool) для деталей |

926| `hooks` | `dict[HookEvent, list[HookMatcher]] \| None` | `None` | Конфигурации hooks для перехвата событий |926| `hooks` | `dict[HookEvent, list[HookMatcher]] \| None` | `None` | Конфигурации hooks для перехвата событий |

927| `user` | `str \| None` | `None` | Идентификатор пользователя |927| `user` | `str \| None` | `None` | На платформах POSIX учетная запись пользователя ОС, под которой работает подпроцесс Claude Code. Claude Code сохраняет окружение родительского процесса, включая `HOME`, и работает в `cwd` |

928| `include_partial_messages` | `bool` | `False` | Включить события потоковой передачи частичных сообщений. Когда включено, выдаются сообщения [`StreamEvent`](#streamevent) |928| `include_partial_messages` | `bool` | `False` | Включить события потоковой передачи частичных сообщений. Когда включено, выдаются сообщения [`StreamEvent`](#streamevent) |

929| `include_hook_events` | `bool` | `False` | Включить события жизненного цикла hooks в поток сообщений как объекты `HookEventMessage` |929| `include_hook_events` | `bool` | `False` | Включить события жизненного цикла hooks в поток сообщений как объекты `HookEventMessage` |

930| `forward_subagent_text` | `bool` | `False` | Переадресовать текст subagent и блоки мышления в поток сообщений. Без этой опции Claude Code выдает subagent `tool_use` и `tool_result` блоки, но не текст или мышление. Требует Python Agent SDK 0.2.140 или позже |930| `forward_subagent_text` | `bool` | `False` | Переадресовать текст subagent и блоки мышления в поток сообщений. Без этой опции Claude Code выдает subagent `tool_use` и `tool_result` блоки, но не текст или мышление. Требует Python Agent SDK 0.2.140 или позже |


1883```1883```

1884 1884 

1885| Поле | Тип | Описание |1885| Поле | Тип | Описание |

1886| :------------------------ | :------------------------ | :---------------------------------------------------------------------------------------------------------------- |1886| :------------------------ | :------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1887| `status` | `RateLimitStatus` | Текущий статус. `"allowed_warning"` означает приближение к лимиту; `"rejected"` означает, что лимит был достигнут |1887| `status` | `RateLimitStatus` | Текущий статус, один из `"allowed"`, `"allowed_warning"` или `"rejected"`. `"allowed_warning"` означает приближение к лимиту; `"rejected"` означает, что лимит был достигнут |

1888| `resets_at` | `int \| None` | Временная метка Unix, когда окно ограничения скорости сбрасывается |1888| `resets_at` | `int \| None` | Временная метка Unix, когда окно ограничения скорости сбрасывается |

1889| `rate_limit_type` | `RateLimitType \| None` | Какое окно ограничения скорости применяется |1889| `rate_limit_type` | `RateLimitType \| None` | Какое окно ограничения скорости применяется |

1890| `utilization` | `float \| None` | Доля потребленного ограничения скорости (0,0 до 1,0) |1890| `utilization` | `float \| None` | Доля потребленного ограничения скорости (0,0 до 1,0) |

Details

275Это то, что отличает Agent SDK: Claude выполняет инструменты напрямую вместо того, чтобы просить вас их реализовать.275Это то, что отличает Agent SDK: Claude выполняет инструменты напрямую вместо того, чтобы просить вас их реализовать.

276 276 

277<Note>277<Note>

278 Если вы видите ошибку аутентификации, такую как `Not logged in` или `Invalid API key`, убедитесь, что вы установили переменную окружения `ANTHROPIC_API_KEY` в оболочке, где вы запускаете вашего агента. SDK не загружает файлы `.env` автоматически. Подробнее см. в [полном руководстве по устранению неполадок](/docs/ru/troubleshooting).278 Если вы видите ошибку аутентификации, такую как `Not logged in` или `Invalid API key`, убедитесь, что вы установили переменную окружения `ANTHROPIC_API_KEY` в оболочке, где вы запускаете вашего агента. SDK не загружает файлы `.env` автоматически.

279 

280 Для причин и исправлений этих и других ошибок аутентификации см. [Ошибки аутентификации](/docs/ru/errors#authentication-errors) в справочнике по ошибкам.

279</Note>281</Note>

280 282 

281<h3 id="try-other-prompts">283<h3 id="try-other-prompts">


385* **[MCP servers](/docs/ru/agent-sdk/mcp)**: подключайтесь к базам данных, браузерам, API и другим внешним системам387* **[MCP servers](/docs/ru/agent-sdk/mcp)**: подключайтесь к базам данных, браузерам, API и другим внешним системам

386* **[Хостинг](/docs/ru/agent-sdk/hosting)**: развёртывайте агентов в Docker, облако и CI/CD388* **[Хостинг](/docs/ru/agent-sdk/hosting)**: развёртывайте агентов в Docker, облако и CI/CD

387* **[Примеры агентов](https://github.com/anthropics/claude-agent-sdk-demos)**: см. полные примеры: помощник по электронной почте, исследовательский агент и многое другое389* **[Примеры агентов](https://github.com/anthropics/claude-agent-sdk-demos)**: см. полные примеры: помощник по электронной почте, исследовательский агент и многое другое

388* **[Troubleshooting](/docs/ru/agent-sdk/troubleshooting)**: исправляйте ошибки Agent SDK по точному сообщению, которое вы видите390* **[Troubleshooting](/docs/ru/agent-sdk/troubleshooting)**: исправляйте ошибки, когда CLI не запускается или выходит, или результат приходит без структурированного вывода

Details

4 4 

5# Устранение неполадок Agent SDK5# Устранение неполадок Agent SDK

6 6 

7> Исправьте ошибки Agent SDK по точному сообщению об ошибке, с указанием причины и способа исправления для каждой ошибки в TypeScript и Python SDK.7> Исправьте ошибки Agent SDK при сбое запуска Claude Code CLI, выходе процесса CLI или получении успешного результата без структурированного вывода.

8 8 

9Записи на этой странице соответствуют ошибке, которую вы видите. Каждая указывает причину и что делать.9Эта страница охватывает ошибки Agent SDK при запуске CLI, выходе процесса CLI и структурированных выводах. Записи на этой странице соответствуют ошибке, которую вы видите. Каждая указывает причину и что делать.

10 

11Симптомы, связанные с функцией, такие как неработающий hook или неиспользуемый skill, имеют раздел устранения неполадок на странице этой функции. В таблице указан раздел или страница, которая охватывает каждый симптом:

12 

13| Симптом | Перейти к |

14| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------- |

15| Skills не найдены, skill не используется, ошибка `Invalid skill name` | [Устранение неполадок Skills](/docs/ru/agent-sdk/skills#troubleshooting) |

16| MCP server показывает статус `failed`, tools не вызываются, timeout соединения, вывод tool превышает максимально допустимое количество токенов | [Устранение неполадок MCP](/docs/ru/agent-sdk/mcp#troubleshooting) |

17| Plugin не загружается, skills плагина не отображаются | [Устранение неполадок Plugins](/docs/ru/agent-sdk/plugins#troubleshooting) |

18| Claude не делегирует subagents, agents на основе файловой системы не загружаются | [Устранение неполадок Subagents](/docs/ru/agent-sdk/subagents#troubleshooting) |

19| Опции checkpointing не распознаны, пользовательские сообщения без UUID, `No file checkpoint found`, `File rewinding is not enabled`, `ProcessTransport is not ready for writing` | [Устранение неполадок File checkpointing](/docs/ru/agent-sdk/file-checkpointing#troubleshooting) |

20| Hook не срабатывает, matcher не фильтрует как ожидается, timeout hook, tool заблокирован неожиданно, измененный input не применяется, session hooks недоступны в Python, prompts разрешения subagent умножаются, рекурсивные hook loops с subagents, `systemMessage` не отображается в выводе | [Исправление распространенных проблем](/docs/ru/agent-sdk/hooks#fix-common-issues) на странице hooks |

21| Agent, который работает на вашей машине, не работает в развернутом сервисе или контейнере | [Устранение неполадок развертывания](/docs/ru/agent-sdk/hosting#troubleshoot-deployment-failures) |

22| `Not logged in`, `Invalid API key`, `API Error`, `429`, `There's an issue with the selected model` | [Справочник по ошибкам](/docs/ru/errors#find-your-error) |

23| `CLINotFoundError`, `CLIConnectionError`, `ProcessError`, `Claude Code process exited with code N`, `Claude Code returned an error result`, `structured_output` имеет значение `None` | [Запуск CLI](#cli-startup), [Выход процесса CLI](#cli-process-exit) и [Структурированные выводы](#structured-outputs) на этой странице |

10 24 

11<h2 id="cli-startup">25<h2 id="cli-startup">

12 Запуск CLI26 Запуск CLI

agent-teams.md +1 −1

Details

118 118 

119По умолчанию используется `"in-process"`. Установите `"auto"` для включения разделенных панелей, когда вы уже работаете внутри сеанса tmux, или когда ваш терминал — это iTerm2 с установленным CLI `it2`, в противном случае используется in-process. Параметр `"tmux"` включает режим разделенных панелей и автоматически определяет, использовать ли tmux или iTerm2 на основе вашего терминала.119По умолчанию используется `"in-process"`. Установите `"auto"` для включения разделенных панелей, когда вы уже работаете внутри сеанса tmux, или когда ваш терминал — это iTerm2 с установленным CLI `it2`, в противном случае используется in-process. Параметр `"tmux"` включает режим разделенных панелей и автоматически определяет, использовать ли tmux или iTerm2 на основе вашего терминала.

120 120 

121Начиная с версии v2.1.186, установите `"iterm2"` для явного использования встроенных разделенных панелей iTerm2. Этот режим требует [`it2` CLI](https://github.com/mkusaka/it2) и показывает ошибку с командой установки, если `it2` отсутствует. Подсказка настройки, которая предлагает установить `it2` или переключиться на tmux, появляется при `"auto"` или `"tmux"`, когда ваш терминал — это iTerm2 и tmux доступен как резервный вариант.121Установите `"iterm2"` для явного использования встроенных разделенных панелей iTerm2. Этот режим требует [`it2` CLI](https://github.com/mkusaka/it2) и показывает ошибку с командой установки, если `it2` отсутствует. Подсказка настройки, которая предлагает установить `it2` или переключиться на tmux, появляется при `"auto"` или `"tmux"`, когда ваш терминал — это iTerm2 и tmux доступен как резервный вариант.

122 122 

123Чтобы переопределить значение по умолчанию, установите [`teammateMode`](/docs/ru/settings-reference#teammatemode) в `~/.claude/settings.json`:123Чтобы переопределить значение по умолчанию, установите [`teammateMode`](/docs/ru/settings-reference#teammatemode) в `~/.claude/settings.json`:

124 124 

agent-view.md +2 −2

Details

724| :----------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |724| :----------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

725| [`--settings <file-or-json>`](/docs/ru/settings) | Переопределить settings для agent view и отправленных сеансов |725| [`--settings <file-or-json>`](/docs/ru/settings) | Переопределить settings для agent view и отправленных сеансов |

726| [`--add-dir <path>`](/docs/ru/permissions#additional-directories-grant-file-access-not-configuration) | Предоставить доступ к файлам дополнительного каталога |726| [`--add-dir <path>`](/docs/ru/permissions#additional-directories-grant-file-access-not-configuration) | Предоставить доступ к файлам дополнительного каталога |

727| [`--plugin-dir <path>`](/docs/ru/plugins) | Загрузить plugin из локального каталога |727| [`--plugin-dir <path>`](/docs/ru/plugins/create#load-a-directory-or-archive-for-one-session) | Загрузить plugin из локального каталога |

728| [`--mcp-config <file-or-json>`](/docs/ru/mcp) | Загрузить MCP servers из файла конфигурации или строки JSON |728| [`--mcp-config <file-or-json>`](/docs/ru/mcp) | Загрузить MCP servers из файла конфигурации или строки JSON |

729| `--strict-mcp-config` | Использовать только MCP servers из `--mcp-config`, игнорируя другую конфигурацию MCP. См. [Exclusive control with managed-mcp.json](/docs/ru/managed-mcp#exclusive-control-with-managed-mcp-json) для того, что флаг делает под управляемым файлом MCP |729| `--strict-mcp-config` | Использовать только MCP servers из `--mcp-config`, игнорируя другую конфигурацию MCP. См. [Exclusive control with managed-mcp.json](/docs/ru/managed-mcp#exclusive-control-with-managed-mcp-json) для того, что флаг делает под управляемым файлом MCP |

730 730 


1062| v2.1.257 | Подсказка, сохранённая с помощью `Ctrl+S` внутри открытого фонового сеанса, [сохраняется с сеансом](#what-persists-across-restarts), поэтому `Ctrl+S` восстанавливает её после остановки и перезапуска процесса сеанса. До этого выпуска сохранение жило только в запущенном процессе и было потеряно, когда сеанс оставался неактивным достаточно долго, чтобы его процесс остановился, или когда он был остановлен и затем переоткрыт. |1062| v2.1.257 | Подсказка, сохранённая с помощью `Ctrl+S` внутри открытого фонового сеанса, [сохраняется с сеансом](#what-persists-across-restarts), поэтому `Ctrl+S` восстанавливает её после остановки и перезапуска процесса сеанса. До этого выпуска сохранение жило только в запущенном процессе и было потеряно, когда сеанс оставался неактивным достаточно долго, чтобы его процесс остановился, или когда он был остановлен и затем переоткрыт. |

1063| v2.1.251 | В фоновом сеансе, который не [переместился в worktree](#how-file-edits-are-isolated), Claude и подагенты, которые он порождает, могут редактировать файлы внутри связанного git worktree. |1063| v2.1.251 | В фоновом сеансе, который не [переместился в worktree](#how-file-edits-are-isolated), Claude и подагенты, которые он порождает, могут редактировать файлы внутри связанного git worktree. |

1064| v2.1.251 | Claude Code пересылает шлюз облачного провайдера, экспортированный в оболочку, из которой вы отправляете, такой как `ANTHROPIC_VERTEX_BASE_URL` или `ANTHROPIC_BEDROCK_BASE_URL` с его флагом обхода аутентификации, [рабочему процессу сеанса](#llm-gateway) на тех же условиях, что и `ANTHROPIC_BASE_URL`. До этого выпуска, если вы отправили в фон или отправили из оболочки, аутентифицированной только через такой шлюз, каждый запрос, который сеанс сделал, не удался, потому что конечная точка и флаг были удалены из его окружения. |1064| v2.1.251 | Claude Code пересылает шлюз облачного провайдера, экспортированный в оболочку, из которой вы отправляете, такой как `ANTHROPIC_VERTEX_BASE_URL` или `ANTHROPIC_BEDROCK_BASE_URL` с его флагом обхода аутентификации, [рабочему процессу сеанса](#llm-gateway) на тех же условиях, что и `ANTHROPIC_BASE_URL`. До этого выпуска, если вы отправили в фон или отправили из оболочки, аутентифицированной только через такой шлюз, каждый запрос, который сеанс сделал, не удался, потому что конечная точка и флаг были удалены из его окружения. |

1065| v2.1.251 | Когда фоновый сеанс запускается, пока другой процесс Claude Code обновляет [marketplace плагинов](/docs/ru/plugin-marketplaces), такой как родственный сеанс, запускающий [автоматическое обновление marketplace](/docs/ru/discover-plugins#configure-auto-updates), Claude Code сохраняет плагины этого marketplace доступными. До этого выпуска такой сеанс мог запуститься без каких-либо skills, agents, hooks и MCP серверов этого marketplace и оставаться таким на протяжении всего его запуска. |1065| v2.1.251 | Когда фоновый сеанс запускается, пока другой процесс Claude Code обновляет [marketplace плагинов](/docs/ru/plugins/overview), такой как родственный сеанс, запускающий [автоматическое обновление marketplace](/docs/ru/plugins/install#keep-plugins-updated), Claude Code сохраняет плагины этого marketplace доступными. До этого выпуска такой сеанс мог запуститься без каких-либо skills, agents, hooks и MCP серверов этого marketplace и оставаться таким на протяжении всего его запуска. |

1066| v2.1.248 | `Shift+Enter` в [поле отправки](#keyboard-shortcuts) вставляет новую строку, соответствуя основной подсказке, и `Ctrl+Enter` отправляет и присоединяется немедленно в терминалах, где наложение `?` перечисляет `ctrl+enter to start and open`. До этого выпуска `Shift+Enter` отправлял и присоединялся. |1066| v2.1.248 | `Shift+Enter` в [поле отправки](#keyboard-shortcuts) вставляет новую строку, соответствуя основной подсказке, и `Ctrl+Enter` отправляет и присоединяется немедленно в терминалах, где наложение `?` перечисляет `ctrl+enter to start and open`. До этого выпуска `Shift+Enter` отправлял и присоединялся. |

1067| v2.1.248 | [Удаление сеанса](#what-deleting-a-session-removes) успешно, когда коммиты worktree уже находятся на локальной копии ветви по умолчанию вашего удалённого репозитория `origin` и ваша основная проверка имеет эту ветвь; до этого выпуска удаление было отклонено с `has commits that are not pushed anywhere`. |1067| v2.1.248 | [Удаление сеанса](#what-deleting-a-session-removes) успешно, когда коммиты worktree уже находятся на локальной копии ветви по умолчанию вашего удалённого репозитория `origin` и ваша основная проверка имеет эту ветвь; до этого выпуска удаление было отклонено с `has commits that are not pushed anywhere`. |

1068| v2.1.248 | Сеанс, отправленный в фон с помощью `←` или `/background`, держит [`git worktree lock`](/docs/ru/worktrees#clean-up-subagent-and-background-session-worktrees) на его worktree, пока он работает; до этого выпуска отправка в фон освобождала блокировку, и очистка или `git worktree remove` могли удалить worktree под запущенным сеансом. |1068| v2.1.248 | Сеанс, отправленный в фон с помощью `←` или `/background`, держит [`git worktree lock`](/docs/ru/worktrees#clean-up-subagent-and-background-session-worktrees) на его worktree, пока он работает; до этого выпуска отправка в фон освобождала блокировку, и очистка или `git worktree remove` могли удалить worktree под запущенным сеансом. |

agents.md +1 −1

Details

22 22 

23* [Worktrees](/docs/ru/worktrees) дают каждому сеансу отдельный git checkout, поэтому параллельные сеансы никогда не редактируют одни и те же файлы. Используйте их для сеансов, которые вы запускаете сами. Сеанс, который вы отправляете из agent view, [переходит в свой собственный worktree перед редактированием файлов](/docs/ru/agent-view#how-file-edits-are-isolated), и подагенты, которых вы порождаете, могут получить свой собственный.23* [Worktrees](/docs/ru/worktrees) дают каждому сеансу отдельный git checkout, поэтому параллельные сеансы никогда не редактируют одни и те же файлы. Используйте их для сеансов, которые вы запускаете сами. Сеанс, который вы отправляете из agent view, [переходит в свой собственный worktree перед редактированием файлов](/docs/ru/agent-view#how-file-edits-are-isolated), и подагенты, которых вы порождаете, могут получить свой собственный.

24* [Cross-session messaging](/docs/ru/cross-session-messaging) позволяет Claude перечислять и отправлять сообщения вашим другим сеансам Claude Code на этой машине, на другой машине или [в облаке](/docs/ru/claude-code-on-the-web), поэтому сеансы, которые вы запускаете сами, могут передавать результаты и статус между собой.24* [Cross-session messaging](/docs/ru/cross-session-messaging) позволяет Claude перечислять и отправлять сообщения вашим другим сеансам Claude Code на этой машине, на другой машине или [в облаке](/docs/ru/claude-code-on-the-web), поэтому сеансы, которые вы запускаете сами, могут передавать результаты и статус между собой.

25* [`/batch`](/docs/ru/commands) — это [skill](/docs/ru/skills), который заставляет Claude разделить одно большое изменение на 5–30 worktree-изолированных подагентов, каждый из которых открывает pull request. Это упакованное использование подагентов и worktrees, а не отдельный стиль координации.25* [`/batch`](/docs/ru/commands) — это [skill](/docs/ru/skills), который заставляет Claude разделить одно большое изменение на 5–30 worktree-изолированных подагентов. Это упакованное использование подагентов и worktrees, а не отдельный стиль координации.

26 26 

27Несколько других функций запускают Claude без того, чтобы вы управляли каждым шагом, но они решают другую проблему, чем разделение работы между агентами:27Несколько других функций запускают Claude без того, чтобы вы управляли каждым шагом, но они решают другую проблему, чем разделение работы между агентами:

28 28 

Details

518 Используйте конечную точку Mantle518 Используйте конечную точку Mantle

519</h2>519</h2>

520 520 

521Mantle - это конечная точка Amazon Bedrock, которая обслуживает модели Claude через форму собственного API Anthropic, а не через Amazon Bedrock Invoke API. Она использует те же [учетные данные AWS](#2-configure-aws-credentials), [разрешения IAM](#iam-configuration) и [конфигурацию `awsAuthRefresh`](#advanced-credential-configuration).521Mantle - это конечная точка Amazon Bedrock, которая обслуживает модели Claude через форму собственного API Anthropic, а не через Amazon Bedrock Invoke API. Она использует те же [учетные данные AWS](#2-configure-aws-credentials) и [`awsAuthRefresh` конфигурацию](#advanced-credential-configuration).

522 

523Mantle имеет свои собственные действия IAM с префиксом `bedrock-mantle:`, поэтому действия `bedrock:` в [конфигурации IAM](#iam-configuration) его не охватывают. Предоставьте вашему удостоверению IAM `bedrock-mantle:CreateInference` для вывода и `bedrock-mantle:CountTokens` для подсчета токенов. См. [Making inference requests](https://docs.aws.amazon.com/bedrock/latest/userguide/inference.html) и [Counting tokens](https://docs.aws.amazon.com/bedrock/latest/userguide/count-tokens.html) в документации AWS, а также [справочник авторизации сервиса](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrockpoweredbyawsmantle.html) для каждого действия Mantle.

522 524 

523<h3 id="enable-mantle">525<h3 id="enable-mantle">

524 Включите Mantle526 Включите Mantle


670 672 

671Если `/status` не показывает `Amazon Bedrock (Mantle)` после установки `CLAUDE_CODE_USE_MANTLE`, переменная не достигает процесса. Подтвердите, что она экспортирована в оболочке, где вы запустили `claude`, или установите ее в блоке `env` вашего [файла параметров](/docs/ru/settings).673Если `/status` не показывает `Amazon Bedrock (Mantle)` после установки `CLAUDE_CODE_USE_MANTLE`, переменная не достигает процесса. Подтвердите, что она экспортирована в оболочке, где вы запустили `claude`, или установите ее в блоке `env` вашего [файла параметров](/docs/ru/settings).

672 674 

673`403` от конечной точки Mantle с действительными учетными данными означает, что вашей учетной записи AWS не был предоставлен доступ к запрошенной модели. Свяжитесь с вашей командой учетной записи AWS, чтобы запросить доступ.675Что означает `403` от конечной точки Mantle, зависит от того, называет ли ошибка действие IAM:

676 

677* Если ошибка называет действие `bedrock-mantle:`, предоставьте вашему удостоверению IAM это действие.

678* Если ошибка не называет никакого действия и ваши учетные данные действительны, вашей учетной записи AWS не был предоставлен доступ к запрошенной модели. Свяжитесь с вашей командой учетной записи AWS, чтобы запросить доступ.

674 679 

675`400`, который называет ID модели, означает, что эта модель не обслуживается на Mantle. Mantle имеет свой собственный набор моделей, отдельный от стандартного каталога Amazon Bedrock, поэтому ID профилей вывода, такие как `us.anthropic.claude-sonnet-4-6`, не будут работать. Используйте ID формата Mantle или включите [обе конечные точки](#run-mantle-alongside-the-invoke-api), чтобы Claude Code маршрутизировал каждый запрос на конечную точку, где модель доступна.680`400`, который называет ID модели, означает, что эта модель не обслуживается на Mantle. Mantle имеет свой собственный набор моделей, отдельный от стандартного каталога Amazon Bedrock, поэтому ID профилей вывода, такие как `us.anthropic.claude-sonnet-4-6`, не будут работать. Используйте ID формата Mantle или включите [обе конечные точки](#run-mantle-alongside-the-invoke-api), чтобы Claude Code маршрутизировал каждый запрос на конечную точку, где модель доступна.

676 681 

Details

334 Запустите `/plugin` для просмотра маркетплейса. Plugins добавляют skills, tools и интеграции без конфигурации.334 Запустите `/plugin` для просмотра маркетплейса. Plugins добавляют skills, tools и интеграции без конфигурации.

335</Tip>335</Tip>

336 336 

337[Plugins](/docs/ru/plugins) объединяют skills, hooks, subagents и MCP servers в единый устанавливаемый модуль из сообщества и Anthropic. Если вы работаете с типизированным языком, установите [code intelligence plugin](/docs/ru/discover-plugins#code-intelligence) для предоставления Claude точной навигации по символам и автоматического обнаружения ошибок после редактирования.337[Plugins](/docs/ru/plugins/overview) объединяют skills, hooks, subagents и MCP servers в единый устанавливаемый модуль из сообщества и Anthropic. Если вы работаете с типизированным языком, установите [code intelligence plugin](/docs/ru/plugins/code-intelligence) для предоставления Claude точной навигации по символам и автоматического обнаружения ошибок после редактирования.

338 338 

339Для руководства по выбору между skills, subagents, hooks и MCP, см. [Extend Claude Code](/docs/ru/features-overview#match-features-to-your-goal).339Для руководства по выбору между skills, subagents, hooks и MCP, см. [Extend Claude Code](/docs/ru/features-overview#match-features-to-your-goal).

340 340 


541 Зациклитесь через задачи, вызывая `claude -p` для каждой. Используйте `--allowedTools` для определения области разрешений для пакетных операций.541 Зациклитесь через задачи, вызывая `claude -p` для каждой. Используйте `--allowedTools` для определения области разрешений для пакетных операций.

542</Tip>542</Tip>

543 543 

544Для больших миграций или анализов вы можете распределить работу через много параллельных вызовов Claude. В git репозитории запустите [`/batch <instruction>`](/docs/ru/commands#all-commands) для того, чтобы Claude разделил изменение между 5-30 подагентами. Каждый подагент работает в своём worktree и открывает pull request. Чтобы управлять fan-out из вашего собственного скрипта, зациклитесь через `claude -p`:544Для больших миграций или анализов вы можете распределить работу через много параллельных вызовов Claude. Запустите [`/batch <instruction>`](/docs/ru/commands#all-commands) для того, чтобы Claude разделил изменение между 5-30 подагентами. Каждый подагент работает в своём worktree. Чтобы управлять fan-out из вашего собственного скрипта, зациклитесь через `claude -p`:

545 545 

546<Steps>546<Steps>

547 <Step title="Сгенерируйте список задач">547 <Step title="Сгенерируйте список задач">

channels.md +6 −6

Details

45 Если установка не удалась, сопоставьте сообщение, которое сообщает Claude Code:45 Если установка не удалась, сопоставьте сообщение, которое сообщает Claude Code:

46 46 

47 * `Marketplace "claude-plugins-official" not found`: добавьте маркетплейс с помощью `/plugin marketplace add anthropics/claude-plugins-official`, затем повторите попытку установки.47 * `Marketplace "claude-plugins-official" not found`: добавьте маркетплейс с помощью `/plugin marketplace add anthropics/claude-plugins-official`, затем повторите попытку установки.

48 * Плагин [не найден в маркетплейсе](/docs/ru/discover-plugins#install-plugins): проверьте имя плагина.48 * Плагин [не найден в маркетплейсе](/docs/ru/plugins/install#install-a-plugin): проверьте имя плагина.

49 49 

50 Когда установка запрашивает область установки, выберите опцию области пользователя, чтобы плагин был доступен во всех ваших проектах. Проверьте сводку установки: если она сообщает `Run /reload-plugins to activate.`, см. [Применение изменений плагина без перезагрузки](/docs/ru/discover-plugins#apply-plugin-changes-without-restarting), чтобы сделать команду настройки плагина доступной.50 Когда установка запрашивает область установки, выберите опцию области пользователя, чтобы плагин был доступен во всех ваших проектах. Проверьте сводку установки: если она сообщает `Run /reload-plugins to activate.`, см. [Применение изменений плагина без перезагрузки](/docs/ru/plugins/cli-reference#reload-plugins), чтобы сделать команду настройки плагина доступной.

51 </Step>51 </Step>

52 52 

53 <Step title="Настройте ваш токен">53 <Step title="Настройте ваш токен">


123 Если установка не удалась, сопоставьте сообщение, которое сообщает Claude Code:123 Если установка не удалась, сопоставьте сообщение, которое сообщает Claude Code:

124 124 

125 * `Marketplace "claude-plugins-official" not found`: добавьте маркетплейс с помощью `/plugin marketplace add anthropics/claude-plugins-official`, затем повторите попытку установки.125 * `Marketplace "claude-plugins-official" not found`: добавьте маркетплейс с помощью `/plugin marketplace add anthropics/claude-plugins-official`, затем повторите попытку установки.

126 * Плагин [не найден в маркетплейсе](/docs/ru/discover-plugins#install-plugins): проверьте имя плагина.126 * Плагин [не найден в маркетплейсе](/docs/ru/plugins/install#install-a-plugin): проверьте имя плагина.

127 127 

128 Когда установка запрашивает область установки, выберите опцию области пользователя, чтобы плагин был доступен во всех ваших проектах. Проверьте сводку установки: если она сообщает `Run /reload-plugins to activate.`, см. [Применение изменений плагина без перезагрузки](/docs/ru/discover-plugins#apply-plugin-changes-without-restarting), чтобы сделать команду настройки плагина доступной.128 Когда установка запрашивает область установки, выберите опцию области пользователя, чтобы плагин был доступен во всех ваших проектах. Проверьте сводку установки: если она сообщает `Run /reload-plugins to activate.`, см. [Применение изменений плагина без перезагрузки](/docs/ru/plugins/cli-reference#reload-plugins), чтобы сделать команду настройки плагина доступной.

129 </Step>129 </Step>

130 130 

131 <Step title="Настройте ваш токен">131 <Step title="Настройте ваш токен">


188 Если установка не удалась, сопоставьте сообщение, которое сообщает Claude Code:188 Если установка не удалась, сопоставьте сообщение, которое сообщает Claude Code:

189 189 

190 * `Marketplace "claude-plugins-official" not found`: добавьте маркетплейс с помощью `/plugin marketplace add anthropics/claude-plugins-official`, затем повторите попытку установки.190 * `Marketplace "claude-plugins-official" not found`: добавьте маркетплейс с помощью `/plugin marketplace add anthropics/claude-plugins-official`, затем повторите попытку установки.

191 * Плагин [не найден в маркетплейсе](/docs/ru/discover-plugins#install-plugins): проверьте имя плагина.191 * Плагин [не найден в маркетплейсе](/docs/ru/plugins/install#install-a-plugin): проверьте имя плагина.

192 192 

193 Когда установка запрашивает область установки, выберите опцию области пользователя, чтобы плагин был доступен во всех ваших проектах. Если сводка установки сообщает `Run /reload-plugins to activate.`, вы можете пропустить это здесь, потому что перезагрузка на следующем шаге подхватит плагин.193 Когда установка запрашивает область установки, выберите опцию области пользователя, чтобы плагин был доступен во всех ваших проектах. Если сводка установки сообщает `Run /reload-plugins to activate.`, вы можете пропустить это здесь, потому что перезагрузка на следующем шаге подхватит плагин.

194 </Step>194 </Step>


245 Если установка не удается, сопоставьте сообщение, которое сообщает Claude Code:245 Если установка не удается, сопоставьте сообщение, которое сообщает Claude Code:

246 246 

247 * `Marketplace "claude-plugins-official" not found`: добавьте маркетплейс с помощью `/plugin marketplace add anthropics/claude-plugins-official`, затем повторите попытку установки.247 * `Marketplace "claude-plugins-official" not found`: добавьте маркетплейс с помощью `/plugin marketplace add anthropics/claude-plugins-official`, затем повторите попытку установки.

248 * Плагин [не найден в маркетплейсе](/docs/ru/discover-plugins#install-plugins): проверьте имя плагина.248 * Плагин [не найден в маркетплейсе](/docs/ru/plugins/install#install-a-plugin): проверьте имя плагина.

249 249 

250 Когда установка запросит область установки, выберите опцию области пользователя, чтобы плагин был доступен во всех ваших проектах.250 Когда установка запросит область установки, выберите опцию области пользователя, чтобы плагин был доступен во всех ваших проектах.

251 251 

Details

191claude --dangerously-load-development-channels server:webhook191claude --dangerously-load-development-channels server:webhook

192```192```

193 193 

194Обход выполняется для каждой записи. Объединение этого флага с `--channels` не распространяет обход на записи `--channels`. Во время исследовательского превью одобренный список разрешений курируется Anthropic, поэтому ваш канал остаётся на флаге разработки во время разработки и тестирования.194Обход выполняется для каждой записи. Объединение этого флага с `--channels` не распространяет обход на записи `--channels`. Во время исследовательского превью ваш канал не находится в одобренном списке разрешений, поэтому он остаётся на флаге разработки во время разработки и тестирования.

195 195 

196<Note>196<Note>

197 Этот флаг пропускает только список разрешений. Политика организации `channelsEnabled` по-прежнему применяется. Не используйте его для запуска каналов из ненадёжных источников.197 Этот флаг пропускает только список разрешений. Политика организации `channelsEnabled` по-прежнему применяется. Не используйте его для запуска каналов из ненадёжных источников.


801 Упаковка как плагин801 Упаковка как плагин

802</h2>802</h2>

803 803 

804Чтобы сделать ваш канал устанавливаемым и общим, оберните его в [плагин](/docs/ru/plugins) и опубликуйте на [маркетплейс](/docs/ru/plugin-marketplaces). Пользователи устанавливают его с `/plugin install`, затем включают его за сеанс с `--channels plugin:<name>@<marketplace>`.804Чтобы сделать ваш канал устанавливаемым и общим, оберните его в [плагин](/docs/ru/plugins/overview) и опубликуйте на [маркетплейс](/docs/ru/plugins/overview). Пользователи устанавливают его с `/plugin install`, затем включают его за сеанс с `--channels plugin:<name>@<marketplace>`.

805 805 

806Канал, опубликованный на вашем собственном маркетплейсе, по-прежнему требует `--dangerously-load-development-channels` для запуска, так как он не находится в [одобренном списке разрешений](/docs/ru/channels#supported-channels). Список разрешений по умолчанию — это плагины каналов в `claude-plugins-official`, которые Anthropic курирует по своему усмотрению. [Встроенные формы отправки](/docs/ru/plugins#submit-your-plugin-to-the-community-marketplace) добавляют плагины на маркетплейс сообщества, который не находится в списке разрешений каналов.806Канал, опубликованный на вашем собственном маркетплейсе, по-прежнему требует `--dangerously-load-development-channels` для запуска, так как он не находится в [одобренном списке разрешений](/docs/ru/channels#supported-channels). Список разрешений по умолчанию — это плагины каналов в `claude-plugins-official`. [Встроенные формы отправки](/docs/ru/plugins/publish#submit-to-the-community-marketplace) добавляют плагины на маркетплейс сообщества, который не находится в списке разрешений каналов.

807 807 

808Если вы работаете с контактом партнёра Anthropic, свяжитесь с ними, чтобы согласовать официальный список маркетплейса. На планах Team и Enterprise администратор может вместо этого включить ваш плагин в список [`allowedChannelPlugins`](/docs/ru/channels#restrict-which-channel-plugins-can-run) организации, который заменяет список разрешений Anthropic по умолчанию.808Если вы работаете с контактом партнёра Anthropic, свяжитесь с ними, чтобы согласовать официальный список маркетплейса. На планах Team и Enterprise администратор может вместо этого включить ваш плагин в список [`allowedChannelPlugins`](/docs/ru/channels#restrict-which-channel-plugins-can-run) организации, который заменяет список разрешений Anthropic по умолчанию.

809 809 


814* [Каналы](/docs/ru/channels) для установки и использования Telegram, Discord, iMessage или демонстрации fakechat, а также для включения каналов для организации Team или Enterprise814* [Каналы](/docs/ru/channels) для установки и использования Telegram, Discord, iMessage или демонстрации fakechat, а также для включения каналов для организации Team или Enterprise

815* [Рабочие реализации каналов](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins) для полного кода сервера с потоками спаривания, инструментами ответа и вложениями файлов815* [Рабочие реализации каналов](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins) для полного кода сервера с потоками спаривания, инструментами ответа и вложениями файлов

816* [MCP](/docs/ru/mcp) для базового протокола, который реализуют серверы каналов816* [MCP](/docs/ru/mcp) для базового протокола, который реализуют серверы каналов

817* [Плагины](/docs/ru/plugins) для упаковки вашего канала, чтобы пользователи могли установить его с `/plugin install`817* [Плагины](/docs/ru/plugins/overview) для упаковки вашего канала, чтобы пользователи могли установить его с `/plugin install`

Details

54 Перемотка прошлой очищенной беседы54 Перемотка прошлой очищенной беседы

55</h4>55</h4>

56 56 

57Если вы запустили `/clear` ранее в том же процессе Claude Code, меню перемотки показывает дополнительную запись в верхней части списка с меткой `/resume <session-id> (previous session)`. Выберите её, чтобы возобновить беседу, которая была активна до запуска `/clear`. Запись доступна до тех пор, пока вы не выйдете из Claude Code или не возобновите другой сеанс, и требует Claude Code v2.1.191 или более поздней версии. В более ранних версиях запустите `/resume` и выберите предыдущий сеанс из списка.57Если вы запустили `/clear` ранее в том же процессе Claude Code, меню перемотки показывает дополнительную запись в верхней части списка с меткой `/resume <session-id> (previous session)`. Выберите её, чтобы возобновить беседу, которая была активна до запуска `/clear`. Запись доступна до тех пор, пока вы не выйдете из Claude Code или не возобновите другой сеанс.

58 58 

59<h4 id="guide-a-summary">59<h4 id="guide-a-summary">

60 Руководство для суммирования60 Руководство для суммирования

Details

452 Параметры, которые блокировки не охватывают452 Параметры, которые блокировки не охватывают

453</h4>453</h4>

454 454 

455Четыре параметра, предоставленные родителем, проходят фильтр даже со всеми пятью установленными блокировками. В соответствии с параметром первого выигрыша по умолчанию, значение администратора, которое блокирует родителя, находится в источнике администратора с наивысшим приоритетом, кроме `allowedMcpServers` пока [блокировка MCP сервера](#lock-behavior-across-sources) включена. В соответствии с согласием на объединение `managedSourcesBehavior`, [как Claude Code объединяет управляемые источники](/docs/ru/managed-settings#how-claude-code-combines-managed-sources) говорит, какое значение источника применяется вместо этого.455Шесть параметров, предоставленных родителем, проходят фильтр даже со всеми пятью установленными блокировками. В соответствии с параметром первого выигрыша по умолчанию, значение администратора, которое блокирует родителя, находится в источнике администратора с наивысшим приоритетом, кроме `allowedMcpServers` пока [блокировка MCP сервера](#lock-behavior-across-sources) включена. В соответствии с согласием на объединение `managedSourcesBehavior`, [как Claude Code объединяет управляемые источники](/docs/ru/managed-settings#how-claude-code-combines-managed-sources) говорит, какое значение источника применяется вместо этого.

456 456 

457* **`forceLoginOrgUUID`**: Claude Code соблюдает значение, предоставленное родителем, когда источник администратора с наивысшим приоритетом не устанавливает UUID организации. Вход в шлюз не проверяет этот ключ, поэтому он имеет значение только для флотов, которые также используют входы Anthropic первой стороны. UUID организации в источнике администратора с наивысшим приоритетом блокирует значение родителя и является тем, который Claude Code применяет, поэтому установите `forceLoginOrgUUID` там.457* **`forceLoginOrgUUID`**: Claude Code соблюдает значение, предоставленное родителем, когда источник администратора с наивысшим приоритетом не устанавливает UUID организации. Вход в шлюз не проверяет этот ключ, поэтому он имеет значение только для флотов, которые также используют входы Anthropic первой стороны. UUID организации в источнике администратора с наивысшим приоритетом блокирует значение родителя и является тем, который Claude Code применяет, поэтому установите `forceLoginOrgUUID` там.

458* **`allowedMcpServers`**: Claude Code соблюдает список разрешённых, предоставленный родителем, когда источник администратора с наивысшим приоритетом не устанавливает один. `allowManagedMcpServersOnly` не блокирует его, потому что блокировка применяет список, который выигрывает, как управляемое значение, включая список, предоставленный родителем, когда источник администратора с наивысшим приоритетом не устанавливает один. Список в источнике администратора с наивысшим приоритетом блокирует список родителя и является списком, который Claude Code применяет, поэтому установите `allowedMcpServers` там, рядом с блокировкой. До v2.1.223 значение для любого ключа в любом источнике администратора блокировало значение родителя.458* **`allowedMcpServers`**: Claude Code соблюдает список разрешённых, предоставленный родителем, когда источник администратора с наивысшим приоритетом не устанавливает один. `allowManagedMcpServersOnly` не блокирует его, потому что блокировка применяет список, который выигрывает, как управляемое значение, включая список, предоставленный родителем, когда источник администратора с наивысшим приоритетом не устанавливает один. Список в источнике администратора с наивысшим приоритетом блокирует список родителя и является списком, который Claude Code применяет, поэтому установите `allowedMcpServers` там, рядом с блокировкой. До v2.1.223 значение для любого ключа в любом источнике администратора блокировало значение родителя.

459* **`availableModels`**: Claude Code соблюдает список моделей, предоставленный родителем, когда выигрывающий управляемый источник не устанавливает один. Если ваш флот ограничивает модели, установите `availableModels` в выигрывающем источнике.459* **`availableModels`**: Claude Code соблюдает список моделей, предоставленный родителем, когда выигрывающий управляемый источник не устанавливает один. Если ваш флот ограничивает модели, установите `availableModels` в выигрывающем источнике.

460* **`strictKnownMarketplaces`**: Claude Code соблюдает список разрешённых маркетплейсов плагинов, предоставленный родителем, когда выигрывающий управляемый источник не устанавливает один. Если ваш флот ограничивает маркетплейсы, установите `strictKnownMarketplaces` в выигрывающем источнике. Требует Claude Code v2.1.282 или позже.

461* **`blockedMarketplaces`**: список блокировки маркетплейсов, предоставленный родителем, проходит и добавляется к любому списку блокировки, который устанавливает управляемый источник, так как список блокировки может только дополнительно ограничить. Требует Claude Code v2.1.282 или позже.

460* **`strictPluginOnlyCustomization`**: этот ключ проходит фильтр независимо от любой блокировки, и он заставляет Claude Code игнорировать собственную настройку разработчика, включая защитные hooks. Никакая блокировка не блокирует его.462* **`strictPluginOnlyCustomization`**: этот ключ проходит фильтр независимо от любой блокировки, и он заставляет Claude Code игнорировать собственную настройку разработчика, включая защитные hooks. Никакая блокировка не блокирует его.

461 463 

462<h3 id="connect-claude-desktop">464<h3 id="connect-claude-desktop">

Details

37* [`managed`](#managed): управляемые политики параметров по группам IdP37* [`managed`](#managed): управляемые политики параметров по группам IdP

38* [`telemetry`](#telemetry): пересылка OTLP на ваш стек наблюдаемости38* [`telemetry`](#telemetry): пересылка OTLP на ваш стек наблюдаемости

39* [`access_control`, `limits`, `timeouts`, `rate_limits`](#http-tuning): разрешение/запрет IP, ограничения размера запроса, время до первого байта upstream и лимиты входа по IP39* [`access_control`, `limits`, `timeouts`, `rate_limits`](#http-tuning): разрешение/запрет IP, ограничения размера запроса, время до первого байта upstream и лимиты входа по IP

40* [`load_test_mode`](#load_test_mode): нагрузочное тестирование gateway без вызова поставщика модели

40 41 

41<h2 id="secret-expansion">42<h2 id="secret-expansion">

42 Расширение секретов43 Расширение секретов


1012| `limits` | `max_request_bytes` | 32 MiB | Максимальный входящий размер тела запроса; запросы большего размера получают `413` перед буферизацией тела. Повысьте для больших запросов файлов или изображений. |1013| `limits` | `max_request_bytes` | 32 MiB | Максимальный входящий размер тела запроса; запросы большего размера получают `413` перед буферизацией тела. Повысьте для больших запросов файлов или изображений. |

1013| `limits` | `max_request_header_bytes` | не установлено | Когда установлено, заголовки большего размера возвращают `431` |1014| `limits` | `max_request_header_bytes` | не установлено | Когда установлено, заголовки большего размера возвращают `431` |

1014| `limits` | `max_url_length` | не установлено | Когда установлено, слишком длинный URL возвращает `414` |1015| `limits` | `max_url_length` | не установлено | Когда установлено, слишком длинный URL возвращает `414` |

1015| `timeouts` | `upstream_ttfb_ms` | 120000 | Максимальное ожидание заголовков ответа upstream (время до первого байта). Тело ответа затем потоком без ограничения по стене часов. Применяется к прямому пути upstream Anthropic; каждый другой поставщик ограничен собственным timeout SDK поставщика. |1016| `timeouts` | `upstream_ttfb_ms` | 120000 | Максимальное ожидание заголовков ответа upstream (время до первого байта). Тело ответа затем потоком без ограничения по стене часов. Применяется к прямому пути upstream Anthropic; для всех остальных поставщиков gateway ждёт до одного часа, пока не начнётся ответ. |

1016| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Ограничение скорости по IP на неаутентифицированной конечной точке авторизации устройства. Повысьте для большой организации за общим исходящим IP или NAT. [Большие развёртывания](/docs/ru/claude-apps-gateway-deploy#large-rollouts) показывает, как его размер. Эти ограничения применяются только к потоку входа грантов устройств, а не к выводу `/v1/messages`. См. [Сопротивление перебору пользовательского кода](/docs/ru/claude-apps-gateway-deploy#user-code-brute-force-resistance). |1017| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Ограничение скорости по IP на неаутентифицированной конечной точке авторизации устройства. Повысьте для большой организации за общим исходящим IP или NAT. [Большие развёртывания](/docs/ru/claude-apps-gateway-deploy#large-rollouts) показывает, как его размер. Эти ограничения применяются только к потоку входа грантов устройств, а не к выводу `/v1/messages`. См. [Сопротивление перебору пользовательского кода](/docs/ru/claude-apps-gateway-deploy#user-code-brute-force-resistance). |

1017| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | Ограничение скорости по IP на отправки `user_code` в `/device`. Это то, что останавливает кого-то от угадывания кода другого разработчика. [Большие развёртывания](/docs/ru/claude-apps-gateway-deploy#large-rollouts) показывает, как далеко его повысить. |1018| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | Ограничение скорости по IP на отправки `user_code` в `/device`. Это то, что останавливает кого-то от угадывания кода другого разработчика. [Большие развёртывания](/docs/ru/claude-apps-gateway-deploy#large-rollouts) показывает, как далеко его повысить. |

1018 1019 


1027 1028 

1028За таким фронтенд, установите [`listen.trusted_proxies`](#listen) сначала, чтобы gateway видел реальные адреса клиентов, и держите gateway и всё впереди него недостижимыми из публичного интернета независимо.1029За таким фронтенд, установите [`listen.trusted_proxies`](#listen) сначала, чтобы gateway видел реальные адреса клиентов, и держите gateway и всё впереди него недостижимыми из публичного интернета независимо.

1029 1030 

1031<h3 id="load_test_mode">

1032 `load_test_mode`

1033</h3>

1034 

1035Блок `load_test_mode` позволяет вам нагрузочно тестировать gateway без вызова поставщика модели. Пока он включён, gateway строит и подписывает каждый запрос поставщика как обычно, отбрасывает его вместо отправки и потоком консервированный ответ обратно через его нормальный путь ответа. Ответ — это текст-заполнитель, который начинается с предложения, говорящего, что это консервированный.

1036 

1037Требует v2.1.283 или позже. Более ранние версии отказываются запускаться, когда ключ установлен, поэтому обновите каждую реплику перед добавлением блока и удалите его перед откатом.

1038 

1039Пример ниже включает режим с значениями по умолчанию, ответ из 750 выходных токенов, потоком в течение примерно 10 секунд:

1040 

1041```yaml theme={null}

1042load_test_mode:

1043 enabled: true

1044 reply_tokens: 750 # примерно сколько токенов текста несёт каждый консервированный ответ

1045 reply_seconds: 9.5 # как долго потоком ответ занимает

1046```

1047 

1048| Поле | Обязательно | Описание |

1049| --------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |

1050| `enabled` | Да | `true` включает режим. `false` сохраняет ваши числа в файле с режимом выключенным. Gateway отказывается запускаться, если блок присутствует без него. |

1051| `reply_tokens` | Нет | По умолчанию `750`. Примерно сколько токенов текста несёт каждый консервированный ответ, целое число от 1 до 100000. |

1052| `reply_seconds` | Нет | По умолчанию `9.5`. Как долго потоком ответ занимает, от 0 до 600. `0` отправляет весь ответ сразу. Ответ на запрос без потока всегда приходит сразу. |

1053 

1054Нагрузочный тест в этом режиме охватывает gateway, ваш Postgres и всё впереди gateway. Он не охватывает ограничения поставщика, скорость или сетевой путь.

1055 

1056Пока режим включён, запрос может нести заголовок `x-load-test-user`, содержащий целое число до семи цифр, и gateway считает каждое число отдельным разработчиком с электронной почтой и группами разработчика, чей токен пришёл с запросом. Дайте развёртыванию нагрузочного теста свою собственную пустую базу данных, потому что gateway отказывается запускаться с режимом включённым против базы данных, в которой любой разработчик уже потратил что-то.

1057 

1058<Warning>

1059 Никогда не включайте это для gateway, который используют разработчики. Каждый запрос получает консервированный ответ и ни одна модель не вызывается. Gateway регистрирует предупреждение `load_test_mode is on` при загрузке и отмечает каждое событие аудита `inference` [audit event](/docs/ru/claude-apps-gateway-deploy#logs) с `load_test: true` пока режим включён.

1060</Warning>

1061 

1030<h2 id="complete-example">1062<h2 id="complete-example">

1031 Полный пример1063 Полный пример

1032</h2>1064</h2>

1033 1065 

1034Эта полная справочная конфигурация охватывает каждый основной раздел; блоки [HTTP tuning](#http-tuning) сохраняют свои значения по умолчанию. Скопируйте её, удалите то, что вам не нужно, и заполните свои значения. Конфигурация в [Quickstart](/docs/ru/claude-apps-gateway#quickstart) — это минимальная версия этого.1066Этот полный справочный конфиг использует каждый основной раздел; [блоки настройки HTTP](#http-tuning) сохраняют свои значения по умолчанию. Скопируйте его, удалите то, что вам не нужно, и заполните свои значения. Конфиг в [Quickstart](/docs/ru/claude-apps-gateway#quickstart) — это минимальная версия этого.

1035 1067 

1036```yaml gateway.yaml theme={null}1068```yaml gateway.yaml theme={null}

1037# Запустите с:1069# Запуск с помощью:

1038# claude gateway --config gateway.yaml1070# claude gateway --config gateway.yaml

1039#1071#

1040# Многословность операционного журнала управляется переменной окружения1072# Подробность операционного журнала контролируется переменной окружения

1041# CLAUDE_GATEWAY_LOG_LEVEL (debug | info | warn | error; по умолчанию info). debug1073# CLAUDE_GATEWAY_LOG_LEVEL (debug | info | warn | error; по умолчанию info). debug

1042# также регистрирует имена утверждений в каждом id_token для диагностики groups_claim.1074# также логирует имена утверждений в каждом id_token для диагностики groups_claim.

1043# Это не влияет на события аудита, которые всегда выпускаются.1075# Это не влияет на события аудита, которые всегда генерируются.

1044 1076 

1045listen:1077listen:

1046 host: 0.0.0.01078 host: 0.0.0.0


1059 client_secret: ${OIDC_CLIENT_SECRET}1091 client_secret: ${OIDC_CLIENT_SECRET}

1060 allowed_email_domains:1092 allowed_email_domains:

1061 - example.com1093 - example.com

1062 # Требуется, когда издатель — сервер организации Okta, чьи id_tokens1094 # Требуется, когда издатель является сервером организации Okta, чьи id_tokens

1063 # могут опускать электронную почту и группы; gateway заполняет их из /userinfo.1095 # могут опускать email и groups; шлюз заполняет их из /userinfo.

1064 userinfo_fallback: true1096 userinfo_fallback: true

1065 # allowed_groups: [claude-code-users]1097 # allowed_groups: [claude-code-users]

1066 # Okta выпускает группы только, когда область `groups` запрашивается и1098 # Okta выдает groups только когда запрашивается область `groups` и

1067 # фильтр утверждения groups приложения их разрешает. Политика подрядчиков ниже1099 # фильтр утверждения groups приложения их разрешает. Политика contractors ниже

1068 # соответствует группам, поэтому область запрашивается здесь.1100 # соответствует groups, поэтому область запрашивается здесь.

1069 scopes: [openid, profile, email, offline_access, groups]1101 scopes: [openid, profile, email, offline_access, groups]

1070 # extra_auth_params: { access_type: offline, prompt: consent } # Google1102 # extra_auth_params: { access_type: offline, prompt: consent } # Google

1071 # groups_claim: groups # Роли приложения Entra: используйте `roles`1103 # groups_claim: groups # Роли приложения Entra: используйте `roles`


1080 # max_connections: 51112 # max_connections: 5

1081 # connect_timeout_seconds: 51113 # connect_timeout_seconds: 5

1082 1114 

1083# Включает /v1/organizations/spend_limits (отражает публичный Admin API Anthropic)1115# Включает /v1/organizations/spend_limits (зеркалирует Admin API Anthropic)

1084# и применение расходов для каждого разработчика на /v1/messages. Опустите для отключения.1116# и принудительное соблюдение лимитов расходов на разработчика на /v1/messages. Опустите для отключения.

1085# Сами ограничения устанавливаются через admin API, а не здесь.1117# Сами лимиты устанавливаются через admin API, а не здесь.

1086# admin:1118# admin:

1087# write_keys:1119# write_keys:

1088# - { id: terraform, key: "${GATEWAY_ADMIN_WRITE_KEY_TF}" }1120# - { id: terraform, key: "${GATEWAY_ADMIN_WRITE_KEY_TF}" }


1098# enforcement:1130# enforcement:

1099# fail_closed_on_error: false1131# fail_closed_on_error: false

1100 1132 

1101# Измеряйте по договорным ставкам вместо цены USD в прайс-листе. Требует admin: или политику1133# Нагрузочное тестирование этого развертывания без вызова поставщика модели. Никогда на

1102# managed:. С managed:, те же ставки также идут подписанным клиентам.1134# шлюзе, который используют разработчики: каждый запрос получает заготовленный ответ.

1135# load_test_mode:

1136# enabled: true

1137# # reply_tokens: 750

1138# # reply_seconds: 9.5

1139 

1140# Измеряйте по договорным ставкам вместо цены USD по прайс-листу. Требует admin: или

1141# managed: политику. С managed:, те же ставки также идут подписанным клиентам.

1103# Ставки ниже — это заполнители, а не реальные договорные цены.1142# Ставки ниже — это заполнители, а не реальные договорные цены.

1104# pricing:1143# pricing:

1105# multiplier: 0.851144# multiplier: 0.85


1154 - match: { groups: [contractors] }1193 - match: { groups: [contractors] }

1155 cli:1194 cli:

1156 availableModels: [claude-haiku-4-5]1195 availableModels: [claude-haiku-4-5]

1157 # Ограничьте опцию Default picker на availableModels вместо1196 # Ограничьте опцию Default picker доступными моделями вместо

1158 # значения по умолчанию уровня, поэтому подрядчики не получают 400 по умолчанию.1197 # значения по умолчанию уровня, чтобы подрядчики не получили 400 по умолчанию.

1159 enforceAvailableModels: true1198 enforceAvailableModels: true

1160 # allow автоматически одобряет эти инструменты; это не блокирует остальное.1199 # allow автоматически одобряет эти инструменты; это не блокирует остальное.

1161 # Добавьте правила deny для ограничения инструментов.1200 # Добавьте правила deny для ограничения инструментов.

Details

219* **[Применение ограничения расходов](/docs/ru/claude-apps-gateway-spend-limits#postgres-availability)**: по умолчанию не удается открыто во время сбоя, поэтому inference все еще течет; переключите его на отказ закрыто, если вы предпочитаете блокировать, чем работать без учета219* **[Применение ограничения расходов](/docs/ru/claude-apps-gateway-spend-limits#postgres-availability)**: по умолчанию не удается открыто во время сбоя, поэтому inference все еще течет; переключите его на отказ закрыто, если вы предпочитаете блокировать, чем работать без учета

220* **Готовность**: `/readyz` сообщает о неготовности во время сбоя, поэтому оркестраторы, которые управляют трафиком на готовность, удаляют каждую реплику из ротации сразу. В этой топологии весь трафик, включая inference, который шлюз все еще может обслуживать, не удается на балансировщике нагрузки до восстановления Postgres. Зонд живучести на `/healthz` продолжает проходить, поэтому реплики не перезапускаются. Укажите зонд готовности на `/healthz` вместо этого, если вы предпочитаете, чтобы вошедшие разработчики продолжали работать через сбой хранилища; стоимость в том, что новые входы не удаются против реплики, которая все еще сообщает о готовности.220* **Готовность**: `/readyz` сообщает о неготовности во время сбоя, поэтому оркестраторы, которые управляют трафиком на готовность, удаляют каждую реплику из ротации сразу. В этой топологии весь трафик, включая inference, который шлюз все еще может обслуживать, не удается на балансировщике нагрузки до восстановления Postgres. Зонд живучести на `/healthz` продолжает проходить, поэтому реплики не перезапускаются. Укажите зонд готовности на `/healthz` вместо этого, если вы предпочитаете, чтобы вошедшие разработчики продолжали работать через сбой хранилища; стоимость в том, что новые входы не удаются против реплики, которая все еще сообщает о готовности.

221 221 

222Если ваш IdP выходит из строя, существующие сеансы работают до `ttl_hours`, а новые входы и обновления не удаются. Установите более длительный `ttl_hours`, если ваш IdP имеет частые окна обслуживания.222Если ваш IdP выходит из строя, существующие сеансы работают до `ttl_hours`, новые входы не удаются, и обновление сеанса получает ответ повторить попытку и проходит после восстановления IdP. Установите более длительный `ttl_hours`, если ваш IdP имеет частые окна обслуживания.

223 223 

224<h3 id="jwt-secret-rotation">224<h3 id="jwt-secret-rotation">

225 Ротация JWT secret225 Ротация JWT secret

Details

218Телепортирование проверяет эти требования перед возобновлением сессии. Если какое-либо требование не выполнено, вы увидите ошибку или будете приглашены разрешить проблему.218Телепортирование проверяет эти требования перед возобновлением сессии. Если какое-либо требование не выполнено, вы увидите ошибку или будете приглашены разрешить проблему.

219 219 

220| Требование | Детали |220| Требование | Детали |

221| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |221| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

222| Чистое состояние git | Ваш рабочий каталог должен не иметь незафиксированных изменений. Телепортирование предложит вам спрятать изменения, если необходимо. |222| Чистое состояние git | Ваш рабочий каталог должен не иметь незафиксированных изменений. Телепортирование предложит вам спрятать изменения, если необходимо. |

223| Правильный репозиторий | Вы должны запустить `--teleport` из checkout того же репозитория, не форка. Если вы запустите его из checkout другого репозитория, Claude Code показывает ошибку, которая называет как репозиторий сессии, так и ваш checkout. Если Claude Code не может разобрать ваш удалённый сервер в имя хоста, например псевдоним SSH хоста, такой как `git@work:owner/repo.git`, он просит вас подтвердить, и принимает checkout, когда владелец и имя репозитория удалённого сервера совпадают с репозиторием сессии. |223| Правильный репозиторий | Вы должны запустить `--teleport` из checkout того же репозитория, не форка. Если вы запустите его из checkout другого репозитория, Claude Code показывает ошибку, которая называет как репозиторий сессии, так и репозиторий вашего checkout. До версии 2.1.219 ошибка не называла репозиторий вашего checkout. Если Claude Code не может разобрать ваш удалённый сервер в имя хоста, например псевдоним SSH хоста, такой как `git@work:owner/repo.git`, он просит вас подтвердить, и принимает checkout, когда владелец и имя репозитория удалённого сервера совпадают с репозиторием сессии. |

224| Доступность ветки | Ветка из облачной сессии должна быть отправлена на удалённый сервер. Телепортирование автоматически получает и извлекает её. |224| Доступность ветки | Ветка из облачной сессии должна быть отправлена на удалённый сервер. Телепортирование автоматически получает и извлекает её. |

225| Один и тот же аккаунт | Вы должны быть аутентифицированы на том же аккаунте claude.ai, который использовался в облачной сессии. |225| Один и тот же аккаунт | Вы должны быть аутентифицированы на том же аккаунте claude.ai, который использовался в облачной сессии. |

226 226 

Details

1451Обозреватель охватывает файлы, которые вы создаёте и редактируете. Несколько связанных файлов находятся в других местах:1451Обозреватель охватывает файлы, которые вы создаёте и редактируете. Несколько связанных файлов находятся в других местах:

1452 1452 

1453| Файл | Расположение | Назначение |1453| Файл | Расположение | Назначение |

1454| ----------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |1454| ----------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

1455| `managed-settings.json` | Уровень системы, варьируется в зависимости от ОС | Параметры, установленные предприятием, которые вы не можете переопределить, за исключением [узких исключений](/docs/ru/settings#security-keys-where-the-stricter-value-applies). См. [где сохранить файл](/docs/ru/managed-settings#deploy-a-managed-settings-file) и [какой управляемый источник использует Claude Code](/docs/ru/managed-settings#precedence-within-the-managed-tier). |1455| `managed-settings.json` | Уровень системы, варьируется в зависимости от ОС | Параметры, установленные предприятием, которые вы не можете переопределить, за исключением [узких исключений](/docs/ru/settings#security-keys-where-the-stricter-value-applies). См. [где сохранить файл](/docs/ru/managed-settings#deploy-a-managed-settings-file) и [какой управляемый источник использует Claude Code](/docs/ru/managed-settings#precedence-within-the-managed-tier). |

1456| `CLAUDE.local.md` | Корень проекта | Ваши личные предпочтения для этого проекта, загружаемые вместе с CLAUDE.md. Создайте его вручную и добавьте в `.gitignore`. |1456| `CLAUDE.local.md` | Корень проекта | Ваши личные предпочтения для этого проекта, загружаемые вместе с CLAUDE.md. Создайте его вручную и добавьте в `.gitignore`. |

1457| `AGENTS.md` | Корень проекта, `.claude/` или любой каталог | Инструкции проекта, которые вы пишете для агентов AI кодирования. Claude Code может [загрузить его](/docs/ru/memory#agents-md) самостоятельно или вместе с `CLAUDE.md`. |1457| `AGENTS.md` | Корень проекта, `.claude/` или любой каталог | Инструкции проекта, которые вы пишете для агентов AI кодирования. Claude Code может [загрузить его](/docs/ru/memory#agents-md) самостоятельно или вместе с `CLAUDE.md`. |

1458| Установленные plugins | `~/.claude/plugins` | Клонированные маркетплейсы, установленные версии plugins, запись установки `installed_plugins.json`, и данные для каждого plugin, управляемые командами `claude plugin`. Plugins [синхронизированные с вашей учётной записью claude.ai](/docs/ru/plugins-reference#synced-plugins) загружаются в `~/.claude/plugins/synced/`. Для plugin, установленного из маркетплейса с источником [`command`](/docs/ru/plugin-marketplaces#command-sources) в режиме ссылки, Claude Code хранит здесь ссылки вместо копии, и файлы plugin остаются в каталоге, который выводит команда. Источник `command` требует Claude Code v2.1.229 или позже. Plugin, указанный относительным путём в локальном маркетплейсе каталога, также [загружается на месте](/docs/ru/plugins-reference#plugin-caching-and-file-resolution) из своего исходного каталога, а не из копии кэша. См. [кэширование plugins](/docs/ru/plugins-reference#plugin-caching-and-file-resolution) для того, как очищаются заброшенные версии. |1458| Установленные plugins | `~/.claude/plugins` | Клонированные маркетплейсы, установленные версии plugins, запись установки `installed_plugins.json`, и данные для каждого plugin, управляемые командами `claude plugin`. Plugins [синхронизированные с вашей учётной записью claude.ai](/docs/ru/plugins/loading#synced-plugins) загружаются в `~/.claude/plugins/synced/`. Для plugin, установленного из маркетплейса с источником [`command`](/docs/ru/plugins/marketplace-reference#command-plugin-source) в режиме ссылки, Claude Code хранит здесь ссылки вместо копии, и файлы plugin остаются в каталоге, который выводит команда. Источник `command` требует Claude Code v2.1.229 или позже. Plugin, указанный относительным путём в локальном маркетплейсе каталога, также [загружается на месте](/docs/ru/plugins/loading#find-plugins-on-disk) из своего исходного каталога, а не из копии кэша. См. [кэширование plugins](/docs/ru/plugins/loading#find-plugins-on-disk) для того, как очищаются заброшенные версии. |

1459 1459 

1460`~/.claude` также содержит данные, которые Claude Code записывает во время работы: стенограммы, историю подсказок, снимки файлов, кэши и журналы. См. [данные приложения](#application-data) ниже.1460`~/.claude` также содержит данные, которые Claude Code записывает во время работы: стенограммы, историю подсказок, снимки файлов, кэши и журналы. См. [данные приложения](#application-data) ниже.

1461 1461 


1529| `output-styles/*.md` | `name`, `description`, `keep-coding-instructions`, `force-for-plugin` | [Output style frontmatter](/docs/ru/output-styles#frontmatter) |1529| `output-styles/*.md` | `name`, `description`, `keep-coding-instructions`, `force-for-plugin` | [Output style frontmatter](/docs/ru/output-styles#frontmatter) |

1530| `rules/*.md` | `paths` | [Rule frontmatter](/docs/ru/memory#rules-frontmatter-reference) |1530| `rules/*.md` | `paths` | [Rule frontmatter](/docs/ru/memory#rules-frontmatter-reference) |

1531 1531 

1532Agents shipped in a [plugin](/docs/ru/plugins-reference#plugin-agent-frontmatter) honor a subset of the subagent fields.1532Agents shipped in a [plugin](/docs/ru/plugins/components#agents) honor a subset of the subagent fields.

1533 1533 

1534<h2 id="troubleshoot-configuration">1534<h2 id="troubleshoot-configuration">

1535 Устранение неполадок конфигурации1535 Устранение неполадок конфигурации


1568| `feedback-bundles/` | Отредактированные архивы стенограмм, написанные `/feedback` на сторонних поставщиков или когда не настроены учётные данные Anthropic, для отправки команде вашего аккаунта Anthropic |1568| `feedback-bundles/` | Отредактированные архивы стенограмм, написанные `/feedback` на сторонних поставщиков или когда не настроены учётные данные Anthropic, для отправки команде вашего аккаунта Anthropic |

1569| `feedback/drafts/` | Очередь [Claude-drafted feedback](/docs/ru/tools-reference#sendfeedback-tool-behavior), ожидающая вашего рассмотрения в `/feedback`. Очищается после `cleanupPeriodDays` или 30 дней, в зависимости от того, что меньше. Когда очередь достигает лимита в 10 черновиков, Claude Code удаляет самый старый черновик, чтобы освободить место. |1569| `feedback/drafts/` | Очередь [Claude-drafted feedback](/docs/ru/tools-reference#sendfeedback-tool-behavior), ожидающая вашего рассмотрения в `/feedback`. Очищается после `cleanupPeriodDays` или 30 дней, в зависимости от того, что меньше. Когда очередь достигает лимита в 10 черновиков, Claude Code удаляет самый старый черновик, чтобы освободить место. |

1570| `usage-data/` | `report.html` и копии отчётов с временными метками, написанные [`/insights`](/docs/ru/costs#analyze-your-usage-patterns), плюс кэшированные данные анализа для каждого сеанса, используемые для их построения |1570| `usage-data/` | `report.html` и копии отчётов с временными метками, написанные [`/insights`](/docs/ru/costs#analyze-your-usage-patterns), плюс кэшированные данные анализа для каждого сеанса, используемые для их построения |

1571| `skills/.trash/`, `plugins/.trash/` | [Skills](/docs/ru/skills#how-synced-skills-behave) и [plugins](/docs/ru/plugins-reference#synced-plugins), которые синхронизация claude.ai удалила, например после отключения одного на claude.ai или остановки синхронизации. Файлы остаются здесь, чтобы вы могли их восстановить, пока очистка их не удалит |1571| `skills/.trash/`, `plugins/.trash/` | [Skills](/docs/ru/skills#how-synced-skills-behave) и [plugins](/docs/ru/plugins/loading#synced-plugins), которые синхронизация claude.ai удалила, например после отключения одного на claude.ai или остановки синхронизации. Файлы остаются здесь, чтобы вы могли их восстановить, пока очистка их не удалит |

1572| `todos/`, `statsig/`, `logs/` | Устаревшие директории из более старых версий. Больше не записываются. Очистка удаляет их содержимое, а затем пустую директорию. |1572| `todos/`, `statsig/`, `logs/` | Устаревшие директории из более старых версий. Больше не записываются. Очистка удаляет их содержимое, а затем пустую директорию. |

1573 1573 

1574Файлы сеансов в `sessions/`, автоматическая память и стенограммы Claude Desktop и Cowork следуют своим собственным правилам хранения:1574Файлы сеансов в `sessions/`, автоматическая память и стенограммы Claude Desktop и Cowork следуют своим собственным правилам хранения:


1678Вы также можете удалить любой из путей данных приложения выше вручную, за исключением [файлов состояния для сохранения](#state-files-to-keep). Новые сеансы не затронуты. Таблица ниже показывает, что вы потеряете для прошлых сеансов.1678Вы также можете удалить любой из путей данных приложения выше вручную, за исключением [файлов состояния для сохранения](#state-files-to-keep). Новые сеансы не затронуты. Таблица ниже показывает, что вы потеряете для прошлых сеансов.

1679 1679 

1680| Удалить | Вы потеряете |1680| Удалить | Вы потеряете |

1681| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1681| -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

1682| `~/.claude/projects/` | Возобновление, продолжение и перемотка для прошлых сеансов, и автоматическую память для каждого проекта |1682| `~/.claude/projects/` | Возобновление, продолжение и перемотка для прошлых сеансов, и автоматическую память для каждого проекта |

1683| `~/.claude/history.jsonl` | Отзыв подсказки стрелки вверх, поиск истории `Ctrl+R` и завершение команды оболочки `!` |1683| `~/.claude/history.jsonl` | Отзыв подсказки стрелки вверх, поиск истории `Ctrl+R` и завершение команды оболочки `!` |

1684| `~/.claude/paste-cache/` | Вставленный текст в вспомненных подсказках; см. [вставка большого содержимого](/docs/ru/terminal-config#paste-large-content) |1684| `~/.claude/paste-cache/` | Вставленный текст в вспомненных подсказках; см. [вставка большого содержимого](/docs/ru/terminal-config#paste-large-content) |


1692| `~/.claude/cache/changelog.md` | Ничего. Обновляется в фоне. |1692| `~/.claude/cache/changelog.md` | Ничего. Обновляется в фоне. |

1693| `~/.claude/policy-limits.json` | Ничего. Обновляется автоматически. |1693| `~/.claude/policy-limits.json` | Ничего. Обновляется автоматически. |

1694| `~/.claude/tasks/` | Списки задач, которые возобновлённый сеанс подхватит |1694| `~/.claude/tasks/` | Списки задач, которые возобновлённый сеанс подхватит |

1695| `~/.claude/skills/.trash/`, `~/.claude/plugins/.trash/` | Возможность восстановления [синхронизированных skills](/docs/ru/skills#how-synced-skills-behave) и [синхронизированных plugins](/docs/ru/plugins-reference#synced-plugins), которые Claude Code удалил |1695| `~/.claude/skills/.trash/`, `~/.claude/plugins/.trash/` | Возможность восстановления [синхронизированных skills](/docs/ru/skills#how-synced-skills-behave) и [синхронизированных plugins](/docs/ru/plugins/loading#synced-plugins), которые Claude Code удалил |

1696| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Ничего, видимого пользователю |1696| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Ничего, видимого пользователю |

1697| `~/.claude/todos/`, `~/.claude/statsig/`, `~/.claude/logs/`, `~/.claude/image-cache/` | Ничего. Устаревшие директории, не записываемые текущими версиями. |1697| `~/.claude/todos/`, `~/.claude/statsig/`, `~/.claude/logs/`, `~/.claude/image-cache/` | Ничего. Устаревшие директории, не записываемые текущими версиями. |

1698 1698 

Details

240 240 

241Claude Code также запускает эту команду при запуске, когда не может проверить ваши существующие учетные данные AWS, и показывает вывод команды на панели `Authentication` до завершения входа.241Claude Code также запускает эту команду при запуске, когда не может проверить ваши существующие учетные данные AWS, и показывает вывод команды на панели `Authentication` до завершения входа.

242 242 

243С настроенным `awsAuthRefresh` запустите `/login`, выберите **3rd-party platform**, затем выберите **Claude Platform on AWS · refresh credentials** в разделе **Using 3rd-party platforms**. Claude Code запускает настроенную команду и повторно читает ваши учетные данные AWS без перезагрузки. Этот вариант требует Claude Code v2.1.186 или более поздней версии.243С настроенным `awsAuthRefresh` запустите `/login`, выберите **3rd-party platform**, затем выберите **Claude Platform on AWS · refresh credentials** в разделе **Using 3rd-party platforms**. Claude Code запускает настроенную команду и повторно читает ваши учетные данные AWS без перезагрузки.

244 244 

245**Вариант B: ключ API рабочей области**245**Вариант B: ключ API рабочей области**

246 246 

claude-projects.md +40 −38

Details

10 Projects находятся в публичной бета-версии на планах Pro и Max и постепенно развертываются, начиная с аккаунтов, которые использовали [облачные сеансы](/docs/ru/claude-code-on-the-web) и не имеют существующих проектов в claude.ai chat или Cowork. Они еще недоступны на планах Team и Enterprise. Если **Projects** не отображается на боковой панели в [claude.ai/code](https://claude.ai/code) или на вкладке Code [настольного приложения](/docs/ru/desktop), развертывание еще не достигло вашего аккаунта, и вы можете [присоединиться к списку ожидания](https://claude.com/form/projects). [Запуск агентов параллельно](/docs/ru/agents) содержит список того, что вы можете использовать в то время.10 Projects находятся в публичной бета-версии на планах Pro и Max и постепенно развертываются, начиная с аккаунтов, которые использовали [облачные сеансы](/docs/ru/claude-code-on-the-web) и не имеют существующих проектов в claude.ai chat или Cowork. Они еще недоступны на планах Team и Enterprise. Если **Projects** не отображается на боковой панели в [claude.ai/code](https://claude.ai/code) или на вкладке Code [настольного приложения](/docs/ru/desktop), развертывание еще не достигло вашего аккаунта, и вы можете [присоединиться к списку ожидания](https://claude.com/form/projects). [Запуск агентов параллельно](/docs/ru/agents) содержит список того, что вы можете использовать в то время.

11</Note>11</Note>

12 12 

13Project — это один текущий разговор, в котором Claude координирует поток связанной работы для вас. Вы говорите ему, что нужно сделать, и он запускает поток для каждой задачи. Каждый поток — это [облачный сеанс](/docs/ru/claude-code-on-the-web): Claude Code, работающий в облаке, а не на вашей машине. Потоки работают параллельно и продолжают работу после того, как вы закроете ноутбук, и вы можете проверить их и направить их со своего телефона.13Project — это один текущий разговор, в котором Claude координирует поток связанной работы для вас. Вы говорите ему, что нужно сделать, и он запускает поток для каждой задачи.

14 

15Каждый поток обычно является [облачным сеансом](/docs/ru/claude-code-on-the-web): Claude Code, работающий в облаке, а не на вашей машине. Когда задаче требуется что-то, что есть только на вашем компьютере, вы можете попросить Claude запустить этот поток на вашем компьютере вместо этого через [Remote Control](/docs/ru/remote-control). Потоки работают параллельно и вы можете проверить их и направить их со своего телефона. Облачные потоки продолжают работу после того, как вы закроете ноутбук.

14 16 

15Без проекта запуск нескольких сеансов означает самостоятельное координирование: вы решаете, над чем работает каждый, повторяете одинаковый контекст в начале каждого и проверяете, какой завершился или требует ответа. С проектом вместо этого вы:17Без проекта запуск нескольких сеансов означает самостоятельное координирование: вы решаете, над чем работает каждый, повторяете одинаковый контекст в начале каждого и проверяете, какой завершился или требует ответа. С проектом вместо этого вы:

16 18 

17* **Отправляете работу в одно место**: вставляйте отчет об ошибке, трассировку стека или список задач в разговор, когда они появляются. Claude запускает поток для каждого элемента работы или передает его потоку, уже работающему в этой области, и отвечает на быстрые вопросы на месте.19* **Отправляете работу в одно место**: вставляйте отчет об ошибке, трассировку стека или список задач в разговор, когда они появляются. Claude запускает поток для каждого элемента работы или передает его потоку, уже работающему в этой области, и отвечает на быстрые вопросы на месте.

18* **Устанавливаете контекст один раз**: каждый новый поток начинается с репозиториев, инструкций и памяти проекта, поэтому правило, которое вы указываете один раз, например какую ветку выбрать, достигает все потоки.20* **Устанавливаете контекст один раз**: каждый новый поток начинается с инструкций проекта, поэтому правило, которое вы указываете один раз, например какую ветку выбрать, достигает все потоки.

19* **Уходите и возвращаетесь к завершенной работе**: когда вы вернетесь через час или на следующее утро, панель **Overview** показывает, какие потоки завершены, какие pull request готовы к проверке и какой поток ждет вашего ответа.21* **Уходите и возвращаетесь к завершенной работе**: когда вы вернетесь через час или на следующее утро, панель **Overview** показывает, какие потоки завершены, какие pull request готовы к проверке и какой поток ждет вашего ответа.

20 22 

21Если вы уже знаете работу, которую хотите запустить в проекте, переходите прямо к [Создание проекта](#create-a-project).23Если вы уже знаете работу, которую хотите запустить в проекте, переходите прямо к [Создание проекта](#create-a-project).


37 Когда что-то другое подходит лучше39 Когда что-то другое подходит лучше

38</h3>40</h3>

39 41 

40Потоки работают с репозиториями GitHub и с файлами, папками и папками Google Drive, которые вы загружаете в проект, а не с файлами или инструментами, которые существуют только на вашей машине. Что-то другое подходит лучше в этих случаях:42Потоки работают с репозиториями GitHub и с файлами, папками и папками Google Drive, которые вы загружаете в проект, а не с файлами или инструментами, которые существуют только на вашей машине. Если задача требует вашей машины, попросите Claude запустить её поток там через [Remote Control](/docs/ru/remote-control). [Ограничения](#limitations) перечисляют, что для этого требуется. Что-то другое подходит лучше в этих случаях:

41 43 

42* **Одна задача, которая подходит в сеанс**: "Исправить нестабильный тест входа." Запустите [облачный сеанс](/docs/ru/claude-code-on-the-web) самостоятельно.44* **Одна задача, которая подходит в сеанс**: "Исправить нестабильный тест входа." Запустите [облачный сеанс](/docs/ru/claude-code-on-the-web) самостоятельно.

43* **Работа, которая требует инструментов или сервисов, которые может достичь только ваша машина**: локальная база данных, эмулятор устройства, API за вашим VPN. Используйте локальный сеанс или [agent view](/docs/ru/agent-view) для запуска нескольких одновременно. Если работе нужны только локальные файлы, загрузите их в проект вместо этого.45* **Работа, где каждая задача требует вашей машины**: локальная база данных, эмулятор устройства или API за вашим VPN. Используйте локальный сеанс или [agent view](/docs/ru/agent-view) для запуска нескольких одновременно. Если работе нужны только локальные файлы, загрузите их в проект вместо этого.

44* **Одна задача, которая повторяется по расписанию без разговора вокруг нее**: "Отправить отчет о зависимостях каждый понедельник." Создайте [routine](/docs/ru/routines) самостоятельно.46* **Одна задача, которая повторяется по расписанию без разговора вокруг нее**: "Отправить отчет о зависимостях каждый понедельник." Создайте [routine](/docs/ru/routines) самостоятельно.

45* **Несколько человек дают Claude работу и направляют его вместе в канале Slack**: см. [Claude Tag](https://claude.com/docs/claude-tag/overview).47* **Несколько человек дают Claude работу и направляют его вместе в канале Slack**: см. [Claude Tag](https://claude.com/docs/claude-tag/overview).

46 48 


53Проект — это один координирующий разговор с Claude плюс потоки, которые он запускает для выполнения работы. Вот его части:55Проект — это один координирующий разговор с Claude плюс потоки, которые он запускает для выполнения работы. Вот его части:

54 56 

55* **Разговор проекта**: один долгоживущий сеанс, где Claude действует как координатор. Он берет то, что вы отправляете, решает, что становится потоком, и отслеживает каждый запущенный поток. Он видит, что потоки сообщают обратно, а не каждый шаг, который они предпринимают.57* **Разговор проекта**: один долгоживущий сеанс, где Claude действует как координатор. Он берет то, что вы отправляете, решает, что становится потоком, и отслеживает каждый запущенный поток. Он видит, что потоки сообщают обратно, а не каждый шаг, который они предпринимают.

56* **Потоки**: рабочие. Каждый — это отдельный [облачный сеанс](/docs/ru/claude-code-on-the-web) с собственным контекстным окном, который выполняет одну часть работы на собственной ветке, открывает pull request, когда работа это требует, и сообщает обратно в разговор, когда завершается.58* **Потоки**: рабочие. Каждый — это отдельный сеанс с собственным контекстным окном, который выполняет одну часть работы и сообщает обратно в разговор, когда завершается. Облачный поток работает на собственной ветке и открывает pull request, когда работа это требует.

57* **С чего начинает каждый поток**:59* **С чего начинает каждый облачный поток**:

58 * Репозитории и файлы проекта, плюс его [инструкции и память](#give-a-project-standing-context)60 * Репозитории и файлы проекта, плюс его [инструкции и память](#give-a-project-standing-context)

59 * `CLAUDE.md` и skills в [каждом из репозиториев проекта](#what-threads-pick-up-from-your-repositories), и в проекте с одним репозиторием также правила разрешений и hooks этого репозитория61 * `CLAUDE.md` и skills в [каждом из репозиториев проекта](#what-threads-pick-up-from-your-repositories), и в проекте с одним репозиторием также правила разрешений и hooks этого репозитория

60 * [Connectors](#get-skills-plugins-connectors-and-tools-into-threads) на вашем аккаунте claude.ai62 * [Connectors](#get-skills-plugins-connectors-and-tools-into-threads) на вашем аккаунте claude.ai

61 * [Облачная среда](#choose-an-environment-for-threads), которая устанавливает его сетевой доступ, переменные окружения, учетные данные API и установленные инструменты63 * [Облачная среда](#choose-an-environment-for-threads), которая устанавливает его сетевой доступ, переменные окружения, учетные данные API и установленные инструменты

62* **Панель Overview**: где вы [видите все потоки сразу](#see-what-needs-you-in-overview) и какие из них вам нужны. Его другие вкладки — **Library** для добавленных вами файлов и файлов, созданных потоками, **Pull requests** для открытых потоками, и **Routines** для запланированной работы в проекте.64* **Панель Overview**: где вы [видите все потоки сразу](#see-what-needs-you-in-overview) и какие из них вам нужны. Его другие вкладки — **Library** для добавленных вами файлов и файлов, созданных потоками, **Pull requests** для открытых потоками, и **Routines** для запланированной работы в проекте.

63 65 

64Потоки не берут ничего из настройки Claude Code на вашей машине. [Получить skills, plugins, connectors и инструменты в потоки](#get-skills-plugins-connectors-and-tools-into-threads) охватывает, как дать им то, что им иначе не хватает.66Облачные потоки не берут ничего из настройки Claude Code на вашей машине. [Получить skills, plugins, connectors и инструменты в потоки](#get-skills-plugins-connectors-and-tools-into-threads) охватывает, как дать им то, что им иначе не хватает.

65 67 

66Вот как эти части соединяются, от вас через разговор к потокам, выполняющим работу, с **Overview**, отслеживающим их состояние:68Вот как эти части соединяются, от вас через разговор к потокам, выполняющим работу, с **Overview**, отслеживающим их состояние:

67 69 

68<Frame>70<Frame>

69 <img src="https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview.svg?fit=max&auto=format&n=e8CLbxM17eD7cAiv&q=85&s=dbf446f69f0bbdb9961d21af207cb93b" className="dark:hidden" alt="Диаграмма проекта. Вы пишете в разговор проекта, где Claude отвечает или запускает поток. Каждый поток — это облачный сеанс, работающий на собственной ветке и pull request. Панель Overview перечисляет потоки по состоянию, например готовы к проверке, ожидают вас и работают." width="600" height="250" data-path="images/claude-projects-overview.svg" />71 <img src="https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview.svg?fit=max&auto=format&n=e8CLbxM17eD7cAiv&q=85&s=dbf446f69f0bbdb9961d21af207cb93b" className="dark:hidden" alt="Диаграмма проекта. Вы пишете в разговор проекта, где Claude отвечает или запускает поток. Каждый облачный поток работает на собственной ветке и открывает pull request. Панель Overview перечисляет потоки по состоянию, например готовы к проверке, ожидают вас и работают." width="600" height="250" data-path="images/claude-projects-overview.svg" />

70 72 

71 <img src="https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview-dark.svg?fit=max&auto=format&n=e8CLbxM17eD7cAiv&q=85&s=549a5ba9fea8433729babc37a1f6e9c8" className="hidden dark:block" alt="Диаграмма проекта. Вы пишете в разговор проекта, где Claude отвечает или запускает поток. Каждый поток — это облачный сеанс, работающий на собственной ветке и pull request. Панель Overview перечисляет потоки по состоянию, например готовы к проверке, ожидают вас и работают." width="600" height="250" data-path="images/claude-projects-overview-dark.svg" />73 <img src="https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview-dark.svg?fit=max&auto=format&n=e8CLbxM17eD7cAiv&q=85&s=549a5ba9fea8433729babc37a1f6e9c8" className="hidden dark:block" alt="Диаграмма проекта. Вы пишете в разговор проекта, где Claude отвечает или запускает поток. Каждый облачный поток работает на собственной ветке и открывает pull request. Панель Overview перечисляет потоки по состоянию, например готовы к проверке, ожидают вас и работают." width="600" height="250" data-path="images/claude-projects-overview-dark.svg" />

72</Frame>74</Frame>

73 75 

74<h2 id="create-a-project">76<h2 id="create-a-project">


89Перед созданием проекта проверьте ваш план, настройку GitHub и то, что нужно работе для достижения:91Перед созданием проекта проверьте ваш план, настройку GitHub и то, что нужно работе для достижения:

90 92 

91* **План**: вы на Pro или Max и **Projects** отображается на вашей боковой панели.93* **План**: вы на Pro или Max и **Projects** отображается на вашей боковой панели.

92* **GitHub, если проект будет работать с кодом**: ваш код находится на github.com, а не на GitHub Enterprise Server, GitLab или Bitbucket, ваш подключенный аккаунт GitHub имеет доступ на push к нему, и Claude GitHub App установлено на нем. Если вы подключили GitHub с помощью [`/web-setup`](/docs/ru/web-quickstart#connect-from-your-terminal), этот токен позволяет вашим другим облачным сеансам достичь репозитория, но недостаточно для потоков проекта, которым нужно Claude GitHub App. [Настройка доступа GitHub](#set-up-github-access) содержит шаги.94* **GitHub, если проект будет работать с кодом**: ваш код находится на github.com, а не на GitHub Enterprise Server, GitLab или Bitbucket, ваш подключенный аккаунт GitHub имеет доступ на push к нему, и Claude GitHub App установлено на нем. Если вы подключили GitHub с помощью [`/web-setup`](/docs/ru/web-quickstart#connect-from-your-terminal), этот токен позволяет вашим другим облачным сеансам достичь репозитория, но недостаточно для облачных потоков проекта, которым нужно Claude GitHub App. [Настройка доступа GitHub](#set-up-github-access) содержит шаги.

93* **Сеть, учетные данные и инструменты**: они поступают из [облачной среды](#choose-an-environment-for-threads) проекта. Среда по умолчанию уже достигает [общих реестров пакетов](/docs/ru/cloud-environments#default-allowed-domains), поэтому проверьте это только если работе нужны другие домены, секрет или инструмент, который не предустановлен. Если работе нужен MCP server, проверьте, что он отображается как подключенный в ваших [claude.ai connectors](https://claude.ai/customize/connectors).95* **Сеть, учетные данные и инструменты**: для облачных потоков они поступают из [облачной среды](#choose-an-environment-for-threads) проекта. Среда по умолчанию уже достигает [общих реестров пакетов](/docs/ru/cloud-environments#default-allowed-domains), поэтому проверьте это только если работе нужны другие домены, секрет или инструмент, который не предустановлен. Если работе нужен MCP server, проверьте, что он отображается как подключенный в ваших [claude.ai connectors](https://claude.ai/customize/connectors).

94 96 

95<h3 id="start-a-new-project-from-scratch">97<h3 id="start-a-new-project-from-scratch">

96 Запуск нового проекта с нуля98 Запуск нового проекта с нуля


279 Предоставление проекту постоянного контекста281 Предоставление проекту постоянного контекста

280</h2>282</h2>

281 283 

282Память проекта, инструкции проекта и репозитории, файлы и среда проекта переносят контекст через потоки. Вы устанавливаете каждый один раз и он применяется к каждому новому потоку.284Память проекта, инструкции проекта и репозитории, файлы и среда проекта переносят контекст через потоки. Вы устанавливаете каждый один раз.

283 285 

284| Контекст | Что он переносит | Как вы его устанавливаете |286| Контекст | Что он переносит | Как вы его устанавливаете |

285| :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |287| :------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

286| Память проекта | Заметки, которые Claude хранит о проекте, такие как требования, решения и ошибки, хранящиеся как файлы. Каждый поток читает файл индекса `MEMORY.md` при запуске и открывает другие файлы, когда они ему нужны | Попросите Claude в разговоре проекта или любом потоке запомнить требование, решение или ошибку, или забыть одно. Читайте, редактируйте и удаляйте файлы в **Project settings > Memory** |288| Память проекта | Заметки, которые Claude хранит о проекте, такие как требования, решения и ошибки, хранящиеся как файлы. Каждый облачный поток читает файл индекса `MEMORY.md` при запуске и открывает другие файлы, когда они ему нужны | Попросите Claude в разговоре проекта или любом облачном потоке запомнить требование, решение или ошибку, или забыть одно. Читайте, редактируйте и удаляйте файлы в **Project settings > Memory** |

287| Инструкции проекта | Текст, отправляемый каждому новому потоку и Claude в разговоре проекта, до 16 000 символов. [Напишите инструкции проекта](#write-project-instructions) охватывает, что в него поместить | **Project settings > Memory > Project instructions**, или попросите Claude изменить инструкции |289| Инструкции проекта | Текст, отправляемый каждому новому потоку и Claude в разговоре проекта, до 16 000 символов. [Напишите инструкции проекта](#write-project-instructions) охватывает, что в него поместить | **Project settings > Memory > Project instructions**, или попросите Claude изменить инструкции |

288| Репозитории, файлы и среда | Репозитории, которые клонирует каждый поток, папки и файлы, которые каждый поток может читать в `/mnt/project-files`, и облачная среда, в которой работают потоки | Репозитории и среда в **Project settings > Environment**, или попросите Claude в разговоре добавить репозиторий в проект. Файлы и папки из **Add** на вкладке **Library** в **Overview** |290| Репозитории, файлы и среда | Репозитории, которые клонирует каждый облачный поток, папки и файлы, которые он может читать в `/mnt/project-files`, и облачная среда, в которой он работает | Репозитории и среда в **Project settings > Environment**, или попросите Claude в разговоре добавить репозиторий в проект. Файлы и папки из **Add** на вкладке **Library** в **Overview** |

289 291 

290**Project settings > Memory** перечисляет эти файлы в разделе **Auto memory**, потому что Claude пишет их сам, пока работает в проекте. Они отделены от [auto memory](/docs/ru/memory), которую Claude Code хранит на вашей машине, даже несмотря на то, что оба используют индекс `MEMORY.md`. Память проекта также отделена от файлов `CLAUDE.md` в репозиториях проекта. Каждый поток все еще читает эти файлы `CLAUDE.md` из своего клона при запуске, поэтому поместите инструкции о репозитории в его `CLAUDE.md` и заметки о проекте в память проекта.292**Project settings > Memory** перечисляет эти файлы в разделе **Auto memory**, потому что Claude пишет их сам, пока работает в проекте. Они отделены от [auto memory](/docs/ru/memory), которую Claude Code хранит на вашей машине, даже несмотря на то, что оба используют индекс `MEMORY.md`. Память проекта также отделена от файлов `CLAUDE.md` в репозиториях проекта. Каждый облачный поток все еще читает эти файлы `CLAUDE.md` из своего клона при запуске, поэтому поместите инструкции о репозитории в его `CLAUDE.md` и заметки о проекте в память проекта.

291 293 

292<h3 id="write-project-instructions">294<h3 id="write-project-instructions">

293 Напишите инструкции проекта295 Напишите инструкции проекта


312- Не объединяйте, не выполняйте force-push и не изменяйте конфигурацию CI без моего запроса в потоке.314- Не объединяйте, не выполняйте force-push и не изменяйте конфигурацию CI без моего запроса в потоке.

313```315```

314 316 

315Правила об одном репозитории, такие как его команды сборки, принадлежат `CLAUDE.md` этого репозитория, который каждый поток читает, когда репозиторий является частью проекта. Когда работа идет, когда вы исправляете поток, также скажите Claude запомнить исправление: оно идет в [память проекта](#give-a-project-standing-context) и более поздние потоки начинают с ним.317Правила об одном репозитории, такие как его команды сборки, принадлежат `CLAUDE.md` этого репозитория, который каждый облачный поток читает, когда репозиторий является частью проекта. Когда работа идет, когда вы исправляете поток, также скажите Claude запомнить исправление: оно идет в [память проекта](#give-a-project-standing-context) и более поздние облачные потоки начинают с ним.

316 318 

317<h3 id="decide-which-repositories-to-add">319<h3 id="decide-which-repositories-to-add">

318 Решение, какие репозитории добавить320 Решение, какие репозитории добавить

319</h3>321</h3>

320 322 

321Репозитории, которые вы добавляете в проект, поступают со всем в них, их код, `CLAUDE.md` и skills, в каждом потоке. Репозитории, которые вы не добавляете, все еще в пределах досягаемости: поток может добавить один к себе, когда его задача это требует. Большинство проектов используют оба:323Репозитории, которые вы добавляете в проект, поступают со всем в них, их код, `CLAUDE.md` и skills, в каждом облачном потоке. Репозитории, которые вы не добавляете, все еще в пределах досягаемости: облачный поток может добавить один к себе, когда его задача это требует. Большинство проектов используют оба:

322 324 

323* **Добавьте его в проект**, в диалоге **New project**, в **Project settings > Environment**, или попросив Claude в разговоре добавить его в проект. Каждый поток с этого момента клонирует его и начинает с его `CLAUDE.md` и skills загруженными, независимо от того, касается ли задача его. Переход от одного репозитория к нескольким также изменяет то, что потоки берут из `.claude/settings.json` каждого репозитория; см. [Что потоки берут из ваших репозиториев](#what-threads-pick-up-from-your-repositories).325* **Добавьте его в проект**, в диалоге **New project**, в **Project settings > Environment**, или попросив Claude в разговоре добавить его в проект. Каждый облачный поток с этого момента клонирует его и начинает с его `CLAUDE.md` и skills загруженными, независимо от того, касается ли задача его. Переход от одного репозитория к нескольким также изменяет то, что потоки берут из `.claude/settings.json` каждого репозитория; см. [Что потоки берут из ваших репозиториев](#what-threads-pick-up-from-your-repositories).

324* **Оставьте его и позвольте потокам добавить его, когда это необходимо.** Поток, чья задача требует репозитория, который проект не имеет, может добавить его к себе, и заметка в потоке говорит, что он был добавлен только в этот поток. Клон происходит в середине задачи, поэтому `CLAUDE.md` и skills этого репозитория не были там, когда поток начался. Следующий поток начинает без него снова. Репозиторий, который добавляет поток, требует те же [предварительные условия](#check-the-prerequisites), что и репозиторий проекта: Claude GitHub App установлено на нем и доступ на push из вашего аккаунта GitHub.326* **Оставьте его и позвольте потокам добавить его, когда это необходимо.** Облачный поток, чья задача требует репозитория, который проект не имеет, может добавить его к себе, и заметка в потоке говорит, что он был добавлен только в этот поток. Клон происходит в середине задачи, поэтому `CLAUDE.md` и skills этого репозитория не были там, когда поток начался. Следующий поток начинает без него. Репозиторий, добавленный таким образом, требует те же [предварительные условия](#check-the-prerequisites), что и репозиторий проекта: Claude GitHub App установлено на нем и доступ на push из вашего аккаунта GitHub.

325 327 

326Проект вообще не требует репозитория. Его потоки все еще могут исследовать, писать документы и писать и запускать код в собственной песочнице, и они доставляют файлы на вкладку **Library**. Поток там также может добавить репозиторий к себе, когда задача это требует.328Проект вообще не требует репозитория. Его облачные потоки все еще могут исследовать, писать документы и писать и запускать код в собственной песочнице, и они доставляют файлы на вкладку **Library**. Любой из его облачных потоков все еще может добавить репозиторий к себе, когда задача это требует.

327 329 

328Когда проект имеет репозитории, Claude может добавлять только репозитории от владельца GitHub, который проект уже использует, независимо от того, добавляет ли он один в проект или поток добавляет один к себе. Чтобы привести репозиторий от другого владельца, добавьте его в проект самостоятельно в **Project settings > Environment**.330Когда проект имеет репозитории, Claude может добавлять только репозитории от владельца GitHub, который проект уже использует, независимо от того, добавляет ли он один в проект или поток добавляет один к себе. Чтобы привести репозиторий от другого владельца, добавьте его в проект самостоятельно в **Project settings > Environment**.

329 331 

330Для проекта, охватывающего много репозиториев, например одну функцию с кодом сервера, веб, мобильного и рабочего стола, добавьте один или два репозитория, которые почти каждая задача касается, и назовите остальные в [инструкциях проекта](#write-project-instructions), чтобы Claude знал, где находится остальной код. Потоки затем начинают маленькими и вытягивают другие репозитории только для задач, которые их требуют.332Для проекта, охватывающего много репозиториев, например одну функцию с кодом сервера, веб, мобильного и рабочего стола, добавьте один или два репозитория, которые почти каждая задача касается, и назовите остальные в [инструкциях проекта](#write-project-instructions), чтобы Claude знал, где находится остальной код. Облачные потоки затем начинают маленькими и вытягивают другие репозитории только для задач, которые их требуют.

331 333 

332<h3 id="what-threads-pick-up-from-your-repositories">334<h3 id="what-threads-pick-up-from-your-repositories">

333 Что потоки берут из ваших репозиториев335 Что потоки берут из ваших репозиториев

334</h3>336</h3>

335 337 

336Каждый поток клонирует каждый репозиторий в проекте и загружает `CLAUDE.md` и skills из всех них. Правила разрешений, hooks и `env` поступают только из `.claude/settings.json` в директории, где поток начинается: внутри репозитория, когда проект имеет один, и выше клонов, когда он имеет несколько, где файл ни одного репозитория не читается для них.338Каждый облачный поток клонирует каждый репозиторий в проекте и загружает `CLAUDE.md` и skills из всех них. Правила разрешений, hooks и `env` поступают только из `.claude/settings.json` в директории, где поток начинается: внутри репозитория, когда проект имеет один, и выше клонов, когда он имеет несколько, где файл ни одного репозитория не читается для них.

337 339 

338| В каждом репозитории | Один репозиторий | Несколько репозиториев |340| В каждом репозитории | Один репозиторий | Несколько репозиториев |

339| :------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------- |341| :------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------- |


348 Выбор среды для потоков350 Выбор среды для потоков

349</h3>351</h3>

350 352 

351Каждый новый поток начинается в [облачной среде](/docs/ru/cloud-environments) проекта. Среда устанавливает, какие домены могут достичь потоки, какие переменные окружения они имеют, какие учетные данные API добавляются в их запросы и что скрипт настройки устанавливает перед началом Claude. Потоки используют среду по умолчанию, размещенную Anthropic, пока вы не выберете одну в **Project settings > Environment**.353Каждый новый облачный поток начинается в [облачной среде](/docs/ru/cloud-environments) проекта. Среда устанавливает, какие домены могут достичь потоки, какие переменные окружения они имеют, какие учетные данные API добавляются в их запросы и что скрипт настройки устанавливает перед началом Claude. Облачные потоки используют среду по умолчанию, размещенную Anthropic, пока вы не выберете одну в **Project settings > Environment**.

352 354 

353Если потокам нужно достичь внутреннего API или приватного реестра пакетов, или нужен токен, который ваша машина обычно держит, измените среду, а не проект: см. [Сетевой доступ](/docs/ru/cloud-environments#network-access), [Добавить учетные данные API](/docs/ru/cloud-environments#add-api-credentials) и [Скрипты настройки](/docs/ru/cloud-environments#setup-scripts).355Если облачным потокам нужно достичь внутреннего API или приватного реестра пакетов, или нужен токен, который ваша машина обычно держит, измените среду, а не проект: см. [Сетевой доступ](/docs/ru/cloud-environments#network-access), [Добавить учетные данные API](/docs/ru/cloud-environments#add-api-credentials) и [Скрипты настройки](/docs/ru/cloud-environments#setup-scripts).

354 356 

355<h3 id="get-skills-plugins-connectors-and-tools-into-threads">357<h3 id="get-skills-plugins-connectors-and-tools-into-threads">

356 Получить skills, plugins, connectors и инструменты в потоки358 Получить skills, plugins, connectors и инструменты в потоки

357</h3>359</h3>

358 360 

359Потоки — это облачные сеансы, поэтому они не имеют skills, MCP servers, plugins и инструментов, установленных только на вашей машине. Чтобы сделать каждый из них доступным для потоков:361Облачные потоки не имеют skills, MCP servers, plugins и инструментов, установленных только на вашей машине. Поток, который Claude запускает на вашей машине через [Remote Control](/docs/ru/remote-control), использует то, что установлено там. Чтобы сделать каждый из них доступным для облачных потоков:

360 362 

361* Skills, subagents и команды: зафиксируйте их в репозитории, который вы добавили в проект, например skill в `.claude/skills/<skill-name>/SKILL.md`. Каждый поток клонирует каждый репозиторий в проекте и загружает `.claude/skills/`, `.claude/agents/` и `.claude/commands/` из каждого из них, поэтому skill, зафиксированный в одном репозитории, доступен в каждом новом потоке. Потоки также загружают skills, которые вы включаете для вашего аккаунта claude.ai.363* Skills, subagents и команды: зафиксируйте их в репозитории, который вы добавили в проект, например skill в `.claude/skills/<skill-name>/SKILL.md`. Каждый облачный поток клонирует каждый репозиторий в проекте и загружает `.claude/skills/`, `.claude/agents/` и `.claude/commands/` из каждого из них, поэтому skill, зафиксированный в одном репозитории, доступен в каждом облачном потоке. Облачные потоки также загружают skills, которые вы включаете для вашего аккаунта claude.ai.

362* Plugins: добавьте их в **Project settings > Plugins**; они загружаются в каждый новый поток. Plugins, которые репозиторий объявляет в его `.claude/settings.json`, [не загружаются в потоки](/docs/ru/cloud-environments#what-carries-over-from-your-setup), потому что потоки — это облачные сеансы.364* Plugins: добавьте их в **Project settings > Plugins**; они загружаются в каждый новый облачный поток. Plugins, которые репозиторий объявляет в его `.claude/settings.json`, [не загружаются в облачные потоки](/docs/ru/cloud-environments#what-carries-over-from-your-setup).

363* MCP servers: потоки получают свои MCP инструменты из connectors на вашем аккаунте claude.ai, которые являются MCP servers, которые вы подключаете один раз в [claude.ai/customize/connectors](https://claude.ai/customize/connectors) или через ссылку **Manage connectors** в **Project settings > Environment**. Каждый поток может использовать все их без настройки для каждого проекта. Разговор проекта сам по себе не имеет connectors, поэтому отправляйте работу, которая требует один, как задачу для потока. В проекте с одним репозиторием потоки также загружают MCP servers из [`.mcp.json`](/docs/ru/cloud-environments#what-carries-over-from-your-setup) этого репозитория. [Как connectors достигают Claude Code](/docs/ru/mcp#how-connectors-reach-claude-code) перечисляет правила для облачных сеансов и параметры, которые отключают connectors.365* MCP servers: облачные потоки получают свои MCP инструменты из connectors на вашем аккаунте claude.ai, которые являются MCP servers, которые вы подключаете один раз в [claude.ai/customize/connectors](https://claude.ai/customize/connectors) или через ссылку **Manage connectors** в **Project settings > Environment**. Каждый облачный поток может использовать все их без настройки для каждого проекта. Разговор проекта сам по себе не имеет connectors, поэтому отправляйте работу, которая требует один, как задачу для облачного потока. В проекте с одним репозиторием облачные потоки также загружают MCP servers из [`.mcp.json`](/docs/ru/cloud-environments#what-carries-over-from-your-setup) этого репозитория. [Как connectors достигают Claude Code](/docs/ru/mcp#how-connectors-reach-claude-code) перечисляет правила для облачных сеансов и параметры, которые отключают connectors.

364* Инструменты командной строки и пакеты: установите их в [скрипт настройки](/docs/ru/cloud-environments#setup-scripts) среды.366* Инструменты командной строки и пакеты: установите их в [скрипт настройки](/docs/ru/cloud-environments#setup-scripts) среды.

365 367 

366Чтобы увидеть, какие connectors имеет работающий поток в claude.ai/code, откройте поток и выберите **Connectors** из меню **+** рядом с его полем сообщения. Отключение connector там удаляет его из этого потока и сохраняет это как ваше значение по умолчанию для аккаунта, поэтому новые потоки и чаты claude.ai начинают без него, пока вы его не включите снова. Поток подхватывает connector, который вы добавляете или переподключаете после следующего сообщения, которое вы ему отправляете.368Чтобы увидеть, какие connectors имеет работающий облачный поток в claude.ai/code, откройте поток и выберите **Connectors** из меню **+** рядом с его полем сообщения. Отключение connector там удаляет его из этого потока и сохраняет это как ваше значение по умолчанию для аккаунта, поэтому новые облачные потоки и чаты claude.ai начинают без него, пока вы его не включите снова. Облачный поток подхватывает connector, который вы добавляете или переподключаете после следующего сообщения, которое вы ему отправляете.

367 369 

368<h2 id="project-settings-reference">370<h2 id="project-settings-reference">

369 Справочник параметров проекта371 Справочник параметров проекта


434 Как проекты связаны с другими функциями Claude Code436 Как проекты связаны с другими функциями Claude Code

435</h2>437</h2>

436 438 

437Несколько функций Claude Code позволяют более чем одному сеансу работать одновременно, поэтому запуск работы параллельно — это не само по себе то, для чего предназначен проект. В проекте Claude запускает и отслеживает сеансы вместо вас, каждый начинается с одних и тех же репозиториев, инструкций и памяти, и работа живет в облаке столько, сколько она длится. Вот как каждая соседняя функция соединяется с проектом:439Несколько функций Claude Code позволяют более чем одному сеансу работать одновременно, поэтому запуск работы параллельно — это не само по себе то, для чего предназначен проект. В проекте Claude запускает и отслеживает сеансы вместо вас, и каждый начинается с одних и тех же инструкций. Вот как каждая соседняя функция соединяется с проектом:

438 440 

439* **Claude Tag**: [Claude Tag](https://claude.com/docs/claude-tag/overview) — это Claude в каналах Slack вашей команды, на планах Team и Enterprise. Любой в канале может дать ему работу, все в канале видят и направляют его, и он использует соединения, которые администратор установил для этого канала. Проект — это только ваш: вы единственный, кто отправляет ему работу или видит его потоки, он использует ваш собственный доступ GitHub и connectors, и он на Pro и Max. [Как Claude Tag отличается от Cowork и Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) имеет рядом.441* **Claude Tag**: [Claude Tag](https://claude.com/docs/claude-tag/overview) — это Claude в каналах Slack вашей команды, на планах Team и Enterprise. Любой в канале может дать ему работу, все в канале видят и направляют его, и он использует соединения, которые администратор установил для этого канала. Проект — это только ваш: вы единственный, кто отправляет ему работу или видит его потоки, он использует ваш собственный доступ GitHub и connectors, и он на Pro и Max. [Как Claude Tag отличается от Cowork и Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) имеет рядом.

440* **Cloud sessions**: каждый поток — это [облачный сеанс](/docs/ru/claude-code-on-the-web), запущенный и отслеживаемый Claude вместо вас. Облачный сеанс, который вы запустили самостоятельно, может стать проектом или питать один через [**Continue as a project** или **Move to project**](#start-from-an-existing-cloud-session).442* **Cloud sessions**: каждый поток — это [облачный сеанс](/docs/ru/claude-code-on-the-web), если вы не попросите Claude запустить его на вашей машине. В любом случае Claude запускает и отслеживает его вместо вас. Облачный сеанс, который вы запустили самостоятельно, может стать проектом или питать один через [**Continue as a project** или **Move to project**](#start-from-an-existing-cloud-session).

441* **Routines**: когда вы просите запланированную работу в проекте, Claude создает [routine](/docs/ru/routines), которая работает как потоки в этом проекте и отображается на его вкладке **Routines**. Routines, которые вы создаете вне проекта, продолжают работать самостоятельно.443* **Routines**: когда вы просите запланированную работу в проекте, Claude создает [routine](/docs/ru/routines), которая работает как потоки в этом проекте и отображается на его вкладке **Routines**. Routines, которые вы создаете вне проекта, продолжают работать самостоятельно.

442* **Local sessions и agent view**: сеансы в вашем терминале, IDE или локальной среде настольного приложения работают на вашей машине и не могут быть частью проекта. [Agent view](/docs/ru/agent-view) — это экран для отслеживания нескольких из этих локальных сеансов; он не имеет координатора.444* **Local sessions и agent view**: сеанс, который вы запускаете самостоятельно в вашем терминале, IDE или локальной среде настольного приложения, не может быть добавлен в проект. Проект достигает вашей машины только путем запуска потока там через [Remote Control](/docs/ru/remote-control). [Agent view](/docs/ru/agent-view) — это экран для отслеживания нескольких локальных сеансов, которые вы запустили самостоятельно; он не имеет координатора.

443* **Worktrees**: [worktree](/docs/ru/worktrees) дает каждому локальному сеансу свою рабочую копию репозитория, поэтому параллельные сеансы на вашей машине не перезаписывают друг друга. Потокам они не нужны: каждый поток клонирует свои репозитории в свою облачную песочницу и работает на своей ветке.445* **Worktrees**: [worktree](/docs/ru/worktrees) дает каждому локальному сеансу свою рабочую копию репозитория, поэтому параллельные сеансы на вашей машине не перезаписывают друг друга. Облачным потокам они не нужны: каждый клонирует свои репозитории в свою облачную песочницу и работает на своей ветке.

444* **Agent teams**: [agent team](/docs/ru/agent-teams) — это один сеанс, который запускает сеансы товарищей для одной задачи, на вашей машине или внутри облачного сеанса, и заканчивается этой задачей.446* **Agent teams**: [agent team](/docs/ru/agent-teams) — это один сеанс, который запускает сеансы товарищей для одной задачи, на вашей машине или внутри облачного сеанса, и заканчивается этой задачей.

445* **Projects в claude.ai chat и Cowork**: [более ранний опыт Projects](https://support.claude.com/en/articles/9517075-what-are-projects), который группирует разговоры и справочные файлы без потоков или координатора. Эти проекты продолжают работать так, как они работают сегодня, пока переработанный опыт не достигнет их.447* **Projects в claude.ai chat и Cowork**: [более ранний опыт Projects](https://support.claude.com/en/articles/9517075-what-are-projects), который группирует разговоры и справочные файлы без потоков или координатора. Эти проекты продолжают работать так, как они работают сегодня, пока переработанный опыт не достигнет их.

446 448 


451</h2>453</h2>

452 454 

453* Projects доступны в claude.ai/code, в настольном приложении и в мобильном приложении Claude, но не в CLI терминала или через Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry. Команда [`claude project`](/docs/ru/cli-reference) CLI, которая управляет локальным состоянием Claude Code для директории, не связана.455* Projects доступны в claude.ai/code, в настольном приложении и в мобильном приложении Claude, но не в CLI терминала или через Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry. Команда [`claude project`](/docs/ru/cli-reference) CLI, которая управляет локальным состоянием Claude Code для директории, не связана.

454* Потоки проекта — это [облачные сеансы](/docs/ru/claude-code-on-the-web) с Anthropic в качестве поставщика модели. [Безопасность](/docs/ru/security) и [Использование данных](/docs/ru/data-usage) охватывают, как облачные сеансы изолированы и что сохраняется.456* Потоки проекта — это [облачные сеансы](/docs/ru/claude-code-on-the-web) или сеансы на вашей собственной машине через [Remote Control](/docs/ru/remote-control), с Anthropic в качестве поставщика модели в обоих случаях. [Безопасность](/docs/ru/security) и [Использование данных](/docs/ru/data-usage) охватывают, как облачные сеансы изолированы и что сохраняется, а [Connection and security](/docs/ru/remote-control#connection-and-security) охватывает, как поток на вашей машине подключается и что хранится.

455* Локальный сеанс не может быть частью проекта.457* Вы не можете добавить сеанс, который вы запустили сами на вашей машине, в проект. Чтобы позволить проекту запустить поток на вашей машине, подключите папку, в которой он должен работать, через [Remote Control](/docs/ru/remote-control#requirements): включите Remote Control в **Settings > Claude Code** в настольном приложении Claude или запустите `claude remote-control` в папке и оставьте его работающим. Эта машина должна иметь Claude Code v2.1.280 или позже. Проект также не может запустить поток на вашей машине, пока в ваших настройках claude.ai включена опция **Require trusted devices**.

456* Песочница потока приостанавливается между ходами и возобновляется, когда поток продолжает. Если песочница не может быть возобновлена, поток продолжает с свежего клона, поэтому незафиксированные изменения могут быть потеряны. На долгих задачах попросите Claude зафиксировать и отправить работу в процессе.458* Песочница потока приостанавливается между ходами и возобновляется, когда поток продолжает. Если песочница не может быть возобновлена, поток продолжает с свежего клона, поэтому незафиксированные изменения могут быть потеряны. На долгих задачах попросите Claude зафиксировать и отправить работу в процессе.

457* Проект принадлежит одному пользователю. Вы не можете поделиться проектом или его потоками с другим пользователем, и транскрипты потоков не имеют опции поделиться, которую имеют другие облачные сеансы. Нет элементов управления на уровне организации для проектов во время бета-версии.459* Проект принадлежит одному пользователю. Вы не можете поделиться проектом или его потоками с другим пользователем, и транскрипты потоков не имеют опции поделиться, которую имеют другие облачные сеансы. Нет элементов управления на уровне организации для проектов во время бета-версии.

458* Поток принадлежит одному проекту, который его запустил. Вы не можете переместить или скопировать поток в другой проект или переместить его отдельно. [**Move to project**](#start-from-an-existing-cloud-session) идет только в другую сторону: он переносит работу облачного сеанса в проект.460* Поток принадлежит одному проекту, который его запустил. Вы не можете переместить или скопировать поток в другой проект или переместить его отдельно. [**Move to project**](#start-from-an-existing-cloud-session) идет только в другую сторону: он переносит работу облачного сеанса в проект.


467 Поток выглядит застрявшим469 Поток выглядит застрявшим

468</h3>470</h3>

469 471 

470Claude не публикует каждый шаг, который делает поток, поэтому поток, который показывает как работающий без новых сообщений в разговоре проекта, обычно все еще работает. Новый поток также подготавливает свою [облачную среду](/docs/ru/cloud-environments) перед началом Claude, поэтому его первое обновление занимает момент. Откройте поток, чтобы прочитать его транскрипт. Если поток ждет подсказку разрешения, ответьте там.472Claude не публикует каждый шаг, который делает поток, поэтому поток, который показывает как работающий без новых сообщений в разговоре проекта, обычно все еще работает. Новый облачный поток также подготавливает свою [облачную среду](/docs/ru/cloud-environments) перед началом Claude, поэтому его первое обновление занимает момент. Откройте поток, чтобы прочитать его транскрипт. Если поток ждет подсказку разрешения, ответьте там.

471 473 

472<h3 id="threads-guessed-or-stalled-instead-of-asking">474<h3 id="threads-guessed-or-stalled-instead-of-asking">

473 Потоки угадали или застопорились вместо того, чтобы спросить475 Потоки угадали или застопорились вместо того, чтобы спросить


489 Ошибки доступа к репозиторию491 Ошибки доступа к репозиторию

490</h3>492</h3>

491 493 

492Три сообщения означают, что поток или проект не может достичь один из своих репозиториев. Потоку проекта требуются [предварительные условия GitHub](#check-the-prerequisites) даже когда ваши другие облачные сеансы клонируют один и тот же репозиторий без проблем.494Три сообщения означают, что поток или проект не может достичь один из своих репозиториев. Потокам проекта требуются [предварительные условия GitHub](#check-the-prerequisites) даже когда ваши другие облачные сеансы клонируют один и тот же репозиторий без проблем.

493 495 

494* **"Couldn't start the session — Claude doesn't have GitHub access to this project's repository"**, сообщено перед запуском потока, когда Claude GitHub App не установлено на этом репозитории, приостановлено или не связано с аккаунтом GitHub, который вы подключили.496* **"Couldn't start the session — Claude doesn't have GitHub access to this project's repository"**, сообщено перед запуском потока, когда Claude GitHub App не установлено на этом репозитории, приостановлено или не связано с аккаунтом GitHub, который вы подключили.

495* **"Unable to access your repository"**, сообщено потоком, когда его клон не работает: GitHub отклонил клон, репозиторий не был найден под названием, которое имеет проект, или ветка, с которой потоку было предложено начать, не существует.497* **"Unable to access your repository"**, сообщено потоком, когда его клон не работает: GitHub отклонил клон, репозиторий не был найден под названием, которое имеет проект, или ветка, с которой потоку было предложено начать, не существует.

Details

27 Установите плагин27 Установите плагин

28</h2>28</h2>

29 29 

30В сеансе Claude Code установите из [официального рынка Anthropic](/docs/ru/discover-plugins#official-anthropic-marketplace):30В сеансе Claude Code установите из [официального рынка Anthropic](/docs/ru/plugins/anthropic-marketplaces):

31 31 

32```text theme={null}32```text theme={null}

33/plugin install claude-security@claude-plugins-official33/plugin install claude-security@claude-plugins-official

34```34```

35 35 

36Команда открывает детали плагина, где вы выбираете [область установки](/docs/ru/discover-plugins#install-plugins) для начала установки.36Команда открывает детали плагина, где вы выбираете [область установки](/docs/ru/plugins/install#install-a-plugin) для начала установки.

37 37 

38Если установка не удается, исправление зависит от того, какое сообщение сообщает Claude Code:38Если установка не удается, исправление зависит от того, какое сообщение сообщает Claude Code:

39 39 

40* Если он сообщает `Marketplace "claude-plugins-official" not found`, добавьте рынок с помощью `/plugin marketplace add anthropics/claude-plugins-official`, затем повторите попытку установки.40* Если он сообщает `Marketplace "claude-plugins-official" not found`, добавьте рынок с помощью `/plugin marketplace add anthropics/claude-plugins-official`, затем повторите попытку установки.

41* Если он сообщает, что [не может найти плагин на рынке](/docs/ru/discover-plugins#install-plugins), проверьте имя плагина на опечатки.41* Если он сообщает, что [не может найти плагин на рынке](/docs/ru/plugins/install#install-a-plugin), проверьте имя плагина на опечатки.

42 42 

43Проверьте сводку установки. Если она сообщает `Run /reload-plugins to activate.`, см. [Применение изменений плагина без перезагрузки](/docs/ru/discover-plugins#apply-plugin-changes-without-restarting) для активации плагина в вашем текущем сеансе.43Проверьте сводку установки. Если она сообщает `Run /reload-plugins to activate.`, см. [Применение изменений плагина без перезагрузки](/docs/ru/plugins/cli-reference#reload-plugins) для активации плагина в вашем текущем сеансе.

44 44 

45После активации плагина вы готовы к [сканированию и исправлению вашей кодовой базы](#scan-and-fix-your-codebase).45После активации плагина вы готовы к [сканированию и исправлению вашей кодовой базы](#scan-and-fix-your-codebase).

46 46 


164 164 

165Чтобы углубиться в части, которые эта страница затрагивает:165Чтобы углубиться в части, которые эта страница затрагивает:

166 166 

167* Плагин [Security guidance](/docs/ru/security-guidance): ловите проблемы в коде по мере его написания Claude в том же сеансе167* [Security guidance plugin](/docs/ru/security-guidance): ловите проблемы в коде по мере его написания Claude в том же сеансе

168* [Code Review](/docs/ru/code-review): установите многоагентную проверку во время PR168* [Code Review](/docs/ru/code-review): установите многоагентную проверку во время PR

169* [Claude Security](https://claude.com/product/claude-security): управляемая служба, которая отслеживает подключенные репозитории169* [Claude Security](https://claude.com/product/claude-security): управляемая служба, которая отслеживает подключенные репозитории

170* [Claude Code security](/docs/ru/security): как Claude Code подходит к доверию, разрешениям и защитам170* [Claude Code security](/docs/ru/security): как Claude Code подходит к доверию, разрешениям и защитам

171* [Discover and install plugins](/docs/ru/discover-plugins#official-anthropic-marketplace): просмотрите другие официальные плагины171* [Install and manage plugins](/docs/ru/plugins/install): найдите и установите другие плагины из официального marketplace

claude-tag.md +0 −11 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# Claude Tag

6 

7> Интегрируйте Claude в каналы Slack вашей команды с помощью Claude Tag и найдите документацию по его настройке и использованию на claude.com.

8 

9[Claude Tag](https://claude.com/product/tag) — это интеграция Slack, которая запускает `@Claude` в каналах вашей команды как общую идентификацию организации с настраиваемым администратором доступом. Любой участник канала может упомянуть `@Claude` в цепочке сообщений и назначить ему задачу. Прочитайте [документацию Claude Tag](https://claude.com/docs/claude-tag/overview) на claude.com, чтобы настроить её и начать использовать.

10 

11Claude Tag доступен в планах Team и Enterprise и отличается от более ранней версии [Claude Code in Slack](/docs/ru/slack), которая запускает каждый сеанс под учётной записью отдельного пользователя. В планах Pro и Max, где Claude Tag недоступен, Claude Code in Slack остаётся путём настройки.

Details

37| `claude import [source]` | Запустить интерактивный сеанс, который запускает [`/import`](/docs/ru/commands#all-commands) для переноса конфигурации из других агентов кодирования в Claude Code. Принимает те же опции `--dry-run` и `--yes`, что и команда. Недоступно на Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry или Claude Platform на AWS. Также недоступно, когда вы отключаете [получение флагов функций](/docs/ru/env-vars#features-that-need-feature-flag-fetching). Требует Claude Code v2.1.213 или позже | `claude import codex --dry-run` |37| `claude import [source]` | Запустить интерактивный сеанс, который запускает [`/import`](/docs/ru/commands#all-commands) для переноса конфигурации из других агентов кодирования в Claude Code. Принимает те же опции `--dry-run` и `--yes`, что и команда. Недоступно на Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry или Claude Platform на AWS. Также недоступно, когда вы отключаете [получение флагов функций](/docs/ru/env-vars#features-that-need-feature-flag-fetching). Требует Claude Code v2.1.213 или позже | `claude import codex --dry-run` |

38| `claude logs <id>` | Вывести недавний вывод из [фонового сеанса](/docs/ru/agent-view#manage-sessions-from-the-shell) | `claude logs 7c5dcf5d` |38| `claude logs <id>` | Вывести недавний вывод из [фонового сеанса](/docs/ru/agent-view#manage-sessions-from-the-shell) | `claude logs 7c5dcf5d` |

39| `claude mcp` | Настроить серверы Model Context Protocol (MCP) | См. [документацию Claude Code MCP](/docs/ru/mcp). |39| `claude mcp` | Настроить серверы Model Context Protocol (MCP) | См. [документацию Claude Code MCP](/docs/ru/mcp). |

40| `claude mcp login <name>` | Запустить поток OAuth настроенного сервера MCP без открытия интерактивной панели `/mcp`. Работает для HTTP, SSE и серверов соединителя claude.ai. Добавьте `--no-browser` через SSH для вывода URL авторизации вместо открытия браузера, затем вставьте URL перенаправления обратно в приглашение. Требует Claude Code версии 2.1.186 или позже. См. [Аутентификация из командной строки](/docs/ru/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |40| `claude mcp login <name>` | Запустить поток OAuth настроенного сервера MCP без открытия интерактивной панели `/mcp`. Работает для HTTP, SSE и серверов соединителя claude.ai. Добавьте `--no-browser` через SSH для вывода URL авторизации вместо открытия браузера, затем вставьте URL перенаправления обратно в приглашение. См. [Аутентификация из командной строки](/docs/ru/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |

41| `claude mcp logout <name>` | Очистить сохраненные учетные данные OAuth для сервера MCP. Требует Claude Code версии 2.1.186 или позже | `claude mcp logout sentry` |41| `claude mcp logout <name>` | Очистить сохраненные учетные данные OAuth для сервера MCP | `claude mcp logout sentry` |

42| `claude plugin` | Управлять Claude Code [plugins](/docs/ru/plugins). Псевдоним: `claude plugins`. См. [справочник plugins](/docs/ru/plugins-reference#cli-commands-reference) для подкоманд | `claude plugin install code-review@claude-plugins-official` |42| `claude plugin` | Управлять Claude Code [plugins](/docs/ru/plugins/overview). Псевдоним: `claude plugins`. См. [справочник plugins](/docs/ru/plugins/cli-reference#claude-plugin-commands) для подкоманд | `claude plugin install code-review@claude-plugins-official` |

43| `claude project purge [path]` | Удалить все локальное состояние Claude Code для проекта: стенограммы, списки задач, журналы отладки, историю редактирования файлов, строки истории подсказок и запись проекта в `~/.claude.json`. Опустите `[path]` для выбора из интерактивного списка. Флаги: `--dry-run` для предпросмотра, `-y`/`--yes` для пропуска подтверждения, `-i`/`--interactive` для подтверждения каждого элемента, `--all` для каждого проекта. См. [Очистить локальные данные](/docs/ru/claude-directory#clear-local-data) | `claude project purge ~/work/repo --dry-run` |43| `claude project purge [path]` | Удалить все локальное состояние Claude Code для проекта: стенограммы, списки задач, журналы отладки, историю редактирования файлов, строки истории подсказок и запись проекта в `~/.claude.json`. Опустите `[path]` для выбора из интерактивного списка. Флаги: `--dry-run` для предпросмотра, `-y`/`--yes` для пропуска подтверждения, `-i`/`--interactive` для подтверждения каждого элемента, `--all` для каждого проекта. См. [Очистить локальные данные](/docs/ru/claude-directory#clear-local-data) | `claude project purge ~/work/repo --dry-run` |

44| `claude remote-control` | Запустить сервер [Remote Control](/docs/ru/remote-control) для управления Claude Code из Claude.ai или приложения Claude. Работает в режиме сервера (без локального интерактивного сеанса). См. [флаги режима сервера](/docs/ru/remote-control#start-a-remote-control-session). После остановки сервера вы можете восстановить сеансы, которые он обслуживал. См. [Возобновить сеансы после остановки сервера](/docs/ru/remote-control#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` |44| `claude remote-control` | Запустить сервер [Remote Control](/docs/ru/remote-control) для управления Claude Code из Claude.ai или приложения Claude. Работает в режиме сервера (без локального интерактивного сеанса). См. [флаги режима сервера](/docs/ru/remote-control#start-a-remote-control-session). После остановки сервера вы можете восстановить сеансы, которые он обслуживал. См. [Возобновить сеансы после остановки сервера](/docs/ru/remote-control#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` |

45| `claude respawn <id>` | Перезапустить [фоновый сеанс](/docs/ru/agent-view#manage-sessions-from-the-shell), работающий или остановленный, с сохранением его беседы. Используйте `--all` для перезапуска каждого работающего сеанса, например для применения обновленного двоичного файла Claude Code | `claude respawn 7c5dcf5d` |45| `claude respawn <id>` | Перезапустить [фоновый сеанс](/docs/ru/agent-view#manage-sessions-from-the-shell), работающий или остановленный, с сохранением его беседы. Используйте `--all` для перезапуска каждого работающего сеанса, например для применения обновленного двоичного файла Claude Code | `claude respawn 7c5dcf5d` |


78| `--bg`, `--background` | Запустить сеанс как [фоновый агент](/docs/ru/agent-view) и вернуться немедленно. Выводит ID сеанса и команды управления. Комбинируйте с `--exec` для запуска команды shell как фонового задания вместо сеанса Claude, или с `--agent` для запуска конкретного subagent. Не может быть скомбинирован с `-p`/`--print`; см. [справочник ошибок](/docs/ru/errors#command-line-errors) | `claude --bg "investigate the flaky test"` |78| `--bg`, `--background` | Запустить сеанс как [фоновый агент](/docs/ru/agent-view) и вернуться немедленно. Выводит ID сеанса и команды управления. Комбинируйте с `--exec` для запуска команды shell как фонового задания вместо сеанса Claude, или с `--agent` для запуска конкретного subagent. Не может быть скомбинирован с `-p`/`--print`; см. [справочник ошибок](/docs/ru/errors#command-line-errors) | `claude --bg "investigate the flaky test"` |

79| `--channels` | (Исследовательский предпросмотр) MCP серверы, чьи уведомления [channel](/docs/ru/channels) Claude должен слушать в этом сеансе. Разделённый пробелом список записей `plugin:<name>@<marketplace>`. Требует аутентификацию Anthropic через claude.ai или API-ключ Console | `claude --channels plugin:my-notifier@my-marketplace` |79| `--channels` | (Исследовательский предпросмотр) MCP серверы, чьи уведомления [channel](/docs/ru/channels) Claude должен слушать в этом сеансе. Разделённый пробелом список записей `plugin:<name>@<marketplace>`. Требует аутентификацию Anthropic через claude.ai или API-ключ Console | `claude --channels plugin:my-notifier@my-marketplace` |

80| `--chrome` | Включить [интеграцию браузера Chrome](/docs/ru/chrome) для веб-автоматизации и тестирования | `claude --chrome` |80| `--chrome` | Включить [интеграцию браузера Chrome](/docs/ru/chrome) для веб-автоматизации и тестирования | `claude --chrome` |

81| `--cloud` | С описанием задачи создать новый [веб-сеанс](/docs/ru/claude-code-on-the-web) на claude.ai. С ID сеанса (`session_...` или `cse_...`) или URL claude.ai/code поставить в очередь сообщение в этот существующий сеанс вместо этого, с `-p`. См. [отправить последующее сообщение](/docs/ru/claude-code-on-the-web#send-follow-ups-from-the-cli). | `claude --cloud "Fix the login bug"` |81| `--cloud` | С описанием задачи создать новый [веб-сеанс](/docs/ru/claude-code-on-the-web). С ID сеанса (`session_...` или `cse_...`) или URL claude.ai/code поставить в очередь сообщение в этот существующий сеанс вместо этого, с `-p`. См. [отправить последующее сообщение](/docs/ru/claude-code-on-the-web#send-follow-ups-from-the-cli). | `claude --cloud "Fix the login bug"` |

82| `--continue`, `-c` | Загрузить самую последнюю беседу в текущем каталоге, включая [фоновый сеанс, который завершился](/docs/ru/sessions#resume-a-session); открытие завершённых фоновых сеансов требует Claude Code v2.1.257 или позже. Пропускает сеансы, созданные с `claude -p` или Agent SDK, и сеансы, чьё первое приглашение было `/loop`. `claude -p --continue` включает сеансы `-p`, SDK и `/loop`. Включает сеансы, которые добавили этот каталог с `/add-dir` | `claude --continue` |82| `--continue`, `-c` | Загрузить самую последнюю беседу в текущем каталоге, включая [фоновый сеанс, который завершился](/docs/ru/sessions#resume-a-session); открытие завершённых фоновых сеансов требует Claude Code v2.1.257 или позже. Пропускает сеансы, созданные с `claude -p` или Agent SDK, и сеансы, чьё первое приглашение было `/loop`. `claude -p --continue` включает сеансы `-p`, SDK и `/loop`. Включает сеансы, которые добавили этот каталог с `/add-dir` | `claude --continue` |

83| `--dangerously-load-development-channels` | Включить [channels](/docs/ru/channels-reference#test-during-the-research-preview), которые не находятся в утвержденном списке разрешений, для локальной разработки. Принимает записи `plugin:<name>@<marketplace>` и `server:<name>`. Запрашивает подтверждение | `claude --dangerously-load-development-channels server:webhook` |83| `--dangerously-load-development-channels` | Включить [channels](/docs/ru/channels-reference#test-during-the-research-preview), которые не находятся в утвержденном списке разрешений, для локальной разработки. Принимает записи `plugin:<name>@<marketplace>` и `server:<name>`. Запрашивает подтверждение | `claude --dangerously-load-development-channels server:webhook` |

84| `--dangerously-skip-permissions` | Пропустить запросы разрешения. Эквивалентно `--permission-mode bypassPermissions`. См. [режимы разрешения](/docs/ru/permission-modes#skip-all-checks-with-bypasspermissions-mode) для информации о том, что это пропускает и что не пропускает. Для сеансов, запущенных с `--bg`, режим [сохраняется при перезапуске сеанса супервизором](/docs/ru/agent-view#permission-mode-model-and-effort) | `claude --dangerously-skip-permissions` |84| `--dangerously-skip-permissions` | Пропустить запросы разрешения. Эквивалентно `--permission-mode bypassPermissions`. См. [режимы разрешения](/docs/ru/permission-modes#skip-all-checks-with-bypasspermissions-mode) для информации о том, что это пропускает и что не пропускает. Для сеансов, запущенных с `--bg`, режим [сохраняется при перезапуске сеанса супервизором](/docs/ru/agent-view#permission-mode-model-and-effort) | `claude --dangerously-skip-permissions` |


114| `--permission-mode` | Начать в указанном [режиме разрешения](/docs/ru/permission-modes). Принимает `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions` или `manual` как псевдоним для `default`. Псевдоним `manual` выбирает режим разрешения, который UI обозначает как Manual и требует Claude Code v2.1.200 или позже; `claude --help` выводит его вместо `default`, и оба значения работают. Переопределяет `defaultMode` из файлов параметров. Без этого флага или `--dangerously-skip-permissions` новый сеанс начинается в режиме разрешения, описанном в [какой режим разрешения начинает сеанс](/docs/ru/permission-modes#which-mode-a-session-starts-in). Для `-p` это `default`, когда ничего не настроено | `claude --permission-mode plan` |114| `--permission-mode` | Начать в указанном [режиме разрешения](/docs/ru/permission-modes). Принимает `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions` или `manual` как псевдоним для `default`. Псевдоним `manual` выбирает режим разрешения, который UI обозначает как Manual и требует Claude Code v2.1.200 или позже; `claude --help` выводит его вместо `default`, и оба значения работают. Переопределяет `defaultMode` из файлов параметров. Без этого флага или `--dangerously-skip-permissions` новый сеанс начинается в режиме разрешения, описанном в [какой режим разрешения начинает сеанс](/docs/ru/permission-modes#which-mode-a-session-starts-in). Для `-p` это `default`, когда ничего не настроено | `claude --permission-mode plan` |

115| `--permission-prompt-tool` | Указать инструмент MCP для обработки запросов разрешения в неинтерактивном режиме. Claude Code ждёт подключения MCP сервера этого инструмента перед запуском первого хода, до стартового таймаута [`MCP_TIMEOUT`](/docs/ru/env-vars), 30 секунд по умолчанию. <br /><br />Инструмент приглашения не может одобрить инструмент MCP, отмеченный как [требующий взаимодействия пользователя](/docs/ru/mcp#require-approval-for-a-specific-tool): Claude Code преобразует результат `allow` для одного в отрицание. Это ограничение требует Claude Code v2.1.199 или позже | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |115| `--permission-prompt-tool` | Указать инструмент MCP для обработки запросов разрешения в неинтерактивном режиме. Claude Code ждёт подключения MCP сервера этого инструмента перед запуском первого хода, до стартового таймаута [`MCP_TIMEOUT`](/docs/ru/env-vars), 30 секунд по умолчанию. <br /><br />Инструмент приглашения не может одобрить инструмент MCP, отмеченный как [требующий взаимодействия пользователя](/docs/ru/mcp#require-approval-for-a-specific-tool): Claude Code преобразует результат `allow` для одного в отрицание. Это ограничение требует Claude Code v2.1.199 или позже | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |

116| `--permission-prompts` | Установить, кто отвечает на запросы разрешения в режиме печати. С по умолчанию `host`, Claude Code отправляет их хосту Agent SDK или инструменту `--permission-prompt-tool`. Передайте `none`, когда никто не может ответить, и Claude Code отклоняет их вместо этого. См. [Отключить запросы разрешения в автоматических запусках](/docs/ru/headless#turn-off-permission-prompts-in-unattended-runs). Требует Claude Code v2.1.259 или позже | `claude -p --permission-prompts none "query"` |116| `--permission-prompts` | Установить, кто отвечает на запросы разрешения в режиме печати. С по умолчанию `host`, Claude Code отправляет их хосту Agent SDK или инструменту `--permission-prompt-tool`. Передайте `none`, когда никто не может ответить, и Claude Code отклоняет их вместо этого. См. [Отключить запросы разрешения в автоматических запусках](/docs/ru/headless#turn-off-permission-prompts-in-unattended-runs). Требует Claude Code v2.1.259 или позже | `claude -p --permission-prompts none "query"` |

117| `--plugin-dir` | Загрузить plugin из каталога или архива `.zip`, или несколько из [папки plugins](/docs/ru/plugins#test-your-plugins-locally), только для этого сеанса. Каждый флаг принимает один путь. Повторите флаг для нескольких путей: `--plugin-dir A --plugin-dir B.zip`. Передача папки plugins требует Claude Code v2.1.265 или позже | `claude --plugin-dir ./my-plugin` |117| `--plugin-dir` | Загрузить plugin из каталога или архива `.zip`, или несколько из [папки plugins](/docs/ru/plugins/create#load-a-directory-or-archive-for-one-session), только для этого сеанса. Каждый флаг принимает один путь. Повторите флаг для нескольких путей: `--plugin-dir A --plugin-dir B.zip`. Передача папки plugins требует Claude Code v2.1.265 или позже | `claude --plugin-dir ./my-plugin` |

118| `--plugin-url` | Получить plugin архив `.zip` из URL только для этого сеанса. Повторите флаг для нескольких plugins, или передайте разделённые пробелом URL в одном значении в кавычках | `claude --plugin-url https://example.com/plugin.zip` |118| `--plugin-url` | Получить plugin архив `.zip` из URL только для этого сеанса. Повторите флаг для нескольких plugins, или передайте разделённые пробелом URL в одном значении в кавычках | `claude --plugin-url https://example.com/plugin.zip` |

119| `--print`, `-p` | Вывести ответ без интерактивного режима (см. [документацию Agent SDK](/docs/ru/agent-sdk/overview) для деталей программного использования) | `claude -p "query"` |119| `--print`, `-p` | Вывести ответ без интерактивного режима (см. [документацию Agent SDK](/docs/ru/agent-sdk/overview) для деталей программного использования) | `claude -p "query"` |

120| `--prompt-suggestions` | Выдать сообщение `prompt_suggestion` с предсказанным следующим приглашением пользователя после каждого хода, который генерирует один; очень короткие беседы могут не производить ни одного. Требует `--print`, `--output-format stream-json` и `--verbose`. См. [Предложения приглашений](/docs/ru/interactive-mode#prompt-suggestions) | `claude -p --prompt-suggestions --output-format stream-json --verbose "query"` |120| `--prompt-suggestions` | Выдать сообщение `prompt_suggestion` с предсказанным следующим приглашением пользователя после каждого хода, который генерирует один; очень короткие беседы могут не производить ни одного. Требует `--print`, `--output-format stream-json` и `--verbose`. См. [Предложения приглашений](/docs/ru/interactive-mode#prompt-suggestions) | `claude -p --prompt-suggestions --output-format stream-json --verbose "query"` |


134| `--system-prompt-file` | Загрузить системный запрос из файла, заменяя приглашение по умолчанию | `claude --system-prompt-file ./custom-prompt.txt` |134| `--system-prompt-file` | Загрузить системный запрос из файла, заменяя приглашение по умолчанию | `claude --system-prompt-file ./custom-prompt.txt` |

135| `--system-prompt-snapshot` | Передать `off` для перестройки системного приглашения при каждом запросе вместо повторного использования приглашения [записанного при первом запросе беседы](#system-prompt-flags-in-resumed-conversations), например, пока вы итерируете текст `--append-system-prompt` через запуски `--continue`. Требует Claude Code v2.1.257 или позже | `claude --system-prompt-snapshot off` |135| `--system-prompt-snapshot` | Передать `off` для перестройки системного приглашения при каждом запросе вместо повторного использования приглашения [записанного при первом запросе беседы](#system-prompt-flags-in-resumed-conversations), например, пока вы итерируете текст `--append-system-prompt` через запуски `--continue`. Требует Claude Code v2.1.257 или позже | `claude --system-prompt-snapshot off` |

136| `--teleport` | Возобновить [веб-сеанс](/docs/ru/claude-code-on-the-web) в вашем локальном терминале | `claude --teleport` |136| `--teleport` | Возобновить [веб-сеанс](/docs/ru/claude-code-on-the-web) в вашем локальном терминале | `claude --teleport` |

137| `--teammate-mode` | Установить способ отображения товарищей по [команде агентов](/docs/ru/agent-teams): `in-process` (по умолчанию), `auto`, `tmux` или `iterm2` (добавлено в v2.1.186). Переопределяет параметр [`teammateMode`](/docs/ru/settings-reference#teammatemode) для этого сеанса. См. [Выбор режима отображения](/docs/ru/agent-teams#choose-a-display-mode) | `claude --teammate-mode auto` |137| `--teammate-mode` | Установить способ отображения товарищей по [команде агентов](/docs/ru/agent-teams): `in-process` (по умолчанию), `auto`, `tmux` или `iterm2`. Переопределяет параметр [`teammateMode`](/docs/ru/settings-reference#teammatemode) для этого сеанса. См. [Выбор режима отображения](/docs/ru/agent-teams#choose-a-display-mode) | `claude --teammate-mode auto` |

138| `--tmux` | Создать сеанс tmux для worktree. Требует `--worktree`. Использует встроенные панели iTerm2, если доступны; передайте `--tmux=classic` для традиционного tmux | `claude -w feature-auth --tmux` |138| `--tmux` | Создать сеанс tmux для worktree. Требует `--worktree`. Использует встроенные панели iTerm2, если доступны; передайте `--tmux=classic` для традиционного tmux | `claude -w feature-auth --tmux` |

139| `--tools` | Ограничить, какие встроенные инструменты может использовать Claude. Используйте `""` для отключения всех, `"default"` для набора по умолчанию или имена инструментов, такие как `"Bash,Edit,Read"`. На macOS, Linux и WSL набор по умолчанию исключает `Glob` и `Grep`, как описано в разделе [Поведение инструмента Glob](/docs/ru/tools-reference#glob-tool-behavior). Если вы назовёте один из [инструментов отслеживания задач](/docs/ru/tools-reference#task-tool-availability) здесь, Claude Code также включает сеанс. Флаг не влияет на MCP инструменты; чтобы запретить и их, используйте `--disallowedTools "mcp__*"`. Список, который опускает [`EndConversation`](/docs/ru/tools-reference#endconversation-tool-behavior), не удаляет его; `""` удаляет его только, когда не остаётся MCP инструментов | `claude --tools "Bash,Edit,Read"` |139| `--tools` | Ограничить, какие встроенные инструменты может использовать Claude. Используйте `""` для отключения всех, `"default"` для набора по умолчанию или имена инструментов, такие как `"Bash,Edit,Read"`. На macOS, Linux и WSL набор по умолчанию исключает `Glob` и `Grep`, как описано в разделе [Поведение инструмента Glob](/docs/ru/tools-reference#glob-tool-behavior). Если вы назовёте один из [инструментов отслеживания задач](/docs/ru/tools-reference#task-tool-availability) здесь, Claude Code также включает сеанс. Флаг не влияет на MCP инструменты; чтобы запретить и их, используйте `--disallowedTools "mcp__*"`. Список, который опускает [`EndConversation`](/docs/ru/tools-reference#endconversation-tool-behavior), не удаляет его; `""` удаляет его только, когда не остаётся MCP инструментов | `claude --tools "Bash,Edit,Read"` |

140| `--verbose` | Включить подробное логирование, показывает полный вывод по ходам. Переопределяет параметр [`viewMode`](/docs/ru/settings-reference#viewmode) для этого сеанса | `claude --verbose` |140| `--verbose` | Включить подробное логирование, показывает полный вывод по ходам. Переопределяет параметр [`viewMode`](/docs/ru/settings-reference#viewmode) для этого сеанса | `claude --verbose` |

Details

300| Ваши репозитория `.mcp.json` MCP серверы | Да, в сеансе с одним репозиторием | Часть клона, найденная из рабочего каталога сеанса |300| Ваши репозитория `.mcp.json` MCP серверы | Да, в сеансе с одним репозиторием | Часть клона, найденная из рабочего каталога сеанса |

301| Ваши репозитория `.claude/rules/` | Да | Часть клона |301| Ваши репозитория `.claude/rules/` | Да | Часть клона |

302| Ваши репозитория `.claude/skills/`, `.claude/agents/`, `.claude/commands/` | Да | Часть клона |302| Ваши репозитория `.claude/skills/`, `.claude/agents/`, `.claude/commands/` | Да | Часть клона |

303| Плагины и marketplaces, объявленные в `.claude/settings.json` вашего репозитория | Нет | Облачный сеанс не устанавливает плагины, которые репозиторий включает в [`enabledPlugins`](/docs/ru/settings-reference#enabledplugins), включая те из marketplaces, которые он перечисляет в [`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces). Включите плагин для вашей учётной записи claude.ai вместо этого, чтобы Claude Code загружал его как [синхронизированный плагин](/docs/ru/plugins-reference#synced-plugins) |303| Плагины и marketplaces, объявленные в `.claude/settings.json` вашего репозитория | Нет | Облачный сеанс не устанавливает плагины, которые репозиторий включает в [`enabledPlugins`](/docs/ru/settings-reference#enabledplugins), включая те из marketplaces, которые он перечисляет в [`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces) |

304| [Параметры, управляемые сервером](/docs/ru/server-managed-settings) вашей организации | Да | Получены с серверов Anthropic при запуске сеанса. Смотрите [Охват поверхности](/docs/ru/model-config#surface-coverage) для того, как `availableModels` применяется в облачных сеансах. Параметры, развёрнутые на вашем устройстве через MDM или файлы управляемых параметров, не применяются, потому что сеанс работает на управляемой Anthropic виртуальной машине; в [самостоятельно размещённой среде](/docs/ru/self-hosted-environments) сеансы также читают файл управляемых параметров в образе runner, согласно [как Claude Code объединяет управляемые источники](/docs/ru/managed-settings#how-claude-code-combines-managed-sources) |304| [Параметры, управляемые сервером](/docs/ru/server-managed-settings) вашей организации | Да | Получены с серверов Anthropic при запуске сеанса. Смотрите [Охват поверхности](/docs/ru/model-config#surface-coverage) для того, как `availableModels` применяется в облачных сеансах. Параметры, развёрнутые на вашем устройстве через MDM или файлы управляемых параметров, не применяются, потому что сеанс работает на управляемой Anthropic виртуальной машине; в [самостоятельно размещённой среде](/docs/ru/self-hosted-environments) сеансы также читают файл управляемых параметров в образе runner, согласно [как Claude Code объединяет управляемые источники](/docs/ru/managed-settings#how-claude-code-combines-managed-sources) |

305| Ваш пользовательский `~/.claude/CLAUDE.md` | Нет | Находится на вашей машине, не в репозитории |305| Ваш пользовательский `~/.claude/CLAUDE.md` | Нет | Находится на вашей машине, не в репозитории |

306| Ваши пользовательские `~/.claude/skills/`, `~/.claude/agents/`, `~/.claude/commands/` | Нет | Находятся на вашей машине, не в репозитории. Зафиксируйте их в каталоге `.claude/` репозитория вместо этого. Облачные сеансы автоматически загружают skills, которые вы включаете на claude.ai |306| Ваши пользовательские `~/.claude/skills/`, `~/.claude/agents/`, `~/.claude/commands/` | Нет | Находятся на вашей машине, не в репозитории. Зафиксируйте их в каталоге `.claude/` репозитория вместо этого. Облачные сеансы автоматически загружают skills, которые вы включаете на claude.ai |

307| Плагины, включённые только в ваши пользовательские параметры | Нет | Пользовательский `enabledPlugins` находится в `~/.claude/settings.json` на вашей машине. Включите их для вашей учётной записи claude.ai вместо этого, чтобы Claude Code загружал их как [синхронизированные плагины](/docs/ru/plugins-reference#synced-plugins) |307| Плагины, включённые только в ваши пользовательские параметры | Нет | Пользовательский `enabledPlugins` находится в `~/.claude/settings.json` на вашей машине |

308| MCP серверы, которые вы добавили с `claude mcp add` в область по умолчанию local или область пользователя | Нет | Те записывают в `~/.claude.json` на вашей машине, не в репозитории. Добавьте сервер с `claude mcp add --scope project`, который записывает [`.mcp.json`](/docs/ru/mcp#project-scope) репозитория, и зафиксируйте этот файл. Сеанс с одним репозиторием загружает его |308| MCP серверы, которые вы добавили с `claude mcp add` в область по умолчанию local или область пользователя | Нет | Те записывают в `~/.claude.json` на вашей машине, не в репозитории. Добавьте сервер с `claude mcp add --scope project`, который записывает [`.mcp.json`](/docs/ru/mcp#project-scope) репозитория, и зафиксируйте этот файл. Сеанс с одним репозиторием загружает его |

309| Переменные транспорта в блоке `env` вашего `.claude/settings.json` репозитория, такие как `NODE_EXTRA_CA_CERTS` и [переменные сертификата клиента mTLS](/docs/ru/network-config#mtls-authentication) | Нет | Среда хостинга управляет соединением API сеанса, поэтому Claude Code игнорирует эти ключи и отмечает каждый игнорируемый ключ в журнале отладки сеанса |309| Переменные транспорта в блоке `env` вашего `.claude/settings.json` репозитория, такие как `NODE_EXTRA_CA_CERTS` и [переменные сертификата клиента mTLS](/docs/ru/network-config#mtls-authentication) | Нет | Среда хостинга управляет соединением API сеанса, поэтому Claude Code игнорирует эти ключи и отмечает каждый игнорируемый ключ в журнале отладки сеанса |

310| Ключи API и токены для сервисов, которые Claude вызывает | На планах Pro и Max, как [учётные данные API](#add-api-credentials) | Вы добавляете ключ один раз в среду и прокси агента прикрепляет его к запросам для хостов, которые вы перечисляете. Ключ, который прокси агента [не может прикрепить](#requests-that-never-get-the-credential), или любой ключ на плане Team или Enterprise, остаётся в переменной окружения |310| Ключи API и токены для сервисов, которые Claude вызывает | На планах Pro и Max, как [учётные данные API](#add-api-credentials) | Вы добавляете ключ один раз в среду и прокси агента прикрепляет его к запросам для хостов, которые вы перечисляете. Ключ, который прокси агента [не может прикрепить](#requests-that-never-get-the-credential), или любой ключ на плане Team или Enterprise, остаётся в переменной окружения |

commands.md +4 −4

Details

61| `/autocompact [auto\|<tokens>]` | Установить окно auto-compact: насколько полным становится контекстное окно перед автоматической компактификацией Claude Code. Передайте размер, такой как `500k`, или `auto` для возврата к окну, настроенному для вашей модели. Claude Code сохраняет значение в пользовательские параметры и применяет его к текущему сеансу. См. [Установить окно auto-compact](/docs/ru/model-config#set-the-auto-compact-window) для принимаемых значений и того, что его переопределяет. Без аргумента открывает диалог, показывающий текущее окно. Требует Claude Code версии 2.1.221 или позже |61| `/autocompact [auto\|<tokens>]` | Установить окно auto-compact: насколько полным становится контекстное окно перед автоматической компактификацией Claude Code. Передайте размер, такой как `500k`, или `auto` для возврата к окну, настроенному для вашей модели. Claude Code сохраняет значение в пользовательские параметры и применяет его к текущему сеансу. См. [Установить окно auto-compact](/docs/ru/model-config#set-the-auto-compact-window) для принимаемых значений и того, что его переопределяет. Без аргумента открывает диалог, показывающий текущее окно. Требует Claude Code версии 2.1.221 или позже |

62| `/autofix-pr [prompt]` | Запустить сеанс [Claude Code в веб-версии](/docs/ru/claude-code-on-the-web#auto-fix-pull-requests), который отслеживает PR текущей ветки и отправляет исправления при сбое CI или комментариях рецензентов. Обнаруживает открытый PR из вашей текущей ветки с помощью `gh pr view`; чтобы отслеживать другой PR, сначала переключитесь на его ветку. По умолчанию облачному сеансу сообщается исправить каждый сбой CI и комментарий рецензента; передайте подсказку, чтобы дать ему другие инструкции, например `/autofix-pr only fix lint and type errors`. Требует CLI `gh` и доступ к [Claude Code в веб-версии](/docs/ru/claude-code-on-the-web) |62| `/autofix-pr [prompt]` | Запустить сеанс [Claude Code в веб-версии](/docs/ru/claude-code-on-the-web#auto-fix-pull-requests), который отслеживает PR текущей ветки и отправляет исправления при сбое CI или комментариях рецензентов. Обнаруживает открытый PR из вашей текущей ветки с помощью `gh pr view`; чтобы отслеживать другой PR, сначала переключитесь на его ветку. По умолчанию облачному сеансу сообщается исправить каждый сбой CI и комментарий рецензента; передайте подсказку, чтобы дать ему другие инструкции, например `/autofix-pr only fix lint and type errors`. Требует CLI `gh` и доступ к [Claude Code в веб-версии](/docs/ru/claude-code-on-the-web) |

63| `/background [prompt]` | Отсоединить текущий сеанс для запуска как [фоновый агент](/docs/ru/agent-view) и освободить этот терминал. Передайте подсказку, чтобы отправить ещё одну инструкцию перед отсоединением. Отслеживайте сеанс с помощью `claude agents`. Чтобы скопировать разговор в новый фоновый сеанс, пока этот продолжает работать, используйте `/fork`. Псевдоним: `/bg` |63| `/background [prompt]` | Отсоединить текущий сеанс для запуска как [фоновый агент](/docs/ru/agent-view) и освободить этот терминал. Передайте подсказку, чтобы отправить ещё одну инструкцию перед отсоединением. Отслеживайте сеанс с помощью `claude agents`. Чтобы скопировать разговор в новый фоновый сеанс, пока этот продолжает работать, используйте `/fork`. Псевдоним: `/bg` |

64| `/batch <instruction>` | **[Skill](/docs/ru/skills#bundled-skills).** Организовать крупномасштабные изменения по всей кодовой базе параллельно. Исследует кодовую базу, разбивает работу на 5–30 независимых единиц и представляет план. После одобрения запускает один [фоновый подагент](/docs/ru/sub-agents#run-subagents-in-foreground-or-background) на единицу в изолированном [git worktree](/docs/ru/worktrees). Каждый подагент реализует свою единицу, запускает тесты и открывает pull request. Требует git-репозиторий. Пример: `/batch migrate src/ from JavaScript to TypeScript` |64| `/batch <instruction>` | **[Skill](/docs/ru/skills#bundled-skills).** Организовать крупномасштабные изменения по всей кодовой базе параллельно. Исследует кодовую базу, разбивает работу на 5–30 независимых единиц и представляет план. После одобрения запускает один [фоновый подагент](/docs/ru/sub-agents#run-subagents-in-foreground-or-background) на единицу в изолированном [worktree](/docs/ru/worktrees). Каждый подагент реализует свою единицу, запускает тесты и публикует свои изменения. Требует git-репозиторий или [`WorktreeCreate` hook](/docs/ru/worktrees#non-git-version-control), который создаёт worktrees. Вне git-репозитория `/batch` требует Claude Code версии 2.1.281 или позже. Пример: `/batch migrate src/ from JavaScript to TypeScript` |

65| `/branch [name]` | Создать ветку текущего разговора в этой точке, чтобы вы могли попробовать другое направление без потери разговора в его текущем состоянии. Переключает вас в ветку и сохраняет оригинал, к которому вы можете вернуться с помощью `/resume`. Чтобы запустить копию как отдельный [фоновый сеанс](/docs/ru/agent-view) вместо переключения в неё, используйте `/fork`; чтобы передать побочную задачу [подагенту](/docs/ru/sub-agents), который отчитывается обратно в этот разговор, используйте `/subtask` |65| `/branch [name]` | Создать ветку текущего разговора в этой точке, чтобы вы могли попробовать другое направление без потери разговора в его текущем состоянии. Переключает вас в ветку и сохраняет оригинал, к которому вы можете вернуться с помощью `/resume`. Чтобы запустить копию как отдельный [фоновый сеанс](/docs/ru/agent-view) вместо переключения в неё, используйте `/fork`; чтобы передать побочную задачу [подагенту](/docs/ru/sub-agents), который отчитывается обратно в этот разговор, используйте `/subtask` |

66| `/btw [question]` | Задать [побочный вопрос](/docs/ru/interactive-mode#side-questions-with-%2Fbtw) о текущем сеансе без добавления в разговор. Если вы запустите `/btw` без вопроса, Claude Code показывает ваш самый последний побочный вопрос, чтобы вы могли просмотреть более ранние ответы; если вы ещё не задавали его, Claude Code выводит строку использования. До версии 2.1.212 `/btw` требовал вопрос |66| `/btw [question]` | Задать [побочный вопрос](/docs/ru/interactive-mode#side-questions-with-%2Fbtw) о текущем сеансе без добавления в разговор. Если вы запустите `/btw` без вопроса, Claude Code показывает ваш самый последний побочный вопрос, чтобы вы могли просмотреть более ранние ответы; если вы ещё не задавали его, Claude Code выводит строку использования. До версии 2.1.212 `/btw` требовал вопрос |

67| `/bug [report]` | Сообщить об ошибке или поделиться своим разговором. Вы выбираете, сколько истории сеанса включить, и подтверждаете на экране согласия перед отправкой чего-либо. Когда вы вошли в Anthropic на первостороннем соединении, отчёт идёт в Anthropic; на стороннем поставщике или без учётных данных Anthropic, Claude Code записывает отчёт в [локальный архив под `~/.claude/feedback-bundles/`](/docs/ru/data-usage#telemetry-services), который вы пересылаете сами. В [расширении VS Code](/docs/ru/vs-code#use-the-prompt-box) `/bug` открывает собственный диалог обратной связи расширения; требует Claude Code версии 2.1.229 или позже. Когда вы запускаете её во время ответа Claude, Claude Code открывает диалог сразу же. До версии 2.1.232 Claude Code ставил команду в очередь до завершения хода. Псевдоним: `/share`. До версии 2.1.212 `/bug` и `/share` были псевдонимами `/feedback` |67| `/bug [report]` | Сообщить об ошибке или поделиться своим разговором. Вы выбираете, сколько истории сеанса включить, и подтверждаете на экране согласия перед отправкой чего-либо. Когда вы вошли в Anthropic на первостороннем соединении, отчёт идёт в Anthropic; на стороннем поставщике или без учётных данных Anthropic, Claude Code записывает отчёт в [локальный архив под `~/.claude/feedback-bundles/`](/docs/ru/data-usage#telemetry-services), который вы пересылаете сами. В [расширении VS Code](/docs/ru/vs-code#use-the-prompt-box) `/bug` открывает собственный диалог обратной связи расширения; требует Claude Code версии 2.1.229 или позже. Когда вы запускаете её во время ответа Claude, Claude Code открывает диалог сразу же. До версии 2.1.232 Claude Code ставил команду в очередь до завершения хода. Псевдоним: `/share`. До версии 2.1.212 `/bug` и `/share` были псевдонимами `/feedback` |

68| `/cd <path>` | Переместить этот сеанс в новый рабочий каталог, сохраняя разговор. Введите частичный путь, чтобы увидеть предложения соответствующих каталогов; нажмите `Tab` для принятия. Предложения требуют Claude Code версии 2.1.206 или позже. Для того, что Claude Code применяет из нового каталога сразу же при перемещении, и как `/cd` отличается от `/add-dir`, см. [Переместить сеанс в другой каталог](/docs/ru/permissions#move-the-session-to-another-directory) |68| `/cd <path>` | Переместить этот сеанс в новый рабочий каталог, сохраняя разговор. Введите частичный путь, чтобы увидеть предложения соответствующих каталогов; нажмите `Tab` для принятия. Предложения требуют Claude Code версии 2.1.206 или позже. Для того, что Claude Code применяет из нового каталога сразу же при перемещении, и как `/cd` отличается от `/add-dir`, см. [Переместить сеанс в другой каталог](/docs/ru/permissions#move-the-session-to-another-directory) |

69| `/chrome` | Настроить параметры [Claude в Chrome](/docs/ru/chrome) |69| `/chrome` | Настроить параметры [Claude в Chrome](/docs/ru/chrome) |

70| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb]` | **[Skill](/docs/ru/skills#bundled-skills).** Загрузить справочный материал [Claude API](https://platform.claude.com/docs/en/api/overview) и [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) для языка вашего проекта. Также активируется автоматически, когда ваш код импортирует `anthropic` или `@anthropic-ai/sdk`. Запустите `migrate` для обновления существующего кода Claude API на более новую модель. Запустите `upgrade` для перемещения зависимости Anthropic SDK вашего проекта через основную версию, в настоящее время пакет Python `anthropic` с 0.x на 1.x. Запустите `managed-agents-onboard` для пошагового руководства, которое создаёт нового Managed Agent. Запустите `prompt-audit` для отмечания инструкций, написанных для более старых моделей в ваших подсказках, skills и описаниях инструментов, и предложения исправлений как diff. Запустите `cost-optimize` для профилирования того, куда идут расходы Claude API вашего проекта, и предложения сбережений из опций, таких как prompt caching, обрезка ненужных входных и выходных токенов, пакетная обработка, усилие и выбор модели, по одному изменению за раз. Запустите `build-eval` для создания набора eval для вашего приложения на базе Claude, и `hillclimb` для итеративного улучшения приложения против существующего eval. Подкоманда `prompt-audit` требует Claude Code версии 2.1.221 или позже, `upgrade` требует версии 2.1.236 или позже, `cost-optimize` требует версии 2.1.247 или позже, а `build-eval` и `hillclimb` требуют версии 2.1.259 или позже |70| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb]` | **[Skill](/docs/ru/skills#bundled-skills).** Загрузить справочный материал [Claude API](https://platform.claude.com/docs/en/api/overview) и [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) для языка вашего проекта. Также активируется автоматически, когда ваш код импортирует `anthropic` или `@anthropic-ai/sdk`. Запустите `migrate` для обновления существующего кода Claude API на более новую модель. Запустите `upgrade` для перемещения зависимости Anthropic SDK вашего проекта через основную версию, в настоящее время пакет Python `anthropic` с 0.x на 1.x. Запустите `managed-agents-onboard` для пошагового руководства, которое создаёт нового Managed Agent. Запустите `prompt-audit` для отмечания инструкций, написанных для более старых моделей в ваших подсказках, skills и описаниях инструментов, и предложения исправлений как diff. Запустите `cost-optimize` для профилирования того, куда идут расходы Claude API вашего проекта, и предложения сбережений из опций, таких как prompt caching, обрезка ненужных входных и выходных токенов, пакетная обработка, усилие и выбор модели, по одному изменению за раз. Запустите `build-eval` для создания набора eval для вашего приложения на базе Claude, и `hillclimb` для итеративного улучшения приложения против существующего eval. Подкоманда `prompt-audit` требует Claude Code версии 2.1.221 или позже, `upgrade` требует версии 2.1.236 или позже, `cost-optimize` требует версии 2.1.247 или позже, а `build-eval` и `hillclimb` требуют версии 2.1.259 или позже |

71| `/clear [name]` | Начать новый разговор с пустым контекстом. Передайте имя для обозначения предыдущего разговора в средстве выбора `/resume`. Чтобы освободить контекст, продолжая тот же разговор, используйте `/compact`. Возобновите предыдущий разговор с помощью `/resume`, или, в том же процессе Claude Code, восстановите его из [записи предыдущего сеанса меню перемотки](/docs/ru/checkpointing#rewind-past-a-cleared-conversation). Запись перемотки требует Claude Code версии 2.1.191 или позже. Псевдонимы: `/reset`, `/new` |71| `/clear [name]` | Начать новый разговор с пустым контекстом. Передайте имя для обозначения предыдущего разговора в средстве выбора `/resume`. Чтобы освободить контекст, продолжая тот же разговор, используйте `/compact`. Возобновите предыдущий разговор с помощью `/resume`, или, в том же процессе Claude Code, восстановите его из [записи предыдущего сеанса меню перемотки](/docs/ru/checkpointing#rewind-past-a-cleared-conversation). Псевдонимы: `/reset`, `/new` |

72| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/ru/skills#bundled-skills).** Проверить текущий diff, или PR номер, ветку или путь, который вы передаёте, на ошибки корректности. В зависимости от вашей модели и уровня усилий, проверка также охватывает возможности очистки. Передайте `--fix` для применения результатов, `--comment` для публикации их на GitHub PR или GitLab merge request, или `ultra` для запуска глубокой [облачной проверки](/docs/ru/ultrareview). Публикация в GitLab merge request требует Claude Code версии 2.1.257 или позже. С `ultra` на целевом `github.com` PR передайте `--post` для предварительного выбора [публикации завершённых результатов на PR](/docs/ru/ultrareview#post-findings-to-the-pull-request) в диалоге запуска; `--post` требует Claude Code версии 2.1.227 или позже. См. [Проверить diff локально](/docs/ru/code-review#review-a-diff-locally) для уровней усилий, нацеливания и того, как это связано с `/simplify`. Псевдоним: `/review` |72| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/ru/skills#bundled-skills).** Проверить текущий diff, или PR номер, ветку или путь, который вы передаёте, на ошибки корректности. В зависимости от вашей модели и уровня усилий, проверка также охватывает возможности очистки. Передайте `--fix` для применения результатов, `--comment` для публикации их на GitHub PR или GitLab merge request, или `ultra` для запуска глубокой [облачной проверки](/docs/ru/ultrareview). Публикация в GitLab merge request требует Claude Code версии 2.1.257 или позже. С `ultra` на целевом `github.com` PR передайте `--post` для предварительного выбора [публикации завершённых результатов на PR](/docs/ru/ultrareview#post-findings-to-the-pull-request) в диалоге запуска; `--post` требует Claude Code версии 2.1.227 или позже. См. [Проверить diff локально](/docs/ru/code-review#review-a-diff-locally) для уровней усилий, нацеливания и того, как это связано с `/simplify`. Псевдоним: `/review` |

73| `/color [color\|default]` | Установить цвет строки подсказки для текущего сеанса. Доступные цвета: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Используйте `default` для сброса, или запустите без аргумента для выбора случайного цвета. Когда [Remote Control](/docs/ru/remote-control) подключён, цвет синхронизируется с claude.ai/code. Также доступно в неинтерактивном режиме (`-p`); требует Claude Code версии 2.1.205 или позже |73| `/color [color\|default]` | Установить цвет строки подсказки для текущего сеанса. Доступные цвета: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Используйте `default` для сброса, или запустите без аргумента для выбора случайного цвета. Когда [Remote Control](/docs/ru/remote-control) подключён, цвет синхронизируется с claude.ai/code. Также доступно в неинтерактивном режиме (`-p`); требует Claude Code версии 2.1.205 или позже |

74| `/compact [instructions]` | Освободить контекст путём суммирования разговора до сих пор. Опционально передайте инструкции фокуса для суммирования. См. [как компактификация обрабатывает правила, skills и файлы памяти](/docs/ru/context-window#what-survives-compaction) |74| `/compact [instructions]` | Освободить контекст путём суммирования разговора до сих пор. Опционально передайте инструкции фокуса для суммирования. См. [как компактификация обрабатывает правила, skills и файлы памяти](/docs/ru/context-window#what-survives-compaction) |


116| `/passes` | Поделиться бесплатной неделей Claude Code с друзьями. Видно только если ваш аккаунт имеет право |116| `/passes` | Поделиться бесплатной неделей Claude Code с друзьями. Видно только если ваш аккаунт имеет право |

117| `/permissions` | Управлять правилами разрешения, запроса и отказа для разрешений инструментов. Открывает интерактивный диалог, где вы можете просмотреть правила по области, добавить или удалить правила, управлять рабочими каталогами и просмотреть [недавние отказы auto mode](/docs/ru/auto-mode-config#review-denials). Вы также можете просмотреть и отредактировать [правила классификатора auto mode](/docs/ru/auto-mode-config#edit-rules-from-permissions) из вкладки **Auto mode** диалога. Когда вы запускаете её во время ответа Claude, Claude Code открывает диалог сразу же и применяет ваши изменения, начиная со следующего вызова инструмента Claude в этом же ходу. До версии 2.1.234 Claude Code ставил команду в очередь до завершения хода. Псевдоним: `/allowed-tools` |117| `/permissions` | Управлять правилами разрешения, запроса и отказа для разрешений инструментов. Открывает интерактивный диалог, где вы можете просмотреть правила по области, добавить или удалить правила, управлять рабочими каталогами и просмотреть [недавние отказы auto mode](/docs/ru/auto-mode-config#review-denials). Вы также можете просмотреть и отредактировать [правила классификатора auto mode](/docs/ru/auto-mode-config#edit-rules-from-permissions) из вкладки **Auto mode** диалога. Когда вы запускаете её во время ответа Claude, Claude Code открывает диалог сразу же и применяет ваши изменения, начиная со следующего вызова инструмента Claude в этом же ходу. До версии 2.1.234 Claude Code ставил команду в очередь до завершения хода. Псевдоним: `/allowed-tools` |

118| `/plan [description]` | Войти в Plan Mode напрямую из подсказки. Передайте необязательное описание для входа в Plan Mode и немедленного начала с этой задачей, например `/plan fix the auth bug` |118| `/plan [description]` | Войти в Plan Mode напрямую из подсказки. Передайте необязательное описание для входа в Plan Mode и немедленного начала с этой задачей, например `/plan fix the auth bug` |

119| `/plugin [subcommand]` | Управлять [плагинами](/docs/ru/plugins) Claude Code. Запустите без аргумента для открытия меню плагинов, или передайте подкоманду, такую как `list`, `install`, `enable` или `disable` для прямого действия. Claude Code может активировать плагин во время установки; [резюме установки](/docs/ru/discover-plugins#install-plugins) говорит вам, сделал ли он это или нужно ли запустить `/reload-plugins` |119| `/plugin [subcommand]` | Управлять [плагинами](/docs/ru/plugins/overview) Claude Code. Запустите без аргумента для открытия меню плагинов, или передайте подкоманду, такую как `list`, `install`, `enable` или `disable` для прямого действия. Claude Code может активировать плагин во время установки; [резюме установки](/docs/ru/plugins/install#install-a-plugin) говорит вам, сделал ли он это или нужно ли запустить `/reload-plugins` |

120| `/powerup` | Откройте функции Claude Code через быстрые интерактивные уроки с анимированными демонстрациями |120| `/powerup` | Откройте функции Claude Code через быстрые интерактивные уроки с анимированными демонстрациями |

121| `/pr-comments [PR]` | Удалено в версии 2.1.91. Попросите Claude напрямую просмотреть комментарии pull request. На более ранних версиях получает и отображает комментарии из GitHub pull request; автоматически обнаруживает PR для текущей ветки, или передайте URL или номер PR. Требует CLI `gh` |121| `/pr-comments [PR]` | Удалено в версии 2.1.91. Попросите Claude напрямую просмотреть комментарии pull request. На более ранних версиях получает и отображает комментарии из GitHub pull request; автоматически обнаруживает PR для текущей ветки, или передайте URL или номер PR. Требует CLI `gh` |

122| `/privacy-settings` | Просмотреть и обновить ваши параметры конфиденциальности. Доступно только для подписчиков плана Pro и Max |122| `/privacy-settings` | Просмотреть и обновить ваши параметры конфиденциальности. Доступно только для подписчиков плана Pro и Max |


124| `/rate-limit-options` | Показать способы продолжить работу, когда лимит использования claude.ai блокирует запрос: ждать и [продолжить автоматически, когда лимит сбросится](/docs/ru/interactive-mode#wait-for-a-usage-limit-to-reset), добавить [кредиты использования](/docs/ru/costs#add-usage-credits-to-your-subscription) или обновить ваш план. Claude Code также может открыть это меню самостоятельно, когда вы достигаете лимита на вашем собственном терминале. См. [Отключить автоматическое продолжение](/docs/ru/interactive-mode#turn-automatic-continue-off). Требует подписку claude.ai. Не отображается в меню команд; введите полностью. Строки ожидания и продолжения требуют Claude Code версии 2.1.234 или позже |124| `/rate-limit-options` | Показать способы продолжить работу, когда лимит использования claude.ai блокирует запрос: ждать и [продолжить автоматически, когда лимит сбросится](/docs/ru/interactive-mode#wait-for-a-usage-limit-to-reset), добавить [кредиты использования](/docs/ru/costs#add-usage-credits-to-your-subscription) или обновить ваш план. Claude Code также может открыть это меню самостоятельно, когда вы достигаете лимита на вашем собственном терминале. См. [Отключить автоматическое продолжение](/docs/ru/interactive-mode#turn-automatic-continue-off). Требует подписку claude.ai. Не отображается в меню команд; введите полностью. Строки ожидания и продолжения требуют Claude Code версии 2.1.234 или позже |

125| `/recap` | Создать однострочное резюме текущего сеанса по требованию. См. [Резюме сеанса](/docs/ru/interactive-mode#session-recap) для автоматического резюме, которое появляется после того, как вы были в отсутствии |125| `/recap` | Создать однострочное резюме текущего сеанса по требованию. См. [Резюме сеанса](/docs/ru/interactive-mode#session-recap) для автоматического резюме, которое появляется после того, как вы были в отсутствии |

126| `/release-notes` | Просмотреть журнал изменений в интерактивном средстве выбора версий. Выберите конкретную версию для просмотра её примечаний к выпуску, или выберите показать все версии. Примечания появляются в вашей стенограмме без входа в разговор, который видит Claude |126| `/release-notes` | Просмотреть журнал изменений в интерактивном средстве выбора версий. Выберите конкретную версию для просмотра её примечаний к выпуску, или выберите показать все версии. Примечания появляются в вашей стенограмме без входа в разговор, который видит Claude |

127| `/reload-plugins [--force]` | Перезагрузить все активные [плагины](/docs/ru/plugins) для применения ожидающих изменений без перезагрузки. Сообщает счёты для каждого перезагруженного компонента и отмечает любые ошибки загрузки. Когда перезагрузка изменит, какие инструменты MCP загружены и аннулирует кэш подсказок, команда предупреждает и пропускает, если вы не передаёте `--force`. Также доступно в неинтерактивном режиме (`-p`), Agent SDK и приложении для рабочего стола, где оно запускается только на входе, введённом напрямую в сеанс и не применяет изменения MCP сервера плагина; требует Claude Code версии 2.1.260 или позже. См. [Применить изменения плагина без перезагрузки](/docs/ru/discover-plugins#apply-plugin-changes-without-restarting) |127| `/reload-plugins [--force]` | Перезагрузить все активные [плагины](/docs/ru/plugins/overview) для применения ожидающих изменений без перезагрузки. Сообщает счёты для каждого перезагруженного компонента и отмечает любые ошибки загрузки. Когда перезагрузка изменит, какие инструменты MCP загружены и аннулирует кэш подсказок, команда предупреждает и пропускает, если вы не передаёте `--force`. Также доступно в неинтерактивном режиме (`-p`), Agent SDK и приложении для рабочего стола, где оно запускается только на входе, введённом напрямую в сеанс и не применяет изменения MCP сервера плагина; требует Claude Code версии 2.1.260 или позже. См. [Применить изменения плагина без перезагрузки](/docs/ru/plugins/cli-reference#reload-plugins) |

128| `/reload-skills` | Повторно сканировать каталоги [skill](/docs/ru/skills) и команд, чтобы skills, добавленные или изменённые на диске во время сеанса, стали доступны без перезагрузки. Сообщает, сколько skills доступно и сколько было добавлено или удалено |128| `/reload-skills` | Повторно сканировать каталоги [skill](/docs/ru/skills) и команд, чтобы skills, добавленные или изменённые на диске во время сеанса, стали доступны без перезагрузки. Сообщает, сколько skills доступно и сколько было добавлено или удалено |

129| `/remote-control` | Сделать этот сеанс доступным для [Remote Control](/docs/ru/remote-control) из claude.ai. Запуск при выходе выводит, что Remote Control требует подписку claude.ai и говорит вам, как войти; до версии 2.1.206 это сообщало `Unknown command: /remote-control`. Псевдоним: `/rc` |129| `/remote-control` | Сделать этот сеанс доступным для [Remote Control](/docs/ru/remote-control) из claude.ai. Запуск при выходе выводит, что Remote Control требует подписку claude.ai и говорит вам, как войти; до версии 2.1.206 это сообщало `Unknown command: /remote-control`. Псевдоним: `/rc` |

130| `/remote-env` | Выбрать окружение по умолчанию для [облачных сеансов](/docs/ru/cloud-environments#select-an-environment-from-the-cli), которые вы запускаете из CLI |130| `/remote-env` | Выбрать окружение по умолчанию для [облачных сеансов](/docs/ru/cloud-environments#select-an-environment-from-the-cli), которые вы запускаете из CLI |

Details

110 110 

111 * Будьте конкретны в том, что вы ищете111 * Будьте конкретны в том, что вы ищете

112 * Используйте предметный язык из проекта112 * Используйте предметный язык из проекта

113 * Установите [плагин анализа кода](/docs/ru/discover-plugins#code-intelligence) для вашего языка, чтобы дать Claude точную навигацию "перейти к определению" и "найти ссылки"113 * Установите [плагин анализа кода](/docs/ru/plugins/code-intelligence) для вашего языка, чтобы дать Claude точную навигацию "перейти к определению" и "найти ссылки"

114</Tip>114</Tip>

115 115 

116***116***


329 329 

330 1. Перетащите изображение в окно Claude Code330 1. Перетащите изображение в окно Claude Code

331 2. Скопируйте изображение и вставьте его в CLI с помощью `Ctrl+V`, или с помощью [`Alt+V` на Windows и WSL](/docs/ru/interactive-mode#general-controls)331 2. Скопируйте изображение и вставьте его в CLI с помощью `Ctrl+V`, или с помощью [`Alt+V` на Windows и WSL](/docs/ru/interactive-mode#general-controls)

332 3. Предоставьте Claude путь к изображению. Например, "Analyze this image: /path/to/your/image.png"332 3. Предоставьте Claude путь к изображению, например "Analyze this image: /path/to/your/image.png"

333 </Step>333 </Step>

334 334 

335 <Step title="Попросите Claude проанализировать изображение">335 <Step title="Попросите Claude проанализировать изображение">

costs.md +1 −1

Details

290 Установите плагины code intelligence для типизированных языков290 Установите плагины code intelligence для типизированных языков

291</h3>291</h3>

292 292 

293[Плагины code intelligence](/docs/ru/discover-plugins#code-intelligence) дают Claude точную навигацию по символам вместо поиска на основе текста, снижая ненужные чтения файлов при изучении незнакомого кода. Один вызов "go to definition" заменяет то, что в противном случае могло бы быть grep, за которым следует чтение нескольких файлов-кандидатов. Установленные языковые серверы также автоматически сообщают об ошибках типов после редактирования, поэтому Claude ловит ошибки без запуска компилятора.293[Плагины code intelligence](/docs/ru/plugins/code-intelligence) дают Claude точную навигацию по символам вместо поиска на основе текста, снижая ненужные чтения файлов при изучении незнакомого кода. Один вызов "go to definition" заменяет то, что в противном случае могло бы быть grep, за которым следует чтение нескольких файлов-кандидатов. Установленные языковые серверы также автоматически сообщают об ошибках типов после редактирования, поэтому Claude ловит ошибки без запуска компилятора.

294 294 

295<h3 id="offload-processing-to-hooks-and-skills">295<h3 id="offload-processing-to-hooks-and-skills">

296 Делегируйте обработку hooks и skills296 Делегируйте обработку hooks и skills

Details

109| Hook никогда не срабатывает | `matcher` — это JSON массив вместо строки | Используйте одну строку с `\|` для соответствия нескольким tools, например `"Edit\|Write"`. См. [matcher patterns](/docs/ru/hooks#matcher-patterns). |109| Hook никогда не срабатывает | `matcher` — это JSON массив вместо строки | Используйте одну строку с `\|` для соответствия нескольким tools, например `"Edit\|Write"`. См. [matcher patterns](/docs/ru/hooks#matcher-patterns). |

110| Hook никогда не срабатывает | `matcher` использует `,` как разделитель в версии до v2.1.191 | Claude Code v2.1.191 или позже рассматривает `,` как разделитель списка, как `\|`. Более ранние версии оценивают запятую как буквальный символ, поэтому `"Edit,Write"` ничему не соответствует. Используйте `\|` вместо этого или обновите Claude Code. |110| Hook никогда не срабатывает | `matcher` использует `,` как разделитель в версии до v2.1.191 | Claude Code v2.1.191 или позже рассматривает `,` как разделитель списка, как `\|`. Более ранние версии оценивают запятую как буквальный символ, поэтому `"Edit,Write"` ничему не соответствует. Используйте `\|` вместо этого или обновите Claude Code. |

111| Hook никогда не срабатывает | значение `matcher` в нижнем регистре, например `"bash"` | Соответствие чувствительно к регистру. Имена tools написаны с заглавной буквы: `Bash`, `Edit`, `Write`, `Read`. |111| Hook никогда не срабатывает | значение `matcher` в нижнем регистре, например `"bash"` | Соответствие чувствительно к регистру. Имена tools написаны с заглавной буквы: `Bash`, `Edit`, `Write`, `Read`. |

112| Hook никогда не срабатывает | Hooks находятся в отдельном файле вместо `settings.json` | Нет отдельного файла hooks для конфигурации проекта или пользователя. Определите hooks под ключом `"hooks"` в `settings.json`. Только [plugins](/docs/ru/plugins-reference#hooks) загружают отдельный `hooks/hooks.json`. См. [hook configuration](/docs/ru/hooks). |112| Hook никогда не срабатывает | Hooks находятся в отдельном файле вместо `settings.json` | Нет отдельного файла hooks для конфигурации проекта или пользователя. Определите hooks под ключом `"hooks"` в `settings.json`. Только [plugins](/docs/ru/plugins/components#hooks) загружают отдельный `hooks/hooks.json`. См. [hook configuration](/docs/ru/hooks). |

113| Permissions, hooks или env, установленные глобально, игнорируются | Конфигурация была добавлена в `~/.claude.json` | `~/.claude.json` содержит состояние приложения и переключатели UI. `permissions`, `hooks` и `env` принадлежат `~/.claude/settings.json`. Это два разных файла. |113| Permissions, hooks или env, установленные глобально, игнорируются | Конфигурация была добавлена в `~/.claude.json` | `~/.claude.json` содержит состояние приложения и переключатели UI. `permissions`, `hooks` и `env` принадлежат `~/.claude/settings.json`. Это два разных файла. |

114| Значение `settings.json` кажется игнорируемым | Тот же ключ установлен в `settings.local.json` | `settings.local.json` переопределяет `settings.json`, и оба переопределяют `~/.claude/settings.json`. См. [settings precedence](/docs/ru/settings#settings-precedence). |114| Значение `settings.json` кажется игнорируемым | Тот же ключ установлен в `settings.local.json` | `settings.local.json` переопределяет `settings.json`, и оба переопределяют `~/.claude/settings.json`. См. [settings precedence](/docs/ru/settings#settings-precedence). |

115| Skill не появляется в `/skills` | Файл skill находится в `.claude/skills/name.md` вместо папки | Используйте папку с `SKILL.md` внутри: `.claude/skills/name/SKILL.md`. |115| Skill не появляется в `/skills` | Файл skill находится в `.claude/skills/name.md` вместо папки | Используйте папку с `SKILL.md` внутри: `.claude/skills/name/SKILL.md`. |

desktop.md +6 −6

Details

472 472 

473Подключайте внешние сервисы, добавляйте повторно используемые рабочие процессы, настраивайте поведение Claude и конфигурируйте серверы предпросмотра. Чтобы управлять коннекторами, skills и плагинами в одном месте, нажмите **Customize** на боковой панели. Вкладка [Cowork](https://claude.com/product/cowork) в приложении Desktop получает свои skills, плагины и коннекторы из этой конфигурации Customize, которая синхронизируется через вашу учётную запись claude.ai, а не из директории `~/.claude` CLI.473Подключайте внешние сервисы, добавляйте повторно используемые рабочие процессы, настраивайте поведение Claude и конфигурируйте серверы предпросмотра. Чтобы управлять коннекторами, skills и плагинами в одном месте, нажмите **Customize** на боковой панели. Вкладка [Cowork](https://claude.com/product/cowork) в приложении Desktop получает свои skills, плагины и коннекторы из этой конфигурации Customize, которая синхронизируется через вашу учётную запись claude.ai, а не из директории `~/.claude` CLI.

474 474 

475Claude Code также загружает skills и плагины, включённые для вашей учётной записи claude.ai в сеансах терминала, где вы входите с той же учётной записью. См. [Skills синхронизированные из claude.ai](/docs/ru/skills#how-synced-skills-behave) и [Plugins синхронизированные из claude.ai](/docs/ru/plugins-reference#synced-plugins).475Claude Code также загружает skills и плагины, включённые для вашей учётной записи claude.ai в сеансах терминала, где вы входите с той же учётной записью. См. [Skills синхронизированные из claude.ai](/docs/ru/skills#how-synced-skills-behave) и [Plugins синхронизированные из claude.ai](/docs/ru/plugins/loading#synced-plugins).

476 476 

477<h3 id="connect-external-tools">477<h3 id="connect-external-tools">

478 Подключение внешних инструментов478 Подключение внешних инструментов


490 Использование skills490 Использование skills

491</h3>491</h3>

492 492 

493[Skills](/docs/ru/skills) расширяют возможности Claude. Claude загружает их автоматически, когда они релевантны, или вы можете вызвать один напрямую: введите `/` в поле подсказки или нажмите кнопку **+** и выберите **Slash commands**, чтобы просмотреть доступные. Это включает [встроенные команды](/docs/ru/commands), ваши [пользовательские skills](/docs/ru/skills#create-your-first-skill), skills проекта из вашей кодовой базы и skills из любых [установленных плагинов](/docs/ru/plugins). Выберите один, и он появится выделенным в поле ввода. Введите вашу задачу после него и отправьте как обычно.493[Skills](/docs/ru/skills) расширяют возможности Claude. Claude загружает их автоматически, когда они релевантны, или вы можете вызвать один напрямую: введите `/` в поле подсказки или нажмите кнопку **+** и выберите **Slash commands**, чтобы просмотреть доступные. Это включает [встроенные команды](/docs/ru/commands), ваши [пользовательские skills](/docs/ru/skills#create-your-first-skill), skills проекта из вашей кодовой базы и skills из любых [установленных плагинов](/docs/ru/plugins/install). Выберите один, и он появится выделенным в поле ввода. Введите вашу задачу после него и отправьте как обычно.

494 494 

495Вы можете отправить команду, пока Claude работает, так же как любое другое сообщение, и сеанс вернётся в режим ожидания после завершения хода. До версии 2.1.206 команда, отправленная во время хода, могла оставить сеанс в состоянии выполнения, и сообщения, которые вы отправили впоследствии, не доставлялись.495Вы можете отправить команду, пока Claude работает, так же как любое другое сообщение, и сеанс вернётся в режим ожидания после завершения хода. До версии 2.1.206 команда, отправленная во время хода, могла оставить сеанс в состоянии выполнения, и сообщения, которые вы отправили впоследствии, не доставлялись.

496 496 


502 Установка плагинов502 Установка плагинов

503</h3>503</h3>

504 504 

505[Plugins](/docs/ru/plugins) — это повторно используемые пакеты, которые добавляют skills, agents, hooks, MCP servers и конфигурации LSP в Claude Code. Вы можете устанавливать плагины из приложения desktop без использования терминала.505[Plugins](/docs/ru/plugins/overview) — это повторно используемые пакеты, которые добавляют skills, agents, hooks, MCP servers и конфигурации LSP в Claude Code. Вы можете устанавливать плагины из приложения desktop без использования терминала.

506 506 

507Для локальных и [SSH](#ssh-sessions) сеансов нажмите кнопку **+** рядом с полем подсказки и выберите **Plugins**, чтобы увидеть ваши установленные плагины и их skills. Чтобы добавить плагин, выберите **Add plugin** из подменю, чтобы открыть браузер плагинов, который показывает доступные плагины из ваших настроенных [marketplaces](/docs/ru/plugin-marketplaces), включая официальный marketplace Anthropic. Выберите **Manage plugins**, чтобы включить, отключить или удалить плагины.507Для локальных и [SSH](#ssh-sessions) сеансов нажмите кнопку **+** рядом с полем подсказки и выберите **Plugins**, чтобы увидеть ваши установленные плагины и их skills. Чтобы добавить плагин, выберите **Add plugin** из подменю, чтобы открыть браузер плагинов, который показывает доступные плагины из ваших настроенных [marketplaces](/docs/ru/plugins/overview), включая официальный marketplace Anthropic. Выберите **Manage plugins**, чтобы включить, отключить или удалить плагины.

508 508 

509Вы можете ограничить плагины вашей учётной записью пользователя, конкретным проектом или только локально. Если ваша организация управляет плагинами централизованно, эти плагины доступны в сеансах desktop так же, как они есть в CLI.509Вы можете ограничить плагины вашей учётной записью пользователя, конкретным проектом или только локально. Если ваша организация управляет плагинами централизованно, эти плагины доступны в сеансах desktop так же, как они есть в CLI.

510 510 

511Браузер плагинов недоступен в облачных сеансах, и плагины, которые вы устанавливаете из приложения desktop, недоступны для облачных сеансов. Облачный сеанс также не устанавливает плагины, которые объявляет `.claude/settings.json` репозитория, как описано в [Что переносится из вашей установки](/docs/ru/cloud-environments#what-carries-over-from-your-setup). Чтобы использовать плагин в облачном сеансе, включите его для вашей учётной записи claude.ai, чтобы Claude Code загрузил его как [синхронизированный плагин](/docs/ru/plugins-reference#synced-plugins). Плагины недоступны в WSL сеансах. Для полного справочника плагинов, включая создание собственных плагинов, см. [plugins](/docs/ru/plugins).511Браузер плагинов недоступен в облачных сеансах, и плагины, которые вы устанавливаете из приложения desktop, недоступны для облачных сеансов. Облачный сеанс также не устанавливает плагины, которые объявляет `.claude/settings.json` репозитория, как описано в [Что переносится из вашей установки](/docs/ru/cloud-environments#what-carries-over-from-your-setup). Плагины недоступны в WSL сеансах. Для полного справочника плагинов, включая создание собственных плагинов, см. [plugins](/docs/ru/plugins/overview).

512 512 

513<h3 id="configure-preview-servers">513<h3 id="configure-preview-servers">

514 Конфигурация серверов предпросмотра514 Конфигурация серверов предпросмотра


1023| Режимы разрешений | Все режимы, включая `dontAsk` | Manual, Accept edits, Plan и Auto. Bypass permissions появляется в селекторе режима после того, как вы включите его: через переключатель Settings на планах Pro и Max, или через политику организации на планах Team и Enterprise |1023| Режимы разрешений | Все режимы, включая `dontAsk` | Manual, Accept edits, Plan и Auto. Bypass permissions появляется в селекторе режима после того, как вы включите его: через переключатель Settings на планах Pro и Max, или через политику организации на планах Team и Enterprise |

1024| [Сторонние провайдеры](/docs/ru/third-party-integrations) | Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry | Anthropic's API по умолчанию. Для маршрутизации через шлюз см. [подключение приложения desktop к шлюзу](/docs/ru/llm-gateway-connect#desktop-app). Чтобы запустить вкладку Code на Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry или самостоятельно размещённом шлюзе LLM, см. [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview). |1024| [Сторонние провайдеры](/docs/ru/third-party-integrations) | Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry | Anthropic's API по умолчанию. Для маршрутизации через шлюз см. [подключение приложения desktop к шлюзу](/docs/ru/llm-gateway-connect#desktop-app). Чтобы запустить вкладку Code на Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry или самостоятельно размещённом шлюзе LLM, см. [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview). |

1025| [MCP servers](/docs/ru/mcp) | Настройте в файлах параметров | UI Connectors для локальных и SSH-сеансов, или файлы параметров |1025| [MCP servers](/docs/ru/mcp) | Настройте в файлах параметров | UI Connectors для локальных и SSH-сеансов, или файлы параметров |

1026| [Plugins](/docs/ru/plugins) | Команда `/plugin` | UI менеджера плагинов |1026| [Plugins](/docs/ru/plugins/overview) | Команда `/plugin` | UI менеджера плагинов |

1027| @mention файлы | Текстовые | С автодополнением; локальные и SSH-сеансы только |1027| @mention файлы | Текстовые | С автодополнением; локальные и SSH-сеансы только |

1028| Вложения файлов | Недоступно | Изображения, PDF |1028| Вложения файлов | Недоступно | Изображения, PDF |

1029| Изоляция сеанса | Флаг [`--worktree`](/docs/ru/cli-reference) | Опция **worktree** при запуске сеанса |1029| Изоляция сеанса | Флаг [`--worktree`](/docs/ru/cli-reference) | Опция **worktree** при запуске сеанса |

discover-plugins.md +0 −651 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# Откройте и установите готовые плагины через маркетплейсы

6 

7> Найдите и установите плагины из маркетплейсов, чтобы расширить Claude Code новыми skills, agents и возможностями.

8 

9Плагины расширяют Claude Code с помощью skills, agents, hooks и MCP servers. Маркетплейсы плагинов — это каталоги, которые помогают вам обнаруживать и устанавливать эти расширения без необходимости создавать их самостоятельно.

10 

11Вы также можете включить плагины на claude.ai для себя или через вашу организацию. Claude Code синхронизирует их в ваши сеансы без установки через маркетплейс, как описано в разделе [Плагины, синхронизированные с claude.ai](/docs/ru/plugins-reference#synced-plugins).

12 

13Ищете способ создать и распространять свой собственный маркетплейс? См. [Создание и распространение маркетплейса плагинов](/docs/ru/plugin-marketplaces).

14 

15<h2 id="how-marketplaces-work">

16 Как работают маркетплейсы

17</h2>

18 

19Маркетплейс — это каталог плагинов, которые кто-то другой создал и поделился. Использование маркетплейса — это двухэтапный процесс:

20 

21<Steps>

22 <Step title="Добавьте маркетплейс">

23 Это регистрирует каталог в Claude Code, чтобы вы могли просмотреть доступные плагины. Никакие плагины еще не установлены.

24 </Step>

25 

26 <Step title="Установите отдельные плагины">

27 Просмотрите каталог и установите нужные вам плагины.

28 </Step>

29</Steps>

30 

31<h2 id="official-anthropic-marketplace">

32 Официальный маркетплейс Anthropic

33</h2>

34 

35Claude Code автоматически добавляет официальный маркетплейс Anthropic (`claude-plugins-official`) при первом интерактивном запуске. Если Claude Code не может его добавить, например, потому что ваша сеть блокирует загрузку или [политика маркетплейса](/docs/ru/plugin-marketplaces#managed-marketplace-restrictions) заблокировала более раннюю попытку, добавьте его самостоятельно с помощью `/plugin marketplace add anthropics/claude-plugins-official`.

36 

37Чтобы просмотреть доступные плагины, запустите `/plugin` и перейдите на вкладку **Discover**, или просмотрите каталог на [claude.com/plugins](https://claude.com/plugins).

38 

39Чтобы установить плагин из официального маркетплейса, используйте `/plugin install <name>@claude-plugins-official`. Например, чтобы установить интеграцию GitHub:

40 

41```shell theme={null}

42/plugin install github@claude-plugins-official

43```

44 

45`/plugin` открывает интерактивную панель в терминале CLI. Если Claude сообщает, что `/plugin` недоступен в этой среде, установите плагин другим способом:

46 

47* **Приложение Claude для рабочего стола**: используйте [браузер плагинов](/docs/ru/desktop#install-plugins).

48* **Расширение VS Code**: установите из [диалога **Manage plugins**](/docs/ru/vs-code#manage-plugins).

49* **Облачные сеансы**: включите плагин для вашей учётной записи claude.ai, чтобы Claude Code загружал его как [синхронизированный плагин](/docs/ru/plugins-reference#synced-plugins).

50 

51Если установка не удалась, сопоставьте сообщение, которое сообщает Claude Code:

52 

53* `Marketplace "claude-plugins-official" not found`: добавьте маркетплейс с помощью `/plugin marketplace add anthropics/claude-plugins-official`, затем повторите попытку установки.

54* Плагин [не найден в маркетплейсе](#install-plugins): проверьте имя плагина.

55 

56<Note>

57 Официальный маркетплейс поддерживается компанией Anthropic, и включение осуществляется по усмотрению Anthropic. Встроенные формы отправки в приложении добавляют плагины в [маркетплейс сообщества](#community-marketplace), а не в официальный. Чтобы распространять плагины независимо, [создайте свой собственный маркетплейс](/docs/ru/plugin-marketplaces) и поделитесь им с пользователями.

58</Note>

59 

60Официальный маркетплейс включает несколько категорий плагинов:

61 

62<h3 id="code-intelligence">

63 Code intelligence

64</h3>

65 

66Плагины code intelligence включают встроенный инструмент LSP в Claude Code, предоставляя Claude возможность переходить к определениям, находить ссылки и видеть ошибки типов сразу после редактирования. Эти плагины настраивают подключения [Language Server Protocol](https://microsoft.github.io/language-server-protocol/), той же технологии, которая обеспечивает code intelligence в VS Code. В [облачных сеансах](/docs/ru/claude-code-on-the-web) Claude Code не запускает языковые серверы плагинов, поэтому Claude не получает инструмент LSP там.

67 

68Установите двоичный файл языкового сервера из таблицы ниже перед использованием этих плагинов; плагин не установит его за вас. Если у вас уже установлен языковой сервер, Claude может предложить вам установить соответствующий плагин при открытии проекта.

69 

70| Язык | Plugin | Требуемый двоичный файл |

71| :--------- | :------------------ | :--------------------------- |

72| C/C++ | `clangd-lsp` | `clangd` |

73| C# | `csharp-lsp` | `csharp-ls` |

74| Go | `gopls-lsp` | `gopls` |

75| Java | `jdtls-lsp` | `jdtls` |

76| Kotlin | `kotlin-lsp` | `kotlin-language-server` |

77| Lua | `lua-lsp` | `lua-language-server` |

78| PHP | `php-lsp` | `intelephense` |

79| Python | `pyright-lsp` | `pyright-langserver` |

80| Rust | `rust-analyzer-lsp` | `rust-analyzer` |

81| Swift | `swift-lsp` | `sourcekit-lsp` |

82| TypeScript | `typescript-lsp` | `typescript-language-server` |

83 

84Вы также можете [создать свой собственный LSP plugin](/docs/ru/plugins-reference#lsp-servers) для других языков.

85 

86<Note>

87 Если вы видите `Executable not found in $PATH` на вкладке `/plugin` Errors после установки плагина, установите требуемый двоичный файл из таблицы [code intelligence](#code-intelligence) для этого плагина.

88</Note>

89 

90<h4 id="what-claude-gains-from-code-intelligence-plugins">

91 Что Claude получает от плагинов code intelligence

92</h4>

93 

94После установки плагина code intelligence и доступности его двоичного файла языкового сервера Claude получает две возможности:

95 

96* **Автоматическая диагностика**: после каждого редактирования файла, которое делает Claude, языковой сервер сообщает об ошибках и предупреждениях, поэтому Claude видит ошибки типов, отсутствующие импорты и проблемы синтаксиса без необходимости запуска компилятора или линтера. Если Claude вводит ошибку, он замечает и исправляет её в том же ходу.

97* **Code navigation**: Claude может использовать языковой сервер для перехода к определениям, поиска ссылок, получения информации о типе при наведении, списка символов, поиска реализаций и отслеживания иерархий вызовов. Эти операции дают Claude более точную навигацию, чем поиск на основе grep, хотя доступность может варьироваться в зависимости от языка и окружения.

98 

99Вам не нужно настраивать диагностику сверх установки плагина. Чтобы прочитать их самостоятельно, нажмите **Ctrl+O**, когда Claude Code показывает индикатор, такой как **Found 3 new diagnostic issues in 2 files**.

100 

101Если у вас возникли проблемы, см. [Code intelligence troubleshooting](#code-intelligence-issues).

102 

103<h3 id="external-integrations">

104 External integrations

105</h3>

106 

107Эти плагины объединяют предварительно настроенные [MCP servers](/docs/ru/mcp), чтобы вы могли подключить Claude к внешним сервисам без ручной настройки:

108 

109* **Source control**: `github`, `gitlab`

110* **Project management**: `atlassian` (Jira/Confluence), `asana`, `linear`, `notion`

111* **Design**: `figma`

112* **Infrastructure**: `vercel`, `firebase`, `supabase`

113* **Communication**: `slack`

114* **Monitoring**: `sentry`

115 

116<h3 id="automatic-security-review">

117 Automatic security review

118</h3>

119 

120Плагин `security-guidance` проверяет каждое изменение, которое делает Claude, на предмет распространённых уязвимостей и инструктирует Claude исправить найденные проблемы в том же сеансе. См. [Catch security issues as Claude writes code](/docs/ru/security-guidance) для получения информации о том, что он проверяет и как добавить правила, специфичные для проекта.

121 

122<h3 id="development-workflows">

123 Development workflows

124</h3>

125 

126Плагины, которые добавляют skills и agents для общих задач разработки:

127 

128* **commit-commands**: рабочие процессы Git commit, включая commit, push и создание PR

129* **pr-review-toolkit**: специализированные agents для проверки pull requests

130* **agent-sdk-dev**: инструменты для разработки с Claude Agent SDK

131* **plugin-dev**: набор инструментов для создания собственных плагинов

132 

133<h3 id="output-styles">

134 Output styles

135</h3>

136 

137Настройте способ ответа Claude:

138 

139* **explanatory-output-style**: образовательные сведения о выборе реализации

140* **learning-output-style**: интерактивный режим обучения для развития навыков

141 

142<h2 id="community-marketplace">

143 Community marketplace

144</h2>

145 

146Маркетплейс сообщества на [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community) размещает плагины третьих сторон, которые прошли автоматическую проверку и проверку безопасности Anthropic. Каждый плагин привязан к определенному коммиту SHA в каталоге. В отличие от официального маркетплейса, вы добавляете его вручную:

147 

148```shell theme={null}

149/plugin marketplace add anthropics/claude-plugins-community

150```

151 

152Затем установите плагины из него, используя имя маркетплейса `claude-community`:

153 

154```shell theme={null}

155/plugin install <plugin-name>@claude-community

156```

157 

158Чтобы отправить свой плагин в маркетплейс сообщества, см. [Отправьте свой плагин в маркетплейс сообщества](/docs/ru/plugins#submit-your-plugin-to-the-community-marketplace) в руководстве по созданию плагинов.

159 

160<h2 id="try-it-add-the-demo-marketplace">

161 Попробуйте: добавьте демо-маркетплейс

162</h2>

163 

164Anthropic также поддерживает [демо-маркетплейс плагинов](https://github.com/anthropics/claude-code/tree/main/plugins) (`claude-code-plugins`) с примерами плагинов, которые показывают, что возможно с системой плагинов. В отличие от официального маркетплейса, вам нужно добавить этот вручную.

165 

166<Steps>

167 <Step title="Добавьте маркетплейс">

168 Из Claude Code запустите команду `plugin marketplace add` для маркетплейса `anthropics/claude-code`:

169 

170 ```shell theme={null}

171 /plugin marketplace add anthropics/claude-code

172 ```

173 

174 Это загружает каталог маркетплейса и делает его плагины доступными для вас.

175 </Step>

176 

177 <Step title="Просмотрите доступные плагины">

178 Запустите `/plugin`, чтобы открыть менеджер плагинов. Это открывает интерфейс с вкладками, по которым вы можете переходить, используя **Tab**, или **Shift+Tab** для перемещения назад:

179 

180 * **Discover**: просмотрите доступные плагины из всех ваших маркетплейсов

181 * **Installed**: просмотрите и управляйте установленными плагинами

182 * **Marketplaces**: добавляйте, удаляйте или обновляйте добавленные маркетплейсы

183 * **Errors**: просмотрите любые ошибки загрузки плагинов

184 * **Stats**: см. [сколько стоит каждый из ваших skills в контексте и как часто он используется](/docs/ru/skills#find-unused-skills), в сеансах, где доступен `/skill-doctor`

185 

186 Перейдите на вкладку **Discover**, чтобы увидеть плагины из маркетплейса, который вы только что добавили. Когда ваш администратор добавил маркетплейс в список разрешённых через управляемый параметр [`pluginSuggestionMarketplaces`](/docs/ru/settings-reference#pluginsuggestionmarketplaces), плагины, отмеченные как релевантные для вашего текущего рабочего каталога, закреплены в верхней части с меткой **suggested for this directory**.

187 </Step>

188 

189 <Step title="Установите плагин">

190 Выберите плагин для просмотра его деталей. На панели деталей показано, что содержит плагин и сколько это стоит:

191 

192 * Оценка **Context cost**, чтобы вы могли увидеть, сколько токенов плагин добавит к вашему [окну контекста](/docs/ru/features-overview#understand-context-costs) каждый ход

193 * Дата **Last updated** плагина

194 * Раздел **Will install**, в котором перечислены команды, агенты, skills, hooks и серверы MCP и LSP плагина, чтобы вы могли просмотреть ровно то, что он добавляет перед установкой

195 

196 Не каждый плагин предоставляет данные, стоящие за этими полями. Для плагинов из локальных или пользовательских маркетплейсов вы можете не увидеть строки **Context cost** и **Last updated**, а раздел **Will install** может показать **Components will be discovered at installation** вместо этого.

197 

198 Выберите область установки:

199 

200 * **User scope**: установите для себя во всех проектах

201 * **Project scope**: установите для всех сотрудников в этом репозитории

202 * **Local scope**: установите для себя только в этом репозитории

203 

204 Например, выберите **commit-commands** (плагин, который добавляет skills рабочего процесса git) и установите его в область пользователя.

205 

206 Вы также можете начать установку из командной строки:

207 

208 ```shell theme={null}

209 /plugin install commit-commands@claude-code-plugins

210 ```

211 

212 См. [Settings files](/docs/ru/settings#where-settings-live), чтобы узнать больше об областях.

213 </Step>

214 

215 <Step title="Используйте свой новый плагин">

216 Если сводка установки сообщает `Run /reload-plugins to activate.`, Claude Code затем запустит эту перезагрузку для вас. Если перезагрузка предупреждает, что ваше следующее сообщение будет повторно читать разговор, запустите `/reload-plugins --force` для активации плагина.

217 

218 Skills плагина имеют пространство имен по имени плагина, поэтому **commit-commands** предоставляет skills вроде `/commit-commands:commit`.

219 

220 Попробуйте, внеся изменение в файл и запустив:

221 

222 ```shell theme={null}

223 /commit-commands:commit

224 ```

225 

226 Это подготавливает ваши изменения, генерирует сообщение commit и создает commit.

227 

228 Каждый плагин работает по-разному. Проверьте описание плагина на вкладке **Discover**, чтобы увидеть команды и skills, которые он предоставляет, или посетите его домашнюю страницу для получения рекомендаций по использованию.

229 </Step>

230</Steps>

231 

232<h2 id="add-marketplaces">

233 Добавление маркетплейсов

234</h2>

235 

236Используйте команду `/plugin marketplace add` для добавления маркетплейсов из разных источников.

237 

238<Tip>

239 **Shortcuts**: вы можете использовать `/plugin market` вместо `/plugin marketplace` и `rm` вместо `remove`.

240</Tip>

241 

242* **GitHub repositories**: формат `owner/repo` (например, `anthropics/claude-code`)

243* **Git URLs**: любой URL репозитория git, включая GitLab, Bitbucket и самостоятельно размещенные серверы

244* **Local paths**: каталоги или прямые пути к файлам `marketplace.json`

245* **Remote URLs**: прямые URL к размещенным файлам `marketplace.json`

246* **claude.ai**: маркетплейсы, размещенные на claude.ai для вашей учетной записи, такие как библиотека плагинов вашей организации, которые вы [добавляете по имени из вкладки **Marketplaces** или вашей оболочки](#add-from-claude-ai), а не по источнику

247 

248<h3 id="add-from-github">

249 Добавление из GitHub

250</h3>

251 

252Добавьте репозиторий GitHub, который содержит файл `.claude-plugin/marketplace.json`, используя формат `owner/repo` — где `owner` — это имя пользователя GitHub или организация, а `repo` — это имя репозитория.

253 

254Например, `anthropics/claude-code` относится к репозиторию `claude-code`, принадлежащему `anthropics`:

255 

256```shell theme={null}

257/plugin marketplace add anthropics/claude-code

258```

259 

260<h3 id="add-from-other-git-hosts">

261 Добавление из других хостов Git

262</h3>

263 

264Добавьте репозиторий git маркетплейса, предоставив полный URL. Для URL `https://`, включение суффикса `.git` зависит от хоста:

265 

266* **`github.com` и `gitlab.com`**: Claude Code распознает URL репозитория с суффиксом `.git` или без него и клонирует его. Добавление URL `gitlab.com` без суффикса требует Claude Code v2.1.232 или более поздней версии. До v2.1.232 Claude Code рассматривал его как прямую ссылку на размещенный файл `marketplace.json`.

267* **Azure DevOps**: опустите суффикс. Claude Code клонирует любой URL, путь которого содержит `/_git/`. Если вы добавите `.git` к пути `/_git/`, клонирование не удастся.

268* **Все остальные хосты, включая самостоятельно управляемые серверы GitLab**: включите суффикс `.git`, чтобы Claude Code клонировал репозиторий, а не рассматривал URL как прямую ссылку на размещенный файл `marketplace.json`. Для хоста, чьи URL клонирования не содержат суффикса, например AWS CodeCommit, добавьте маркетплейс как запись git в [`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces). Claude Code клонирует запись git независимо от того, заканчивается ли её URL на `.git`.

269 

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

271 

272Включите префикс `https://`. Claude Code v2.1.196 и более поздние версии отклоняют хост, введенный без него, например `gitlab.com/company/plugins.git`, как неправильное сокращение GitHub `owner/repo`, и ошибка указывает вам добавить префикс. Более ранние версии неправильно интерпретируют это как путь репозитория GitHub и не работают при клонировании.

273 

274Используя HTTPS:

275 

276```shell theme={null}

277/plugin marketplace add https://gitlab.com/company/plugins.git

278```

279 

280Используя SSH:

281 

282```shell theme={null}

283/plugin marketplace add git@gitlab.com:company/plugins.git

284```

285 

286Claude Code клонирует SSH адрес независимо от того, заканчивается ли он на `.git`.

287 

288Чтобы добавить конкретную ветку или тег, добавьте `#`, за которым следует ref:

289 

290```shell theme={null}

291/plugin marketplace add https://gitlab.com/company/plugins.git#v1.0.0

292```

293 

294<h3 id="add-from-local-paths">

295 Добавление из локальных путей

296</h3>

297 

298Добавьте локальный каталог, который содержит файл `.claude-plugin/marketplace.json`:

299 

300```shell theme={null}

301/plugin marketplace add ./my-marketplace

302```

303 

304Вы также можете добавить прямой путь к файлу `marketplace.json`:

305 

306```shell theme={null}

307/plugin marketplace add ./path/to/marketplace.json

308```

309 

310<h3 id="add-from-remote-urls">

311 Добавление из удаленных URL

312</h3>

313 

314Добавьте удаленный файл `marketplace.json` через URL:

315 

316```shell theme={null}

317/plugin marketplace add https://example.com/marketplace.json

318```

319 

320<Note>

321 Маркетплейсы на основе URL имеют некоторые ограничения по сравнению с маркетплейсами на основе Git. Если установка плагинов из маркетплейса на основе URL не удается, см. [Troubleshooting](/docs/ru/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces).

322</Note>

323 

324<h3 id="add-from-claude-ai">

325 Добавление из claude.ai

326</h3>

327 

328В сеансах терминала, где [плагины синхронизируются с вашей учетной записью claude.ai](/docs/ru/plugins-reference#synced-plugins), claude.ai также может перечислять маркетплейсы для вас, такие как библиотека плагинов вашей организации и ваши собственные загрузки на claude.ai. `claude plugin marketplace list` выводит их в разделе `From claude.ai:`, и вкладка `/plugin` **Marketplaces** их отображает. Выберите один там, чтобы добавить его. Добавление маркетплейса из claude.ai требует Claude Code v2.1.273 или более поздней версии.

329 

330Чтобы добавить маркетплейс из этого списка в вашей оболочке, запустите `claude plugin marketplace add` с флагом `--claudeai` и именем, показанным в списке:

331 

332```bash theme={null}

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

334```

335 

336Claude Code регистрирует маркетплейс под локальным именем, которое начинается с `claudeai-`, полученным из имени, под которым claude.ai его перечисляет: маркетплейс, указанный как "Organization library", регистрируется как `claudeai-organization-library`. Установите его плагины по этому имени, например с помощью `claude plugin install <plugin>@claudeai-organization-library`.

337 

338Если вы выйдете из системы или войдете с другой учетной записью, маркетплейс остается настроенным, но не показывает плагины, и плагины, которые вы уже установили из него, продолжают загружаться.

339 

340Раздел `From claude.ai:` также может перечислять маркетплейсы на основе git, общие через claude.ai. Вы добавляете их с помощью обычной команды `marketplace add`, используя источник, который выводит список.

341 

342<h2 id="install-plugins">

343 Установка плагинов

344</h2>

345 

346После добавления маркетплейсов вы можете установить плагин по имени. Для маркетплейса, который вы ещё не добавили, вы можете вместо этого [добавить его и установить в одной команде](#add-a-marketplace-and-install-in-one-command).

347 

348Для установки по имени:

349 

350```shell theme={null}

351/plugin install plugin-name@marketplace-name

352```

353 

354Команда открывает детали плагина, где вы выбираете [область установки](/docs/ru/settings#where-settings-live). Вы видите те же варианты, когда запускаете `/plugin`, переходите на вкладку **Discover** и нажимаете **Enter** на плагине:

355 

356* **User scope**: установите для себя во всех проектах

357* **Project scope**: установите для всех сотрудников в этом репозитории, что добавляет плагин в `.claude/settings.json`

358* **Local scope**: установите для себя в этом репозитории только, не делится с сотрудниками

359 

360Чтобы установить без интерактивного шага, используйте команду оболочки [`claude plugin install`](/docs/ru/plugins-reference#plugin-install), которая устанавливает в область пользователя, если вы не передадите `--scope`. Для плагина с [источником `command`](/docs/ru/plugin-marketplaces#how-users-accept-the-command) передайте `--yes` для принятия команды, которую он отображает.

361 

362Вы также можете увидеть плагины с областью **managed**. Они установлены администраторами через [управляемые параметры](/docs/ru/managed-settings) и не могут быть изменены.

363 

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

365 

366* **С именем маркетплейса**: когда вы устанавливаете `plugin-name@marketplace-name`, в сеансе или с помощью `claude plugin install`, Claude Code обновляет этот маркетплейс перед поиском. Claude Code запускает обновление даже если вы отключили [автоматическое обновление](#configure-auto-updates) для маркетплейса или установили `DISABLE_AUTOUPDATER`. До версии 2.1.232 Claude Code не обновлял маркетплейс перед поиском. Claude Code пропускает это обновление, когда:

367 * Маркетплейс не был [добавлен из GitHub, другого хоста Git или удалённого URL](#add-marketplaces) или [claude.ai](#add-from-claude-ai).

368 * [Начальный каталог](/docs/ru/plugin-marketplaces#pre-populate-plugins-for-containers) предоставляет маркетплейс.

369 * Claude Code обновил маркетплейс в течение последних 30 секунд.

370 * Вы установили [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ru/env-vars).

371 * [Управляемые параметры](/docs/ru/plugin-marketplaces#managed-marketplace-restrictions) блокируют маркетплейс, в этом случае Claude Code также отказывает в установке.

372* **Только имя плагина**: когда вы запускаете `/plugin install plugin-name` в сеансе, Claude Code обновляет только маркетплейсы, которые он также [обновляет в фоне](#configure-auto-updates), и только после того, как поиск не удаётся. Когда вы запускаете `claude plugin install plugin-name`, Claude Code читает кэшированные каталоги без обновления. Чтобы установить плагин, который был опубликован после вашего последнего обновления, запустите `/plugin marketplace update <marketplace-name>` в сеансе или [`claude plugin marketplace update <marketplace-name>`](/docs/ru/plugin-marketplaces#plugin-marketplace-update) в вашей оболочке, затем повторите попытку установки.

373 

374Если обновление перед именованной установкой не удаётся, например потому что вы в автономном режиме, Claude Code ищет плагин в кэшированном каталоге в любом случае. `claude plugin install` сообщает `marketplace not refreshed` в своём сообщении об успехе, и `/plugin install` показывает ошибку выше деталей плагина или в его сообщении об отсутствии.

375 

376Когда вы устанавливаете из интерфейса `/plugin`, сводка установки сообщает вам, активен ли плагин в вашем текущем сеансе:

377 

378* `Plugin is now active.`: Claude Code активировал плагин как часть установки.

379* `Run /reload-plugins to activate.`: плагин ещё не активен, потому что его активация [инвалидирует кэш подсказки](/docs/ru/prompt-caching#enabling-or-disabling-a-plugin) или потому что попытка активации не удалась. Claude Code затем запускает `/reload-plugins` для вас. Если эта перезагрузка предупреждает о кэше подсказки, запустите `/reload-plugins --force` для [активации плагина в любом случае](#apply-plugin-changes-without-restarting).

380* Если плагин не загружается, сводка сообщает об ошибке, и вкладка **Errors** в `/plugin` показывает детали.

381 

382До версии 2.1.221 ни одна установка не вступала в силу в текущем сеансе, пока вы не запустили `/reload-plugins` или не перезагрузили.

383 

384Команда оболочки `claude plugin install` не запускается в сеансе, поэтому Claude Code загружает плагины, которые он устанавливает, при следующем запуске Claude Code или когда вы запускаете `/reload-plugins` в уже открытом сеансе.

385 

386<Warning>

387 Убедитесь, что вы доверяете плагину перед его установкой. Anthropic не контролирует, какие MCP servers, файлы или другое программное обеспечение включены в плагины, и не может проверить, что они работают как предполагается. Проверьте домашнюю страницу каждого плагина для получения дополнительной информации.

388</Warning>

389 

390<h3 id="add-a-marketplace-and-install-in-one-command">

391 Добавление маркетплейса и установка в одной команде

392</h3>

393 

394Чтобы установить плагин из маркетплейса, который вы ещё не добавили, укажите источник маркетплейса с помощью `--marketplace`. Требуется Claude Code версии 2.1.275 или позже.

395 

396```shell theme={null}

397/plugin install quality-review-plugin --marketplace your-org/plugins

398```

399 

400Источник принимает [те же формы, что и `/plugin marketplace add`](#add-marketplaces), такие как GitHub `owner/repo`, URL git или локальный путь, за исключением того, что он не может содержать пробелы. Укажите имя плагина без суффикса `@marketplace`.

401 

402Claude Code показывает разрешённый источник и просит вас подтвердить перед добавлением маркетплейса. Отказ отменяет установку и ничего не добавляет. После добавления маркетплейса открываются детали плагина и вы выбираете [область установки](/docs/ru/settings#where-settings-live). Если источник совпадает с маркетплейсом, который вы уже добавили, Claude Code пропускает подтверждение и открывает детали плагина в этом маркетплейсе.

403 

404<h2 id="manage-installed-plugins">

405 Управление установленными плагинами

406</h2>

407 

408Запустите `/plugin` и перейдите на вкладку **Installed**, чтобы просмотреть, включить, отключить или удалить ваши плагины. Список сгруппирован по области и отсортирован так, чтобы вы сначала видели проблемы: плагины с ошибками загрузки или неразрешенными зависимостями появляются в верхней части, затем ваши избранные, с отключенными плагинами, скрытыми за свернутым заголовком внизу.

409 

410Из списка вы можете:

411 

412* нажать `f`, чтобы добавить в избранное или удалить из избранного выбранный плагин

413* ввести текст для фильтрации по имени плагина или описанию

414* нажать Enter, чтобы открыть подробный вид плагина и включить, отключить или удалить его

415 

416Claude Code также отображает [плагины, синхронизированные с вашей учетной записью claude.ai](/docs/ru/plugins-reference#synced-plugins) на вкладке **Installed** с `synced` в качестве их источника. Вы можете включить или отключить один там, если ваша организация не отметила его как обязательный. Чтобы удалить один, отключите его на claude.ai. Синхронизированные плагины появляются в сеансах терминала в Claude Code v2.1.273 или более поздней версии.

417 

418Когда вы удаляете плагин, который `.claude/settings.json` проекта включает, Claude Code спрашивает, какую область вы имеете в виду: отключить его только для вас, что записывает переопределение в ваш `.claude/settings.local.json` и оставляет плагин установленным для проекта, или удалить его для всех, что удаляет его из общего `.claude/settings.json`.

419 

420Подробный вид показывает компоненты, которые предоставляет плагин: команды, skills, agents, hooks, MCP servers и LSP servers. Тот же инвентарь доступен из командной строки с помощью `claude plugin details`.

421 

422Claude Code также отображает плагины маркетплейса, которые вы установили сами, но не использовали в течение как минимум двух недель, в течение как минимум 10 сеансов, под заголовком **Not used recently** на вкладке **Installed**. Подробный вид показывает строку **Last used** для каждого плагина. Используйте их, чтобы найти плагины, которые по-прежнему добавляют стоимость запуска и контекста, хотя вы больше их не используете, затем отключите или удалите их.

423 

424Два вида плагинов никогда не отображаются как неиспользуемые:

425 

426* плагины, которыми управляет ваша организация, или которые вы загружаете с помощью `--plugin-dir`

427* плагины, которые предоставляют тему, стиль вывода, монитор или workflow, поскольку они обеспечивают ценность без вызова для отслеживания

428 

429Заголовок **Not used recently** и строка **Last used** обе скрыты, когда ваша организация ограничивает маркетплейсы с помощью [`strictKnownMarketplaces`](/docs/ru/settings-reference#strictknownmarketplaces).

430 

431[Language server](/docs/ru/plugins#add-lsp-servers-to-your-plugin) плагина считается использованным, когда он предоставляет диагностику или отвечает на запрос навигации по коду, поэтому плагин LSP, чей сервер активен в ваших сеансах, не отображается как неиспользуемый. До v2.1.203 активность языкового сервера не могла быть учтена как использование, поэтому плагины, которые предоставляют LSP server, были полностью исключены из группы, так же как плагины темы и стиля вывода по-прежнему есть.

432 

433Первый сеанс в версии, которая считает активность языкового сервера, также сбрасывает запись об использовании каждого плагина LSP, который еще не записал никакого использования, поэтому Claude Code не судит плагин, который вы установили ранее, как неиспользуемый на основе данных, записанных до того, как была отслежена активность его сервера.

434 

435Когда вы устанавливаете плагин, который объявляет зависимости, вывод установки указывает, какие зависимости были автоматически установлены вместе с ним.

436 

437Вы также можете управлять плагинами с помощью прямых команд:

438 

439* Когда вы запускаете `/plugin disable`, `/plugin enable` или `/plugin uninstall`, Claude Code открывает панель плагинов для применения изменения и оставляет ее открытой. Нажмите **Esc**, чтобы закрыть панель перед вводом другой команды. [Применение изменений плагина без перезагрузки](#apply-plugin-changes-without-restarting) описывает, когда изменение вступает в силу в вашем сеансе.

440* Для написания скриптов используйте вместо этого команды оболочки `claude plugin`, которые не открывают панель.

441 

442Отобразите установленные плагины без открытия меню:

443 

444```shell theme={null}

445/plugin list

446```

447 

448Передайте `--enabled` или `--disabled`, чтобы показать только плагины в этом состоянии.

449 

450Отключите плагин без удаления:

451 

452```shell theme={null}

453/plugin disable plugin-name@marketplace-name

454```

455 

456Повторно включите отключенный плагин:

457 

458```shell theme={null}

459/plugin enable plugin-name@marketplace-name

460```

461 

462В этих идентификаторах `plugin-name` — это `name` плагина в [записи маркетплейса](/docs/ru/plugin-marketplaces#plugin-entries), которое может отличаться от `name` в собственном `plugin.json` плагина.

463 

464Начиная с Claude Code v2.1.195, **Enable** и **Disable** в интерфейсе `/plugin` работают для плагинов, у которых два имени отличаются, и `/plugin enable` и `/plugin disable` принимают любое имя. Когда вы отключаете такой плагин в более ранней версии, Claude Code сообщает `already disabled` и оставляет его включенным.

465 

466Полностью удалите плагин:

467 

468```shell theme={null}

469/plugin uninstall plugin-name@marketplace-name

470```

471 

472Опция `--scope` позволяет вам нацелить определенную область с помощью команд CLI:

473 

474```shell theme={null}

475claude plugin install formatter@your-org --scope project

476claude plugin uninstall formatter@your-org --scope project

477```

478 

479<h3 id="apply-plugin-changes-without-restarting">

480 Применение изменений плагина без перезагрузки

481</h3>

482 

483Когда вы закрываете меню `/plugin`, Claude Code запускает `/reload-plugins` для вас, чтобы применить изменения, которые вы в нем сделали, такие как установка, включение, отключение и удаление плагинов. Если перезагрузка будет [делать кэш подсказок недействительным](/docs/ru/prompt-caching#enabling-or-disabling-a-plugin), она предупреждает и оставляет изменения в ожидании вместо этого; запустите `/reload-plugins --force`, чтобы применить их в любом случае. Если Claude все еще отвечает, когда вы закрываете меню, перезагрузка запускается после завершения ответа.

484 

485Для изменений плагина, которые происходят вне меню, запустите `/reload-plugins` самостоятельно. Эти изменения включают:

486 

487* Команду `claude plugin`, которую вы запустили в другом терминале

488* Редактирование плагина, который вы загрузили с помощью [`--plugin-dir`](/docs/ru/plugins#test-your-plugins-locally) во время его разработки

489* Плагин [auto-update](#configure-auto-updates), чье уведомление просит вас перезагрузить

490* [Синхронизацию с вашей учетной записью claude.ai](/docs/ru/plugins-reference#synced-plugins), которая добавила, обновила или удалила плагин и показала уведомление, просящее вас перезагрузить

491* Изменение в папке [`--plugin-dir`](/docs/ru/plugins#test-your-plugins-locally), которое Claude Code удерживал, потому что применение его сделало бы кэш подсказок недействительным

492 

493До v2.1.268 плагины, которые вы включили, отключили или удалили в меню, и установки, которые не активировались во время установки, оставались в ожидании до тех пор, пока вы не запустили `/reload-plugins`.

494 

495`/reload-plugins` также работает в сеансах без интерактивного терминала, таких как настольное приложение, Agent SDK и [неинтерактивный режим](/docs/ru/headless) с `-p`. Требуется Claude Code v2.1.260 или более поздняя версия. В этих сеансах применяются два ограничения:

496 

497* Команда работает только когда вы вводите ее непосредственно в сеанс, например в подсказку `-p` или поле подсказки настольного приложения. Когда вы отправляете ее через удаленное соединение, например [Remote Control](/docs/ru/remote-control) или переданное сообщение чата, команда отклоняется без перезагрузки чего-либо.

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

499 

500Claude Code перезагружает все активные плагины и показывает количество плагинов, skills, agents, hooks, plugin MCP servers и plugin LSP servers, опуская количество plugin MCP servers в сеансе без интерактивного терминала. В количестве skills Claude Code включает каждый skill, который предоставляет плагин: как его записи `commands/`, так и его skills `SKILL.md`. До v2.1.246 Claude Code считал только записи `commands/`, поэтому он мог перезагрузить skills `SKILL.md` плагина и все еще сообщить `0 skills` в сводке.

501 

502Перезагрузка имеет стоимость токенов при следующем запросе: вновь загруженные компоненты объявляют о себе в содержимом, добавленном к беседе, в то время как существующая история по-прежнему читается из кэша подсказок. Плагин, который предоставляет MCP servers, стоит дороже, когда его инструменты не отложены [поиском инструментов](/docs/ru/mcp#scale-with-mcp-tool-search): изменение делает кэш недействительным, и следующий запрос повторно читает всю беседу. Подробнее см. в разделе [включение или отключение плагина](/docs/ru/prompt-caching#enabling-or-disabling-a-plugin).

503 

504<h2 id="manage-marketplaces">

505 Управление маркетплейсами

506</h2>

507 

508Вы можете управлять маркетплейсами через интерактивный интерфейс `/plugin` или с помощью команд CLI.

509 

510<h3 id="use-the-interactive-interface">

511 Использование интерактивного интерфейса

512</h3>

513 

514Запустите `/plugin` и перейдите на вкладку **Marketplaces** для:

515 

516* Просмотра всех добавленных маркетплейсов с их источниками и статусом

517* Добавления новых маркетплейсов

518* Обновления списков маркетплейсов для получения последних плагинов

519* Удаления маркетплейсов, которые вам больше не нужны

520 

521<h3 id="use-cli-commands">

522 Использование команд CLI

523</h3>

524 

525Вы также можете управлять маркетплейсами с помощью прямых команд.

526 

527Список всех настроенных маркетплейсов:

528 

529```shell theme={null}

530/plugin marketplace list

531```

532 

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

534 

535```shell theme={null}

536/plugin marketplace update marketplace-name

537```

538 

539Удалите маркетплейс:

540 

541```shell theme={null}

542/plugin marketplace remove marketplace-name

543```

544 

545<Warning>

546 Удаление маркетплейса приведет к удалению всех плагинов, которые вы установили из него.

547</Warning>

548 

549<h3 id="configure-auto-updates">

550 Настройка автоматических обновлений

551</h3>

552 

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

554 

555Claude Code проверяет наличие обновлений маркетплейса и плагинов после запуска вашей сессии со случайной задержкой до десяти минут, поэтому запущенная сессия продолжает использовать версии, загруженные при запуске. Если какие-либо плагины были обновлены, вы увидите уведомление с предложением запустить `/reload-plugins`, или новые версии загружаются при следующем запуске.

556 

557Автоматическое обновление также исключает плагин, запись маркетплейса которого объявляет `headersHelper`: Claude Code [ни запускает команду, ни загружает архив](/docs/ru/plugin-marketplaces#installs-and-updates-that-refuse-the-command-instead-of-asking) по этому пути; этот раздел указывает, когда Claude Code отображает плагин на вкладке Errors в `/plugin`, чтобы вы могли обновить его из его собственного представления.

558 

559Claude Code обновляет плагины, которые имеют [источник `command`](/docs/ru/plugin-marketplaces#command-sources) по отдельному графику от параметра автоматического обновления маркетплейса и от `DISABLE_AUTOUPDATER`. Вместо этого он [повторно запускает команду один раз за сессию](/docs/ru/plugin-marketplaces#when-claude-code-re-runs-the-command) и устанавливает выходные данные как новую версию плагина, когда его [хеш](/docs/ru/plugins-reference#version-management) изменился.

560 

561Переключайте автоматическое обновление для отдельных маркетплейсов через интерфейс:

562 

5631. Запустите `/plugin`, чтобы открыть менеджер плагинов

5642. Выберите **Marketplaces**

5653. Выберите маркетплейс из списка

5664. Выберите **Enable auto-update** или **Disable auto-update**

567 

568`claude-plugins-official`, большинство других официальных маркетплейсов Anthropic и [маркетплейсы, добавленные из claude.ai](#add-from-claude-ai) имеют автоматическое обновление, включенное по умолчанию. Маркетплейсы третьих сторон и локальной разработки имеют автоматическое обновление, отключенное по умолчанию.

569 

570Администраторы также могут установить `"autoUpdate": true` для каждой записи [`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces) в управляемых параметрах, чтобы включить автоматическое обновление для маркетплейса организации без необходимости переключения каждым пользователем.

571 

572Чтобы отключить автоматические обновления для Claude Code и плагинов, полученных из маркетплейсов, установите переменную окружения `DISABLE_AUTOUPDATER`. Плагины с [источником `command`](/docs/ru/plugin-marketplaces#command-sources) следуют своему собственному повторному разрешению один раз за сессию. Подробнее см. в разделе [Auto updates](/docs/ru/setup#auto-updates).

573 

574Чтобы сохранить автоматические обновления плагинов включенными при отключении автоматических обновлений Claude Code, установите `FORCE_AUTOUPDATE_PLUGINS=1` вместе с `DISABLE_AUTOUPDATER`:

575 

576```bash theme={null}

577export DISABLE_AUTOUPDATER=1

578export FORCE_AUTOUPDATE_PLUGINS=1

579```

580 

581<h2 id="configure-team-marketplaces">

582 Настройка маркетплейсов команды

583</h2>

584 

585Администраторы команды могут настроить автоматическую установку маркетплейса для проектов, добавив конфигурацию маркетплейса в `.claude/settings.json`. Когда члены команды [доверяют папке репозитория](/docs/ru/permissions#what-runs-before-you-trust-a-folder), Claude Code добавляет эти маркетплейсы без дополнительного запроса.

586 

587Начиная с Claude Code v2.1.195, добавление маркетплейса не устанавливает плагины, поступающие из внешнего источника, на любом пути, который загружает плагины. Плагин, который включен только в `.claude/settings.json` проекта и поступает из внешнего источника, такого как репозиторий GitHub или пакет npm, не загружается до тех пор, пока член команды его не установит. До этого момента Claude Code сообщает о плагине как не установленном и показывает команду `claude plugin install` для запуска.

588 

589Добавьте `extraKnownMarketplaces` в `.claude/settings.json` вашего проекта:

590 

591```json theme={null}

592{

593 "extraKnownMarketplaces": {

594 "my-team-tools": {

595 "source": {

596 "source": "github",

597 "repo": "your-org/claude-plugins"

598 }

599 }

600 }

601}

602```

603 

604Для полных опций конфигурации, включая `extraKnownMarketplaces` и `enabledPlugins`, см. [Plugin settings](/docs/ru/settings-reference#plugin-settings).

605 

606<h2 id="security">

607 Безопасность

608</h2>

609 

610Плагины и маркетплейсы — это высоконадежные компоненты, которые могут выполнять произвольный код на вашей машине с вашими привилегиями пользователя. Устанавливайте плагины и добавляйте маркетплейсы только из источников, которым вы доверяете. Организации могут ограничить, какие маркетплейсы пользователям разрешено добавлять, используя [managed marketplace restrictions](/docs/ru/plugin-marketplaces#managed-marketplace-restrictions).

611 

612<h2 id="troubleshooting">

613 Troubleshooting

614</h2>

615 

616<h3 id="/plugin-command-not-recognized">

617 /plugin command not recognized

618</h3>

619 

620Если вы видите "unknown command" или команда `/plugin` не появляется:

621 

6221. **Check your version**: запустите `claude --version`, чтобы увидеть, что установлено.

6232. **Update Claude Code**:

624 * **Homebrew**: `brew upgrade claude-code`, или `brew upgrade claude-code@latest`, если вы установили этот cask

625 * **npm**: `npm install -g @anthropic-ai/claude-code@latest`

626 * **Native installer**: повторно запустите команду установки из [Setup](/docs/ru/setup)

6273. **Restart Claude Code**: после обновления перезагрузите терминал и снова запустите `claude`.

628 

629<h3 id="common-issues">

630 Common issues

631</h3>

632 

633Если навыки плагинов не появляются, очистите кэш с помощью `rm -rf ~/.claude/plugins/cache`, перезагрузите Claude Code и переустановите плагин.

634 

635Для подробного устранения неполадок с решениями см. [Troubleshooting](/docs/ru/plugin-marketplaces#troubleshooting) в руководстве маркетплейса. Для инструментов отладки см. [Debugging and development tools](/docs/ru/plugins-reference#debugging-and-development-tools).

636 

637<h3 id="code-intelligence-issues">

638 Code intelligence issues

639</h3>

640 

641* **Language server not starting**: проверьте, что двоичный файл установлен и доступен в вашем `$PATH`. Проверьте вкладку `/plugin` Errors для получения подробной информации.

642* **High memory usage**: языковые серверы, такие как `rust-analyzer` и `pyright`, могут потреблять значительную память на больших проектах. Если вы испытываете проблемы с памятью, отключите плагин с помощью `/plugin disable <plugin-name>` и вместо этого полагайтесь на встроенные инструменты поиска Claude.

643* **False positive diagnostics in monorepos**: языковые серверы могут сообщать об ошибках неразрешенного импорта для внутренних пакетов, если рабочее пространство не настроено правильно. Это не влияет на способность Claude редактировать код.

644 

645<h2 id="next-steps">

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

647</h2>

648 

649* **Создавайте собственные плагины**: см. [Plugins](/docs/ru/plugins) для создания skills, agents и hooks

650* **Создайте marketplace**: см. [Create a plugin marketplace](/docs/ru/plugin-marketplaces) для распространения плагинов вашей команде или сообществу

651* **Техническая справка**: см. [Plugins reference](/docs/ru/plugins-reference) для полных спецификаций

errors.md +150 −15

Details

36| `Auto mode could not evaluate this action and is blocking it for safety` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) |36| `Auto mode could not evaluate this action and is blocking it for safety` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) |

37| `Auto mode classifier transcript exceeded context window` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) |37| `Auto mode classifier transcript exceeded context window` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) |

38| `Agent aborted: auto mode classifier request refused by the safety safeguard` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) |38| `Agent aborted: auto mode classifier request refused by the safety safeguard` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) |

39| `The server-side auto mode classifier gave no verdict` | [Server errors](#the-server-returned-no-safety-verdict) |

40| `Auto mode is unavailable — the server returned no safety verdict for the last 10 responses` | [Server errors](#the-server-returned-no-safety-verdict) |

39| `Agent terminated early due to an API error` | [Server errors](#agent-terminated-early-due-to-an-api-error) |41| `Agent terminated early due to an API error` | [Server errors](#agent-terminated-early-due-to-an-api-error) |

40| `You've hit your session limit` / `You've hit your weekly limit` / `You've hit your Opus limit` / `You've hit your Sonnet limit` | [Usage limits](#youve-hit-your-session-limit) |42| `You've hit your session limit` / `You've hit your weekly limit` / `You've hit your Opus limit` / `You've hit your Sonnet limit` | [Usage limits](#youve-hit-your-session-limit) |

41| `Usage credits required for 1M context` | [Usage limits](#usage-credits-required-for-1m-context) |43| `Usage credits required for 1M context` | [Usage limits](#usage-credits-required-for-1m-context) |


154| `API Error: 400 orphaned tool_result in conversation history` | [Request errors](#tool-use-or-thinking-block-mismatch) |156| `API Error: 400 orphaned tool_result in conversation history` | [Request errors](#tool-use-or-thinking-block-mismatch) |

155| `API Error: 400 duplicate tool_use ID in conversation history` | [Request errors](#tool-use-or-thinking-block-mismatch) |157| `API Error: 400 duplicate tool_use ID in conversation history` | [Request errors](#tool-use-or-thinking-block-mismatch) |

156| `[Unsupported tool content removed]` | [Request errors](#unsupported-tool-content-removed) |158| `[Unsupported tool content removed]` | [Request errors](#unsupported-tool-content-removed) |

159| `role 'system' must precede an 'assistant' message` | [Request errors](#role-system-must-precede-an-assistant-message) |

160| `Invalid encrypted_content in search_result block` / `Invalid encrypted_index in text block` / `Failed to decrypt web search result content` | [Request errors](#invalid-encrypted-content-in-search-result-block) |

157| `server_tool_use.name: Input should be` on every turn of a resumed session | [Request errors](#unsupported-tool-content-removed) |161| `server_tool_use.name: Input should be` on every turn of a resumed session | [Request errors](#unsupported-tool-content-removed) |

158| `<model> can't help with this. Start a new session to continue` | [Request errors](#usage-policy-refusal) |162| `<model> can't help with this. Start a new session to continue` | [Request errors](#usage-policy-refusal) |

159| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [Request errors](#usage-policy-refusal) |163| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [Request errors](#usage-policy-refusal) |


171| `Error: Invalid --agents configuration:` | [Command-line errors](#invalid-agents-configuration) |175| `Error: Invalid --agents configuration:` | [Command-line errors](#invalid-agents-configuration) |

172| `Error: Settings file exceeds the 2MiB limit` | [Command-line errors](#settings-file-exceeds-the-2mib-limit) |176| `Error: Settings file exceeds the 2MiB limit` | [Command-line errors](#settings-file-exceeds-the-2mib-limit) |

173| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [Command-line errors](#the-current-directory-no-longer-exists) |177| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [Command-line errors](#the-current-directory-no-longer-exists) |

178| `Temp directory <dir> ... Refusing to use it` / `ENOSPC: no space left on device, mkdir '<dir>'` | [Command-line errors](#temp-directory-refused-or-cannot-be-created) |

174| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [Command-line errors](#directory-couldnt-be-resolved-to-a-real-location) |179| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [Command-line errors](#directory-couldnt-be-resolved-to-a-real-location) |

175| `Error: Workspace not trusted` when starting Remote Control | [Command-line errors](#workspace-not-trusted-when-starting-remote-control) |180| `Error: Workspace not trusted` when starting Remote Control | [Command-line errors](#workspace-not-trusted-when-starting-remote-control) |

176| `` `<flag>` before `remote-control` is not carried over to the sessions Remote Control starts `` | [Command-line errors](#not-carried-over-to-the-sessions-remote-control-starts) |181| `` `<flag>` before `remote-control` is not carried over to the sessions Remote Control starts `` | [Command-line errors](#not-carried-over-to-the-sessions-remote-control-starts) |


214| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Plugin errors](#plugin-eval-is-currently-in-early-access) |219| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Plugin errors](#plugin-eval-is-currently-in-early-access) |

215| `Marketplace "<name>" is registered from an untrusted source` | [Plugin errors](#marketplace-is-registered-from-an-untrusted-source) |220| `Marketplace "<name>" is registered from an untrusted source` | [Plugin errors](#marketplace-is-registered-from-an-untrusted-source) |

216| `Marketplace "<name>" is already added from a different source` | [Plugin errors](#marketplace-is-already-added-from-a-different-source) |221| `Marketplace "<name>" is already added from a different source` | [Plugin errors](#marketplace-is-already-added-from-a-different-source) |

222| `"<name>" is another spelling of "<reserved>", a reserved marketplace name` | [Plugin errors](#marketplace-name-is-another-spelling-of-a-reserved-name) |

217| `references ${user_config.*} in a shell-form command` | [Plugin errors](#plugin-command-references-user-config) |223| `references ${user_config.*} in a shell-form command` | [Plugin errors](#plugin-command-references-user-config) |

218| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [Plugin errors](#plugin-command-references-user-config) |224| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [Plugin errors](#plugin-command-references-user-config) |

219| `headersHelper for MCP server '<name>' references ${user_config.*}` | [Plugin errors](#plugin-command-references-user-config) |225| `headersHelper for MCP server '<name>' references ${user_config.*}` | [Plugin errors](#plugin-command-references-user-config) |


566* В интерактивной сессии одобрите или отрицайте действие в появившемся приглашении572* В интерактивной сессии одобрите или отрицайте действие в появившемся приглашении

567* В интерактивной сессии запустите `/compact`, чтобы уменьшить размер разговора, чтобы последующие действия снова подходили в окно классификатора573* В интерактивной сессии запустите `/compact`, чтобы уменьшить размер разговора, чтобы последующие действия снова подходили в окно классификатора

568 574 

575<h3 id="the-server-returned-no-safety-verdict">

576 The server returned no safety verdict

577</h3>

578 

579В [server-side classifier review](/docs/ru/permission-modes#server-side-classifier-review) auto mode отрицает действие, когда сервер не дает вердикт для него. Отрицание называет категорию в скобках, когда Claude Code может определить одну, такую как `(timed out)`:

580 

581```text theme={null}

582The server-side auto mode classifier gave no verdict (timed out), so auto mode cannot determine the safety of <tool>.

583```

584 

585Остальная часть сообщения говорит Claude, может ли одна повторная попытка помочь. До некоторых из этих отказов Claude Code ждет, чтобы следующая попытка Claude не следовала сразу. Во время ожидания в интерактивной сессии спиннер показывает `Auto mode check unavailable` с обратным отсчетом, и нажатие `Esc` прерывает ход.

586 

587После десяти ответов подряд без вердикта auto mode останавливает ход:

588 

589```text theme={null}

590Auto mode is unavailable — the server returned no safety verdict for the last 10 responses, so Claude stopped. Send a message to try again, or switch out of auto mode.

591```

592 

593Сообщение об остановке появляется в другом месте в каждом типе сессии:

594 

595* В интерактивной сессии сообщение появляется как предупреждение в транскрипте и ход заканчивается

596* В [non-interactive](/docs/ru/headless) запуске `-p` запуск заканчивается и сообщает об ошибке выполнения. С выходом текста по умолчанию сообщение печатается на stderr.

597* Когда [subagent](/docs/ru/sub-agents) достиг лимита, подагент останавливается перед завершением, и Claude получает то, что он произвел, с примечанием, что auto mode остановил его

598 

599**Что делать:**

600 

601* Отправьте другое сообщение, чтобы Claude попробовал снова. Счет ответов начинается заново.

602* Если остановка повторяется и ваши запросы проходят через [LLM gateway or proxy](/docs/ru/llm-gateway), проверьте, сокращает ли он потоковые ответы или переписывает их. [Server-side classifier review](/docs/ru/permission-modes#server-side-classifier-review) говорит, какое поведение шлюза вызывает отказы, и [gateway compatibility guide](/docs/ru/llm-gateway-protocol#feature-pass-through) перечисляет, что пропустить без изменений.

603* Установите `CLAUDE_CODE_AUTO_MODE_SERVER=0` перед запуском Claude Code, чтобы использовать его собственные запросы классификатора вместо этого. До v2.1.281 Claude Code не читал переменную на прямом соединении с Anthropic API.

604* Чтобы одобрить действия самостоятельно, [switch out of auto mode](/docs/ru/permission-modes#switch-permission-modes)

605 

606До v2.1.280 Claude Code отрицал каждое действие из ответа без вердикта немедленно и никогда не останавливал ход.

607 

569<h3 id="agent-terminated-early-due-to-an-api-error">608<h3 id="agent-terminated-early-due-to-an-api-error">

570 Agent terminated early due to an API error609 Agent terminated early due to an API error

571</h3>610</h3>


2391* Ничего не требуется, когда вы видите строку заполнителя. Сеанс продолжается без удалённого содержимого.2430* Ничего не требуется, когда вы видите строку заполнителя. Сеанс продолжается без удалённого содержимого.

2392* Если каждый ход возобновленного сеанса завершается с ошибкой 400 вместо этого, запустите `claude update` и возобновите сеанс снова. Версии до v2.1.246 не удаляют содержимое.2431* Если каждый ход возобновленного сеанса завершается с ошибкой 400 вместо этого, запустите `claude update` и возобновите сеанс снова. Версии до v2.1.246 не удаляют содержимое.

2393 2432 

2433<h3 id="role-system-must-precede-an-assistant-message">

2434 role 'system' must precede an 'assistant' message

2435</h3>

2436 

2437API отклонил запрос с 400, потому что системное сообщение находится в позиции в разговоре, которую он не принимает:

2438 

2439```text theme={null}

2440API Error: 400 messages.6: role 'system' must precede an 'assistant' message or end the array; ...

2441```

2442 

2443Claude Code отправляет часть своего напоминания и текста вложений как системные сообщения внутри разговора. Когда API отклоняет позицию одного, Claude Code повторяет запрос один раз с этим текстом, отправленным как обычные пользовательские сообщения вместо этого. Формулировки соседства API, такие как `use the top-level 'system' parameter for the initial system prompt`, получают то же восстановление.

2444 

2445Когда ошибка действительно появляется, отклонённое системное сообщение не является тем, которое Claude Code может удалить. Это обычно означает, что прокси или [LLM gateway](/docs/ru/llm-gateway) между Claude Code и API добавил системное сообщение своё или переупорядочил разговор.

2446 

2447**Что делать:**

2448 

2449* Запустите `/clear` для начала свежего разговора. Если ошибка возвращается там тоже, причина находится на пути запроса, а не в сохранённом разговоре.

2450* Если ошибка повторяется на каждом ходу позади прокси или шлюза, настроенного через [`ANTHROPIC_BASE_URL`](/docs/ru/env-vars), подключитесь без прокси, чтобы подтвердить источник, и сообщите об ошибке тому, кто его управляет

2451 

2452До версии 2.1.280 Claude Code не распознавал эту формулировку, поэтому ошибка также появлялась, когда отклонённое системное сообщение было тем, которое сам Claude Code отправил, и каждый более поздний ход разговора завершался с той же ошибкой.

2453 

2454<h3 id="invalid-encrypted-content-in-search-result-block">

2455 Invalid encrypted\_content in search\_result block

2456</h3>

2457 

2458API отклонил запрос с 400, потому что история разговора содержит размещённое содержимое веб-поиска, которое он не может расшифровать. Формулировка называет поле, которое он не может прочитать:

2459 

2460```text theme={null}

2461API Error: 400 messages.21.content.0: Invalid `encrypted_content` in `search_result` block

2462API Error: 400 messages.21.content.3.citations.0: Invalid `encrypted_index` in `text` block

2463API Error: 400 Failed to decrypt web search result content

2464```

2465 

2466Результаты из размещённого [инструмента веб-поиска](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool) API содержат зашифрованные поля, которые только API может прочитать. API отклоняет запрос, который воспроизводит содержимое, которое он не может расшифровать, такое как содержимое, созданное для другой организации.

2467 

2468Собственный [инструмент WebSearch](/docs/ru/tools-reference#websearch-tool-behavior) Claude Code записывает результаты поиска как простой текст, поэтому эти блоки обычно достигают разговора через прокси или [LLM gateway](/docs/ru/llm-gateway), который сам запустил размещённый веб-поиск.

2469 

2470Отклонённые блоки остаются в истории разговора, поэтому каждый более поздний ход и `/compact` завершаются с той же ошибкой.

2471 

2472**Что делать:**

2473 

2474* Запустите `/clear` или начните новый сеанс; новый разговор не содержит отклонённые блоки

2475* Если вы запускаете Claude Code позади прокси или шлюза, сообщите об ошибке тому, кто его управляет

2476 

2394<h3 id="usage-policy-refusal">2477<h3 id="usage-policy-refusal">

2395 Usage Policy refusal2478 Usage Policy refusal

2396</h3>2479</h3>


2486* Если корпоративный прокси продолжает закрывать передачу, попросите вашу команду сети разрешить полную загрузку с `downloads.claude.ai`. См. [Требования к доступу в сеть](/docs/ru/network-config#network-access-requirements).2569* Если корпоративный прокси продолжает закрывать передачу, попросите вашу команду сети разрешить полную загрузку с `downloads.claude.ai`. См. [Требования к доступу в сеть](/docs/ru/network-config#network-access-requirements).

2487* Запустите `claude doctor` из вашей оболочки для диагностики установки2570* Запустите `claude doctor` из вашей оболочки для диагностики установки

2488 2571 

2572***

2573 

2574title: "Ошибки командной строки"

2575description: "Справочник по ошибкам командной строки Claude Code, включая конфликты флагов, проблемы с конфигурацией и неполадки с облачными сеансами."

2576-------------------------------------------------------------------------------------------------------------------------------------------------------

2577 

2489<h2 id="command-line-errors">2578<h2 id="command-line-errors">

2490 Ошибки командной строки2579 Ошибки командной строки

2491</h2>2580</h2>


2627* Если каталог был пересоздан по тому же пути, ваша оболочка всё ещё содержит удалённый. Запустите `cd "$PWD"` или покиньте и повторно войдите в каталог, затем запустите `claude` снова2716* Если каталог был пересоздан по тому же пути, ваша оболочка всё ещё содержит удалённый. Запустите `cd "$PWD"` или покиньте и повторно войдите в каталог, затем запустите `claude` снова

2628* Для `EPERM` на macOS выйдите из приложения терминала с помощью Cmd+Q, откройте его снова, вернитесь в эту папку и запустите `claude`. Если `ls` в этой папке всё ещё не работает, откройте **System Settings > Privacy & Security > Files and Folders**, включите папку для вашего приложения терминала, затем повторно откройте терминал2717* Для `EPERM` на macOS выйдите из приложения терминала с помощью Cmd+Q, откройте его снова, вернитесь в эту папку и запустите `claude`. Если `ls` в этой папке всё ещё не работает, откройте **System Settings > Privacy & Security > Files and Folders**, включите папку для вашего приложения терминала, затем повторно откройте терминал

2629 2718 

2719<h3 id="temp-directory-refused-or-cannot-be-created">

2720 Временный каталог отклонён или не может быть создан

2721</h3>

2722 

2723На macOS и Linux Claude Code создаёт приватный временный каталог при запуске, `claude-<uid>` под системным временным каталогом или переопределением [`CLAUDE_CODE_TMPDIR`](/docs/ru/env-vars). Когда каталог не может быть создан или запись, уже находящаяся по этому пути, не проходит проверки безопасности, Claude Code выводит ошибку на stderr и выходит с кодом 1 вместо запуска сеанса:

2724 

2725```text wrap theme={null}

2726ENOSPC: no space left on device, mkdir '/tmp/claude-501'

2727 

2728Temp directory /tmp/claude-501 is not a directory (may be an attacker-planted symlink). Refusing to use it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.

2729 

2730Temp directory /tmp/claude-501 is owned by uid 502, expected 501. Refusing to use it — another user may have pre-created it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.

2731 

2732Temp directory /tmp/claude-501 is not readable (its mode may have been altered, or a path component denies search). Refusing to use it — restore its permissions (chmod 0700) or remove it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.

2733```

2734 

2735**Что делать:**

2736 

2737* Для `ENOSPC`, освободите место на диске на томе, который содержит временный каталог

2738* Для форм `Refusing to use it`, удалите саму названную запись, не то, на что указывает ссылка, и запустите Claude Code снова; для формы `owned by uid`, только администратор или этот пользователь могут удалить её

2739* Для `is not readable`, запустите `chmod 0700` на названном каталоге или удалите его и запустите снова

2740* В любом из этих случаев установите [`CLAUDE_CODE_TMPDIR`](/docs/ru/env-vars) на каталог, который вы контролируете, и запустите Claude Code снова, оставляя отклонённый путь в покое

2741 

2630<h3 id="directory-couldnt-be-resolved-to-a-real-location">2742<h3 id="directory-couldnt-be-resolved-to-a-real-location">

2631 Каталог не удалось разрешить в реальное местоположение2743 Каталог не удалось разрешить в реальное местоположение

2632</h3>2744</h3>


2952 3064 

2953* Опечатка, такая как `/hepl` для `/help`. [How the command menu matches what you type](/docs/ru/commands#how-the-command-menu-matches-what-you-type) охватывает выбор близкого совпадения перед отправкой3065* Опечатка, такая как `/hepl` для `/help`. [How the command menu matches what you type](/docs/ru/commands#how-the-command-menu-matches-what-you-type) охватывает выбор близкого совпадения перед отправкой

2954* Команда, которая существует, но недоступна в этом сеансе, потому что требование не выполнено, такое как ваша платформа, план или метод аутентификации. Записи устранения неполадок для [`/web-setup`](/docs/ru/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) и [`/schedule`](/docs/ru/routines#schedule-returns-unknown-command) проходят через два распространённых случая. Некоторые команды отвечают своим собственным сообщением, когда политика вашей организации их отключает, такие как [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)3066* Команда, которая существует, но недоступна в этом сеансе, потому что требование не выполнено, такое как ваша платформа, план или метод аутентификации. Записи устранения неполадок для [`/web-setup`](/docs/ru/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) и [`/schedule`](/docs/ru/routines#schedule-returns-unknown-command) проходят через два распространённых случая. Некоторые команды отвечают своим собственным сообщением, когда политика вашей организации их отключает, такие как [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)

2955* Команда из [плагина](/docs/ru/plugins) или [сервера MCP](/docs/ru/mcp#use-mcp-prompts-as-commands), который не установлен или не подключен в этом сеансе3067* Команда из [плагина](/docs/ru/plugins/overview) или [сервера MCP](/docs/ru/mcp#use-mcp-prompts-as-commands), который не установлен или не подключен в этом сеансе

2956 3068 

2957Claude Code отвечает на несовпадающее имя `/` этим способом только в интерактивном сеансе терминала. Во всех остальных сеансах он отправляет приглашение Claude как обычное сообщение вместо этого, с примечанием, что команда не запустилась и список команд, которые Claude может запустить в сеансе. Эти сеансы включают:3069Claude Code отвечает на несовпадающее имя `/` этим способом только в интерактивном сеансе терминала. Во всех остальных сеансах он отправляет приглашение Claude как обычное сообщение вместо этого, с примечанием, что команда не запустилась и список команд, которые Claude может запустить в сеансе. Эти сеансы включают:

2958 3070 


3282 Ошибки плагинов3394 Ошибки плагинов

3283</h2>3395</h2>

3284 3396 

3285Эти ошибки возникают из [конфигурации плагинов](/docs/ru/plugins) и [конфигурации маркетплейса](/docs/ru/plugin-marketplaces). Для проблем с плагинами, которые не выдают одно из сообщений на этой странице, например маркетплейс, который не загружается, или плагин, который устанавливается, но не отображается, см. [Устранение неполадок плагинов](/docs/ru/discover-plugins#troubleshooting).3397Эти ошибки возникают из [конфигурации плагинов](/docs/ru/plugins/overview) и [конфигурации маркетплейса](/docs/ru/plugins/overview). Для проблем с плагинами, которые не выдают одно из сообщений на этой странице, например маркетплейс, который не загружается, или плагин, который устанавливается, но не отображается, см. [Устранение неполадок плагинов](/docs/ru/plugins/troubleshooting).

3286 3398 

3287<h3 id="plugin-eval-is-currently-in-early-access">3399<h3 id="plugin-eval-is-currently-in-early-access">

3288 plugin eval is currently in early access3400 plugin eval is currently in early access


3309 Marketplace is registered from an untrusted source3421 Marketplace is registered from an untrusted source

3310</h3>3422</h3>

3311 3423 

3312Маркетплейс зарегистрирован под именем, которое [зарезервировано для официальных маркетплейсов Anthropic](/docs/ru/plugin-marketplaces#marketplace-schema), но его зарегистрированный источник не является репозиторием GitHub `anthropics`. Claude Code повторно проверяет зарезервированные имена каждый раз при загрузке или обновлении маркетплейса, поэтому маркетплейс и плагины, установленные из него, перестают загружаться. До версии v2.1.205 имя проверялось только при добавлении маркетплейса, поэтому запись, зарегистрированная до того, как её имя было зарезервировано, продолжала загружаться.3424Маркетплейс зарегистрирован под именем, которое [зарезервировано для официальных маркетплейсов Anthropic](/docs/ru/plugins/marketplace-reference#marketplace-file), но его зарегистрированный источник не является репозиторием GitHub `anthropics`. Claude Code повторно проверяет зарезервированные имена каждый раз при загрузке или обновлении маркетплейса, поэтому маркетплейс и плагины, установленные из него, перестают загружаться. До версии v2.1.205 имя проверялось только при добавлении маркетплейса, поэтому запись, зарегистрированная до того, как её имя было зарезервировано, продолжала загружаться.

3313 3425 

3314```text theme={null}3426```text theme={null}

3315Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.3427Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.


3321 3433 

3322* Если маркетплейс уже зарегистрирован, запустите `claude plugin marketplace remove <name>`, затем добавьте его снова из официального репозитория `github.com/anthropics`3434* Если маркетплейс уже зарегистрирован, запустите `claude plugin marketplace remove <name>`, затем добавьте его снова из официального репозитория `github.com/anthropics`

3323* Если вы публикуете сторонний маркетплейс, который использовал это имя до того, как оно было зарезервировано, переименуйте его и попросите пользователей добавить его снова из вашего источника3435* Если вы публикуете сторонний маркетплейс, который использовал это имя до того, как оно было зарезервировано, переименуйте его и попросите пользователей добавить его снова из вашего источника

3324* См. список зарезервированных имён в разделе [Marketplace schema](/docs/ru/plugin-marketplaces#marketplace-schema)3436* См. список зарезервированных имён в разделе [Marketplace schema](/docs/ru/plugins/marketplace-reference#marketplace-file)

3437 

3438<h3 id="marketplace-name-is-another-spelling-of-a-reserved-name">

3439 Marketplace name is another spelling of a reserved name

3440</h3>

3441 

3442Имя маркетплейса само по себе не является зарезервированным именем, но Claude Code рассматривает его как другое написание одного из них. [Зарезервированные имена](/docs/ru/plugins/marketplace-reference#reserved-name-spellings) перечисляют, какие написания считаются зарезервированным именем. Claude Code отказывает такому имени при добавлении маркетплейса:

3443 

3444```text theme={null}

3445Failed to add marketplace: "claude.code.plugins" is another spelling of "claude-code-plugins", a reserved marketplace name.

3446```

3447 

3448Когда маркетплейс уже зарегистрирован под таким именем, его запись перестаёт загружаться, и `/plugin`, `claude plugin install` и `claude plugin update` предупреждают:

3449 

3450```text wrap theme={null}

3451known_marketplaces.json has an entry named "claude.code.plugins", another spelling of the reserved marketplace name "claude-code-plugins", so it is ignored. Remove it with: claude plugin marketplace remove claude.code.plugins

3452```

3453 

3454Когда имя требует кавычек оболочки, отказ во время добавления читается как `This marketplace's name is another spelling of "<reserved>", a reserved marketplace name. It is not exactly the reserved name it appears to be.`

3455 

3456**Что делать:**

3457 

3458* Переименуйте маркетплейс на имя, которое не соответствует зарезервированному имени, и добавьте его снова

3459* Для предупреждения об игнорируемой записи запустите команду `claude plugin marketplace remove`, которую оно даёт, или удалите запись из `~/.claude/plugins/known_marketplaces.json`

3325 3460 

3326<h3 id="marketplace-is-already-added-from-a-different-source">3461<h3 id="marketplace-is-already-added-from-a-different-source">

3327 Marketplace is already added from a different source3462 Marketplace is already added from a different source

3328</h3>3463</h3>

3329 3464 

3330Вы подтвердили добавление маркетплейса через [`/plugin install <plugin> --marketplace <source>`](/docs/ru/discover-plugins#add-a-marketplace-and-install-in-one-command), и каталог, который Claude Code получил из этого источника, называет себя так же, как маркетплейс, который вы уже добавили из другого источника. Claude Code сохраняет существующий маркетплейс вместо его замены, и плагин не устанавливается.3465Вы подтвердили добавление маркетплейса через [`/plugin install <plugin> --marketplace <source>`](/docs/ru/plugins/install#add-a-marketplace-and-install-in-one-command), и каталог, который Claude Code получил из этого источника, называет себя так же, как маркетплейс, который вы уже добавили из другого источника. Claude Code сохраняет существующий маркетплейс вместо его замены, и плагин не устанавливается.

3331 3466 

3332```text theme={null}3467```text theme={null}

3333Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.3468Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.


3342 Plugin command references user\_config in a shell command3477 Plugin command references user\_config in a shell command

3343</h3>3478</h3>

3344 3479 

3345Хук плагина, [monitor](/docs/ru/plugins-reference#monitors), или команда MCP [`headersHelper`](/docs/ru/mcp#use-dynamic-headers-for-custom-authentication) ссылается на опцию `${user_config.KEY}` [плагина](/docs/ru/plugins-reference#user-configuration), и подставленная строка будет передана в оболочку. Настроенное значение, содержащее `$(...)`, обратные кавычки или `;`, будет выполнено как код там, поэтому Claude Code отказывается запускать компонент вместо подстановки значения. Проверка выполняется на шаблоне команды, поэтому ошибка появляется даже когда значение ещё не настроено. До версии v2.1.207 значение подставлялось в команду оболочки.3480Хук плагина, [monitor](/docs/ru/plugins/components#monitors), или команда MCP [`headersHelper`](/docs/ru/mcp#use-dynamic-headers-for-custom-authentication) ссылается на опцию `${user_config.KEY}` [плагина](/docs/ru/plugins/manifest-reference#user-configuration), и подставленная строка будет передана в оболочку. Настроенное значение, содержащее `$(...)`, обратные кавычки или `;`, будет выполнено как код там, поэтому Claude Code отказывается запускать компонент вместо подстановки значения. Проверка выполняется на шаблоне команды, поэтому ошибка появляется даже когда значение ещё не настроено. До версии v2.1.207 значение подставлялось в команду оболочки.

3346 3481 

3347Формулировка зависит от того, какая поверхность ссылалась на опцию. Хук в форме оболочки сообщает:3482Формулировка зависит от того, какая поверхность ссылалась на опцию. Хук в форме оболочки сообщает:

3348 3483 


3372 Plugin archive integrity check failed3507 Plugin archive integrity check failed

3373</h3>3508</h3>

3374 3509 

3375Запись маркетплейса плагина использует [источник `archive`](/docs/ru/plugin-marketplaces#zip-archives) с закреплением `sha256`, и дайджест загруженного файла не совпадает с закреплением. Claude Code отказывает в установке, поэтому ничего не меняется в кэше плагинов. Несовпадение имеет три возможные причины:3510Запись маркетплейса плагина использует [источник `archive`](/docs/ru/plugins/marketplace-reference#archive-plugin-source) с закреплением `sha256`, и дайджест загруженного файла не совпадает с закреплением. Claude Code отказывает в установке, поэтому ничего не меняется в кэше плагинов. Несовпадение имеет три возможные причины:

3376 3511 

3377* Файл по URL-адресу изменился после того, как автор вычислил закрепление3512* Файл по URL-адресу изменился после того, как автор вычислил закрепление

3378* Автор ввёл неправильный дайджест в запись маркетплейса3513* Автор ввёл неправильный дайджест в запись маркетплейса


3392 Path escapes plugin directory3527 Path escapes plugin directory

3393</h3>3528</h3>

3394 3529 

3395Путь компонента плагина, объявленный в `plugin.json` плагина или в его [записи маркетплейса](/docs/ru/plugin-marketplaces#plugin-entries), разрешается вне собственной директории плагина. Claude Code отбрасывает этот путь и загружает остальную часть плагина. Имя компонента в сообщении, такое как `commands` или `hooks`, называет поле, которое объявило путь.3530Путь компонента плагина, объявленный в `plugin.json` плагина или в его [записи маркетплейса](/docs/ru/plugins/marketplace-reference#plugin-entries), разрешается вне собственной директории плагина. Claude Code отбрасывает этот путь и загружает остальную часть плагина. Имя компонента в сообщении, такое как `commands` или `hooks`, называет поле, которое объявило путь.

3396 3531 

3397```text theme={null}3532```text theme={null}

3398commands path escapes plugin directory: ./../shared.md3533commands path escapes plugin directory: ./../shared.md


3400 3535 

3401В выводе команды `claude plugin` та же ошибка читается как `Path escapes plugin directory: ./../shared.md (commands)`.3536В выводе команды `claude plugin` та же ошибка читается как `Path escapes plugin directory: ./../shared.md (commands)`.

3402 3537 

3403Claude Code отклоняет как путь, который указывает вне плагина в том виде, в котором он написан, например `../shared-utils`, так и символическую ссылку, которая ведёт вне плагина и не является одной из [правил символических ссылок маркетплейса](/docs/ru/plugins-reference#share-files-within-a-marketplace-with-symlinks), которые разрешены. Для символической ссылки сообщение также указывает, где разрешается путь:3538Claude Code отклоняет как путь, который указывает вне плагина в том виде, в котором он написан, например `../shared-utils`, так и символическую ссылку, которая ведёт вне плагина и не является одной из [правил символических ссылок маркетплейса](/docs/ru/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks), которые разрешены. Для символической ссылки сообщение также указывает, где разрешается путь:

3404 3539 

3405```text theme={null}3540```text theme={null}

3406commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory3541commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory


3421* Переместите упомянутый файл внутри директории плагина и укажите на него с помощью относительного пути `./`3556* Переместите упомянутый файл внутри директории плагина и укажите на него с помощью относительного пути `./`

3422* Если путь является символической ссылкой на файл вне плагина, замените символическую ссылку копией файла3557* Если путь является символической ссылкой на файл вне плагина, замените символическую ссылку копией файла

3423* Если сообщение говорит, что путь содержит обратную косую черту, напишите путь с прямыми косыми чертами, например `./commands/deploy.md`3558* Если сообщение говорит, что путь содержит обратную косую черту, напишите путь с прямыми косыми чертами, например `./commands/deploy.md`

3424* Для совместного использования файлов с другими плагинами в одном маркетплейсе свяжите их с помощью символической ссылки внутри директории плагина, следуя [правилам символических ссылок](/docs/ru/plugins-reference#share-files-within-a-marketplace-with-symlinks)3559* Для совместного использования файлов с другими плагинами в одном маркетплейсе свяжите их с помощью символической ссылки внутри директории плагина, следуя [правилам символических ссылок](/docs/ru/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)

3425 3560 

3426<h3 id="path-could-not-be-checked">3561<h3 id="path-could-not-be-checked">

3427 Path could not be checked3562 Path could not be checked


3429 3564 

3430Claude Code попросила операционную систему проверить, существует ли путь плагина, и получила ошибку, отличную от «не найдено», поэтому она не загружает то, что называет путь. Сколько плагина загружается, зависит от того, какой путь не удался:3565Claude Code попросила операционную систему проверить, существует ли путь плагина, и получила ошибку, отличную от «не найдено», поэтому она не загружает то, что называет путь. Сколько плагина загружается, зависит от того, какой путь не удался:

3431 3566 

3432* Одно из [расположений компонентов по умолчанию](/docs/ru/plugins-reference#file-locations-reference) плагина, такое как папка `skills/`, файл `monitors/monitors.json` или [`SKILL.md` в корне плагина](/docs/ru/plugins-reference#skills): остальные компоненты плагина всё ещё загружаются3567* Одно из [расположений компонентов по умолчанию](/docs/ru/plugins/manifest-reference#standard-layout) плагина, такое как папка `skills/`, файл `monitors/monitors.json` или [`SKILL.md` в корне плагина](/docs/ru/plugins/components#skills): остальные компоненты плагина всё ещё загружаются

3433* Собственная директория плагина: ничего из этого плагина не загружается3568* Собственная директория плагина: ничего из этого плагина не загружается

3434 3569 

3435Вы не видите эту ошибку для пути, который вообще не существует. В `/plugin` ошибка появляется под плагином и называет путь и код, который вернула операционная система:3570Вы не видите эту ошибку для пути, который вообще не существует. В `/plugin` ошибка появляется под плагином и называет путь и код, который вернула операционная система:


3459 Marketplace entry path does not stay inside the marketplace directory3594 Marketplace entry path does not stay inside the marketplace directory

3460</h3>3595</h3>

3461 3596 

3462[Запись маркетплейса](/docs/ru/plugin-marketplaces#plugin-entries) плагина объявляет путь источника, который Claude Code не может разрешить в расположение внутри собственной директории маркетплейса, поэтому плагин не устанавливается и не загружается. Отказ охватывает:3597[Запись маркетплейса](/docs/ru/plugins/marketplace-reference#plugin-entries) плагина объявляет путь источника, который Claude Code не может разрешить в расположение внутри собственной директории маркетплейса, поэтому плагин не устанавливается и не загружается. Отказ охватывает:

3463 3598 

3464* Путь записи, который является абсолютным, поднимается из маркетплейса с помощью `..`, или написан как сетевой путь3599* Путь записи, который является абсолютным, поднимается из маркетплейса с помощью `..`, или написан как сетевой путь

3465* На macOS и Linux путь записи, который содержит обратную косую черту где-либо после начального `./`3600* На macOS и Linux путь записи, который содержит обратную косую черту где-либо после начального `./`

3466* Запись в маркетплейсе, полученном из удалённого источника, такого как git или URL, которая достигает своей цели через символическую ссылку, разрешающуюся вне директории маркетплейса3601* Запись в маркетплейсе, полученном из удалённого источника, такого как git или URL, которая достигает своей цели через символическую ссылку, разрешающуюся вне директории маркетплейса

3467* Относительная запись в маркетплейсе, добавленном из прямого URL-адреса его `marketplace.json`: Claude Code загружает только этот файл, поэтому локальные файлы плагинов не существуют для пути, чтобы назвать. См. [Plugins with relative paths fail in URL-based marketplaces](/docs/ru/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces)3602* Относительная запись в маркетплейсе, добавленном из прямого URL-адреса его `marketplace.json`: Claude Code загружает только этот файл, поэтому локальные файлы плагинов не существуют для пути, чтобы назвать. См. [Plugins with relative paths fail in URL-based marketplaces](/docs/ru/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces)

3468 3603 

3469`claude plugin install` сообщает об отказе следующим образом:3604`claude plugin install` сообщает об отказе следующим образом:

3470 3605 


3481**Что делать:**3616**Что делать:**

3482 3617 

3483* Если вы поддерживаете маркетплейс, напишите `source` записи как простой относительный путь с прямыми косыми чертами, например `./plugins/my-plugin`, и держите любую символическую ссылку, которую он пересекает, указывающей внутри директории маркетплейса3618* Если вы поддерживаете маркетплейс, напишите `source` записи как простой относительный путь с прямыми косыми чертами, например `./plugins/my-plugin`, и держите любую символическую ссылку, которую он пересекает, указывающей внутри директории маркетплейса

3484* Если вы добавили маркетплейс из прямого URL-адреса, относительные записи не могут разрешиться. Попросите автора маркетплейса использовать [другой источник плагина](/docs/ru/plugin-marketplaces#plugin-sources), или добавьте маркетплейс из его репозитория git вместо этого3619* Если вы добавили маркетплейс из прямого URL-адреса, относительные записи не могут разрешиться. Попросите автора маркетплейса использовать [другой источник плагина](/docs/ru/plugins/marketplace-reference#plugin-sources), или добавьте маркетплейс из его репозитория git вместо этого

3485 3620 

3486<h3 id="failed-to-load-marketplace-configuration">3621<h3 id="failed-to-load-marketplace-configuration">

3487 Failed to load marketplace configuration3622 Failed to load marketplace configuration


3511 Plugin is required by your organization3646 Plugin is required by your organization

3512</h3>3647</h3>

3513 3648 

3514Вы запустили `claude plugin disable`, или использовали вкладку `/plugin` **Installed**, чтобы отключить [плагин, синхронизированный с claude.ai](/docs/ru/plugins-reference#synced-plugins), который ваша организация отмечает как обязательный:3649Вы запустили `claude plugin disable`, или использовали вкладку `/plugin` **Installed**, чтобы отключить [плагин, синхронизированный с claude.ai](/docs/ru/plugins/loading#synced-plugins), который ваша организация отмечает как обязательный:

3515 3650 

3516```text theme={null}3651```text theme={null}

3517Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.3652Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.

Details

32* [CLI](/docs/ru/quickstart) и [Agent SDK](/docs/ru/agent-sdk/overview)32* [CLI](/docs/ru/quickstart) и [Agent SDK](/docs/ru/agent-sdk/overview)

33* Расширения [VS Code](/docs/ru/vs-code) и [JetBrains](/docs/ru/jetbrains)33* Расширения [VS Code](/docs/ru/vs-code) и [JetBrains](/docs/ru/jetbrains)

34* [Subagents](/docs/ru/sub-agents), [hooks](/docs/ru/hooks-guide), [commands](/docs/ru/commands) и [skills](/docs/ru/skills)34* [Subagents](/docs/ru/sub-agents), [hooks](/docs/ru/hooks-guide), [commands](/docs/ru/commands) и [skills](/docs/ru/skills)

35* [Память CLAUDE.md](/docs/ru/memory), [plugins](/docs/ru/plugins) и [MCP servers](/docs/ru/mcp)35* [Память CLAUDE.md](/docs/ru/memory), [plugins](/docs/ru/plugins/overview) и [MCP servers](/docs/ru/mcp)

36* [Checkpoints](/docs/ru/checkpointing), [sandboxing](/docs/ru/sandboxing) и [Workflows](/docs/ru/workflows)36* [Checkpoints](/docs/ru/checkpointing), [sandboxing](/docs/ru/sandboxing) и [Workflows](/docs/ru/workflows)

37* [Метрики OpenTelemetry](/docs/ru/monitoring-usage) и [управляемый файл параметров](/docs/ru/managed-settings#delivery-mechanisms)37* [Метрики OpenTelemetry](/docs/ru/monitoring-usage) и [управляемый файл параметров](/docs/ru/managed-settings#delivery-mechanisms)

38 38 

Details

29* **[Dynamic workflows](/docs/ru/workflows)** запускают множество subagents из скрипта, который пишет Claude, возвращая один результат29* **[Dynamic workflows](/docs/ru/workflows)** запускают множество subagents из скрипта, который пишет Claude, возвращая один результат

30* **[Cross-session messaging](/docs/ru/cross-session-messaging)** позволяет Claude передать сообщение из одной вашей сессии в другую30* **[Cross-session messaging](/docs/ru/cross-session-messaging)** позволяет Claude передать сообщение из одной вашей сессии в другую

31* **[Hooks](/docs/ru/hooks-guide)** запускают ваш скрипт, HTTP запрос, вызов инструмента MCP, prompt или subagent, когда Claude Code достигает события жизненного цикла31* **[Hooks](/docs/ru/hooks-guide)** запускают ваш скрипт, HTTP запрос, вызов инструмента MCP, prompt или subagent, когда Claude Code достигает события жизненного цикла

32* **[Plugins](/docs/ru/plugins)** и **[marketplaces](/docs/ru/plugin-marketplaces)** упаковывают и распространяют эти функции32* **[Plugins](/docs/ru/plugins/overview)** и **[marketplaces](/docs/ru/plugins/overview)** упаковывают и распространяют эти функции

33 33 

34[Skills](/docs/ru/skills) — это наиболее гибкое расширение. Skill — это файл markdown, содержащий знания, рабочие процессы или инструкции. Вы можете вызывать skills с помощью команды типа `/deploy`, или Claude может загружать их автоматически, когда они релевантны. Skills могут работать в вашем текущем разговоре или в изолированном контексте через subagents.34[Skills](/docs/ru/skills) — это наиболее гибкое расширение. Skill — это файл markdown, содержащий знания, рабочие процессы или инструкции. Вы можете вызывать skills с помощью команды типа `/deploy`, или Claude может загружать их автоматически, когда они релевантны. Skills могут работать в вашем текущем разговоре или в изолированном контексте через subagents.

35 35 


52| **Hook** | Скрипт, HTTP-запрос, вызов инструмента MCP, подсказка или subagent, запущенные событиями | Автоматизация, которая должна запуститься при каждом совпадающем событии | Запусти ESLint после каждого редактирования файла |52| **Hook** | Скрипт, HTTP-запрос, вызов инструмента MCP, подсказка или subagent, запущенные событиями | Автоматизация, которая должна запуститься при каждом совпадающем событии | Запусти ESLint после каждого редактирования файла |

53| **[Artifact](/docs/ru/artifacts)** | Опубликуй вывод сессии как приватную интерактивную веб-страницу | Вывод, который ты хочешь увидеть или поделиться визуально, а не как текст терминала | Временная шкала инцидента, которая обновляется по мере того, как Claude расследует |53| **[Artifact](/docs/ru/artifacts)** | Опубликуй вывод сессии как приватную интерактивную веб-страницу | Вывод, который ты хочешь увидеть или поделиться визуально, а не как текст терминала | Временная шкала инцидента, которая обновляется по мере того, как Claude расследует |

54 54 

55**[Plugins](/docs/ru/plugins)** — это уровень упаковки. Plugin объединяет skills, hooks, subagent'ов и MCP-серверы в один устанавливаемый модуль. Skills плагина имеют пространство имён (например `/my-plugin:review`), поэтому несколько плагинов могут сосуществовать. Используй плагины, когда ты хочешь переиспользовать одну и ту же настройку в нескольких репозиториях или распространять другим через **[marketplace](/docs/ru/plugin-marketplaces)**.55**[Plugins](/docs/ru/plugins/overview)** — это уровень упаковки. Plugin объединяет skills, hooks, subagent'ов и MCP-серверы в один устанавливаемый модуль. Skills плагина имеют пространство имён (например `/my-plugin:review`), поэтому несколько плагинов могут сосуществовать. Используйте плагины, когда вы хотите переиспользовать одну и ту же настройку в нескольких репозиториях или распространять другим через **[marketplace](/docs/ru/plugins/overview)**.

56 56 

57<h3 id="build-your-setup-over-time">57<h3 id="build-your-setup-over-time">

58 Строй свою настройку со временем58 Строй свою настройку со временем


61Тебе не нужно настраивать всё заранее. Каждая функция имеет узнаваемый триггер, и большинство команд добавляют их примерно в таком порядке:61Тебе не нужно настраивать всё заранее. Каждая функция имеет узнаваемый триггер, и большинство команд добавляют их примерно в таком порядке:

62 62 

63| Триггер | Добавь |63| Триггер | Добавь |

64| :---------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------- |64| :---------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------ |

65| Claude дважды неправильно применяет соглашение или команду | Добавь это в [CLAUDE.md](/docs/ru/memory) |65| Claude дважды неправильно применяет соглашение или команду | Добавь это в [CLAUDE.md](/docs/ru/memory) |

66| Вы постоянно просите Claude быть короче, объяснять больше или отвечать в одном формате | Установите [output style](/docs/ru/output-styles) |66| Вы постоянно просите Claude быть короче, объяснять больше или отвечать в одном формате | Установите [output style](/docs/ru/output-styles) |

67| Ты постоянно печатаешь одну и ту же подсказку, чтобы начать задачу | Сохрани её как вызываемый пользователем [skill](/docs/ru/skills) |67| Ты постоянно печатаешь одну и ту же подсказку, чтобы начать задачу | Сохрани её как вызываемый пользователем [skill](/docs/ru/skills) |

68| Ты вставляешь один и тот же сценарий или многошаговую процедуру в чат в третий раз | Захвати это как [skill](/docs/ru/skills) |68| Ты вставляешь один и тот же сценарий или многошаговую процедуру в чат в третий раз | Захвати это как [skill](/docs/ru/skills) |

69| Ты постоянно копируешь данные из вкладки браузера, которую Claude не видит | Подключи эту систему как [MCP-сервер](/docs/ru/mcp) |69| Ты постоянно копируешь данные из вкладки браузера, которую Claude не видит | Подключи эту систему как [MCP-сервер](/docs/ru/mcp) |

70| Claude читает много файлов, чтобы найти, где определён или используется символ | Установи [плагин code intelligence](/docs/ru/discover-plugins#code-intelligence) для твоего языка |70| Claude читает много файлов, чтобы найти, где определён или используется символ | Установите [плагин code intelligence](/docs/ru/plugins/code-intelligence) для вашего языка |

71| Побочная задача заполняет твой разговор выводом, на который ты больше не будешь ссылаться | Маршрутизируй его через [subagent](/docs/ru/sub-agents) |71| Побочная задача заполняет твой разговор выводом, на который ты больше не будешь ссылаться | Маршрутизируй его через [subagent](/docs/ru/sub-agents) |

72| Ты хочешь, чтобы что-то происходило каждый раз без просьбы | Напиши [hook](/docs/ru/hooks-guide) |72| Ты хочешь, чтобы что-то происходило каждый раз без просьбы | Напиши [hook](/docs/ru/hooks-guide) |

73| Второй репозиторий нуждается в одной и той же настройке | Упакуй это как [plugin](/docs/ru/plugins) |73| Второй репозиторий нуждается в одной и той же настройке | Упакуйте это как [plugin](/docs/ru/plugins/overview) |

74 74 

75Те же триггеры говорят тебе, когда обновить то, что у тебя уже есть. Повторяющаяся ошибка или повторяющийся комментарий при проверке — это редактирование CLAUDE.md, а не одноразовое исправление в чате. Рабочий процесс, который ты постоянно подправляешь вручную, — это skill, который нуждается в другой редакции.75Те же триггеры говорят тебе, когда обновить то, что у тебя уже есть. Повторяющаяся ошибка или повторяющийся комментарий при проверке — это редактирование CLAUDE.md, а не одноразовое исправление в чате. Рабочий процесс, который ты постоянно подправляешь вручную, — это skill, который нуждается в другой редакции.

76 76 


207Функции могут быть определены на нескольких уровнях: для всех пользователей, для каждого проекта, через плагины или через управляемые политики. Ты также можешь вложить файлы CLAUDE.md в подкаталоги или разместить skills в определённых пакетах монорепо. Когда одна и та же функция существует на нескольких уровнях, вот как они слоятся:207Функции могут быть определены на нескольких уровнях: для всех пользователей, для каждого проекта, через плагины или через управляемые политики. Ты также можешь вложить файлы CLAUDE.md в подкаталоги или разместить skills в определённых пакетах монорепо. Когда одна и та же функция существует на нескольких уровнях, вот как они слоятся:

208 208 

209* **Файлы CLAUDE.md** являются аддитивными: все уровни вносят контент в контекст Claude одновременно. Файлы из твоего рабочего каталога и выше загружаются при запуске; подкаталоги загружаются по мере того, как ты работаешь в них. Когда инструкции конфликтуют, Claude использует суждение, чтобы их согласовать. Подробнее см. в [как загружаются файлы CLAUDE.md](/docs/ru/memory#how-claude-md-files-load).209* **Файлы CLAUDE.md** являются аддитивными: все уровни вносят контент в контекст Claude одновременно. Файлы из твоего рабочего каталога и выше загружаются при запуске; подкаталоги загружаются по мере того, как ты работаешь в них. Когда инструкции конфликтуют, Claude использует суждение, чтобы их согласовать. Подробнее см. в [как загружаются файлы CLAUDE.md](/docs/ru/memory#how-claude-md-files-load).

210* **Skills и subagent'ы** переопределяют по имени: когда одно и то же имя существует на нескольких уровнях, одно определение побеждает на основе приоритета (managed > user > project для skills; managed > CLI flag > project > user > plugin для subagent'ов). Skills плагина [имеют пространство имён](/docs/ru/plugins#add-skills-to-your-plugin), чтобы избежать конфликтов. Подробнее см. в [обнаружение skills](/docs/ru/skills#resolve-skills-that-share-a-name) и [область subagent'а](/docs/ru/sub-agents#choose-the-subagent-scope).210* **Skills и subagent'ы** переопределяют по имени: когда одно и то же имя существует на нескольких уровнях, одно определение побеждает на основе приоритета (managed > user > project для skills; managed > CLI flag > project > user > plugin для subagent'ов). Skills плагина [имеют пространство имён](/docs/ru/plugins/components#skills) для избежания конфликтов. Подробнее см. в [обнаружение skills](/docs/ru/skills#resolve-skills-that-share-a-name) и [область subagent'а](/docs/ru/sub-agents#choose-the-subagent-scope).

211* **MCP-серверы** переопределяют по имени: local > project > user. Подробнее см. в [область MCP](/docs/ru/mcp#scope-hierarchy-and-precedence).211* **MCP-серверы** переопределяют по имени: local > project > user. Подробнее см. в [область MCP](/docs/ru/mcp#scope-hierarchy-and-precedence).

212* **Hooks** объединяются: все зарегистрированные hooks срабатывают для своих совпадающих событий независимо от источника. Подробнее см. в [hooks](/docs/ru/hooks).212* **Hooks** объединяются: все зарегистрированные hooks срабатывают для своих совпадающих событий независимо от источника. Подробнее см. в [hooks](/docs/ru/hooks).

213 213 


304 304 

305 **Стоимость контекста:** Низкая. Поиск символов часто заменяет широкое чтение файлов, поэтому общее использование контекста может снизиться.305 **Стоимость контекста:** Низкая. Поиск символов часто заменяет широкое чтение файлов, поэтому общее использование контекста может снизиться.

306 306 

307 <Tip>Инструмент LSP неактивен до тех пор, пока вы не установите [плагин code intelligence](/docs/ru/discover-plugins#code-intelligence) для вашего языка.</Tip>307 <Tip>Инструмент LSP неактивен до тех пор, пока вы не установите [плагин code intelligence](/docs/ru/plugins/code-intelligence) для вашего языка.</Tip>

308 </Tab>308 </Tab>

309 309 

310 <Tab title="Subagents">310 <Tab title="Subagents">


370 Автоматизируйте действия с помощью hooks370 Автоматизируйте действия с помощью hooks

371 </Card>371 </Card>

372 372 

373 <Card title="Plugins" icon="puzzle-piece" href="/docs/ru/plugins">373 <Card title="Plugins" icon="puzzle-piece" href="/docs/ru/plugins/overview">

374 Упакуйте и поделитесь наборами функций374 Упакуйте и поделитесь наборами функций

375 </Card>375 </Card>

376 376 

377 <Card title="Marketplaces" icon="store" href="/docs/ru/plugin-marketplaces">377 <Card title="Marketplaces" icon="store" href="/docs/ru/plugins/create-marketplace">

378 Размещайте и распространяйте коллекции plugins378 Размещайте и распространяйте коллекции plugins

379 </Card>379 </Card>

380</CardGroup>380</CardGroup>

fullscreen.md +2 −1

Details

100 100 

101* **Щелкните в поле ввода подсказки**, чтобы расположить курсор в любом месте вводимого текста.101* **Щелкните в поле ввода подсказки**, чтобы расположить курсор в любом месте вводимого текста.

102* **Щелкните предложение в списке команд `/` или файлов `@`**, чтобы принять его. При наведении курсора строка под ним выделяется.102* **Щелкните предложение в списке команд `/` или файлов `@`**, чтобы принять его. При наведении курсора строка под ним выделяется.

103* **Щелкните опцию в меню выбора**, чтобы выбрать её. Это касается запросов разрешений, `/model`, `/config` и других диалогов, которые показывают список опций. При наведении курсора на строку отображается указатель. Требуется Claude Code v2.1.187 или более поздняя версия.103* **Щелкните опцию в меню выбора**, чтобы выбрать её. Это касается запросов разрешений, `/model`, `/config` и других диалогов, которые показывают список опций. При наведении курсора на строку отображается указатель.

104* **Щелкните опцию в меню множественного выбора**, чтобы переключить её, и нажмите кнопку отправки, чтобы подтвердить ваш выбор. Щелчок по строке свободного текста, например по строке `Other` в вопросе с несколькими вариантами ответов, фокусирует её поле ввода, чтобы вы могли ввести ответ. Требуется Claude Code v2.1.208 или более поздняя версия.104* **Щелкните опцию в меню множественного выбора**, чтобы переключить её, и нажмите кнопку отправки, чтобы подтвердить ваш выбор. Щелчок по строке свободного текста, например по строке `Other` в вопросе с несколькими вариантами ответов, фокусирует её поле ввода, чтобы вы могли ввести ответ. Требуется Claude Code v2.1.208 или более поздняя версия.

105* **Щелкните значение параметра в панели `/config`**, чтобы изменить его, и прокручивайте список параметров колесом мыши. Требуется Claude Code v2.1.271 или более поздняя версия.105* **Щелкните значение параметра в панели `/config`**, чтобы изменить его, и прокручивайте список параметров колесом мыши. Требуется Claude Code v2.1.271 или более поздняя версия.

106* **Прокручивайте меню выбора или множественного выбора колесом мыши**, когда оно содержит больше опций, чем может отобразить одновременно, например список `/model` в коротком окне терминала. Колесо прокручивает список, пока указатель находится над его опциями. Требуется Claude Code v2.1.280 или более поздняя версия.

106* **Щелкните свёрнутый результат инструмента**, чтобы развернуть его и увидеть полный результат. Щелкните снова, чтобы свернуть. Вызов инструмента и его результат разворачиваются вместе. Щелкаемы только сообщения, которые имеют больше информации для отображения.107* **Щелкните свёрнутый результат инструмента**, чтобы развернуть его и увидеть полный результат. Щелкните снова, чтобы свернуть. Вызов инструмента и его результат разворачиваются вместе. Щелкаемы только сообщения, которые имеют больше информации для отображения.

107 * Щелчок также разворачивает результат команды оболочки `!`, будь то старый усечённый результат или строка прямого хода во время выполнения команды. Требуется Claude Code v2.1.257 или более поздняя версия.108 * Щелчок также разворачивает результат команды оболочки `!`, будь то старый усечённый результат или строка прямого хода во время выполнения команды. Требуется Claude Code v2.1.257 или более поздняя версия.

108* **Удерживайте `Cmd` на macOS или `Ctrl` на Linux и Windows и щелкните URL или путь к файлу**, чтобы открыть его. Простые URL-адреса `http://` и `https://` открываются в вашем браузере, а пути к файлам в результатах инструментов, например те, которые выводятся после Edit или Write, открываются в вашем приложении по умолчанию. Простой щелчок без модификатора не открывает ссылки, что соответствует поведению встроенного терминала.109* **Удерживайте `Cmd` на macOS или `Ctrl` на Linux и Windows и щелкните URL или путь к файлу**, чтобы открыть его. Простые URL-адреса `http://` и `https://` открываются в вашем браузере, а пути к файлам в результатах инструментов, например те, которые выводятся после Edit или Write, открываются в вашем приложении по умолчанию. Простой щелчок без модификатора не открывает ссылки, что соответствует поведению встроенного терминала.

Details

50* Запустите `/install-github-app` снова. Когда репозиторий уже имеет `claude.yml`, выберите **Update workflow file with latest version**. Claude Code отправляет свежие копии файлов рабочего процесса в новую ветку и открывает pull request, как при первой установке.50* Запустите `/install-github-app` снова. Когда репозиторий уже имеет `claude.yml`, выберите **Update workflow file with latest version**. Claude Code отправляет свежие копии файлов рабочего процесса в новую ветку и открывает pull request, как при первой установке.

51* Добавьте аргумент `--comment` и строку `claude_args` из [примера рабочего процесса проверки](#run-a-skill) в зафиксированный файл самостоятельно, что сохраняет любые другие внесённые вами изменения.51* Добавьте аргумент `--comment` и строку `claude_args` из [примера рабочего процесса проверки](#run-a-skill) в зафиксированный файл самостоятельно, что сохраняет любые другие внесённые вами изменения.

52 52 

53После установки GitHub App Claude Code спрашивает, продолжить ли с настройкой GitHub Actions. Выберите **Skip for now**, чтобы остановиться только с установленным GitHub App. Запустите `/install-github-app` снова позже, чтобы завершить шаги рабочего процесса и секрета. До версии 2.1.187 Claude Code переходил прямо к выбору рабочего процесса.53После установки GitHub App Claude Code спрашивает, продолжить ли с настройкой GitHub Actions. Выберите **Skip for now**, чтобы остановиться только с установленным GitHub App. Запустите `/install-github-app` снова позже, чтобы завершить шаги рабочего процесса и секрета.

54 54 

55<Note>55<Note>

56 * Когда вы устанавливаете GitHub App, вы предоставляете ему несколько разрешений. Полный набор см. в [разрешениях GitHub App](#github-app-permissions)56 * Когда вы устанавливаете GitHub App, вы предоставляете ему несколько разрешений. Полный набор см. в [разрешениях GitHub App](#github-app-permissions)


237Вход `prompt` принимает [вызов skill](/docs/ru/skills) а также простой текст:237Вход `prompt` принимает [вызов skill](/docs/ru/skills) а также простой текст:

238 238 

239* Для skill в каталоге `.claude/skills/` вашего репозитория запустите `actions/checkout` перед шагом `anthropics/claude-code-action`, чтобы файлы skill были доступны на runner, затем передайте `/skill-name` как `prompt`.239* Для skill в каталоге `.claude/skills/` вашего репозитория запустите `actions/checkout` перед шагом `anthropics/claude-code-action`, чтобы файлы skill были доступны на runner, затем передайте `/skill-name` как `prompt`.

240* Для skill, упакованного в [plugin](/docs/ru/plugins), установите plugin с входами `plugin_marketplaces` и `plugins`, затем передайте пространство имён `/plugin-name:skill-name` как `prompt`. Вход `plugins` принимает `plugin-name@marketplace-name`, где имя маркетплейса поступает из собственного манифеста маркетплейса, а не из URL его репозитория.240* Для skill, упакованного в [plugin](/docs/ru/plugins/overview), установите plugin с входами `plugin_marketplaces` и `plugins`, затем передайте пространство имён `/plugin-name:skill-name` как `prompt`. Вход `plugins` принимает `plugin-name@marketplace-name`, где имя маркетплейса поступает из собственного манифеста маркетплейса, а не из URL его репозитория.

241 241 

242Следующий рабочий процесс устанавливает plugin `code-review` и запускает его skill, когда pull request открывается, обновляется, переоткрывается или отмечается как готовый к проверке. Он запускает тот же plugin, что и рабочий процесс проверки из быстрой настройки. Используйте рабочий процесс, подобный этому, когда вы хотите контролировать prompt, модель и триггеры самостоятельно. Для автоматических проверок без поддержания файла рабочего процесса см. [Code Review](/docs/ru/code-review). На публичных репозиториях GitHub скрывает секреты от запусков, запущенных pull requests из форков, поэтому проверка запускается только на pull requests из веток в том же репозитории.242Следующий рабочий процесс устанавливает plugin `code-review` и запускает его skill, когда pull request открывается, обновляется, переоткрывается или отмечается как готовый к проверке. Он запускает тот же plugin, что и рабочий процесс проверки из быстрой настройки. Используйте рабочий процесс, подобный этому, когда вы хотите контролировать prompt, модель и триггеры самостоятельно. Для автоматических проверок без поддержания файла рабочего процесса см. [Code Review](/docs/ru/code-review). На публичных репозиториях GitHub скрывает секреты от запусков, запущенных pull requests из форков, поэтому проверка запускается только на pull requests из веток в том же репозитории.

243 243 

Details

68Манифест настраивает GitHub App с разрешениями и событиями webhook ниже, которые вместе охватывают веб-сессии, проверку кода, Claude Security, маркетплейсы плагинов и метрики вклада:68Манифест настраивает GitHub App с разрешениями и событиями webhook ниже, которые вместе охватывают веб-сессии, проверку кода, Claude Security, маркетплейсы плагинов и метрики вклада:

69 69 

70| Разрешение | Доступ | Используется для |70| Разрешение | Доступ | Используется для |

71| :------------------- | :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |71| :------------------- | :-------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

72| Contents | Чтение и запись | Клонирование репозиториев и отправка веток |72| Contents | Чтение и запись | Клонирование репозиториев и отправка веток |

73| Pull requests | Чтение и запись | Создание PR и публикация комментариев проверки |73| Pull requests | Чтение и запись | Создание PR и публикация комментариев проверки |

74| Issues | Чтение и запись | Ответ на упоминания в проблемах |74| Issues | Чтение и запись | Ответ на упоминания в проблемах |

75| Checks | Чтение и запись | Публикация проверочных запусков Code Review |75| Checks | Чтение и запись | Публикация проверочных запусков Code Review |

76| Actions | Чтение | Чтение статуса CI для автоисправления |76| Actions | Чтение | Чтение статуса CI для автоисправления |

77| Commit statuses | Чтение | Чтение статуса CI от поставщиков, которые сообщают статусы коммитов вместо запусков проверок |77| Commit statuses | Чтение | Чтение статуса CI от поставщиков, которые сообщают статусы коммитов вместо запусков проверок |

78| Repository hooks | Чтение и запись | Создание webhook на репозитории маркетплейса плагинов, когда **Sync automatically** включена для маркетплейса в [Organization settings > Plugins](https://claude.ai/admin-settings/plugins) |78| Repository hooks | Чтение и запись | Создание webhook на репозитории маркетплейса плагинов, когда **Sync automatically** включена для маркетплейса в [**Organization settings > Plugins & skills**](https://claude.ai/admin-settings/skills?tab=marketplaces) |

79| Metadata | Чтение | Требуется GitHub для всех приложений |79| Metadata | Чтение | Требуется GitHub для всех приложений |

80| Organization members | Чтение | Соответствие Claude GitHub App на github.com, которое использует это для проверки роли организации подключающегося пользователя при связывании установки |80| Organization members | Чтение | Соответствие Claude GitHub App на github.com, которое использует это для проверки роли организации подключающегося пользователя при связывании установки |

81 81 


160 160 

161Claude Code запускает git неинтерактивно и отклоняет SSH-подключения к хостам, которые отсутствуют в файле `known_hosts` машины. URL HTTPS с помощником учётных данных git избегает требования `known_hosts`.161Claude Code запускает git неинтерактивно и отклоняет SSH-подключения к хостам, которые отсутствуют в файле `known_hosts` машины. URL HTTPS с помощником учётных данных git избегает требования `known_hosts`.

162 162 

163Полное руководство по созданию рынков см. в разделе [Создание и распределение рынка плагинов](/docs/ru/plugin-marketplaces).163Полное руководство по созданию рынков см. в разделе [Создание и распределение рынка плагинов](/docs/ru/plugins/create-marketplace) для полного руководства по созданию рынков.

164 164 

165<h3 id="pre-register-ghes-marketplaces-with-managed-settings">165<h3 id="pre-register-ghes-marketplaces-with-managed-settings">

166 Предварительная регистрация рынков GHES с управляемыми параметрами166 Предварительная регистрация рынков GHES с управляемыми параметрами


262 262 

263* [Claude Code в веб-интерфейсе](/docs/ru/claude-code-on-the-web): запуск сессий Claude Code на облачной инфраструктуре263* [Claude Code в веб-интерфейсе](/docs/ru/claude-code-on-the-web): запуск сессий Claude Code на облачной инфраструктуре

264* [Проверка кода](/docs/ru/code-review): автоматизированные проверки PR264* [Проверка кода](/docs/ru/code-review): автоматизированные проверки PR

265* [Маркетплейсы плагинов](/docs/ru/plugin-marketplaces): создание и распределение каталогов плагинов265* [Plugin marketplaces](/docs/ru/plugins/host-marketplace): создание и распределение каталогов плагинов

266* [Аналитика](/docs/ru/analytics): отслеживание использования и метрик вклада266* [Аналитика](/docs/ru/analytics): отслеживание использования и метрик вклада

267* [Управляемые параметры](/docs/ru/settings): конфигурация политики на уровне организации267* [Управляемые параметры](/docs/ru/settings): конфигурация политики на уровне организации

268* [Конфигурация сети](/docs/ru/network-config): требования к брандмауэру и списку разрешений IP268* [Конфигурация сети](/docs/ru/network-config): требования к брандмауэру и списку разрешений IP

glossary.md +3 −3

Details

84 Bare mode84 Bare mode

85</h3>85</h3>

86 86 

87С флагом `--bare` Claude Code запускается без загрузки hooks, skills, пользовательских команд, subagents, plugins, MCP servers, auto memory или CLAUDE.md, за исключением skills в директории, которую вы передаёте с помощью `--add-dir`. Рекомендуется для CI и скриптовых вызовов, где вам нужен одинаковый результат на каждой машине.87С флагом `--bare` Claude Code запускается без загрузки hooks, skills, пользовательских команд, subagents, установленных plugins, MCP servers, auto memory или CLAUDE.md, за исключением skills в директории, которую вы передаёте с помощью `--add-dir`. Рекомендуется для CI и скриптовых вызовов, где вам нужен одинаковый результат на каждой машине.

88 88 

89Подробнее: [Start faster with bare mode](/docs/ru/headless#start-faster-with-bare-mode)89Подробнее: [Start faster with bare mode](/docs/ru/headless#start-faster-with-bare-mode)

90 90 


332 Plugin332 Plugin

333</h3>333</h3>

334 334 

335Пакет skills, hooks, subagents и MCP servers, упакованный как единица установки. Plugin skills имеют пространство имён как `plugin-name:skill-name`, поэтому несколько plugins сосуществуют. Распределяйте plugins по командам через [marketplace](/docs/ru/plugin-marketplaces).335Пакет skills, hooks, subagents и MCP servers, упакованный как единица установки. Plugin skills имеют пространство имён как `plugin-name:skill-name`, поэтому несколько plugins сосуществуют. Распределяйте plugins по командам через [marketplace](/docs/ru/plugins/overview).

336 336 

337Подробнее: [Plugins](/docs/ru/plugins)337Подробнее: [Plugins](/docs/ru/plugins/overview)

338 338 

339<h3 id="project-trust">339<h3 id="project-trust">

340 Project trust340 Project trust

headless.md +1 −1

Details

38 Начните быстрее с режима bare38 Начните быстрее с режима bare

39</h3>39</h3>

40 40 

41Добавьте `--bare` для сокращения времени запуска путём пропуска автоматического обнаружения hooks, skills, пользовательских команд, [подагентов](/docs/ru/sub-agents), plugins, MCP серверов, автоматической памяти и CLAUDE.md. Без этого `claude -p` загружает тот же [контекст](/docs/ru/how-claude-code-works#the-context-window), что и интерактивная сессия, включая всё, что настроено в рабочем каталоге или `~/.claude`.41Добавьте `--bare` для сокращения времени запуска путём пропуска автоматического обнаружения hooks, skills, пользовательских команд, [подагентов](/docs/ru/sub-agents), установленных plugins, MCP серверов, автоматической памяти и CLAUDE.md. Без этого `claude -p` загружает тот же [контекст](/docs/ru/how-claude-code-works#the-context-window), что и интерактивная сессия, включая всё, что настроено в рабочем каталоге или `~/.claude`.

42 42 

43Режим bare полезен для CI и скриптов, где вам нужен одинаковый результат на каждой машине. Hook в `~/.claude` коллеги или MCP сервер в `.mcp.json` проекта не будут запущены, потому что режим bare никогда их не читает. Каталог, который вы указываете с помощью `--add-dir`, является частичным исключением: режим bare загружает skills из его папки `.claude/skills/`, но всё ещё пропускает его папки `.claude/commands/` и `.claude/agents/`. [Skills из дополнительных каталогов](/docs/ru/skills#skills-from-additional-directories) охватывает то, что загружается и что не загружается.43Режим bare полезен для CI и скриптов, где вам нужен одинаковый результат на каждой машине. Hook в `~/.claude` коллеги или MCP сервер в `.mcp.json` проекта не будут запущены, потому что режим bare никогда их не читает. Каталог, который вы указываете с помощью `--add-dir`, является частичным исключением: режим bare загружает skills из его папки `.claude/skills/`, но всё ещё пропускает его папки `.claude/commands/` и `.claude/agents/`. [Skills из дополнительных каталогов](/docs/ru/skills#skills-from-additional-directories) охватывает то, что загружается и что не загружается.

44 44 

hooks.md +11 −13

Details

259Место, где вы определяете hook, определяет его область действия:259Место, где вы определяете hook, определяет его область действия:

260 260 

261| Расположение | Область действия | Общий доступ |261| Расположение | Область действия | Общий доступ |

262| :--------------------------------------- | :----------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- |262| :------------------------------------------------ | :----------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- |

263| `~/.claude/settings.json` | Все ваши проекты | Нет, локально на вашей машине |263| `~/.claude/settings.json` | Все ваши проекты | Нет, локально на вашей машине |

264| `.claude/settings.json` | Один проект | Да, можно зафиксировать в репозитории |264| `.claude/settings.json` | Один проект | Да, можно зафиксировать в репозитории |

265| `.claude/settings.local.json` | Один проект | Нет, игнорируется git когда Claude Code сохраняет параметр в него |265| `.claude/settings.local.json` | Один проект | Нет, игнорируется git когда Claude Code сохраняет параметр в него |

266| Управляемые параметры политики | Организация | Да, контролируется администратором |266| Управляемые параметры политики | Организация | Да, контролируется администратором |

267| [Plugin](/docs/ru/plugins) `hooks/hooks.json` | Когда плагин включен | Да, поставляется с плагином |267| [Plugin](/docs/ru/plugins/overview) `hooks/hooks.json` | Когда плагин включен | Да, поставляется с плагином |

268| [Skill](/docs/ru/skills) frontmatter | Остаток сеанса после вызова skill. См. [Hooks in skills and agents](#hooks-in-skills-and-agents) | Да, определено в файле skill |268| [Skill](/docs/ru/skills) frontmatter | Остаток сеанса после вызова skill. См. [Hooks in skills and agents](#hooks-in-skills-and-agents) | Да, определено в файле skill |

269| [Subagent](/docs/ru/sub-agents) frontmatter | Пока этот subagent работает | Да, определено в файле subagent |269| [Subagent](/docs/ru/sub-agents) frontmatter | Пока этот subagent работает | Да, определено в файле subagent |

270 270 

271Облачные сеансы на [Claude Code в веб-версии](/docs/ru/claude-code-on-the-web) не читают ваш локальный `~/.claude/settings.json`; hooks там поступают из репозитория `.claude/settings.json` в сеансе с одним репозиторием, из плагинов [синхронизированных с вашего аккаунта claude.ai](/docs/ru/plugins-reference#synced-plugins) и из управляемых на сервере параметров вашей организации. В [самостоятельно размещённой среде](/docs/ru/self-hosted-environments-configuration#permissions-and-tool-approval), Claude Code также запускает hooks, которые оператор инициализировал из `~/.claude/` хоста runner, и запускает hooks в файле управляемых параметров образа runner, когда этот файл находится среди [управляемых источников, которые применяет Claude Code](/docs/ru/managed-settings#how-claude-code-combines-managed-sources), что по умолчанию означает только когда ни управляемые на сервере параметры, ни доставленная MDM политика Claude Code не предоставляют управляемый уровень. См. [что переносится из вашей установки](/docs/ru/cloud-environments#what-carries-over-from-your-setup) для того, какие файлы достигают облачного сеанса.271Облачные сеансы на [Claude Code в веб-версии](/docs/ru/claude-code-on-the-web) не читают ваш локальный `~/.claude/settings.json`. В [самостоятельно размещённой среде](/docs/ru/self-hosted-environments-configuration#permissions-and-tool-approval), Claude Code также запускает hooks, которые оператор инициализировал из `~/.claude/` хоста runner, и запускает hooks в файле управляемых параметров образа runner, когда этот файл находится среди [управляемых источников, которые применяет Claude Code](/docs/ru/managed-settings#how-claude-code-combines-managed-sources), что по умолчанию означает только когда ни управляемые на сервере параметры, ни доставленная MDM политика Claude Code не предоставляют управляемый уровень. См. [что переносится из вашей установки](/docs/ru/cloud-environments#what-carries-over-from-your-setup) для того, какие файлы настроек и плагины, и таким образом какие hooks, достигают облачного сеанса.

272 272 

273Для получения подробной информации о разрешении файлов настроек см. [settings](/docs/ru/settings).273Для получения подробной информации о разрешении файлов настроек см. [settings](/docs/ru/settings).

274 274 


278 278 

279* Ваши пользовательские, проектные, локальные и плагинные hooks блокируются. Hooks из плагинов, принудительно включённых в управляемых параметрах `enabledPlugins`, исключены279* Ваши пользовательские, проектные, локальные и плагинные hooks блокируются. Hooks из плагинов, принудительно включённых в управляемых параметрах `enabledPlugins`, исключены

280* Claude Code также сужает ваши параметры [`statusLine`](/docs/ru/statusline), [`fileSuggestion`](/docs/ru/settings-reference#filesuggestion) и [`subagentStatusLine`](/docs/ru/statusline#subagent-status-lines) до управляемых параметров280* Claude Code также сужает ваши параметры [`statusLine`](/docs/ru/statusline), [`fileSuggestion`](/docs/ru/settings-reference#filesuggestion) и [`subagentStatusLine`](/docs/ru/statusline#subagent-status-lines) до управляемых параметров

281* Claude Code также отключает плагины с источником [`command`](/docs/ru/plugin-marketplaces#command-sources), включая плагины, принудительно включённые в управляемых параметрах `enabledPlugins`, если только [`disableCommandPluginSources`](/docs/ru/settings-reference#disablecommandpluginsources) явно не установлен на `false`. Источники `command` требуют Claude Code v2.1.229 или позже281* Claude Code также отключает плагины с источником [`command`](/docs/ru/plugins/marketplace-reference#command-plugin-source), включая плагины, принудительно включённые в управляемых параметрах `enabledPlugins`, если только [`disableCommandPluginSources`](/docs/ru/settings-reference#disablecommandpluginsources) явно не установлен на `false`. Источники `command` требуют Claude Code v2.1.229 или позже

282* Claude Code также блокирует команды marketplace [`headersHelper`](/docs/ru/plugin-marketplaces#authenticate-archive-downloads) если только [`disableCommandPluginSources`](/docs/ru/settings-reference#disablecommandpluginsources) явно не установлен на `false`, за исключением marketplace, которые сами управляемые параметры объявляют282* Claude Code также блокирует команды marketplace [`headersHelper`](/docs/ru/plugins/host-marketplace#authenticate-archive-downloads) если только [`disableCommandPluginSources`](/docs/ru/settings-reference#disablecommandpluginsources) явно не установлен на `false`, за исключением marketplace, которые сами управляемые параметры объявляют

283 283 

284См. [что запускается под `allowManagedHooksOnly`](/docs/ru/settings-reference#what-runs-under-allowmanagedhooksonly).284См. [что запускается под `allowManagedHooksOnly`](/docs/ru/settings-reference#what-runs-under-allowmanagedhooksonly).

285 285 


304 304 

305Фильтр на пути регулярного выражения проверяется с помощью `RegExp.prototype.test` JavaScript, который успешно совпадает в любом месте значения. `Edit.*` совпадает как с `Edit`, так и с `NotebookEdit`; оберните шаблон в `^` и `$`, как в `^Edit$`, когда вам нужно совпадение всей строки.305Фильтр на пути регулярного выражения проверяется с помощью `RegExp.prototype.test` JavaScript, который успешно совпадает в любом месте значения. `Edit.*` совпадает как с `Edit`, так и с `NotebookEdit`; оберните шаблон в `^` и `$`, как в `^Edit$`, когда вам нужно совпадение всей строки.

306 306 

307Разделители запятых и допуск окружающего пробела требуют Claude Code v2.1.191 или позже.

308 

309Дефисы в наборе точного совпадения требуют Claude Code v2.1.195 или позже. На более ранних версиях дефисное имя, такое как `code-reviewer`, оценивается как регулярное выражение без привязки, поэтому оно также срабатывает для `senior-code-reviewer`; закрепите его как `^code-reviewer$` на этих версиях, чтобы совпадать только с этим именем.307Дефисы в наборе точного совпадения требуют Claude Code v2.1.195 или позже. На более ранних версиях дефисное имя, такое как `code-reviewer`, оценивается как регулярное выражение без привязки, поэтому оно также срабатывает для `senior-code-reviewer`; закрепите его как `^code-reviewer$` на этих версиях, чтобы совпадать только с этим именем.

310 308 

311`FileChanged` и `StopFailure` используют более узкий набор точного совпадения только букв, цифр, `_` и `|`. Дефис, пробел или запятая в фильтре для этих двух событий держит его на пути регулярного выражения, и только `|` разделяет альтернативы. Каждое другое событие с поддержкой фильтра в таблице ниже принимает `|` или `,`.309`FileChanged` и `StopFailure` используют более узкий набор точного совпадения только букв, цифр, `_` и `|`. Дефис, пробел или запятая в фильтре для этих двух событий держит его на пути регулярного выражения, и только `|` разделяет альтернативы. Каждое другое событие с поддержкой фильтра в таблице ниже принимает `|` или `,`.


516 514 

517Обе формы поддерживают одни и те же [path placeholders](#reference-scripts-by-path), и обе экспортируют их как переменные окружения `CLAUDE_PROJECT_DIR`, `CLAUDE_PLUGIN_ROOT` и `CLAUDE_PLUGIN_DATA` на порождённом процессе, поэтому скрипт может читать `process.env.CLAUDE_PLUGIN_ROOT` независимо от того, как он был запущен.515Обе формы поддерживают одни и те же [path placeholders](#reference-scripts-by-path), и обе экспортируют их как переменные окружения `CLAUDE_PROJECT_DIR`, `CLAUDE_PLUGIN_ROOT` и `CLAUDE_PLUGIN_DATA` на порождённом процессе, поэтому скрипт может читать `process.env.CLAUDE_PLUGIN_ROOT` независимо от того, как он был запущен.

518 516 

519Plugin hooks дополнительно подставляют значения [`${user_config.*}`](/docs/ru/plugins-reference#user-configuration), только в exec form: значение подставляется в `command` и в каждый элемент `args` как простая строка, поэтому оболочка не переанализирует его.517Plugin hooks дополнительно подставляют значения [`${user_config.*}`](/docs/ru/plugins/manifest-reference#user-configuration), только в exec form: значение подставляется в `command` и в каждый элемент `args` как простая строка, поэтому оболочка не переанализирует его.

520 518 

521Shell-form plugin hook, чей `command` ссылается на `${user_config.*}`, завершается с [ошибкой](/docs/ru/errors#plugin-command-references-user-config) вместо запуска. Чтобы использовать значение опции из shell-form hook, прочитайте переменную окружения `$CLAUDE_PLUGIN_OPTION_<KEY>`, такую как `$CLAUDE_PLUGIN_OPTION_WEBHOOK_URL` для опции `webhook_url`, или установите `args` для переключения hook на exec form. До v2.1.207, shell-form plugin hook команды также подставляли `${user_config.*}`.519Shell-form plugin hook, чей `command` ссылается на `${user_config.*}`, завершается с [ошибкой](/docs/ru/errors#plugin-command-references-user-config) вместо запуска. Чтобы использовать значение опции из shell-form hook, прочитайте переменную окружения `$CLAUDE_PLUGIN_OPTION_<KEY>`, такую как `$CLAUDE_PLUGIN_OPTION_WEBHOOK_URL` для опции `webhook_url`, или установите `args` для переключения hook на exec form. До v2.1.207, shell-form plugin hook команды также подставляли `${user_config.*}`.

522 520 


647Используйте эти заполнители для ссылки на скрипты hook относительно корня проекта или плагина, независимо от рабочего каталога при запуске hook:645Используйте эти заполнители для ссылки на скрипты hook относительно корня проекта или плагина, независимо от рабочего каталога при запуске hook:

648 646 

649* `${CLAUDE_PROJECT_DIR}`: корень проекта, где сеанс начался. Claude Code также устанавливает эту переменную в окружении [stdio MCP серверов](/docs/ru/mcp#option-3-add-a-local-stdio-server) и plugin LSP серверов.647* `${CLAUDE_PROJECT_DIR}`: корень проекта, где сеанс начался. Claude Code также устанавливает эту переменную в окружении [stdio MCP серверов](/docs/ru/mcp#option-3-add-a-local-stdio-server) и plugin LSP серверов.

650* `${CLAUDE_PLUGIN_ROOT}`: каталог установки плагина, для скриптов, поставляемых с [плагином](/docs/ru/plugins). См. [plugin environment variables](/docs/ru/plugins-reference#environment-variables) для того, как путь ведёт себя при обновлениях.648* `${CLAUDE_PLUGIN_ROOT}`: каталог установки плагина, для скриптов, поставляемых с [плагином](/docs/ru/plugins/overview). См. [plugin environment variables](/docs/ru/plugins/manifest-reference#environment-variables) для того, как путь ведёт себя при обновлениях.

651* `${CLAUDE_PLUGIN_DATA}`: [каталог постоянных данных](/docs/ru/plugins-reference#persistent-data-directory) плагина, для зависимостей и состояния, которые должны пережить обновления плагина.649* `${CLAUDE_PLUGIN_DATA}`: [каталог постоянных данных](/docs/ru/plugins/components#path-variables-and-persistent-data) плагина, для зависимостей и состояния, которые должны пережить обновления плагина.

652 650 

653<Note>651<Note>

654 **Worktrees отличаются.** Если Claude входит в [worktree](/docs/ru/worktrees) во время сеанса, Claude Code держит `${CLAUDE_PROJECT_DIR}` там, где он был, и передаёт путь worktree вашим hooks другим способом:652 **Worktrees отличаются.** Если Claude входит в [worktree](/docs/ru/worktrees) во время сеанса, Claude Code держит `${CLAUDE_PROJECT_DIR}` там, где он был, и передаёт путь worktree вашим hooks другим способом:


709 }707 }

710 ```708 ```

711 709 

712 См. [plugin components reference](/docs/ru/plugins-reference#hooks) для получения подробной информации о создании plugin hooks.710 См. [plugin components reference](/docs/ru/plugins/components#hooks) для получения подробной информации о создании plugin hooks.

713 </Tab>711 </Tab>

714</Tabs>712</Tabs>

715 713 


1351 1349 

1352При успехе `--init-only` ничего не выводит на терминал. Чтобы подтвердить, что hooks выполнились, начните с `claude --debug-file <path> --init-only`, заменив `<path>` на местоположение файла журнала, и проверьте журнал на наличие записей hooks Setup и SessionStart.1350При успехе `--init-only` ничего не выводит на терминал. Чтобы подтвердить, что hooks выполнились, начните с `claude --debug-file <path> --init-only`, заменив `<path>` на местоположение файла журнала, и проверьте журнал на наличие записей hooks Setup и SessionStart.

1353 1351 

1354Поскольку Setup не срабатывает при каждом запуске, плагин, которому нужна установленная зависимость, не может полагаться только на Setup. Практический паттерн — проверить зависимость при первом использовании и установить при отсутствии, например hook или skill, который тестирует `${CLAUDE_PLUGIN_DATA}/node_modules` и запускает `npm install`, если отсутствует. См. [persistent data directory](/docs/ru/plugins-reference#persistent-data-directory) для информации о том, где хранить установленные зависимости. Если вы распространяете свой плагин через marketplace, вам может не понадобиться этот паттерн: Claude Code [автоматически устанавливает подходящие зависимости пакетов Node.js](/docs/ru/plugins-reference#node-js-package-dependencies) при кэшировании плагина.1352Поскольку Setup не срабатывает при каждом запуске, плагин, которому нужна установленная зависимость, не может полагаться только на Setup. Практический паттерн — проверить зависимость при первом использовании и установить при отсутствии, например hook или skill, который тестирует `${CLAUDE_PLUGIN_DATA}/node_modules` и запускает `npm install`, если отсутствует. См. [persistent data directory](/docs/ru/plugins/components#path-variables-and-persistent-data) для информации о том, где хранить установленные зависимости. Если вы распространяете свой плагин через marketplace, вам может не понадобиться этот паттерн: Claude Code [автоматически устанавливает подходящие зависимости пакетов Node.js](/docs/ru/plugins/loading#node-js-package-dependencies) при кэшировании плагина.

1355 1353 

1356<h4 id="setup-input">1354<h4 id="setup-input">

1357 Ввод Setup1355 Ввод Setup


2530 2528 

2531Запускается, когда Claude порождает подагента с инструментом Agent, когда Claude [возобновляет подагента](/docs/ru/sub-agents#resume-subagents) и каждый раз, когда товарищ [команды агентов](/docs/ru/agent-teams) в процессе обрабатывает новое сообщение. Поддерживает matchers для фильтрации по названию типа агента. Для встроенных агентов это имя агента, такое как `general-purpose`, `Explore` или `Plan`. Для [пользовательских подагентов](/docs/ru/sub-agents) это поле `name` из frontmatter агента, а не имя файла.2529Запускается, когда Claude порождает подагента с инструментом Agent, когда Claude [возобновляет подагента](/docs/ru/sub-agents#resume-subagents) и каждый раз, когда товарищ [команды агентов](/docs/ru/agent-teams) в процессе обрабатывает новое сообщение. Поддерживает matchers для фильтрации по названию типа агента. Для встроенных агентов это имя агента, такое как `general-purpose`, `Explore` или `Plan`. Для [пользовательских подагентов](/docs/ru/sub-agents) это поле `name` из frontmatter агента, а не имя файла.

2532 2530 

2533Для подагентов, поставляемых [плагином](/docs/ru/plugins), тип агента — это идентификатор с областью плагина, такой как `my-plugin:reviewer`, а не голое имя frontmatter. Двое точка помещает имя с областью плагина на путь регулярного выражения, поэтому якорьте matcher с `^` и `$` для точного совпадения: `^my-plugin:reviewer$`.2531Для подагентов, поставляемых [плагином](/docs/ru/plugins/overview), тип агента — это идентификатор с областью плагина, такой как `my-plugin:reviewer`, а не голое имя frontmatter. Двоеточие помещает имя с областью плагина на путь регулярного выражения, поэтому якорьте matcher с `^` и `$` для точного совпадения: `^my-plugin:reviewer$`.

2534 2532 

2535<h4 id="subagentstart-input">2533<h4 id="subagentstart-input">

2536 Ввод SubagentStart2534 Ввод SubagentStart

hooks-guide.md +4 −4

Details

10 10 

11Для решений, требующих суждения, а не детерминированных правил, вы также можете использовать [hooks на основе подсказок](#prompt-based-hooks) или [hooks на основе агентов](#agent-based-hooks), которые используют модель Claude для оценки условий.11Для решений, требующих суждения, а не детерминированных правил, вы также можете использовать [hooks на основе подсказок](#prompt-based-hooks) или [hooks на основе агентов](#agent-based-hooks), которые используют модель Claude для оценки условий.

12 12 

13Для других способов расширения Claude Code см. [skills](/docs/ru/skills) для предоставления Claude дополнительных инструкций и исполняемых команд, [subagents](/docs/ru/sub-agents) для запуска задач в изолированных контекстах и [plugins](/docs/ru/plugins) для упаковки расширений для совместного использования в проектах.13Для других способов расширения Claude Code см. [skills](/docs/ru/skills) для предоставления Claude дополнительных инструкций и исполняемых команд, [subagents](/docs/ru/sub-agents) для запуска задач в изолированных контекстах и [plugins](/docs/ru/plugins/overview) для упаковки расширений для совместного использования в проектах.

14 14 

15<Tip>15<Tip>

16 Это руководство охватывает распространённые варианты использования и как начать работу. Для полных схем событий, форматов JSON ввода/вывода и расширенных функций, таких как асинхронные hooks и MCP tool hooks, см. [справочник Hooks](/docs/ru/hooks).16 Это руководство охватывает распространённые варианты использования и как начать работу. Для полных схем событий, форматов JSON ввода/вывода и расширенных функций, таких как асинхронные hooks и MCP tool hooks, см. [справочник Hooks](/docs/ru/hooks).


710}710}

711```711```

712 712 

713Matcher `"Edit|Write"` срабатывает только, когда Claude использует инструмент `Edit` или `Write`, а не когда он использует `Bash`, `Read` или любой другой инструмент. На Claude Code v2.1.191 или позже запятая разделяет альтернативы так же, поэтому `"Edit, Write"` эквивалентна. См. [Matcher patterns](/docs/ru/hooks#matcher-patterns) для того, как простые имена и регулярные выражения оцениваются.713Matcher `"Edit|Write"` срабатывает только, когда Claude использует инструмент `Edit` или `Write`, а не когда он использует `Bash`, `Read` или любой другой инструмент. Запятая разделяет альтернативы так же, поэтому `"Edit, Write"` эквивалентна. См. [Matcher patterns](/docs/ru/hooks#matcher-patterns) для того, как простые имена и регулярные выражения оцениваются.

714 714 

715<Note>715<Note>

716 Claude может также создавать или изменять файлы, запуская команды оболочки. Если ваш hook должен видеть каждое изменение файла, например для сканирования соответствия или логирования аудита, добавьте hook [`Stop`](/docs/ru/hooks#stop), который сканирует рабочее дерево один раз за ход. Для покрытия за вызов вместо этого также соответствуйте `Bash|PowerShell` и пусть ваш скрипт перечисляет изменённые и неотслеживаемые файлы с помощью `git status --porcelain`. Раздел [PowerShell hook input](/docs/ru/hooks#powershell) объясняет, почему соответствие только `Bash` недостаточно. Чтобы запустить hook при изменении определённого файла на диске, независимо от того, что его записало, используйте hook [FileChanged](/docs/ru/hooks#filechanged).716 Claude может также создавать или изменять файлы, запуская команды оболочки. Если ваш hook должен видеть каждое изменение файла, например для сканирования соответствия или логирования аудита, добавьте hook [`Stop`](/docs/ru/hooks#stop), который сканирует рабочее дерево один раз за ход. Для покрытия за вызов вместо этого также соответствуйте `Bash|PowerShell` и пусть ваш скрипт перечисляет изменённые и неотслеживаемые файлы с помощью `git status --porcelain`. Раздел [PowerShell hook input](/docs/ru/hooks#powershell) объясняет, почему соответствие только `Bash` недостаточно. Чтобы запустить hook при изменении определённого файла на диске, независимо от того, что его записало, используйте hook [FileChanged](/docs/ru/hooks#filechanged).


861Где вы добавляете hook, определяет его область:861Где вы добавляете hook, определяет его область:

862 862 

863| Местоположение | Область | Общий доступ |863| Местоположение | Область | Общий доступ |

864| :--------------------------------------- | :-------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- |864| :------------------------------------------------ | :-------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- |

865| `~/.claude/settings.json` | Все ваши проекты | Нет, локально на вашей машине |865| `~/.claude/settings.json` | Все ваши проекты | Нет, локально на вашей машине |

866| `.claude/settings.json` | Один проект | Да, можно зафиксировать в репо |866| `.claude/settings.json` | Один проект | Да, можно зафиксировать в репо |

867| `.claude/settings.local.json` | Один проект | Нет, gitignored когда Claude Code сохраняет параметр в него |867| `.claude/settings.local.json` | Один проект | Нет, gitignored когда Claude Code сохраняет параметр в него |

868| Managed policy settings | Организация | Да, контролируется администратором |868| Managed policy settings | Организация | Да, контролируется администратором |

869| [Plugin](/docs/ru/plugins) `hooks/hooks.json` | Когда плагин включен | Да, упакован с плагином |869| [Plugin](/docs/ru/plugins/overview) `hooks/hooks.json` | Когда плагин включен | Да, упакован с плагином |

870| [Skill](/docs/ru/skills) frontmatter | Остаток сеанса после вызова skill. См. [Hooks in skills and agents](/docs/ru/hooks#hooks-in-skills-and-agents) | Да, определено в файле skill |870| [Skill](/docs/ru/skills) frontmatter | Остаток сеанса после вызова skill. См. [Hooks in skills and agents](/docs/ru/hooks#hooks-in-skills-and-agents) | Да, определено в файле skill |

871| [Subagent](/docs/ru/sub-agents) frontmatter | Пока этот subagent запущен | Да, определено в файле subagent |871| [Subagent](/docs/ru/sub-agents) frontmatter | Пока этот subagent запущен | Да, определено в файле subagent |

872 872 

Details

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

46 46 

47| Категория | Что может делать Claude |47| Категория | Что может делать Claude |

48| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |48| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

49| **Операции с файлами** | Читать файлы, редактировать код, создавать новые файлы, переименовывать и реорганизовывать |49| **Операции с файлами** | Читать файлы, редактировать код, создавать новые файлы, переименовывать и реорганизовывать |

50| **Поиск** | Находить файлы по шаблону, искать содержимое с помощью regex, исследовать кодовые базы |50| **Поиск** | Находить файлы по шаблону, искать содержимое с помощью regex, исследовать кодовые базы |

51| **Выполнение** | Запускать команды shell, запускать серверы, запускать тесты, использовать git |51| **Выполнение** | Запускать команды shell, запускать серверы, запускать тесты, использовать git |

52| **Веб** | Искать в Интернете, получать документацию, искать сообщения об ошибках |52| **Веб** | Искать в Интернете, получать документацию, искать сообщения об ошибках |

53| **Интеллект кода** | Видеть ошибки типов и предупреждения после редактирования, переходить к определениям, находить ссылки (требует [плагины интеллекта кода](/docs/ru/discover-plugins#code-intelligence)) |53| **Интеллект кода** | Видеть ошибки типов и предупреждения после редактирования, переходить к определениям, находить ссылки (требует [плагины интеллекта кода](/docs/ru/plugins/code-intelligence)) |

54 54 

55Это основные возможности. Claude также имеет инструменты для создания subagents, задания вам вопросов и других задач оркестрации. Полный список см. в разделе [Инструменты, доступные Claude](/docs/ru/tools-reference).55Это основные возможности. Claude также имеет инструменты для создания subagents, задания вам вопросов и других задач оркестрации. Полный список см. в разделе [Инструменты, доступные Claude](/docs/ru/tools-reference).

56 56 

Details

21</h3>21</h3>

22 22 

23| Сочетание клавиш | Описание | Контекст |23| Сочетание клавиш | Описание | Контекст |

24| :-------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |24| :-------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

25| `Ctrl+C` | Прерывание или очистка ввода | Прерывает выполняемую операцию. Если ничего не выполняется, первое нажатие очищает ввод подсказки, а второе нажатие завершает Claude Code |25| `Ctrl+C` | Прерывание или очистка ввода | Прерывает выполняемую операцию. Если ничего не выполняется, первое нажатие очищает ввод подсказки, а второе нажатие завершает Claude Code |

26| `Ctrl+X Ctrl+K` | Остановить все работающие [фоновые подагенты](/docs/ru/sub-agents#run-subagents-in-foreground-or-background) в этом сеансе и отключить [автоматические ответы артефактов](/docs/ru/artifacts#let-claude-reply-to-comments-on-its-own) на остаток сеанса. Нажмите дважды в течение 3 секунд для подтверждения | Управление подагентом |26| `Ctrl+X Ctrl+K` | Остановить все работающие [фоновые подагенты](/docs/ru/sub-agents#run-subagents-in-foreground-or-background) в этом сеансе и отключить [автоматические ответы артефактов](/docs/ru/artifacts#let-claude-reply-to-comments-on-its-own) на остаток сеанса. Нажмите дважды в течение 3 секунд для подтверждения | Управление подагентом |

27| `Ctrl+D` | Выход из сеанса Claude Code | Первое нажатие показывает подсказку подтверждения, а второе нажатие в течение 800 мс завершает работу. Когда подсказка содержит текст, `Ctrl+D` удаляет символ после курсора |27| `Ctrl+D` | Выход из сеанса Claude Code | Первое нажатие показывает подсказку подтверждения, а второе нажатие в течение 800 мс завершает работу. Когда подсказка содержит текст, `Ctrl+D` удаляет символ после курсора |


32| `Ctrl+V` или `Cmd+V` (iTerm2) или `Alt+V` (Windows и WSL) | Вставить изображение из буфера обмена | Вставляет чип `[Image #N]` в позицию курсора, чтобы вы могли ссылаться на него позиционно в своей подсказке. На WSL привязаны оба `Ctrl+V` и `Alt+V`; используйте `Alt+V`, если ваш терминал перехватывает `Ctrl+V` |32| `Ctrl+V` или `Cmd+V` (iTerm2) или `Alt+V` (Windows и WSL) | Вставить изображение из буфера обмена | Вставляет чип `[Image #N]` в позицию курсора, чтобы вы могли ссылаться на него позиционно в своей подсказке. На WSL привязаны оба `Ctrl+V` и `Alt+V`; используйте `Alt+V`, если ваш терминал перехватывает `Ctrl+V` |

33| `Ctrl+B` | Фоновые выполняемые задачи | Переводит команды Bash и агентов в фоновый режим. Пользователи Tmux нажимают дважды |33| `Ctrl+B` | Фоновые выполняемые задачи | Переводит команды Bash и агентов в фоновый режим. Пользователи Tmux нажимают дважды |

34| `Ctrl+T` | Переключение контрольного списка задач Claude | Показать или скрыть [контрольный список задач Claude](#task-list) в области состояния. Это не представление фоновых задач; используйте [`/tasks`](/docs/ru/commands) для просмотра работающих оболочек и подагентов |34| `Ctrl+T` | Переключение контрольного списка задач Claude | Показать или скрыть [контрольный список задач Claude](#task-list) в области состояния. Это не представление фоновых задач; используйте [`/tasks`](/docs/ru/commands) для просмотра работающих оболочек и подагентов |

35| `Ctrl+S` | Сохранить или восстановить подсказку | Если в вводе есть текст, сохраняет его и очищает подсказку. При нажатии снова на пустой подсказке восстанавливает сохраненный текст, позицию курсора и вставленное содержимое |35| `Ctrl+S` | Сохранить или восстановить подсказку | Если в вводе есть текст, сохраняет его и очищает подсказку. При нажатии снова на пустой подсказке восстанавливает сохраненный текст, позицию курсора, вставленное содержимое и режим ввода, поэтому сохраненная команда shell `!` [shell command](#shell-mode-with-prefix) возвращается в режиме shell |

36| `Ctrl+Z` | Приостановить Claude Code | Только Unix. Приостанавливает процесс в вашу оболочку; запустите `fg` для возобновления |36| `Ctrl+Z` | Приостановить Claude Code | Только Unix. Приостанавливает процесс в вашу оболочку; запустите `fg` для возобновления |

37| `Left/Right arrows` | Циклический переход по вкладкам диалога | Навигация между вкладками в диалогах разрешений и меню |37| `Left/Right arrows` | Циклический переход по вкладкам диалога | Навигация между вкладками в диалогах разрешений и меню |

38| `Tab` | Принять предложение автодополнения или добавить комментарий к ответу разрешения | Пока в вводе подсказки отображаются предложения автодополнения, принимает выбранное предложение. В большинстве подсказок разрешений с сфокусированным **Yes** или **No** открывает поле комментария для этого параметра, а повторное нажатие закрывает поле. См. [добавить комментарий при ответе на подсказку разрешения](/docs/ru/permissions#add-a-comment-when-you-answer-a-permission-prompt) |38| `Tab` | Принять предложение автодополнения или добавить комментарий к ответу разрешения | Пока в вводе подсказки отображаются предложения автодополнения, принимает выбранное предложение. В большинстве подсказок разрешений с сфокусированным **Yes** или **No** открывает поле комментария для этого параметра, а повторное нажатие закрывает поле. См. [добавить комментарий при ответе на подсказку разрешения](/docs/ru/permissions#add-a-comment-when-you-answer-a-permission-prompt) |

39| `Up/Down arrows` или `Ctrl+P`/`Ctrl+N` | Перемещение курсора или навигация по истории команд | Когда ввод занимает более одной визуальной строки, будь то обернутый или многострочный, сначала перемещает курсор в подсказке. Когда курсор находится на первой или последней визуальной строке, повторное нажатие переходит по истории команд. Пока у вас есть очередные сообщения, `Up` с первой строки вместо этого [берет их обратно](#take-back-what-you-queued) |39| `Up/Down arrows` или `Ctrl+P`/`Ctrl+N` | Перемещение курсора или навигация по истории команд | Когда ввод занимает более одной визуальной строки, будь то обернутый или многострочный, сначала перемещает курсор в подсказке. Когда курсор находится на первой или последней визуальной строке, повторное нажатие переходит по истории команд. Пока у вас есть очередные сообщения, `Up` с первой строки вместо этого [берет их обратно](#take-back-what-you-queued) |

40| `Esc` | Прерывание Claude или закрытие диалога | Остановить текущий ответ или вызов инструмента в середине хода, чтобы вы могли перенаправить. Claude сохраняет выполненную работу. Если у вас есть [очередные сообщения](#queue-messages-while-claude-works), Claude Code отправляет их дальше. Когда диалог открыт, `Esc` закрывает диалог. На подсказке разрешения `Esc` отклоняет действие, то же самое, что [**No** без комментария](/docs/ru/permissions#add-a-comment-when-you-answer-a-permission-prompt) |40| `Esc` | Прерывание Claude или закрытие диалога | Остановить текущий ответ или вызов инструмента в середине хода, чтобы вы могли перенаправить. Claude сохраняет выполненную работу. Если у вас есть [очередные сообщения](#queue-messages-while-claude-works), Claude Code отправляет их дальше. Когда диалог открыт, `Esc` закрывает диалог. На подсказке разрешения `Esc` отклоняет действие, то же самое, что [**No** без комментария](/docs/ru/permissions#add-a-comment-when-you-answer-a-permission-prompt) |

41| `Esc` + `Esc` | Очистить черновик ввода или перемотать | Когда ввод подсказки содержит текст, двойной `Esc` очищает его и сохраняет черновик в историю, чтобы `Up` его вспомнил. Когда ввод пуст, двойной `Esc` открывает [меню перемотки](/docs/ru/checkpointing) для восстановления или суммирования кода и разговора с предыдущей точки |41| `Esc` + `Esc` | Очистить черновик ввода или перемотать | Когда ввод подсказки содержит текст, двойной `Esc` очищает его и сохраняет черновик в историю, чтобы `Up` его вспомнил. Когда ввод пуст, двойной `Esc` открывает [меню перемотки](/docs/ru/checkpointing) для восстановления или суммирования кода и разговора с предыдущей точки |

42| `Ctrl+Enter` или `Ctrl+X Ctrl+S` | Отправить очередные сообщения сейчас | Прерывает текущий ход, чтобы ваши [очередные сообщения](#queue-messages-while-claude-works) и ваш черновик с ними отправились сразу же, а не когда ход закончится. В [режиме shell](#shell-mode-with-prefix) клавиша ставит вашу команду в очередь без прерывания. В терминалах, которые не сообщают о расширенных клавишах, `Ctrl+Enter` приходит как простой `Enter`; `Ctrl+X Ctrl+S` работает в любом терминале. Требует Claude Code v2.1.275 или более поздней версии |42| `Ctrl+Enter` или `Ctrl+X Ctrl+S` | Отправить очередные сообщения сейчас | Отправляет ваши [очередные сообщения](#queue-messages-while-claude-works) и ваш черновик с ними прямо сейчас. [Когда Claude Code отправляет то, что вы поставили в очередь](#when-claude-code-sends-what-you-queued) охватывает то, что происходит с ходом, над которым работает Claude. В [режиме shell](#shell-mode-with-prefix) клавиша ставит вашу команду в очередь. В терминалах, которые не сообщают о расширенных клавишах, `Ctrl+Enter` приходит как простой `Enter`; `Ctrl+X Ctrl+S` работает в любом терминале. Требует Claude Code v2.1.275 или более поздней версии |

43| `Shift+Tab`, или `Alt+M` на Windows, когда среда выполнения Node или Bun не включает режим ввода VT | Циклический переход по режимам разрешений | Циклический переход через `default` (помечено как Manual в индикаторе режима), `acceptEdits`, `plan` и, если доступно, `bypassPermissions` и затем `auto`. Из `auto` первое нажатие переключается на `default`. См. [режимы разрешений](/docs/ru/permission-modes). На подсказке разрешения файла то же самое ключевое слово закрывает открытое [поле комментария](/docs/ru/permissions#add-a-comment-when-you-answer-a-permission-prompt). Без открытого поля выбирает параметр, который разрешает действие на остаток сеанса, когда подсказка предлагает этот параметр |43| `Shift+Tab`, или `Alt+M` на Windows, когда среда выполнения Node или Bun не включает режим ввода VT | Циклический переход по режимам разрешений | Циклический переход через `default` (помечено как Manual в индикаторе режима), `acceptEdits`, `plan` и, если доступно, `bypassPermissions` и затем `auto`. Из `auto` первое нажатие переключается на `default`. См. [режимы разрешений](/docs/ru/permission-modes). На подсказке разрешения файла то же самое ключевое слово закрывает открытое [поле комментария](/docs/ru/permissions#add-a-comment-when-you-answer-a-permission-prompt). Без открытого поля выбирает параметр, который разрешает действие на остаток сеанса, когда подсказка предлагает этот параметр |

44| `Option+P` (macOS) или `Alt+P` (Windows/Linux) | Переключение модели | Переключение моделей без очистки подсказки |44| `Option+P` (macOS) или `Alt+P` (Windows/Linux) | Переключение модели | Переключение моделей без очистки подсказки |

45| `Option+T` (macOS) или `Alt+T` (Windows/Linux) | Переключение расширенного мышления | Включение или отключение режима расширенного мышления. Не влияет на Opus 5.5 или модели Fable, которые всегда используют расширенное мышление. Работает на macOS без настройки Option как Meta |45| `Option+T` (macOS) или `Alt+T` (Windows/Linux) | Переключение расширенного мышления | Включение или отключение режима расширенного мышления. Не влияет на Opus 5.5 или модели Fable, которые всегда используют расширенное мышление. Работает на macOS без настройки Option как Meta |


136 Команды136 Команды

137</h2>137</h2>

138 138 

139Введите `/` в Claude Code, чтобы увидеть доступные вам команды, или введите `/` с последующими буквами для фильтрации. Меню `/` содержит встроенные команды, включённые и созданные пользователем [skills](/docs/ru/skills), а также команды, предоставленные [plugins](/docs/ru/plugins) и [MCP servers](/docs/ru/mcp#use-mcp-prompts-as-commands). Не все встроенные команды видны каждому пользователю, так как некоторые зависят от вашей платформы или плана, и [несколько доступных команд скрыты из меню по замыслу](/docs/ru/commands#how-the-command-menu-matches-what-you-type) и запускаются при вводе их полного имени.139Введите `/` в Claude Code, чтобы увидеть доступные вам команды, или введите `/` с последующими буквами для фильтрации. Меню `/` содержит встроенные команды, включённые и созданные пользователем [skills](/docs/ru/skills), а также команды, предоставленные [plugins](/docs/ru/plugins/overview) и [MCP servers](/docs/ru/mcp#use-mcp-prompts-as-commands). Не все встроенные команды видны каждому пользователю, так как некоторые зависят от вашей платформы или плана, и [несколько доступных команд скрыты из меню по замыслу](/docs/ru/commands#how-the-command-menu-matches-what-you-type) и запускаются при вводе их полного имени.

140 140 

141В [полноэкранном режиме отображения](/docs/ru/fullscreen#use-the-mouse) команда `/` и списки предложений файлов `@` также реагируют на мышь: наведение выделяет строку, а клик принимает её.141В [полноэкранном режиме отображения](/docs/ru/fullscreen#use-the-mouse) команда `/` и списки предложений файлов `@` также реагируют на мышь: наведение выделяет строку, а клик принимает её.

142 142 


408* Сообщения: если вы поставите сообщение в очередь, пока Claude выполняет вызовы инструментов, Claude Code передаст его Claude сразу же после завершения этих вызовов в рамках одного хода. Когда ход заканчивается с оставшимися в очереди сообщениями, они отправляются без дополнительного нажатия клавиши в порядке, в котором вы их набрали408* Сообщения: если вы поставите сообщение в очередь, пока Claude выполняет вызовы инструментов, Claude Code передаст его Claude сразу же после завершения этих вызовов в рамках одного хода. Когда ход заканчивается с оставшимися в очереди сообщениями, они отправляются без дополнительного нажатия клавиши в порядке, в котором вы их набрали

409* Команды и команды оболочки: Claude Code удерживает их до конца хода, затем выполняет их по одной, сохраняя порядок, в котором вы их поставили в очередь409* Команды и команды оболочки: Claude Code удерживает их до конца хода, затем выполняет их по одной, сохраняя порядок, в котором вы их поставили в очередь

410 410 

411Чтобы отправить то, что вы поставили в очередь, не дожидаясь завершения хода, нажмите `Ctrl+Enter`. Claude Code прерывает ход, и ваши сообщения из очереди отправляются сразу же, с вашим черновиком в очереди позади них, если вы что-то набрали. В [режиме оболочки](#shell-mode-with-prefix) эта клавиша ставит вашу команду в очередь без прерывания хода. Требуется Claude Code v2.1.275 или позже.411Чтобы отправить то, что вы поставили в очередь, не дожидаясь завершения хода, нажмите `Ctrl+Enter`. Ваши сообщения из очереди отправляются сразу же, с вашим черновиком в очереди позади них, если вы что-то набрали. Требуется Claude Code v2.1.275 или позже.

412 412 

413В терминалах, которые не сообщают о расширенных клавишах, `Ctrl+Enter` поступает как обычный `Enter` и ставит черновик в очередь; `Ctrl+X Ctrl+S` работает в любом терминале. Обе клавиши являются привязками действия [`chat:sendNow`](/docs/ru/keybindings#chat-actions).413Если вы поставили в очередь команду `!` оболочки перед вашими сообщениями, клавиша прерывает ход. В противном случае, что происходит с ходом, зависит от того, что Claude делает при нажатии клавиши:

414 

415* Выполнение команд оболочки, подагентов или другой работы, которая может перейти в [фоновый режим](#background-bash-commands): эта работа переходит в фоновый режим и продолжает выполняться, а Claude читает ваши сообщения в том же ходе

416* Только написание ответа или выполнение чего-то, что не может перейти в фоновый режим: Claude Code прерывает ход и отправляет ваши сообщения дальше. До версии v2.1.281 клавиша прерывала ход в обоих случаях

417 

418В [режиме оболочки](#shell-mode-with-prefix) клавиша только ставит вашу команду в очередь. В терминалах, которые не сообщают о расширенных клавишах, `Ctrl+Enter` поступает как обычный `Enter` и ставит черновик в очередь; `Ctrl+X Ctrl+S` работает в любом терминале. Обе клавиши являются привязками действия [`chat:sendNow`](/docs/ru/keybindings#chat-actions).

414 419 

415Нажмите `Esc` для прерывания хода без отправки вашего черновика. Claude Code сохраняет то, что вы поставили в очередь, и отправляет это сразу же.420Нажмите `Esc` для прерывания хода без отправки вашего черновика. Claude Code сохраняет то, что вы поставили в очередь, и отправляет это сразу же.

416 421 

keybindings.md +18 −2

Details

112Действия, доступные в контексте `Chat`:112Действия, доступные в контексте `Chat`:

113 113 

114| Действие | По умолчанию | Описание |114| Действие | По умолчанию | Описание |

115| :-------------------- | :------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |115| :-------------------- | :------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

116| `chat:cancel` | Escape | Отменить текущий ввод |116| `chat:cancel` | Escape | Отменить текущий ввод |

117| `chat:clearInput` | Ctrl+L | Принудительно перерисовать весь экран, сохраняя ввод и разговор |117| `chat:clearInput` | Ctrl+L | Принудительно перерисовать весь экран, сохраняя ввод и разговор |

118| `chat:clearScreen` | Cmd+K | То же, что `chat:clearInput`. См. [Очистить разговор](/docs/ru/fullscreen#clear-the-conversation) для информации о поведении Cmd+K в iTerm2 и Terminal.app |118| `chat:clearScreen` | Cmd+K | То же, что `chat:clearInput`. См. [Очистить разговор](/docs/ru/fullscreen#clear-the-conversation) для информации о поведении Cmd+K в iTerm2 и Terminal.app |


123| `chat:thinkingToggle` | Meta+T | Переключить расширенное мышление |123| `chat:thinkingToggle` | Meta+T | Переключить расширенное мышление |

124| `chat:submit` | Enter | Отправить сообщение |124| `chat:submit` | Enter | Отправить сообщение |

125| `chat:queueSubmit` | Ctrl+X Enter | Отправить сообщение, отмеченное для ожидания своей очереди: пока Claude работает, Claude Code [ставит его в очередь](/docs/ru/interactive-mode#queue-messages-while-claude-works) и никогда не прерывает ход. В отличие от `chat:submit`, он отправляет черновик даже если выделено предложение автодополнения. Требует v2.1.247 или более позднюю версию |125| `chat:queueSubmit` | Ctrl+X Enter | Отправить сообщение, отмеченное для ожидания своей очереди: пока Claude работает, Claude Code [ставит его в очередь](/docs/ru/interactive-mode#queue-messages-while-claude-works) и никогда не прерывает ход. В отличие от `chat:submit`, он отправляет черновик даже если выделено предложение автодополнения. Требует v2.1.247 или более позднюю версию |

126| `chat:sendNow` | Ctrl+Enter, Ctrl+X Ctrl+S | Прервать текущий ход, чтобы ваши [сообщения в очереди](/docs/ru/interactive-mode#queue-messages-while-claude-works) и ваш черновик с ними отправились сразу же. Когда ничего не выполняется, он отправляет черновик, а в [режиме shell](/docs/ru/interactive-mode#shell-mode-with-prefix) он ставит команду в очередь без прерывания. Терминалы, которые не сообщают о расширенных клавишах, доставляют `Ctrl+Enter` как простой `Enter`, поэтому `Ctrl+X Ctrl+S` — это привязка, которая работает в любом терминале. Требует v2.1.275 или более позднюю версию |126| `chat:sendNow` | Ctrl+Enter, Ctrl+X Ctrl+S | Отправить ваши [сообщения в очереди](/docs/ru/interactive-mode#queue-messages-while-claude-works) и ваш черновик с ними прямо сейчас. [Когда Claude Code отправляет то, что вы поставили в очередь](/docs/ru/interactive-mode#when-claude-code-sends-what-you-queued) описывает, что происходит с ходом, над которым работает Claude. Когда ничего не выполняется, клавиша отправляет черновик, а в [режиме shell](/docs/ru/interactive-mode#shell-mode-with-prefix) она ставит команду в очередь. Терминалы, которые не сообщают о расширенных клавишах, доставляют `Ctrl+Enter` как простой `Enter`, поэтому `Ctrl+X Ctrl+S` — это привязка, которая работает в любом терминале. Требует v2.1.275 или более позднюю версию |

127| `chat:newline` | Ctrl+J | Вставить новую строку без отправки |127| `chat:newline` | Ctrl+J | Вставить новую строку без отправки |

128| `chat:undo` | Ctrl+\_, Ctrl+Shift+- | Отменить последнее действие |128| `chat:undo` | Ctrl+\_, Ctrl+Shift+- | Отменить последнее действие |

129| `chat:externalEditor` | Ctrl+G, Ctrl+X Ctrl+E | Открыть во внешнем редакторе. [Ввод диспетчера представления агента](/docs/ru/agent-view#keyboard-shortcuts) также следует сочетаниям клавиш этого действия |129| `chat:externalEditor` | Ctrl+G, Ctrl+X Ctrl+E | Открыть во внешнем редакторе. [Ввод диспетчера представления агента](/docs/ru/agent-view#keyboard-shortcuts) также следует сочетаниям клавиш этого действия |


184}184}

185```185```

186 186 

187С этими привязками `y` и `n` по-прежнему вводятся как буквы, пока [текстовое поле](#text-fields) имеет фокус.

188 

187До v2.1.280 `y` также была привязана к `confirm:yes` и `n` к `confirm:no` по умолчанию. Если вы создали свой `keybindings.json` с помощью `/keybindings` до v2.1.280, файл содержит обе привязки и они остаются в силе, пока вы не удалите эти две строки.189До v2.1.280 `y` также была привязана к `confirm:yes` и `n` к `confirm:no` по умолчанию. Если вы создали свой `keybindings.json` с помощью `/keybindings` до v2.1.280, файл содержит обе привязки и они остаются в силе, пока вы не удалите эти две строки.

188 190 

189<h3 id="permission-actions">191<h3 id="permission-actions">


634| Ctrl+A | Префикс GNU screen |636| Ctrl+A | Префикс GNU screen |

635| Ctrl+Z | Приостановка процесса Unix (SIGTSTP) |637| Ctrl+Z | Приостановка процесса Unix (SIGTSTP) |

636 638 

639<h2 id="text-fields">

640 Текстовые поля

641</h2>

642 

643Если вы привяжете простую букву, цифру или пробел, вы все равно сможете вводить этот символ в текстовое поле внутри диалога или панели. Одно из таких полей — это ответ `Other` на вопрос, который задает Claude. Пока поле имеет фокус, печатаемая клавиша, которую вы нажимаете без Ctrl, Alt или Cmd, переходит в поле, и Claude Code не сопоставляет ее с вашими сочетаниями клавиш.

644 

645Эти клавиши все еще выполняют свои сочетания клавиш, пока поле имеет фокус:

646 

647* Клавиши, которые не вводят символ, такие как Enter, Escape, Tab и клавиши со стрелками

648* Любая клавиша, нажатая с Ctrl, Alt или Cmd

649* Второй нажим [chord](#chords), уже выполняемого

650 

651В основной подсказке Claude Code сопоставляет каждую клавишу с активными контекстами, такими как `Chat`, и вводит клавишу только когда никакое сочетание клавиш ее не перехватывает.

652 

637<h2 id="vim-mode-interaction">653<h2 id="vim-mode-interaction">

638 Взаимодействие с режимом vim654 Взаимодействие с режимом vim

639</h2>655</h2>

Details

202 Уменьшите чтения файлов с помощью code intelligence202 Уменьшите чтения файлов с помощью code intelligence

203</h3>203</h3>

204 204 

205В большой кодовой базе поиск того, где определён или используется символ, может стоить много чтений файлов и вызовов grep. [Code intelligence plugins](/docs/ru/discover-plugins#code-intelligence) подключают Claude к языковому серверу, чтобы он мог переходить к определениям, находить ссылки и выявлять ошибки типов напрямую вместо сканирования дерева.205В большой кодовой базе поиск того, где определён или используется символ, может стоить много чтений файлов и вызовов grep. [Code intelligence plugins](/docs/ru/plugins/code-intelligence) подключают Claude к языковому серверу, чтобы он мог переходить к определениям, находить ссылки и выявлять ошибки типов напрямую вместо сканирования дерева.

206 206 

207Официальный маркетплейс имеет плагины для TypeScript, Python, Go, Rust и других распространённых языков. Запустите команду ниже внутри сеанса Claude Code, чтобы установить плагин TypeScript:207Официальный маркетплейс имеет плагины для TypeScript, Python, Go, Rust и других распространённых языков. Запустите команду ниже внутри сеанса Claude Code, чтобы установить плагин TypeScript:

208 208 


213Если установка не удаётся, сопоставьте сообщение, которое сообщает Claude Code:213Если установка не удаётся, сопоставьте сообщение, которое сообщает Claude Code:

214 214 

215* `Marketplace "claude-plugins-official" not found`: добавьте маркетплейс с помощью `/plugin marketplace add anthropics/claude-plugins-official`, затем повторите попытку установки.215* `Marketplace "claude-plugins-official" not found`: добавьте маркетплейс с помощью `/plugin marketplace add anthropics/claude-plugins-official`, затем повторите попытку установки.

216* Плагин [не найден в маркетплейсе](/docs/ru/discover-plugins#install-plugins): проверьте имя плагина.216* Плагин [не найден в маркетплейсе](/docs/ru/plugins/install#install-a-plugin): проверьте имя плагина.

217 217 

218Чтобы включить плагин для всех в репозитории, а не устанавливать его самостоятельно, добавьте его в параметр проекта [`enabledPlugins`](/docs/ru/settings-reference#plugin-settings).218Чтобы включить плагин для всех в репозитории, а не устанавливать его самостоятельно, добавьте его в параметр проекта [`enabledPlugins`](/docs/ru/settings-reference#plugin-settings).

219 219 

220Code intelligence plugins требуют двоичного файла языкового сервера языка на машине каждого разработчика. См. [какой двоичный файл требует каждый язык](/docs/ru/discover-plugins#code-intelligence). Установка из официального маркетплейса требует доступа в сеть к GitHub, где размещается маркетплейс. На ограниченной сети [добавьте маркетплейс с внутреннего хоста Git или локального пути](/docs/ru/discover-plugins#add-from-other-git-hosts) вместо этого.220Code intelligence plugins требуют двоичного файла языкового сервера языка на машине каждого разработчика. См. [какой двоичный файл требует каждый язык](/docs/ru/plugins/code-intelligence). Установка из официального маркетплейса требует доступа в сеть к GitHub, где размещается маркетплейс. На ограниченной сети [добавьте маркетплейс с внутреннего хоста Git или локального пути](/docs/ru/plugins/install#add-a-marketplace) вместо этого.

221 221 

222Это хорошо сочетается с `claudeMdExcludes` и `Read` deny правилами выше. Они держат неуместный контент вне контекста, а code intelligence держит Claude от чтения через то, что остаётся, чтобы найти определение.222Это хорошо сочетается с `claudeMdExcludes` и `Read` deny правилами выше. Они держат неуместный контент вне контекста, а code intelligence держит Claude от чтения через то, что остаётся, чтобы найти определение.

223 223 


395 395 

396Имена всегда загружаются, но [когда их много, некоторые skills теряют свои описания полностью](/docs/ru/skills#skill-descriptions-are-cut-short), что может удалить ключевые слова, которые Claude использует для определения применимости skill. Сохраняйте описания краткими и начинайте со слов, которые содержал бы запрос, например "writing or modifying tests in `packages/api/`".396Имена всегда загружаются, но [когда их много, некоторые skills теряют свои описания полностью](/docs/ru/skills#skill-descriptions-are-cut-short), что может удалить ключевые слова, которые Claude использует для определения применимости skill. Сохраняйте описания краткими и начинайте со слов, которые содержал бы запрос, например "writing or modifying tests in `packages/api/`".

397 397 

398Для skills, которые используют многие каталоги, такие как соглашения PR или контрольный список развёртывания, поместите их в `.claude/skills/` корня репозитория, чтобы они загружались из любого начального каталога. Когда общие skills нуждаются в собственной истории версий или должны работать в нескольких репозиториях, упакуйте их как [plugin](/docs/ru/plugins) вместо этого. Plugin skills используют пространство имён `plugin-name:skill-name`, поэтому они никогда не конфликтуют с per-directory skills. Команда платформы может версионировать и обновлять их в одном месте.398Для skills, которые используют многие каталоги, такие как соглашения PR или контрольный список развёртывания, поместите их в `.claude/skills/` корня репозитория, чтобы они загружались из любого начального каталога. Когда общие skills нуждаются в собственной истории версий или должны работать в нескольких репозиториях, упакуйте их как [plugin](/docs/ru/plugins/overview) вместо этого. Plugin skills используют пространство имён `plugin-name:skill-name`, поэтому они никогда не конфликтуют с per-directory skills. Команда платформы может версионировать и обновлять их в одном месте.

399 399 

400Чтобы найти, какие skills не используются, включите OpenTelemetry [logs exporter](/docs/ru/monitoring-usage) и установите `OTEL_LOG_TOOL_DETAILS=1`, чтобы имена skills записывались дословно вместо редактирования. Событие [`skill_activated`](/docs/ru/monitoring-usage#skill-activated-event) записывает каждый вызов в его атрибут `skill.name`, а `invocation_trigger` записывает, был ли вызов командой, Claude или вложенным skill, что говорит вам, что консолидировать или снять с учёта.400Чтобы найти, какие skills не используются, включите OpenTelemetry [logs exporter](/docs/ru/monitoring-usage) и установите `OTEL_LOG_TOOL_DETAILS=1`, чтобы имена skills записывались дословно вместо редактирования. Событие [`skill_activated`](/docs/ru/monitoring-usage#skill-activated-event) записывает каждый вызов в его атрибут `skill.name`, а `invocation_trigger` записывает, был ли вызов командой, Claude или вложенным skill, что говорит вам, что консолидировать или снять с учёта.

401 401 


408Переместите соглашения и справочный контент из всегда загружаемого CLAUDE.md в механизмы, которые загружаются по требованию:408Переместите соглашения и справочный контент из всегда загружаемого CLAUDE.md в механизмы, которые загружаются по требованию:

409 409 

410* [Skills](/docs/ru/skills): справочный материал, который Claude загружает только когда релевантно задаче410* [Skills](/docs/ru/skills): справочный материал, который Claude загружает только когда релевантно задаче

411* [Plugins](/docs/ru/plugins): версионированные пакеты skills, hooks и команд, которыми владеет команда платформы централизованно411* [Plugins](/docs/ru/plugins/overview): версионированные пакеты skills, hooks и команд, которыми владеет команда платформы централизованно

412* [MCP servers](/docs/ru/mcp): если ваша организация уже запускает поиск кода или RAG индекс над репозиторием, выставьте его как инструмент MCP, чтобы Claude запрашивал его вместо чтения файлов напрямую412* [MCP servers](/docs/ru/mcp): если ваша организация уже запускает поиск кода или RAG индекс над репозиторием, выставьте его как инструмент MCP, чтобы Claude запрашивал его вместо чтения файлов напрямую

413 413 

414См. [server-managed или endpoint-managed параметры](/docs/ru/server-managed-settings#choose-between-server-managed-and-endpoint-managed-settings) для того, как команды платформы могут применять это централизованно.414См. [server-managed или endpoint-managed параметры](/docs/ru/server-managed-settings#choose-between-server-managed-and-endpoint-managed-settings) для того, как команды платформы могут применять это централизованно.

managed-mcp.md +1 −1

Details

41| **Без ограничений** | Пользователи добавляют что угодно | Не развертывайте никакую управляемую конфигурацию MCP |41| **Без ограничений** | Пользователи добавляют что угодно | Не развертывайте никакую управляемую конфигурацию MCP |

42 42 

43<Note>43<Note>

44 Claude Code не имеет встроенного реестра MCP-серверов, который пользователи могут просматривать и устанавливать. Для шаблона утвержденного каталога поделитесь утвержденным списком и его командами `claude mcp add` в месте, где его найдут ваши пользователи, например во внутренней вики, или распространяйте серверы как плагины через [управляемый рынок плагинов](/docs/ru/plugin-marketplaces#managed-marketplace-restrictions), чтобы пользователи могли просматривать и устанавливать их из `/plugin`.44 Claude Code не имеет встроенного реестра MCP-серверов, который пользователи могут просматривать и устанавливать. Для шаблона утвержденного каталога поделитесь утвержденным списком и его командами `claude mcp add` в месте, где его найдут ваши пользователи, например во внутренней вики, или распространяйте серверы как плагины через [управляемый рынок плагинов](/docs/ru/plugins/org#restrict-what-users-can-install), чтобы пользователи могли просматривать и устанавливать их из `/plugin`.

45</Note>45</Note>

46 46 

47<h2 id="exclusive-control-with-managed-mcp-json">47<h2 id="exclusive-control-with-managed-mcp-json">

Details

95 * **В полной песочнице VM**: когда ваша управляемая конфигурация Claude Desktop устанавливает [`requireCoworkFullVmSandbox`](https://claude.com/docs/third-party/claude-desktop/configuration#requirecoworkfullvmsandbox), Claude Code работает внутри виртуальной машины, где политика MDM устройства и файл управляемых параметров отсутствуют.95 * **В полной песочнице VM**: когда ваша управляемая конфигурация Claude Desktop устанавливает [`requireCoworkFullVmSandbox`](https://claude.com/docs/third-party/claude-desktop/configuration#requirecoworkfullvmsandbox), Claude Code работает внутри виртуальной машины, где политика MDM устройства и файл управляемых параметров отсутствуют.

96 * **Удалённые сеансы Cowork**: они работают на управляемых Anthropic виртуальных машинах, где Claude Code не имеет политики устройства для чтения.96 * **Удалённые сеансы Cowork**: они работают на управляемых Anthropic виртуальных машинах, где Claude Code не имеет политики устройства для чтения.

97 97 

98 Где бы ни запускался сеанс, claude.ai применяет списки [`strictKnownMarketplaces`](/docs/ru/settings-reference#strictknownmarketplaces) и [`blockedMarketplaces`](/docs/ru/settings-reference#blockedmarketplaces) консоли администратора сам по себе, когда кто-либо добавляет marketplace из git репозитория на claude.ai или из **Customize** на вкладке Cowork. [Как работают ограничения](/docs/ru/plugin-marketplaces#how-restrictions-work) описывает эту проверку. Таблица [покрытия поверхностей](/docs/ru/model-config#surface-coverage) сравнивает Cowork с другими поверхностями.98 Где бы ни запускался сеанс, claude.ai применяет списки [`strictKnownMarketplaces`](/docs/ru/settings-reference#strictknownmarketplaces) и [`blockedMarketplaces`](/docs/ru/settings-reference#blockedmarketplaces) консоли администратора сам по себе, когда кто-либо добавляет marketplace из git репозитория на claude.ai или из **Customize** на вкладке Cowork. [Как работают ограничения](/docs/ru/plugins/org#restrict-what-users-can-install) описывает эту проверку. Таблица [покрытия поверхностей](/docs/ru/model-config#surface-coverage) сравнивает Cowork с другими поверхностями.

99* **Запущенные сеансы**: большинство изменений достигают запущенного сеанса по расписанию в [таблице механизма доставки](#choose-a-delivery-mechanism), без перезагрузки.99* **Запущенные сеансы**: большинство изменений достигают запущенного сеанса по расписанию в [таблице механизма доставки](#choose-a-delivery-mechanism), без перезагрузки.

100 * Изменения [`forceRemoteSettingsRefresh`](/docs/ru/settings-reference#forceremotesettingsrefresh), [`requiredMinimumVersion`](/docs/ru/settings-reference#requiredminimumversion) и [некоторых редактируемых пользователем ключей](/docs/ru/settings#when-edits-take-effect) вступают в силу при следующем запуске сеанса.100 * Изменения [`forceRemoteSettingsRefresh`](/docs/ru/settings-reference#forceremotesettingsrefresh), [`requiredMinimumVersion`](/docs/ru/settings-reference#requiredminimumversion) и [некоторых редактируемых пользователем ключей](/docs/ru/settings#when-edits-take-effect) вступают в силу при следующем запуске сеанса.

101 * Новая или изменённая запись [`policyHelper`](/docs/ru/settings-reference#policyhelper) вступает в силу при следующем запуске. Если server-managed settings затеняют помощника при этом запуске, помощник запускается как только fetch сообщает об удалении этих параметров.101 * Новая или изменённая запись [`policyHelper`](/docs/ru/settings-reference#policyhelper) вступает в силу при следующем запуске. Если server-managed settings затеняют помощника при этом запуске, помощник запускается как только fetch сообщает об удалении этих параметров.


256 256 

257 На Claude Code v2.1.273 или позже, пока `allowManagedMcpServersOnly` включена, список `allowedMcpServers` из источника администратора с наивысшим рейтингом, который его устанавливает, применяется и блокирует родителя, как [кросс-источниковый ключ](#keys-read-from-every-admin-source). Список родителя применяется только когда ни один источник администратора не устанавливает один. Запись [`managedSourcesBehavior`](/docs/ru/settings-reference#managedsourcesbehavior) говорит, какой источник предоставляет каждый ключ при `"merge"`. До v2.1.223 значение в любом источнике администратора блокировало родителя257 На Claude Code v2.1.273 или позже, пока `allowManagedMcpServersOnly` включена, список `allowedMcpServers` из источника администратора с наивысшим рейтингом, который его устанавливает, применяется и блокирует родителя, как [кросс-источниковый ключ](#keys-read-from-every-admin-source). Список родителя применяется только когда ни один источник администратора не устанавливает один. Запись [`managedSourcesBehavior`](/docs/ru/settings-reference#managedsourcesbehavior) говорит, какой источник предоставляет каждый ключ при `"merge"`. До v2.1.223 значение в любом источнике администратора блокировало родителя

258* Для `availableModels` Claude Code применяет значение в управляемых параметрах, которые он применяет, и блокирует предоставленный родителем список258* Для `availableModels` Claude Code применяет значение в управляемых параметрах, которые он применяет, и блокирует предоставленный родителем список

259* Для `strictKnownMarketplaces` Claude Code аналогично применяет список в управляемых параметрах, которые он применяет, и блокирует предоставленный родителем. Список родителя применяется только когда ни один применённый управляемый источник не устанавливает один. Требует Claude Code v2.1.282 или позже

260* Предоставленный родителем `blockedMarketplaces` применяется в дополнение к любому списку блокировок, который устанавливает управляемый источник. Требует Claude Code v2.1.282 или позже

259 261 

260<h4 id="keep-cowork-folder-access-when-only-managed-rules-apply">262<h4 id="keep-cowork-folder-access-when-only-managed-rules-apply">

261 Сохраните доступ к папке Cowork, когда применяются только управляемые правила263 Сохраните доступ к папке Cowork, когда применяются только управляемые правила


361Несколько ключей применения не отбрасываются, когда они неправильны. Claude Code применяет более строгое резервное значение, пока значение не будет исправлено; таблица показывает, что оно применяет для каждого ключа:363Несколько ключей применения не отбрасываются, когда они неправильны. Claude Code применяет более строгое резервное значение, пока значение не будет исправлено; таблица показывает, что оно применяет для каждого ключа:

362 364 

363| Поле | Поведение, когда присутствует, но неправильно |365| Поле | Поведение, когда присутствует, но неправильно |

364| :---------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |366| :---------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

365| `allowedMcpServers` | Применяется как пустой список разрешений, пока значение не будет исправлено, поэтому никакие MCP серверы, которые добавляют пользователи, не допускаются. Серверы, которые ваша организация доставляет через [`managedMcpServers`](/docs/ru/settings-reference#managedmcpservers), все еще загружаются, и серверы `managed-mcp.json` загружаются в соответствии с [Как сервер оценивается](/docs/ru/managed-mcp#how-a-server-is-evaluated). Отдельная неправильная запись удаляется и применяется действительное подмножество. |367| `allowedMcpServers` | Применяется как пустой список разрешений, пока значение не будет исправлено, поэтому никакие MCP серверы, которые добавляют пользователи, не допускаются. Серверы, которые ваша организация доставляет через [`managedMcpServers`](/docs/ru/settings-reference#managedmcpservers), все еще загружаются, и серверы `managed-mcp.json` загружаются в соответствии с [Как сервер оценивается](/docs/ru/managed-mcp#how-a-server-is-evaluated). Отдельная неправильная запись удаляется и применяется действительное подмножество. |

366| `allowedHttpHookUrls` | Claude Code применяет пустой [список разрешений](/docs/ru/settings-reference#allowedhttphookurls), пока вы не исправите значение, поэтому HTTP hook запускается только если другой файл параметров перечисляет его URL. Если только отдельная запись неправильна, Claude Code удаляет эту запись и применяет остальное. |368| `allowedHttpHookUrls` | Claude Code применяет пустой [список разрешений](/docs/ru/settings-reference#allowedhttphookurls), пока вы не исправите значение, поэтому HTTP hook запускается только если другой файл параметров перечисляет его URL. Если только отдельная запись неправильна, Claude Code удаляет эту запись и применяет остальное. |

367| `httpHookAllowedEnvVars` | Claude Code применяет пустой [список разрешений](/docs/ru/settings-reference#httphookallowedenvvars), пока вы не исправите значение, поэтому переменная заголовка интерполируется только если другой файл параметров называет ее. Если только отдельная запись неправильна, Claude Code удаляет эту запись и применяет остальное. |369| `httpHookAllowedEnvVars` | Claude Code применяет пустой [список разрешений](/docs/ru/settings-reference#httphookallowedenvvars), пока вы не исправите значение, поэтому переменная заголовка интерполируется только если другой файл параметров называет ее. Если только отдельная запись неправильна, Claude Code удаляет эту запись и применяет остальное. |

368| `allowedChannelPlugins` | Claude Code применяет пустой список разрешений, пока вы не исправите значение, поэтому никакой плагин канала, переданный в `--channels`, не допускается. Если только отдельная запись неправильна, она удаляет эту запись и применяет остальное. |370| `allowedChannelPlugins` | Claude Code применяет пустой список разрешений, пока вы не исправите значение, поэтому никакой плагин канала, переданный в `--channels`, не допускается. Если только отдельная запись неправильна, она удаляет эту запись и применяет остальное. |

369| `strictKnownMarketplaces` | Применяется как пустой список разрешений, пока значение не будет исправлено, поэтому никакой [источник marketplace](/docs/ru/plugin-marketplaces#managed-marketplace-restrictions) не допускается. Отдельная запись, которая неправильна или не может быть применена, такая как регулярное выражение `hostPattern`, которое не компилируется, удаляется и применяется действительное подмножество. |371| `strictKnownMarketplaces` | Применяется как пустой список разрешений, пока значение не будет исправлено, поэтому никакой [источник marketplace](/docs/ru/plugins/org#restrict-what-users-can-install) не допускается. Отдельная запись, которая неправильна или не может быть применена, такая как регулярное выражение `hostPattern`, которое не компилируется, удаляется и применяется действительное подмножество. |

370| `allowManagedHooksOnly` | Обрабатывается как `true`, пока не будет исправлено: [ограничения hook](/docs/ru/settings-reference#allowmanagedhooksonly) применяются и, если `disableCommandPluginSources` явно не `false`, плагины, полученные из команд, отключены. |372| `allowManagedHooksOnly` | Обрабатывается как `true`, пока не будет исправлено: [ограничения hook](/docs/ru/settings-reference#allowmanagedhooksonly) применяются и, если `disableCommandPluginSources` явно не `false`, плагины, полученные из команд, отключены. |

371| `allowManagedMcpServersOnly` | Обрабатывается как `true`. |373| `allowManagedMcpServersOnly` | Обрабатывается как `true`. |

372| `disableCommandPluginSources` | Обрабатывается как `true`, поэтому плагины, полученные из команд, остаются отключены, пока значение не будет исправлено. |374| `disableCommandPluginSources` | Обрабатывается как `true`, поэтому плагины, полученные из команд, остаются отключены, пока значение не будет исправлено. |


378| `gatewayInternalNetworks` | Когда неправильное значение поступает из наивысшего управляемого источника на машине, `/login` отказывает каждому новому входу [облачного шлюза](/docs/ru/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) на этой машине, пока значение не будет исправлено. |380| `gatewayInternalNetworks` | Когда неправильное значение поступает из наивысшего управляемого источника на машине, `/login` отказывает каждому новому входу [облачного шлюза](/docs/ru/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) на этой машине, пока значение не будет исправлено. |

379| `crossSessionInbound` | Обрабатывается как `refuse`, самое строгое значение, поэтому входящие [кросс-сеансовые сообщения](/docs/ru/cross-session-messaging#control-inbound-messages) отказываются, пока значение не будет исправлено. Разработчик видит [предупреждение](/docs/ru/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse). |381| `crossSessionInbound` | Обрабатывается как `refuse`, самое строгое значение, поэтому входящие [кросс-сеансовые сообщения](/docs/ru/cross-session-messaging#control-inbound-messages) отказываются, пока значение не будет исправлено. Разработчик видит [предупреждение](/docs/ru/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse). |

380| `deniedMcpServers` | Отдельная неправильная запись удаляется и применяется действительное подмножество. Полностью неправильное значение отбрасывается с предупреждением, так как отрицание каждого сервера заблокировало бы серверы, которые политика никогда не называла. |382| `deniedMcpServers` | Отдельная неправильная запись удаляется и применяется действительное подмножество. Полностью неправильное значение отбрасывается с предупреждением, так как отрицание каждого сервера заблокировало бы серверы, которые политика никогда не называла. |

381| `blockedMarketplaces` | Отдельная неправильная запись удаляется и применяется действительное подмножество. Запись, которая анализируется, но никогда не может совпадать, такая как регулярное выражение `hostPattern`, которое не компилируется, сохраняется с предупреждением. Она ничего не блокирует, пока не будет исправлена, но [ограничения marketplace](/docs/ru/plugin-marketplaces#managed-marketplace-restrictions) остаются активными. Полностью неправильное значение отбрасывается с предупреждением, так как блокирование каждого marketplace заблокировало бы источники, которые политика никогда не называла. |383| `blockedMarketplaces` | Отдельная неправильная запись удаляется и применяется действительное подмножество. Запись, которая анализируется, но никогда не может совпадать, такая как регулярное выражение `hostPattern`, которое не компилируется, сохраняется с предупреждением. Она ничего не блокирует, пока не будет исправлена, но [ограничения marketplace](/docs/ru/plugins/org#restrict-what-users-can-install) остаются активными. Полностью неправильное значение отбрасывается с предупреждением, так как блокирование каждого marketplace заблокировало бы источники, которые политика никогда не называла. |

382| `sandbox.credentials` | Восстанавливаемая неправильная запись деградирует до `mode: "deny"` с предупреждением; невосстанавливаемая удаляется; действительные записи остаются применяемыми. См. [неправильные записи учетных данных](/docs/ru/settings-reference#invalid-credential-entries-in-managed-settings) |384| `sandbox.credentials` | Восстанавливаемая неправильная запись деградирует до `mode: "deny"` с предупреждением; невосстанавливаемая удаляется; действительные записи остаются применяемыми. См. [неправильные записи учетных данных](/docs/ru/settings-reference#invalid-credential-entries-in-managed-settings) |

383 385 

384`allowedHttpHookUrls` и `httpHookAllowedEnvVars` объединяются в файлах параметров, поэтому записи в ваших пользовательских, проектных или локальных параметрах все еще применяются, пока управляемый список пуст.386`allowedHttpHookUrls` и `httpHookAllowedEnvVars` объединяются в файлах параметров, поэтому записи в ваших пользовательских, проектных или локальных параметрах все еще применяются, пока управляемый список пуст.


402Таблица охватывает элементы управления разрешением, плагином и доставкой. Для любого ключа, не указанного здесь, столбец Scope [справочника параметров](/docs/ru/settings-reference#all-settings) говорит, является ли он только управляемым; оставшиеся ключи только управляемые там включают URL входа шлюза, версию, браузер, мобильный симулятор, хост SSH, локальный сеанс Desktop, путь двоичного файла песочницы, ценообразование модели и элементы управления CLAUDE.md.404Таблица охватывает элементы управления разрешением, плагином и доставкой. Для любого ключа, не указанного здесь, столбец Scope [справочника параметров](/docs/ru/settings-reference#all-settings) говорит, является ли он только управляемым; оставшиеся ключи только управляемые там включают URL входа шлюза, версию, браузер, мобильный симулятор, хост SSH, локальный сеанс Desktop, путь двоичного файла песочницы, ценообразование модели и элементы управления CLAUDE.md.

403 405 

404| Параметр | Описание |406| Параметр | Описание |

405| :-------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |407| :-------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

406| [`allowAllClaudeAiMcps`](/docs/ru/settings-reference#allowallclaudeaimcps) | Загружайте соединители claude.ai, которые Claude Code получает сам, вместе с развернутым `managed-mcp.json`, вместо их подавления |408| [`allowAllClaudeAiMcps`](/docs/ru/settings-reference#allowallclaudeaimcps) | Загружайте соединители claude.ai, которые Claude Code получает сам, вместе с развернутым `managed-mcp.json`, вместо их подавления |

407| [`allowedChannelPlugins`](/docs/ru/settings-reference#allowedchannelplugins) | Список разрешений плагинов канала, которые могут отправлять сообщения. Заменяет список разрешений Anthropic по умолчанию, когда установлен. Требует `channelsEnabled: true`. См. [Ограничьте, какие плагины канала могут работать](/docs/ru/channels#restrict-which-channel-plugins-can-run) |409| [`allowedChannelPlugins`](/docs/ru/settings-reference#allowedchannelplugins) | Список разрешений плагинов канала, которые могут отправлять сообщения. Заменяет список разрешений Anthropic по умолчанию, когда установлен. Требует `channelsEnabled: true`. См. [Ограничьте, какие плагины канала могут работать](/docs/ru/channels#restrict-which-channel-plugins-can-run) |

408| [`allowManagedHooksOnly`](/docs/ru/settings-reference#allowmanagedhooksonly) | Когда `true`, ограничивает, какие hooks работают; см. [что работает под `allowManagedHooksOnly`](/docs/ru/settings-reference#what-runs-under-allowmanagedhooksonly) для полного списка эффектов |410| [`allowManagedHooksOnly`](/docs/ru/settings-reference#allowmanagedhooksonly) | Когда `true`, ограничивает, какие hooks работают; см. [что работает под `allowManagedHooksOnly`](/docs/ru/settings-reference#what-runs-under-allowmanagedhooksonly) для полного списка эффектов |

409| [`allowManagedMcpServersOnly`](/docs/ru/settings-reference#allowmanagedmcpserversonly) | Когда `true`, уважаются только `allowedMcpServers` из управляемых параметров. `deniedMcpServers` все еще объединяется из всех источников. См. [Ключи, читаемые из каждого источника администратора](#keys-read-from-every-admin-source) для того, какие управляемые источники могут его установить, и [Управляемая конфигурация MCP](/docs/ru/managed-mcp) |411| [`allowManagedMcpServersOnly`](/docs/ru/settings-reference#allowmanagedmcpserversonly) | Когда `true`, уважаются только `allowedMcpServers` из управляемых параметров. `deniedMcpServers` все еще объединяется из всех источников. См. [Ключи, читаемые из каждого источника администратора](#keys-read-from-every-admin-source) для того, какие управляемые источники могут его установить, и [Управляемая конфигурация MCP](/docs/ru/managed-mcp) |

410| [`allowManagedPermissionRulesOnly`](/docs/ru/settings-reference#allowmanagedpermissionrulesonly) | Делает управляемые параметры единственным источником параметров правил разрешения. Запись перечисляет каждый источник, который она игнорирует |412| [`allowManagedPermissionRulesOnly`](/docs/ru/settings-reference#allowmanagedpermissionrulesonly) | Делает управляемые параметры единственным источником параметров правил разрешения. Запись перечисляет каждый источник, который она игнорирует |

411| [`blockedMarketplaces`](/docs/ru/settings-reference#blockedmarketplaces) | Список блокировки источников маркетплейса. Заблокированные источники проверяются перед загрузкой, поэтому они никогда не касаются файловой системы. См. [управляемые ограничения маркетплейса](/docs/ru/plugin-marketplaces#managed-marketplace-restrictions) |413| [`blockedMarketplaces`](/docs/ru/settings-reference#blockedmarketplaces) | Список блокировки источников маркетплейса. Заблокированные источники проверяются перед загрузкой, поэтому они никогда не касаются файловой системы. См. [управляемые ограничения маркетплейса](/docs/ru/plugins/org#restrict-what-users-can-install) |

412| [`channelsEnabled`](/docs/ru/settings-reference#channelsenabled) | Разрешить [каналы](/docs/ru/channels) для организации. См. [элементы управления предприятием](/docs/ru/channels#enterprise-controls) для значения по умолчанию на каждом плане |414| [`channelsEnabled`](/docs/ru/settings-reference#channelsenabled) | Разрешить [каналы](/docs/ru/channels) для организации. См. [элементы управления предприятием](/docs/ru/channels#enterprise-controls) для значения по умолчанию на каждом плане |

413| [`disableCommandPluginSources`](/docs/ru/settings-reference#disablecommandpluginsources) | Когда `true`, полностью блокирует [`command` источники плагинов](/docs/ru/plugin-marketplaces#command-sources), поэтому объявленная маркетплейсом команда никогда не работает. Также блокирует команды [`headersHelper`](/docs/ru/plugin-marketplaces#authenticate-archive-downloads) маркетплейса, кроме маркетплейса, который сами управляемые параметры объявляют. Когда не установлено, следует `allowManagedHooksOnly`. Требует Claude Code v2.1.229 или позже, и блок `headersHelper` требует v2.1.238 или позже |415| [`disableCommandPluginSources`](/docs/ru/settings-reference#disablecommandpluginsources) | Когда `true`, полностью блокирует [`command` источники плагинов](/docs/ru/plugins/marketplace-reference#command-plugin-source), поэтому объявленная маркетплейсом команда никогда не работает. Также блокирует команды [`headersHelper`](/docs/ru/plugins/host-marketplace#authenticate-archive-downloads) маркетплейса, кроме маркетплейса, который сами управляемые параметры объявляют. Когда не установлено, следует `allowManagedHooksOnly`. Требует Claude Code v2.1.229 или позже, и блок `headersHelper` требует v2.1.238 или позже |

414| [`disableSideloadFlags`](/docs/ru/settings-reference#disablesideloadflags) | Отклоните флаги `--plugin-dir`, `--plugin-url`, `--agents` и `--mcp-config` при запуске. В облачных сеансах Claude Code отбрасывает MCP серверы, которые сервер доставил через `--mcp-config`, кроме записей `type: "sdk"` в процессе, и запускает сеанс. Требует Claude Code v2.1.193 или позже |416| [`disableSideloadFlags`](/docs/ru/settings-reference#disablesideloadflags) | Отклоните флаги `--plugin-dir`, `--plugin-url`, `--agents` и `--mcp-config` при запуске. В облачных сеансах Claude Code отбрасывает MCP серверы, которые сервер доставил через `--mcp-config`, кроме записей `type: "sdk"` в процессе, и запускает сеанс. Требует Claude Code v2.1.193 или позже |

415| [`forceRemoteSettingsRefresh`](/docs/ru/settings-reference#forceremotesettingsrefresh) | Когда `true`, блокирует запуск CLI, пока управляемые параметры удаленного сервера не будут свежо получены, и выходит, если выборка не удается. См. [применение fail-closed](/docs/ru/server-managed-settings#enforce-fail-closed-startup) |417| [`forceRemoteSettingsRefresh`](/docs/ru/settings-reference#forceremotesettingsrefresh) | Когда `true`, блокирует запуск CLI, пока управляемые параметры удаленного сервера не будут свежо получены, и выходит, если выборка не удается. См. [применение fail-closed](/docs/ru/server-managed-settings#enforce-fail-closed-startup) |

416| [`managedMcpServers`](/docs/ru/settings-reference#managedmcpservers) | Удаленные MCP серверы, предоставленные каждому пользователю вместе с их собственными. Он предоставляет серверы, а не блокирует что-либо. См. [Предоставьте серверы через управляемые параметры](/docs/ru/managed-mcp#provide-servers-through-managed-settings). Требует Claude Code v2.1.259 или позже |418| [`managedMcpServers`](/docs/ru/settings-reference#managedmcpservers) | Удаленные MCP серверы, предоставленные каждому пользователю вместе с их собственными. Он предоставляет серверы, а не блокирует что-либо. См. [Предоставьте серверы через управляемые параметры](/docs/ru/managed-mcp#provide-servers-through-managed-settings). Требует Claude Code v2.1.259 или позже |


421| [`policyHelper`](/docs/ru/settings-reference#policyhelper) | Исполняемый файл, который вычисляет управляемые параметры при запуске; см. [Вычислите управляемые параметры с помощью помощника политики](/docs/ru/settings-reference#policyhelper) |423| [`policyHelper`](/docs/ru/settings-reference#policyhelper) | Исполняемый файл, который вычисляет управляемые параметры при запуске; см. [Вычислите управляемые параметры с помощью помощника политики](/docs/ru/settings-reference#policyhelper) |

422| [`sandbox.filesystem.allowManagedReadPathsOnly`](/docs/ru/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) | Когда `true`, уважаются только пути `filesystem.allowRead` из управляемых параметров. `denyRead` все еще объединяется из всех источников |424| [`sandbox.filesystem.allowManagedReadPathsOnly`](/docs/ru/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) | Когда `true`, уважаются только пути `filesystem.allowRead` из управляемых параметров. `denyRead` все еще объединяется из всех источников |

423| [`sandbox.network.allowManagedDomainsOnly`](/docs/ru/settings-reference#sandbox-network-allowmanageddomainsonly) | Чтите только управляемые `allowedDomains` и правила разрешения `WebFetch(domain:...)`; блокируйте другие домены без подсказки |425| [`sandbox.network.allowManagedDomainsOnly`](/docs/ru/settings-reference#sandbox-network-allowmanageddomainsonly) | Чтите только управляемые `allowedDomains` и правила разрешения `WebFetch(domain:...)`; блокируйте другие домены без подсказки |

424| [`strictKnownMarketplaces`](/docs/ru/settings-reference#strictknownmarketplaces) | Контролирует, какие источники маркетплейса плагинов пользователи могут добавлять и устанавливать плагины из. См. [управляемые ограничения маркетплейса](/docs/ru/plugin-marketplaces#managed-marketplace-restrictions) |426| [`strictKnownMarketplaces`](/docs/ru/settings-reference#strictknownmarketplaces) | Контролирует, какие источники маркетплейса плагинов пользователи могут добавлять и устанавливать плагины из. См. [управляемые ограничения маркетплейса](/docs/ru/plugins/org#restrict-what-users-can-install) |

425| [`strictPluginOnlyCustomization`](/docs/ru/settings-reference#strictpluginonlycustomization) | Блокируйте skills, agents, hooks и MCP серверы из источников пользователя и проекта; `true` блокирует все четыре, массив называет, какие |427| [`strictPluginOnlyCustomization`](/docs/ru/settings-reference#strictpluginonlycustomization) | Блокируйте skills, agents, hooks и MCP серверы из источников пользователя и проекта; `true` блокирует все четыре, массив называет, какие |

426| [`wslInheritsWindowsSettings`](/docs/ru/settings-reference#wslinheritswindowssettings) | Когда установлено в реестре HKLM или файле под `C:\Program Files\ClaudeCode`, имейте WSL читать цепь политики Windows и читайте `/etc/claude-code` только когда никакой файл управляемых параметров или drop-in под этим каталогом не доставляет [ключ политики](#how-claude-code-combines-managed-sources); запись дает порядок |428| [`wslInheritsWindowsSettings`](/docs/ru/settings-reference#wslinheritswindowssettings) | Когда установлено в реестре HKLM или файле под `C:\Program Files\ClaudeCode`, имейте WSL читать цепь политики Windows и читайте `/etc/claude-code` только когда никакой файл управляемых параметров или drop-in под этим каталогом не доставляет [ключ политики](#how-claude-code-combines-managed-sources); запись дает порядок |

427 429 

mcp.md +16 −16

Details

50 Если установка не удается, сопоставьте сообщение, которое сообщает Claude Code:50 Если установка не удается, сопоставьте сообщение, которое сообщает Claude Code:

51 51 

52 * `Marketplace "claude-plugins-official" not found`: добавьте marketplace с помощью `/plugin marketplace add anthropics/claude-plugins-official`, затем повторите попытку установки.52 * `Marketplace "claude-plugins-official" not found`: добавьте marketplace с помощью `/plugin marketplace add anthropics/claude-plugins-official`, затем повторите попытку установки.

53 * The plugin is [not found in the marketplace](/docs/ru/discover-plugins#install-plugins): проверьте имя плагина.53 * The plugin is [not found in the marketplace](/docs/ru/plugins/install#install-a-plugin): проверьте имя плагина.

54 54 

55 Если в сводке установки указано `Run /reload-plugins to activate.`, Claude Code затем запустит эту перезагрузку для вас. Если перезагрузка предупреждает, что ваше следующее сообщение повторно прочитает разговор, выполните `/reload-plugins --force`.55 Если в сводке установки указано `Run /reload-plugins to activate.`, Claude Code затем запустит эту перезагрузку для вас. Если перезагрузка предупреждает, что ваше следующее сообщение повторно прочитает разговор, выполните `/reload-plugins --force`.

56 </Step>56 </Step>


293 Деталь статуса server293 Деталь статуса server

294</h4>294</h4>

295 295 

296В `/mcp`, включая меню server там, и в [менеджере `/plugin`](/docs/ru/plugins), удаленный HTTP или SSE server, который вы использовали раньше, может показать статус `cached`, такой как `cached 2h ago · connects on first use · 5 tools`. Claude Code загрузил список инструментов server из своего кэша обнаружения, сохраненного в предыдущем сеансе, вместо подключения при запуске, и Claude Code подключает server в первый раз, когда Claude вызывает один из инструментов server. Инструменты доступны с вашего первого сообщения, поэтому вам не нужно ничего делать. Кэш обнаружения и его статус `cached` требуют Claude Code версии 2.1.221 или позже.296В `/mcp`, включая меню server там, и в [менеджере `/plugin`](/docs/ru/plugins/install), удаленный HTTP или SSE server, который вы использовали раньше, может показать статус `cached`, такой как `cached 2h ago · connects on first use · 5 tools`. Claude Code загрузил список инструментов server из своего кэша обнаружения, сохраненного в предыдущем сеансе, вместо подключения при запуске, и Claude Code подключает server в первый раз, когда Claude вызывает один из инструментов server. Инструменты доступны с вашего первого сообщения, поэтому вам не нужно ничего делать. Кэш обнаружения и его статус `cached` требуют Claude Code версии 2.1.221 или позже.

297 297 

298Кэш обнаружения отключен по умолчанию, если постепенный rollout не включил его для вашей учетной записи. Установите [`MCP_DISCOVERY_CACHE=1`](/docs/ru/env-vars) для его включения или `0` для его отключения, даже если rollout включил его. До версии 2.1.238 кэш был включен по умолчанию.298Кэш обнаружения отключен по умолчанию, если постепенный rollout не включил его для вашей учетной записи. Установите [`MCP_DISCOVERY_CACHE=1`](/docs/ru/env-vars) для его включения или `0` для его отключения, даже если rollout включил его. До версии 2.1.238 кэш был включен по умолчанию.

299 299 


312* Для server в локальной, проектной или пользовательской [области](#mcp-installation-scopes) или в управляемой конфигурации MCP источник показывает хост, как написано в этой конфигурации, поэтому ссылка `${VAR}` в хосте не развернута в сообщении.312* Для server в локальной, проектной или пользовательской [области](#mcp-installation-scopes) или в управляемой конфигурации MCP источник показывает хост, как написано в этой конфигурации, поэтому ссылка `${VAR}` в хосте не развернута в сообщении.

313* Для отказа без статуса или кода ошибки Claude Code показывает текст ошибки без источника.313* Для отказа без статуса или кода ошибки Claude Code показывает текст ошибки без источника.

314 314 

315Удаленный server, конфигурация которого имеет пустой `url`, отображается как `not configured` в `/mcp`, в `claude mcp list` и в [менеджере `/plugin`](/docs/ru/plugins), и Claude Code не пытается подключиться к нему. Плагин может включать запись-заполнитель, подобную этой, для коннектора, который вы настроите позже, поэтому Claude Code не сообщает об этом как об ошибке или проблеме настройки. Представление деталей server в `/mcp` читает `No URL configured for this server`; установите `url` записи для подключения. До версии 2.1.208 Claude Code сообщал об пустом `url` как о проблеме конфигурации с подсказкой переподключиться.315Удаленный server, конфигурация которого имеет пустой `url`, отображается как `not configured` в `/mcp`, в `claude mcp list` и в [менеджере `/plugin`](/docs/ru/plugins/install), и Claude Code не пытается подключиться к нему. Плагин может включать запись-заполнитель, подобную этой, для коннектора, который вы настроите позже, поэтому Claude Code не сообщает об этом как об ошибке или проблеме настройки. Представление деталей server в `/mcp` читает `No URL configured for this server`; установите `url` записи для подключения. До версии 2.1.208 Claude Code сообщал об пустом `url` как о проблеме конфигурации с подсказкой переподключиться.

316 316 

317<h4 id="configuration-warnings">317<h4 id="configuration-warnings">

318 Предупреждения конфигурации318 Предупреждения конфигурации


466 466 

467Timeout для каждого server не менее 1000 также действует как нижний предел для timeout неактивности, описанного ниже: Claude Code никогда не прерывает вызовы инструментов этого server из-за неактивности раньше, чем timeout для каждого server. Требуется Claude Code версии 2.1.203 или позже.467Timeout для каждого server не менее 1000 также действует как нижний предел для timeout неактивности, описанного ниже: Claude Code никогда не прерывает вызовы инструментов этого server из-за неактивности раньше, чем timeout для каждого server. Требуется Claude Code версии 2.1.203 или позже.

468 468 

469Вызов инструмента к MCP server, который не отправляет ответ и не отправляет уведомление о прогрессе в течение окна неактивности, прерывается с ошибкой вместо ожидания лимита реального времени. Timeout неактивности требует Claude Code версии 2.1.187 или позже. Он применяется к каждому типу server, кроме IDE servers и SDK in-process servers. Окно неактивности по умолчанию составляет пять минут для HTTP, SSE, WebSocket и [claude.ai connector](#use-mcp-servers-from-claude-ai) servers, и 30 минут для stdio servers. До версии 2.1.203 stdio servers были освобождены от timeout неактивности.469Вызов инструмента к MCP server, который не отправляет ответ и не отправляет уведомление о прогрессе в течение окна неактивности, прерывается с ошибкой вместо ожидания лимита реального времени. Он применяется к каждому типу server, кроме IDE servers и SDK in-process servers. Окно неактивности по умолчанию составляет пять минут для HTTP, SSE, WebSocket и [claude.ai connector](#use-mcp-servers-from-claude-ai) servers, и 30 минут для stdio servers. До версии 2.1.203 stdio servers были освобождены от timeout неактивности.

470 470 

471Установите переменную окружения [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/ru/env-vars) в миллисекундах, чтобы изменить окно неактивности, или установите ее на `0`, чтобы отключить проверку.471Установите переменную окружения [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/ru/env-vars) в миллисекундах, чтобы изменить окно неактивности, или установите ее на `0`, чтобы отключить проверку.

472 472 


494 Plugin-provided MCP servers494 Plugin-provided MCP servers

495</h3>495</h3>

496 496 

497[Плагины](/docs/ru/plugins) могут включать MCP servers, которые предоставляют инструменты и интеграции при включении плагина. Plugin MCP servers работают идентично пользовательским настроенным servers.497[Плагины](/docs/ru/plugins/overview) могут включать MCP servers, которые предоставляют инструменты и интеграции при включении плагина. Plugin MCP servers работают идентично пользовательским настроенным servers.

498 498 

499**Как работают plugin MCP servers**:499**Как работают plugin MCP servers**:

500 500 


539 539 

540* **Автоматический жизненный цикл**: servers подключаются и отключаются в этих точках:540* **Автоматический жизненный цикл**: servers подключаются и отключаются в этих точках:

541 * При запуске сеанса Claude Code автоматически подключает servers для включенных плагинов. В `/mcp` удаленный (HTTP или SSE) plugin server, который вы использовали раньше, может показать статус [`cached`](#server-status-detail) вместо этого; Claude Code подключает его, когда Claude впервые вызывает один из его инструментов541 * При запуске сеанса Claude Code автоматически подключает servers для включенных плагинов. В `/mcp` удаленный (HTTP или SSE) plugin server, который вы использовали раньше, может показать статус [`cached`](#server-status-detail) вместо этого; Claude Code подключает его, когда Claude впервые вызывает один из его инструментов

542 * Если вы включаете или отключаете плагин во время сеанса, Claude Code подключает или отключает его MCP servers, когда изменение применяется. [Применить изменения плагина без перезагрузки](/docs/ru/discover-plugins#apply-plugin-changes-without-restarting) описывает, когда это происходит. В сеансе без интерактивного терминала `/reload-plugins` не подключает или отключает plugin MCP servers; эти изменения вступают в силу в вашем следующем сеансе542 * Если вы включаете или отключаете плагин во время сеанса, Claude Code подключает или отключает его MCP servers, когда изменение применяется. [Применить изменения плагина без перезагрузки](/docs/ru/plugins/cli-reference#reload-plugins) описывает, когда это происходит. В сеансе без интерактивного терминала `/reload-plugins` не подключает или отключает plugin MCP servers; эти изменения вступают в силу в вашем следующем сеансе

543 * Когда вы перезагружаете, Claude Code сохраняет живые подключения plugin servers, конфигурация которых не изменилась, и делает то же самое, когда вы [заменяете список MCP servers сеанса](/docs/ru/agent-sdk/typescript#mcpsetserversresult) из Agent SDK без их названия543 * Когда вы перезагружаете, Claude Code сохраняет живые подключения plugin servers, конфигурация которых не изменилась, и делает то же самое, когда вы [заменяете список MCP servers сеанса](/docs/ru/agent-sdk/typescript#mcpsetserversresult) из Agent SDK без их названия

544 * Когда вы [перемещаете сеанс с `/cd`](/docs/ru/permissions#move-the-session-to-another-directory) на версии 2.1.246 или позже, Claude Code подключает servers плагинов, которые включают параметры новой директории, и отключает servers плагинов, которые больше не включены, поэтому вам не нужно запускать `/reload-plugins` после перемещения544 * Когда вы [перемещаете сеанс с `/cd`](/docs/ru/permissions#move-the-session-to-another-directory) на версии 2.1.246 или позже, Claude Code подключает servers плагинов, которые включают параметры новой директории, и отключает servers плагинов, которые больше не включены, поэтому вам не нужно запускать `/reload-plugins` после перемещения

545 * В [cloud sessions](/docs/ru/claude-code-on-the-web) вызов MCP к plugin server, который еще не подключен, такой как сразу после пробуждения неактивного сеанса, запускает server по требованию и ждет его подключения545 * В [cloud sessions](/docs/ru/claude-code-on-the-web) вызов MCP к plugin server, который еще не подключен, такой как сразу после пробуждения неактивного сеанса, запускает server по требованию и ждет его подключения

546* **Заполнители пути**: `${CLAUDE_PLUGIN_ROOT}` разрешается в директорию установки плагина, `${CLAUDE_PLUGIN_DATA}` в его [директорию постоянного состояния](/docs/ru/plugins-reference#persistent-data-directory), и `${CLAUDE_PROJECT_DIR}` в стабильный корень проекта. Подстановка применяется к:546* **Заполнители пути**: `${CLAUDE_PLUGIN_ROOT}` разрешается в директорию установки плагина, `${CLAUDE_PLUGIN_DATA}` в его [директорию постоянного состояния](/docs/ru/plugins/components#path-variables-and-persistent-data), и `${CLAUDE_PROJECT_DIR}` в стабильный корень проекта. Подстановка применяется к:

547 * `stdio` servers: `command`, `args`, `env`547 * `stdio` servers: `command`, `args`, `env`

548 * `http`, `sse` и `ws` servers: `url`, `headers` и `headersHelper`. До версии 2.1.195 `headersHelper` передавал заполнитель как буквальную строку548 * `http`, `sse` и `ws` servers: `url`, `headers` и `headersHelper`. До версии 2.1.195 `headersHelper` передавал заполнитель как буквальную строку

549* **Доступ к переменным окружения пользователя**: доступ к тем же переменным окружения, что и вручную настроенные servers549* **Доступ к переменным окружения пользователя**: доступ к тем же переменным окружения, что и вручную настроенные servers


563 563 

564Server сам регистрируется под scoped именем `plugin:<plugin-name>:<server-name>`, такой как `plugin:my-plugin:database-tools`. Используйте это имя там, где ожидается имя настроенного server, такой как [поле `server` hook `mcp_tool`](/docs/ru/hooks#mcp-tool-hook-fields).564Server сам регистрируется под scoped именем `plugin:<plugin-name>:<server-name>`, такой как `plugin:my-plugin:database-tools`. Используйте это имя там, где ожидается имя настроенного server, такой как [поле `server` hook `mcp_tool`](/docs/ru/hooks#mcp-tool-hook-fields).

565 565 

566См. [справочник компонентов плагина](/docs/ru/plugins-reference#mcp-servers) для получения подробной информации о включении MCP servers в плагины.566См. [справочник компонентов плагина](/docs/ru/plugins/components#mcp-servers) для получения подробной информации о включении MCP servers в плагины.

567 567 

568<h2 id="mcp-installation-scopes">568<h2 id="mcp-installation-scopes">

569 Области установки MCP569 Области установки MCP


6661. Локальная область6661. Локальная область

6672. Область проекта6672. Область проекта

6683. Область пользователя6683. Область пользователя

6694. [Plugin-provided servers](/docs/ru/plugins)6694. [Plugin-provided servers](/docs/ru/plugins/components#mcp-servers)

6705. [claude.ai connectors](#use-mcp-servers-from-claude-ai)6705. [claude.ai connectors](#use-mcp-servers-from-claude-ai)

671 671 

672Три области совпадают дубликаты по имени. Плагины и соединители совпадают по конечной точке, поэтому тот, который указывает на тот же URL или команду, что и server выше, рассматривается как дубликат.672Три области совпадают дубликаты по имени. Плагины и соединители совпадают по конечной точке, поэтому тот, который указывает на тот же URL или команду, что и server выше, рассматривается как дубликат.


876 Аутентификация из командной строки876 Аутентификация из командной строки

877</h3>877</h3>

878 878 

879Начиная с v2.1.186, `claude mcp login <name>` запускает поток OAuth настроенного server прямо из вашей оболочки, поэтому вам не нужно открывать панель `/mcp` внутри сеанса.879Команда `claude mcp login <name>` запускает поток OAuth настроенного server прямо из вашей оболочки, поэтому вам не нужно открывать панель `/mcp` внутри сеанса.

880 880 

881```bash theme={null}881```bash theme={null}

882claude mcp login sentry882claude mcp login sentry


884 884 

885Чтобы позже очистить сохраненные учетные данные, запустите `claude mcp logout <name>`.885Чтобы позже очистить сохраненные учетные данные, запустите `claude mcp logout <name>`.

886 886 

887Начиная с v2.1.191, команда обнаруживает, когда локальный браузер недоступен, например во время сеанса SSH или на Linux без сервера отображения, и выводит URL авторизации вместо попытки открыть браузер. Откройте URL на вашей локальной машине, затем вставьте полный URL перенаправления из адресной строки браузера обратно в приглашение. Команде требуется интерактивный терминал для шага вставки, поэтому подключитесь с помощью `ssh -t`. Передайте `--no-browser` для принудительного приглашения URL даже при обнаружении локального браузера.887`claude mcp login` обнаруживает, когда локальный браузер недоступен, например во время сеанса SSH или на Linux без сервера отображения, и выводит URL авторизации вместо попытки открыть браузер. Откройте URL на вашей локальной машине, затем вставьте полный URL перенаправления из адресной строки браузера обратно в приглашение. Команде требуется интерактивный терминал для шага вставки, поэтому подключитесь с помощью `ssh -t`. Передайте `--no-browser` для принудительного приглашения URL даже при обнаружении локального браузера.

888 888 

889```bash theme={null}889```bash theme={null}

890claude mcp login sentry --no-browser890claude mcp login sentry --no-browser


1085Claude Code устанавливает эти переменные окружения при выполнении помощника:1085Claude Code устанавливает эти переменные окружения при выполнении помощника:

1086 1086 

1087| Переменная | Значение |1087| Переменная | Значение |

1088| :---------------------------- | :------------------------------------------------------------------------------------------------------------------ |1088| :---------------------------- | :------------------------------------------------------------------------------------------------------------------- |

1089| `CLAUDE_CODE_MCP_SERVER_NAME` | имя MCP server |1089| `CLAUDE_CODE_MCP_SERVER_NAME` | имя MCP server |

1090| `CLAUDE_CODE_MCP_SERVER_URL` | URL MCP server |1090| `CLAUDE_CODE_MCP_SERVER_URL` | URL MCP server |

1091| `CLAUDE_PLUGIN_ROOT` | корневой каталог плагина. Установлено только когда [плагин](/docs/ru/plugins-reference#mcp-servers) предоставляет server |1091| `CLAUDE_PLUGIN_ROOT` | корневой каталог плагина. Установлено только когда [плагин](/docs/ru/plugins/components#mcp-servers) предоставляет server |

1092 1092 

1093Используйте их для написания одного скрипта помощника, который служит нескольким MCP servers.1093Используйте их для написания одного скрипта помощника, который служит нескольким MCP servers.

1094 1094 

1095Помощник `headersHelper`, предоставленный плагином, не может ссылаться на значения [`${user_config.*}`](/docs/ru/plugins-reference#user-configuration) плагина, потому что команда запускается через оболочку. Claude Code сообщает о server как о неправильно настроенном с [ошибкой](/docs/ru/errors#plugin-command-references-user-config) и не подставляет значение. Поместите `${user_config.KEY}` в поле `headers` server вместо этого, которое не анализируется оболочкой, или попросите скрипт помощника прочитать значение из файла конфигурации. До v2.1.207 `headersHelper` подставлял значения `${user_config.*}`.1095Помощник `headersHelper`, предоставленный плагином, не может ссылаться на значения [`${user_config.*}`](/docs/ru/plugins/manifest-reference#user-configuration) плагина, потому что команда запускается через оболочку. Claude Code сообщает о server как о неправильно настроенном с [ошибкой](/docs/ru/errors#plugin-command-references-user-config) и не подставляет значение. Поместите `${user_config.KEY}` в поле `headers` server вместо этого, которое не анализируется оболочкой, или попросите скрипт помощника прочитать значение из файла конфигурации. До v2.1.207 `headersHelper` подставлял значения `${user_config.*}`.

1096 1096 

1097<h4 id="where-the-helper-runs">1097<h4 id="where-the-helper-runs">

1098 Где запускается помощник1098 Где запускается помощник


1102 1102 

1103| Где вы настроили server | Рабочий каталог |1103| Где вы настроили server | Рабочий каталог |

1104| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------- |1104| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------- |

1105| [Плагин](/docs/ru/plugins-reference#mcp-servers) | Корневой каталог плагина. Требует Claude Code v2.1.195 или позже |1105| [Плагин](/docs/ru/plugins/components#mcp-servers) | Корневой каталог плагина. Требует Claude Code v2.1.195 или позже |

1106| Проект `.mcp.json` или [server локальной области](#local-scope) | Каталог проекта, в котором объявлен server |1106| Проект `.mcp.json` или [server локальной области](#local-scope) | Каталог проекта, в котором объявлен server |

1107| Файл агента в вашем проекте, server из опции `mcpServers` SDK или метода `setMcpServers()`, или [`--mcp-config`](/docs/ru/cli-reference) | [Основной рабочий каталог](/docs/ru/permissions#working-directories) сеанса |1107| Файл агента в вашем проекте, server из опции `mcpServers` SDK или метода `setMcpServers()`, или [`--mcp-config`](/docs/ru/cli-reference) | [Основной рабочий каталог](/docs/ru/permissions#working-directories) сеанса |

1108| [Область пользователя](#user-scope), [управляемый MCP](/docs/ru/managed-mcp), [разъем claude.ai](#use-mcp-servers-from-claude-ai), или файл агента из вне вашего проекта, включая один из каталога `--add-dir` | Ваш каталог конфигурации, `~/.claude` если вы не установили [`CLAUDE_CONFIG_DIR`](/docs/ru/env-vars) |1108| [Область пользователя](#user-scope), [управляемый MCP](/docs/ru/managed-mcp), [разъем claude.ai](#use-mcp-servers-from-claude-ai), или файл агента из вне вашего проекта, включая один из каталога `--add-dir` | Ваш каталог конфигурации, `~/.claude` если вы не установили [`CLAUDE_CONFIG_DIR`](/docs/ru/env-vars) |


1235 </Step>1235 </Step>

1236</Steps>1236</Steps>

1237 1237 

1238Claude Code помечает connector как `managed` в `/mcp` и в менеджере [`/plugin`](/docs/ru/plugins), когда ваша организация управляет его аутентификацией в claude.ai. Статус managed не изменяет способ подключения Claude Code к connector или применение [инструментов управления](#organization-controls-on-connector-tools) вашей организации.1238Claude Code помечает connector как `managed` в `/mcp` и в менеджере [`/plugin`](/docs/ru/plugins/install) когда ваша организация управляет его аутентификацией в claude.ai. Статус managed не изменяет способ подключения Claude Code к connector или применение [инструментов управления](#organization-controls-on-connector-tools) вашей организации.

1239 1239 

1240Connectors, в которые вы никогда не входили, свёрнуты за строкой `Show unused connectors` в конце раздела claude.ai, поэтому список, предоставленный организацией, не заполняет панель. Выберите строку, чтобы развернуть их. Connector, в который вы входили ранее, остаётся видимым даже если в настоящий момент требуется повторная аутентификация.1240Connectors, в которые вы никогда не входили, свёрнуты за строкой `Show unused connectors` в конце раздела claude.ai, поэтому список, предоставленный организацией, не заполняет панель. Выберите строку, чтобы развернуть их. Connector, в который вы входили ранее, остаётся видимым даже если в настоящий момент требуется повторная аутентификация.

1241 1241 

Details

64}64}

65```65```

66 66 

67Claude Code игнорирует [переменные экспортера OpenTelemetry](/docs/ru/settings-reference#variables-claude-code-ignores-in-env) в файлах `.claude/settings.json` и `.claude/settings.local.json` репозитория, поэтому репозиторий не может использовать их для включения телеметрии, выбора места её отправки или захвата содержимого. Установите их в управляемых параметрах или попросите каждого разработчика установить их в своей оболочке или в `~/.claude/settings.json`. Репозиторий все ещё может отключить сигнал, установив его селектор экспортера, например `OTEL_LOGS_EXPORTER`, на `none`, если только управляемые параметры, файл `--settings` или окружение, из которого вы запускаете Claude Code, не устанавливают эту переменную.

68 

67Claude Code не передает переменные окружения `OTEL_*` подпроцессам, которые он порождает, включая инструмент Bash, hooks, MCP серверы и языковые серверы. Приложение, инструментированное OpenTelemetry, которое вы запускаете через инструмент Bash, не наследует endpoint экспортера Claude Code или заголовки, поэтому установите эти переменные непосредственно в команде, если это приложение должно экспортировать свою собственную телеметрию.69Claude Code не передает переменные окружения `OTEL_*` подпроцессам, которые он порождает, включая инструмент Bash, hooks, MCP серверы и языковые серверы. Приложение, инструментированное OpenTelemetry, которое вы запускаете через инструмент Bash, не наследует endpoint экспортера Claude Code или заголовки, поэтому установите эти переменные непосредственно в команде, если это приложение должно экспортировать свою собственную телеметрию.

68 70 

69<h3 id="how-managed-settings-lock-the-otlp-destination">71<h3 id="how-managed-settings-lock-the-otlp-destination">


101 Общие переменные конфигурации103 Общие переменные конфигурации

102</h3>104</h3>

103 105 

104Эти переменные настраивают экспортеры, endpoints и поведение экспорта для всех развертываний. Если вы установите переменную endpoint или протокола для конкретного сигнала, такую как `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`, Claude Code использует её вместо универсальной переменной для этого сигнала. Если вы установите переменную заголовков для конкретного сигнала, такую как `OTEL_EXPORTER_OTLP_METRICS_HEADERS`, Claude Code объединяет её с универсальной переменной `OTEL_EXPORTER_OTLP_HEADERS` для этого сигнала. На машинах с управляемыми параметрами см. [Как управляемые параметры блокируют назначение OTLP](#how-managed-settings-lock-the-otlp-destination) для информации о том, что Claude Code удаляет.106Эти переменные настраивают экспортеры, endpoints и поведение экспорта для всех развертываний.

107 

108Если вы установите переменную endpoint или протокола для конкретного сигнала, такую как `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`, Claude Code использует её вместо универсальной переменной для этого сигнала. Если вы установите переменную заголовков для конкретного сигнала, такую как `OTEL_EXPORTER_OTLP_METRICS_HEADERS`, Claude Code объединяет её с универсальной переменной `OTEL_EXPORTER_OTLP_HEADERS` для этого сигнала.

109 

110На машинах с управляемыми параметрами см. [Как управляемые параметры блокируют назначение OTLP](#how-managed-settings-lock-the-otlp-destination) для информации о том, что Claude Code удаляет.

105 111 

106| Переменная окружения | Описание | Примеры значений |112| Переменная окружения | Описание | Примеры значений |

107| --------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |113| --------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |


651* `query_source`: Категория подсистемы, которая выдала запрос. Один из `"main"`, `"subagent"` или `"auxiliary"`657* `query_source`: Категория подсистемы, которая выдала запрос. Один из `"main"`, `"subagent"` или `"auxiliary"`

652* `speed`: `"fast"`, когда запрос использовал быстрый режим. Отсутствует в противном случае658* `speed`: `"fast"`, когда запрос использовал быстрый режим. Отсутствует в противном случае

653* `effort`: [Уровень усилий](/docs/ru/model-config#adjust-effort-level), применённый к запросу: `"low"`, `"medium"`, `"high"`, `"xhigh"` или `"max"`. Отсутствует, когда Claude Code не отправляет уровень усилий, например на модели, которая не поддерживает усилия.659* `effort`: [Уровень усилий](/docs/ru/model-config#adjust-effort-level), применённый к запросу: `"low"`, `"medium"`, `"high"`, `"xhigh"` или `"max"`. Отсутствует, когда Claude Code не отправляет уровень усилий, например на модели, которая не поддерживает усилия.

654* `agent.name`: Тип подагента, который выдал запрос. Встроенные имена агентов и агенты из официальных плагинов маркетплейса отображаются как есть. Другие определённые пользователем имена агентов заменяются на `"custom"`. Отсутствует, когда запрос не был выдан именованным типом подагента.660* `agent.name`: Тип подагента, который выдал запрос. Встроенные имена агентов и агенты из официальных плагинов маркетплейса отображаются как есть. Другие определённые пользователем имена агентов заменяются на `"custom"`, если не установлено `OTEL_LOG_TOOL_DETAILS=1`. Отсутствует, когда запрос не был выдан именованным типом подагента.

655* `skill.name`: Навык, активный для запроса, установленный инструментом Skill, командой `/` или унаследованный порождённым подагентом. Встроенные, связанные, определённые пользователем и имена навыков плагинов официального маркетплейса отображаются как есть. Имена навыков плагинов третьих сторон заменяются на `"third-party"`. Отсутствует, когда нет активного навыка.661* `skill.name`: Навык, активный для запроса, установленный инструментом Skill, командой `/` или унаследованный порождённым подагентом. Встроенные, связанные, определённые пользователем и имена навыков плагинов официального маркетплейса отображаются как есть. Имена навыков плагинов третьих сторон заменяются на `"third-party"`, если не установлено `OTEL_LOG_TOOL_DETAILS=1`. Отсутствует, когда нет активного навыка.

656* `plugin.name`: Владеющий плагин, когда активный навык или подагент предоставляется плагином. Имена плагинов официального маркетплейса отображаются как есть. Имена плагинов третьих сторон заменяются на `"third-party"`. Отсутствует, когда ни навык, ни подагент не имеют владеющего плагина.662* `plugin.name`: Владеющий плагин, когда активный навык или подагент предоставляется плагином. Имена плагинов официального маркетплейса отображаются как есть. Имена плагинов третьих сторон заменяются на `"third-party"`, если не установлено `OTEL_LOG_TOOL_DETAILS=1`. Отсутствует, когда ни навык, ни подагент не имеют владеющего плагина.

657* `marketplace.name`: Маркетплейс, из которого был установлен владеющий плагин. Выпускается только для плагинов официального маркетплейса. Отсутствует в противном случае.663* `marketplace.name`: Маркетплейс, из которого был установлен владеющий плагин. Выпускается только для плагинов официального маркетплейса. Отсутствует в противном случае.

658* `mcp_server.name`: Сервер MCP, результат инструмента которого этот запрос потребил. Встроенные, проксируемые claude.ai и имена серверов официального реестра отображаются как есть. Имена серверов, настроенные пользователем, заменяются на `"custom"`. Отсутствует, когда запрос не потребил результат инструмента MCP. До v2.1.222 Claude Code устанавливал этот атрибут на каждый запрос после вызова инструмента MCP, а не только на запросы, которые потребили результат инструмента, поэтому панели управления, которые его агрегируют, показывают снижение после обновления.664* `mcp_server.name`: Сервер MCP, результат инструмента которого этот запрос потребил. Встроенные, проксируемые claude.ai и имена серверов официального реестра отображаются как есть. Имена серверов, настроенные пользователем, заменяются на `"custom"`, если не установлено `OTEL_LOG_TOOL_DETAILS=1`. Отсутствует, когда запрос не потребил результат инструмента MCP. До v2.1.222 Claude Code устанавливал этот атрибут на каждый запрос после вызова инструмента MCP, а не только на запросы, которые потребили результат инструмента, поэтому панели управления, которые его агрегируют, показывают снижение после обновления.

659* `mcp_tool.name`: Инструмент MCP, результат которого этот запрос потребил, с тем же редактированием и поведением версии, что и `mcp_server.name`. Отсутствует, когда запрос не потребил результат инструмента MCP.665* `mcp_tool.name`: Инструмент MCP, результат которого этот запрос потребил, с тем же редактированием и поведением версии, что и `mcp_server.name`. Отсутствует, когда запрос не потребил результат инструмента MCP.

660 666 

661<h4 id="token-counter">667<h4 id="token-counter">


1086* `marketplace.name`: маркетплейс, из которого был установлен плагин, когда известен. Редактируется в `"third-party"` при том же условии, что и `plugin.name`1092* `marketplace.name`: маркетплейс, из которого был установлен плагин, когда известен. Редактируется в `"third-party"` при том же условии, что и `plugin.name`

1087* `plugin.version`: версия из манифеста плагина. Включается только, когда имя не редактируется и манифест объявляет версию1093* `plugin.version`: версия из манифеста плагина. Включается только, когда имя не редактируется и манифест объявляет версию

1088* `plugin.scope`: категория происхождения для плагина: `"official"`, `"community"`, `"org"`, `"user-local"` или `"default-bundle"`1094* `plugin.scope`: категория происхождения для плагина: `"official"`, `"community"`, `"org"`, `"user-local"` или `"default-bundle"`

1089* `enabled_via`: как плагин стал включённым: `"default-enable"`, `"org-policy"`, `"admin-install"`, `"seed-mount"` или `"user-install"`. Значение `"admin-install"` означает, что плагин установлен как обязательный или автоустановка для вашей организации в [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins). До v2.1.246 Claude Code сообщал эти плагины как `"user-install"` или `"seed-mount"`1095* `enabled_via`: как плагин стал включённым: `"default-enable"`, `"org-policy"`, `"admin-install"`, `"seed-mount"` или `"user-install"`. Значение `"admin-install"` означает, что плагин установлен как обязательный или автоустановка для вашей организации в [**Organization settings > Plugins & skills**](https://claude.ai/admin-settings/skills?tab=inventory). До v2.1.246 Claude Code сообщал эти плагины как `"user-install"` или `"seed-mount"`

1090* `plugin_id_hash`: детерминированный хеш имени плагина и маркетплейса, отправляемый только вашему настроенному экспортёру. Позволяет вам считать отдельные плагины третьих сторон, загруженные в вашем парке, без записи их имён. Для [плагинов, синхронизированных из claude.ai](/docs/ru/plugins-reference#synced-plugins), Claude Code хеширует имя плагина с именем маркетплейса, которое claude.ai сообщает для плагина, или с `synced` в противном случае. До v2.1.246 Claude Code не использовал имя маркетплейса claude.ai сообщает в хеше1096* `plugin_id_hash`: детерминированный хеш имени плагина и маркетплейса, отправляемый только вашему настроенному экспортёру. Позволяет вам считать отдельные плагины третьих сторон, загруженные в вашем парке, без записи их имён. Для [плагинов, синхронизированных из claude.ai](/docs/ru/plugins/loading#synced-plugins), Claude Code хеширует имя плагина с именем маркетплейса, которое claude.ai сообщает для плагина, или с `synced` в противном случае. До v2.1.246 Claude Code не использовал имя маркетплейса claude.ai сообщает в хеше

1091* `has_hooks`: предоставляет ли плагин hooks1097* `has_hooks`: предоставляет ли плагин hooks

1092* `has_mcp`: предоставляет ли плагин серверы MCP1098* `has_mcp`: предоставляет ли плагин серверы MCP

1093* `host_owned_mcp`: `true`, когда хост SDK управляет подключениями MCP этого плагина и Claude Code пропустил чтение конфигурации сервера MCP плагина, `false` в противном случае. Требуется Claude Code v2.1.172 или позже1099* `host_owned_mcp`: `true`, когда хост SDK управляет подключениями MCP этого плагина и Claude Code пропустил чтение конфигурации сервера MCP плагина, `false` в противном случае. Требуется Claude Code v2.1.172 или позже


1363* Установите его в блоке `env` управляемых параметров, параметров пользователя или `--settings`, или в окружении, в котором вы запускаете Claude Code. Значение в параметрах проекта или локальных параметрах не включает его, потому что клонированный репозиторий может их писать.1369* Установите его в блоке `env` управляемых параметров, параметров пользователя или `--settings`, или в окружении, в котором вы запускаете Claude Code. Значение в параметрах проекта или локальных параметрах не включает его, потому что клонированный репозиторий может их писать.

1364* Параметры, управляемые сервером, могут установить его без показа [диалога одобрения безопасности](/docs/ru/server-managed-settings#security-approval-dialogs), потому что переменная только добавляет вашу собственную редактируемую политику организации к событию, которое ваша организация уже получает.1370* Параметры, управляемые сервером, могут установить его без показа [диалога одобрения безопасности](/docs/ru/server-managed-settings#security-approval-dialogs), потому что переменная только добавляет вашу собственную редактируемую политику организации к событию, которое ваша организация уже получает.

1365 1371 

1366В интерактивном сеансе в папке, которую вы не [доверили](/docs/ru/permissions#what-runs-before-you-trust-a-folder), Claude Code не экспортирует событие отказа, потому что параметры проекта и локальные параметры могут указать экспорт на другой сборщик перед доверием.1372В интерактивном сеансе в папке, которую вы не [доверили](/docs/ru/permissions#what-runs-before-you-trust-a-folder), Claude Code не экспортирует событие отказа.

1367 1373 

1368**Имя события**: `claude_code.managed_settings_resolved`1374**Имя события**: `claude_code.managed_settings_resolved`

1369 1375 

Details

245| `registry.npmjs.org` | Установки плагинов (получение пакетов плагинов из источника npm и установка зависимостей пакетов Node.js плагинов), MCP-серверы, запущенные через `npx`, и реестр пакетов для установок npm и bun самого Claude Code |245| `registry.npmjs.org` | Установки плагинов (получение пакетов плагинов из источника npm и установка зависимостей пакетов Node.js плагинов), MCP-серверы, запущенные через `npx`, и реестр пакетов для установок npm и bun самого Claude Code |

246| `bridge.claudeusercontent.com` | [Claude in Chrome](/docs/ru/chrome) расширение WebSocket bridge |246| `bridge.claudeusercontent.com` | [Claude in Chrome](/docs/ru/chrome) расширение WebSocket bridge |

247| `*.frame.claudeusercontent.com` | [Artifact](/docs/ru/artifacts) чтение содержимого. CLI получает файлы артефакта с этого хоста, когда Claude открывает его, и только когда инструмент Artifact [доступен](/docs/ru/artifacts#availability) для вашей учетной записи. Чтобы отключить инструмент и удалить это требование, установите [`"enableArtifact": false`](/docs/ru/settings-reference#enableartifact) или [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/ru/env-vars); Claude Code также соблюдает устаревший параметр [`disableArtifact`](/docs/ru/settings-reference#disableartifact). См. [Disable artifacts](/docs/ru/artifacts#disable-artifacts) для того, как эти параметры взаимодействуют |247| `*.frame.claudeusercontent.com` | [Artifact](/docs/ru/artifacts) чтение содержимого. CLI получает файлы артефакта с этого хоста, когда Claude открывает его, и только когда инструмент Artifact [доступен](/docs/ru/artifacts#availability) для вашей учетной записи. Чтобы отключить инструмент и удалить это требование, установите [`"enableArtifact": false`](/docs/ru/settings-reference#enableartifact) или [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/ru/env-vars); Claude Code также соблюдает устаревший параметр [`disableArtifact`](/docs/ru/settings-reference#disableartifact). См. [Disable artifacts](/docs/ru/artifacts#disable-artifacts) для того, как эти параметры взаимодействуют |

248| `github.com` | Клонирование размещенных на GitHub [plugin marketplaces](/docs/ru/plugin-marketplaces) и плагинов, включая официальный рынок Anthropic, через HTTPS или SSH. Чтобы клонировать источники GitHub `owner/repo` только через HTTPS, установите [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/ru/env-vars) |248| `github.com` | Клонирование размещенных на GitHub [plugin marketplaces](/docs/ru/plugins/overview) и плагинов, включая официальный рынок Anthropic, через HTTPS или SSH. Чтобы клонировать источники GitHub `owner/repo` только через HTTPS, установите [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/ru/env-vars) |

249| `raw.githubusercontent.com` | Лента изменений для [`/release-notes`](/docs/ru/commands). В интерактивных сеансах Claude Code также получает ее в фоновом режиме при запуске, когда его кэшированная лента изменений еще не охватывает запущенную версию, например при первом запуске после обновления; неинтерактивные и облачные сеансы никогда не получают ее |249| `raw.githubusercontent.com` | Лента изменений для [`/release-notes`](/docs/ru/commands). В интерактивных сеансах Claude Code также получает ее в фоновом режиме при запуске, когда его кэшированная лента изменений еще не охватывает запущенную версию, например при первом запуске после обновления; неинтерактивные и облачные сеансы никогда не получают ее |

250| `*-review.googlesource.com` | Поиск изменений Gerrit на checkouts `googlesource.com`. Когда сеанс вкладки Claude Desktop Code запускается или возобновляется на [доверенном](/docs/ru/permissions#project-allow-rules-and-workspace-trust) checkout, чей `origin` является хостом `googlesource.com`, Claude Code анонимно запрашивает сервер `-review` этого хоста для открытого изменения, соответствующего `Change-Id` HEAD, один раз за запуск или возобновление. Другие типы сеансов пропускают поиск, и никакой другой хост Gerrit не контактируется. Опционально: отключите с помощью [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ru/env-vars) |250| `*-review.googlesource.com` | Поиск изменений Gerrit на checkouts `googlesource.com`. Когда сеанс вкладки Claude Desktop Code запускается или возобновляется на [доверенном](/docs/ru/permissions#project-allow-rules-and-workspace-trust) checkout, чей `origin` является хостом `googlesource.com`, Claude Code анонимно запрашивает сервер `-review` этого хоста для открытого изменения, соответствующего `Change-Id` HEAD, один раз за запуск или возобновление. Другие типы сеансов пропускают поиск, и никакой другой хост Gerrit не контактируется. Опционально: отключите с помощью [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ru/env-vars) |

251| `http-intake.logs.us5.datadoghq.com` | События операционной телеметрии, отправляемые только когда CLI использует Anthropic API напрямую, никогда для Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry. Опционально: отключите с помощью [`DISABLE_TELEMETRY`](/docs/ru/data-usage#telemetry-services) или `DO_NOT_TRACK` |251| `http-intake.logs.us5.datadoghq.com` | События операционной телеметрии, отправляемые только когда CLI использует Anthropic API напрямую, никогда для Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry. Опционально: отключите с помощью [`DISABLE_TELEMETRY`](/docs/ru/data-usage#telemetry-services) или `DO_NOT_TRACK` |

Details

171 </Step>171 </Step>

172</Steps>172</Steps>

173 173 

174[Plugins](/docs/ru/plugins-reference) также могут поставляться с output styles в каталоге `output-styles/`.174[Plugins](/docs/ru/plugins/manifest-reference) также могут поставляться с output styles в каталоге `output-styles/`.

175 175 

176<h3 id="frontmatter">176<h3 id="frontmatter">

177 Справочник Frontmatter177 Справочник Frontmatter


228 228 

229* [Settings](/docs/ru/settings): где находится поле `outputStyle` и как работает приоритет настроек229* [Settings](/docs/ru/settings): где находится поле `outputStyle` и как работает приоритет настроек

230* [Permission modes](/docs/ru/permission-modes): как стиль Proactive сравнивается с режимом автоматизации230* [Permission modes](/docs/ru/permission-modes): как стиль Proactive сравнивается с режимом автоматизации

231* [Plugins](/docs/ru/plugins): упакуйте и распространяйте output styles вместе с skills, hooks и agents231* [Plugins](/docs/ru/plugins/overview): упакуйте и распространяйте output styles вместе с skills, hooks и agents

232* [Debug your configuration](/docs/ru/debug-your-config): диагностируйте, почему output style не вступает в силу232* [Debug your configuration](/docs/ru/debug-your-config): диагностируйте, почему output style не вступает в силу

Details

332 Проверка классификатора на стороне сервера332 Проверка классификатора на стороне сервера

333</h3>333</h3>

334 334 

335На планах Enterprise и учетных записях, которые используют Claude API, на [Claude Platform on AWS](/docs/ru/claude-platform-on-aws), Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry, и всякий раз, когда вы указываете `ANTHROPIC_BASE_URL` на [LLM gateway или proxy](/docs/ru/llm-gateway), Claude Code в автоматическом режиме просит сервер проверить [действия, которые идут к классификатору](#how-the-classifier-evaluates-actions) как часть запросов модели сеанса. Где сервер их проверяет, его вердикты решают эти действия. Где он этого не делает, чаще всего потому, что LLM gateway или proxy мешает трафику, или потому, что платформа, регион или учетные данные еще не имеют проверок на стороне сервера, Claude Code возвращается к своим собственным запросам классификатора, и как только этот откат сохраняется для остальной части сеанса, он показывает [уведомление о расходах на запросы классификатора](/docs/ru/auto-mode-classifier-billing) на учетных записях, где эти запросы выставляются счетом. Чтобы пропустить запрос к серверу и всегда использовать собственные запросы классификатора Claude Code, установите [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/ru/env-vars). Переменная не читается при прямом подключении к Anthropic API. Если вы установили `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` и оставили `CLAUDE_CODE_AUTO_MODE_SERVER` неустановленным, Claude Code также перестает запрашивать сервер.335В автоматическом режиме Claude Code может попросить сервер проверить действия, которые [порядок решений](#how-the-classifier-evaluates-actions) отправляет на проверку, как часть запросов модели сеанса, вместо отправки собственных запросов классификатора. Эти сеансы спрашивают:

336 336 

337Запрос к серверу по умолчанию требует Claude Code v2.1.278 или более поздней версии.337* **Прямое подключение к Anthropic API**: в интерактивном сеансе терминала, на каждом плане claude.ai и на учетных записях, которые используют Claude API, по мере развертывания Anthropic. Требует Claude Code v2.1.271 или более поздней версии на планах Pro, Max и Team, и v2.1.278 или более поздней версии на планах Enterprise и учетных записях Claude API. С v2.1.282 сеанс, который [не получает флаги функций](/docs/ru/env-vars#features-that-need-feature-flag-fetching), например потому что вы отключили телеметрию, спрашивает сервер по умолчанию в любом виде сеанса.

338* **Облачный поставщик, или LLM gateway или proxy**: на [Claude Platform on AWS](/docs/ru/claude-platform-on-aws), Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry, и всякий раз, когда вы указываете `ANTHROPIC_BASE_URL` на [LLM gateway или proxy](/docs/ru/llm-gateway), независимо от вашего плана. Запрос по умолчанию требует Claude Code v2.1.278 или более поздней версии.

339* **Сеанс [Claude apps gateway](/docs/ru/claude-apps-gateway) с входом**: требует Claude Code v2.1.280 или более поздней версии

340 

341Где сервер проверяет действия, его вердикты решают их. Возможны два других результата:

342 

343* **Сервер не проверяет сеанс**: ответ завершается без результатов проверки, или сервер отвечает, что он не проверяет этот сеанс. Наиболее частые причины — это LLM gateway или proxy, который блокирует запрос на проверку или результаты, и платформа, регион или учетные данные, которые еще не имеют проверок на стороне сервера. Claude Code возвращается к собственным запросам классификатора. Как только этот откат сохраняется для остальной части сеанса, он показывает [уведомление о расходах на запросы классификатора](/docs/ru/auto-mode-classifier-billing) на учетных записях, где эти запросы выставляются счетом.

344* **Сервер не дает вердикт для действия**: Claude Code отклоняет действие, а не выполняет его без проверки. На любом подключении это происходит, когда ответ заканчивается до прибытия результатов проверки или результаты прибывают в форме, которую Claude Code не может прочитать. LLM gateway или proxy, который сокращает ответы или переписывает результаты, может вызвать любое из них. На прямом подключении к Anthropic API это также происходит, когда проверка сервера не удается для действия, например истечение времени ожидания. [Сервер не вернул вердикт безопасности](/docs/ru/errors#the-server-returned-no-safety-verdict) охватывает сообщение об отказе, что происходит, когда отказы повторяются, и что делать.

345 

346Чтобы пропустить запрос к серверу и всегда использовать собственные запросы классификатора Claude Code, установите [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/ru/env-vars). На прямом подключении к Anthropic API переменная требует Claude Code v2.1.281 или более поздней версии. Установка ее на `1` там включает проверку сервера в сеансе, который еще ее не имеет, такой как сеанс `-p` или Agent SDK, если вы также не установили `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`. Если вы установили `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` и оставили `CLAUDE_CODE_AUTO_MODE_SERVER` неустановленным, Claude Code также перестает запрашивать сервер.

338 347 

339<h3 id="what-the-classifier-blocks-by-default">348<h3 id="what-the-classifier-blocks-by-default">

340 Что классификатор блокирует по умолчанию349 Что классификатор блокирует по умолчанию


476* **Заблокированное действие**: Claude Code показывает уведомление и перечисляет действие в `/permissions` на вкладке **Recently denied**, где вы можете нажать `r` для повторной попытки с ручным одобрением. Когда классификатор выдает [отсутствие вердикта по действию](/docs/ru/errors#auto-mode-cannot-determine-the-safety-of-an-action), потому что проверка безопасности, отдельная от автоматического режима, отклонила собственный запрос классификатора или его ответ не был разобран, Claude Code отклоняет действие без уведомления или записи **Recently denied**.485* **Заблокированное действие**: Claude Code показывает уведомление и перечисляет действие в `/permissions` на вкладке **Recently denied**, где вы можете нажать `r` для повторной попытки с ручным одобрением. Когда классификатор выдает [отсутствие вердикта по действию](/docs/ru/errors#auto-mode-cannot-determine-the-safety-of-an-action), потому что проверка безопасности, отдельная от автоматического режима, отклонила собственный запрос классификатора или его ответ не был разобран, Claude Code отклоняет действие без уведомления или записи **Recently denied**.

477* **Повторные блоки**: если классификатор блокирует действие 3 раза подряд или 20 раз всего, автоматический режим приостанавливается и Claude Code возобновляет запросы. Одобрение запрошенного действия возобновляет автоматический режим. Эти пороги не настраиваются. Любое разрешенное действие сбрасывает счетчик последовательных, пока счетчик всего сохраняется для сеанса и сбрасывается только когда его собственный предел запускает откат. Claude Code не считает отказ к любому пороговому значению, когда [проверка безопасности, отдельная от автоматического режима, отклоняет собственный запрос классификатора](/docs/ru/errors#auto-mode-cannot-determine-the-safety-of-an-action); связанная запись охватывает, как Claude Code обрабатывает эти отказы.486* **Повторные блоки**: если классификатор блокирует действие 3 раза подряд или 20 раз всего, автоматический режим приостанавливается и Claude Code возобновляет запросы. Одобрение запрошенного действия возобновляет автоматический режим. Эти пороги не настраиваются. Любое разрешенное действие сбрасывает счетчик последовательных, пока счетчик всего сохраняется для сеанса и сбрасывается только когда его собственный предел запускает откат. Claude Code не считает отказ к любому пороговому значению, когда [проверка безопасности, отдельная от автоматического режима, отклоняет собственный запрос классификатора](/docs/ru/errors#auto-mode-cannot-determine-the-safety-of-an-action); связанная запись охватывает, как Claude Code обрабатывает эти отказы.

478* **Сеансы, которые не могут спрашивать**: [неинтерактивный](/docs/ru/headless) запуск `-p` без [`--permission-prompt-tool`](/docs/ru/cli-reference#cli-flags) не имеет запроса для возврата. Когда повторные блоки достигают порога, действие не выполняется и Claude продолжает работать. То же самое применяется, когда [проверка безопасности, отдельная от автоматического режима, отклоняет запрос классификатора](/docs/ru/errors#auto-mode-cannot-determine-the-safety-of-an-action). Claude Code не останавливает запуск ни в одном случае.487* **Сеансы, которые не могут спрашивать**: [неинтерактивный](/docs/ru/headless) запуск `-p` без [`--permission-prompt-tool`](/docs/ru/cli-reference#cli-flags) не имеет запроса для возврата. Когда повторные блоки достигают порога, действие не выполняется и Claude продолжает работать. То же самое применяется, когда [проверка безопасности, отдельная от автоматического режима, отклоняет запрос классификатора](/docs/ru/errors#auto-mode-cannot-determine-the-safety-of-an-action). Claude Code не останавливает запуск ни в одном случае.

488* **Нет вердикта от сервера**: под [проверкой классификатора на стороне сервера](#server-side-classifier-review), Claude Code отклоняет действие, для которого сервер не дает вердикт, и останавливает ход после десяти ответов подряд без вердикта. Смотрите [Сервер не вернул вердикт безопасности](/docs/ru/errors#the-server-returned-no-safety-verdict).

479* **Переключение режима во время проверки**: если вы переключаете режимы разрешений, пока проверка классификатора ожидает, Claude Code отклоняет вердикт, который новый режим не запросил бы, вместо его применения: вместо этого вас спрашивают для одобрения, или действие автоматически отклоняется в [`dontAsk` режиме](#allow-only-pre-approved-tools-with-dontask-mode).489* **Переключение режима во время проверки**: если вы переключаете режимы разрешений, пока проверка классификатора ожидает, Claude Code отклоняет вердикт, который новый режим не запросил бы, вместо его применения: вместо этого вас спрашивают для одобрения, или действие автоматически отклоняется в [`dontAsk` режиме](#allow-only-pre-approved-tools-with-dontask-mode).

480 490 

481Повторные блоки обычно означают, что классификатор упускает контекст о вашей инфраструктуре. Используйте `/feedback` для сообщения о ложных срабатываниях, или пусть администратор [настроит доверенную инфраструктуру](/docs/ru/auto-mode-config).491Повторные блоки обычно означают, что классификатор упускает контекст о вашей инфраструктуре. Используйте `/feedback` для сообщения о ложных срабатываниях, или пусть администратор [настроит доверенную инфраструктуру](/docs/ru/auto-mode-config).


491 * MCP инструменты, отмеченные [`requiresUserInteraction`](/docs/ru/mcp#require-approval-for-a-specific-tool), спрашивают вас напрямую, даже когда правило разрешения соответствует, и так же инструменты connector, которые ваша организация установила на `ask`]\(/ru/mcp#organization-controls-on-connector-tools) в сеансах, где эта параметр достигает Claude Code501 * MCP инструменты, отмеченные [`requiresUserInteraction`](/docs/ru/mcp#require-approval-for-a-specific-tool), спрашивают вас напрямую, даже когда правило разрешения соответствует, и так же инструменты connector, которые ваша организация установила на `ask`]\(/ru/mcp#organization-controls-on-connector-tools) в сеансах, где эта параметр достигает Claude Code

492 * Команда оболочки, которая несет [разрешенные домены для каждой команды](/docs/ru/sandboxing#per-command-allowed-domains-in-auto-mode), также маршрутизируется к классификатору, даже когда правило разрешения соответствует, потому что правило одобряет команду, а не ее хосты502 * Команда оболочки, которая несет [разрешенные домены для каждой команды](/docs/ru/sandboxing#per-command-allowed-domains-in-auto-mode), также маршрутизируется к классификатору, даже когда правило разрешения соответствует, потому что правило одобряет команду, а не ее хосты

493 * Правила запроса, которые соответствуют содержимому команды, такие как `Bash(git push *)`, возвращаются к запросу разрешения503 * Правила запроса, которые соответствуют содержимому команды, такие как `Bash(git push *)`, возвращаются к запросу разрешения

494 2. Действия только для чтения и редактирования файлов в вашем рабочем каталоге автоматически одобряются, кроме записей в [защищенные пути](#protected-paths) и [первое чтение вне рабочих каталогов](#first-read-outside-the-working-directories), которое вас спрашивает504 2. Действия только для чтения и редактирование файлов в вашем рабочем каталоге автоматически одобряются, кроме записей в [защищенные пути](#protected-paths) и [первое чтение вне рабочих каталогов](#first-read-outside-the-working-directories), которое вас спрашивает

505 * В сеансе с [проверкой классификатора на стороне сервера](#server-side-classifier-review), действия только для чтения и [команды оболочки в песочнице](/docs/ru/sandboxing#sandbox-modes) ждут эту проверку и блокируются, если она их отмечает

495 3. Все остальное идет к классификатору. Инструменты connector и MCP инструменты `requiresUserInteraction`, которые спрашивают вас напрямую на шаге 1, никогда не достигают классификатора, поэтому ни одобрение, требуемое организацией, ни шаг согласия не автоматически одобряются506 3. Все остальное идет к классификатору. Инструменты connector и MCP инструменты `requiresUserInteraction`, которые спрашивают вас напрямую на шаге 1, никогда не достигают классификатора, поэтому ни одобрение, требуемое организацией, ни шаг согласия не автоматически одобряются

496 4. Если классификатор блокирует, Claude получает причину и пытается альтернативу. В большинстве сеансов причина называет правило, которое классификатор совпал, такое как `[Data Exfiltration]`, вместо того чтобы давать письменное объяснение; смотрите [Проверка отказов](/docs/ru/auto-mode-config#review-denials)507 4. Если классификатор блокирует, Claude получает причину и пытается альтернативу. В большинстве сеансов причина называет правило, которое классификатор совпал, такое как `[Data Exfiltration]`, вместо того чтобы давать письменное объяснение; смотрите [Проверка отказов](/docs/ru/auto-mode-config#review-denials)

497 508 


529 540 

530 На планах Enterprise и на учетных записях, которые используют Claude API, [Claude Platform on AWS](/docs/ru/claude-platform-on-aws), Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry, вызовы классификатора считаются в сторону использования вашего токена. Каждая проверка отправляет часть стенограммы плюс ожидающее действие, добавляя round-trip перед выполнением. Чтения и редактирования рабочего каталога вне защищенных путей пропускают классификатор, поэтому накладные расходы поступают в основном из команд оболочки и сетевых операций. Где сервер проверяет действия как часть запросов модели сеанса, нет отдельных вызовов классификатора для подсчета; смотрите [Проверка классификатора на стороне сервера](#server-side-classifier-review).541 На планах Enterprise и на учетных записях, которые используют Claude API, [Claude Platform on AWS](/docs/ru/claude-platform-on-aws), Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry, вызовы классификатора считаются в сторону использования вашего токена. Каждая проверка отправляет часть стенограммы плюс ожидающее действие, добавляя round-trip перед выполнением. Чтения и редактирования рабочего каталога вне защищенных путей пропускают классификатор, поэтому накладные расходы поступают в основном из команд оболочки и сетевых операций. Где сервер проверяет действия как часть запросов модели сеанса, нет отдельных вызовов классификатора для подсчета; смотрите [Проверка классификатора на стороне сервера](#server-side-classifier-review).

531 542 

532 Доступ в песочницу в сеть не добавляет запросы классификатора для каждого соединения. Классификатор судит [хосты, которые команда называет](/docs/ru/sandboxing#per-command-allowed-domains-in-auto-mode), вместе с командой в одной проверке, и Claude Code проверяет каждое соединение по одобренному списку без повторного вызова классификатора.543 Доступ в песочнице в сеть не добавляет запросы классификатора для каждого соединения. Классификатор судит [хосты, которые команда называет](/docs/ru/sandboxing#per-command-allowed-domains-in-auto-mode), вместе с командой в одной проверке, и Claude Code проверяет каждое соединение по одобренному списку без повторного вызова классификатора.

533 </Accordion>544 </Accordion>

534</AccordionGroup>545</AccordionGroup>

535 546 

platforms.md +3 −3

Details

34Интеграции позволяют Claude работать с сервисами вне вашей кодовой базы.34Интеграции позволяют Claude работать с сервисами вне вашей кодовой базы.

35 35 

36| Интеграция | Что она делает | Используйте для |36| Интеграция | Что она делает | Используйте для |

37| :----------------------------------- | :--------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------- |37| :----------------------------------------------- | :--------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------- |

38| [Chrome](/docs/ru/chrome) | Управляет вашим браузером с вашими авторизованными сеансами | Тестирование веб-приложений, заполнение форм, автоматизация сайтов без API |38| [Chrome](/docs/ru/chrome) | Управляет вашим браузером с вашими авторизованными сеансами | Тестирование веб-приложений, заполнение форм, автоматизация сайтов без API |

39| [GitHub Actions](/docs/ru/github-actions) | Запускает Claude в вашем конвейере CI | Автоматические проверки PR, сортировка проблем, запланированное обслуживание |39| [GitHub Actions](/docs/ru/github-actions) | Запускает Claude в вашем конвейере CI | Автоматические проверки PR, сортировка проблем, запланированное обслуживание |

40| [GitLab CI/CD](/docs/ru/gitlab-ci-cd) | То же самое, что GitHub Actions для GitLab | Автоматизация, управляемая CI на GitLab |40| [GitLab CI/CD](/docs/ru/gitlab-ci-cd) | То же самое, что GitHub Actions для GitLab | Автоматизация, управляемая CI на GitLab |

41| [Code Review](/docs/ru/code-review) | Автоматически проверяет каждый PR | Выявление ошибок перед проверкой человеком |41| [Code Review](/docs/ru/code-review) | Автоматически проверяет каждый PR | Выявление ошибок перед проверкой человеком |

42| [Slack](/docs/ru/slack) | Отвечает на упоминания `@Claude` в ваших каналах | Превращение отчётов об ошибках в pull requests из чата команды |42| [Slack](/docs/ru/slack) | Отвечает на упоминания `@Claude` в ваших каналах | Превращение отчётов об ошибках в pull requests из чата команды |

43| [Claude Tag](/docs/ru/claude-tag) | Запускает `@Claude` как общую идентификацию вашей организации с настроенным администратором доступом | Общий доступ команды на планах Team и Enterprise вместо сеансов Slack для каждого пользователя |43| [Claude Tag](https://claude.com/docs/claude-tag) | Запускает `@Claude` как общую идентификацию вашей организации с настроенным администратором доступом | Общий доступ команды на планах Team и Enterprise вместо сеансов Slack для каждого пользователя |

44 44 

45Для интеграций, не указанных здесь, [MCP серверы](/docs/ru/mcp) и [соединители](/docs/ru/desktop#connect-external-tools) позволяют подключить почти всё: Linear, Notion, Google Drive или ваши собственные внутренние API.45Для интеграций, не указанных здесь, [MCP серверы](/docs/ru/mcp) и [соединители](/docs/ru/desktop#connect-external-tools) позволяют подключить почти всё: Linear, Notion, Google Drive или ваши собственные внутренние API.

46 46 


87* [GitLab CI/CD](/docs/ru/gitlab-ci-cd): то же самое для GitLab87* [GitLab CI/CD](/docs/ru/gitlab-ci-cd): то же самое для GitLab

88* [Code Review](/docs/ru/code-review): автоматическая проверка при каждом pull request88* [Code Review](/docs/ru/code-review): автоматическая проверка при каждом pull request

89* [Slack](/docs/ru/slack): отправка задач из чата команды, получение PR обратно89* [Slack](/docs/ru/slack): отправка задач из чата команды, получение PR обратно

90* [Claude Tag](/docs/ru/claude-tag): запуск `@Claude` как общей идентификации вашей организации в планах Team и Enterprise90* [Claude Tag](https://claude.com/docs/claude-tag): запуск `@Claude` как общей идентификации вашей организации в планах Team и Enterprise

91 91 

92<h3 id="remote-access">92<h3 id="remote-access">

93 Удалённый доступ93 Удалённый доступ

plugin-dependencies.md +0 −267 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# Ограничение версий зависимостей плагина

6 

7> Объявляйте ограничения версий для зависимостей плагина и объедините подобранный набор плагинов в одну установку.

8 

9Плагин может зависеть от других плагинов, указав их в `plugin.json` или в записи на marketplace. По умолчанию зависимость отслеживает последнюю доступную версию, поэтому вышестоящий выпуск может изменить зависимость в вашем плагине без предупреждения. Ограничения версий позволяют удерживать зависимость на протестированном диапазоне версий до тех пор, пока вы не решите перейти на новую версию.

10 

11Когда вы устанавливаете плагин, который объявляет зависимости, Claude Code автоматически разрешает и устанавливает их, за исключением зависимости, запись на marketplace которой имеет [`command` источник](/docs/ru/plugin-marketplaces#how-users-accept-the-command) или [`headersHelper`](/docs/ru/plugin-marketplaces#how-users-accept-a-headershelper-command), которую вы устанавливаете сами в первую очередь. Позже `/reload-plugins`, автоматическое обновление marketplace зависимого плагина, повторный запуск `claude plugin install` для зависимого плагина и `claude plugin marketplace add` каждый устанавливают любую объявленную зависимость, которая ещё не установлена, по тем же правилам; если одна остаётся неразрешённой, см. [Разрешение ошибок зависимостей](#resolve-dependency-errors).

12 

13Это руководство предназначено для авторов плагинов, которые объявляют зависимости в `plugin.json`, и для администраторов marketplace, которые помечают выпуски. Зависимости здесь — это другие плагины; для пакетов npm и Bun, которые использует сам плагин, см. [Зависимости пакетов Node.js](/docs/ru/plugins-reference#node-js-package-dependencies). Чтобы установить плагины с зависимостями, см. [Обнаружение и установка плагинов](/docs/ru/discover-plugins). Полную схему манифеста см. в [справочнике плагинов](/docs/ru/plugins-reference).

14 

15<h2 id="why-constrain-dependency-versions">

16 Почему нужно ограничивать версии зависимостей

17</h2>

18 

19Рассмотрим внутренний marketplace, где две команды публикуют плагины. Команда платформы поддерживает `secrets-vault`, MCP-сервер, который оборачивает бэкенд секретов. Команда развертывания поддерживает `deploy-kit`, который вызывает `secrets-vault` для получения учетных данных во время развертывания.

20 

21`deploy-kit` протестирован для работы с `secrets-vault` v2.1.0. Без ограничения версии при следующем выпуске платформенной команды, который переименовывает MCP-инструмент, автоматическое обновление переместит `secrets-vault` каждого инженера на новую версию, и `deploy-kit` сломается.

22 

23С ограничением версии `deploy-kit` объявляет, что ему нужен `secrets-vault` в диапазоне `~2.1.0`. Инженеры с установленным `deploy-kit` остаются на самой высокой соответствующей версии `2.1.x`. Команда развертывания обновляется по собственному графику, публикуя новую версию `deploy-kit` с более широким ограничением.

24 

25<h2 id="declare-a-dependency-with-a-version-constraint">

26 Объявление зависимости с ограничением версии

27</h2>

28 

29Перечислите зависимости в массиве `dependencies` файла `.claude-plugin/plugin.json` вашего плагина.

30 

31Следующий манифест объявляет одну зависимость без версии и одну зависимость с ограничением:

32 

33```json .claude-plugin/plugin.json theme={null}

34{

35 "name": "deploy-kit",

36 "version": "3.1.0",

37 "dependencies": [

38 "audit-logger",

39 { "name": "secrets-vault", "version": "~2.1.0" }

40 ]

41}

42```

43 

44Запись может быть простой строкой с только именем плагина, как `"audit-logger"` в манифесте `deploy-kit`, которая зависит от любой версии, которую предоставляет marketplace этого плагина. Для большего контроля используйте объект с этими полями:

45 

46| Поле | Тип | Описание |

47| :------------ | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

48| `name` | string | Имя плагина. Разрешается в том же marketplace, что и объявляющий плагин. Обязательно. |

49| `version` | string | [Диапазон semver](https://github.com/npm/node-semver#ranges), такой как `~2.1.0`, `^2.0`, `>=1.4` или `=2.1.0`. Зависимость получается в самой высокой помеченной версии, которая удовлетворяет этому диапазону. |

50| `marketplace` | string | Другой marketplace для разрешения `name`. Кросс-marketplace зависимости блокируются, если целевой marketplace не указан в [`allowCrossMarketplaceDependenciesOn`](#depend-on-a-plugin-from-another-marketplace) в `marketplace.json` корневого marketplace. |

51 

52Версии предварительного выпуска, такие как `2.0.0-beta.1`, исключаются, если ваш диапазон не выбирает их с суффиксом предварительного выпуска, например `^2.0.0-0`.

53 

54<h2 id="bundle-plugins-for-a-team">

55 Объединение плагинов для команды

56</h2>

57 

58Помимо обязательного поля `name`, манифест плагина может состоять только из массива `dependencies`. Его установка подтягивает все зависимости, что позволяет упаковать тщательно отобранный набор плагинов в один установочный пакет.

59 

60Например, команда платформы может опубликовать специализированные наборы во внутреннем маркетплейсе, чтобы инженеры запустили одну команду `claude plugin install` вместо установки каждого инструмента отдельно:

61 

62```json .claude-plugin/plugin.json theme={null}

63{

64 "name": "backend-standard",

65 "version": "1.0.0",

66 "description": "Standard plugin set for backend engineers",

67 "dependencies": [

68 "secrets-vault",

69 "deploy-kit",

70 { "name": "db-migrate", "version": "^3.0" },

71 "oncall-runbook"

72 ]

73}

74```

75 

76Установка `backend-standard` разрешает и устанавливает все четыре зависимости.

77 

78Чтобы позже добавить инструмент в стандартный набор, опубликуйте новую версию `backend-standard` с дополнительной зависимостью. Если маркетплейс не [автоматически обновляется](/docs/ru/discover-plugins#configure-auto-updates), инженеры получают новую версию одним из двух способов:

79 

80* Включите автоматическое обновление для маркетплейса в `/plugin`. Следующее автоматическое обновление переместит пакет на новую версию и установит все добавленные им зависимости.

81* Запустите `claude plugin update backend-standard`, затем `/reload-plugins` для установки вновь добавленных зависимостей.

82 

83Чтобы развернуть пакеты по всей организации, добавьте плагин пакета в `enabledPlugins` в [управляемых параметрах](/docs/ru/settings-reference#enabledplugins).

84 

85<h2 id="depend-on-a-plugin-from-another-marketplace">

86 Зависимость от плагина из другого marketplace

87</h2>

88 

89По умолчанию Claude Code отказывается автоматически устанавливать зависимость, которая находится в другом marketplace, чем плагин, который ее объявляет. Это предотвращает молчаливое извлечение плагинов из источника, который вы не проверили.

90 

91Чтобы это разрешить, администратор корневого marketplace добавляет имя целевого marketplace в `allowCrossMarketplaceDependenciesOn` в `marketplace.json`. Корневой marketplace — это тот, который размещает плагин, который устанавливает пользователь; проверяется только его список разрешений, поэтому доверие не распространяется через промежуточные marketplace.

92 

93Следующий `marketplace.json` позволяет `deploy-kit` зависеть от плагина из `acme-shared`:

94 

95```json .claude-plugin/marketplace.json theme={null}

96{

97 "name": "acme-tools",

98 "owner": { "name": "Acme" },

99 "allowCrossMarketplaceDependenciesOn": ["acme-shared"],

100 "plugins": [

101 {

102 "name": "deploy-kit",

103 "source": "./deploy-kit",

104 "dependencies": [

105 { "name": "audit-logger", "marketplace": "acme-shared" }

106 ]

107 }

108 ]

109}

110```

111 

112Если поле отсутствует или не включает целевой marketplace, установка завершается с ошибкой `cross-marketplace`, указывающей на поле для установки. Пользователи все еще могут установить зависимость вручную в первую очередь, что удовлетворяет ограничению без изменения списка разрешений.

113 

114<h2 id="test-a-plugin-and-its-dependency-locally">

115 Тестирование плагина и его зависимости локально

116</h2>

117 

118Если вы разрабатываете плагин и одновременно разрабатываете плагин, от которого он зависит, загрузите оба с помощью `--plugin-dir`:

119 

120```bash theme={null}

121claude --plugin-dir ./my-dependency --plugin-dir ./my-plugin

122```

123 

124Локальная копия зависимости удовлетворяет записи о зависимости вашего плагина, даже когда запись указывает на marketplace, поэтому вам не нужно устанавливать зависимость из её marketplace. Claude Code не проверяет [ограничение версии](#declare-a-dependency-with-a-version-constraint) для локальной копии, поэтому локальный `plugin.json` не требует `version`. До версии v2.1.242 запись о зависимости, которая указывала на marketplace, никогда не совпадала с локальной копией, и Claude Code отключал ваш плагин при загрузке.

125 

126Когда оба плагина находятся в одной родительской папке, вы можете передать эту папку в `--plugin-dir` один раз. Если папка сама по себе не является плагином, Claude Code загружает каждую дочернюю папку, которая содержит `.claude-plugin/plugin.json`. Требуется Claude Code версии v2.1.265 или позже.

127 

128Если вы не установили зависимость из её marketplace, ваш плагин перестанет загружаться, когда локальная копия исчезнет:

129 

130* **Вы отключили локальную копию**: Claude Code отключает ваш плагин при следующей загрузке плагина. Для записи о зависимости, которая указывает на marketplace, Claude Code выводит сообщение `Dependency "<name>@inline" is disabled — enable it or remove the dependency`; для записи с простым именем выводит зависимость по её простому имени. `<name>@inline` — это способ, которым Claude Code идентифицирует каждый плагин `--plugin-dir` и `--plugin-url`.

131* **Вы начали сеанс без флага `--plugin-dir` зависимости**: Claude Code выводит сообщение, что зависимость не установлена. Передайте флаг снова или установите зависимость из её marketplace.

132 

133<h2 id="tag-plugin-releases-for-version-resolution">

134 Выпуски тегов плагинов для разрешения версий

135</h2>

136 

137Claude Code разрешает ограничения версий для git-тегов в репозитории, который размещает зависимость: собственный репозиторий плагина для [источников плагинов](/docs/ru/plugin-marketplaces#plugin-sources) `github`, `url` и `git-subdir`, или репозиторий маркетплейса для плагина, на который маркетплейс ссылается относительным путём. Чтобы Claude Code мог найти доступные версии зависимости, выпуски вышестоящего плагина должны быть помечены тегами с использованием определённого соглашения об именовании.

138 

139Пометьте каждый выпуск как `{plugin-name}--v{version}`, где `{version}` соответствует полю `version` в `plugin.json` этого коммита. Из директории плагина выполните:

140 

141```bash theme={null}

142claude plugin tag --push

143```

144 

145Команда `claude plugin tag` выводит имя тега из манифеста плагина и записи маркетплейса, которая его содержит. Перед созданием тега она проверяет содержимое плагина, убеждается, что `plugin.json` и запись маркетплейса согласны по версии, требует чистого рабочего дерева в директории плагина и отказывает, если тег уже существует.

146 

147* `--push` отправляет тег на удалённый репозиторий `origin`, поэтому репозиторий должен иметь настроенный удалённый репозиторий `origin`. Передайте `--remote` для отправки на другой.

148* Если отправка не удаётся, тег всё равно создаётся локально и команда завершается с ошибкой.

149* С `--push` успешный запуск заканчивается с `Created tag secrets-vault--v2.1.0` и `Pushed to origin`, где последняя строка называет удалённый репозиторий, на который была произведена отправка. Без `--push` команда выводит команду `git push` для запуска вместо этого.

150* `--dry-run` выводит то, что будет помечено тегом, без его создания.

151 

152Запуск `git tag secrets-vault--v2.1.0` напрямую эквивалентен, если вы сами синхронизируете `plugin.json` и запись маркетплейса.

153 

154Префикс имени плагина позволяет одному репозиторию маркетплейса размещать несколько плагинов с независимыми линиями версий. Разделитель `--v` анализируется как совпадение префикса на полное имя плагина, поэтому имена плагинов, содержащие дефисы, обрабатываются правильно.

155 

156Когда вы устанавливаете плагин, который объявляет `{ "name": "secrets-vault", "version": "~2.1.0" }`, Claude Code выводит список тегов в репозитории, который размещает `secrets-vault`, фильтрует те, которые начинаются с `secrets-vault--v`, и получает наивысшую версию, удовлетворяющую `~2.1.0`. Если ни один тег в собственном репозитории плагина не удовлетворяет диапазону, установка завершается с ошибкой `Dependency "secrets-vault@acme-tools" has no git tag satisfying ~2.1.0`, которая называет зависимость вместе с её маркетплейсом. Для плагина с относительным путём без соответствующего тега Claude Code устанавливает текущую копию маркетплейса и проверяет ограничение при загрузке плагина.

157 

158Для плагина, на который маркетплейс ссылается относительным путём, маркетплейс, добавленный как локальный путь папки, разрешает теги таким же образом, когда папка является git-репозиторием. Это требует Claude Code v2.1.196 или позже. В двух случаях Claude Code устанавливает зависимость из текущего содержимого папки вместо этого:

159 

160* Более ранние версии не читают теги из маркетплейса локальной папки, поэтому ограниченная зависимость загружается только если эта копия удовлетворяет диапазону.

161* Локальная папка, которая не является git-репозиторием, не имеет тегов, независимо от версии.

162 

163Semver разрешённого тега записывается отдельно от `version` в `plugin.json`, поэтому проверки ограничений используют тег, который был фактически получен, даже если `plugin.json` в этом коммите имеет устаревшее значение. Имя директории кэша для установки с разрешённым тегом включает суффикс SHA коммита из 12 символов, поэтому если разработчик принудительно переместит тег на другой коммит, следующая установка получит свежую директорию кэша вместо повторного использования устаревшего содержимого.

164 

165<Note>

166 Для зависимостей с [источником плагина](/docs/ru/plugin-marketplaces#plugin-sources) `npm`, `archive` или `command`, ограничение не контролирует, какая версия получена, поскольку разрешение на основе тегов применяется только к источникам, поддерживаемым git. Ограничение всё равно проверяется во время загрузки, и зависимый плагин отключается с `dependency-version-unsatisfied`, если установленная версия не удовлетворяет ему. Для источника `command` Claude Code проверяет версию в `plugin.json` зависимости и игнорирует суффикс хэша содержимого; зависимость, чей `plugin.json` не устанавливает версию, не удовлетворяет никакому ограничению, поэтому установите её перед тем, как вы её ограничите.

167 

168 Claude Code никогда не устанавливает зависимость с источником `command` сам, поэтому пользователи [устанавливают её первыми](/docs/ru/plugin-marketplaces#how-users-accept-the-command). Claude Code также никогда не запускает `headersHelper` на записи маркетплейса зависимости, поэтому пользователи [устанавливают этот плагин первыми](/docs/ru/plugin-marketplaces#how-users-accept-a-headershelper-command).

169</Note>

170 

171<h2 id="how-constraints-interact">

172 Как ограничения взаимодействуют

173</h2>

174 

175Когда несколько установленных плагинов ограничивают одну и ту же зависимость, Claude Code пересекает их диапазоны и разрешает зависимость на самую высокую версию, которая удовлетворяет всем из них. Таблица ниже показывает, как разрешаются общие комбинации.

176 

177| Плагин A требует | Плагин B требует | Результат |

178| :--------------- | :--------------- | :------------------------------------------------------------------------------------------------------------------ |

179| `^2.0` | `>=2.1` | Одна установка на самый высокий тег `2.x` на уровне или выше `2.1.0`. Оба плагина загружаются. |

180| `~2.1` | `~3.0` | Установка плагина B завершается с ошибкой `range-conflict`. Плагин A и зависимость остаются как они были. |

181| `=2.1.0` | none | Зависимость остается на `2.1.0`. Автоматическое обновление пропускает более новые версии, пока установлен плагин A. |

182 

183Автоматическое обновление получает ограниченную зависимость на самом высоком теге git, который удовлетворяет диапазону каждого установленного плагина, а не на последней версии marketplace, поэтому зависимость продолжает получать обновления в пределах своего допустимого диапазона. Если ни один тег не удовлетворяет всем диапазонам, автоматическое обновление пропускает эту зависимость и указывает пропуск на вкладке Errors в `/plugin`, называя ограничивающий плагин.

184 

185Когда вы удаляете последний плагин, который ограничивает зависимость, зависимость больше не удерживается и возобновляет отслеживание записи marketplace при следующем обновлении.

186 

187<h2 id="enable-or-disable-a-plugin-with-dependencies">

188 Включение или отключение плагина с зависимостями

189</h2>

190 

191Этот раздел охватывает плагины, установленные из маркетплейса. Для копии, которую вы загрузили с помощью `--plugin-dir`, см. [Локальное тестирование плагина и его зависимости](#test-a-plugin-and-its-dependency-locally).

192 

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

194 

195Когда вы включаете плагин, Claude Code также включает его зависимости в той же области. Если зависимость имеет свои собственные зависимости, Claude Code включает и их. Сообщение об успехе выводит список того, что еще было включено вместе с плагином, который вы назвали. Если зависимость не может быть включена, команда отказывает и сообщает вам, что блокирует и как это исправить:

196 

197| Условие | Результат |

198| :-------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------- |

199| Зависимость не установлена | Включение завершается с ошибкой и выводит команду `claude plugin install` для каждой отсутствующей зависимости. |

200| Зависимость заблокирована политикой плагинов вашей организации | Включение завершается с ошибкой и указывает на заблокированную зависимость. |

201| Зависимость установлена на `false` в области с более высоким приоритетом, чем целевая область | Включение завершается с ошибкой. Включите зависимость в этой области или передайте `--scope` для записи там. |

202| Все зависимости установлены и разрешены | Включение успешно и записывает `true` для плагина и каждой зависимости, которая еще не была включена в целевой области. |

203 

204Это справедливо даже когда зависимость устанавливает [`defaultEnabled: false`](/docs/ru/plugins-reference#default-enablement) в своем манифесте, потому что Claude Code записывает явное `true` для нее. То же самое применяется при установке: зависимость, подключенная для удовлетворения активного плагина, устанавливается с `true` независимо от своего собственного значения по умолчанию.

205 

206Когда вы отключаете плагин, Claude Code отказывает, если другой включенный плагин все еще зависит от него. Ошибка указывает на плагины, которые зависят от него, и дает вам цепную команду, которая отключает их в правильном порядке, заканчивая тем, который вы запросили.

207 

208Например, если `deploy-kit` зависит от `secrets-vault`, отключение только `secrets-vault` завершается с ошибкой с выводом, похожим на следующий:

209 

210```text theme={null}

211secrets-vault is still required by deploy-kit. Disable that plugin first, or

212disable everything together: claude plugin disable deploy-kit@acme-tools && claude plugin disable secrets-vault@acme-tools

213```

214 

215Скопируйте цепную команду из ошибки, чтобы отключить полный набор за один шаг.

216 

217<h2 id="remove-orphaned-auto-installed-dependencies">

218 Удаление осиротевших автоматически установленных зависимостей

219</h2>

220 

221Автоматически установленные зависимости остаются на диске после удаления плагинов, которые их установили, на случай, если вы переустановите зависимый плагин или захотите продолжить использование зависимости напрямую. Чтобы очистить их, запустите `claude plugin prune` для вывода списка автоматически установленных зависимостей, которые больше не требуются ни одним установленным плагином, и удалите их после подтверждения.

222 

223```bash theme={null}

224claude plugin prune

225```

226 

227Если ничего не подлежит удалению, команда выводит `Nothing to prune` с указанием причины и завершает работу. Это ожидаемый результат при свежей установке, а не ошибка.

228 

229По умолчанию prune работает в области пользователя и запрашивает подтверждение перед удалением чего-либо:

230 

231* `--scope project` или `--scope local` выбирает другую область.

232* `--dry-run` выводит список того, что будет удалено, без внесения изменений.

233* `-y` пропускает подтверждение. Когда stdin или stdout не является терминалом, prune выводит список осиротевших зависимостей и завершает работу без их удаления, если не передана `-y`.

234 

235Чтобы выполнить prune как часть удаления, передайте `--prune` в `claude plugin uninstall`. После удаления названного плагина Claude Code сканирует и удаляет любые автоматически установленные зависимости, которые теперь осиротели. Плагины, которые вы установили сами, никогда не удаляются, только те, которые были установлены автоматически через массив `dependencies` другого плагина.

236 

237Поведение подтверждения остаётся прежним. Когда stdin или stdout не является терминалом, удаление всё ещё завершается, но шаг prune выводит список осиротевших зависимостей и ничего не удаляет, если не передана `-y`.

238 

239Например, чтобы удалить `deploy-kit` и очистить зависимости, которые он оставляет:

240 

241```bash theme={null}

242claude plugin uninstall deploy-kit --prune

243```

244 

245<h2 id="resolve-dependency-errors">

246 Разрешение ошибок зависимостей

247</h2>

248 

249Проблемы с зависимостями появляются в `claude plugin list` и в интерфейсе `/plugin` в виде описательных сообщений об ошибках вместо буквальных кодов в этой таблице. Claude Code отключает затронутый плагин до тех пор, пока вы не разрешите ошибку. Таблица ниже содержит список наиболее распространенных ошибок и способы их разрешения.

250 

251| Ошибка | Значение | Как разрешить |

252| :------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

253| `dependency-unsatisfied` | Объявленная зависимость не установлена, или она установлена, но отключена. | Запустите команду `claude plugin install`, показанную в сообщении об ошибке. Если marketplace зависимости еще не настроен, добавьте его с помощью `claude plugin marketplace add`, и Claude Code разрешит зависимость автоматически. Если зависимость отключена, включите её. |

254| `range-conflict` | Требования к версии для зависимости не могут быть объединены. Сообщение об ошибке указывает причину: ни одна версия не удовлетворяет всем диапазонам, диапазон не является действительным синтаксисом semver, или объединенные диапазоны слишком сложны для пересечения. | Удалите или обновите один из конфликтующих плагинов, исправьте любую неправильную строку `version`, упростите длинные цепочки `\|\|` или попросите вышестоящего автора расширить его ограничение. |

255| `dependency-version-unsatisfied` | Версия установленной зависимости находится вне объявленного диапазона этого плагина. | Запустите `claude plugin install <dependency>@<marketplace>` для повторного разрешения зависимости относительно всех текущих ограничений. |

256| `no-matching-tag` | Репозиторий зависимости не имеет тега `{name}--v*`, удовлетворяющего диапазону. | Проверьте, что вышестоящий помечен выпусками, используя соглашение выше, или ослабьте ваш диапазон. |

257 

258Чтобы проверить эти ошибки программно, запустите `claude plugin list --json`. Плагины с проблемами включают поле `errors`, в котором они перечислены. Плагины, которые загрузились без ошибок, опускают это поле.

259 

260<h2 id="see-also">

261 См. также

262</h2>

263 

264* [Создание плагинов](/docs/ru/plugins): создавайте плагины с skills, agents и hooks

265* [Создание и распространение marketplace плагинов](/docs/ru/plugin-marketplaces): размещайте плагины для вашей команды

266* [Справочник плагинов](/docs/ru/plugins-reference#plugin-manifest-schema): полная схема `plugin.json`

267* [Управление версиями](/docs/ru/plugins-reference#version-management): как разрешается версия самого плагина и используется в качестве ключа кэша

plugin-evals.md +88 −37

Details

6 6 

7> Напишите eval-кейсы для вашего Claude Code plugin, запустите их с помощью claude plugin eval, оцените результаты, сравните с базовым вариантом без plugin и установите ограничение CI на основе оценки.7> Напишите eval-кейсы для вашего Claude Code plugin, запустите их с помощью claude plugin eval, оцените результаты, сравните с базовым вариантом без plugin и установите ограничение CI на основе оценки.

8 8 

9`claude plugin eval` запускает ваш [plugin](/docs/ru/plugins) на наборе тестовых кейсов и оценивает результаты. Каждый кейс — это реалистичный запрос плюс один или несколько graders. Grader — это проверка pass/fail того, что произвел Claude, например регулярное выражение для ответа, был ли вызван конкретный инструмент или рубрика, которую вторая модель оценивает в ответе.9Команда `claude plugin eval` запускает ваш [plugin](/docs/ru/plugins/overview) на наборе тестовых кейсов и оценивает результаты. Каждый кейс — это реалистичный запрос плюс один или несколько graders. Grader — это проверка pass/fail того, что произвел Claude, например регулярное выражение для ответа, был ли вызван конкретный инструмент или рубрика, которую вторая модель оценивает в ответе.

10 10 

11Вам не нужно писать набор вручную; `claude plugin eval init` спрашивает вас о вашем plugin, предлагает кейсы и graders, пробует их и записывает файлы, и вы можете попросить Claude сделать то же самое из уже открытой сессии.11Вам не нужно писать набор вручную; `claude plugin eval init` спрашивает вас о вашем plugin, предлагает кейсы и graders, пробует их и записывает файлы, и вы можете попросить Claude сделать то же самое из уже открытой сессии.

12 12 

13Используйте evals для измерения того, насколько надежно ваш plugin направляет Claude к правильному результату, для выявления регрессий при изменении plugin или выпуске новой модели, и для того, чтобы увидеть, что plugin вносит в сравнении с отсутствием plugin.13Используйте evals для:

14 14 

15Эта страница предназначена для авторов plugin и skills, у которых есть работающий plugin и которые хотят протестировать его поведение, а также для команд, которые ограничивают изменения plugin в CI. Формат кейса отличается от файла `evals/evals.json`, который использует [skill-creator plugin](/docs/ru/skills#run-evals-with-skill-creator). Чтобы создать plugin, см. [Create plugins](/docs/ru/plugins); чтобы проверить файлы plugin на синтаксические и схемные ошибки, а не его поведение, используйте [`claude plugin validate`](/docs/ru/plugins-reference#plugin-validate).15* Измерения того, насколько надежно ваш plugin направляет Claude к правильному результату

16* Выявления регрессий при изменении plugin или выпуске новой модели

17* Определения того, что plugin вносит в сравнении с отсутствием plugin

18 

19Эта страница предназначена для авторов plugin и skills, у которых есть работающий plugin и которые хотят протестировать его поведение, а также для команд, которые ограничивают изменения plugin в CI. Формат кейса отличается от файла `evals/evals.json`, который использует [skill-creator plugin](/docs/ru/skills#run-evals-with-skill-creator). Чтобы создать plugin, см. [Create a plugin](/docs/ru/plugins/create); чтобы проверить файлы plugin на синтаксические и схемные ошибки, а не его поведение, используйте [`claude plugin validate`](/docs/ru/plugins/cli-reference#plugin-validate).

16 20 

17<Note>21<Note>

18 Каждый запуск eval и каждый judge grader — это реальный вызов модели на вашем аккаунте, учитываемый в использовании вашего плана или счете API, поэтому сначала проверьте [требования](#requirements). Затем [создайте свой первый eval suite](#create-your-first-eval-suite) или перейдите к [Run evals in CI](#run-evals-in-ci), если у вас уже есть один.22 Каждый запуск eval и каждый judge grader — это реальный вызов модели на вашем аккаунте, учитываемый в использовании вашего плана или счете API, поэтому сначала проверьте [требования](#requirements). Затем [создайте свой первый eval suite](#create-your-first-eval-suite) или перейдите к [Run evals in CI](#run-evals-in-ci), если у вас уже есть один.


25Для запуска plugin evals вам нужно:29Для запуска plugin evals вам нужно:

26 30 

27* Claude Code v2.1.269 или позже. Запустите `claude --version` для проверки и `claude update` для обновления.31* Claude Code v2.1.269 или позже. Запустите `claude --version` для проверки и `claude update` для обновления.

28* Директория plugin с манифестом `plugin.json` или `.claude-plugin/plugin.json`, или [skills-directory plugin](/docs/ru/plugins-reference#skills-directory-plugins).32* Директория plugin с манифестом `plugin.json` или `.claude-plugin/plugin.json`, или [skills-directory plugin](/docs/ru/plugins/loading#plugins-shared-through-a-repository).

29* Та же аутентификация и поставщик модели, которые используют ваши обычные Claude Code сессии. Запуски eval, graders, оцениваемые judge, и `claude plugin eval init` вызывают модель с вашими учетными данными, поэтому они учитываются в пределах использования вашего плана или счета API. Когда команда сообщает стоимость, цифра — это [оценка по прейскуранту](/docs/ru/costs) этих вызовов.33* Та же аутентификация и поставщик модели, которые используют ваши обычные Claude Code сессии. Запуски eval, graders, оцениваемые judge, и `claude plugin eval init` вызывают модель с вашими учетными данными, поэтому они учитываются в пределах использования вашего плана или счета API. Когда команда сообщает стоимость, цифра — это [оценка по прейскуранту](/docs/ru/costs) этих вызовов.

30 34 

31<h2 id="how-an-eval-run-works">35<h2 id="how-an-eval-run-works">


50 The no-plugin baseline54 The no-plugin baseline

51</h3>55</h3>

52 56 

53Высокая оценка сама по себе не говорит вам, что plugin помог, потому что Claude может работать так же хорошо без него. Чтобы разделить эти два, запуски каждого case по умолчанию повторяются без загруженного plugin, и вы получаете две оценки, `WITH` и `W/OUT`. Их разница, `Δ`, — это то, что внес plugin. Если case оценивается в 1.0 как с plugin, так и без него, plugin не является тем, что заставило его пройти. Два набора запусков называются with-arm и without-arm; [Compare against a no-plugin baseline](#compare-against-a-no-plugin-baseline) охватывает, как graders оцениваются в обоих arms и как отключить baseline.57Высокая оценка сама по себе не говорит вам, что plugin помог, потому что Claude может работать так же хорошо без него. Чтобы разделить эти два, запуски каждого case по умолчанию повторяются без загруженного plugin, и вы получаете две оценки, `WITH` и `W/OUT`. Их разница, `Δ`, — это то, что внес plugin. Если case оценивается в 1.0 как с plugin, так и без него, plugin не является тем, что заставило его пройти.

58 

59Два набора запусков называются with-arm и without-arm; [Score against the no-plugin baseline](#compare-against-a-no-plugin-baseline) охватывает, как graders оцениваются в обоих arms и как отключить baseline.

54 60 

55<h2 id="create-your-first-eval-suite">61<h2 id="create-your-first-eval-suite">

56 Создайте свой первый eval suite62 Создайте свой первый eval suite


184FAIL if <what a wrong or missing response looks like>.190FAIL if <what a wrong or missing response looks like>.

185```191```

186 192 

187Затем добавьте второй grader, который проверяет, является ли ваш skill тем, что произвел ответ. Создайте `evals/first-case/graders/skill-fired.md`, заменив `your-skill-name` на `name` из `SKILL.md` вашего skill:193Затем добавьте второй grader, который проверяет, является ли ваш skill тем, что произвел ответ. Создайте `evals/first-case/graders/skill-fired.md`, заменив `your-skill-name` на имя директории skill под `skills/`, которое является именем, по которому Claude его вызывает:

188 194 

189```markdown theme={null}195```markdown theme={null}

190---196---


194---200---

195```201```

196 202 

197Это проходит, когда Claude вызвал этот skill хотя бы один раз во время запуска, включая его форму с пространством имен `plugin-name:skill-name`. [Grader types](#grader-types) перечисляет другие доступные проверки, такие как сопоставление регулярного выражения или подтверждение создания файла.203Это проходит, когда Claude вызвал этот skill хотя бы один раз во время запуска, включая его форму с пространством имен `plugin-name:skill-name`.

204 

205[Grader types](#grader-types) перечисляет другие доступные проверки, такие как сопоставление регулярного выражения или подтверждение создания файла.

198 206 

199С обоими сохраненными файлами запустите кейс так, как это делает [quickstart](#create-your-first-eval-suite), с `claude plugin eval .` из корня plugin.207С обоими сохраненными файлами запустите кейс так, как это делает [quickstart](#create-your-first-eval-suite), с `claude plugin eval .` из корня plugin.

200 208 


202 Установите лимиты запуска и инструменты в prompt.md210 Установите лимиты запуска и инструменты в prompt.md

203</h3>211</h3>

204 212 

205Установите `max_turns`, `timeout_seconds`, `model`, `tags` кейса и `allowed_tools`, которые он может использовать в frontmatter `prompt.md`; справочник [prompt.md frontmatter](#prompt-md-fields) перечисляет каждое поле и его значение по умолчанию. Claude получает body ровно так, как вы его написали. Упоминания `@path` в нем не расширяются в вложения файлов, поэтому, если Claude нужно прочитать файл, предоставьте инструмент для него в `allowed_tools`.213Установите `max_turns`, `timeout_seconds`, `model`, `tags` кейса и `allowed_tools`, которые он может использовать в frontmatter `prompt.md`; справочник [prompt.md frontmatter](#prompt-md-fields) перечисляет каждое поле и его значение по умолчанию.

214 

215Claude получает body ровно так, как вы его написали. Упоминания `@path` в нем не расширяются в вложения файлов, поэтому, если Claude нужно прочитать файл, предоставьте инструмент для него в `allowed_tools`.

206 216 

207<h3 id="grade-the-result">217<h3 id="grade-the-result">

208 Выберите и взвесьте graders218 Выберите и взвесьте graders


210 220 

211Frontmatter grader устанавливает его `type` и опционально `weight`, который делает его более значимым в оценке запуска, и [`arm`](#compare-against-a-no-plugin-baseline), который контролирует, как он оценивается в сравнении с базовым вариантом. Из шести типов `regex`, `tool_used`, `tool_order` и `file_exists` вычисляются из транскрипта и файлов и ничего не стоят, в то время как `llm` и `baseline` вызывают judge модель и добавляют к стоимости запуска.221Frontmatter grader устанавливает его `type` и опционально `weight`, который делает его более значимым в оценке запуска, и [`arm`](#compare-against-a-no-plugin-baseline), который контролирует, как он оценивается в сравнении с базовым вариантом. Из шести типов `regex`, `tool_used`, `tool_order` и `file_exists` вычисляются из транскрипта и файлов и ничего не стоят, в то время как `llm` и `baseline` вызывают judge модель и добавляют к стоимости запуска.

212 222 

213Нет custom-code graders. [Grader types](#grader-types) перечисляет опции каждого типа и условие прохождения, и [what a grader can look at](#what-a-grader-can-look-at) перечисляет значения, которые принимают `target` и `focus`.223Нет custom-code graders.

224 

225[Grader types](#grader-types) перечисляет опции каждого типа и условие прохождения, и [what a grader can look at](#what-a-grader-can-look-at) перечисляет значения, которые принимают `target` и `focus`.

214 226 

215Judge для `llm` и `baseline` graders по умолчанию — это небольшая быстрая модель. Передайте `--judge-model sonnet` или полный ID модели, чтобы использовать более сильную для нюансированных рубрик.227Judge для `llm` и `baseline` graders по умолчанию — это небольшая быстрая модель. Передайте `--judge-model sonnet` или полный ID модели, чтобы использовать более сильную для нюансированных рубрик.

216 228 


229 Оцените в сравнении с базовым вариантом без plugin241 Оцените в сравнении с базовым вариантом без plugin

230</h3>242</h3>

231 243 

232Когда plugin находится под тестом, каждый кейс по умолчанию запускается в двух arms. With-arm — это его запуски с загруженным plugin, а without-arm — это то же количество запусков без plugin. Сводка и отчет показывают обе оценки и `Δ`, оценку with-arm минус оценку without-arm. Передайте `--ablation none`, чтобы запустить только with-arm, что вдвое снижает стоимость, когда вам не нужно сравнение, например при повторении graders.244Когда plugin находится под тестом, каждый кейс по умолчанию запускается в двух arms. With-arm — это его запуски с загруженным plugin, а without-arm — это то же количество запусков без plugin вообще. Сводка и отчет показывают обе оценки и `Δ`, оценку with-arm минус оценку without-arm.

245 

246Передайте `--ablation none`, чтобы запустить только with-arm, что вдвое снижает стоимость, когда вам не нужно сравнение, например при повторении graders.

233 247 

234В двухarm запуске некоторые graders сообщаются с `scored: false`. Проверка типа "skill был вызван" никогда не может пройти без plugin, поэтому подсчет ее толкнул бы without-arm к нулю и завысил бы `Δ`. Чтобы держать два arms сравнимыми, Claude Code исключает такие graders из оценки в обоих arms и сообщает их в with-arm только как индикаторы pass/fail. Это включает:248В двухarm запуске некоторые graders сообщаются с `scored: false`. Проверка типа "skill был вызван" никогда не может пройти без plugin, поэтому подсчет ее толкнул бы without-arm к нулю и завысил бы `Δ`. Чтобы держать два arms сравнимыми, Claude Code исключает такие graders из оценки в обоих arms и сообщает их в with-arm только как индикаторы pass/fail. Это включает:

235 249 

236* Каждый `tool_used` grader, чей `tool` — это `Skill`250* Каждый `tool_used` grader, чей `tool` — это `Skill`

251* Каждый `regex` grader с `target: mock_calls` и каждый `llm` grader с `focus: mock_calls`, когда каждый [mocked server](#mock-mcp-servers) в кейсе — это один, который объявляет ваш plugin

237* Любой grader, который вы отметили `arm: with-only`252* Любой grader, который вы отметили `arm: with-only`

238 253 

239Если каждый grader в кейсе — это один из них, они вместо этого оцениваются нормально, так как не осталось бы ничего для оценки. Установите `arm: both` на grader, чтобы оценить его в обоих arms независимо, что вам нужно для проверки "не должен вызывать skill" с `min: 0` и `max: 0`. Под `--ablation none` ничего не исключается, поэтому одна и та же suite может производить разную абсолютную оценку в двух режимах.254Три параметра изменяют это исключение:

255 

256* **Каждый grader исключен**: если каждый grader в кейсе — это один из них, они вместо этого оцениваются нормально, так как не осталось бы ничего для оценки.

257* **`arm: both`**: установите `arm: both` на grader, чтобы оценить его в обоих arms независимо, что вам нужно для проверки "не должен вызывать skill" с `min: 0` и `max: 0`.

258* **`--ablation none`**: под `--ablation none` ничего не исключается, поэтому одна и та же suite может производить разную абсолютную оценку в двух режимах.

240 259 

241<h3 id="use-a-different-eval-directory">260<h3 id="use-a-different-eval-directory">

242 Используйте другую директорию eval261 Используйте другую директорию eval


247* **В `plugin.json`**: добавьте `"experimental": { "evals": "quality/evals" }`.266* **В `plugin.json`**: добавьте `"experimental": { "evals": "quality/evals" }`.

248* **В командной строке**: передайте `--eval-dir quality/evals` как `claude plugin eval`, так и `claude plugin eval init`.267* **В командной строке**: передайте `--eval-dir quality/evals` как `claude plugin eval`, так и `claude plugin eval init`.

249 268 

250Если вы установите оба, используется директория флага. Дайте относительный путь из простых имен директорий, таких как `qa` или `quality/evals`; абсолютный путь или содержащий `..` отклоняется: как значение флага это ошибка, в то время как неиспользуемое значение манифеста выводит строку `Warning:` и запуск использует `evals/` вместо этого. Кейсы, результаты и вывод `init` все перемещаются в эту директорию.269Если вы установите оба, используется директория флага. Дайте относительный путь из простых имен директорий, таких как `qa` или `quality/evals`. Абсолютный путь или содержащий `..` не принимается: как значение флага это ошибка, в то время как неиспользуемое значение манифеста выводит строку `Warning:` и запуск использует `evals/` вместо этого. Кейсы, результаты и вывод `init` все перемещаются в эту директорию.

251 270 

252<h2 id="set-up-fixtures-and-mocks">271<h2 id="set-up-fixtures-and-mocks">

253 Установите fixtures и mocks272 Установите fixtures и mocks


259 Заполните workspace или разговор278 Заполните workspace или разговор

260</h3>279</h3>

261 280 

262Каждый запуск начинается в пустом workspace. Когда кейс нуждается в большем, чем prompt, добавьте `case.yaml` рядом с `prompt.md` с блоком `context`.281Каждый запуск начинается в пустом workspace. Когда кейс нуждается в большем, чем prompt, добавьте `case.yaml` рядом с `prompt.md` с блоком `context`:

263 282 

264Чтобы сначала создать файлы fixtures или git репозиторий, напишите Bash скрипт в директории кейса и назовите его в `context.scaffold_script`. Скрипт запускается как вы, вне sandbox агента, и только когда вы передаете `--scaffold`, поэтому передавайте этот флаг только для suites, которые вы или ваша организация написали. Чтобы продолжить более ранний разговор, сохраните транскрипт как файл `.jsonl` и назовите его в `context.history_file`, и prompt кейса становится следующим ходом пользователя. Чтобы позволить Claude читать директории fixtures в кейсе во время запуска, перечислите их в `context.add_dirs`.283* **Файлы fixtures или git репозиторий**: напишите Bash скрипт в директории кейса и назовите его в `context.scaffold_script`. Скрипт запускается как вы, вне sandbox агента, и только когда вы передаете `--scaffold`, поэтому передавайте этот флаг только для suites, которые вы или ваша организация написали.

284* **Более ранний разговор для продолжения**: сохраните транскрипт как файл `.jsonl` и назовите его в `context.history_file`, и prompt кейса становится следующим ходом пользователя.

285* **Директории fixtures, которые Claude может читать во время запуска**: перечислите их в `context.add_dirs`.

265 286 

266`case.yaml` также нуждается в `schema_version: "1.1"` и `name`; справочник [case.yaml fields](#case-yaml-fields) содержит полный список.287`case.yaml` также нуждается в `schema_version: "1.1"` и `name`; справочник [case.yaml fields](#case-yaml-fields) содержит полный список.

267 288 


280 Mock MCP серверы301 Mock MCP серверы

281</h3>302</h3>

282 303 

283Вы можете оценить plugin, чьи skills вызывают MCP инструменты без реального сервиса позади них. Поместите один Markdown файл на инструмент под `evals/mocks/<server>/<tool>.md` для всей suite или под собственную директорию `mocks/` кейса для одного кейса, где `<server>` — это имя сервера в [MCP конфигурации](/docs/ru/plugins-reference#mcp-servers) вашего plugin.304Вы можете оценить plugin, чьи skills вызывают MCP инструменты без реального сервиса позади них. Поместите один Markdown файл на инструмент под `evals/mocks/<server>/<tool>.md` для всей suite или под собственную директорию `mocks/` кейса для одного кейса, где `<server>` — это имя сервера в [MCP конфигурации](/docs/ru/plugins/components#mcp-servers) вашего plugin.

284 305 

285Запуск никогда не запускает реальные MCP серверы вашего plugin, если вы не попросите. Claude Code регистрирует stand-in под каждым именем сервера. Инструменты с файлом mock отвечают из него и разрешены без гранта `--allow-tools`, и инструмент без файла mock недоступен Claude. Сервер без mocks вообще появляется в строке прогресса кейса как `plugin_<plugin>_<server>[not started: no mock]`.306Запуск никогда не запускает реальные MCP серверы вашего plugin, если вы не попросите. Claude Code регистрирует substitute server под каждым именем сервера. Инструменты с файлом mock отвечают из него и разрешены без гранта `--allow-tools`, и инструмент без файла mock недоступен Claude. Сервер без mocks вообще появляется в строке прогресса кейса как `plugin_<plugin>_<server>[not started: no mock]`.

286 307 

287Body файла — это то, что инструмент возвращает Claude. Этот mock стоит на месте инструмента `create_issue` на сервере с именем `tracker`, проверяет input, который Claude отправляет, и эхо-возвращает заголовок. Сохраните его как `evals/mocks/tracker/create_issue.md`:308Body файла — это то, что инструмент возвращает Claude. Этот mock стоит на месте инструмента `create_issue` на сервере с именем `tracker`, проверяет input, который Claude отправляет, и эхо-возвращает заголовок. Сохраните его как `evals/mocks/tracker/create_issue.md`:

288 309 


296Created issue #4821: {{input.title}}317Created issue #4821: {{input.title}}

297```318```

298 319 

299Вставьте поля из input вызова с `{{input.<field>}}` и содержимое файла fixture рядом с mock с `{{file:fixtures/{input.<field>}.json}}`. Блок `expect:` охраняет input. Если вызов нарушает его, запуск прерывается с оценкой 0 и записывает почему, поэтому кейс может утверждать, что ваш plugin попросил сервер сделать. Установите `error: true`, чтобы вернуть body как ошибку инструмента вместо этого, или `type: agent`, чтобы иметь небольшую модель ответить как сервер из инструкций в body. [mock file reference](#mock-files) перечисляет каждый ключ и файлы `_server.md` и `_tools.json`.320Body файла mock и frontmatter принимают эти опции:

321 

322* **Подстановки**: вставьте поля из input вызова с `{{input.<field>}}` и содержимое файла fixture рядом с mock с `{{file:fixtures/{input.<field>}.json}}`.

323* **`expect:`**: блок `expect:` охраняет input. Если вызов нарушает его, запуск прерывается с оценкой 0 и записывает почему, поэтому кейс может утверждать, что ваш plugin попросил сервер сделать.

324* **`error: true`**: установите `error: true`, чтобы вернуть body как ошибку инструмента вместо этого.

325* **`type: agent`**: установите `type: agent`, чтобы иметь небольшую модель ответить как сервер из инструкций в body.

326 

327Справочник [mock file reference](#mock-files) перечисляет каждый ключ и файлы `_server.md` и `_tools.json`.

300 328 

301Чтобы оценить сами вызовы, укажите grader на `target: mock_calls`.329Чтобы оценить сами вызовы, укажите grader на `target: mock_calls`.

302 330 


330| Корневая директория plugin, такая как `.` | Каждый кейс под его директорией eval с этим plugin загруженным |358| Корневая директория plugin, такая как `.` | Каждый кейс под его директорией eval с этим plugin загруженным |

331| Один файл `prompt.md` или `case.yaml` | Этот кейс с его заключающим plugin загруженным |359| Один файл `prompt.md` или `case.yaml` | Этот кейс с его заключающим plugin загруженным |

332| Установленный plugin по имени, `name` или `name@marketplace` | Кейсы в копии установленного plugin директории eval с установленной копией загруженной. Результаты записываются под `./evals/results/` в вашей текущей директории или `./<dir>/results/` с `--eval-dir` |360| Установленный plugin по имени, `name` или `name@marketplace` | Кейсы в копии установленного plugin директории eval с установленной копией загруженной. Результаты записываются под `./evals/results/` в вашей текущей директории или `./<dir>/results/` с `--eval-dir` |

333| `name@skills-dir` | То же самое для [skills-directory plugin](/docs/ru/plugins-reference#skills-directory-plugins) |361| `name@skills-dir` | То же самое для [skills-directory plugin](/docs/ru/plugins/loading#plugins-shared-through-a-repository) |

334| Опущено | Текущая директория как путь |362| Опущено | Текущая директория как путь |

335 363 

336Добавьте `--case <glob>` для фильтрации по имени кейса и `--tag <tag>` для сохранения кейсов с любыми из данных тегов. Поместите target перед `--tag`, `--allow-tools` и `--json`. Первые два принимают список и `--json` принимает опциональный путь, поэтому каждый из них читает target, который следует как его собственное значение.364Добавьте `--case <glob>` для фильтрации по имени кейса и `--tag <tag>` для сохранения кейсов с любыми из данных тегов.

365 

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

337 367 

338<h3 id="grant-tools">368<h3 id="grant-tools">

339 Предоставьте инструменты369 Предоставьте инструменты


341 371 

342Запуски никогда не останавливаются, чтобы попросить разрешение. Встроенные инструменты, которые нуждаются в гранте, который вы не дали, такие как `Bash`, `Write`, `Edit`, `WebFetch` и `WebSearch`, удаляются из сессии, поэтому Claude не может их вызывать вообще.372Запуски никогда не останавливаются, чтобы попросить разрешение. Встроенные инструменты, которые нуждаются в гранте, который вы не дали, такие как `Bash`, `Write`, `Edit`, `WebFetch` и `WebSearch`, удаляются из сессии, поэтому Claude не может их вызывать вообще.

343 373 

344Allowlist — это инструменты только для чтения, которые кейс перечисляет в `allowed_tools`, из `Read`, `Glob`, `Grep`, `NotebookRead`, `Skill`, `Agent`, `TodoWrite` и инструменты задач `TaskCreate`, `TaskGet`, `TaskList`, `TaskUpdate` и `TaskStop`, плюс все, что вы предоставляете с `--allow-tools`. Этот грант применяется к каждому кейсу в запуске. Чтобы позволить кейсам использовать `Bash`, `Write`, `Edit`, `WebFetch` или `WebSearch`, предоставьте их сами:374Запуск позволяет только инструменты только для чтения, которые кейс перечисляет в `allowed_tools`, из `Read`, `Glob`, `Grep`, `NotebookRead`, `Skill`, `AskUserQuestion`, `Agent`, `TodoWrite` и инструменты задач `TaskCreate`, `TaskGet`, `TaskList`, `TaskUpdate` и `TaskStop`, плюс все, что вы предоставляете с `--allow-tools`. Этот грант применяется к каждому кейсу в запуске. Чтобы позволить кейсам использовать `Bash`, `Write`, `Edit`, `WebFetch` или `WebSearch`, предоставьте их сами:

345 375 

346```bash theme={null}376```bash theme={null}

347claude plugin eval . --allow-tools Write Edit "Bash(npm test *)"377claude plugin eval . --allow-tools Write Edit "Bash(npm test *)"

348```378```

349 379 

350Когда кейс попросил инструмент, который вы не предоставили, запуск перечисляет его на stderr как `not granted`. Инструменты на [замокированном](#mock-mcp-servers) MCP сервере не нуждаются в гранте. Инструменты на реальном plugin MCP сервере нуждаются как в запущенном сервере, с `--allow-real-servers` или `--mocks off`, так и в гранте по имени, такой как `--allow-tools "mcp__plugin_my-plugin_github__*"`; инструменты MCP plugin названы `mcp__plugin_<plugin>_<server>__<tool>`.380Когда кейс попросил инструмент, который вы не предоставили, вывод прогресса перечисляет его как `not granted`. Инструменты на [замокированном](#mock-mcp-servers) MCP сервере не нуждаются в гранте. Инструменты на реальном plugin MCP сервере нуждаются как в запущенном сервере, с `--allow-real-servers` или `--mocks off`, так и в гранте по имени, такой как `--allow-tools "mcp__plugin_my-plugin_github__*"`; инструменты MCP plugin названы `mcp__plugin_<plugin>_<server>__<tool>`.

351 381 

352Когда вы предоставляете `Bash` в любой форме, каждая команда запускается под Claude Code [OS-level sandbox](/docs/ru/sandboxing). Записи ограничены workspace запуска, ваша домашняя директория и конфигурация Claude Code нечитаемы, и доступ в сеть ограничен доменами, которые вы предоставляете с `--allow-tools "WebFetch(domain:example.com)"`. Если вы предоставляете Bash или PowerShell на машине без backend sandbox, Claude Code отказывает каждому запуску вместо его запуска без ограничений, и кейс показывает ошибку запуска и обычно оценивается в 0. Native Windows не имеет backend, поэтому запустите suites, предоставляющие shell, под WSL2; на Linux сначала установите `bubblewrap` и `socat`. См. [sandboxing prerequisites](/docs/ru/sandboxing).382Когда вы предоставляете `Bash` в любой форме, каждая команда запускается под Claude Code [OS-level sandbox](/docs/ru/sandboxing). Записи ограничены workspace запуска, ваша домашняя директория и конфигурация Claude Code нечитаемы, и доступ в сеть ограничен доменами, которые вы предоставляете с `--allow-tools "WebFetch(domain:example.com)"`. Если вы предоставляете Bash или PowerShell на машине без backend sandbox, Claude Code отказывает каждому запуску вместо его запуска без ограничений, и кейс показывает ошибку запуска и обычно оценивается в 0. Native Windows не имеет backend, поэтому запустите suites, предоставляющие shell, под WSL2; на Linux сначала установите `bubblewrap` и `socat`. См. [sandboxing prerequisites](/docs/ru/sandboxing).

353 383 


404| 130 | Прервано. Частичные результаты написаны |434| 130 | Прервано. Частичные результаты написаны |

405| 143 | Завершено, такое как timeout CI |435| 143 | Завершено, такое как timeout CI |

406 436 

407Проблемы с написанием или публикацией HTML отчета никогда не изменяют exit код. Чтобы увидеть, почему кейс оценен низко, запустите его локально без `--json`, чтобы строки прогресса per-run и grader печатались.437Проблемы с написанием или публикацией HTML отчета никогда не изменяют exit код.

438 

439Чтобы увидеть, почему кейс оценен низко, запустите его локально без `--json`, чтобы строки прогресса per-run и grader печатались.

408 440 

409CI runner нуждается в Claude Code установке и [учетных данных в окружении](/docs/ru/authentication), такие как `ANTHROPIC_API_KEY`. Без `--trust-plugin` работа, чья директория checkout Claude Code еще не доверяет, отказана с exit 1, когда она не имеет терминала, или ждет на запросе, когда runner выделяет один. `claude plugin eval init` нуждается в терминале, чтобы задать вам его вопросы; в CI запустите `claude plugin eval init --bare <name>`, чтобы получить пустой шаблон.441CI runner также нуждается в этом на месте:

442 

443* **Установка и учетные данные**: CI runner нуждается в Claude Code установке и [учетных данных в окружении](/docs/ru/authentication), такие как `ANTHROPIC_API_KEY`.

444* **Доверие**: без `--trust-plugin`, работа, чья директория checkout Claude Code еще не доверяет, нуждается в [первом запросе доверия](#security), и запуск, который не может спросить, отказан с exit 1.

445* **`init` в CI**: `claude plugin eval init` нуждается в терминале, чтобы задать вам его вопросы; в CI запустите `claude plugin eval init --bare <name>`, чтобы получить пустой шаблон.

410 446 

411Чтобы держать стоимости предсказуемыми, дайте быстрым every-change suites только graders, которые не вызывают judge, используйте `--ablation none`, где вам не нужно `Δ`, и оставьте `partial: true` документы и запуски с `skippedPaidGraders` вне любого тренда, который вы составляете.447Чтобы держать стоимости предсказуемыми, дайте быстрым every-change suites только graders, которые не вызывают judge, используйте `--ablation none`, где вам не нужно `Δ`, и оставьте `partial: true` документы и запуски с `skippedPaidGraders` вне любого тренда, который вы составляете.

412 448 


461 Что может получить доступ запуск497 Что может получить доступ запуск

462</h2>498</h2>

463 499 

464`claude plugin eval` загружает skills, hooks и agents целевого плагина и запускает его набор тестов на вашей машине от вашего имени. Указание на плагин — это то же самое решение о доверии, что и `claude --plugin-dir`, поэтому оценивайте только плагины, которым вы доверяете. Изоляция, описанная в этом разделе, ограничивает то, что может достичь тестируемый агент; это не граница против собственного кода плагина, и набор, который проходит, ничего не говорит о том, безопасен ли плагин.500`claude plugin eval` загружает skills, hooks и agents целевого плагина и запускает его набор тестов на вашей машине от вашего имени. Указание на плагин — это то же самое решение о доверии, что и `claude --plugin-dir`, поэтому оценивайте только плагины, которым вы доверяете.

501 

502Изоляция, описанная в этом разделе, ограничивает то, что может достичь тестируемый агент; это не граница против собственного кода плагина, и набор, который проходит, ничего не говорит о том, безопасен ли плагин.

465 503 

466<h3 id="trust-the-plugin-directory">504<h3 id="trust-the-plugin-directory">

467 Доверяйте директории плагина505 Доверяйте директории плагина

468</h3>506</h3>

469 507 

470При первом запуске `claude plugin eval` для директории Claude Code спрашивает `Trust this plugin directory?` перед загрузкой чего-либо из неё, если вы уже не приняли приглашение доверия там в интерактивном сеансе `claude`. Внутри репозитория git ответ «да» доверяет всему репозиторию, также для интерактивных сеансов. Когда stdin или stdout не является терминалом или под `--json`, запуск не может спросить и отказывается с выходом 1; передайте `--trust-plugin`, чтобы утвердить доверие самостоятельно, только для плагина, который вы бы запустили на своей машине. Цель, которую вы называете, а не даёте как путь, то есть установленный плагин или плагин из директории skills, пропускает приглашение.508При первом запуске `claude plugin eval` для директории Claude Code спрашивает `Trust this plugin directory?` перед загрузкой чего-либо из неё, если вы уже не приняли приглашение доверия там в интерактивном сеансе `claude`. Внутри репозитория git ответ «да» доверяет всему репозиторию, также для интерактивных сеансов. Когда stdin или stdout не является терминалом, под `--json`, или когда переменная окружения `CI` установлена на значение true, такое как `true`, запуск не может спросить и отказывается с выходом 1; передайте `--trust-plugin`, чтобы утвердить доверие самостоятельно, только для плагина, который вы бы запустили на своей машине. Цель, которую вы называете, а не даёте как путь, то есть установленный плагин или плагин из директории skills, пропускает приглашение.

471 509 

472Некоторые части плагина и набора запускаются только при передаче их флага для этого запуска: [`scaffold_script`](#add-setup-or-history-with-case-yaml) случая с `--scaffold`, [tools за пределами набора только для чтения](#grant-tools) с `--allow-tools` и [реальные MCP серверы](#mock-mcp-servers) плагина с `--allow-real-servers` или `--mocks off`. `allowed_tools` случая и собственный frontmatter `allowed-tools` skill не могут расширить ни один из них. Когда плагин поставляется с hooks, которые вы не писали, или вы запускаете его реальные MCP серверы, рассматривайте его оценки как рекомендательные, если вы не запустили его в изолированной среде, такой как контейнер или CI runner, поскольку hooks и серверы работают вне sandbox агента и могут касаться файлов, которые читают грейдеры.510Некоторые части плагина и набора запускаются только при передаче их флага для этого запуска:

511 

512* [`scaffold_script`](#add-setup-or-history-with-case-yaml) случая с `--scaffold`

513* [Tools за пределами набора только для чтения](#grant-tools) с `--allow-tools`

514* [Реальные MCP серверы](#mock-mcp-servers) плагина с `--allow-real-servers` или `--mocks off`

515 

516`allowed_tools` случая и собственный frontmatter `allowed-tools` skill не могут расширить ни один из них.

517 

518Когда плагин поставляется с hooks, которые вы не писали, или вы запускаете его реальные MCP серверы, рассматривайте его оценки как рекомендательные, если вы не запустили его в изолированной среде, такой как контейнер или CI runner, поскольку hooks и серверы работают вне sandbox агента и могут изменять файлы, которые читают грейдеры.

473 519 

474<h3 id="how-runs-are-isolated">520<h3 id="how-runs-are-isolated">

475 Как запуски изолированы521 Как запуски изолированы


556Каждый файл оценщика под `graders/` принимает эти ключи в frontmatter, плюс опции для его типа. Имя оценщика — это имя файла без `.md`:602Каждый файл оценщика под `graders/` принимает эти ключи в frontmatter, плюс опции для его типа. Имя оценщика — это имя файла без `.md`:

557 603 

558| Ключ | По умолчанию | Назначение |604| Ключ | По умолчанию | Назначение |

559| :------- | :------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |605| :------- | :------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

560| `type` | требуется | Один из [типов оценщиков](#grader-types) |606| `type` | требуется | Один из [типов оценщиков](#grader-types) |

561| `weight` | `1` | Относительный вес в оценке запуска. Любое положительное число |607| `weight` | `1` | Относительный вес в оценке запуска. Любое положительное число |

562| `arm` | не установлено | `with-only` исключает оценщика из оценки в [двухветвевом запуске](#compare-against-a-no-plugin-baseline); `both` заставляет оценщика `tool_used: Skill` оцениваться в обеих ветвях |608| `arm` | не установлено | `with-only` исключает оценщика из оценки в [двухветвевом запуске](#compare-against-a-no-plugin-baseline); `both` заставляет оценщика Claude Code, который иначе исключил бы, оцениваться в обеих ветвях |

563 609 

564<h4 id="what-a-grader-can-look-at">610<h4 id="what-a-grader-can-look-at">

565 Что может видеть оценщик611 Что может видеть оценщик


614 Troubleshooting660 Troubleshooting

615</h2>661</h2>

616 662 

617Это проблемы, которые авторы чаще всего встречают, ключевые на том, что вы видите.663Это проблемы, которые авторы встречают чаще всего, ключевые на том, что вы видите.

618 664 

619<h3 id="plugin-eval-is-currently-in-early-access">665<h3 id="plugin-eval-is-currently-in-early-access">

620 "plugin eval is currently in early access"666 "plugin eval is currently in early access"


632 "is not a trusted plugin directory, and this run cannot stop to ask you about it"678 "is not a trusted plugin directory, and this run cannot stop to ask you about it"

633</h3>679</h3>

634 680 

635Это первый запуск против директории, которой Claude Code еще не доверяет, и он не может спросить, потому что stdin или stdout не является терминалом или вы передали `--json`. Запустите `claude plugin eval <dir>` один раз в терминале и ответьте на запрос, или передайте `--trust-plugin`, если вы доверяете коду plugin и suite. См. [What a run can access](#security).681Это первый запуск против директории, которой Claude Code еще не доверяет, и он не может спросить, потому что stdin или stdout не является терминалом, вы передали `--json`, или переменная окружения `CI` установлена на значение true, такое как `true`. Запустите `claude plugin eval <dir>` один раз в терминале и ответьте на запрос, или передайте `--trust-plugin`, если вы доверяете коду plugin и suite. См. [What a run can access](#security).

636 682 

637<h3 id="no-eval-cases-found">683<h3 id="no-eval-cases-found">

638 "No eval cases found"684 "No eval cases found"


662 Everything scores zero although the right files were produced708 Everything scores zero although the right files were produced

663</h3>709</h3>

664 710 

665Ваши graders нацелены на `files`, список созданных путей, когда вы имели в виду содержимое файла. Используйте `{ source: file, path: <path> }` как `target` или `focus`. Отдельно, `file_exists` считает только файлы, созданные во время запуска, поэтому файл, который scaffold создал или который Claude только отредактировал, невидим для него; оцените его содержимое или используйте `tool_used` на `Edit`.711Ваши graders нацелены на `files`, список созданных путей, когда вы имели в виду содержимое файла. Используйте `{ source: file, path: <path> }` как `target` или `focus`.

712 

713Отдельно, `file_exists` считает только файлы, созданные во время запуска, поэтому файл, который scaffold создал или который Claude только отредактировал, невидим для него; оцените его содержимое или используйте `tool_used` на `Edit`.

666 714 

667<h3 id="a-regex-over-the-trace-doesn’t-match-text-i-can-see">715<h3 id="a-regex-over-the-trace-doesn’t-match-text-i-can-see">

668 A regex over the trace doesn't match text I can see716 A regex over the trace doesn't match text I can see

669</h3>717</h3>

670 718 

671Default `target` — это `last_message`, не trace. Когда вы действительно нацеливаетесь на `trace`, это JSON на строку, поэтому кавычки появляются как `\"`. Regexes используют JavaScript синтаксис, поэтому поместите `i` в `flags` вместо написания `(?i)`.719* **Wrong target**: default `target` — это `last_message`, не trace.

720* **JSON escaping**: когда вы действительно нацеливаетесь на `trace`, это JSON на строку, поэтому кавычки появляются как `\"`.

721* **Regex syntax**: regexes используют JavaScript синтаксис, поэтому поместите `i` в `flags` вместо написания `(?i)`.

672 722 

673<h3 id="tools-are-denied-mcp-tools-are-missing-or-bash-won’t-run">723<h3 id="tools-are-denied-mcp-tools-are-missing-or-bash-won’t-run">

674 Tools are denied, MCP tools are missing, or Bash won't run724 Tools are denied, MCP tools are missing, or Bash won't run


680 The run exits 1 but the results look fine730 The run exits 1 but the results look fine

681</h3>731</h3>

682 732 

683Default `--threshold` — это 1.0, поэтому команда выходит 1, когда любой кейс оценен ниже совершенства. Установите порог, который соответствует вашему стандарту. Exit 1 также охватывает файл кейса, который не загружен, который сообщается на stderr выше таблицы.733Default `--threshold` — это 1.0, поэтому команда выходит 1, когда любой кейс оценен ниже совершенства. Установите порог, который соответствует требуемой оценке. Exit 1 также охватывает файл кейса, который не загружен, который сообщается на stderr выше таблицы.

684 734 

685<h3 id="json-output-path-must-end-in-json">735<h3 id="json-output-path-must-end-in-json">

686 "--json output path must end in .json"736 "--json output path must end in .json"


692 A grader shows passed: false under a run that scored 1.0742 A grader shows passed: false under a run that scored 1.0

693</h3>743</h3>

694 744 

695Этот grader исключен из оценки по дизайну в двухarm запуске и его поле `scored` — это `false`. См. [Compare against a no-plugin baseline](#compare-against-a-no-plugin-baseline).745Этот grader исключен из оценки по дизайну в двухarm запуске, и его поле `scored` — это `false`. См. [Score against the no-plugin baseline](#compare-against-a-no-plugin-baseline).

696 746 

697<h3 id="runs-fail-with-a-usage-limit-or-rate-limit-error-partway-through">747<h3 id="runs-fail-with-a-usage-limit-or-rate-limit-error-partway-through">

698 Runs fail with a usage-limit or rate-limit error partway through748 Runs fail with a usage-limit or rate-limit error partway through


710 См. также760 См. также

711</h2>761</h2>

712 762 

713* [Создание плагинов](/docs/ru/plugins): создайте плагин, который вы тестируете, и загрузите его с помощью `--plugin-dir` во время разработки763* [Создание плагина](/docs/ru/plugins/create): создайте плагин, который вы тестируете, и загрузите его с помощью `--plugin-dir` во время разработки

714* [Справочник плагинов](/docs/ru/plugins-reference#plugin-eval): записи команд `plugin eval` и `plugin eval init` и ключ `experimental.evals` манифеста764* [Справочник команд плагинов](/docs/ru/plugins/cli-reference#plugin-eval): записи команд `plugin eval` и `plugin eval init`. Ключ [`experimental.evals`](/docs/ru/plugins/manifest-reference#fields) манифеста находится в справочнике манифеста

715* [Skills](/docs/ru/skills): как описание skill решает, когда Claude его вызывает, что измеряет случай, проверяющий, срабатывает ли skill765* [Skills](/docs/ru/skills): как описание skill решает, когда Claude его вызывает, что измеряет случай, проверяющий, срабатывает ли skill

716* [Sandboxing](/docs/ru/sandboxing): изолированная среда на уровне ОС, которая применяется при предоставлении Bash для запуска766* [Sandboxing](/docs/ru/sandboxing): изолированная среда на уровне ОС, которая применяется при предоставлении Bash для запуска

717* [Создание и распространение marketplace плагинов](/docs/ru/plugin-marketplaces): опубликуйте плагин после того, как его набор тестов пройдёт767* [Публикация плагина](/docs/ru/plugins/publish): опубликуйте плагин после того, как его набор тестов пройдёт

768* [Измерение стоимости и использования плагина](/docs/ru/plugins/measure): что плагин добавляет к контексту каждой сессии и используют ли его люди

plugin-hints.md +0 −172 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# Рекомендуйте ваш плагин из вашего CLI

6 

7> Выведите однострочный маркер из вашего CLI, чтобы Claude Code предложил пользователям установить ваш официальный плагин.

8 

9Если вы поддерживаете CLI или SDK и у вас есть плагин в официальном маркетплейсе Anthropic, ваш инструмент может предложить пользователям Claude Code установить этот плагин. Ваш CLI выводит однострочный маркер в stderr, когда обнаруживает, что работает внутри Claude Code. Claude Code читает маркер, удаляет его из вывода и показывает пользователю одноразовое предложение об установке.

10 

11Протокол не требует дополнительных команд и не изменяет то, что ваш CLI выводит для пользователей вне Claude Code.

12 

13Эта страница предназначена для разработчиков CLI и SDK. Если вы ищете информацию об установке плагинов, см. [Обнаружение и установка плагинов](/docs/ru/discover-plugins).

14 

15<h2 id="how-it-works">

16 Как это работает

17</h2>

18 

19Claude Code устанавливает переменную окружения [`CLAUDECODE`](/docs/ru/env-vars) в значение `1` для каждой команды, которую он запускает через инструменты Bash и PowerShell, а также для команд [hook](/docs/ru/hooks). Начиная с версии 2.1.172, он также устанавливает [`CLAUDE_CODE_CHILD_SESSION`](/docs/ru/env-vars) в значение `1` в этих же подпроцессах. Когда ваш CLI видит одну из этих переменных, он выводит самозакрывающийся тег `<claude-code-hint />` в stderr. В командах hook тег подсказки удаляется и игнорируется. Только вывод инструментов Bash и PowerShell запускает приглашение установки.

20 

21Когда Claude Code получает вывод команды, он:

22 

231. Сканирует строки подсказок и удаляет их перед тем, как вывод достигнет модели

242. Проверяет, что подсказка указывает на плагин в официальном маркетплейсе Anthropic

253. Проверяет, что плагин ещё не установлен и на него не было предложения ранее

264. Показывает пользователю предложение об установке, в котором указана команда, выведшая подсказку

27 

28Claude Code никогда не устанавливает плагин автоматически. Пользователь всегда подтверждает.

29 

30<h2 id="emit-the-hint">

31 Выведите подсказку

32</h2>

33 

34Подсказки срабатывают только для плагинов, указанных в официальном маркетплейсе Anthropic. Смотрите [Добавьте ваш плагин в официальный маркетплейс](#get-your-plugin-into-the-official-marketplace) перед тем, как вы развернёте интеграцию.

35 

36Обусловьте вывод переменной окружения, чтобы маркер был маловероятен при прямом запуске вашего CLI пользователем, затем выведите тег в stderr на отдельной строке. Выберите, какую переменную проверять:

37 

38* `CLAUDECODE`: устанавливается в каждой версии Claude Code, поэтому достигает большинства сеансов. Она также устанавливается в tmux сеансах и подпроцессах stdio MCP сервера, которые запускает Claude Code. Расширения IDE также устанавливают её в своих интегрированных терминалах, где пользователь может запускать ваш CLI напрямую.

39* `CLAUDE_CODE_CHILD_SESSION`: устанавливается только в подпроцессах, которые сам Claude Code порождает, таких как вызовы инструментов, команды hook и команды [строки состояния](/docs/ru/statusline), поэтому тег обычно не достигает терминала пользователя. Долгоживущий процесс, запущенный внутри сеанса, такой как tmux сервер, захватывает переменную, поэтому оболочки, позже запущенные из этого процесса, всё ещё показывают необработанный тег.

40 

41Следующие примеры обусловливают `CLAUDECODE` для максимального охвата и выводят подсказку для плагина с именем `example-cli` в официальном маркетплейсе:

42 

43<CodeGroup>

44 ```javascript Node.js theme={null}

45 if (process.env.CLAUDECODE) {

46 process.stderr.write(

47 '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />\n',

48 )

49 }

50 ```

51 

52 ```python Python theme={null}

53 import os, sys

54 

55 if os.environ.get("CLAUDECODE"):

56 print(

57 '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />',

58 file=sys.stderr,

59 )

60 ```

61 

62 ```go Go theme={null}

63 if os.Getenv("CLAUDECODE") != "" {

64 fmt.Fprintln(os.Stderr,

65 `<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />`)

66 }

67 ```

68 

69 ```shell Shell theme={null}

70 if [ -n "$CLAUDECODE" ]; then

71 printf '%s\n' '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />' >&2

72 fi

73 ```

74</CodeGroup>

75 

76Замените `example-cli` на имя вашего плагина в официальном маркетплейсе.

77 

78<h2 id="choose-where-to-emit">

79 Выберите место для вывода

80</h2>

81 

82Вы контролируете, какие пути кода выводят подсказку. Claude Code дедублицирует по плагину, поэтому вывод при каждом вызове не имеет никаких недостатков. Хорошо работают следующие точки:

83 

84| Размещение | Почему это работает |

85| :------------------------------------------ | :----------------------------------------------------------- |

86| Вывод `--help` | Claude часто запускает справку при изучении незнакомого CLI |

87| Ошибки неизвестной подкоманды | Достигает момента, когда Claude запутался в вашем интерфейсе |

88| Успешный вход или аутентификация | Пользователь уже находится в режиме настройки |

89| Приветственное сообщение при первом запуске | Естественный момент адаптации |

90 

91<h2 id="what-the-user-sees">

92 Что видит пользователь

93</h2>

94 

95Когда подсказка проходит все проверки, Claude Code показывает приглашение, подобное следующему:

96 

97```text theme={null}

98─────────────────────────────────────────────────────────────

99 Рекомендация плагина

100 

101 Команда example-cli предлагает установить плагин.

102 

103 Плагин: example-cli

104 Маркетплейс: claude-plugins-official

105 Официальная интеграция для развёртываний example-cli

106 

107 Хотите ли вы установить его?

108 ❯ 1. Да, установить example-cli

109 2. Нет

110 3. Нет, и больше не показывать предложения об установке плагинов

111 

112─────────────────────────────────────────────────────────────

113```

114 

115Приглашение указывает команду, которая произвела подсказку, чтобы пользователи могли заметить несоответствие между инструментом и плагином, который он рекомендует. Если пользователь не ответит в течение 30 секунд, Claude Code закрывает приглашение как **Нет**.

116 

117Частота приглашений ограничена, и некоторые сеансы никогда не показывают приглашения:

118 

119* **Один раз на плагин**: после того как приглашение показано, Claude Code записывает плагин и никогда больше не предлагает его, независимо от ответа пользователя.

120* **Один раз за сеанс**: на всех CLI на машине одновременно может появиться максимум одно приглашение подсказки за сеанс Claude Code.

121* **Только в основном интерактивном сеансе**: Claude Code показывает приглашение только в сеансе терминала, в который пользователь вводит текст. Claude Code никогда не предлагает команду, которую запускает [подагент](/docs/ru/sub-agents), и никогда не предлагает, когда пользователь запускает Claude Code в [неинтерактивном режиме](/docs/ru/headless) с флагом `-p` или через [Agent SDK](/docs/ru/agent-sdk/overview). Claude Code по-прежнему удаляет строку подсказки из выходных данных команды во всех этих случаях.

122* **Отказ от телеметрии**: сеансы, в которых аналитика отключена, никогда не показывают приглашения подсказок. Это включает сеансы с установленными `DISABLE_TELEMETRY` или `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, а также сеансы у сторонних поставщиков, таких как Amazon Bedrock или Google Cloud's Agent Platform, где применяется [автоматический отказ от телеметрии](/docs/ru/data-usage#default-behaviors-by-api-provider).

123 

124Выбор **Да** устанавливает плагин в область пользователя. Выбор **Нет, и больше не показывать предложения об установке плагинов** отключает все будущие приглашения подсказок для пользователя.

125 

126<h2 id="hint-format">

127 Формат подсказки

128</h2>

129 

130Подсказка — это самозакрывающийся тег с тремя обязательными атрибутами.

131 

132```text theme={null}

133<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />

134```

135 

136| Атрибут | Обязательный | Описание |

137| :------ | :----------- | :------------------------------------------------------------- |

138| `v` | Да | Версия протокола. `1` — единственное поддерживаемое значение |

139| `type` | Да | Тип подсказки. `plugin` — единственное поддерживаемое значение |

140| `value` | Да | Идентификатор плагина в форме `name@marketplace` |

141 

142Значения атрибутов могут быть заключены в двойные кавычки или оставлены без кавычек. Значения без кавычек не могут содержать пробелы. Последовательности экранирования не поддерживаются.

143 

144<h2 id="requirements">

145 Требования

146</h2>

147 

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

149 

150* **Отдельная строка**: тег должен занимать отдельную строку. Тег, встроенный в середину строки, например внутри оператора логирования, игнорируется. Пробелы в начале и конце строки допускаются.

151* **Официальный маркетплейс**: `value` должен ссылаться на плагин в контролируемом Anthropic маркетплейсе, таком как `claude-plugins-official`. Подсказки, указывающие на другие маркетплейсы, молча отбрасываются.

152 

153Строка подсказки всегда удаляется из вывода перед тем, как она достигнет модели, даже если версия или тип не распознаны, поэтому маркер никогда не учитывается при подсчёте использованных токенов.

154 

155Остальные рекомендации рекомендуются, но не обязательны. Claude Code не может наблюдать, следует ли ваш CLI им:

156 

157* **Выводите в stderr**: stderr держит тег вне конвейеров оболочки, таких как `example-cli deploy | jq`. Claude Code сканирует оба потока, поэтому stdout также работает.

158* **Обусловьте на переменной окружения**: выводите только когда установлена переменная окружения `CLAUDECODE` или `CLAUDE_CODE_CHILD_SESSION`. Смотрите [Выведите подсказку](#emit-the-hint), чтобы узнать, чем отличаются эти две переменные.

159 

160<h2 id="get-your-plugin-into-the-official-marketplace">

161 Добавьте ваш плагин в официальный маркетплейс

162</h2>

163 

164Протокол подсказок вступает в силу только для плагинов, которые указаны в официальном маркетплейсе Anthropic, `claude-plugins-official`. Anthropic курирует этот маркетплейс по своему усмотрению, а встроенные формы отправки добавляют плагины в [маркетплейс сообщества](/docs/ru/plugins#submit-your-plugin-to-the-community-marketplace), который протокол подсказок не проверяет. Если вы работаете с контактом партнёра Anthropic, свяжитесь с ним для координации листинга в официальном маркетплейсе.

165 

166<h2 id="see-also">

167 См. также

168</h2>

169 

170* [Создание плагинов](/docs/ru/plugins): создайте плагин, который рекомендует ваш CLI

171* [Создание и распространение маркетплейса плагинов](/docs/ru/plugin-marketplaces): размещайте плагины вне официального маркетплейса

172* [Переменные окружения](/docs/ru/env-vars): полный справочник по `CLAUDECODE` и связанным переменным

plugin-marketplaces.md +0 −1688 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# Создание и распространение marketplace плагинов

6 

7> Создавайте и размещайте marketplace плагинов для распространения расширений Claude Code по командам и сообществам.

8 

9**plugin marketplace** — это каталог, который позволяет вам распространять плагины другим пользователям. Marketplace обеспечивают централизованное обнаружение, отслеживание версий, автоматические обновления и поддержку нескольких типов источников, включая репозитории Git и локальные пути. Это руководство показывает, как создать собственный marketplace для совместного использования плагинов с вашей командой или сообществом.

10 

11Ищете способ установить плагины из существующего marketplace? См. [Обнаружение и установка готовых плагинов](/docs/ru/discover-plugins).

12 

13<h2 id="overview">

14 Обзор

15</h2>

16 

17Создание и распространение marketplace включает:

18 

191. **Создание плагинов**: создайте один или несколько плагинов с skills, агентами, hooks, MCP servers или LSP servers. Это руководство предполагает, что у вас уже есть плагины для распространения; см. [Создание плагинов](/docs/ru/plugins) для получения подробной информации о том, как их создавать.

202. **Создание файла marketplace**: определите `marketplace.json`, который перечисляет ваши плагины и где их найти. См. [Создание файла marketplace](#create-the-marketplace-file).

213. **Размещение marketplace**: отправьте на GitHub, GitLab или другой хост Git. См. [Размещение и распространение marketplace](#host-and-distribute-marketplaces).

224. **Совместное использование с пользователями**: пользователи добавляют ваш marketplace с помощью `/plugin marketplace add` и устанавливают отдельные плагины. См. [Обнаружение и установка плагинов](/docs/ru/discover-plugins).

23 

24После того как ваш marketplace будет запущен, вы можете обновить его, отправив изменения в ваш репозиторий. Пользователи обновляют свою локальную копию с помощью `/plugin marketplace update`.

25 

26<h2 id="walkthrough-create-a-local-marketplace">

27 Пошаговое руководство: создание локального marketplace

28</h2>

29 

30Этот пример создает marketplace с одним плагином: skill `quality-review` для проверки кода. Вы создадите структуру каталогов, добавите skill, создадите манифест плагина и каталог marketplace, а затем установите и протестируете его.

31 

32<Steps>

33 <Step title="Создание структуры каталогов">

34 ```bash theme={null}

35 mkdir -p my-marketplace/.claude-plugin

36 mkdir -p my-marketplace/plugins/quality-review-plugin/.claude-plugin

37 mkdir -p my-marketplace/plugins/quality-review-plugin/skills/quality-review

38 ```

39 </Step>

40 

41 <Step title="Создание skill">

42 Создайте файл `SKILL.md`, который определяет, что делает skill `quality-review`.

43 

44 ```markdown my-marketplace/plugins/quality-review-plugin/skills/quality-review/SKILL.md theme={null}

45 ---

46 description: Review code for bugs, security, and performance

47 ---

48 

49 Review the code I've selected or the recent changes for:

50 - Potential bugs or edge cases

51 - Security concerns

52 - Performance issues

53 - Readability improvements

54 

55 Be concise and actionable.

56 ```

57 </Step>

58 

59 <Step title="Создание манифеста плагина">

60 Создайте файл `plugin.json`, который описывает плагин. Манифест находится в каталоге `.claude-plugin/`.

61 

62 ```json my-marketplace/plugins/quality-review-plugin/.claude-plugin/plugin.json theme={null}

63 {

64 "name": "quality-review-plugin",

65 "description": "Adds a quality-review skill for quick code reviews",

66 "version": "1.0.0",

67 "author": {

68 "name": "Your Name"

69 }

70 }

71 ```

72 

73 <Note>

74 Установка `version` означает, что пользователи получают обновления только при изменении этого поля, поэтому увеличивайте его при каждом выпуске. Плагин с [`command` source](#command-sources) не закреплен этим полем. Также не закреплен плагин, [загруженный на месте](/docs/ru/plugins-reference#plugin-caching-and-file-resolution) из marketplace, добавленного как локальный каталог. Если вы опустите `version`, версия берется из следующего источника в [управлении версиями](/docs/ru/plugins-reference#version-management).

75 </Note>

76 </Step>

77 

78 <Step title="Создание файла marketplace">

79 Создайте каталог marketplace, который перечисляет ваш плагин.

80 

81 ```json my-marketplace/.claude-plugin/marketplace.json theme={null}

82 {

83 "name": "my-plugins",

84 "owner": {

85 "name": "Your Name"

86 },

87 "plugins": [

88 {

89 "name": "quality-review-plugin",

90 "source": "./plugins/quality-review-plugin",

91 "description": "Adds a quality-review skill for quick code reviews"

92 }

93 ]

94 }

95 ```

96 </Step>

97 

98 <Step title="Добавление и установка">

99 Из каталога, содержащего `my-marketplace`, запустите Claude Code и выполните следующие команды. Команда установки открывает представление сведений о плагине, где вы выбираете область установки для подтверждения установки. Проверьте сводку установки: если она сообщает `Run /reload-plugins to activate.`, см. [Применение изменений плагина без перезагрузки](/docs/ru/discover-plugins#apply-plugin-changes-without-restarting).

100 

101 ```shell theme={null}

102 /plugin marketplace add ./my-marketplace

103 /plugin install quality-review-plugin@my-plugins

104 ```

105 </Step>

106 

107 <Step title="Попробуйте">

108 Выберите некоторый код в редакторе и запустите ваш новый skill. Skills плагинов имеют пространство имен с именем плагина.

109 

110 ```shell theme={null}

111 /quality-review-plugin:quality-review

112 ```

113 </Step>

114</Steps>

115 

116Чтобы узнать больше о том, что могут делать плагины, включая hooks, agents, MCP servers и LSP servers, см. [Plugins](/docs/ru/plugins).

117 

118<Note>

119 **Как устанавливаются плагины**: когда пользователи устанавливают плагин, Claude Code копирует каталог плагина в место кэша, если только плагин не загружается на месте. [`command` source в режиме link](#copy-mode-and-link-mode) загружается на месте, как и [relative path source](#relative-paths) в marketplace, добавленном из локального каталога. Скопированные плагины не могут ссылаться на файлы вне их каталога, используя пути вроде `../shared-utils`, потому что эти файлы не будут скопированы.

120 

121 Если вам нужно совместно использовать файлы между плагинами, используйте symlinks. Подробнее см. [Plugin caching and file resolution](/docs/ru/plugins-reference#plugin-caching-and-file-resolution).

122</Note>

123 

124<h2 id="create-the-marketplace-file">

125 Создание файла marketplace

126</h2>

127 

128Создайте `.claude-plugin/marketplace.json` в корне вашего репозитория. Этот файл определяет имя вашего marketplace, информацию о владельце и список плагинов с их источниками.

129 

130Каждая запись плагина требует как минимум `name` и `source`, который указывает Claude Code, откуда его получить. См. [полную схему](#marketplace-schema) ниже для всех доступных полей.

131 

132```json theme={null}

133{

134 "name": "company-tools",

135 "owner": {

136 "name": "DevTools Team",

137 "email": "devtools@example.com"

138 },

139 "plugins": [

140 {

141 "name": "code-formatter",

142 "source": "./plugins/formatter",

143 "description": "Автоматическое форматирование кода при сохранении",

144 "version": "2.1.0",

145 "author": {

146 "name": "DevTools Team"

147 }

148 },

149 {

150 "name": "deployment-tools",

151 "source": {

152 "source": "github",

153 "repo": "company/deploy-plugin"

154 },

155 "description": "Инструменты автоматизации развертывания"

156 }

157 ]

158}

159```

160 

161<h2 id="marketplace-schema">

162 Схема marketplace

163</h2>

164 

165<h3 id="required-fields">

166 Обязательные поля

167</h3>

168 

169| Поле | Тип | Описание | Пример |

170| :-------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------- |

171| `name` | string | Идентификатор marketplace в kebab-case, без пробелов, управляющих символов или символов двунаправленного форматирования. Это общедоступное поле: пользователи видят его при установке плагинов (например, `/plugin install my-tool@your-marketplace`). Каждый пользователь может зарегистрировать только один marketplace с одним именем: добавление второго marketplace с тем же именем заменяет первый. Чтобы опубликовать несколько плагинов под одним именем marketplace, перечислите их все в [одном файле `marketplace.json`](#create-the-marketplace-file). | `"acme-tools"` |

172| `owner` | object | Информация о сопровождающем marketplace. См. [Поля владельца](#owner-fields) | |

173| `plugins` | array | Список доступных плагинов | См. [Записи плагинов](#plugin-entries) |

174 

175<Note>

176 **Зарезервированные имена**: следующие имена marketplace зарезервированы для официального использования Anthropic и не могут использоваться сторонними marketplace: `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `claude-plugins-community`, `claude-community`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `anthropic-agent-skills`, `knowledge-work-plugins`, `life-sciences`, `claude-for-legal`, `claude-for-financial-services`, `financial-services-plugins`, `first-party-plugins`, `claude-tag-plugins`, `healthcare`. Имена, которые выдают себя за официальные marketplace, такие как `official-claude-plugins` или `anthropic-plugins-v2`, также заблокированы. Резервирование этих имен предотвращает представление стороннего marketplace как источника, опубликованного Anthropic.

177 

178 Claude Code повторно проверяет зарезервированные имена каждый раз при загрузке marketplace, а не только при добавлении. Marketplace, зарегистрированный под одним из этих имен до того, как имя было зарезервировано, перестает загружаться и сообщает, что он [зарегистрирован из ненадежного источника](/docs/ru/errors#marketplace-is-registered-from-an-untrusted-source). Удалите этот marketplace и добавьте его снова из официального источника Anthropic. Сторонний marketplace, затронутый вновь зарезервированным именем, загружается снова, как только вы добавите его под другим именем. До версии v2.1.205 `first-party-plugins` и `healthcare` не были зарезервированы, и marketplace, уже зарегистрированный под зарезервированным именем, продолжал загружаться. До версии v2.1.265 `claude-tag-plugins` не был зарезервирован.

179 

180 Вы также не можете назвать marketplace `npm`, `pip`, `uv`, `cargo`, `github` или `gh` в любом регистре. Эта проверка требует Claude Code v2.1.275 или позже.

181</Note>

182 

183<h3 id="owner-fields">

184 Поля владельца

185</h3>

186 

187| Поле | Тип | Обязательно | Описание |

188| :------ | :----- | :---------- | :------------------------------------------------- |

189| `name` | string | Да | Имя сопровождающего или команды |

190| `email` | string | Нет | Контактный адрес электронной почты сопровождающего |

191| `url` | string | Нет | Веб-сайт, профиль GitHub или URL организации |

192 

193<h3 id="optional-fields">

194 Дополнительные поля

195</h3>

196 

197| Поле | Тип | Описание |

198| :------------------------------------ | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

199| `$schema` | string | URL JSON Schema для автодополнения редактора и валидации. Claude Code игнорирует это поле при загрузке. |

200| `description` | string | Краткое описание marketplace |

201| `version` | string | Версия манифеста marketplace |

202| `metadata.pluginRoot` | string | Каталог, в котором Claude Code разрешает имена источников плагинов без пути. См. [Относительные пути](#relative-paths). Требуется Claude Code v2.1.239 или позже. |

203| `allowCrossMarketplaceDependenciesOn` | array | Другие marketplace, на которые плагины в этом marketplace могут зависеть. Зависимости от marketplace, не указанного здесь, блокируются при установке. См. [Зависимость от плагина из другого marketplace](/docs/ru/plugin-dependencies#depend-on-a-plugin-from-another-marketplace). |

204| `renames` | object | Карта от прежнего имени плагина `name` к его текущему имени или к `null`, если плагин был удален. Позволяет существующим пользователям автоматически мигрировать при переименовании или удалении записи в `plugins`. См. [Переименование или удаление плагина](#rename-or-remove-a-plugin). Требуется Claude Code v2.1.193 или позже. |

205 

206`description` и `version` также принимаются в `metadata` для обратной совместимости.

207 

208<h2 id="plugin-entries">

209 Записи плагинов

210</h2>

211 

212Каждая запись плагина в массиве `plugins` описывает плагин и место его размещения. Вы можете включить любое поле из [схемы манифеста плагина](/docs/ru/plugins-reference#plugin-manifest-schema), такое как `description`, `version`, `author`, `commands` и `hooks`, плюс эти поля, специфичные для marketplace: `source`, `category`, `tags`, `strict`, `relevance`, `headers` и `headersHelper`.

213 

214<h3 id="required-fields-2">

215 Обязательные поля

216</h3>

217 

218| Поле | Тип | Описание |

219| :------- | :------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

220| `name` | string | Идентификатор плагина в kebab-case без пробелов, управляющих символов или символов двунаправленного форматирования. Это открытое поле: пользователи видят его при установке (например, `/plugin install my-plugin@marketplace`). |

221| `source` | string\|object | Откуда получить плагин (см. [Источники плагинов](#plugin-sources) ниже) |

222 

223<h3 id="optional-plugin-fields">

224 Необязательные поля плагина

225</h3>

226 

227**Стандартные поля метаданных:**

228 

229| Поле | Тип | Описание |

230| :--------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

231| `displayName` | string | Удобочитаемое имя, отображаемое в интерфейсе. Когда ни запись, ни `plugin.json` плагина не устанавливают его, пользователи видят `name` плагина. Может содержать пробелы и любой регистр. Не используется для пространства имён или поиска. |

232| `description` | string | Краткое описание плагина |

233| `version` | string | Версия плагина. Если установлена (здесь или в `plugin.json`), плагин закреплён на эту строку и пользователи получают обновления только при её изменении. Плагин с источником [`command`](#command-sources) не закреплён ни одним из этих полей. Также не закреплён плагин, [загруженный на месте](/docs/ru/plugins-reference#plugin-caching-and-file-resolution) из marketplace, добавленного как локальный каталог. Если версия не установлена ни в одном месте, она берётся из следующего источника в [управлении версиями](/docs/ru/plugins-reference#version-management). |

234| `author` | object | Информация об авторе плагина (`name` обязательно; `email` и `url` необязательны) |

235| `homepage` | string | Домашняя страница плагина или URL документации |

236| `repository` | string | URL репозитория исходного кода |

237| `license` | string | Идентификатор лицензии SPDX (например, MIT, Apache-2.0) |

238| `keywords` | array | Теги для обнаружения и категоризации плагина |

239| `metadata` | object | Свободный объект для ваших собственных полей, таких как данные о правах или каталога. Claude Code его не читает. До версии v2.1.222 `claude plugin validate` сообщал ключ как нераспознанное поле. |

240| `category` | string | Категория плагина для организации |

241| `tags` | array | Теги для поиска |

242| `strict` | boolean | Контролирует, является ли `plugin.json` авторитетом для определений компонентов (по умолчанию: true). См. [Строгий режим](#strict-mode) ниже. |

243| `relevance` | object | Сигналы, которые говорят Claude Code, когда предложить этот плагин пользователям. Действует только для marketplace, которые администратор добавляет в список разрешённых в управляемых параметрах. См. [Рекомендовать плагины для вашей организации](/docs/ru/plugin-relevance). |

244| `defaultEnabled` | boolean | Включен ли плагин после установки (по умолчанию: true). Установите значение `false`, чтобы установить плагин отключённым до тех пор, пока пользователь не согласится. Имеет приоритет над тем же полем в `plugin.json` плагина. См. [Включение по умолчанию](/docs/ru/plugins-reference#default-enablement). |

245 

246И запись, и собственный `plugin.json` плагина могут устанавливать поля отображения `displayName`, `description`, `author`, `homepage`, `repository`, `license` и `keywords`. В списках плагинов и деталях до и после установки:

247 

248* Для поля, которое вы установили в записи, пользователи видят значение записи, даже если `plugin.json` устанавливает другое значение.

249* Для поля, которое запись оставляет неустановленным, пользователи видят значение из `plugin.json`.

250 

251До установки Claude Code может читать `plugin.json` только для записей с [источником относительного пути](#relative-paths), чьи файлы плагина находятся внутри самого marketplace. Для записи с любым другим типом источника пользователи видят только собственные поля записи до установки плагина.

252 

253**Поля конфигурации компонентов:**

254 

255| Поле | Тип | Описание |

256| :----------- | :------------- | :--------------------------------------------------------------------- |

257| `skills` | string\|array | Пользовательские пути к каталогам skills, содержащим `<name>/SKILL.md` |

258| `commands` | string\|array | Пользовательские пути к плоским файлам `.md` skills или каталогам |

259| `agents` | string\|array | Пользовательские пути к файлам агентов |

260| `hooks` | string\|object | Конфигурация пользовательских hooks или путь к файлу hooks |

261| `mcpServers` | string\|object | Конфигурации MCP сервера или путь к конфигурации MCP |

262| `lspServers` | string\|object | Конфигурации LSP сервера или путь к конфигурации LSP |

263 

264**Поля аутентификации архива:**

265 

266Установите их, когда запись имеет источник [`archive`](#zip-archives) на сервере, требующем учётные данные.

267 

268| Поле | Тип | Описание |

269| :-------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

270| `headers` | object | HTTP заголовки, которые Claude Code отправляет при загрузке архива этой записи. Переопределяет заголовки marketplace с тем же именем. Требует Claude Code v2.1.238 или позже. |

271| `headersHelper` | string | Команда, которая выводит HTTP заголовки для загрузки архива этой записи как один JSON объект, для учётных данных, которые истекают. См. [Аутентификация загрузок архива](#authenticate-archive-downloads). Запись также должна установить [`"strict": false`](#strict-mode). Требует Claude Code v2.1.238 или позже. |

272 

273<h2 id="plugin-sources">

274 Источники плагинов

275</h2>

276 

277Источники плагинов указывают Claude Code, откуда получить каждый отдельный плагин, указанный в вашем marketplace. Они устанавливаются в поле `source` каждой записи плагина в `marketplace.json`.

278 

279Claude Code копирует каждый установленный плагин в локальный кэш плагинов с версией в `~/.claude/plugins/cache`, за исключением случаев, когда плагин загружается на месте. [`command` источник в режиме link](#copy-mode-and-link-mode) загружается на месте, как и [относительный путь источника](#relative-paths) из marketplace, добавленного из локального каталога. Claude Code также [устанавливает подходящие зависимости пакетов Node.js плагина](/docs/ru/plugins-reference#node-js-package-dependencies) в кэшированную копию. См. [Plugin caching and file resolution](/docs/ru/plugins-reference#plugin-caching-and-file-resolution) для того, как плагин, загруженный на месте из marketplace локального каталога, получает ваши правки.

280 

281| Источник | Тип | Поля | Примечания |

282| ------------------ | ------------------------------------ | ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

283| Относительный путь | `string` (например, `"./my-plugin"`) | none | Локальный каталог в репозитории marketplace. Должен начинаться с `./`, если вы не напишете [простое имя под `metadata.pluginRoot`](#relative-paths). Claude Code разрешает путь относительно корня marketplace, а не каталога `.claude-plugin/` |

284| `github` | object | `repo`, `ref?`, `sha?` | |

285| `url` | object | `url`, `ref?`, `sha?` | Источник URL Git |

286| `git-subdir` | object | `url`, `path`, `ref?`, `sha?` | Подкаталог в репозитории Git. Клонирует разреженно, чтобы минимизировать пропускную способность для монорепозиториев |

287| `npm` | object | `package`, `version?`, `registry?` | npm пакет, загруженный с вашим npm клиентом и распакованный без запуска скриптов установки |

288| `archive` | object | `url`, `sha256?` | ZIP-архив, загруженный через HTTPS. Работает без git или npm на машине пользователя. Требует Claude Code v2.1.224 или позже |

289| `command` | object | `command`, `timeout?`, `mode?` | Каталог плагина, созданный путем запуска локальной команды, переустанавливается один раз за сеанс для получения изменений. Требует Claude Code v2.1.229 или позже |

290 

291<Note>

292 **Источники marketplace и источники плагинов**: Это разные концепции, которые контролируют разные вещи.

293 

294 * **Источник marketplace**: откуда получить сам каталог `marketplace.json`. Устанавливается, когда пользователи запускают `/plugin marketplace add` или в параметрах `extraKnownMarketplaces`. Источники marketplace на основе Git поддерживают `ref` (ветка/тег), но не `sha`.

295 * **Источник плагина**: откуда получить отдельный плагин, указанный в marketplace. Устанавливается в поле `source` каждой записи плагина внутри `marketplace.json`. Источники плагинов на основе Git поддерживают как `ref` (ветка/тег), так и `sha` (точный коммит).

296 

297 Например, marketplace, размещенный в `acme-corp/plugin-catalog` (источник marketplace), может перечислять плагин, полученный из `acme-corp/code-formatter` (источник плагина). Источник marketplace и источник плагина указывают на разные репозитории и закреплены независимо.

298</Note>

299 

300Типы источников на основе Git ниже — это `github`, `url` и `git-subdir`. Когда оба `ref` и `sha` установлены на любом из них, `sha` является эффективным закреплением. Claude Code получает и проверяет закрепленный коммит напрямую.

301 

302На большинстве хостов Git, включая GitHub, GitLab и Bitbucket, это означает, что установка успешна даже если ветка или тег, названные `ref`, были удалены выше по течению, при условии, что коммит все еще доступен из репозитория. Некоторые серверы, такие как AWS CodeCommit, не поддерживают получение коммитов по SHA. На этих серверах `ref` все еще должен существовать и закрепленный коммит должен быть доступен из него.

303 

304Если вы распространяете плагины через **Organization settings > Plugins**, разрешены только некоторые типы источников. См. [Распространение через параметры организации](#distribute-through-organization-settings).

305 

306<h3 id="relative-paths">

307 Относительные пути

308</h3>

309 

310Для плагинов в одном репозитории используйте путь, начинающийся с `./`:

311 

312```json theme={null}

313{

314 "name": "my-plugin",

315 "source": "./plugins/my-plugin"

316}

317```

318 

319Пути разрешаются относительно корня marketplace, который является каталогом, содержащим `.claude-plugin/`. Источник `./plugins/my-plugin` поэтому указывает на `<repo>/plugins/my-plugin`, даже если `marketplace.json` находится в `<repo>/.claude-plugin/marketplace.json`. Не используйте `../` для ссылки на пути вне корня marketplace. На macOS и Linux Claude Code отказывает запись пути с обратной косой чертой где-либо после начального `./`, поэтому пишите разделители как `/` на каждой платформе.

320 

321Простое имя — это одно имя каталога без `/`, например `"formatter"`. Чтобы писать простые имена вместо путей `./`, установите [`metadata.pluginRoot`](#optional-fields) на каталог, в котором они разрешаются. С `"pluginRoot": "./plugins"`, Claude Code разрешает `"source": "formatter"` на `./plugins/formatter`. Требует Claude Code v2.1.239 или позже.

322 

323`metadata.pluginRoot` должен быть относительным путем внутри marketplace. Claude Code игнорирует его для источника, который уже начинается с `./`. Источник, содержащий `/`, например `team-a/formatter`, не является простым именем и все еще нуждается в префиксе `./`, даже когда установлен `metadata.pluginRoot`.

324 

325<Note>

326 Claude Code разрешает относительные пути относительно локальной копии marketplace, поэтому они работают, когда пользователи добавляют ваш marketplace из источника Git или локального каталога. Если пользователи добавляют ваш marketplace через прямой URL к файлу `marketplace.json`, относительные пути не будут разрешены, потому что загружается только этот файл. Для распространения на основе URL используйте вместо этого любой другой [источник плагина](#plugin-sources). См. [Устранение неполадок](#plugins-with-relative-paths-fail-in-url-based-marketplaces) для получения подробной информации.

327</Note>

328 

329<h3 id="github-repositories">

330 Репозитории GitHub

331</h3>

332 

333```json theme={null}

334{

335 "name": "github-plugin",

336 "source": {

337 "source": "github",

338 "repo": "owner/plugin-repo"

339 }

340}

341```

342 

343Вы можете закрепить определенную ветку, тег или коммит:

344 

345```json theme={null}

346{

347 "name": "github-plugin",

348 "source": {

349 "source": "github",

350 "repo": "owner/plugin-repo",

351 "ref": "v2.0.0",

352 "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"

353 }

354}

355```

356 

357| Поле | Тип | Описание |

358| :----- | :----- | :--------------------------------------------------------------------------------- |

359| `repo` | string | Обязательно. Репозиторий GitHub в формате `owner/repo` |

360| `ref` | string | Опционально. Ветка или тег Git (по умолчанию ветка по умолчанию репозитория) |

361| `sha` | string | Опционально. Полный 40-символьный SHA коммита Git для закрепления на точной версии |

362 

363<h3 id="git-repositories">

364 Репозитории Git

365</h3>

366 

367```json theme={null}

368{

369 "name": "git-plugin",

370 "source": {

371 "source": "url",

372 "url": "https://gitlab.com/team/plugin.git"

373 }

374}

375```

376 

377Вы можете закрепить определенную ветку, тег или коммит:

378 

379```json theme={null}

380{

381 "name": "git-plugin",

382 "source": {

383 "source": "url",

384 "url": "https://gitlab.com/team/plugin.git",

385 "ref": "main",

386 "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"

387 }

388}

389```

390 

391| Поле | Тип | Описание |

392| :---- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- |

393| `url` | string | Обязательно. Полный URL репозитория Git (`https://` или `git@`). Суффикс `.git` опционален, поэтому URL Azure DevOps и AWS CodeCommit без суффикса работают |

394| `ref` | string | Опционально. Ветка или тег Git (по умолчанию ветка по умолчанию репозитория) |

395| `sha` | string | Опционально. Полный 40-символьный SHA коммита Git для закрепления на точной версии |

396 

397<h3 id="git-subdirectories">

398 Подкаталоги Git

399</h3>

400 

401Используйте `git-subdir` для указания плагина, который находится в подкаталоге репозитория Git. Claude Code использует разреженный, частичный клон для получения только подкаталога, минимизируя пропускную способность для больших монорепозиториев.

402 

403```json theme={null}

404{

405 "name": "my-plugin",

406 "source": {

407 "source": "git-subdir",

408 "url": "https://github.com/acme-corp/monorepo.git",

409 "path": "tools/claude-plugin"

410 }

411}

412```

413 

414Вы можете закрепить определенную ветку, тег или коммит:

415 

416```json theme={null}

417{

418 "name": "my-plugin",

419 "source": {

420 "source": "git-subdir",

421 "url": "https://github.com/acme-corp/monorepo.git",

422 "path": "tools/claude-plugin",

423 "ref": "v2.0.0",

424 "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"

425 }

426}

427```

428 

429Поле `url` также принимает сокращение GitHub (`owner/repo`) или SSH URL (`git@github.com:owner/repo.git`).

430 

431| Поле | Тип | Описание |

432| :----- | :----- | :------------------------------------------------------------------------------------------------- |

433| `url` | string | Обязательно. URL репозитория Git, сокращение GitHub `owner/repo` или SSH URL |

434| `path` | string | Обязательно. Путь подкаталога в репозитории, содержащий плагин (например, `"tools/claude-plugin"`) |

435| `ref` | string | Опционально. Ветка или тег Git (по умолчанию ветка по умолчанию репозитория) |

436| `sha` | string | Опционально. Полный 40-символьный SHA коммита Git для закрепления на точной версии |

437 

438<h3 id="npm-packages">

439 Пакеты npm

440</h3>

441 

442Источник npm может назвать любой пакет в общедоступном реестре npm или в частном реестре, который размещает ваша команда. Claude Code разрешает пакет с вашим npm клиентом, загружает tarball и распаковывает его в кэш плагинов.

443 

444Скрипты установки пакета, такие как `preinstall` или `postinstall`, никогда не запускаются, и его зависимости не устанавливаются во время загрузки.

445 

446Если пакет поставляет поддерживаемый файл блокировки рядом с его `package.json`, Claude Code устанавливает эти [зависимости пакетов Node.js](/docs/ru/plugins-reference#node-js-package-dependencies) в отдельном шаге, также с отключенными скриптами. В противном случае опубликуйте плагин со всем, что ему нужно, уже встроенным. MCP сервер, которому нужны другие пакеты, может запуститься через `npx`, который устанавливает их при первом запуске.

447 

448```json theme={null}

449{

450 "name": "my-npm-plugin",

451 "source": {

452 "source": "npm",

453 "package": "@acme/claude-plugin"

454 }

455}

456```

457 

458Чтобы закрепить определенную версию, добавьте поле `version`:

459 

460```json theme={null}

461{

462 "name": "my-npm-plugin",

463 "source": {

464 "source": "npm",

465 "package": "@acme/claude-plugin",

466 "version": "2.1.0"

467 }

468}

469```

470 

471Для установки из частного или внутреннего реестра добавьте поле `registry`:

472 

473```json theme={null}

474{

475 "name": "my-npm-plugin",

476 "source": {

477 "source": "npm",

478 "package": "@acme/claude-plugin",

479 "version": "^2.0.0",

480 "registry": "https://npm.example.com"

481 }

482}

483```

484 

485| Поле | Тип | Описание |

486| :--------- | :----- | :-------------------------------------------------------------------------------------------------- |

487| `package` | string | Обязательно. Имя пакета или область пакета (например, `@org/plugin`) |

488| `version` | string | Опционально. Версия или диапазон версий (например, `2.1.0`, `^2.0.0`, `~1.5.0`) |

489| `registry` | string | Опционально. Пользовательский URL реестра npm. По умолчанию системный реестр npm (обычно npmjs.org) |

490 

491<h3 id="zip-archives">

492 ZIP-архивы

493</h3>

494 

495Используйте `archive` для распространения плагина как ZIP-файла, который Claude Code загружает через HTTPS, поэтому установки работают без git или npm на машине пользователя. Разместите файл на любом статическом файловом сервере или хранилище артефактов, например в корзине S3, в универсальном хранилище Artifactory или nginx. Требует Claude Code v2.1.224 или позже. На версиях v2.1.120 через v2.1.223 установка плагина не удается с `This plugin uses a source type your Claude Code version does not support. Update Claude Code and try again.`; на более старых версиях marketplace, содержащий запись `archive`, полностью не загружается.

496 

497Эта запись устанавливает плагин из ZIP-файла на сервере артефактов:

498 

499```json theme={null}

500{

501 "name": "my-plugin",

502 "source": {

503 "source": "archive",

504 "url": "https://artifacts.example.com/claude-plugins/my-plugin-2.1.0.zip"

505 }

506}

507```

508 

509Когда вы создаете ZIP-файл, вы можете заархивировать содержимое плагина напрямую или заархивировать саму папку плагина. Claude Code ищет `.claude-plugin/` в верхней части архива, затем внутри одной папки верхнего уровня, поэтому оба макета устанавливаются:

510 

511```text theme={null}

512my-plugin.zip my-plugin.zip

513├── .claude-plugin/ └── my-plugin/

514│ └── plugin.json ├── .claude-plugin/

515└── commands/ │ └── plugin.json

516 └── commands/

517```

518 

519Claude Code не ищет глубже одной папки, поэтому плагин, вложенный дальше, не устанавливается. Claude Code отказывает архивам размером более 256 МиБ.

520 

521Чтобы закрепить точный файл, добавьте поле `sha256` с дайджестом архива:

522 

523```json theme={null}

524{

525 "name": "my-plugin",

526 "source": {

527 "source": "archive",

528 "url": "https://artifacts.example.com/claude-plugins/my-plugin-2.1.0.zip",

529 "sha256": "6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1"

530 }

531}

532```

533 

534Если загруженный файл не совпадает с закреплением, Claude Code отказывает установку и сообщает [`Plugin archive integrity check failed`](/docs/ru/errors#plugin-archive-integrity-check-failed).

535 

536Источники архивов принимают эти поля:

537 

538| Поле | Тип | Описание |

539| :------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

540| `url` | string | Обязательно. HTTPS URL ZIP-архива. Claude Code отклоняет `http://` URL, а также loopback, link-local и cloud-metadata хосты. Каждый переход перенаправления должен удовлетворять тем же правилам, или Claude Code отказывает загрузку |

541| `sha256` | string | Опционально. SHA-256 дайджест архива как 64 шестнадцатеричных символа, прописные или строчные. Claude Code проверяет каждую загрузку против него и отказывает установку при несовпадении |

542 

543Дайджест `sha256` также служит версией плагина, когда ни `plugin.json`, ни запись marketplace не объявляют версию. См. [Управление версиями](/docs/ru/plugins-reference#version-management). Если вы объявляете `version`, эта строка версии является сигналом обновления, поэтому после изменения ZIP-файла и его дайджеста также увеличьте версию, или пользователи сохранят кэшированную копию.

544 

545<h4 id="authenticate-archive-downloads">

546 Аутентификация загрузок архивов

547</h4>

548 

549Чтобы аутентифицировать загрузку архива, например загрузку из частного реестра, установите HTTP-заголовки, которые Claude Code отправляет с ней. Установите `headers` на источник `url` marketplace, который вы зарегистрировали, например запись [`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces). На Claude Code v2.1.238 или позже вы можете установить его на запись плагина вместо этого, рядом с `source`.

550 

551Если значение, которое вы поместили бы в `headers`, недолговечно, например токен, который ваш реестр создает по запросу, установите вместо этого команду `headersHelper` в том же месте. Claude Code запускает команду и отправляет объект JSON, который она печатает, как заголовки этого места. Требует Claude Code v2.1.238 или позже.

552 

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

554 

555| Место | Загрузки, которые получают заголовки | Когда Claude Code запускает `headersHelper`, установленный там |

556| :------------------------- | :-------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

557| Источник `url` marketplace | Загрузки архивов на происхождении URL marketplace, означающие одну и ту же схему, хост и порт | Перед каждой выборкой `marketplace.json` marketplace и перед каждой загрузкой архива на этом происхождении. Claude Code повторно использует вывод одного запуска до 60 секунд |

558| Запись плагина | Только загрузка этой записи | Только когда пользователь устанавливает или обновляет этот один плагин отдельно и [принимает команду](#how-users-accept-a-headershelper-command) |

559 

560Где оба места устанавливают заголовок с одним и тем же именем, Claude Code отправляет значение записи. В одном месте заголовок, который печатает команда, переопределяет заголовок с одним и тем же именем, указанный в `headers`.

561 

562<h5 id="add-a-headershelper-to-a-plugin-entry">

563 Добавьте headersHelper к записи плагина

564</h5>

565 

566Эта запись устанавливает `headersHelper` рядом с `source`. Она также устанавливает `"strict": false`, что Claude Code требует от записи `marketplace.json`, которая устанавливает `headersHelper`. С [`"strict": false`](#strict-mode), запись marketplace является полным определением плагина, поэтому пользователь может просмотреть, что содержит плагин, перед принятием команды:

567 

568```json theme={null}

569{

570 "name": "my-plugin",

571 "description": "Formatting commands for internal services",

572 "strict": false,

573 "commands": "./commands",

574 "source": {

575 "source": "archive",

576 "url": "https://registry.example.com/plugins/my-plugin-2.1.0.zip"

577 },

578 "headersHelper": "/opt/bin/mint-registry-token.sh"

579}

580```

581 

582Чтобы проверить запись, запустите `claude plugin install my-plugin@your-marketplace`. Claude Code показывает вам команду и URL архива и загружает ZIP-файл после того, как вы примете.

583 

584До v2.1.238 Claude Code загружал архив записи без её `headers` или `headersHelper`, поэтому установка, которая полагалась на них, не удавалась с `HTTP 401 while downloading plugin archive from`, за которым следует URL, с кодом состояния реестра вместо 401.

585 

586<h4 id="write-the-headershelper-command">

587 Напишите команду headersHelper

588</h4>

589 

590Независимо от того, устанавливаете ли вы `headersHelper` на источник `url` marketplace или на запись плагина, напишите команду, чтобы она соответствовала этим требованиям:

591 

592* **Текст команды**: максимум 500 символов печатного ASCII, без прогонов из четырех или более пробелов.

593* **Вывод**: печать одного объекта JSON имен заголовков и строковых значений на stdout, затем выход 0 в течение 10 секунд.

594* **Shell и рабочий каталог**: Claude Code запускает команду через `sh` или `cmd.exe` на Windows из каталога конфигурации, `~/.claude` или [`CLAUDE_CONFIG_DIR`](/docs/ru/env-vars#variables). Дайте абсолютный путь или команду на `PATH`, потому что относительный путь разрешается относительно этого каталога, а не проекта пользователя.

595* **Переменные, которые Claude Code удаляет**: из окружения команды, установленной в записи `marketplace.json` или в `.claude/settings.json` или `.claude/settings.local.json` проекта, Claude Code удаляет каждую переменную, имя которой содержит слово, такое как `TOKEN`, `SECRET`, `KEY` или `AUTH`, включая `ANTHROPIC_API_KEY`. Claude Code не применяет это удаление к команде, установленной в пользовательских параметрах, файле `--settings` или управляемых параметрах.

596* **Переменные, которые Claude Code устанавливает**: `CLAUDE_CODE_MARKETPLACE_URL` и `CLAUDE_CODE_MARKETPLACE_NAME` для команды источника `url`, и `CLAUDE_CODE_PLUGIN_NAME` и `CLAUDE_CODE_PLUGIN_ARCHIVE_URL` для команды записи. `CLAUDE_CODE_MARKETPLACE_NAME` не установлена при первой выборке после того, как пользователь добавит marketplace по URL, потому что эта выборка — это то, что предоставляет имя.

597 

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

599 

600```json theme={null}

601{"Authorization": "Bearer eyJhbGciOiJSUzI1NiJ9"}

602```

603 

604<h4 id="when-claude-code-skips-a-headershelper-command-or-drops-its-output">

605 Когда Claude Code пропускает команду headersHelper или отбрасывает её вывод

606</h4>

607 

608Claude Code не запускает команду `headersHelper` или отбрасывает заголовки, которые пришли из `headers` или из вывода команды, в этих ситуациях:

609 

610* **Команда не удается**: если команда выходит с ненулевым кодом, работает более 10 секунд или печатает что-либо, кроме объекта JSON строковых значений, Claude Code не выполняет выборку или загрузку, для которой она запустила команду.

611* **URL marketplace не начинается с `https://`**: Claude Code не запускает команду этого источника `url` и отправляет только заголовки, указанные в его поле `headers`.

612* **Перенаправление покидает происхождение**: когда загрузка перенаправляется с происхождения URL архива, Claude Code отбрасывает значения `headers` и вывод команды как источника `url` marketplace, так и записи плагина.

613* **Запись устанавливает заголовок маршрутизации или идентификации**: Claude Code отбрасывает имена маршрутизации запросов и идентификации клиента, такие как `Host`, `Cookie` и `X-Forwarded-*` из `headers` записи и вывода команды, и сохраняет имена аутентификации, такие как `Authorization`. Claude Code фильтрует каждую запись `marketplace.json` таким образом, и [встроенную запись параметров](/docs/ru/settings-reference#extraknownmarketplaces) в зависимости от того, какой файл её объявляет.

614* **Команда установлена в параметрах каталога `--add-dir`**: Claude Code игнорирует её, на источнике `url` и на [встроенной записи плагина](/docs/ru/settings-reference#extraknownmarketplaces) одинаково, и отправляет только `headers` этого файла.

615* **Управляемые параметры блокируют команду**: установка [`disableCommandPluginSources`](/docs/ru/settings-reference#disablecommandpluginsources) на `true` блокирует команды `headersHelper`, и [`allowManagedHooksOnly`](/docs/ru/settings-reference#allowmanagedhooksonly) также блокирует их, если `disableCommandPluginSources` явно не `false`. При любом блокировании Claude Code все еще запускает команду для marketplace, который сами управляемые параметры объявляют.

616 

617<h4 id="how-users-accept-a-headershelper-command">

618 Как пользователи принимают команду headersHelper

619</h4>

620 

621Пользователь принимает команду записи плагина каждый раз, когда устанавливает или обновляет этот один плагин отдельно, из собственного представления плагина в `/plugin` или с `claude plugin install` или `claude plugin update`. Claude Code показывает команду и URL архива и запускает команду только после того, как пользователь примет.

622 

623В неинтерактивной оболочке передайте [`--yes`](/docs/ru/plugins-reference#plugin-install) для принятия команды. Чтобы принять только команду, которую предыдущий запуск `--json` отобразил, передайте [`--accept-command`](/docs/ru/plugins-reference#plugin-install) с `sha256`, который запуск сообщил.

624 

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

626 

627<h5 id="installs-and-updates-that-refuse-the-command-instead-of-asking">

628 Установки и обновления, которые отказывают команде вместо запроса

629</h5>

630 

631При любой операции, отличной от установки или обновления одного плагина, Claude Code не запускает команду записи и не загружает её архив, поэтому плагин остается в установленной версии или остается неустановленным. То, что видит пользователь, зависит от операции:

632 

633* **Установка нескольких плагинов одновременно, из предложения плагина или как зависимость другого плагина**: Claude Code отказывает плагину, который имеет команду, и указывает пользователю на собственное представление этого плагина в `/plugin`. Другие плагины в массовой установке все еще устанавливаются. Плагин, который зависит от отказанного плагина, не устанавливается, пока пользователь не установит отказанный плагин отдельно.

634* **Фоновое автообновление или запуск сеанса для плагина, архив которого никогда не был загружен**: Claude Code перечисляет плагин на вкладке `/plugin` Errors, чтобы пользователь знал, что нужно установить или обновить его вручную. Автообновление, которое находит запись, по-прежнему объявляет установленную версию, не перечисляет ничего.

635 

636<h5 id="when-a-marketplace-url-source’s-command-runs">

637 Когда запускается команда headersHelper источника marketplace `url`

638</h5>

639 

640`headersHelper` источника `url` marketplace объявляется в файле параметров, например в записи [`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces), а не в каталоге, который публикует marketplace, поэтому Claude Code не просит пользователя принять её при каждой установке или обновлении. Файл параметров, который её объявляет, определяет, когда Claude Code её запускает:

641 

642| Файл параметров | Когда Claude Code запускает команду |

643| :-------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

644| Пользовательские параметры, файл `--settings` или управляемый файл параметров на машине | Без запроса, включая во время фонового обновления marketplace |

645| `.claude/settings.json` или `.claude/settings.local.json` проекта | Только после того, как пользователь примет [диалог доверия рабочей области](/docs/ru/permissions#what-runs-before-you-trust-a-folder) для этой папки. Сеанс `-p` или SDK не считается принятием, и ни доверие, предоставленное родительской папке |

646| Управляемые параметры сервера | Только после того, как пользователь одобрит доставленные параметры в [диалоге одобрения безопасности](/docs/ru/server-managed-settings#security-approval-dialogs) |

647 

648В сеансе `-p` или SDK Claude Code не может показать диалог одобрения безопасности. Он применяет другие доставленные параметры, но выборка marketplace и любая загрузка архива, которая нуждается в команде, не удается, пока пользователь не одобрит в интерактивном сеансе.

649 

650Для [встроенной записи плагина](/docs/ru/settings-reference#extraknownmarketplaces) в одном из этих файлов Claude Code требует того же доверия папки или одобрения параметров, что и для команды уровня marketplace в этом файле, и пользователь также принимает команду записи при каждой установке или обновлении.

651 

652<h3 id="command-sources">

653 Источники команд

654</h3>

655 

656Используйте `command`, когда локально установленный инструмент создает каталог плагина, например IDE, который отображает свой плагин для выбранной в данный момент цепочки инструментов. Claude Code запускает команду, когда пользователь устанавливает плагин, и переустанавливает её в фоне один раз за сеанс, поэтому ваши пользователи получают изменённый вывод инструмента без переустановки. Требует Claude Code v2.1.229 или позже. На v2.1.120 через v2.1.228 установка плагина не удается с `This plugin uses a source type your Claude Code version does not support. Update Claude Code and try again.`, и на более старых версиях весь marketplace не загружается.

657 

658Эта запись устанавливает плагин из любого каталога, который печатает инструмент:

659 

660```json theme={null}

661{

662 "name": "my-plugin",

663 "source": {

664 "source": "command",

665 "command": "my-tool claude-plugin-path"

666 }

667}

668```

669 

670Claude Code запускает команду через оболочку платформы, `sh` на macOS и Linux или `cmd.exe` на Windows, из домашнего каталога пользователя. Команда должна печать ровно одну строку на stdout и выход с кодом 0. Эта строка — абсолютный путь каталога, который содержит полный плагин к моменту выхода команды, и путь может изменяться между запусками.

671 

672Claude Code останавливает команду, которая работает дольше, чем `timeout` секунд, и установка или обновление не удается. Claude Code также отказывает печатанному пути в этих случаях, и установка или обновление не удается таким же образом:

673 

674* Каталог не имеет содержимого плагина на его верхнем уровне, например каталога `.claude-plugin/` или каталога `skills/`, `commands/`, `agents/` или `hooks/`

675* Каталог — это тот, в котором был запущен Claude Code, или один из его родителей

676* На Windows путь — это путь UNC

677 

678Источники команд принимают эти поля:

679 

680| Поле | Тип | Описание |

681| :-------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

682| `command` | string | Обязательно. Команда оболочки, которая печатает абсолютный путь каталога плагина как одну строку на stdout и выходит 0. Должна быть печатным ASCII, максимум 500 символов, без прогонов из четырех или более пробелов, чтобы пользователи могли просмотреть всю команду, которую их просят принять |

683| `timeout` | number | Опционально. Целое число секунд для ожидания команды перед отказом (по умолчанию: 60, максимум: 600) |

684| `mode` | string | Опционально. `"copy"` (по умолчанию) копирует печатанный каталог в кэш плагинов. `"link"` использует печатанный каталог на месте. См. [Режим копирования и режим link](#copy-mode-and-link-mode) |

685 

686<h4 id="copy-mode-and-link-mode">

687 Режим копирования и режим link

688</h4>

689 

690С `"mode": "copy"` по умолчанию Claude Code копирует печатанный каталог в кэш плагинов с версией и выводит [версию плагина](/docs/ru/plugins-reference#version-management) из хеша содержимого каталога. Ваш инструмент может удалить или переписать каталог после выхода команды, и переустановка, которая создает идентичное содержимое, считается актуальной. Claude Code отказывает установку каталога размером более 256 МиБ или содержащего более 20 000 записей.

691 

692Установите `"mode": "link"` для больших каталогов плагинов, которые не должны копироваться, например для отображаемого экспорта SDK. Claude Code заполняет запись кэша плагина ссылкой на каждую запись верхнего уровня печатанного каталога и использует файлы на месте, поэтому ничего не копируется, содержимое файлов не хешируется, и ограничения размера не применяются. Установка не удается, если запись верхнего уровня — это символическая ссылка, которая указывает вне печатанного каталога. Claude Code также пропускает [установку зависимостей пакета Node.js](/docs/ru/plugins-reference#node-js-package-dependencies) для плагина в режиме link, поэтому печатайте каталог, который уже содержит любые `node_modules`, которые нужны плагину.

693 

694Сохраняйте печатанный каталог на месте столько, сколько плагин остается установленным, потому что Claude Code загружает плагин через эти ссылки при каждом запуске. Claude Code выводит [версию плагина](/docs/ru/plugins-reference#version-management) из реального пути печатанного каталога и его записей верхнего уровня, а не файлов внутри, поэтому печатайте другой путь для сигнала нового содержимого. В сеансе, запущенном в печатанном каталоге или где-либо ниже, Claude Code вообще не загружает плагин.

695 

696Claude Code не поддерживает режим link на Windows и отказывает установку плагина в режиме link там. Объявите `"mode": "copy"` вместо этого.

697 

698<h4 id="how-users-accept-the-command">

699 Как пользователи принимают команду

700</h4>

701 

702Claude Code запускает вашу команду на машине пользователя, поэтому она привязывает каждый запуск к явному принятию пользователем:

703 

704* Когда пользователи устанавливают плагин из его экрана деталей в `/plugin` или устанавливают или обновляют его с `claude plugin install` или `claude plugin update` в интерактивном терминале, Claude Code сначала показывает им точную строку команды и записывает принятую команду для этой установки. `claude plugin update`, который может продолжаться при принятии той же команды, не показывает ничего.

705* В неинтерактивной оболочке, например в скрипте подготовки, передайте `--yes` в `claude plugin install` или `claude plugin update` для принятия команды, которую она печатает. Чтобы принять только команду, которую предыдущий запуск `--json` отобразил, передайте [`--accept-command`](/docs/ru/plugins-reference#plugin-install) с `sha256`, который запуск сообщил.

706* Каждый другой путь запускает только команду, которую пользователь уже принял. Это включает обновления, запущенные из `/plugin`, и фоновые запуски, описанные в [Когда Claude Code переустанавливает команду](#when-claude-code-re-runs-the-command). Когда ничего не было принято, Claude Code отказывает запустить команду и говорит пользователю, как её просмотреть. Claude Code никогда не устанавливает плагин с источником команды как зависимость другого плагина, поэтому пользователи устанавливают его сами в первую очередь.

707* Если вы измените `command` записи или переключите её `mode`, пользователи сохраняют версию, которую они уже имеют, и Claude Code останавливает переустановку команды. В интерактивных сеансах вкладка `/plugin` Errors показывает новую команду, пока пользователь не просмотрит и не примет её, запустив `claude plugin update <plugin>@<marketplace>`.

708 

709Администраторы могут блокировать источники команд во всей организации с помощью управляемого параметра [`disableCommandPluginSources`](/docs/ru/settings-reference#disablecommandpluginsources). Если организация устанавливает [`allowManagedHooksOnly`](/docs/ru/settings-reference#allowmanagedhooksonly), Claude Code блокирует источники команд по умолчанию.

710 

711<h4 id="when-claude-code-re-runs-the-command">

712 Когда Claude Code переустанавливает команду

713</h4>

714 

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

716 

717* Каждый раз, когда пользователь устанавливает или обновляет плагин

718* Один раз за сеанс для каждого включённого плагина с источником команды, в фоне, вскоре после запуска сеанса. Этот запуск не проходит через автообновление marketplace, поэтому не зависит от [параметра автообновления](/docs/ru/discover-plugins#configure-auto-updates) marketplace

719* При запуске или на `/reload-plugins`, когда установленная версия включённого плагина отсутствует в кэше плагинов

720 

721Claude Code пропускает два фоновых запуска, когда пользователь устанавливает [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ru/env-vars). Явные установки и обновления все еще запускают команду с этой переменной установленной.

722 

723Когда хешированный вывод команды изменился, Claude Code устанавливает результат как новую версию и перезагружает его в работающем интерактивном сеансе, переключая [те же компоненты, которые переключает `/reload-plugins`](/docs/ru/plugins-reference#environment-variables). Пользователь видит уведомление, что плагин был перезагружен. Если переустановка на месте аннулирует кэш подсказок сеанса, Claude Code вместо этого предлагает пользователю запустить `/reload-plugins`, который [предупреждает о стоимости кэша и применяется при переустановке с `--force`](/docs/ru/prompt-caching#enabling-or-disabling-a-plugin).

724 

725<h3 id="advanced-plugin-entries">

726 Расширенные записи плагинов

727</h3>

728 

729Этот пример показывает запись плагина, использующую множество дополнительных полей, включая пользовательские пути для команд, агентов, hooks и MCP servers:

730 

731```json theme={null}

732{

733 "name": "enterprise-tools",

734 "source": {

735 "source": "github",

736 "repo": "company/enterprise-plugin"

737 },

738 "description": "Инструменты автоматизации корпоративного рабочего процесса",

739 "version": "2.1.0",

740 "author": {

741 "name": "Enterprise Team",

742 "email": "enterprise@example.com"

743 },

744 "homepage": "https://docs.example.com/plugins/enterprise-tools",

745 "repository": "https://github.com/company/enterprise-plugin",

746 "license": "MIT",

747 "keywords": ["enterprise", "workflow", "automation"],

748 "category": "productivity",

749 "commands": [

750 "./commands/core/",

751 "./commands/enterprise/",

752 "./commands/experimental/preview.md"

753 ],

754 "agents": ["./agents/security-reviewer.md", "./agents/compliance-checker.md"],

755 "hooks": {

756 "PostToolUse": [

757 {

758 "matcher": "Write|Edit",

759 "hooks": [

760 {

761 "type": "command",

762 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/validate.sh"

763 }

764 ]

765 }

766 ]

767 },

768 "mcpServers": {

769 "enterprise-db": {

770 "command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",

771 "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"]

772 }

773 },

774 "strict": false

775}

776```

777 

778Ключевые моменты, на которые следует обратить внимание:

779 

780* **`commands` и `agents`**: вы можете указать несколько каталогов или отдельные файлы. Пути относительны к корню плагина и должны оставаться внутри него.

781 * Claude Code отказывает путь, который разрешается вне каталога плагина, например `./../shared.md`, с ошибкой [`path escapes plugin directory`](/docs/ru/errors#path-escapes-plugin-directory), и все еще загружает плагин без этого компонента

782* **`${CLAUDE_PLUGIN_ROOT}`**: используйте эту переменную в командах hooks и конфигурациях MCP server для ссылки на файлы в каталоге установки плагина.

783 * См. [таблицу подстановки](/docs/ru/plugins-reference#environment-variables) для того, какие поля конфигурации подставляют её для каждого типа сервера

784 * Для зависимостей или состояния, которое должно сохраняться при обновлениях плагина, используйте [`${CLAUDE_PLUGIN_DATA}`](/docs/ru/plugins-reference#persistent-data-directory) вместо этого

785* **`strict: false`**: поскольку это установлено на false, плагину не нужен собственный `plugin.json`. Запись marketplace определяет все. См. [Strict mode](#strict-mode) ниже.

786 

787По умолчанию skills плагина загружаются из каталога `skills/` в его `source`. Пути, указанные в поле `skills`, добавляются к этому сканированию:

788 

789```json theme={null}

790"skills": ["./skills/", "./extra-skills/"]

791```

792 

793Когда несколько записей плагинов совместно используют один каталог `skills/` в корне marketplace (`source: "./"`), вместо этого указывайте конкретные подкаталоги, чтобы каждая запись загружала только свои собственные skills:

794 

795```json theme={null}

796"source": "./",

797"skills": ["./skills/code-review", "./skills/docs"]

798```

799 

800С источником в корне marketplace указанные пути являются полным набором для этой записи, и другие каталоги в общем каталоге `skills/` не загружаются. Указание самого `./skills/` или корня плагина сохраняет полное сканирование. Если ни один из указанных путей не существует, вместо этого запускается сканирование по умолчанию.

801 

802<h3 id="strict-mode">

803 Strict mode

804</h3>

805 

806Поле `strict` контролирует, является ли `plugin.json` авторитетом для определений компонентов (skills, агенты, hooks, MCP servers, стили вывода).

807 

808| Значение | Поведение |

809| :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- |

810| `true` (по умолчанию) | `plugin.json` является авторитетом. Запись marketplace может дополнить его дополнительными компонентами, и оба источника объединяются. |

811| `false` | Запись marketplace является полным определением. Если плагин также имеет `plugin.json`, который объявляет компоненты, это конфликт и плагин не загружается. |

812 

813**Когда использовать каждый режим:**

814 

815* **`strict: true`**: плагин имеет собственный `plugin.json` и управляет своими компонентами. Запись marketplace может добавить дополнительные skills или hooks сверху. Это значение по умолчанию и работает для большинства плагинов.

816* **`strict: false`**: оператор marketplace хочет полный контроль. Репозиторий плагина предоставляет необработанные файлы, и запись marketplace определяет, какие из этих файлов открыты как skills, агенты, hooks и т. д. Полезно, когда оператор marketplace переструктурирует или курирует компоненты плагина иначе, чем предполагал автор плагина.

817 

818<h2 id="host-and-distribute-marketplaces">

819 Размещение и распространение marketplace

820</h2>

821 

822Когда пользователи добавляют marketplace, размещенный в репозитории Git, или устанавливают плагин на основе Git из его списка, Claude Code клонирует этот репозиторий marketplace или плагина на машину пользователя. Клон никогда не загружает содержимое [Git LFS](https://git-lfs.com), поэтому файлы, отслеживаемые LFS, поступают как файлы-указатели. Держите файлы, которые нужны вашим плагинам, вне LFS.

823 

824<h3 id="host-on-github-recommended">

825 Размещение на GitHub (рекомендуется)

826</h3>

827 

828GitHub обеспечивает рекомендуемый способ размещения и распространения marketplace:

829 

8301. **Создание репозитория**: установите новый репозиторий для вашего marketplace

8312. **Добавление файла marketplace**: создайте `.claude-plugin/marketplace.json` с определениями ваших плагинов

8323. **Совместное использование с командами**: пользователи добавляют ваш marketplace с помощью `/plugin marketplace add owner/repo`

833 

834**Преимущества**: встроенное управление версиями, отслеживание проблем и функции совместной работы команды.

835 

836<h3 id="host-on-other-git-services">

837 Размещение на других сервисах Git

838</h3>

839 

840Любой сервис хостинга Git работает, например GitLab, Bitbucket и самостоятельно размещаемые серверы. Пользователи добавляют с полным URL репозитория:

841 

842```shell theme={null}

843/plugin marketplace add https://gitlab.com/company/plugins.git

844```

845 

846<h3 id="private-repositories">

847 Частные репозитории

848</h3>

849 

850Claude Code поддерживает установку плагинов из частных репозиториев. Если вы распространяете ваш marketplace через [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins) вместо этого, ваши учетные данные Git не задействованы: организационная синхронизация читает репозиторий marketplace через подключение вашей организации GitHub или GitLab на claude.ai. См. [Распространение через параметры организации](#distribute-through-organization-settings) для информации о том, какие источники плагинов могут быть частными.

851 

852<h4 id="commands-you-run">

853 Команды, которые вы запускаете

854</h4>

855 

856Когда вы запускаете `/plugin marketplace add`, `/plugin install`, `/plugin update` или `/plugin marketplace update`, Claude Code использует ваши существующие помощники учетных данных Git, поэтому доступ HTTPS через `gh auth login`, macOS Keychain или `git-credential-store` работает так же, как в вашем терминале. Доступ SSH работает, пока хост уже находится в вашем файле `known_hosts` и ключ загружен в `ssh-agent`, так как Claude Code подавляет интерактивные подсказки SSH для отпечатка хоста и пароля ключа. Сокращение GitHub `owner/repo` по умолчанию клонирует через SSH; установите [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/ru/env-vars#variables), чтобы вместо этого клонировать их через HTTPS.

857 

858<h4 id="background-auto-updates">

859 Фоновые автоматические обновления

860</h4>

861 

862Фоновое обновление проверяет удаленное хранилище marketplace на предмет новых коммитов с помощью ваших настроенных помощников учетных данных Git, так же как команды, которые вы запускаете. Для удаленных SSH ключ, загруженный в `ssh-agent`, аутентифицирует проверку. Claude Code запускает проверку неинтерактивно: он отключает подсказки терминала Git и программы askpass, а также указывает помощникам учетных данных не выводить подсказки. Возможность проверки аутентифицироваться в частном репозитории через HTTPS зависит от вашего помощника:

863 

864* Помощник, который может предоставить сохраненные учетные данные без подсказки, аутентифицирует проверку. Git Credential Manager, помощник macOS Keychain и `git-credential-store` работают таким образом, как только они содержат учетные данные для хоста.

865* Помощник, который должен вас попросить, не может ответить в фоновом режиме. Обновление не удается молча, и существующий checkout остается на месте, поэтому ваши плагины продолжают работать из последнего синхронизированного состояния. Запустите `/plugin marketplace update <name>`, чтобы обновить marketplace с вашими учетными данными.

866 

867Когда проверка находит checkout в актуальном состоянии, Claude Code оставляет его как есть. Когда проверка находит новые коммиты или не удается, потому что не может достичь или аутентифицироваться на удаленном хранилище, Claude Code клонирует marketplace снова и заменяет новый клон. Если этот клон не удается, существующий checkout остается на месте. Повторное клонирование может [истечь на больших репозиториях](#git-operations-time-out).

868 

869Два параметра делают частные marketplace предсказуемыми:

870 

871* Установите `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1`, чтобы сохранить существующий checkout без попытки повторного клонирования, когда фоновая проверка не может достичь или аутентифицироваться на удаленном хранилище. Ваши плагины продолжают работать из последнего синхронизированного состояния, и ручные обновления с `/plugin marketplace update` по-прежнему аутентифицируются с вашими учетными данными.

872* Настройте помощника учетных данных Git, например с помощью `gh auth setup-git` для GitHub, чтобы фоновая проверка и повторное клонирование могли аутентифицироваться без подсказок.

873 

874Установка токена поставщика, такого как `GITHUB_TOKEN`, в вашей среде не включает фоновую аутентификацию сама по себе. Токены вступают в силу только через настроенного помощника учетных данных, например помощника CLI `gh`, который читает `GH_TOKEN` и `GITHUB_TOKEN`.

875 

876<Note>

877 В средах CI/CD настройте помощника учетных данных Git перед установкой плагинов из частных репозиториев. На GitHub Actions экспортируйте токен с доступом для чтения к репозиторию marketplace как `GH_TOKEN`, затем запустите `gh auth setup-git`. Токен рабочего процесса по умолчанию может получить доступ только к репозиторию самого рабочего процесса, поэтому частный marketplace в другом репозитории требует личного токена доступа или токена приложения.

878</Note>

879 

880<h3 id="distribute-through-organization-settings">

881 Распространение через параметры организации

882</h3>

883 

884Если вы распространяете плагины через [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins) в плане Team или Enterprise, применяются эти правила источника:

885 

886* На github.com и gitlab.com репозиторий marketplace должен быть частным или внутренним. Организационная синхронизация читает репозиторий через подключение, которое соответствует его хосту:

887 * **github.com**: Claude GitHub App

888 * **Ваш хост GitHub Enterprise Server**: [GitHub Enterprise App](/docs/ru/github-enterprise-server#admin-setup) вашей организации

889 * **gitlab.com или ваш самостоятельно управляемый экземпляр GitLab**: токен доступа в [конфигурации GitLab](#sync-a-gitlab-hosted-marketplace) вашей организации для этого хоста

890* Каждый источник плагина должен быть типа `github`, `url` или `git-subdir`, или [относительный путь](#relative-paths), который начинается с `./`. Если вы перечисляете плагин по простому имени под `metadata.pluginRoot`, организационная синхронизация отклоняет его как неподдерживаемый источник, поэтому напишите путь полностью, например `./plugins/deploy-tools`.

891* Источник плагина может быть частным в трех случаях:

892 * Источник github.com, который совместно использует владельца репозитория marketplace

893 * Источник на хосте GitHub Enterprise вашей организации с установленным GHE App на репозитории

894 * Источник `url` или `git-subdir` на том же хосте GitLab, что и репозиторий marketplace. На gitlab.com источник также должен находиться под той же группой верхнего уровня или пространством имен пользователя, что и репозиторий marketplace.

895* Любой другой источник плагина должен быть общедоступным репозиторием на github.com, gitlab.com или bitbucket.org, который организационная синхронизация получает без учетных данных. Организационная синхронизация отклоняет источники плагинов на хостах, которые эти правила не охватывают.

896 

897См. [Manage plugins for your organization](https://support.claude.com/en/articles/13837433) для рабочего процесса администратора.

898 

899Чтобы включить частные плагины, поместите папки плагинов внутри репозитория marketplace и ссылайтесь на них с помощью [относительного пути](#relative-paths). Организационная синхронизация упаковывает каждый плагин во время распространения, поэтому пользователи никогда не нуждаются в доступе к отдельному репозиторию источника.

900 

901Например, эта запись плагина `marketplace.json` ссылается на плагин, который вы зафиксировали в `plugins/deploy-tools` в репозитории marketplace:

902 

903```json theme={null}

904{

905 "name": "deploy-tools",

906 "source": "./plugins/deploy-tools"

907}

908```

909 

910<h4 id="sync-a-gitlab-hosted-marketplace">

911 Синхронизация marketplace, размещенного на GitLab

912</h4>

913 

914Чтобы синхронизировать marketplace с gitlab.com или самостоятельно управляемого экземпляра GitLab, [Owner](/docs/ru/server-managed-settings#access-control) сначала добавляет конфигурацию GitLab для этого хоста в [**Organization settings > Claude Code**](https://claude.ai/admin-settings/claude-code). Конфигурации GitLab находятся в публичной бета-версии и применяются только к синхронизации marketplace плагинов. Добавление одной не делает репозитории GitLab доступными в [облачных сеансах](/docs/ru/claude-code-on-the-web#limitations). См. [Manage plugins for your organization](https://support.claude.com/en/articles/13837433) для шагов настройки.

915 

916Когда вы добавляете marketplace, введите HTTPS URL проекта, например `https://gitlab.example.com/platform/claude-plugins`. Проекты в вложенных подгруппах работают. Организационная синхронизация читает ветку по умолчанию проекта. Если вы включите **Sync automatically**, только push в ветку по умолчанию запускают синхронизацию.

917 

918<h4 id="keep-executables-out-of-the-top-level-bin-directory">

919 Держите исполняемые файлы вне каталога bin верхнего уровня

920</h4>

921 

922Не включайте каталог `bin/` верхнего уровня в любой плагин, который вы распространяете через параметры организации. claude.ai отклоняет плагин, который имеет его, независимо от того, поступает ли плагин через синхронизацию marketplace или прямую загрузку:

923 

924* **Синхронизация marketplace**: организационная синхронизация отклоняет этот плагин и синхронизирует остальную часть marketplace. Сообщение об ошибке начинается с `Plugin contains a top-level bin/ directory`.

925* **Прямая загрузка**: если вы загружаете плагин в [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins) вместо этого, claude.ai отклоняет загрузку с тем же сообщением.

926 

927Держите исполняемые файлы в другом каталоге, например `scripts/`, и ссылайтесь на них как `${CLAUDE_PLUGIN_ROOT}/scripts/<name>` из ваших [skills, hooks или MCP server configs](/docs/ru/plugins-reference#environment-variables).

928 

929<h3 id="require-marketplaces-for-your-team">

930 Требование marketplace для вашей команды

931</h3>

932 

933Вы можете настроить ваш репозиторий так, чтобы Claude Code добавлял ваш marketplace для членов команды один раз, когда они [доверяют папке проекта](/docs/ru/permissions#what-runs-before-you-trust-a-folder), без отдельного запроса. Добавьте ваш marketplace в `.claude/settings.json`:

934 

935```json theme={null}

936{

937 "extraKnownMarketplaces": {

938 "company-tools": {

939 "source": {

940 "source": "github",

941 "repo": "your-org/claude-plugins"

942 }

943 }

944 }

945}

946```

947 

948Вы также можете указать, какие плагины должны быть включены по умолчанию:

949 

950```json theme={null}

951{

952 "enabledPlugins": {

953 "code-formatter@company-tools": true,

954 "deployment-tools@company-tools": true

955 }

956}

957```

958 

959Для полных параметров конфигурации см. [Plugin settings](/docs/ru/settings-reference#plugin-settings).

960 

961<Note>

962 Если вы используете локальный источник `directory` или `file` с относительным путем, путь разрешается относительно основного checkout вашего репозитория. Когда вы запускаете Claude Code из git worktree, путь все еще указывает на основной checkout, поэтому все worktrees совместно используют одно и то же расположение marketplace. Состояние marketplace хранится один раз для каждого пользователя в `~/.claude/plugins/known_marketplaces.json`, а не для каждого проекта.

963</Note>

964 

965<h3 id="pre-populate-plugins-for-containers">

966 Предварительное заполнение плагинов для контейнеров

967</h3>

968 

969Для образов контейнеров и сред CI вы можете предварительно заполнить каталог плагинов во время сборки, чтобы Claude Code запускался с уже доступными marketplace и плагинами, без клонирования во время выполнения. Установите переменную окружения `CLAUDE_CODE_PLUGIN_SEED_DIR` на этот каталог.

970 

971Чтобы наслоить несколько каталогов seed, разделите пути с `:` на Unix или `;` на Windows. Claude Code ищет каждый каталог по порядку и использует первый seed, содержащий данный marketplace или кэш плагина.

972 

973Каталог seed отражает структуру `~/.claude/plugins`:

974 

975```

976$CLAUDE_CODE_PLUGIN_SEED_DIR/

977 known_marketplaces.json

978 marketplaces/<name>/...

979 cache/<marketplace>/<plugin>/<version>/...

980```

981 

982Чтобы построить каталог seed, запустите Claude Code один раз во время сборки образа, установите нужные вам плагины, затем скопируйте полученный каталог `~/.claude/plugins` в ваш образ и укажите `CLAUDE_CODE_PLUGIN_SEED_DIR` на него.

983 

984Чтобы пропустить шаг копирования, установите `CLAUDE_CODE_PLUGIN_CACHE_DIR` на путь целевого seed во время сборки, чтобы плагины устанавливались непосредственно туда:

985 

986```bash theme={null}

987CLAUDE_CODE_PLUGIN_CACHE_DIR=/opt/claude-seed claude plugin marketplace add your-org/plugins

988CLAUDE_CODE_PLUGIN_CACHE_DIR=/opt/claude-seed claude plugin install my-tool@your-plugins

989```

990 

991Затем установите `CLAUDE_CODE_PLUGIN_SEED_DIR=/opt/claude-seed` в среде выполнения вашего контейнера, чтобы Claude Code читал из seed при запуске.

992 

993При запуске Claude Code регистрирует marketplace, найденные в `known_marketplaces.json` seed, в основную конфигурацию и использует кэши плагинов, найденные под `cache/`, на месте без повторного клонирования. Это работает как в интерактивном режиме, так и в неинтерактивном режиме с флагом `-p`.

994 

995Детали поведения:

996 

997* **Только для чтения**: Claude Code никогда не записывает в каталог seed.

998* **Автоматические обновления отключены**: seed marketplace не автоматически обновляются.

999* **Записи seed имеют приоритет**: marketplace, объявленные в seed, перезаписывают любые совпадающие записи в конфигурации пользователя при каждом запуске. Чтобы отказаться от seed плагина, используйте `/plugin disable` вместо удаления marketplace.

1000* **Разрешение пути**: Claude Code находит содержимое marketplace, проверяя `$CLAUDE_CODE_PLUGIN_SEED_DIR/marketplaces/<name>/` во время выполнения, а не доверяя путям, хранящимся внутри JSON seed. Это означает, что seed работает правильно, даже если он смонтирован по другому пути, чем где он был построен.

1001* **Мутация заблокирована**: запуск `/plugin marketplace remove` или `/plugin marketplace update` против seed-управляемого marketplace не удается с указанием попросить вашего администратора обновить образ seed.

1002* **Компонуется с параметрами**: если `extraKnownMarketplaces` или `enabledPlugins` объявляют marketplace, который уже существует в seed, Claude Code использует копию seed вместо клонирования.

1003 

1004<h3 id="managed-marketplace-restrictions">

1005 Ограничения управляемого marketplace

1006</h3>

1007 

1008Для организаций, требующих строгого контроля над источниками плагинов, администраторы могут ограничить, какие marketplace плагинов пользователи могут добавлять, используя параметр [`strictKnownMarketplaces`](/docs/ru/settings-reference#strictknownmarketplaces) в управляемых параметрах. Чтобы также отклонить флаги CLI, которые загружают плагины, агентов и MCP серверы для одного запуска, объедините его с [`disableSideloadFlags`](/docs/ru/settings-reference#disablesideloadflags). Чтобы разрешить список, какие marketplace плагинов могут появляться как предложения контекстной установки, установите [`pluginSuggestionMarketplaces`](/docs/ru/settings-reference#pluginsuggestionmarketplaces).

1009 

1010`strictKnownMarketplaces` совпадает с marketplace, из которого поступает плагин, а не с записями внутри него, поэтому пользователи все еще могут установить плагин с [источником `command`](#command-sources) из разрешенного marketplace. Чтобы также заблокировать источники команд, установите [`disableCommandPluginSources`](/docs/ru/settings-reference#disablecommandpluginsources).

1011 

1012Когда `strictKnownMarketplaces` настроен в управляемых параметрах, поведение ограничения зависит от значения:

1013 

1014| Значение | Поведение |

1015| ---------------------------- | ----------------------------------------------------------------------------------------------------------- |

1016| Не определено (по умолчанию) | Нет ограничений. Пользователи могут добавлять любой marketplace |

1017| Пустой массив `[]` | Полная блокировка. Блокирует каждый источник marketplace, включая официальный marketplace Anthropic |

1018| Список источников | Список разрешений применяется. Пользователи могут добавлять только marketplace, которые совпадают с записью |

1019 

1020<h4 id="common-configurations">

1021 Общие конфигурации

1022</h4>

1023 

1024Отключение всех добавлений marketplace, включая официальный marketplace Anthropic:

1025 

1026```json theme={null}

1027{

1028 "strictKnownMarketplaces": []

1029}

1030```

1031 

1032Claude Code загружает плагины [синхронизированные с claude.ai](/docs/ru/plugins-reference#synced-plugins) из вашей учетной записи, а не из marketplace, поэтому эта блокировка их не охватывает. Чтобы остановить их также, установите [`syncClaudeAiPlugins`](/docs/ru/settings-reference#syncclaudeaiplugins) на `false` в управляемых параметрах или отключите Skills для вашей организации на claude.ai.

1033 

1034Разрешение только официального marketplace Anthropic. Сопоставление для записи одного репозитория является точным, поэтому эта запись не охватывает варианты `ref` или `path` одного и того же репозитория:

1035 

1036```json theme={null}

1037{

1038 "strictKnownMarketplaces": [

1039 {

1040 "source": "github",

1041 "repo": "anthropics/claude-plugins-official"

1042 }

1043 ]

1044}

1045```

1046 

1047С этой записью Claude Code сохраняет уже зарегистрированный официальный marketplace доступным и, на свежей машине, регистрирует marketplace автоматически при первом запуске Claude Code в интерактивном режиме.

1048 

1049Автоматическая регистрация не охватывает каждую машину. Она наиболее часто пропускает:

1050 

1051* Неинтерактивные среды, которые запускаются перед первым интерактивным запуском машины.

1052* Машины, где Claude Code уже запускался в интерактивном режиме под политикой, которая заблокировала marketplace, например блокировка пустого массива. Claude Code записывает заблокированную попытку и не повторяет попытку после изменения политики.

1053 

1054На этих машинах добавьте marketplace в [`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces) в том же `managed-settings.json`, чтобы Claude Code регистрировал его автоматически, или запустите `claude plugin marketplace add anthropics/claude-plugins-official`.

1055 

1056Разрешение только определенных marketplace:

1057 

1058```json theme={null}

1059{

1060 "strictKnownMarketplaces": [

1061 {

1062 "source": "github",

1063 "repo": "acme-corp/approved-plugins"

1064 },

1065 {

1066 "source": "github",

1067 "repo": "acme-corp/security-tools",

1068 "ref": "v2.0"

1069 },

1070 {

1071 "source": "url",

1072 "url": "https://plugins.example.com/marketplace.json"

1073 }

1074 ]

1075}

1076```

1077 

1078Разрешение каждого репозитория marketplace под организацией GitHub с записью [owner-wildcard](/docs/ru/settings-reference#owner-wildcards). Owner wildcards требуют Claude Code v2.1.223 или позже.

1079 

1080```json theme={null}

1081{

1082 "strictKnownMarketplaces": [

1083 {

1084 "source": "github",

1085 "repo": "acme-corp/*"

1086 }

1087 ]

1088}

1089```

1090 

1091Разрешение всех marketplace с внутреннего сервера Git с использованием сопоставления шаблонов регулярных выражений на хосте. Это рекомендуемый подход для [GitHub Enterprise Server](/docs/ru/github-enterprise-server#plugin-marketplaces-on-ghes) или самостоятельно размещаемых экземпляров GitLab:

1092 

1093```json theme={null}

1094{

1095 "strictKnownMarketplaces": [

1096 {

1097 "source": "hostPattern",

1098 "hostPattern": "^github\\.example\\.com$"

1099 }

1100 ]

1101}

1102```

1103 

1104Разрешение marketplace на основе файловой системы из определенного каталога с использованием сопоставления шаблонов регулярных выражений на пути:

1105 

1106```json theme={null}

1107{

1108 "strictKnownMarketplaces": [

1109 {

1110 "source": "pathPattern",

1111 "pathPattern": "^/opt/approved/"

1112 }

1113 ]

1114}

1115```

1116 

1117Используйте `".*"` как `pathPattern` для разрешения любого пути файловой системы при одновременном контроле сетевых источников с помощью `hostPattern`.

1118 

1119<Note>

1120 `strictKnownMarketplaces` ограничивает то, что пользователи могут добавлять, но не регистрирует marketplace самостоятельно. Чтобы сделать разрешенный marketplace доступным для пользователей автоматически, добавьте его в [`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces) в том же `managed-settings.json`.

1121 

1122 Официальный marketplace Anthropic — это единственный, который Claude Code регистрирует самостоятельно, и только когда список разрешений позволяет это. Автоматическая регистрация также пропускает некоторые машины, такие как неинтерактивные среды и машины, где более ранняя политика заблокировала его. Чтобы охватить эти машины, добавьте официальный marketplace в `extraKnownMarketplaces` также. Для двух параметров рядом см. справку [`strictKnownMarketplaces`](/docs/ru/settings-reference#strictknownmarketplaces).

1123</Note>

1124 

1125<h4 id="how-restrictions-work">

1126 Как работают ограничения

1127</h4>

1128 

1129Ограничения проверяются перед любой сетевой или файловой операцией. Проверка выполняется при добавлении marketplace и при установке, обновлении, обновлении и автоматическом обновлении плагина. Если marketplace был добавлен до настройки политики и его источник больше не совпадает со списком разрешений, Claude Code отказывает в установке или обновлении плагинов из него. То же самое применяется к `blockedMarketplaces`.

1130 

1131Где две списки применяются, зависит от того, где вы их установили:

1132 

1133* **Консоль администратора claude.ai**: Claude Code применяет оба списка в сеансах, которые [читают управляемые параметры сервера](/docs/ru/managed-settings#where-and-when-a-policy-applies). claude.ai также проверяет их, когда кто-либо в вашей организации добавляет новый marketplace из репозитория Git на claude.ai или из **Customize** в приложении Claude Desktop вне его вкладки Code. Это охватывает marketplace, который член добавляет для своей собственной учетной записи, и тот, который добавляется для всей организации под [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins). claude.ai отказывает репозиторию, который список разрешений не допускает или который список блокировки называет. Он не переопроверяет marketplace, который был добавлен в любом месте до установки списков, и он не проверяет загруженные плагины.

1134* **Файл управляемых параметров, политика уровня ОС или другой управляемый источник**: Claude Code применяет оба списка там, где он читает этот источник. claude.ai не читает его.

1135 

1136Чтобы заблокировать каждый репозиторий marketplace под владельцем GitHub, используйте форму owner-wildcard в записи `blockedMarketplaces`: `{ "source": "github", "repo": "untrusted-org/*" }`. Требуется Claude Code v2.1.223 или позже. Для правил сопоставления, которые отличаются между списком блокировки и списком разрешений, см. [Owner wildcards](/docs/ru/settings-reference#owner-wildcards).

1137 

1138Когда пользователь добавляет URL репозитория `https://`, который Claude Code [клонирует, а не получает](/docs/ru/discover-plugins#add-from-other-git-hosts), например простой URL репозитория `github.com` или `gitlab.com`, Claude Code также проверяет его против записей `url` в `blockedMarketplaces`. Claude Code блокирует добавление, если запись называет тот же URL. В этом сравнении Claude Code игнорирует суффикс `.git` и любой ref, который пользователь добавляет после `#`. Требуется Claude Code v2.1.232 или позже. До v2.1.232 Claude Code совпадал с записью `url` только против URL, который он получал как размещенный файл `marketplace.json`.

1139 

1140Список разрешений использует точное сопоставление для большинства типов источников, кроме записей owner-wildcard `github`. Чтобы marketplace был разрешен, все указанные поля должны совпадать:

1141 

1142* Для источников GitHub: `repo` обязателен, либо называя один репозиторий, либо используя форму owner-wildcard `owner/*` для охвата каждого репозитория под этим владельцем. Для того, как записи wildcard совпадают, включая правила регистра, см. [Owner wildcards](/docs/ru/settings-reference#owner-wildcards). Для записей одного репозитория `ref` должен совпадать точно или отсутствовать в обоих источниках marketplace и записи списка разрешений, и то же правило применяется к `path`

1143* Для источников URL: полный URL должен совпадать точно

1144* Для источников `hostPattern`: хост marketplace сопоставляется с шаблоном регулярного выражения

1145* Для источников `pathPattern`: путь файловой системы marketplace сопоставляется с шаблоном регулярного выражения

1146 

1147Точное сопоставление списка разрешений рассматривает URL, которые отличаются только конечной косой чертой, суффиксом `.git` или схемой `ssh://` и `https://` как разные значения. Если marketplace вашей организации можно клонировать более чем одной формой URL, предпочтите запись `hostPattern` буквальному URL, чтобы формы `https://`, `ssh://` и `user@host:path` все совпадали.

1148 

1149Marketplace [размещенный на claude.ai](/docs/ru/discover-plugins#add-from-claude-ai) сопоставляется по хосту: запись `hostPattern`, которая совпадает с `claude.ai`, управляет им в `strictKnownMarketplaces` и в `blockedMarketplaces`. В списке разрешений такая запись не допускает личные загрузки claude.ai члена. Требуется Claude Code v2.1.273 или позже.

1150 

1151Поскольку `strictKnownMarketplaces` установлен в [управляемых параметрах](/docs/ru/managed-settings), отдельные пользователи и конфигурации проекта не могут переопределить эти ограничения.

1152 

1153Для полных деталей конфигурации, включая все поддерживаемые типы источников и сравнение с `extraKnownMarketplaces`, см. справку [strictKnownMarketplaces](/docs/ru/settings-reference#strictknownmarketplaces).

1154 

1155<h3 id="version-resolution-and-release-channels">

1156 Разрешение версий и каналы выпуска

1157</h3>

1158 

1159Версии плагинов определяют пути кэша и обнаружение обновлений: если разрешенная версия совпадает с тем, что уже есть у пользователя, `/plugin update` и автоматическое обновление пропускают плагин. Для источников на основе Git, если вы опустите `version`, Claude Code использует разрешенный SHA коммита источника, поэтому пользователи получают обновление всякий раз, когда этот коммит изменяется; это самая простая установка для внутренних или активно разрабатываемых плагинов. См. [Version management](/docs/ru/plugins-reference#version-management) для полного порядка разрешения, включая источники `archive`.

1160 

1161<Warning>

1162 Установка `version` закрепляет плагин для каждого типа источника, кроме [`command`](#command-sources), чья версия всегда включает хеш того, что произвела команда. Плагин [загруженный на месте](/docs/ru/plugins-reference#plugin-caching-and-file-resolution) из marketplace, добавленного как локальный каталог, также не закреплен. Если вы объявляете `"version": "1.0.0"` в `plugin.json` и отправляете новые коммиты без изменения этой строки, существующие пользователи этих источников сохраняют кэшированную копию, потому что Claude Code видит ту же версию. Увеличивайте поле при каждом выпуске или опустите его, чтобы вернуться к разрешенной версии.

1163 

1164 Избегайте установки `version` одновременно в `plugin.json` и в записи marketplace. Значение `plugin.json` всегда побеждает молча, поэтому устаревшая версия манифеста может скрыть версию, которую вы установили в `marketplace.json`.

1165</Warning>

1166 

1167<h4 id="set-up-release-channels">

1168 Установка каналов выпуска

1169</h4>

1170 

1171Для поддержки каналов выпуска "stable" и "latest" для ваших плагинов вы можете установить два marketplace, которые указывают на разные refs или SHAs одного репозитория. Затем вы можете дать каждой группе пользователей свой собственный marketplace через управляемые параметры одним из двух способов:

1172 

1173* Развертывание отдельных [endpoint-managed settings](/docs/ru/managed-settings#delivery-mechanisms), таких как файл управляемых параметров или профиль MDM, для устройств каждой группы. [Как Claude Code объединяет управляемые источники](/docs/ru/managed-settings#precedence-within-the-managed-tier) говорит, применяется ли файл или профиль для каждой группы на устройстве, которое также имеет источник на уровне организации.

1174* Определение одной [Claude apps gateway policy](/docs/ru/claude-apps-gateway-config#managed) для каждой группы. Шлюз применяет первую политику, чье правило соответствия подходит пользователю, поэтому упорядочьте политики так, чтобы каждый пользователь достигал политики своей группы. Политика группы `extraKnownMarketplaces` заменяет карту политики catch-all, а не объединяется с ней, поэтому перечислите каждый marketplace, который группе нужен в политике группы, а не только ее marketplace канала.

1175 

1176Управляемые параметры сервера из консоли администратора [применяются к каждому пользователю в вашей организации](/docs/ru/server-managed-settings#current-limitations), поэтому они не могут нести назначение для каждой группы.

1177 

1178<Warning>

1179 Каждый канал должен разрешаться в другую версию. Если вы используете явные версии, `plugin.json` должен объявлять другую `version` в каждом закрепленном ref. Если вы опустите `version`, различные SHA коммитов уже различают каналы. Если два refs разрешаются в одну и ту же строку версии, Claude Code рассматривает их как идентичные и пропускает обновление.

1180</Warning>

1181 

1182<h5 id="example">

1183 Пример

1184</h5>

1185 

1186```json theme={null}

1187{

1188 "name": "stable-tools",

1189 "plugins": [

1190 {

1191 "name": "code-formatter",

1192 "source": {

1193 "source": "github",

1194 "repo": "acme-corp/code-formatter",

1195 "ref": "stable"

1196 }

1197 }

1198 ]

1199}

1200```

1201 

1202```json theme={null}

1203{

1204 "name": "latest-tools",

1205 "plugins": [

1206 {

1207 "name": "code-formatter",

1208 "source": {

1209 "source": "github",

1210 "repo": "acme-corp/code-formatter",

1211 "ref": "latest"

1212 }

1213 }

1214 ]

1215}

1216```

1217 

1218<h5 id="assign-channels-to-user-groups">

1219 Назначение каналов группам пользователей

1220</h5>

1221 

1222Назначьте каждый marketplace соответствующей группе пользователей через управляемые параметры для каждой группы или политику шлюза, описанные в разделе [Установка каналов выпуска](#set-up-release-channels). Например, стабильная группа получает:

1223 

1224```json theme={null}

1225{

1226 "extraKnownMarketplaces": {

1227 "stable-tools": {

1228 "source": {

1229 "source": "github",

1230 "repo": "acme-corp/stable-tools"

1231 }

1232 }

1233 }

1234}

1235```

1236 

1237Группа ранних доступов получает вместо этого `latest-tools`:

1238 

1239```json theme={null}

1240{

1241 "extraKnownMarketplaces": {

1242 "latest-tools": {

1243 "source": {

1244 "source": "github",

1245 "repo": "acme-corp/latest-tools"

1246 }

1247 }

1248 }

1249}

1250```

1251 

1252<h4 id="pin-dependency-versions">

1253 Закрепление версий зависимостей плагинов

1254</h4>

1255 

1256Плагин может ограничить свои зависимости диапазоном semver, чтобы обновления зависимости не нарушили зависимый плагин. См. [Ограничение версий зависимостей плагинов](/docs/ru/plugin-dependencies) для соглашения о тегах Git `{plugin-name}--v{version}`, синтаксиса диапазона и того, как несколько ограничений на одну и ту же зависимость объединяются.

1257 

1258<h3 id="rename-or-remove-a-plugin">

1259 Переименование или удаление плагина

1260</h3>

1261 

1262`name` плагина является его стабильным идентификатором. Пользователи ссылаются на него в `enabledPlugins`, `pluginConfigs` и командах `/plugin install`, поэтому изменение его нарушает каждую существующую установку. Чтобы изменить метку, отображаемую в пользовательском интерфейсе, без нарушения установок, установите [`displayName`](#optional-plugin-fields) и оставьте `name` неизменным.

1263 

1264Если вы должны изменить `name` плагина или удалить плагин из массива `plugins`, добавьте запись `renames` верхнего уровня, чтобы существующие пользователи мигрировали вместо того, чтобы видеть ошибку `plugin-not-found`. Автоматическая миграция требует Claude Code v2.1.193 или позже. Сопоставьте каждое бывшее имя с его текущим именем или с `null`, если плагин больше не существует. Следующий пример переименовывает `formatter` в `code-formatter` и записывает, что `legacy-linter` был удален:

1265 

1266```json theme={null}

1267{

1268 "name": "acme-tools",

1269 "owner": { "name": "Acme" },

1270 "plugins": [

1271 { "name": "code-formatter", "source": "./plugins/code-formatter" }

1272 ],

1273 "renames": {

1274 "formatter": "code-formatter",

1275 "legacy-linter": null

1276 }

1277}

1278```

1279 

1280Когда пользователь запускает Claude Code со старым именем все еще в своих параметрах, Claude Code следует карте `renames`:

1281 

1282* Если запись указывает на новое имя, Claude Code загружает плагин под его новым именем и показывает однострочное уведомление, такое как `Renamed to "code-formatter" in the "acme-tools" marketplace`. Затем он переписывает старый ключ на новый ключ в областях параметров пользователя, проекта и локальных параметров для обоих `enabledPlugins` и `pluginConfigs`, поэтому уведомление появляется один раз.

1283* Для записи `null` Claude Code удаляет старый ключ и уведомление сообщает, что плагин был удален из marketplace.

1284* Если переименованный плагин использует удаленный источник, такой как `github` или `npm`, Claude Code сообщает `plugin-cache-miss` после переименования и пользователь должен запустить `/plugin install` один раз, чтобы получить его под новым именем.

1285 

1286Рассматривайте `renames` как историю только для добавления: сохраняйте старые записи на месте даже после того, как вы ожидаете, что каждый пользователь мигрировал. Claude Code следует цепочкам, поэтому если вы позже переименуете `code-formatter` в `formatter-pro`, добавьте вторую запись вместо редактирования первой. Пользователь, который все еще имеет оригинальный `formatter` включенным, затем разрешается через обе записи в `formatter-pro`.

1287 

1288Запустите `claude plugin validate .` после редактирования карты; он отклоняет любую запись, цепочка которой образует цикл или не заканчивается на `null` или имя, указанное в `plugins`.

1289 

1290<Note>

1291 Управляемые и политические параметры доступны только для чтения для Claude Code, поэтому плагины, включенные там, не могут быть переписаны автоматически. Переименованный плагин все еще загружается каждый сеанс, но уведомление о переименовании повторяется до тех пор, пока администратор не обновит `enabledPlugins` в файле управляемых параметров, чтобы использовать новое имя. То же самое применяется к плагинам, включенным через другие источники только для чтения, такие как `--add-dir`.

1292</Note>

1293 

1294Более ранние версии Claude Code игнорируют поле `renames` и сообщают `plugin-not-found` для старого имени.

1295 

1296<h2 id="validation-and-testing">

1297 Валидация и тестирование

1298</h2>

1299 

1300Протестируйте ваш marketplace перед совместным использованием. Валидация проверяет структуру файлов; чтобы протестировать, изменяет ли плагин поведение Claude на реалистичных запросах, запустите его набор eval с помощью [`claude plugin eval`](/docs/ru/plugin-evals) перед публикацией новой версии.

1301 

1302Из вашего каталога marketplace проверьте синтаксис JSON:

1303 

1304```bash theme={null}

1305claude plugin validate .

1306```

1307 

1308Или из Claude Code:

1309 

1310```shell theme={null}

1311/plugin validate .

1312```

1313 

1314Добавьте marketplace для тестирования:

1315 

1316```shell theme={null}

1317/plugin marketplace add ./path/to/marketplace

1318```

1319 

1320Установите тестовый плагин, чтобы проверить, что все работает:

1321 

1322```shell theme={null}

1323/plugin install test-plugin@marketplace-name

1324```

1325 

1326Для полного диапазона рабочих процессов тестирования плагинов см. [Тестирование ваших плагинов локально](/docs/ru/plugins#test-your-plugins-locally). Для технического устранения неполадок см. [Справка плагинов](/docs/ru/plugins-reference).

1327 

1328<h2 id="manage-marketplaces-from-the-cli">

1329 Управление marketplace из CLI

1330</h2>

1331 

1332Claude Code предоставляет неинтерактивные подкоманды `claude plugin marketplace` для написания скриптов и автоматизации. Они эквивалентны командам `/plugin marketplace`, доступным в интерактивном сеансе.

1333 

1334<h3 id="plugin-marketplace-add">

1335 Plugin marketplace add

1336</h3>

1337 

1338Добавьте marketplace из репозитория GitHub, URL Git, удаленного URL или локального пути.

1339 

1340```bash theme={null}

1341claude plugin marketplace add <source> [options]

1342```

1343 

1344**Аргументы:**

1345 

1346* `<source>`: Сокращение GitHub `owner/repo`, URL Git, удаленный URL к файлу `marketplace.json` или путь локального каталога. Чтобы закрепить на ветке или теге, добавьте `@ref` к сокращению GitHub или `#ref` к URL Git

1347 

1348URL должен включать свою схему. Начиная с Claude Code v2.1.196, хост, введенный без схемы, такой как `gitlab.example.com/team/plugins`, отклоняется как недействительное сокращение `owner/repo`, и ошибка указывает вам добавить `https://` или использовать `./` для локального пути. Более ранние версии неправильно интерпретировали его как путь репозитория GitHub и не удаются при клонировании с ошибкой GitHub not-found.

1349 

1350**Параметры:**

1351 

1352| Параметр | Описание | По умолчанию |

1353| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------- |

1354| `--scope <scope>` | Где объявить marketplace: `user`, `project` или `local`. См. [Области установки плагинов](/docs/ru/plugins-reference#plugin-installation-scopes) | `user` |

1355| `--sparse <paths...>` | Ограничить checkout определенными каталогами через git sparse-checkout. Полезно для монорепозиториев | |

1356| `--claudeai` | Прочитайте аргумент как имя [marketplace, размещенного на claude.ai](/docs/ru/discover-plugins#add-from-claude-ai), вместо источника. Требует Claude Code v2.1.273 или более поздней версии | |

1357 

1358Добавьте marketplace из GitHub, используя сокращение `owner/repo`:

1359 

1360```bash theme={null}

1361claude plugin marketplace add acme-corp/claude-plugins

1362```

1363 

1364Закрепите на определенной ветке или теге с помощью `@ref`:

1365 

1366```bash theme={null}

1367claude plugin marketplace add acme-corp/claude-plugins@v2.0

1368```

1369 

1370Добавьте из URL Git на хосте, отличном от GitHub:

1371 

1372```bash theme={null}

1373claude plugin marketplace add https://gitlab.example.com/team/plugins.git

1374```

1375 

1376Добавьте из удаленного URL, который служит файлом `marketplace.json` напрямую:

1377 

1378```bash theme={null}

1379claude plugin marketplace add https://example.com/marketplace.json

1380```

1381 

1382Добавьте из локального каталога для тестирования:

1383 

1384```bash theme={null}

1385claude plugin marketplace add ./my-marketplace

1386```

1387 

1388Объявите marketplace в области проекта, чтобы он был общим с вашей командой через `.claude/settings.json`:

1389 

1390```bash theme={null}

1391claude plugin marketplace add acme-corp/claude-plugins --scope project

1392```

1393 

1394Для монорепозитория ограничьте checkout каталогами, содержащими содержимое плагина:

1395 

1396```bash theme={null}

1397claude plugin marketplace add acme-corp/monorepo --sparse .claude-plugin plugins

1398```

1399 

1400Добавьте [marketplace, размещенный на claude.ai](/docs/ru/discover-plugins#add-from-claude-ai), по имени, напечатанному в разделе `From claude.ai:` команды `claude plugin marketplace list`:

1401 

1402```bash theme={null}

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

1404```

1405 

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

1407 

1408<h3 id="plugin-marketplace-list">

1409 Plugin marketplace list

1410</h3>

1411 

1412Перечислите все настроенные marketplace.

1413 

1414```bash theme={null}

1415claude plugin marketplace list [options]

1416```

1417 

1418**Параметры:**

1419 

1420| Параметр | Описание |

1421| :------- | :--------------- |

1422| `--json` | Вывести как JSON |

1423 

1424С помощью `--json` каждая запись включает `name`, `source`, поле `installLocation` с локальным путем кэша, где хранится marketplace, и поля, специфичные для источника: `repo` для источников GitHub, `url` для источников Git и URL, а также `path` для локальных источников. Источники GitHub и Git также включают поле `ref`, когда marketplace был добавлен с закрепленной веткой или тегом.

1425 

1426Добавленный [marketplace claude.ai](/docs/ru/discover-plugins#add-from-claude-ai) не имеет локального клона, поэтому его запись содержит его идентификаторы claude.ai, `marketplaceId` и `organizationUuid`, вместо `installLocation`.

1427 

1428В сеансах терминала, где [плагины синхронизируются из вашей учетной записи claude.ai](/docs/ru/plugins-reference#synced-plugins), текстовый список заканчивается разделом `From claude.ai:`, в котором указано, что claude.ai перечисляет для вашей учетной записи помимо добавленных вами marketplace. Чтобы добавить один из них, см. [Добавить из claude.ai](/docs/ru/discover-plugins#add-from-claude-ai). Вывод `--json` охватывает только настроенные marketplace и не включает этот раздел. Требует Claude Code v2.1.273 или более поздней версии.

1429 

1430<h3 id="plugin-marketplace-remove">

1431 Plugin marketplace remove

1432</h3>

1433 

1434Удалите настроенный marketplace. Также принимается псевдоним `rm`.

1435 

1436```bash theme={null}

1437claude plugin marketplace remove <name> [options]

1438```

1439 

1440**Аргументы:**

1441 

1442* `<name>`: имя marketplace для удаления, как показано в `claude plugin marketplace list`. Это `name` из `marketplace.json`, а не источник, который вы передали в `add`

1443 

1444**Параметры:**

1445 

1446| Параметр | Описание | По умолчанию |

1447| :---------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------ |

1448| `--scope <scope>` | Ограничить удаление одной областью параметров: `user`, `project` или `local`. См. [Области установки плагинов](/docs/ru/plugins-reference#plugin-installation-scopes). Если опущено, объявление удаляется из каждой редактируемой области. Если указано, удаляется только объявление этой области; общее состояние, кэш и установленные данные плагина сохраняются, когда marketplace все еще объявлен в другой области | (все области) |

1449 

1450<Warning>

1451 Удаление marketplace из его последней оставшейся области также удаляет все плагины, которые вы установили из него. Чтобы обновить marketplace без потери установленных плагинов, используйте `claude plugin marketplace update` вместо этого.

1452</Warning>

1453 

1454<h3 id="plugin-marketplace-update">

1455 Plugin marketplace update

1456</h3>

1457 

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

1459 

1460```bash theme={null}

1461claude plugin marketplace update [name]

1462```

1463 

1464**Аргументы:**

1465 

1466* `[name]`: имя marketplace для обновления, как показано в `claude plugin marketplace list`. Обновляет все marketplace, если опущено

1467 

1468Оба `remove` и `update` не удаются при запуске против seed-управляемого marketplace, который доступен только для чтения. При обновлении всех marketplace записи, управляемые seed, пропускаются, и другие marketplace все еще обновляются. Чтобы изменить плагины, предоставленные seed, попросите вашего администратора обновить образ seed. См. [Предварительное заполнение плагинов для контейнеров](#pre-populate-plugins-for-containers).

1469 

1470<h2 id="troubleshooting">

1471 Устранение неполадок

1472</h2>

1473 

1474<h3 id="marketplace-not-loading">

1475 Marketplace не загружается

1476</h3>

1477 

1478**Симптомы**: Не удается добавить marketplace или увидеть плагины из него

1479 

1480**Решения**:

1481 

1482* Проверьте, что URL marketplace доступен

1483* Убедитесь, что `.claude-plugin/marketplace.json` существует по указанному пути

1484* Убедитесь, что синтаксис JSON действителен, используя `claude plugin validate .` или `/plugin validate .` из каталога marketplace. Чтобы проверить frontmatter skill, agent и command, см. [Валидация плагина или каталога без манифеста](#validate-a-plugin-or-a-directory-without-a-manifest)

1485* Для частных репозиториев подтвердите, что у вас есть разрешения доступа

1486 

1487<h3 id="marketplace-validation-errors">

1488 Ошибки валидации marketplace

1489</h3>

1490 

1491Запустите `claude plugin validate .` или `/plugin validate .` из каталога вашего marketplace, чтобы проверить наличие проблем. Когда валидатор указывает на каталог marketplace, он проверяет `marketplace.json` на ошибки схемы, дублирующиеся имена плагинов и обход пути источника. Для каждой записи, чей `source` является локальным путем, он также валидирует собственный `plugin.json` этого плагина и предупреждает, когда `version` записи не совпадает с версией в `plugin.json`. Проблемы, найденные в `plugin.json` плагина, имеют префикс с индексом записи в форме `plugins[2] plugin.json →`.

1492 

1493Начиная с Claude Code v2.1.196, проверка для каждой записи также:

1494 

1495* включает плагины, чей `source` является `.`

1496* запускается, когда `marketplace.json` находится вне каталога `.claude-plugin`, разрешая источники относительно собственного каталога файла

1497* сообщает о проблемах каждой записи даже когда другая часть файла имеет ошибки схемы

1498 

1499Более ранние версии пропускают плагины в корне marketplace и спускаются только из `.claude-plugin/marketplace.json`.

1500 

1501Из каталога marketplace Claude Code не открывает файлы skill, agent, command или hook плагинов. Чтобы найти ошибки в этих файлах, см. [Валидация плагина или каталога без манифеста](#validate-a-plugin-or-a-directory-without-a-manifest). В таблице ниже перечислены наиболее распространенные ошибки из каталога marketplace с причиной и решением для каждой:

1502 

1503| Ошибка | Причина | Решение |

1504| :------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------- |

1505| `No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json` | Каталог, который вы назвали, не имеет `.claude-plugin/marketplace.json` или `plugin.json`, и нет файлов skill, agent или command для проверки | Запустите из корня marketplace или создайте `.claude-plugin/marketplace.json` с обязательными полями |

1506| `Invalid JSON syntax: Unexpected token...` | Ошибка синтаксиса JSON в marketplace.json | Проверьте отсутствующие запятые, лишние запятые или неквотированные строки |

1507| `Duplicate plugin name "x" found in marketplace` | Два плагина имеют одно имя | Дайте каждому плагину уникальное значение `name` |

1508| `plugins[0].source: Path contains ".."` | Путь источника содержит `..` | Используйте пути относительно корня marketplace без `..`. См. [Относительные пути](#relative-paths) |

1509| `Marketplace name cannot contain control or bidirectional-formatting characters` | Имя marketplace содержит символ Unicode двунаправленного форматирования или управляющий символ, такой как escape или новая строка | Удалите символ из имени. До v2.1.247 эти символы выдавали ошибку `Marketplace name impersonates an official Anthropic/Claude marketplace` |

1510| `Plugin name cannot contain control or bidirectional-formatting characters` | Имя плагина `name` содержит символ Unicode двунаправленного форматирования или управляющий символ, такой как escape или новая строка | Удалите символ из имени. До v2.1.247 Claude Code не запускал эту проверку |

1511 

1512**Предупреждения** (не блокирующие):

1513 

1514* `Marketplace has no plugins defined`: добавьте хотя бы один плагин в массив `plugins`

1515* `No marketplace description provided`: добавьте описание верхнего уровня `description`, чтобы помочь пользователям понять ваш marketplace

1516* `Plugin name "x" is not kebab-case`: переименуйте в строчные буквы, цифры и дефисы только (например, `my-plugin`). Claude Code принимает другие формы, но синхронизация marketplace claude.ai их отклоняет.

1517* `Marketplace name "x" is reserved in Claude Desktop`: marketplace назван `org`, `org-provisioned` или `unknown`, в любом регистре. Claude Code принимает эти имена, но синхронизация управляемого marketplace Claude Desktop отклоняет весь marketplace. Переименуйте marketplace. До v2.1.221 `claude plugin validate` не запускал эту проверку.

1518* `Marketplace name "x" is not accepted by Claude Desktop` или `Plugin name "x" is not accepted by Claude Desktop`: Claude Desktop принимает имена длиной до 128 символов, состоящие из букв, цифр, `.`, `_` и `-`, начинающиеся с буквы или цифры. Claude Code принимает другие формы, но синхронизация управляемого marketplace Claude Desktop отклоняет marketplace, чье имя не проходит проверку, и молча удаляет запись плагина, чье имя не проходит. Переименуйте marketplace или плагин. До v2.1.221 `claude plugin validate` не запускал эти проверки.

1519 

1520<h4 id="validate-a-plugin-or-a-directory-without-a-manifest">

1521 Валидация плагина или каталога без манифеста

1522</h4>

1523 

1524Чтобы найти файлы skill, agent и command, чей frontmatter не парсится, запустите `claude plugin validate` и назовите каталог, который их содержит. Claude Code не смотрит вне каталога, который вы назвали. Каждый запуск, кроме одного, для плагина, который имеет `plugin.json`, требует Claude Code v2.1.233 или позже.

1525 

1526<h5 id="pick-the-directory-to-name">

1527 Выберите каталог для назначения

1528</h5>

1529 

1530Claude Code проверяет разные файлы в зависимости от того, какой каталог вы назовете. Найдите то, что вы хотите проверить в первом столбце, и запустите команду из этой строки:

1531 

1532| Для проверки | Запустите | Claude Code проверяет |

1533| :--------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1534| Плагин, который имеет `plugin.json` | `claude plugin validate ./plugins/my-plugin` | `plugin.json`, `hooks/hooks.json` и каталоги `skills`, `agents` и `commands` в корне плагина |

1535| Один каталог skills, agents или commands, такой как плагин, который еще не имеет `plugin.json` | `claude plugin validate .claude/skills`, `~/.claude/agents` или `./my-plugin/agents` | Каждый файл skill, agent или command в этом каталоге |

1536| Папка, чей skill является его корневым `SKILL.md` | `claude plugin validate ./skills`, назвав каталог `skills`, который содержит папку | Корневой `SKILL.md` каждой папки. Содержащий каталог должен быть назван `skills`; папка под другим именем, такая как `plugins/`, не имеет запуска, который проверяет его корневой `SKILL.md` |

1537| Три каталога проекта одновременно | `claude plugin validate .claude` или корень проекта, когда он не имеет манифеста `.claude-plugin/` | `.claude/skills`, `.claude/agents` и `.claude/commands` |

1538| Ваши каталоги уровня пользователя | `claude plugin validate ~/.claude` | `~/.claude/skills`, `~/.claude/agents` и `~/.claude/commands` |

1539 

1540<h5 id="check-a-plugin-whose-skill-is-its-root-skill-md">

1541 Проверка плагина, чей skill является его корневым `SKILL.md`

1542</h5>

1543 

1544Когда вы запускаете `claude plugin validate` для каталога плагина, Claude Code не проверяет `SKILL.md` в корне плагина. Когда плагин находится в каталоге с именем `skills`, запустите команду дважды:

1545 

1546* Назовите этот каталог `skills`, чтобы проверить корневой `SKILL.md` плагина.

1547* Назовите каталог плагина, чтобы проверить остальное.

1548 

1549Когда плагин находится под другим именем, такое как `plugins/`, запуск каталога `skills` недоступен, и ни один запуск не проверяет его корневой `SKILL.md`.

1550 

1551<h5 id="check-files-behind-symlinks">

1552 Проверка файлов за символическими ссылками

1553</h5>

1554 

1555Когда вы запускаете `claude plugin validate`, Claude Code не следует символическим ссылкам внутри каталога, который вы назвали. То, что он делает, зависит от того, где находится ссылка:

1556 

1557* **Связанный каталог `skills`, `agents` или `commands` под корнем плагина или `.claude`**: Claude Code предупреждает, что ничего в нем не было прочитано.

1558* **Связанная запись внутри каталога `skills`, `agents` или `commands`**: Claude Code пропускает ее и предупреждает, для каждого каталога, сколько записей оно пропустило, которые сессия загрузит.

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

1560 

1561В двух случаях skills запуск проходит с предупреждениями. Чтобы проверить связанные файлы, запустите снова и назовите каталог, который их содержит напрямую:

1562 

1563* **Плагин, чей каталог `skills` [ссылается на каталог skills соседнего плагина](/docs/ru/plugins-reference#share-files-within-a-marketplace-with-symlinks)**: назовите каталог соседнего плагина.

1564* **[Связанная запись skill](/docs/ru/skills#where-skills-live) в `~/.claude/skills` или `.claude/skills`**: Claude Code следует записи в сессии. Чтобы проверить ее, назовите каталог с именем `skills`, который содержит реальную папку.

1565 

1566<h5 id="read-the-validation-results">

1567 Прочитайте результаты валидации

1568</h5>

1569 

1570Чистый запуск заканчивается с `Validation passed`.

1571 

1572`No manifest found in directory` означает, что Claude Code не нашел `plugin.json` или `marketplace.json` там, и нет файла skill, agent или command в каталогах, которые он проверяет под ним. Назовите каталог `skills`, `agents` или `commands`, который содержит ваши файлы, вместо этого.

1573 

1574Две из ошибок, которые Claude Code сообщает из этих запусков, с исправлением для каждой:

1575 

1576* `YAML frontmatter failed to parse: ...`: исправьте YAML в блоке frontmatter файла skill, agent или command. До тех пор, пока вы это не сделаете, сессия не читает поля frontmatter из файла

1577* `Invalid JSON syntax: ...` на `hooks/hooks.json`: исправьте синтаксис JSON. До тех пор, пока вы это не сделаете, сессия загружает плагин без hooks в этом файле. Claude Code сообщает эту ошибку только в запуске плагина

1578 

1579В запуске плагина Claude Code также предупреждает о `CLAUDE.md` в корне плагина. Для путей, которые вы установили через [поля пути компонента](/docs/ru/plugins-reference#component-path-fields) в `plugin.json`, Claude Code проверяет, что каждый путь существует, но не читает файлы там.

1580 

1581<h3 id="plugin-installation-failures">

1582 Ошибки установки плагина

1583</h3>

1584 

1585**Симптомы**: Marketplace появляется, но установка плагина не удается

1586 

1587**Решения**:

1588 

1589* Проверьте, что URL источников плагинов доступны

1590* Убедитесь, что каталоги плагинов содержат необходимые файлы

1591* Для источников GitHub убедитесь, что репозитории являются общедоступными или у вас есть доступ

1592* Протестируйте источники плагинов вручную, клонируя/загружая их

1593* Если источник закрепляет как `ref`, так и `sha`, удаленная ветвь или тег не блокируют установку на большинстве хостов git, включая GitHub, GitLab и Bitbucket. На серверах, которые не поддерживают получение коммитов по SHA, таких как AWS CodeCommit, `ref` все еще должен существовать и закрепленный коммит должен быть достижим из него. Если установка все еще не удается, подтвердите, что закрепленный коммит все еще существует в репозитории

1594 

1595<h3 id="private-repository-authentication-fails">

1596 Ошибка аутентификации частного репозитория

1597</h3>

1598 

1599**Симптомы**: Ошибки аутентификации при установке плагинов из частных репозиториев

1600 

1601**Решения**:

1602 

1603Для ручной установки и обновлений:

1604 

1605* Проверьте, что вы аутентифицированы у вашего поставщика Git (например, запустите `gh auth status` для GitHub)

1606* Проверьте, что ваш помощник учетных данных настроен: `git config --global credential.helper`

1607* Запустите `git ls-remote <marketplace-url>`, чтобы проверить, может ли git аутентифицироваться самостоятельно. Если git запрашивает имя пользователя или пароль, сначала сохраните учетные данные: для GitHub через HTTPS запустите `gh auth setup-git`, а для SSH удаленных хостов загрузите ваш ключ в `ssh-agent`

1608 

1609Для фоновых автоматических обновлений:

1610 

1611* Фоновая проверка использует ваши настроенные помощники учетных данных Git, но никогда не запрашивает, поэтому ваш помощник должен иметь возможность ответить сохраненными учетными данными. SSH удаленные хосты с загруженным ключом в `ssh-agent` также аутентифицируются

1612* Если ваш помощник должен вас запросить, фоновое обновление не удается молча и существующий checkout остается на месте. Сначала войдите в ваш помощник, чтобы он содержал учетные данные для хоста. Для GitHub запустите `gh auth login`, затем `gh auth setup-git`

1613* Когда проверка находит новые коммиты или не может достичь или аутентифицироваться на удаленном хосте, Claude Code повторно клонирует marketplace с теми же учетными данными. Повторное клонирование может истечь по времени на больших репозиториях

1614* Установите `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1`, чтобы сохранить существующий checkout без попытки повторного клонирования, когда фоновая проверка не может достичь или аутентифицироваться на удаленном хосте

1615* Если повторное клонирование истекает по времени на большом репозитории, увеличьте лимит с помощью [`CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS`](#git-operations-time-out)

1616* Или обновляйте частные marketplace вручную с помощью `/plugin marketplace update <name>`, которая использует ваши учетные данные

1617 

1618До v2.1.280 фоновая проверка запускалась без ваших помощников учетных данных и не могла аутентифицироваться на частных репозиториях через HTTPS.

1619 

1620<h3 id="marketplace-updates-fail-in-offline-environments">

1621 Обновления marketplace не работают в автономных средах

1622</h3>

1623 

1624**Симптомы**: В автономной или изолированной среде фоновое обновление marketplace не может достичь удаленного хоста и Claude Code многократно пытается повторно клонировать, что не может успешно завершиться.

1625 

1626**Причина**: Фоновое обновление проверяет удаленный хост marketplace на наличие новых коммитов, и когда проверка не может достичь удаленного хоста, Claude Code пытается клонировать marketplace снова. В автономной среде клон не удается так же, и существующий checkout остается на месте. До v2.1.274 обновление запускало `git pull` в существующем checkout, перемещало checkout в сторону для повторного клонирования при сбое pull, и восстанавливало его впоследствии на основе наилучших усилий.

1627 

1628Обновление запускается в фоне после запуска, поэтому оно не задерживает запуск. Каждая сессия все еще повторяет неудачную попытку, и каждая операция Git может ждать [120-секундного таймаута](#git-operations-time-out).

1629 

1630**Решение**: Установите `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1`, чтобы пропустить попытку повторного клонирования и продолжить использование существующего checkout, когда проверка не может достичь удаленного хоста:

1631 

1632```bash theme={null}

1633export CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1

1634```

1635 

1636Для полностью автономных развертываний, где репозиторий никогда не будет доступен, используйте [`CLAUDE_CODE_PLUGIN_SEED_DIR`](#pre-populate-plugins-for-containers) для предварительного заполнения каталога плагинов во время сборки вместо этого.

1637 

1638<h3 id="git-operations-time-out">

1639 Операции Git истекают по времени

1640</h3>

1641 

1642**Симптомы**: Установка плагина или обновление marketplace не удается с ошибкой истечения времени, например `Git clone timed out after 120s`.

1643 

1644**Причина**: Claude Code использует 120-секундный таймаут для всех операций Git, включая клонирование репозиториев плагинов и повторное клонирование marketplace для его обновления. Большие репозитории или медленные сетевые соединения могут превысить этот лимит.

1645 

1646**Решение**: Увеличьте таймаут, используя переменную окружения `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS`. Значение указывается в миллисекундах:

1647 

1648```bash theme={null}

1649export CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS=300000 # 5 минут

1650```

1651 

1652<h3 id="plugins-with-relative-paths-fail-in-url-based-marketplaces">

1653 Плагины с относительными путями не работают в marketplace на основе URL

1654</h3>

1655 

1656**Симптомы**: Добавлен marketplace через URL, такой как `https://example.com/marketplace.json`, но плагины с источниками относительных путей, такие как `"./plugins/my-plugin"`, не устанавливаются с ошибкой `its marketplace entry path does not stay inside the marketplace directory`. Уже установленные плагины не загружаются с ошибкой `Plugin source path refused`. Обе сообщения имеют [запись справки об ошибке](/docs/ru/errors#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory).

1657 

1658**Причина**: добавление marketplace на основе URL загружает только сам файл `marketplace.json`, и Claude Code не загружает файлы плагинов по относительному пути с этого сервера. Относительные пути в записи marketplace ссылаются на файлы на удаленном сервере, которые не были загружены.

1659 

1660**Решения**:

1661 

1662* **Используйте внешние источники**: измените записи плагинов на любой [источник плагина](#plugin-sources), кроме относительного пути:

1663 ```json theme={null}

1664 { "name": "my-plugin", "source": { "source": "github", "repo": "owner/repo" } }

1665 ```

1666* **Используйте marketplace на основе Git**: Разместите ваш marketplace в репозитории Git и добавьте его с URL Git. Marketplace на основе Git клонируют весь репозиторий, что делает относительные пути рабочими.

1667 

1668<h3 id="files-not-found-after-installation">

1669 Файлы не найдены после установки

1670</h3>

1671 

1672**Симптомы**: Плагин устанавливается, но ссылки на файлы не работают, особенно файлы вне каталога плагина

1673 

1674**Причина**: Claude Code копирует установленные плагины в каталог кэша, если только плагин не загружается на месте. [`command` источник в режиме link](#copy-mode-and-link-mode) загружается на месте, как и [источник относительного пути](#relative-paths) в marketplace, добавленном из локального каталога. Пути, которые ссылаются на файлы вне скопированного каталога плагина (такие как `../shared-utils`), не будут работать, потому что эти файлы не копируются.

1675 

1676**Решения**: См. [Кэширование плагинов и разрешение файлов](/docs/ru/plugins-reference#plugin-caching-and-file-resolution) для обходных путей, включая символические ссылки и переструктурирование каталогов.

1677 

1678Для дополнительных инструментов отладки и распространенных проблем см. [Инструменты отладки и разработки](/docs/ru/plugins-reference#debugging-and-development-tools).

1679 

1680<h2 id="see-also">

1681 См. также

1682</h2>

1683 

1684* [Обнаружение и установка готовых плагинов](/docs/ru/discover-plugins) - Установка плагинов из существующих marketplace

1685* [Плагины](/docs/ru/plugins) - Создание собственных плагинов

1686* [Справка плагинов](/docs/ru/plugins-reference) - Полные технические спецификации и схемы

1687* [Параметры плагинов](/docs/ru/settings-reference#plugin-settings) - Параметры конфигурации плагинов

1688* [Справка strictKnownMarketplaces](/docs/ru/settings-reference#strictknownmarketplaces) - Ограничения управляемого marketplace

plugin-relevance.md +0 −186 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> Добавьте блок relevance к записям plugins на marketplace, чтобы Claude Code предлагал их, когда работа пользователя совпадает.

8 

9Если вы управляете marketplace plugins для вашей организации, вы можете заставить Claude Code предлагать конкретные plugins пользователям на основе того, над чем они работают. Добавьте блок `relevance` к записи plugin в `marketplace.json`, затем добавьте marketplace в список разрешённых в управляемых параметрах. Когда сеанс пользователя совпадает с одним из объявленных сигналов, Claude Code выводит предложение об установке этого plugin.

10 

11Предложения, объявленные на marketplace, являются добровольными для каждого marketplace через [управляемые параметры](/docs/ru/managed-settings). Никакие объявления `relevance` marketplace не создают предложения, пока администратор не добавит его в список разрешённых, включая официальный marketplace Anthropic. Claude Code также включает одно встроенное предложение, которое не зависит от этого списка разрешённых; это совет и все объявленные на marketplace советы отключаются, когда [`spinnerTipsEnabled`](/docs/ru/settings-reference#spinnertipsenabled) установлен на `false`.

12 

13Эта страница предназначена для операторов marketplace и администраторов предприятия. Если вы ищете установку plugins, см. [Обнаружение и установка plugins](/docs/ru/discover-plugins).

14 

15<h2 id="how-it-works">

16 Как это работает

17</h2>

18 

19Каждая запись plugin в `marketplace.json` может содержать объект `relevance`. Объект называет тему и один или несколько сигналов. Сигнал — это шаблон, который Claude Code проверяет в текущем сеансе, например рабочий каталог или файлы, которые Claude прочитал.

20 

21Сопоставление сигналов происходит локально на машине пользователя. Сопоставление не добавляет сетевой трафик и не сообщает, какие сигналы совпали или их значения, в Anthropic или оператору marketplace.

22 

23Когда сигнал совпадает и plugin ещё не установлен, Claude Code показывает plugin в трёх местах:

24 

25* **Spinner tip**: сообщение "Working with *topic*? Install the *plugin* plugin" с командой `/plugin install` появляется под спиннером, пока Claude отвечает.

26* **Session-start suggestion**: если сигнал `cwd` совпадает с рабочим каталогом, однострочное уведомление `plugin suggestion: <name>@<marketplace> · /plugin` появляется перед первым ходом.

27* **`/plugin` Discover tab**: plugin закреплён в верхней части списка Discover с аннотацией, такой как "suggested for this directory" или "suggested for stripe commands".

28 

29Spinner tip и уведомление о начале сеанса являются частью системы spinner-tips. Claude Code отключает оба, когда `spinnerTipsEnabled` разрешается в `false` в ваших файлах параметров, или когда `excludeDefault` разрешается в `true` в ключах [`spinnerTipsOverride`](/docs/ru/settings-reference#spinnertipsoverride) в пользовательских, `--settings` и управляемых параметрах, и эти ключи настраивают по крайней мере один совет или `tipsFile`.

30 

31Закрепление на вкладке Discover независимо от параметров советов.

32 

33Claude Code никогда не устанавливает plugin автоматически. Пользователь всегда подтверждает.

34 

35<h2 id="add-relevance-to-a-plugin-entry">

36 Добавьте relevance к записи plugin

37</h2>

38 

39Добавьте объект `relevance` к записи plugin в вашем `marketplace.json`. Следующий пример объявляет, что plugin `terraform-helpers` актуален, когда Claude читает файл `.tf` или когда Claude запускает `terraform`:

40 

41```json theme={null}

42{

43 "name": "acme-corp-plugins",

44 "owner": { "name": "Acme Platform Team" },

45 "plugins": [

46 {

47 "name": "terraform-helpers",

48 "source": "./plugins/terraform-helpers",

49 "description": "Acme conventions and helpers for Terraform",

50 "relevance": {

51 "topic": "Terraform",

52 "signals": {

53 "cli": ["terraform"],

54 "filesRead": ["**/*.tf"]

55 }

56 }

57 }

58 ]

59}

60```

61 

62Plugin с блоком `relevance`, но без совпадающего сигнала ведёт себя как любая другая запись marketplace. Он появляется в списке Discover в своей обычной позиции и никогда не выводится как spinner tip.

63 

64<h2 id="field-reference">

65 Справочник полей

66</h2>

67 

68<h3 id="relevance">

69 `relevance`

70</h3>

71 

72| Поле | Тип | Описание |

73| :-------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

74| `topic` | string | Необязательно. Фраза, которая заполняет "Working with *topic*?" в spinner tip. Часто название продукта, например `Stripe`. Используйте домен, такой как `design`, когда название plugin не читается естественно как тема. По умолчанию название plugin с каждым сегментом через дефис с заглавной буквой. Уведомление о начале сеанса не использует это значение. Максимум 64 символа. |

75| `signals` | object | Сопоставители, которые определяют, когда plugin актуален. Требуется по крайней мере один сигнал, чтобы plugin был предложен. См. таблицу ниже. |

76 

77<h3 id="relevance-signals">

78 `relevance.signals`

79</h3>

80 

81| Поле | Тип | Описание |

82| :------------- | :--------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

83| `cwd` | array of strings | Glob-шаблоны, сопоставляемые с рабочим каталогом сеанса. Сопоставляется как абсолютный путь и, когда находится в репозитории git, как путь относительно корня репозитория. Нормализовано с прямыми слешами и без учёта регистра. Каждый шаблон совпадает с самим каталогом и всем, что находится под ним, поэтому `infra`, `infra/` и `infra/**` ведут себя одинаково. Это единственный сигнал, который может совпадать при запуске сеанса, до первого хода. Максимум 10 шаблонов по 256 символов каждый. |

84| `cli` | array of strings | Названия команд из shell-команд, которые Claude запустил в этом сеансе, например `["stripe"]`. Применяется на каждой платформе: команды, запущенные на Windows через PowerShell или Git Bash, записываются одинаково. Claude Code записывает одно название команды на вызов shell-инструмента: первый токен после любых назначений переменных окружения и `sudo`. Составные команды вносят только свою ведущую команду, поэтому `cd infra && terraform plan` записывает `cd`, а не `terraform`. Точное совпадение. Максимум 10 записей по 64 символа каждая. |

85| `hosts` | array of strings | Имена хостов, видимые в URL-адресах `http://` или `https://` в Bash-командах этого сеанса, например `["api.stripe.com"]`. Только голое имя хоста в нижнем регистре: без схемы, порта или пути. Точное совпадение без учёта регистра. Максимум 20 записей по 128 символов каждая. |

86| `filesRead` | array of strings | Glob-шаблоны, сопоставляемые с путями файлов, которые Claude прочитал в этом сеансе, например `["**/*.tf"]`. Нормализовано с прямыми слешами и без учёта регистра. Максимум 10 шаблонов по 256 символов каждый. |

87| `manifestDeps` | array of objects | Зависимости, объявленные в манифестах пакетов, которые Claude прочитал в этом сеансе. Каждая запись — это `{ "file": "...", "pattern": "..." }`, где `file` — это регулярное выражение, сопоставляемое с путём файла манифеста, как записано в состояние сеанса, обычно абсолютный путь, и `pattern` — это регулярное выражение, сопоставляемое с содержимым этого файла. Якорь `file` в конце, например `[/\\\\]package\\.json$` в JSON-экранированной форме, потому что шаблон с якорем в начале никогда не совпадает с абсолютным путём. Пути не нормализуются по разделителям для этого сигнала, поэтому пути Windows используют обратные слеши. Файлы манифеста размером более 512 КБ пропускаются. Оба значения — это строки источника JavaScript `RegExp` максимум по 256 символов. `file` совпадает без учёта регистра. `pattern` чувствителен к регистру. Максимум 10 записей. |

88 

89Сигналы `cli`, `hosts`, `filesRead` и `manifestDeps` требуют истории сеанса, поэтому они могут совпадать только на spinner tip и вкладке Discover. Сигналы `filesRead` и `manifestDeps` проверяют записанное состояние файлов сеанса, которое также включает файлы, которые Claude написал или отредактировал, и автоматически загруженные файлы памяти `CLAUDE.md`. Для этих двух сигналов Claude Code пропускает пути в своём собственном [каталоге конфигурации](/docs/ru/claude-directory) и его временных каталогах.

90 

91Следующий пример использует `manifestDeps` для предложения plugin Stripe после того, как Claude прочитал `package.json`, который зависит от `stripe`. Шаблон `file` использует `[/\\\\]`, поэтому он совпадает как с прямыми слешами, так и с обратными слешами, и `\\.`, поэтому точка является литеральной. В JSON каждый обратный слеш в регулярном выражении написан дважды.

92 

93```json theme={null}

94{

95 "name": "stripe-helpers",

96 "source": "./plugins/stripe-helpers",

97 "relevance": {

98 "topic": "Stripe",

99 "signals": {

100 "manifestDeps": [

101 {

102 "file": "[/\\\\]package\\.json$",

103 "pattern": "\"stripe\"\\s*:"

104 }

105 ]

106 }

107 }

108}

109```

110 

111<Note>

112 Claude Code игнорирует неизвестные поля под `relevance` и `relevance.signals` при загрузке, поэтому старые клиенты продолжают загружать ваш marketplace.

113</Note>

114 

115<h2 id="enable-suggestions-in-managed-settings">

116 Включите предложения в управляемых параметрах

117</h2>

118 

119Объявление `relevance` в `marketplace.json` недостаточно само по себе. Администратор должен добавить marketplace в список разрешённых в [управляемых параметрах](/docs/ru/managed-settings) перед тем, как его предложения появятся пользователям.

120 

121Добавьте название marketplace в `pluginSuggestionMarketplaces`. Для любого marketplace, кроме официального marketplace Anthropic, также объявите источник marketplace в тех же управляемых параметрах, либо как запись этого названия в `extraKnownMarketplaces`, либо как запись в `strictKnownMarketplaces`. Разрешённое название игнорируется, если marketplace, зарегистрированный на машине, поступил из другого источника. Это предотвращает регистрацию несвязанного источника под разрешённым названием для предложения его plugins по всей вашей организации.

122 

123Следующий `managed-settings.json` регистрирует marketplace организации из репозитория GitHub и включает его предложения:

124 

125```json theme={null}

126{

127 "extraKnownMarketplaces": {

128 "acme-corp-plugins": {

129 "source": {

130 "source": "github",

131 "repo": "acme-corp/claude-plugins"

132 }

133 }

134 },

135 "pluginSuggestionMarketplaces": ["acme-corp-plugins"]

136}

137```

138 

139Официальный marketplace освобождается от требования объявления источника, потому что его название может регистрироваться только из официального источника Anthropic. Добавления названия в список разрешённых достаточно:

140 

141```json theme={null}

142{

143 "pluginSuggestionMarketplaces": ["claude-plugins-official"]

144}

145```

146 

147<h2 id="what-the-user-sees">

148 Что видит пользователь

149</h2>

150 

151Когда сигнал совпадает во время сеанса, spinner tip читается:

152 

153```text theme={null}

154Working with Terraform? Install the terraform-helpers plugin:

155/plugin install terraform-helpers@acme-corp-plugins

156```

157 

158При запуске сеанса совпадающий сигнал `cwd` выводит однострочное уведомление:

159 

160```text theme={null}

161plugin suggestion: terraform-helpers@acme-corp-plugins · /plugin

162```

163 

164Предложение данного plugin появляется максимум один раз каждые три сеанса в совокупности на spinner tip и уведомлении о начале сеанса, и ни один из них не повторяется после установки plugin. Уведомление о начале сеанса дополнительно перестаёт появляться после того, как предложение было показано дважды.

165 

166На вкладке `/plugin` Discover plugin закреплён выше других результатов с аннотацией, которая называет совпадающий сигнал, такой как `suggested for this directory` или `suggested for terraform commands`. Вкладка Discover закрепляет данный plugin один раз; последующие посещения перечисляют его в обычном порядке.

167 

168<h2 id="validate-your-marketplace">

169 Проверьте ваш marketplace

170</h2>

171 

172Запустите `claude plugin validate` для каталога вашего marketplace, чтобы проверить блок `relevance` перед публикацией:

173 

174```

175claude plugin validate ./my-marketplace

176```

177 

178Валидатор сообщает неизвестные ключи под `relevance` и `relevance.signals` как предупреждения, отмечает значение `relevance`, которое не является объектом, и отклоняет запись `signals.hosts`, которая включает схему, порт или путь.

179 

180<h2 id="see-also">

181 См. также

182</h2>

183 

184* [Создание и распространение marketplace plugin](/docs/ru/plugin-marketplaces): создайте marketplace, который размещает ваши plugins

185* [Рекомендуйте ваш plugin из вашего CLI](/docs/ru/plugin-hints): предложите пользователям из вашего собственного CLI вместо сигналов сеанса Claude Code

186* [Все параметры](/docs/ru/settings-reference#pluginsuggestionmarketplaces): `pluginSuggestionMarketplaces` и `extraKnownMarketplaces`

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): интеграция внешних инструментов

plugins-reference.md +0 −1645 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, включая схемы, команды CLI и спецификации компонентов.

8 

9<Tip>

10 Ищете способ установить plugins? См. [Обнаружение и установка plugins](/docs/ru/discover-plugins). Для создания plugins см. [Plugins](/docs/ru/plugins). Для распространения plugins см. [Plugin marketplaces](/docs/ru/plugin-marketplaces).

11</Tip>

12 

13**Plugin** — это самостоятельный каталог компонентов, который расширяет Claude Code пользовательской функциональностью. Компоненты plugin включают skills, agents, hooks, MCP servers, LSP servers и monitors.

14 

15<h2 id="plugin-components-reference">

16 Справочник компонентов плагинов

17</h2>

18 

19<h3 id="skills">

20 Skills

21</h3>

22 

23Плагины добавляют skills в Claude Code, создавая сочетания `/name`, которые вы или Claude можете вызвать.

24 

25**Расположение**: директория `skills/` или `commands/` в корне плагина, или один файл `SKILL.md` в корне плагина

26 

27**Формат файла**: Skills — это директории с `SKILL.md`; commands — это простые файлы markdown

28 

29**Структура skill**:

30 

31```text theme={null}

32skills/

33├── pdf-processor/

34│ ├── SKILL.md

35│ ├── reference.md (опционально)

36│ └── scripts/ (опционально)

37└── code-reviewer/

38 └── SKILL.md

39```

40 

41Skills и commands автоматически обнаруживаются при установке плагина.

42 

43Если плагин не имеет директории `skills/` и не имеет поля манифеста `skills`, то `SKILL.md` в корне плагина загружается как один skill. Установите поле frontmatter `name` для управления именем вызова skill. Без него Claude Code возвращается к имени директории установки. Для плагина [скопированного в кэш](#plugin-caching-and-file-resolution), это имя — строка версии, которая меняется при каждом обновлении. Для плагинов, которые поставляют более одного skill, используйте макет директории `skills/`, показанный выше.

44 

45В skills и commands плагинов логические поля frontmatter, такие как `disable-model-invocation`, принимают `yes`, `no`, `on`, `off`, `1` и `0` в любом регистре букв, в дополнение к `true` и `false`. До версии v2.1.218 Claude Code распознавал только `true` и `false`.

46 

47Для полной информации см. [Skills](/docs/ru/skills).

48 

49<h3 id="agents">

50 Agents

51</h3>

52 

53Плагины могут предоставлять специализированные подагенты для конкретных задач, которые Claude может автоматически вызывать при необходимости.

54 

55**Расположение**: директория `agents/` в корне плагина

56 

57**Формат файла**: Файлы markdown, описывающие возможности агента

58 

59**Структура агента**:

60 

61```markdown theme={null}

62name: agent-name

63description: What this agent specializes in and when Claude should invoke it

64model: sonnet

65effort: medium

66maxTurns: 20

67disallowedTools: Write, Edit

68 

69Detailed system prompt for the agent describing its role, expertise, and behavior.

70```

71 

72<h4 id="plugin-agent-frontmatter">

73 Frontmatter агента плагина

74</h4>

75 

76Файл агента плагина использует те же [поля frontmatter, что и файл подагента](/docs/ru/sub-agents#supported-frontmatter-fields), за исключением того, что Claude Code учитывает только некоторые из них, когда агент поступает из плагина:

77 

78* **Поддерживаемые**: `name`, `description`, `model`, `effort`, `maxTurns`, `tools`, `disallowedTools`, `skills`, `memory`, `background`, `omitClaudeMd`, `isolation`, `color` и `experimental`. Единственное допустимое значение `isolation` — это `"worktree"`.

79* **Не поддерживаемые по соображениям безопасности**: `hooks`, `mcpServers` и `permissionMode`. Claude Code игнорирует их при загрузке агента из плагина. Чтобы их использовать, скопируйте файл агента в `.claude/agents/` или `~/.claude/agents/`.

80* **Не поддерживаемые**: `initialPrompt`.

81 

82Вы можете поместить файлы агента плагина в подпапки `agents/`. Claude Code [загружает их рекурсивно](/docs/ru/sub-agents#choose-the-subagent-scope) и объединяет имя плагина, каждое имя подпапки и имя файла с двоеточиями для формирования scoped имени агента. Например, `agents/review/security.md` в плагине с именем `my-plugin` загружается как `my-plugin:review:security`. Два параметра изменяют это имя:

83 

84* Frontmatter `name`: он заменяет только имя файла, поэтому `name: audit` в `agents/review/security.md` загружается как `my-plugin:review:audit`

85* Поле манифеста [`agents`](#component-path-fields): файл, который вы там указываете, загружается без имён подпапок, поэтому `"agents": "./custom/review/security.md"` загружается как `my-plugin:security`

86 

87Claude Code загружает агента плагина даже когда его frontmatter не имеет `name` или не анализируется:

88 

89* Нет `name`: Claude Code называет агента по имени файла, поэтому `agents/reviewer.md` в плагине с именем `my-plugin` загружается как `my-plugin:reviewer`

90* Frontmatter, который не анализируется: Claude Code называет агента по имени файла, использует `Agent from my-plugin plugin` в качестве его описания и игнорирует каждое поле в файле

91 

92В отличие от этого, Claude Code пропускает файл проекта, пользователя или управляемого агента, frontmatter которого не имеет `name` или не анализируется.

93 

94Чтобы найти файлы в директории `agents/` плагина по умолчанию, frontmatter которых не анализируется, запустите `claude plugin validate`. Путь, который вы передаёте, зависит от того, имеет ли плагин манифест, и оба примера используют `./my-plugin` в качестве директории плагина:

95 

96* Плагин с манифестом: `claude plugin validate ./my-plugin`

97* Плагин без манифеста: `claude plugin validate ./my-plugin/agents`. Требует Claude Code v2.1.233 или позже.

98 

99Агенты появляются в [@-mention typeahead](/docs/ru/sub-agents#invoke-subagents-explicitly) под их scoped именем, таким как `my-plugin:code-reviewer`, после включения плагина.

100 

101Для полной информации см. [Subagents](/docs/ru/sub-agents).

102 

103<h3 id="hooks">

104 Hooks

105</h3>

106 

107Плагины могут предоставлять обработчики событий, которые автоматически реагируют на события Claude Code.

108 

109**Расположение**: `hooks/hooks.json` в корне плагина, или встроенный в plugin.json

110 

111**Формат**: JSON конфигурация с матчерами событий и действиями

112 

113`hooks/hooks.json` может содержать ключ верхнего уровня `$schema`, который указывает URL JSON Schema для автодополнения и валидации редактора. Claude Code игнорирует ключ при загрузке.

114 

115**Конфигурация hook**:

116 

117```json theme={null}

118{

119 "hooks": {

120 "PostToolUse": [

121 {

122 "matcher": "Write|Edit",

123 "hooks": [

124 {

125 "type": "command",

126 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/format-code.sh"

127 }

128 ]

129 }

130 ]

131 }

132}

133```

134 

135Hooks плагинов реагируют на те же события жизненного цикла, что и [определённые пользователем hooks](/docs/ru/hooks):

136 

137| Событие | Когда оно срабатывает |

138| :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

139| `SessionStart` | Когда сеанс начинается или возобновляется |

140| `Setup` | Когда вы запускаете Claude Code с `--init-only`, или с `--init` или `--maintenance` в режиме `-p`. Для одноразовой подготовки в CI или скриптах |

141| `UserPromptSubmit` | Когда вы отправляете запрос, прежде чем Claude его обработает |

142| `UserPromptExpansion` | Когда команда, введённая пользователем, расширяется в запрос, прежде чем она достигнет Claude. Может заблокировать расширение |

143| `PreToolUse` | Перед выполнением вызова инструмента. Может заблокировать его |

144| `PermissionRequest` | Когда вызов инструмента требует решения о разрешении |

145| `PermissionDenied` | Когда автоматический режим отклоняет вызов инструмента, включая отклонения без вердикта классификатора. Используйте JSON `hookSpecificOutput.retry: true`, чтобы сообщить модели, что она может повторить попытку отклонённого вызова инструмента. Claude Code игнорирует `retry`, когда классификатор не выдал вердикт |

146| `PostToolUse` | После успешного выполнения вызова инструмента |

147| `PostToolUseFailure` | После неудачного выполнения вызова инструмента |

148| `PostToolBatch` | После разрешения полного пакета параллельных вызовов инструментов, перед следующим вызовом модели |

149| `Notification` | Когда Claude Code отправляет уведомление |

150| `MessageDisplay` | Во время отображения текста сообщения помощника |

151| `SubagentStart` | Когда порождается подагент |

152| `SubagentStop` | Когда подагент завершает работу |

153| `TaskCreated` | Когда задача создаётся через `TaskCreate` |

154| `TaskCompleted` | Когда задача отмечается как завершённая |

155| `Stop` | Когда Claude завершает ответ |

156| `StopFailure` | Когда ход завершается из-за ошибки API |

157| `TeammateIdle` | Когда товарищ по команде [команды агентов](/docs/ru/agent-teams) собирается перейти в режим ожидания |

158| `InstructionsLoaded` | Когда файл CLAUDE.md или `.claude/rules/*.md` загружается в контекст. Срабатывает при запуске сеанса и когда файлы ленивой загрузки загружаются во время сеанса |

159| `ConfigChange` | Когда файл конфигурации изменяется во время сеанса |

160| `CwdChanged` | Когда рабочий каталог изменяется, например когда Claude выполняет команду `cd`. Полезно для реактивного управления окружением с помощью инструментов, таких как direnv |

161| `DirectoryAdded` | Когда рабочий каталог добавляется в середине сеанса через `/add-dir` или запрос управления SDK `register_repo_root` |

162| `FileChanged` | Когда наблюдаемый файл изменяется на диске. Поле `matcher` указывает, какие имена файлов отслеживать |

163| `WorktreeCreate` | Когда worktree создаётся через `--worktree`, `isolation: "worktree"`, или для фонового сеанса. Заменяет поведение git по умолчанию |

164| `WorktreeRemove` | Когда worktree удаляется при выходе из сеанса, когда подагент завершает работу, или когда вы удаляете фоновый сеанс |

165| `PreCompact` | Перед компактизацией контекста |

166| `PostCompact` | После завершения компактизации контекста |

167| `PreModelSwitch` | Перед тем как Claude Code применяет переключение модели, которое вы или клиент запросили. Может заблокировать переключение |

168| `PostModelSwitch` | После изменения модели сеанса, включая изменения, которые Claude Code делает самостоятельно, такие как восстановление модели при возобновлении сеанса |

169| `Elicitation` | Когда сервер MCP запрашивает ввод пользователя во время вызова инструмента |

170| `ElicitationResult` | После того как пользователь отвечает на запрос MCP, перед отправкой ответа обратно на сервер |

171| `SessionEnd` | Когда сеанс завершается |

172 

173**Типы hooks**:

174 

175* `command`: выполнение shell команд или скриптов

176* `http`: отправка JSON события как POST запроса на URL

177* `mcp_tool`: вызов инструмента на настроенном [MCP сервере](/docs/ru/mcp)

178* `prompt`: оценка prompt с LLM (использует заполнитель `$ARGUMENTS` для контекста)

179* `agent`: запуск агентного верификатора с инструментами для сложных задач верификации

180 

181Hooks, которые нацелены на собственный [bundled MCP сервер](#mcp-servers) плагина, должны использовать его scoped имена. Матчеры инструментов и поля `if` принимают scoped имя инструмента `mcp__plugin_<plugin-name>_<server-name>__<tool>`, и поле `server` hook `mcp_tool` принимает `plugin:<plugin-name>:<server-name>`. Матчер, написанный для простого ключа сервера, никогда не срабатывает. См. [Match MCP tools](/docs/ru/hooks#match-mcp-tools) и [Plugin-provided MCP servers](/docs/ru/mcp#plugin-provided-mcp-servers).

182 

183<h3 id="mcp-servers">

184 MCP servers

185</h3>

186 

187Плагины могут включать серверы Model Context Protocol (MCP) для подключения Claude Code с внешними инструментами и сервисами.

188 

189**Расположение**: `.mcp.json` в корне плагина, или встроенный в plugin.json

190 

191**Формат**: Стандартная конфигурация MCP сервера

192 

193**Конфигурация MCP сервера**:

194 

195```json theme={null}

196{

197 "mcpServers": {

198 "plugin-database": {

199 "command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",

200 "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"],

201 "env": {

202 "DB_PATH": "${CLAUDE_PLUGIN_ROOT}/data"

203 }

204 },

205 "plugin-api-client": {

206 "command": "npx",

207 "args": ["@company/mcp-server", "--plugin-mode"]

208 }

209 }

210}

211```

212 

213**Поведение интеграции**:

214 

215* Серверы MCP плагинов запускаются автоматически при включении плагина

216* Серверы появляются как стандартные MCP инструменты в наборе инструментов Claude

217* Серверы плагинов могут быть настроены независимо от пользовательских MCP серверов

218* Если вы запустите [`/reload-plugins`](/docs/ru/discover-plugins#apply-plugin-changes-without-restarting) в середине сеанса, Claude Code сохраняет живые соединения серверов, конфигурация которых не изменилась

219 

220<h3 id="lsp-servers">

221 LSP servers

222</h3>

223 

224<Tip>

225 Ищете использование LSP плагинов? Установите их из официального marketplace: поищите "lsp" на вкладке Discover `/plugin`. Этот раздел документирует, как создавать LSP плагины для языков, не охватываемых официальным marketplace.

226</Tip>

227 

228Плагины могут предоставлять серверы [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) (LSP) для предоставления Claude [real-time code intelligence](/docs/ru/discover-plugins#code-intelligence) при работе с вашей кодовой базой.

229 

230**Расположение**: `.lsp.json` в корне плагина, или встроенный в `plugin.json`

231 

232**Формат**: JSON конфигурация, отображающая имена языковых серверов на их конфигурации

233 

234**Формат файла `.lsp.json`**:

235 

236```json theme={null}

237{

238 "go": {

239 "command": "gopls",

240 "args": ["serve"],

241 "extensionToLanguage": {

242 ".go": "go"

243 }

244 }

245}

246```

247 

248**Встроенный в `plugin.json`**:

249 

250```json theme={null}

251{

252 "name": "my-plugin",

253 "lspServers": {

254 "go": {

255 "command": "gopls",

256 "args": ["serve"],

257 "extensionToLanguage": {

258 ".go": "go"

259 }

260 }

261 }

262}

263```

264 

265**Обязательные поля:**

266 

267| Поле | Описание |

268| :-------------------- | :---------------------------------------------------- |

269| `command` | Бинарный файл LSP для выполнения (должен быть в PATH) |

270| `extensionToLanguage` | Отображает расширения файлов на идентификаторы языков |

271 

272**Опциональные поля:**

273 

274| Поле | Описание |

275| :---------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

276| `args` | Аргументы командной строки для LSP сервера |

277| `transport` | Транспорт коммуникации: `stdio` (по умолчанию) или `socket`. Claude Code принимает `socket`, но запускает каждый сервер через stdio, поэтому правила протокола stdout применяются ко всем серверам |

278| `env` | Переменные окружения для установки при запуске сервера |

279| `initializationOptions` | Опции, передаваемые серверу при инициализации |

280| `settings` | Параметры, передаваемые через `workspace/didChangeConfiguration` |

281| `workspaceFolder` | Путь папки рабочего пространства для сервера |

282| `startupTimeout` | Максимальное время ожидания запуска сервера (миллисекунды) |

283| `shutdownTimeout` | Максимальное время ожидания корректного завершения (миллисекунды). Когда истекает время ожидания, Claude Code завершает процесс сервера. Если не установлено, время ожидания не применяется |

284| `restartOnCrash` | Следует ли перезапустить сервер после его сбоя. По умолчанию `true`. Установите `false`, чтобы оставить упавший сервер остановленным вместо его перезапуска |

285| `maxRestarts` | Максимальное количество попыток перезапуска перед отказом |

286| `diagnostics` | Следует ли отправлять диагностику в контекст Claude после редактирования (по умолчанию `true`). Установите `false`, чтобы сохранить навигацию по коду, но подавить автоматическое внедрение диагностики |

287 

288`restartOnCrash` и `shutdownTimeout` требуют Claude Code v2.1.205 или позже. До версии v2.1.205 схема конфигурации принимала обе опции, но установка любой из них вызывала пропуск этого LSP сервера Claude Code при запуске, с причиной видимой только в выводе `claude --debug`.

289 

290**Несколько серверов для одного расширения**: когда более одного включённого LSP сервера объявляет одно и то же расширение файла в `extensionToLanguage`, независимо от того, поступают ли серверы из одного плагина или из разных плагинов, первый зарегистрированный сервер обрабатывает файлы с этим расширением, а остальные никогда не запускаются. Интерфейс `/plugin` показывает предупреждение, называющее плагин, чей сервер активен.

291 

292**Серверы, которые не инициализируются**: Claude Code пропускает сервер, конфигурация которого недействительна, например отсутствует `command` или `extensionToLanguage`, и остальные настроенные серверы всё ещё запускаются. Запустите `claude --debug`, чтобы увидеть, почему сервер был пропущен.

293 

294Пропущенный сервер не заявляет свои расширения файлов, поэтому другой действительный сервер, который объявляет то же расширение, из того же или другого плагина, всё ещё обрабатывает эти файлы.

295 

296**Отправляйте вывод логов в stderr, а не stdout**: Claude Code читает stdout сервера только как сообщения протокола и принимает заголовки сообщений до 64 КиБ и тело сообщения до 32 МиБ. Claude Code отключает сервер, который превышает любой лимит или записывает вывод, не являющийся протоколом, в stdout, и считает отключение сбоем для `restartOnCrash` и `maxRestarts`. Когда вы запускаете с `--debug`, Claude Code записывает ошибку, называющую причину, в журнал отладки.

297 

298<Warning>

299 **Вы должны установить бинарный файл языкового сервера отдельно.** LSP плагины настраивают, как Claude Code подключается к языковому серверу, но они не включают сам сервер. Если вы видите `Executable not found in $PATH` на вкладке Errors `/plugin`, установите требуемый бинарный файл для вашего языка.

300</Warning>

301 

302**Доступные LSP плагины:**

303 

304| Плагин | Языковой сервер | Команда установки |

305| :------------------ | :------------------------- | :----------------------------------------------------------------------------------------- |

306| `pyright-lsp` | Pyright (Python) | `pip install pyright` или `npm install -g pyright` |

307| `typescript-lsp` | TypeScript Language Server | `npm install -g typescript-language-server typescript` |

308| `rust-analyzer-lsp` | rust-analyzer | [See rust-analyzer installation](https://rust-analyzer.github.io/manual.html#installation) |

309 

310Сначала установите языковой сервер, затем установите плагин из marketplace.

311 

312<h3 id="monitors">

313 Monitors

314</h3>

315 

316Плагины могут объявлять фоновые мониторы, которые Claude Code автоматически запускает при активном плагине. Каждый монитор запускает shell команду на протяжении всего сеанса и доставляет каждую строку stdout Claude как уведомление, поэтому Claude может реагировать на записи логов, изменения статуса или опрашиваемые события без необходимости просить запустить наблюдение самостоятельно.

317 

318Мониторы плагинов используют тот же механизм, что и [Monitor tool](/docs/ru/tools-reference#monitor-tool), и разделяют его ограничения доступности. Они запускаются только в интерактивных сеансах CLI, запускаются без песочницы на том же уровне доверия, что и [hooks](#hooks), и пропускаются на хостах, где Monitor tool недоступен.

319 

320**Расположение**: `monitors/monitors.json` в корне плагина, или встроенный в `plugin.json`

321 

322**Формат**: JSON массив записей монитора

323 

324Следующий `monitors/monitors.json` отслеживает конечную точку статуса развёртывания и локальный журнал ошибок:

325 

326```json theme={null}

327[

328 {

329 "name": "deploy-status",

330 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/poll-deploy.sh",

331 "description": "Deployment status changes"

332 },

333 {

334 "name": "error-log",

335 "command": "tail -F ./logs/error.log",

336 "description": "Application error log",

337 "when": "on-skill-invoke:debug"

338 }

339]

340```

341 

342Чтобы объявить мониторы встроенным образом, установите `experimental.monitors` в `plugin.json` на тот же массив. Чтобы загрузить из пути, отличного от пути по умолчанию, установите `experimental.monitors` на строку относительного пути, такую как `"./config/monitors.json"`. Мониторы — это [experimental component](#experimental-components).

343 

344**Обязательные поля:**

345 

346| Поле | Описание |

347| :------------ | :------------------------------------------------------------------------------------------------------------------------------------- |

348| `name` | Идентификатор, уникальный в пределах плагина. Предотвращает дублирование процессов при перезагрузке плагина или повторном вызове skill |

349| `command` | Shell команда, запускаемая как постоянный фоновый процесс в рабочей директории сеанса |

350| `description` | Краткое резюме того, что отслеживается. Показывается в панели задач и в сводках уведомлений |

351 

352**Опциональные поля:**

353 

354| Поле | Описание |

355| :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

356| `when` | Управляет тем, когда запускается монитор. `"always"` запускает его при запуске сеанса и при перезагрузке плагина и является значением по умолчанию. `"on-skill-invoke:<skill-name>"` запускает его в первый раз, когда именованный skill в этом плагине отправляется |

357 

358Значение `command` поддерживает [path substitutions](#environment-variables) `${CLAUDE_PLUGIN_ROOT}`, `${CLAUDE_PLUGIN_DATA}` и `${CLAUDE_PROJECT_DIR}`, плюс любой `${ENV_VAR}` из окружения. Добавьте префикс команды с `cd "${CLAUDE_PLUGIN_ROOT}" && `, если скрипт должен запускаться из собственной директории плагина.

359 

360Команда монитора `command` не может ссылаться на значения [`${user_config.*}`](#user-configuration). Команда запускается через shell, поэтому Claude Code отклоняет монитор с [error](/docs/ru/errors#plugin-command-references-user-config) вместо подстановки значения. Процессы мониторов не получают переменные окружения `CLAUDE_PLUGIN_OPTION_<KEY>`, поэтому скрипт монитора должен читать значение из файла конфигурации, который он владеет.

361 

362Если вы отключите плагин в середине сеанса, Claude Code не останавливает мониторы, которые уже запущены; они останавливаются при завершении сеанса.

363 

364<h3 id="themes">

365 Themes

366</h3>

367 

368Плагины могут поставлять цветовые темы, которые появляются в `/theme` наряду с встроенными предустановками и локальными темами пользователя. Тема — это JSON файл в `themes/` с предустановкой `base` и разреженной картой `overrides` цветовых токенов. Темы — это [experimental component](#experimental-components).

369 

370```json theme={null}

371{

372 "name": "Dracula",

373 "base": "dark",

374 "overrides": {

375 "claude": "#bd93f9",

376 "error": "#ff5555",

377 "success": "#50fa7b"

378 }

379}

380```

381 

382Когда пользователь выбирает тему плагина, Claude Code сохраняет `custom:<plugin-name>:<slug>` в его конфигурации. Темы плагинов доступны только для чтения: когда пользователь нажимает `Ctrl+E` на одной из них в `/theme`, Claude Code копирует её в `~/.claude/themes/`, чтобы они могли редактировать копию.

383 

384***

385 

386<h2 id="plugin-installation-scopes">

387 Области установки плагинов

388</h2>

389 

390При установке плагина вы выбираете **область**, которая определяет, где плагин доступен и кто еще может его использовать:

391 

392| Область | Файл параметров | Вариант использования |

393| :-------- | :--------------------------------------- | :------------------------------------------------------------------------------------------------------- |

394| `user` | `~/.claude/settings.json` | Личные плагины, доступные во всех проектах (по умолчанию) |

395| `project` | `.claude/settings.json` | Командные плагины, общие через систему контроля версий |

396| `local` | `.claude/settings.local.json` | Плагины, специфичные для проекта, игнорируются в .gitignore, когда Claude Code сохраняет параметр в него |

397| `managed` | [Managed settings](/docs/ru/managed-settings) | Управляемые плагины (только для чтения, только обновление) |

398 

399Плагины используют ту же систему областей, что и другие конфигурации Claude Code. Инструкции по установке и флаги области см. в разделе [Install plugins](/docs/ru/discover-plugins#install-plugins). Полное объяснение областей см. в разделе [Configuration scopes](/docs/ru/settings#where-settings-live).

400 

401***

402 

403<h2 id="skills-directory-plugins">

404 Плагины каталога skills

405</h2>

406 

407Любая папка в каталоге skills, содержащая манифест `.claude-plugin/plugin.json`, загружается как плагин с именем `<name>@skills-dir` в следующем сеансе без marketplace и без этапа установки. Создайте его с помощью [`plugin init`](#plugin-init). В отличие от скопированной установки из marketplace, плагин обнаруживается на месте, а не копируется в кэш плагинов.

408 

409Дерево каталога skills поддерживает три различных вещи:

410 

411| Что у вас есть | Что это такое |

412| :-------------------------------------------- | :------------------------------------------------------------------------------------------------------ |

413| `<skills-dir>/foo/SKILL.md` без манифеста | Обычный [skill](/docs/ru/skills) с именем `foo` |

414| `<skills-dir>/foo/.claude-plugin/plugin.json` | Плагин `foo@skills-dir`, который может содержать свои собственные skills, agents, hooks и многое другое |

415| `<plugin>/skills/bar/SKILL.md` | Skill `bar`, упакованный внутри плагина |

416 

417<h3 id="choose-where-the-plugin-loads-from">

418 Выберите, откуда загружается плагин

419</h3>

420 

421| Каталог skills | Область | Загружает |

422| :---------------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------- |

423| `~/.claude/skills/` | личный | В каждом проекте, так как это расположение только ваше |

424| `<cwd>/.claude/skills/` | проект | Только после того, как вы примете диалог [доверия рабочей области](/docs/ru/permissions#what-runs-before-you-trust-a-folder) для этой папки |

425 

426Плагин с областью проекта проверяется в репозитории и доступен каждому сотруднику, который его клонирует. Поскольку это содержимое поступает из репозитория, а не от вас, оно загружается только после того же шлюза доверия, который управляет правилами разрешения проекта в `.claude/settings.json`, поэтому доверие к родительской папке или запуск с `-p` недостаточно, и компоненты, которые выполняют код, имеют дополнительные ограничения:

427 

428* MCP серверы, которые он объявляет, проходят через [то же одобрение для каждого сервера](/docs/ru/mcp), что и проект `.mcp.json`

429* LSP серверы запускаются только после того, как вы доверяете рабочей области

430* [Фоновые мониторы](#monitors) не загружаются

431 

432Плагины с личной областью не имеют никаких из этих ограничений.

433 

434<Warning>

435 Плагины `@skills-dir` с областью проекта загружаются только из `.claude/skills/` [основного рабочего каталога](/docs/ru/permissions#working-directories) сеанса. Они не [поднимаются к корню репозитория](/docs/ru/skills#discovery-from-parent-and-nested-directories) так, как это делают обычные skills и команды, поэтому запуск из подкаталога пропускает плагин, который находится в корне репо. Запустите из корня репозитория или [переместите сеанс туда с помощью `/cd`](/docs/ru/permissions#move-the-session-to-another-directory) на v2.1.246 или позже.

436</Warning>

437 

438<h3 id="edit-reload-and-disable-a-skills-directory-plugin">

439 Редактируйте, перезагружайте и отключайте плагин каталога skills

440</h3>

441 

442Изменения, которые вы вносите в `SKILL.md` skill, вступают в силу немедленно в текущем сеансе. Изменения в других компонентах плагина, таких как `hooks/`, `.mcp.json`, `agents/` и `output-styles/`, не вступают. Запустите `/reload-plugins` или перезагрузите Claude Code, чтобы их подхватить. См. [Обнаружение живых изменений](/docs/ru/skills#live-change-detection).

443 

444Чтобы остановить загрузку плагина каталога skills, удалите его папку или отключите его по имени. Нет этапа `uninstall`, потому что ничего не было установлено из marketplace.

445 

446```bash theme={null}

447claude plugin disable my-tool@skills-dir

448```

449 

450***

451 

452<h2 id="synced-plugins">

453 Плагины, синхронизированные с claude.ai

454</h2>

455 

456Claude Code загружает плагины, включённые для вашей учётной записи claude.ai, включая плагины, которые ваша организация включает для своих членов, наряду с плагинами, которые вы устанавливаете из marketplace. Он загружает каждый в `~/.claude/plugins/synced/` и загружает его как `<name>@synced`, без marketplace и без записи об установке. Синхронизированный плагин работает с тем же уровнем доверия, что и плагин marketplace, который вы установили: его skills, agents, hooks, MCP servers и LSP servers все загружаются.

457 

458Место, где Claude Code синхронизирует эти плагины, зависит от сеанса:

459 

460* В [Cowork](https://claude.com/product/cowork) и [облачных сеансах](/docs/ru/cloud-environments#what-carries-over-from-your-setup) Claude Code загружает их в собственную среду сеанса при запуске сеанса. До версии 2.1.239 Claude Code загружал эти плагины как `<name>@inline`, идентификатор, который используют плагины `--plugin-dir`.

461* В сеансах терминала, где вы входите с помощью своей учётной записи claude.ai, Claude Code проверяет вашу учётную запись один раз каждый раз при запуске, затем загружает новые и обновлённые плагины и удаляет те, которые вы или ваша организация отключили, всё в фоновом режиме. Синхронизация в сеансах терминала требует Claude Code версии 2.1.273 или позже.

462 

463Проверка при запуске выполняется в фоновом режиме, поэтому она может завершиться после того, как ваш сеанс начался. Когда она добавляет, обновляет или удаляет синхронизированный плагин в интерактивном сеансе, Claude Code показывает `Plugins changed. Run /reload-plugins to activate.` Запустите [`/reload-plugins`](/docs/ru/discover-plugins#apply-plugin-changes-without-restarting), чтобы загрузить изменение в этом сеансе, или оставьте его на следующий раз, когда вы запустите Claude Code. Если вы включите плагин на claude.ai во время работы сеанса, Claude Code загружает его при следующем запуске.

464 

465Синхронизация плагинов в сеансах терминала выполняется при тех же условиях входа, что и [skills, синхронизированные с claude.ai](/docs/ru/skills#where-synced-skills-load). Это также требует входа, который предоставляет Claude Code доступ к плагинам вашей учётной записи.

466 

467Вход из более ранней версии Claude Code получает доступ к плагинам при следующем обновлении Claude Code этого входа в фоновом режиме, в течение нескольких часов, или сразу же, если вы снова запустите `/login`. Синхронизация плагинов начинается при следующем запуске Claude Code после этого.

468 

469`claude plugin list` показывает синхронизированные плагины под заголовком `Synced from claude.ai`, и вкладка **Installed** в `/plugin` перечисляет их с `synced` в качестве источника. Управляйте синхронизированным плагином по ID `<name>@synced`, который выводит `claude plugin list`:

470 

471* **Отключить один**: запустите `claude plugin disable <name>@synced` или отключите его на вкладке **Installed** в `/plugin`. Claude Code сохраняет выбор как `"<name>@synced": false` в [`enabledPlugins`](/docs/ru/settings-reference#enabledplugins) на уровне пользователя. Чтобы включить плагин обратно, запустите `claude plugin enable <name>@synced`.

472* **Исключить один везде**: [отключите плагин для вашей учётной записи claude.ai](/docs/ru/desktop#extend-claude-code). Чтобы исключить его из одного проекта в каждой среде, установите `"<name>@synced": false` под `enabledPlugins` в файле `.claude/settings.json` этого проекта.

473* **Управляйте самим плагином на claude.ai**: `claude plugin install`, `update` и `uninstall` не применяются к синхронизированному плагину. Claude Code загружает обновления плагина при следующей синхронизации. Чтобы удалить его, отключите плагин для вашей учётной записи claude.ai, и Claude Code удалит его при следующей синхронизации.

474* **Остановить синхронизацию на машине**: установите [`syncClaudeAiPlugins`](/docs/ru/settings-reference#syncclaudeaiplugins) в `false` в ваших пользовательских настройках. Claude Code прекращает загрузку, и при следующем запуске он перемещает уже синхронизированные плагины в `~/.claude/plugins/.trash/` и больше их не загружает. Ваша организация может установить тот же ключ в [управляемых настройках](/docs/ru/managed-settings), или отключить Skills на claude.ai, что также останавливает синхронизацию плагинов.

475 

476Вы не можете отключить плагин, который ваша организация отмечает как обязательный на claude.ai. Claude Code загружает его даже если вы отключили его ранее, и `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`.

477 

478Когда включённый плагин из любого другого источника совпадает по имени с синхронизированным плагином, Claude Code загружает этот плагин и сообщает, что синхронизированная копия не загружена. Другие источники включают установки из marketplace, [плагины каталога skills](#skills-directory-plugins), плагины `--plugin-dir` и плагины, встроенные в Claude Code. Чтобы использовать копию с claude.ai, отключите свою копию. До версии 2.1.239 Claude Code загружал синхронизированную копию вместо установки из marketplace с тем же именем.

479 

480***

481 

482<h2 id="plugin-manifest-schema">

483 Схема манифеста plugin

484</h2>

485 

486Файл `.claude-plugin/plugin.json` определяет метаданные и конфигурацию вашего plugin.

487 

488Манифест является необязательным. Если он опущен, Claude Code автоматически обнаруживает компоненты в [местоположениях по умолчанию](#file-locations-reference) и выводит имя plugin из имени каталога. Используйте манифест, когда вам нужно предоставить метаданные или пользовательские пути компонентов.

489 

490<h3 id="complete-schema">

491 Полная схема

492</h3>

493 

494```json theme={null}

495{

496 "name": "plugin-name",

497 "displayName": "Plugin Name",

498 "version": "1.2.0",

499 "description": "Brief plugin description",

500 "author": {

501 "name": "Author Name",

502 "email": "author@example.com",

503 "url": "https://github.com/author"

504 },

505 "homepage": "https://docs.example.com/plugin",

506 "repository": "https://github.com/author/plugin",

507 "license": "MIT",

508 "keywords": ["keyword1", "keyword2"],

509 "metadata": { "catalogId": "cat-123", "tier": "pro" },

510 "skills": "./custom/skills/",

511 "commands": ["./custom/commands/special.md"],

512 "agents": ["./custom/agents/reviewer.md"],

513 "hooks": "./config/hooks.json",

514 "mcpServers": "./mcp-config.json",

515 "outputStyles": "./styles/",

516 "lspServers": "./.lsp.json",

517 "experimental": {

518 "themes": "./themes/",

519 "monitors": "./monitors.json",

520 "evals": "quality/evals"

521 },

522 "dependencies": [

523 "helper-lib",

524 { "name": "secrets-vault", "version": "~2.1.0" }

525 ]

526}

527```

528 

529<h3 id="required-fields">

530 Обязательные поля

531</h3>

532 

533Если вы включаете манифест, `name` — единственное обязательное поле.

534 

535| Поле | Тип | Описание | Пример |

536| :----- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------- |

537| `name` | string | Уникальный идентификатор в kebab-case без пробелов, управляющих символов или символов двунаправленного форматирования. Когда [запись marketplace](/docs/ru/plugin-marketplaces#plugin-entries) указывает plugin под другим именем, имя записи marketplace — это то, что используют ключи `enabledPlugins` и `/plugin` | `"deployment-tools"` |

538 

539Это имя используется для пространства имён компонентов. Например, в пользовательском интерфейсе agent `agent-creator` для plugin с именем `plugin-dev` будет отображаться как `plugin-dev:agent-creator`.

540 

541<h3 id="unrecognized-fields">

542 Нераспознанные поля

543</h3>

544 

545Claude Code игнорирует поля верхнего уровня, которые он не распознаёт. Вы можете сохранить метаданные из другой экосистемы в `plugin.json`, и plugin всё равно загрузится. Это позволяет практично поддерживать один манифест, который одновременно служит манифестом расширения VS Code или Cursor, npm `package.json` или манифестом bundle MCPB/DXT.

546 

547`claude plugin validate` сообщает о нераспознанных полях как о предупреждениях, а не об ошибках. Если поле отличается на один или два символа от распознанного, предупреждение предлагает вероятное предполагаемое имя. Plugin только с предупреждениями о нераспознанных полях всё равно проходит валидацию и загружается во время выполнения.

548 

549То, как Claude Code обрабатывает распознанное поле, значение которого имеет неправильный тип, зависит от поля:

550 

551* **Большинство полей**: plugin не загружается. Например, значение `keywords`, которое является строкой вместо массива, является ошибкой загрузки, и `claude plugin validate` сообщает об этом.

552* **`experimental` и `metadata`**: Claude Code игнорирует значение, которое не является объектом, и `claude plugin validate` сообщает предупреждение.

553 

554Передайте `--strict`, чтобы рассматривать предупреждения как ошибки. Используйте это в CI, чтобы перехватить неправильно написанное имя поля или поле, оставшееся от манифеста другого инструмента перед публикацией, даже если plugin загружается во время выполнения.

555 

556```bash theme={null}

557claude plugin validate ./my-plugin --strict

558```

559 

560<h3 id="metadata-fields">

561 Поля метаданных

562</h3>

563 

564| Поле | Тип | Описание | Пример |

565| :--------------- | :------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- |

566| `$schema` | string | URL JSON Schema для автодополнения и валидации редактора. Claude Code игнорирует это поле во время загрузки. | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |

567| `displayName` | string | Удобочитаемое имя, отображаемое в средстве выбора `/plugin` и других поверхностях пользовательского интерфейса. Для plugin, установленного из marketplace, `displayName` в [записи marketplace](/docs/ru/plugin-marketplaces#optional-plugin-fields) имеет приоритет над этим значением. Когда имя отображения не установлено ни в одном месте, пользователи видят `name`. В отличие от `name`, может содержать пробелы и любой регистр. Не используется для пространства имён или поиска. | `"Deployment Tools"` |

568| `version` | string | Необязательно. Семантическая версия. Установка этого параметра закрепляет plugin на этой строке версии, поэтому пользователи получают обновления только при её изменении, за исключением [источника `command`](/docs/ru/plugin-marketplaces#command-sources) или plugin [загруженного на месте](#plugin-caching-and-file-resolution); см. [Управление версиями](#version-management). Если также установлено в записи marketplace, `plugin.json` имеет приоритет. Если опущено, версия берётся из следующего источника в [Управлении версиями](#version-management). | `"2.1.0"` |

569| `description` | string | Краткое объяснение назначения plugin | `"Deployment automation tools"` |

570| `author` | object | Информация об авторе | `{"name": "Dev Team", "email": "dev@company.com"}` |

571| `homepage` | string | URL документации | `"https://docs.example.com"` |

572| `repository` | string | URL исходного кода | `"https://github.com/user/plugin"` |

573| `license` | string | Идентификатор лицензии | `"MIT"`, `"Apache-2.0"` |

574| `keywords` | array | Теги обнаружения | `["deployment", "ci-cd"]` |

575| `metadata` | object | Объект произвольной формы для ваших собственных данных, таких как поля прав доступа или каталога. Claude Code не читает его, поэтому значения никогда не влияют на поведение plugin. Claude Code игнорирует значение, которое не является объектом, и `claude plugin validate` сообщает об этом как о предупреждении. До v2.1.222 Claude Code рассматривал ключ как [нераспознанное поле](#unrecognized-fields). | `{"catalogId": "cat-123"}` |

576| `defaultEnabled` | boolean | Включен ли plugin в состояние по умолчанию, когда пользователь не установил его. По умолчанию `true`. См. [Включение по умолчанию](#default-enablement). | `false` |

577 

578<h3 id="default-enablement">

579 Включение по умолчанию

580</h3>

581 

582Установите `defaultEnabled: false` в `plugin.json`, чтобы отправить plugin, который устанавливается отключённым. Пользователь включает его с помощью `claude plugin enable <plugin>` или интерфейса `/plugin`. Используйте это для plugin, которые добавляют стоимость или область, в которую пользователь должен согласиться, например для plugin, который подключается к внешнему сервису.

583 

584`defaultEnabled` — это резервный вариант, когда ничто другое не решило состояние plugin. Параметр пользователя и требование зависимости имеют приоритет над ним:

585 

586* **Параметр пользователя**: запись для plugin в `enabledPlugins` в любой области параметров. После записи она сохраняется при обновлениях и переустановках plugin, поэтому изменение `defaultEnabled` в более позднем выпуске не переключает существующего пользователя.

587* **Требование зависимости**: когда plugin требуется другим, который активен, Claude Code записывает `true` для него во время установки или включения. Это даёт ему явный параметр, поэтому его собственное значение по умолчанию больше не применяется. См. [Включение или отключение plugin с зависимостями](/docs/ru/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies).

588 

589То же поле может появиться в записи marketplace plugin, где оно имеет приоритет над значением в `plugin.json`. См. [Необязательные поля plugin](/docs/ru/plugin-marketplaces#optional-plugin-fields).

590 

591<h3 id="component-path-fields">

592 Поля пути компонента

593</h3>

594 

595| Поле | Тип | Описание | Пример |

596| :---------------------- | :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |

597| `skills` | string\|array | Пользовательские каталоги skills, содержащие `<name>/SKILL.md`. Добавляет к сканированию `skills/` по умолчанию. См. [Правила поведения пути](#path-behavior-rules) для исключения корня marketplace | `"./custom/skills/"` |

598| `commands` | string\|array | Пользовательские плоские файлы `.md` skill или каталоги (заменяет `commands/` по умолчанию) | `"./custom/cmd.md"` или `["./cmd1.md"]` |

599| `agents` | string\|array | Пользовательские файлы agent (заменяет `agents/` по умолчанию) | `"./custom/agents/reviewer.md"` |

600| `workflows` | string\|array | Пользовательские файлы скриптов [workflow](/docs/ru/workflows) или каталоги (заменяет `workflows/` по умолчанию) | `"./custom/workflows/"` |

601| `hooks` | string\|array\|object | Пути конфигурации hooks или встроенная конфигурация | `"./my-extra-hooks.json"` |

602| `mcpServers` | string\|array\|object | Пути конфигурации MCP или встроенная конфигурация | `"./my-extra-mcp-config.json"` |

603| `outputStyles` | string\|array | Пользовательские файлы стилей вывода/каталоги (заменяет `output-styles/` по умолчанию) | `"./styles/"` |

604| `lspServers` | string\|array\|object | Конфигурации [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) для интеллекта кода (перейти к определению, найти ссылки и т. д.) | `"./.lsp.json"` |

605| `experimental.themes` | string\|array | Файлы цветовой темы/каталоги (заменяет `themes/` по умолчанию). См. [Темы](#themes) | `"./themes/"` |

606| `experimental.monitors` | string\|array | Конфигурации фонового [Monitor](/docs/ru/tools-reference#monitor-tool), которые запускаются автоматически, когда plugin активен. См. [Мониторы](#monitors) | `"./monitors.json"` |

607| `experimental.evals` | string\|array | Каталог ниже корня plugin, который содержит [случаи eval](/docs/ru/plugin-evals#use-a-different-eval-directory) plugin, когда это не `evals/` по умолчанию. `claude plugin eval --eval-dir` переопределяет его | `"quality/evals"` |

608| `userConfig` | object | Значения, настраиваемые пользователем, запрашиваемые при включении. См. [Конфигурация пользователя](#user-configuration) | |

609| `channels` | array | Объявления каналов для внедрения сообщений (стиль Telegram, Slack, Discord). См. [Каналы](#channels) | |

610| `dependencies` | array | Другие plugin, которые требует этот plugin, опционально с ограничениями версии semver. См. [Ограничение версий зависимостей plugin](/docs/ru/plugin-dependencies) | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |

611 

612<h3 id="experimental-components">

613 Экспериментальные компоненты

614</h3>

615 

616Компоненты под ключом `experimental`, `themes` и `monitors`, имеют схему манифеста, которая может измениться между выпусками во время их стабилизации. Где вы их объявляете, — это отдельная миграция: верхний уровень всё ещё работает, `claude plugin validate` предупреждает, и будущий выпуск потребует `experimental.*`.

617 

618<h3 id="user-configuration">

619 Конфигурация пользователя

620</h3>

621 

622Поле `userConfig` объявляет значения, которые Claude Code запрашивает у пользователя при включении plugin. Используйте это вместо требования пользователям вручную редактировать `settings.json`.

623 

624```json theme={null}

625{

626 "userConfig": {

627 "api_endpoint": {

628 "type": "string",

629 "title": "API endpoint",

630 "description": "Your team's API endpoint"

631 },

632 "api_token": {

633 "type": "string",

634 "title": "API token",

635 "description": "API authentication token",

636 "sensitive": true

637 }

638 }

639}

640```

641 

642Ключи должны быть допустимыми идентификаторами. Каждый параметр поддерживает эти поля:

643 

644| Поле | Обязательно | Описание |

645| :------------ | :---------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

646| `type` | Да | Один из `string`, `number`, `boolean`, `directory` или `file` |

647| `title` | Да | Метка, отображаемая в диалоговом окне конфигурации |

648| `description` | Да | Справочный текст, отображаемый под полем |

649| `sensitive` | Нет | Если `true`, скрывает ввод и сохраняет значение в защищённом хранилище вместо `settings.json` |

650| `required` | Нет | Если `true`, валидация не пройдёт, когда поле пусто |

651| `default` | Нет | Значение, используемое, когда пользователь ничего не предоставляет |

652| `options` | Нет | Для типа `string`, значения, которые принимает поле, отображаемые в `/config` как средство выбора над ними. См. [Ограничение поля фиксированными параметрами](#limit-a-field-to-fixed-options). Требуется Claude Code v2.1.271 или позже |

653| `multiple` | Нет | Для типа `string`, разрешить массив строк |

654| `min` / `max` | Нет | Границы для типа `number` |

655 

656За исключением полей `sensitive` и списков `multiple`, каждое поле каждого включённого plugin также отображается как строка на панели `/config`. Строки требуют Claude Code v2.1.269 или позже.

657 

658Каждое значение доступно для подстановки как `${user_config.KEY}` в конфигурациях MCP и LSP серверов и команды hooks. Нечувствительные значения также могут быть подставлены в содержимое skill и agent. Все значения экспортируются в процессы hook как переменные окружения `CLAUDE_PLUGIN_OPTION_<KEY>`, где `<KEY>` — это ключ параметра в верхнем регистре.

659 

660Поля, которые работают в shell, отклоняют `${user_config.*}`: подстановка настроенного значения в команду shell позволит shell запустить всё, что содержит это значение, поэтому компонент не работает с [ошибкой](/docs/ru/errors#plugin-command-references-user-config). Каждое отклонённое поле имеет альтернативный способ передачи значения:

661 

662| Отклонённое поле | Как передать значение |

663| :--------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------- |

664| Команды hooks в форме shell | Используйте [форму exec](/docs/ru/hooks#exec-form-and-shell-form) с `args` или прочитайте `CLAUDE_PLUGIN_OPTION_<KEY>` из окружения hook |

665| Команды [Monitor](#monitors) | Прочитайте значение из файла конфигурации в скрипте |

666| MCP [`headersHelper`](/docs/ru/mcp#use-dynamic-headers-for-custom-authentication) | Прочитайте значение из файла конфигурации в скрипте |

667 

668До v2.1.207 эти поля подставляли значения `${user_config.KEY}`; обновите plugin, которые полагались на это.

669 

670Нечувствительные значения хранятся под ключом [`pluginConfigs`](/docs/ru/settings-reference#pluginconfigs) в вашем пользовательском `settings.json` как `pluginConfigs[<plugin-id>].options`.

671 

672На macOS Claude Code хранит чувствительные значения в macOS Keychain, переходя на `~/.claude/.credentials.json`, когда Keychain отклоняет запись. На платформах без поддерживаемого keychain он хранит их в `~/.claude/.credentials.json`. Хранилище Keychain используется совместно с токенами OAuth и имеет приблизительный общий лимит в 2 КБ, поэтому держите чувствительные значения небольшими.

673 

674Claude Code читает все значения `pluginConfigs` только из трёх источников параметров:

675 

676* **Параметры пользователя**: `~/.claude/settings.json`, файл, в который записывает подсказка во время включения

677* **`--settings`**: флаг CLI или встроенные параметры SDK

678* **Управляемые параметры**: [политика, контролируемая организацией](/docs/ru/permissions#managed-settings)

679 

680Когда более одного источника устанавливает один и тот же ключ, управляемые параметры имеют приоритет, затем `--settings`, затем параметры пользователя. Единственный источник, который вы можете удалить из этого списка, — это параметры пользователя: передайте [`--setting-sources`](/docs/ru/cli-reference#cli-flags) без `user`, и Claude Code пропустит их. Управляемые параметры и `--settings` остаются тем, что вы передали. Опция [`settingSources`](/docs/ru/agent-sdk/claude-code-features#what-settingsources-does-not-control) SDK устанавливает тот же список.

681 

682Записи в `.claude/settings.json` или `.claude/settings.local.json` проекта игнорируются. Оба файла находятся в рабочей области, поэтому клонированный репозиторий может предоставить значения там, и эти значения будут поступать в команды hook plugin, конфигурации MCP сервера, команды LSP и команды monitor. До v2.1.207 эти записи читались. Ограничение специфично для `pluginConfigs`: [`enabledPlugins`](/docs/ru/settings-reference#enabledplugins) по-прежнему учитывает параметры проекта и локальные параметры.

683 

684<h4 id="limit-a-field-to-fixed-options">

685 Ограничение поля фиксированными параметрами

686</h4>

687 

688Установите `options` на поле `userConfig`, чтобы пользователи выбирали его значение из фиксированного списка.

689 

690Чтобы ограничить поле `tone` тремя параметрами, перечислите их в `options` и установите `default` на один из них:

691 

692```json theme={null}

693{

694 "userConfig": {

695 "tone": {

696 "type": "string",

697 "title": "Tone",

698 "description": "Voice for generated replies",

699 "options": ["neutral", "warm", "formal"],

700 "default": "neutral"

701 }

702 }

703}

704```

705 

706Если вы объявляете `options` на любом поле, пользователи на версиях Claude Code до v2.1.271 не смогут загрузить plugin.

707 

708Когда вы устанавливаете `options` на поле, следуйте этим правилам:

709 

710* Установите `type` на `string`

711* Не устанавливайте `multiple` или `sensitive` на `true`

712* Установите `default` на один из параметров

713* Если вы оставляете `default` неустановленным, установите `required` на `true`

714* Перечислите по крайней мере один параметр, каждый от 1 до 64 символов в длину

715* Не начинайте и не заканчивайте параметр пробелом

716* Не используйте управляющие символы, невидимые символы, символы, которые изменяют направление текста, или пробелы, отличные от обычного пробела в параметре

717* Не перечисляйте один и тот же параметр дважды, даже в другом регистре букв

718 

719Если вы нарушите любое из этих правил, plugin не загрузится. Запустите `claude plugin validate`, чтобы увидеть, какое поле нарушает какое правило.

720 

721<h3 id="channels">

722 Каналы

723</h3>

724 

725Поле `channels` позволяет plugin объявить один или несколько каналов сообщений, которые внедряют содержимое в разговор. Каждый канал привязывается к MCP серверу, который предоставляет plugin.

726 

727```json theme={null}

728{

729 "channels": [

730 {

731 "server": "telegram",

732 "userConfig": {

733 "bot_token": {

734 "type": "string",

735 "title": "Bot token",

736 "description": "Telegram bot token",

737 "sensitive": true

738 },

739 "owner_id": {

740 "type": "string",

741 "title": "Owner ID",

742 "description": "Your Telegram user ID"

743 }

744 }

745 }

746 ]

747}

748```

749 

750Поле `server` обязательно и должно совпадать с ключом в `mcpServers` plugin. Необязательный `userConfig` для каждого канала использует ту же схему, что и поле верхнего уровня, позволяя plugin запрашивать токены бота или ID владельца при включении plugin.

751 

752<h3 id="path-behavior-rules">

753 Правила поведения пути

754</h3>

755 

756Заменяет ли пользовательский путь или расширяет каталог plugin по умолчанию, зависит от поля:

757 

758* **Заменяет значение по умолчанию**: `commands`, `agents`, `workflows`, `outputStyles`, `experimental.themes`, `experimental.monitors`. Например, когда манифест указывает `commands`, каталог `commands/` по умолчанию не сканируется. Чтобы сохранить значение по умолчанию и добавить больше, перечислите его явно: `"commands": ["./commands/", "./extras/"]`

759* **Добавляет к значению по умолчанию**: `skills`. Каталог `skills/` по умолчанию всегда сканируется, и каталоги, перечисленные в `skills`, загружаются вместе с ним. Исключение: для [записи marketplace, чей `source` разрешается в корень marketplace](/docs/ru/plugin-marketplaces#advanced-plugin-entries), объявление определённых подкаталогов заменяет сканирование `skills/` по умолчанию

760* **Собственные правила слияния**: [hooks](#hooks), [MCP серверы](#mcp-servers) и [LSP серверы](#lsp-servers). См. каждый раздел для того, как несколько источников объединяются

761 

762Когда plugin имеет как папку по умолчанию, так и соответствующий ключ манифеста, Claude Code предупреждает об игнорируемой папке в `claude plugin list` и в представлении деталей `/plugin`. Plugin всё равно загружается с использованием путей манифеста. Claude Code не предупреждает, когда ключ манифеста указывает в папку по умолчанию, например `"commands": ["./commands/deploy.md"]`, потому что этот путь явно называет папку.

763 

764Для всех полей пути:

765 

766* Все пути должны быть относительны к корню plugin и начинаться с `./`, за исключением того, что поле `skills` также принимает `"."`

767 * Оба `"."` и `"./"` обозначают сам корень plugin

768 * До v2.1.221 `"."` не прошёл валидацию манифеста и plugin не загрузился, поэтому используйте `"./"` для поддержки более ранних версий

769* Компоненты из пользовательских путей используют те же правила именования и пространства имён, за исключением файлов agent. См. [Agents](#agents) для того, как работают имена agent

770* Несколько путей можно указать как массивы

771* Путь skill может указывать на каталог, который содержит `SKILL.md` непосредственно, например `"skills": ["."]` для корня plugin

772 * Claude Code берёт имя вызова skill из поля frontmatter `name` в `SKILL.md`, поэтому имя остаётся стабильным, независимо от того, как называется каталог установки

773 * Если `name` не установлен в frontmatter, Claude Code переходит на имя базового каталога

774 

775Plugin, который имеет `SKILL.md` в своём корне, не имеет подкаталога `skills/` и не имеет поля манифеста `skills`, автоматически загружается как plugin с одним skill. Вам не нужно устанавливать `"skills": ["./"]` в `plugin.json` для этого макета.

776 

777**Примеры пути**:

778 

779```json theme={null}

780{

781 "commands": [

782 "./specialized/deploy.md",

783 "./utilities/batch-process.md"

784 ],

785 "agents": [

786 "./custom-agents/reviewer.md",

787 "./custom-agents/tester.md"

788 ]

789}

790```

791 

792<h3 id="environment-variables">

793 Переменные окружения

794</h3>

795 

796Claude Code предоставляет три переменные для ссылки на пути:

797 

798| Переменная | Разрешается в | Используйте для |

799| :---------------------- | :------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------- |

800| `${CLAUDE_PLUGIN_ROOT}` | Абсолютный путь к каталогу установки plugin | Скрипты, двоичные файлы и файлы конфигурации, поставляемые с plugin |

801| `${CLAUDE_PLUGIN_DATA}` | [Постоянный каталог](#persistent-data-directory), который сохраняется при обновлениях plugin, создаётся при первой ссылке | Установленные зависимости, такие как `node_modules` или виртуальные окружения Python, сгенерированный код и кэши |

802| `${CLAUDE_PROJECT_DIR}` | Корень проекта | Локальные скрипты и файлы конфигурации проекта |

803 

804Все три экспортируются как переменные окружения в процессы hook и в подпроцессы MCP и LSP серверов. Они отсутствуют в окружении команд, которые Claude запускает через инструмент Bash, в основной сессии или в подагенте. В содержимом plugin напишите заполнитель вместо этого, и Claude Code подставит путь встроенно при загрузке содержимого. Какие поля подставляют их встроенно, зависит от компонента plugin:

805 

806| Компонент plugin | Поля, где заполнители разрешаются |

807| :------------------------------ | :------------------------------------------ |

808| Содержимое skill и agent | Везде, где появляется заполнитель |

809| Команды hook и monitor | Везде, где появляется заполнитель |

810| MCP `stdio` серверы | `command`, `args`, `env` |

811| MCP `http`, `sse`, `ws` серверы | `url`, `headers`, `headersHelper` |

812| LSP серверы | `command`, `args`, `env`, `workspaceFolder` |

813 

814В командах hook используйте [форму exec](/docs/ru/hooks#exec-form-and-shell-form) с `args`, чтобы каждый путь передавался как один аргумент без кавычек. В hooks в форме shell и командах monitor оберните переменные в двойные кавычки, как в `"${CLAUDE_PROJECT_DIR}/scripts/server.sh"`. Этот hook в форме shell запускает скрипт, поставляемый с plugin:

815 

816```json theme={null}

817{

818 "hooks": {

819 "PostToolUse": [

820 {

821 "hooks": [

822 {

823 "type": "command",

824 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/process.sh"

825 }

826 ]

827 }

828 ]

829 }

830}

831```

832 

833Для скопированного plugin `${CLAUDE_PLUGIN_ROOT}` изменяется при обновлении plugin. Каталог предыдущей версии остаётся на диске в течение периода благодати после обновления, но рассматривайте его как эфемерный и не записывайте состояние туда. Для plugin, загруженного на месте из marketplace локального каталога, переменная указывает на стабильный исходный каталог. См. [кэширование plugin](#plugin-caching-and-file-resolution) для того, какие plugin копируются и для семантики очистки.

834 

835Когда скопированный plugin обновляется в середине сессии, команды hook, мониторы, MCP серверы и LSP серверы продолжают использовать путь предыдущей версии. Запустите `/reload-plugins`, чтобы переключить hooks, MCP серверы и LSP серверы на новый путь; мониторы требуют перезагрузки сессии. В сессии без интерактивного терминала перезагрузка оставляет MCP серверы plugin на старом пути до следующей сессии.

836 

837Для plugin с источником `command`, Claude Code [может перезагрузить сам plugin](/docs/ru/plugin-marketplaces#when-claude-code-re-runs-the-command).

838 

839MCP серверы также могут вызвать запрос `roots/list` для чтения рабочих каталогов сессии во время выполнения. См. [что возвращает `roots/list` и когда Claude Code уведомляет сервер об изменениях](/docs/ru/mcp#option-3-add-a-local-stdio-server).

840 

841<h4 id="persistent-data-directory">

842 Постоянный каталог данных

843</h4>

844 

845Каталог `${CLAUDE_PLUGIN_DATA}` разрешается в `~/.claude/plugins/data/{id}/`, где `{id}` — это идентификатор plugin с символами вне `a-z`, `A-Z`, `0-9`, `_` и `-`, заменённые на `-`. Для plugin, установленного как `formatter@my-marketplace`, каталог — это `~/.claude/plugins/data/formatter-my-marketplace/`.

846 

847Обычное использование — установка зависимостей языка один раз и их повторное использование в сессиях и обновлениях plugin. Используйте его для зависимостей Python, зависимостей, заблокированных с помощью Yarn или pnpm, и пакетов, чьи скрипты жизненного цикла должны работать. Для plugin, установленного из marketplace, вам может вообще не понадобиться: Claude Code автоматически устанавливает подходящие [зависимости пакета Node.js](#node-js-package-dependencies) при кэшировании plugin.

848 

849Поскольку каталог данных пережидает любую одну версию plugin, проверка существования каталога одной не может обнаружить, когда обновление изменяет манифест зависимостей plugin. Рекомендуемый паттерн сравнивает поставляемый манифест с копией в каталоге данных и переустанавливает, когда они отличаются.

850 

851Этот hook `SessionStart` устанавливает `node_modules` при первом запуске и снова, когда обновление plugin включает изменённый `package.json`:

852 

853```json theme={null}

854{

855 "hooks": {

856 "SessionStart": [

857 {

858 "hooks": [

859 {

860 "type": "command",

861 "command": "diff -q \"${CLAUDE_PLUGIN_ROOT}/package.json\" \"${CLAUDE_PLUGIN_DATA}/package.json\" >/dev/null 2>&1 || (cd \"${CLAUDE_PLUGIN_DATA}\" && cp \"${CLAUDE_PLUGIN_ROOT}/package.json\" . && npm install) || rm -f \"${CLAUDE_PLUGIN_DATA}/package.json\""

862 }

863 ]

864 }

865 ]

866 }

867}

868```

869 

870`diff` выходит с ненулевым кодом, когда сохранённая копия отсутствует или отличается от поставляемой, охватывая как первый запуск, так и обновления, изменяющие зависимости. Если `npm install` не удаётся, завершающий `rm` удаляет скопированный манифест, чтобы следующая сессия повторила попытку.

871 

872Скрипты, поставляемые в `${CLAUDE_PLUGIN_ROOT}`, затем могут работать с сохранённым `node_modules`:

873 

874```json theme={null}

875{

876 "mcpServers": {

877 "routines": {

878 "command": "node",

879 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"],

880 "env": {

881 "NODE_PATH": "${CLAUDE_PLUGIN_DATA}/node_modules"

882 }

883 }

884 }

885}

886```

887 

888Каталог данных удаляется автоматически при удалении plugin из последней области, где он установлен. Интерфейс `/plugin` показывает размер каталога и запрашивает перед удалением. CLI удаляет по умолчанию; передайте [`--keep-data`](#plugin-uninstall), чтобы сохранить его.

889 

890***

891 

892<h2 id="plugin-caching-and-file-resolution">

893 Кеширование плагинов и разрешение файлов

894</h2>

895 

896Плагины указываются одним из трёх способов:

897 

898* Через `claude --plugin-dir` или `claude --plugin-url` на время сеанса.

899* Через marketplace, установленные для будущих сеансов.

900* Через ваш аккаунт claude.ai, [синхронизированные](#synced-plugins) в `~/.claude/plugins/synced/`.

901 

902В целях безопасности и верификации Claude Code копирует плагины из *marketplace* в локальный **кеш плагинов** пользователя (`~/.claude/plugins/cache`), за исключением случаев, когда плагин загружается на месте. [`command` источник в режиме link](/docs/ru/plugin-marketplaces#copy-mode-and-link-mode) загружается на месте через ссылки в записи кеша. [Источник с относительным путём](/docs/ru/plugin-marketplaces#relative-paths) в marketplace, добавленном из локального каталога, загружается на месте из папки marketplace.

903 

904Для плагина, загруженного на месте из marketplace локального каталога, ваши изменения в исходном каталоге вступают в силу при следующем запуске сеанса или `/reload-plugins`. Вам не нужно увеличивать версию. Процессы hook плагина и серверы MCP и LSP получают `CLAUDE_PLUGIN_ROOT`, который указывает на исходный каталог. Claude Code не устанавливает [зависимости пакетов Node.js](#node-js-package-dependencies) плагина в исходный каталог. Установите их там самостоятельно или из hook в [каталог постоянных данных](#persistent-data-directory).

905 

906Для скопированных плагинов каждая установленная версия представляет собой отдельный каталог в кеше, сгруппированный по marketplace и плагину и названный по разрешённой версии, с собственной копией файлов плагина и [зависимостей пакетов Node.js](#node-js-package-dependencies). Зависимость, разрешённая из [тега релиза](/docs/ru/plugin-dependencies#tag-plugin-releases-for-version-resolution), получает имя каталога с суффиксом commit-SHA.

907 

908Когда вы обновляете или удаляете плагин, Claude Code помечает предыдущий каталог версии как сиротский и удаляет его в фоновой очистке примерно через 14 дней. Период отсрочки позволяет одновременным сеансам Claude Code, которые уже загрузили старую версию, продолжать работу без ошибок. Claude Code запускает очистку только при наличии установленного хотя бы одного плагина; после удаления последнего плагина сиротские каталоги остаются на диске до установки плагина снова.

909 

910Claude Code удаляет папку плагина или marketplace из кеша только когда она больше не содержит никаких каталогов или символических ссылок. Если вы создаёте символическую ссылку на разработочный checkout в кеш как запись версии плагина, Claude Code никогда не помечает ссылку как сиротскую и никогда не удаляет её или папки, которые её содержат. Claude Code также никогда не записывает свои файлы отслеживания версий внутри связанного checkout.

911 

912Инструменты Glob и Grep Claude пропускают сиротские каталоги версий при поиске, поэтому результаты файлов не включают устаревший код плагина.

913 

914<h3 id="node-js-package-dependencies">

915 Зависимости пакетов Node.js

916</h3>

917 

918Когда Claude Code копирует плагин в кеш, он также устанавливает зависимости пакетов Node.js плагина там, чтобы hooks и MCP серверы плагина могли их загружать. Этот раздел охватывает пакеты npm и Bun, которые плагин объявляет в своём собственном `package.json`. Для плагинов, которые зависят от других плагинов, см. [версии зависимостей плагинов](/docs/ru/plugin-dependencies).

919 

920Claude Code запускает установку внутри скопированного каталога версии каждый раз, когда создаёт его: при установке плагина, когда Claude Code обновляет плагин до новой версии, и при запуске сеанса, когда включённый плагин ещё не кеширован, например на новой машине. Установка запускается только когда корневой каталог плагина содержит как `package.json`, так и поддерживаемый файл блокировки:

921 

922| Файл блокировки | Команда |

923| :-------------------------------------------- | :----------------------------------------------- |

924| `bun.lock` или `bun.lockb` | `bun install --frozen-lockfile --ignore-scripts` |

925| `npm-shrinkwrap.json` или `package-lock.json` | `npm ci --ignore-scripts` |

926 

927Если плагин содержит более одного из этих файлов блокировки, Claude Code использует первое совпадение, проверяя по порядку: `bun.lock`, `bun.lockb`, `npm-shrinkwrap.json`, `package-lock.json`.

928 

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

930 

931* Если ваш плагин поставляется только с `yarn.lock` или `pnpm-lock.yaml`, замените его на файл блокировки npm.

932* Если `bunfig.toml` находится рядом с файлом блокировки bun, удалите `bunfig.toml` или замените файл блокировки bun на файл блокировки npm.

933 

934Поставляйте файл блокировки npm для максимального охвата. Claude Code запускает менеджер пакетов файла блокировки из PATH пользователя и не переходит на другой файл блокировки, если он отсутствует. Для плагина, распространяемого через источник npm, используйте `npm-shrinkwrap.json`; npm исключает `package-lock.json` из опубликованных пакетов.

935 

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

937 

938* **Замороженное разрешение:** Bun и npm устанавливают ровно то, что закреплено в файле блокировки, и выходят с ошибкой, а не переразрешают версии, когда `package.json` и файл блокировки не совпадают.

939* **Без скриптов жизненного цикла:** `--ignore-scripts` предотвращает запуск скриптов `preinstall`, `install` и `postinstall`, поэтому зависимости, которые собирают нативные модули в этих скриптах, загружаются, но не компилируются во время этой установки.

940* **Тайм-аут 60 секунд:** Claude Code останавливает установку, которая работает дольше, и рассматривает её как неудачную.

941 

942Claude Code получает плагин из источника npm перед этой установкой зависимостей, и ни один из собственных скриптов установки пакета не запускается во время получения. См. [пакеты npm](/docs/ru/plugin-marketplaces#npm-packages).

943 

944Неудачная или пропущенная установка никогда не блокирует плагин. Когда установка не удаётся или Claude Code пропускает её из-за файла блокировки yarn или pnpm или `bunfig.toml`, он записывает причину как предупреждение в [выходе отладки](#debugging-commands). Плагин с `package.json` и без файла блокировки пропускается без записи в журнал. Истёкшая по времени установка может оставить частичное дерево `node_modules` в кешированной копии.

945 

946Вы не можете отключить автоматическую установку; никакая настройка или переменная окружения её не отключает. В ограниченных сетях см. [требования к сетевому доступу](/docs/ru/network-config#network-access-requirements) для хостов, которые нужно разрешить.

947 

948Для зависимостей, которые автоматическая установка не может предоставить, таких как пакеты, которым нужны скрипты жизненного цикла для сборки, зависимости Python или плагин, заблокированный Yarn или pnpm, установите их из hook в [каталог постоянных данных](#persistent-data-directory).

949 

950<h3 id="path-traversal-limitations">

951 Ограничения обхода пути

952</h3>

953 

954Claude Code не позволяет плагину ссылаться на файлы вне его собственного каталога. Он отклоняет путь компонента, который разрешается вне корня плагина, независимо от того, объявлен ли путь в `plugin.json` или в [записи marketplace](/docs/ru/plugin-marketplaces#plugin-entries). Это охватывает путь, который указывает вне плагина в том виде, в котором он написан, например `../shared-utils`, и символическую ссылку, которая ведёт вне плагина, кроме [ссылок в одном marketplace](#share-files-within-a-marketplace-with-symlinks).

955 

956На macOS и Linux Claude Code также отклоняет путь компонента, который содержит обратную косую черту где-либо в нём, даже когда путь остаётся внутри плагина. Компоненты, объявленные с путями обратной косой черты, поэтому загружаются только на Windows. Пишите пути компонентов с прямыми косыми чертами, например `./commands/deploy.md`.

957 

958Когда Claude Code отклоняет путь, он сообщает об ошибке [`path escapes plugin directory`](/docs/ru/errors#path-escapes-plugin-directory) и загружает плагин без этого компонента.

959 

960Claude Code также не копирует файлы вне каталога плагина в кеш при установке плагина, поэтому когда скрипт внутри скопированного плагина читает путь выше корня плагина, он не находит эти файлы либо.

961 

962<h3 id="share-files-within-a-marketplace-with-symlinks">

963 Совместное использование файлов в marketplace с помощью символических ссылок

964</h3>

965 

966Если ваш плагин должен совместно использовать файлы с другими частями одного и того же marketplace, вы можете создавать символические ссылки внутри каталога вашего плагина. То, как символическая ссылка обрабатывается при копировании плагина в кеш, зависит от того, где разрешается её цель:

967 

968* **Внутри собственного каталога плагина:** символическая ссылка сохраняется как относительная символическая ссылка в кеше, поэтому она продолжает разрешаться на скопированную цель во время выполнения.

969* **В другом месте в одном marketplace:** символическая ссылка разыменовывается. Содержимое цели копируется в кеш на её место. Это позволяет каталогу `skills/` мета-плагина ссылаться на skills, определённые другими плагинами в marketplace.

970* **Вне marketplace:** символическая ссылка пропускается в целях безопасности. Это предотвращает извлечение плагинами произвольных файлов хоста, таких как системные пути, в кеш.

971 

972Для плагинов, установленных с `--plugin-dir`, из локального пути или из [`command` источника](/docs/ru/plugin-marketplaces#copy-mode-and-link-mode) в режиме copy, сохраняются только символические ссылки, которые разрешаются в собственном каталоге плагина. Все остальные пропускаются.

973 

974Следующая команда создаёт ссылку из плагина marketplace на общий skill, определённый плагином-соседом. На Windows используйте `mklink /D` из командной строки с повышенными привилегиями или включите режим разработчика:

975 

976```bash theme={null}

977ln -s ../../shared-plugin/skills/foo ./skills/foo

978```

979 

980***

981 

982<h2 id="plugin-directory-structure">

983 Структура каталога плагина

984</h2>

985 

986<h3 id="standard-plugin-layout">

987 Стандартная структура плагина

988</h3>

989 

990Полный плагин следует этой структуре:

991 

992```text theme={null}

993enterprise-plugin/

994├── .claude-plugin/ # Каталог метаданных (опционально)

995│ └── plugin.json # манифест плагина

996├── skills/ # Skills

997│ ├── code-reviewer/

998│ │ └── SKILL.md

999│ └── pdf-processor/

1000│ ├── SKILL.md

1001│ └── scripts/

1002├── commands/ # Skills как плоские файлы .md

1003│ ├── status.md

1004│ └── logs.md

1005├── agents/ # Определения подагентов

1006│ ├── security-reviewer.md

1007│ ├── performance-tester.md

1008│ ├── compliance-checker.md

1009│ └── review/ # Агенты здесь загружаются как enterprise-plugin:review:<name>

1010│ └── accessibility.md

1011├── workflows/ # Скрипты рабочих процессов

1012│ └── release-audit.js

1013├── output-styles/ # Определения стилей вывода

1014│ └── terse.md

1015├── themes/ # Определения цветовых тем

1016│ └── dracula.json

1017├── monitors/ # Конфигурации фоновых мониторов

1018│ └── monitors.json

1019├── hooks/ # Конфигурации hooks

1020│ ├── hooks.json # Основная конфигурация hooks

1021│ └── security-hooks.json # Дополнительные hooks

1022├── bin/ # Исполняемые файлы плагина, добавленные в PATH

1023│ └── my-tool # Вызывается как простая команда в инструменте Bash

1024├── settings.json # Параметры по умолчанию для плагина

1025├── .mcp.json # Определения MCP-сервера

1026├── .lsp.json # Конфигурации LSP-сервера

1027├── scripts/ # Скрипты hooks и утилиты

1028│ ├── security-scan.sh

1029│ ├── format-code.py

1030│ └── deploy.js

1031├── LICENSE # Файл лицензии

1032└── CHANGELOG.md # История версий

1033```

1034 

1035<Warning>

1036 Каталог `.claude-plugin/` содержит файл `plugin.json`. Все остальные каталоги (commands/, agents/, skills/, workflows/, output-styles/, themes/, monitors/, hooks/) должны находиться в корне плагина, а не внутри `.claude-plugin/`.

1037</Warning>

1038 

1039Файл `CLAUDE.md` в корне плагина не загружается как контекст проекта. Плагины предоставляют контекст через skills, agents и hooks, а не через CLAUDE.md. Чтобы отправить инструкции, которые загружаются в контекст Claude, поместите их в [skill](#skills).

1040 

1041<h3 id="file-locations-reference">

1042 Справочник расположения файлов

1043</h3>

1044 

1045| Компонент | Расположение по умолчанию | Назначение |

1046| :-------------------- | :--------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

1047| **Манифест** | `.claude-plugin/plugin.json` | Метаданные и конфигурация плагина (опционально) |

1048| **Skills** | `skills/` | Skills со структурой `<name>/SKILL.md` |

1049| **Команды** | `commands/` | Skills как плоские файлы Markdown. Используйте `skills/` для новых плагинов |

1050| **Агенты** | `agents/` | Файлы Markdown подагентов. Подпапки являются частью [имени агента](#agents) |

1051| **Рабочие процессы** | `workflows/` | Файлы скриптов [Workflow](/docs/ru/workflows) |

1052| **Стили вывода** | `output-styles/` | Определения стилей вывода |

1053| **Темы** | `themes/` | Определения цветовых тем |

1054| **Hooks** | `hooks/hooks.json` | Конфигурация hooks |

1055| **MCP-серверы** | `.mcp.json` | Определения MCP-сервера |

1056| **LSP-серверы** | `.lsp.json` | Конфигурации языковых серверов |

1057| **Мониторы** | `monitors/monitors.json` | Конфигурации фоновых мониторов |

1058| **Исполняемые файлы** | `bin/` | Исполняемые файлы, добавленные в `PATH` инструмента Bash и вызываемые как простые команды при включении плагина. Вы не можете включить этот каталог в плагин, который вы [распространяете через параметры организации claude.ai](/docs/ru/plugin-marketplaces#keep-executables-out-of-the-top-level-bin-directory) |

1059| **Параметры** | `settings.json` | Конфигурация по умолчанию, применяемая при включении плагина. Поддерживаются только ключи [`agent`](/docs/ru/sub-agents) и [`subagentStatusLine`](/docs/ru/statusline#subagent-status-lines) |

1060 

1061***

1062 

1063<h2 id="cli-commands-reference">

1064 Справочник команд CLI

1065</h2>

1066 

1067Claude Code предоставляет команды CLI для неинтерактивного управления плагинами, полезные для написания скриптов и автоматизации.

1068 

1069<h3 id="plugin-init">

1070 plugin init

1071</h3>

1072 

1073Создайте новый плагин в `~/.claude/skills/<name>/`. На следующей сессии Claude Code он загружается автоматически как `<name>@skills-dir` и появляется в `/plugin` и `claude plugin list` без необходимости установки.

1074 

1075См. [Skills-directory plugins](#skills-directory-plugins) для требований к области действия и доверию.

1076 

1077```bash theme={null}

1078claude plugin init <name> [options]

1079```

1080 

1081Команда принимает эти аргументы:

1082 

1083* `<name>`: Имя плагина. Становится пространством имён навыка и именем каталога в `~/.claude/skills/`, поэтому не может содержать пробелы или разделители пути.

1084 

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

1086 

1087| Опция | Описание | По умолчанию |

1088| :----------------------- | :-------------------------------------------------------------------------------------------------------------------------- | :---------------------- |

1089| `--description <text>` | Описание в манифесте | |

1090| `--author <name>` | Имя автора | `git config user.name` |

1091| `--author-email <email>` | Email автора | `git config user.email` |

1092| `--with <components...>` | Также создайте папки компонентов. Допустимые значения: `skills`, `agents`, `hooks`, `mcp`, `lsp`, `output-style`, `channel` | |

1093| `-f, --force` | Перезаписать существующий `.claude-plugin/` в целевом месте | |

1094| `-h, --help` | Показать справку по команде | |

1095 

1096`claude plugin new` является псевдонимом для этой команды.

1097 

1098Каждое значение `--with` добавляет стартовый файл для этого компонента, готовый к редактированию:

1099 

1100| Компонент | Что создаётся |

1101| :------------- | :---------------------------------------------------------------------------------------------------- |

1102| `skills` | Дополнительный навык с пространством имён `<name>:example` рядом с навыком по умолчанию |

1103| `agents` | Определение подагента `agents/` |

1104| `hooks` | `hooks/hooks.json` с примером обработчика события |

1105| `mcp` | `.mcp.json` с примерами HTTP и stdio серверов |

1106| `lsp` | Пример языкового сервера `.lsp.json` |

1107| `output-style` | `output-styles/<name>.md`, который применяется автоматически, пока плагин включен |

1108| `channel` | Основанный на MCP [канал](/docs/ru/channels): stdio сервер (`server.ts`), его `.mcp.json` и `package.json` |

1109 

1110Созданный плагин использует источник `@skills-dir` вместо маркетплейса. Администраторы могут заблокировать этот источник с помощью `strictKnownMarketplaces` или добавив `{"source": "skills-dir"}` в `blockedMarketplaces` в [управляемых параметрах](/docs/ru/plugin-marketplaces#managed-marketplace-restrictions). При блокировке `plugin init` завершается с ошибкой перед записью.

1111 

1112Эти примеры показывают распространённые вызовы:

1113 

1114```bash theme={null}

1115# Создать минимальный плагин

1116claude plugin init my-helper

1117 

1118# Создать с папками навыков и hooks

1119claude plugin init my-helper --with skills hooks

1120 

1121# Перезаписать существующий скаффолд

1122claude plugin init my-helper --force

1123```

1124 

1125<h3 id="plugin-install">

1126 plugin install

1127</h3>

1128 

1129Установите плагин из доступных маркетплейсов.

1130 

1131```bash theme={null}

1132claude plugin install <plugin> [options]

1133```

1134 

1135Команда принимает эти аргументы:

1136 

1137* `<plugin>`: Имя плагина или `plugin-name@marketplace-name` для конкретного маркетплейса

1138 

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

1140 

1141| Опция | Описание | По умолчанию |

1142| :-------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------- |

1143| `-s, --scope <scope>` | Область установки: `user`, `project` или `local` | `user` |

1144| `--config <key=value>` | Установить опцию [`userConfig`](#user-configuration), объявленную в манифесте плагина. Повторите флаг для установки нескольких опций | |

1145| `-y, --yes` | Принять команду, которую объявляет маркетплейс плагина, без подтверждения: команду, которая создаёт плагин с [источником `command`](/docs/ru/plugin-marketplaces#command-sources), или [`headersHelper`](/docs/ru/plugin-marketplaces#authenticate-archive-downloads), который аутентифицирует загрузку архива. Принятие `headersHelper` требует Claude Code v2.1.238 или позже. Claude Code всё равно выводит команду первой. Требуется, когда stdin или stdout не является TTY, если вы не передаёте `--accept-command`. Не имеет эффекта внутри сессии Claude Code, поэтому запустите команду из вашего собственного терминала | |

1146| `--accept-command <sha256>` | Принять объявленную маркетплейсом команду, чей `sha256` предыдущий запуск [`--json`](#plugin-json-result) сообщил в `shownCommand`, вместо `-y`. Принятие считается ровно для этой команды, плагина и каталога маркетплейса. Если любой из них изменился с момента отображения команды, включая через собственный запуск маркетплейса, Claude Code не принимает дайджест и показывает команду снова. Не может быть объединено с `-y`. Не имеет эффекта внутри сессии Claude Code, поэтому запустите команду из вашего собственного терминала. Требует Claude Code v2.1.271 или позже | |

1147| `--json` | Вывести результат как один объект JSON на последней строке stdout вместо удобочитаемого сообщения для использования в скриптах. См. [Формат результата JSON](#plugin-json-result). Требует Claude Code v2.1.268 или позже | |

1148| `-h, --help` | Показать справку по команде | |

1149 

1150Область определяет, в какой файл параметров добавляется установленный плагин. Например, `--scope project` записывает в `enabledPlugins` в .claude/settings.json, делая плагин доступным для всех, кто клонирует репозиторий проекта.

1151 

1152<span id="plugin-json-result" />С `--json` последняя строка stdout — это один объект JSON. Разбирайте только эту строку, потому что Claude Code выводит любую команду, которую объявляет маркетплейс, перед ней. Три поля всегда присутствуют:

1153 

1154* `command`: подкоманда, которая была запущена, например `install`

1155* `outcome`: `ok` или `failed`

1156* `message`: удобочитаемое описание результата

1157 

1158Другие поля, такие как `pluginId`, `scope` и `failureCode`, появляются только когда они применимы. Опция `--json` на `plugin uninstall`, `plugin update`, `plugin enable` и `plugin disable` выводит тот же объект с собственными полями этой подкоманды. Ошибка использования, такая как недопустимый `--scope`, не выводит строку результата и выходит с кодом 1 с причиной на stderr.

1159 

1160Когда запуск отображает объявленную маркетплейсом команду и не запускает её, результат `failed` также содержит объект `shownCommand`, чьи поля включают команду как отображённую, плагин, к которому она принадлежит, и `sha256` команды. Чтобы принять ровно эту команду, повторно запустите с этим `sha256` как `--accept-command`. Требует Claude Code v2.1.271 или позже.

1161 

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

1163 

1164Эти примеры показывают распространённые вызовы:

1165 

1166```bash theme={null}

1167# Установить в область пользователя (по умолчанию)

1168claude plugin install formatter@my-marketplace

1169 

1170# Установить в область проекта (общее с командой)

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

1172 

1173# Установить в локальную область (не общее с командой)

1174claude plugin install formatter@my-marketplace --scope local

1175```

1176 

1177<h3 id="plugin-uninstall">

1178 plugin uninstall

1179</h3>

1180 

1181Удалите установленный плагин.

1182 

1183```bash theme={null}

1184claude plugin uninstall <plugin> [options]

1185```

1186 

1187Команда принимает эти аргументы:

1188 

1189* `<plugin>`: Имя плагина или `plugin-name@marketplace-name`

1190 

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

1192 

1193| Опция | Описание | По умолчанию |

1194| :-------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------- |

1195| `-s, --scope <scope>` | Удалить из области: `user`, `project` или `local` | `user` |

1196| `--keep-data` | Сохранить [каталог постоянных данных](#persistent-data-directory) плагина | |

1197| `--prune` | Также удалить автоматически установленные зависимости, которые не требуются другим плагинам. См. [plugin prune](#plugin-prune) | |

1198| `-y, --yes` | Пропустить подтверждение `--prune`. Требуется, когда stdin или stdout не является TTY | |

1199| `--json` | Вывести результат как один объект JSON на последней строке stdout в [том же формате, что и `plugin install --json`](#plugin-json-result). Не может быть объединено с `--prune`. Требует Claude Code v2.1.268 или позже | |

1200| `-h, --help` | Показать справку по команде | |

1201 

1202`claude plugin remove` и `claude plugin rm` являются псевдонимами для этой команды.

1203 

1204По умолчанию удаление из последней оставшейся области также удаляет каталог `${CLAUDE_PLUGIN_DATA}` плагина. Используйте `--keep-data` для сохранения, например при переустановке после тестирования новой версии.

1205 

1206<Note>

1207 Когда установленные плагины из разных маркетплейсов имеют одно имя, форма `plugin-name@marketplace-name` удаляет только плагин из названного маркетплейса. До v2.1.212 квалифицированная форма могла совпадать и удалять одноимённый плагин из другого маркетплейса.

1208</Note>

1209 

1210<h3 id="plugin-prune">

1211 plugin prune

1212</h3>

1213 

1214Удалите автоматически установленные зависимости плагинов, которые больше не требуются ни одним установленным плагином. Зависимости, которые Claude Code подтянул для удовлетворения поля [`dependencies`](/docs/ru/plugin-dependencies) другого плагина, удаляются; плагины, которые вы установили напрямую, никогда не трогаются.

1215 

1216```bash theme={null}

1217claude plugin prune [options]

1218```

1219 

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

1221 

1222| Опция | Описание | По умолчанию |

1223| :-------------------- | :-------------------------------------------------------------------------- | :----------- |

1224| `-s, --scope <scope>` | Очистить в области: `user`, `project` или `local` | `user` |

1225| `--dry-run` | Список того, что будет удалено, без фактического удаления | |

1226| `-y, --yes` | Пропустить подтверждение. Требуется, когда stdin или stdout не является TTY | |

1227| `-h, --help` | Показать справку по команде | |

1228 

1229`claude plugin autoremove` является псевдонимом для этой команды.

1230 

1231Команда выводит список сиротских зависимостей и запрашивает подтверждение перед их удалением. Чтобы удалить плагин и очистить его зависимости в один шаг, запустите `claude plugin uninstall <plugin> --prune`.

1232 

1233<h3 id="plugin-enable">

1234 plugin enable

1235</h3>

1236 

1237Включите отключённый плагин. Когда целевой плагин установлен из маркетплейса и объявляет [зависимости](/docs/ru/plugin-dependencies), Claude Code включает их транзитивно в той же области. Команда завершается с ошибкой при условиях, которые перечисляет [Enable or disable a plugin with dependencies](/docs/ru/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies).

1238 

1239```bash theme={null}

1240claude plugin enable <plugin> [options]

1241```

1242 

1243Команда принимает эти аргументы:

1244 

1245* `<plugin>`: Имя плагина, `plugin-name@marketplace-name` или `plugin-name@synced` для [плагина, синхронизированного из claude.ai](#synced-plugins)

1246 

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

1248 

1249| Опция | Описание | По умолчанию |

1250| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------- |

1251| `-s, --scope <scope>` | Область для включения: `user`, `project` или `local`. Если опущено, Claude Code определяет область, где установлен плагин | Автоопределение |

1252| `--json` | Вывести результат как один объект JSON на последней строке stdout в [том же формате, что и `plugin install --json`](#plugin-json-result). Требует Claude Code v2.1.268 или позже | |

1253| `-h, --help` | Показать справку по команде | |

1254 

1255<h3 id="plugin-disable">

1256 plugin disable

1257</h3>

1258 

1259Отключите плагин без его удаления.

1260 

1261Когда целевой плагин установлен из маркетплейса, команда завершается с ошибкой, если другой включённый плагин [зависит от](/docs/ru/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies) него. Сообщение об ошибке включает цепочку команд, которая сначала отключает каждый зависимый плагин.

1262 

1263Для [синхронизированного плагина](#synced-plugins), который требует ваша организация, команда завершается с ошибкой и ничего не сохраняет.

1264 

1265```bash theme={null}

1266claude plugin disable [plugin] [options]

1267```

1268 

1269Команда принимает эти аргументы:

1270 

1271* `[plugin]`: Имя плагина, `plugin-name@marketplace-name` или `plugin-name@synced` для [плагина, синхронизированного из claude.ai](#synced-plugins). Опционально при использовании `--all`

1272 

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

1274 

1275| Опция | Описание | По умолчанию |

1276| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------- |

1277| `-a, --all` | Отключить все включённые плагины. Не может быть объединено с `--scope` | |

1278| `-s, --scope <scope>` | Область для отключения: `user`, `project` или `local`. Если опущено, Claude Code определяет область, где установлен плагин | Автоопределение |

1279| `--json` | Вывести результат как один объект JSON на последней строке stdout в [том же формате, что и `plugin install --json`](#plugin-json-result). Требует Claude Code v2.1.268 или позже | |

1280| `-h, --help` | Показать справку по команде | |

1281 

1282<h3 id="plugin-update">

1283 plugin update

1284</h3>

1285 

1286Обновите плагин до последней версии.

1287 

1288```bash theme={null}

1289claude plugin update <plugin> [options]

1290```

1291 

1292Команда принимает эти аргументы:

1293 

1294* `<plugin>`: Имя плагина или `plugin-name@marketplace-name`

1295 

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

1297 

1298| Опция | Описание | По умолчанию |

1299| :-------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------- |

1300| `-s, --scope <scope>` | Область для обновления: `user`, `project`, `local` или `managed` | `user` |

1301| `-y, --yes` | Принять команду, которую объявляет маркетплейс плагина, без подтверждения: команду, которая создаёт плагин с [источником `command`](/docs/ru/plugin-marketplaces#command-sources), или [`headersHelper`](/docs/ru/plugin-marketplaces#authenticate-archive-downloads), который аутентифицирует загрузку архива. Принятие `headersHelper` требует Claude Code v2.1.238 или позже. Claude Code всё равно выводит команду первой. Требуется, когда stdin или stdout не является TTY, если вы не передаёте `--accept-command`. Не имеет эффекта внутри сессии Claude Code, поэтому запустите команду из вашего собственного терминала | |

1302| `--accept-command <sha256>` | Принять объявленную маркетплейсом команду, чей `sha256` предыдущий запуск [`--json`](#plugin-json-result) сообщил в `shownCommand`, вместо `-y`. Принятие считается ровно для этой команды, плагина и каталога маркетплейса. Если любой из них изменился с момента отображения команды, включая через собственный запуск маркетплейса, Claude Code не принимает дайджест и показывает команду снова. Не может быть объединено с `-y`. Не имеет эффекта внутри сессии Claude Code, поэтому запустите команду из вашего собственного терминала. Требует Claude Code v2.1.271 или позже | |

1303| `--json` | Вывести результат как один объект JSON на последней строке stdout в [том же формате, что и `plugin install --json`](#plugin-json-result). Требует Claude Code v2.1.268 или позже | |

1304| `-h, --help` | Показать справку по команде | |

1305 

1306<Note>

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

1308</Note>

1309 

1310***

1311 

1312<h3 id="plugin-list">

1313 plugin list

1314</h3>

1315 

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

1317 

1318```bash theme={null}

1319claude plugin list [options]

1320```

1321 

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

1323 

1324| Опция | Описание | По умолчанию |

1325| :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----------- |

1326| `--json` | Вывести как JSON. Строка плагина с проблемами загрузки или предупреждениями авторства содержит массивы строк `errors` или `notes`. На Claude Code v2.1.268 или позже параллельные массивы `errorDetails` и `noteDetails` дают каждой записи диагностический `type` и названия, на которые она ссылается, такие как плагин, маркетплейс, сервер или файл | |

1327| `--available` | Включить доступные плагины из маркетплейсов. Требует `--json` | |

1328| `-h, --help` | Показать справку по команде | |

1329 

1330В интерактивной сессии `/plugin list` выводит похожий список встроенным образом, но охватывает только плагины, установленные из маркетплейса:

1331 

1332* Плагины, загруженные из каталогов навыков, появляются в интерфейсе `/plugin` и в `claude plugin list`, но не в выводе встроенного `/plugin list`.

1333* [Плагины, синхронизированные из claude.ai](#synced-plugins) появляются в `claude plugin list` на Claude Code v2.1.239 или позже и в интерфейсе `/plugin`, но не в выводе встроенного `/plugin list`.

1334* Плагины, загруженные для сессии с `--plugin-dir` или `--plugin-url`, появляются в интерфейсе `/plugin` и в `claude plugin list` только когда тот же флаг предшествует подкоманде, как в `claude --plugin-dir <dir> plugin list`. Только имя флага указывает их местоположение, поэтому простой `claude plugin list` не может их найти, в отличие от синхронизированных плагинов и плагинов из каталога навыков, чьи фиксированные каталоги сканирует Claude Code.

1335 

1336Интерактивная форма принимает `--enabled` или `--disabled` для отображения только плагинов в этом состоянии и `ls` как сокращение для `list`.

1337 

1338<h3 id="plugin-details">

1339 plugin details

1340</h3>

1341 

1342Показать инвентарь компонентов плагина и прогнозируемую стоимость в токенах. Вывод выводит список всех компонентов, которые вносит плагин, сгруппированных как Skills, Agents, Hooks, MCP серверы и LSP серверы, вместе с оценкой того, сколько токенов он добавляет к каждой сессии. Группа Skills включает записи как `skills/`, так и `commands/`.

1343 

1344```bash theme={null}

1345claude plugin details <name>

1346```

1347 

1348Команда принимает эти аргументы:

1349 

1350* `<name>`: Имя плагина или `plugin-name@marketplace-name`

1351 

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

1353 

1354| Опция | Описание | По умолчанию |

1355| :----------- | :-------------------------- | :----------- |

1356| `-h, --help` | Показать справку по команде | |

1357 

1358Вывод показывает две цифры стоимости для каждого компонента:

1359 

1360* **Always-on:** токены, добавляемые к каждой сессии текстом списка плагина, такие как описания навыков, описания агентов и имена команд, независимо от того, срабатывает ли какой-либо компонент.

1361* **On-invoke:** токены, которые стоит компонент при срабатывании. Показано для каждого компонента отдельно, а не как итог плагина, потому что типичная сессия вызывает только подмножество компонентов.

1362 

1363Этот пример показывает, как выглядит вывод для плагина с двумя навыками:

1364 

1365```

1366dependency-guard 1.2.0

1367 Dependency analysis for Claude Code sessions

1368 Source: dependency-guard@example-marketplace

1369 

1370Component inventory

1371 Skills (2) scan-dependencies, review-changes

1372 Agents (0)

1373 Hooks (1) SessionStart (harness-only — no model context cost)

1374 MCP servers (0)

1375 LSP servers (0)

1376 

1377Projected token cost

1378 Always-on: ~180 tok added to every session

1379 

1380Per-component (rounded)

1381 component always-on on-invoke

1382 scan-dependencies ~100 ~2400

1383 review-changes ~80 ~1800

1384 

1385 On-invoke cost is paid each time a skill or agent fires.

1386 Token counts are estimates and may differ from actual usage.

1387```

1388 

1389Итог always-on вычисляется через API `count_tokens` для вашей активной модели. Числа для каждого компонента пропорционально масштабируются от этого итога. Если API недоступен, команда возвращается к оценке на основе символов.

1390 

1391<h3 id="plugin-validate">

1392 plugin validate

1393</h3>

1394 

1395Проверьте плагин или маркетплейс на синтаксические и схемные ошибки перед публикацией.

1396 

1397Команда выходит с кодом 0 при успешной валидации, 1 при неудаче и 2 при неудаче самого запуска валидации, например когда переданный путь нечитаем.

1398 

1399```bash theme={null}

1400claude plugin validate <path> [options]

1401```

1402 

1403Команда принимает эти аргументы:

1404 

1405* `<path>`: Путь к каталогу плагина или каталогу маркетплейса. См. [Validate a plugin or a directory without a manifest](/docs/ru/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest) для того, какие файлы охватывает запуск плагина.

1406 

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

1408 

1409| Опция | Описание | По умолчанию |

1410| :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----------- |

1411| `--strict` | Рассматривать предупреждения как ошибки и выходить с кодом 1 при них. Используйте в CI для перехвата проблем, которые допускает среда выполнения, такие как [unrecognized fields](#unrecognized-fields) | |

1412| `--json` | Вывести отчёт валидации как один объект JSON с теми же кодами выхода. Требует Claude Code v2.1.259 или позже | |

1413| `-h, --help` | Показать справку по команде | |

1414 

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

1416 

1417* `success`: тот же вердикт, который даёт код выхода

1418* `strict`: рассматривала ли запуск предупреждения как ошибки

1419* `target`: разрешённый путь, который Claude Code валидировал

1420* `manifest`: собственный результат манифеста или `null` для [запуска без манифеста](/docs/ru/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest)

1421* `contents`: результаты для каждого файла, каждый называет свой `file` и несёт массивы `errors`, `warnings` и `notes`

1422 

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

1424 

1425В интерактивной сессии `/plugin validate <path>` запускает те же проверки встроенным образом.

1426 

1427<h3 id="plugin-eval">

1428 plugin eval

1429</h3>

1430 

1431Запустите [eval cases](/docs/ru/plugin-evals) плагина и выведите оценённые результаты. Требует Claude Code v2.1.269 или позже. Каждый случай — это подсказка плюс оценщики; Claude Code запускает его несколько раз в изолированной сессии только с целевым плагином загруженным, и по умолчанию также без плагина, чтобы отчёт показал разницу. См. [Test plugins with evals](/docs/ru/plugin-evals) для формата случаев, оценщиков, результатов и использования в CI.

1432 

1433```bash theme={null}

1434claude plugin eval [target] [options]

1435```

1436 

1437Опциональный `target` — это каталог плагина, один файл `prompt.md` или `case.yaml`, установленный плагин как `name` или `name@marketplace`, или `name@skills-dir`, и по умолчанию текущий каталог. Поместите его перед `--tag`, `--allow-tools` и `--json`.

1438 

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

1440 

1441| Опция | Описание | По умолчанию |

1442| :------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------- |

1443| `--runs <n>` | Запусков на случай на ветвь | Каждого случая `runs`, иначе 3 |

1444| `-j, --concurrency <n>` | Сессии агентов для запуска одновременно, от 1 до 8. Они делят ваш лимит скорости | `1` |

1445| `--model <model>` | Модель для тестируемого агента | Каждого случая `model`, иначе `ANTHROPIC_MODEL` если установлено, иначе по умолчанию Claude Code |

1446| `--judge-model <model>` | Модель для оценщиков `llm` и `baseline` | Маленькая быстрая модель |

1447| `--ablation <mode>` | `none` или `with-without`. См. [Compare against a no-plugin baseline](/docs/ru/plugin-evals#compare-against-a-no-plugin-baseline) | `with-without` когда плагин разрешается, иначе `none` |

1448| `--threshold <0..1>` | Выход 1 если какой-либо случай оценивается ниже этого | `1.0` |

1449| `--max-cost-usd <usd>` | Остановиться перед следующим запуском после достижения расходов этого, выход 2 и вывести частичные результаты | Нет потолка |

1450| `--allow-tools <tools...>` | Предоставить инструменты сверх набора только для чтения, такие как `Bash`, `Write`, `Edit` или `"mcp__plugin_<plugin>_<server>__*"`. См. [Grant tools](/docs/ru/plugin-evals#grant-tools) | |

1451| `--scaffold` | Запустить [`scaffold_script`](/docs/ru/plugin-evals#add-setup-or-history-with-case-yaml) каждого случая | Выключено |

1452| `--trust-plugin` | Пропустить подсказку доверия при первом запуске, для CI. См. [What a run can access](/docs/ru/plugin-evals#security) | Выключено |

1453| `--mocks <mode>` | `record` или `off`. См. [Mock MCP servers](/docs/ru/plugin-evals#mock-mcp-servers) | `record` |

1454| `--eval-dir <dir>` | Каталог ниже плагина, который содержит случаи | `experimental.evals` манифеста, иначе `evals` |

1455| `--json [path]` | Вывести [документ результата](/docs/ru/plugin-evals#json-result) в stdout или записать его в путь `.json` | |

1456| `--no-publish` | Держать отчёт HTML локально | |

1457| `-h, --help` | Показать справку по команде | |

1458 

1459Команда выходит с кодом 0 когда каждый случай соответствует пороговому значению, 1 при неудачном случае, ошибке загрузки или недоверенном каталоге плагина, 2 при частичном запуске, 130 при прерывании и 143 при завершении. См. [Run evals in CI](/docs/ru/plugin-evals#run-evals-in-ci).

1460 

1461<h3 id="plugin-eval-init">

1462 plugin eval init

1463</h3>

1464 

1465Создайте набор eval для плагина в текущем каталоге. Требует Claude Code v2.1.269 или позже. В терминале это запускает интервью по авторству, которое читает плагин, предлагает случаи и оценщики, пилотирует их и записывает файлы. С `--bare` или без терминала, оно записывает пустой шаблон одного случая вместо этого. Запустите из интерактивной сессии Claude Code, оно выводит инструкции интервью для этой сессии, чтобы следовать, а не записывать шаблон. См. [Create your first eval suite](/docs/ru/plugin-evals#create-your-first-eval-suite).

1466 

1467```bash theme={null}

1468claude plugin eval init [name] [options]

1469```

1470 

1471Опциональный `name` — это имя случая: интервью не нуждается в нём, в то время как `--bare` и путь шаблона без терминала требуют его. Он принимает эти опции:

1472 

1473| Опция | Описание | По умолчанию |

1474| :------------------ | :--------------------------------------------------------------------------------------- | :-------------------------------------------- |

1475| `--bare` | Записать пустой `prompt.md` и `graders/criteria.md` для `<name>` вместо запуска интервью | |

1476| `-i, --interactive` | Требовать интервью. Завершается с ошибкой без терминала вместо записи шаблона | |

1477| `--eval-dir <dir>` | Каталог ниже текущего каталога для записи случаев в | `experimental.evals` манифеста, иначе `evals` |

1478| `-h, --help` | Показать справку по команде | |

1479 

1480<h3 id="plugin-tag">

1481 plugin tag

1482</h3>

1483 

1484Создайте тег выпуска git для плагина. По умолчанию команда помечает плагин в текущем каталоге; передайте путь для пометки плагина в другом месте. См. [Tag plugin releases](/docs/ru/plugin-dependencies#tag-plugin-releases-for-version-resolution).

1485 

1486```bash theme={null}

1487claude plugin tag [path] [options]

1488```

1489 

1490Команда принимает эти аргументы:

1491 

1492* `[path]`: Путь к каталогу плагина. По умолчанию текущий каталог.

1493 

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

1495 

1496| Опция | Описание | По умолчанию |

1497| :-------------------- | :-------------------------------------------------------------------- | :----------- |

1498| `--push` | Отправить тег на удалённый репозиторий после создания | |

1499| `--dry-run` | Вывести то, что будет помечено, без создания тега | |

1500| `-f, --force` | Создать тег даже если рабочее дерево грязное или тег уже существует | |

1501| `-m, --message <msg>` | Сообщение аннотации тега. Используйте `%s` как заполнитель для версии | |

1502| `--remote <name>` | Удалённый репозиторий для отправки с `--push` | `origin` |

1503| `-h, --help` | Показать справку по команде | |

1504 

1505***

1506 

1507<h2 id="debugging-and-development-tools">

1508 Инструменты отладки и разработки

1509</h2>

1510 

1511<h3 id="debugging-commands">

1512 Команды отладки

1513</h3>

1514 

1515Используйте `claude --debug` для просмотра деталей загрузки плагинов:

1516 

1517Это показывает:

1518 

1519* Какие плагины загружаются

1520* Любые ошибки в манифестах плагинов

1521* Регистрацию skills, agents и hooks

1522* Инициализацию MCP сервера

1523 

1524<h3 id="common-issues">

1525 Распространённые проблемы

1526</h3>

1527 

1528| Проблема | Причина | Решение |

1529| :---------------------------------- | :---------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1530| Плагин не загружается | Неверный `plugin.json` | Запустите `claude plugin validate ./my-plugin` или `/plugin validate ./my-plugin`, где `./my-plugin` — это директория вашего плагина, чтобы проверить `plugin.json`, `hooks/hooks.json` и frontmatter skills, agents и commands в директориях плагина по умолчанию на синтаксические и схемные ошибки. См. [Validate a plugin or a directory without a manifest](/docs/ru/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest) для информации о том, что охватывает запуск |

1531| Skills не отображаются | Неправильная структура директории | Убедитесь, что `skills/` или `commands/` находится в корне плагина, а не внутри `.claude-plugin/` |

1532| Hooks не срабатывают | Скрипт не исполняемый | Запустите `chmod +x script.sh` |

1533| MCP сервер не работает | Отсутствует `${CLAUDE_PLUGIN_ROOT}` | Используйте переменную для всех путей плагина |

1534| Ошибки пути | Используются абсолютные пути | Сделайте пути относительными, начиная с `./`; см. [Path behavior rules](#path-behavior-rules), которые охватывают исключение `"."` в поле `skills` |

1535| LSP `Executable not found in $PATH` | Языковой сервер не установлен | Установите бинарный файл (например, `npm install -g typescript-language-server typescript`) |

1536 

1537<h3 id="example-error-messages">

1538 Примеры сообщений об ошибках

1539</h3>

1540 

1541**Ошибки валидации манифеста**:

1542 

1543* `Invalid JSON syntax: Unexpected token } in JSON at position 142`: проверьте наличие пропущенных запятых, лишних запятых или неэкранированных строк

1544* `Plugin <name> has an invalid manifest file at .claude-plugin/plugin.json. Validation errors: name: Invalid input: expected string, received undefined`: отсутствует обязательное поле

1545* `Plugin <name> has a corrupt manifest file at .claude-plugin/plugin.json. JSON parse error: ...`: ошибка синтаксиса JSON. До версии 2.1.246 Claude Code также выдавал эту ошибку для `plugin.json`, сохранённого как UTF-8 с начальной меткой порядка байтов (BOM), даже когда JSON был в остальном корректным.

1546 

1547**Ошибки загрузки плагина**:

1548 

1549* `Warning: No commands found in plugin my-plugin custom directory: ./cmds. Expected .md files or SKILL.md in subdirectories.`: путь команды существует, но не содержит корректных файлов команд

1550* `Plugin directory not found at path: ./plugins/my-plugin. Check that the marketplace entry has the correct path.`: путь `source` в marketplace.json указывает на несуществующую директорию

1551* `Plugin my-plugin has conflicting manifests: both plugin.json and marketplace entry specify components.`: удалите дублирующиеся определения компонентов или удалите `strict: false` в записи marketplace

1552 

1553<h3 id="hook-troubleshooting">

1554 Устранение неполадок hooks

1555</h3>

1556 

1557**Скрипт hook не выполняется**:

1558 

15591. Проверьте, что скрипт исполняемый: `chmod +x ./scripts/your-script.sh`

15602. Проверьте строку shebang: первая строка должна быть `#!/bin/bash` или `#!/usr/bin/env bash`

15613. Проверьте, что путь использует `${CLAUDE_PLUGIN_ROOT}`: `"command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/your-script.sh"`

15624. Протестируйте скрипт вручную: `./scripts/your-script.sh`

1563 

1564**Hook не срабатывает на ожидаемых событиях**:

1565 

15661. Проверьте, что имя события правильное (чувствительно к регистру): `PostToolUse`, а не `postToolUse`

15672. Проверьте, что шаблон matcher соответствует вашим инструментам: `"matcher": "Write|Edit"` для файловых операций

15683. Подтвердите, что тип hook корректен: `command`, `http`, `mcp_tool`, `prompt` или `agent`

1569 

1570<h3 id="mcp-server-troubleshooting">

1571 Устранение неполадок MCP сервера

1572</h3>

1573 

1574**Сервер не запускается**:

1575 

15761. Проверьте, что команда существует и исполняемая

15772. Проверьте, что все пути используют переменную `${CLAUDE_PLUGIN_ROOT}`

15783. Проверьте логи MCP сервера: `claude --debug` показывает ошибки инициализации

15794. Протестируйте сервер вручную вне Claude Code

1580 

1581**Инструменты сервера не отображаются**:

1582 

15831. Убедитесь, что сервер правильно настроен в `.mcp.json` или `plugin.json`

15842. Проверьте, что сервер правильно реализует протокол MCP

15853. Проверьте наличие таймаутов соединения в выводе отладки

1586 

1587<h3 id="directory-structure-mistakes">

1588 Ошибки структуры директории

1589</h3>

1590 

1591**Симптомы**: плагин загружается, но компоненты (skills, agents, hooks) отсутствуют.

1592 

1593**Правильная структура**: компоненты должны находиться в корне плагина, а не внутри `.claude-plugin/`. Только `plugin.json` должен находиться в `.claude-plugin/`.

1594 

1595**Контрольный список отладки**:

1596 

15971. Запустите `claude --debug` и ищите сообщения "loading plugin"

15982. Проверьте, что каждая директория компонента указана в выводе отладки

15993. Проверьте, что разрешения файлов позволяют читать файлы плагина

1600 

1601***

1602 

1603<h2 id="distribution-and-versioning-reference">

1604 Справочник по распределению и версионированию

1605</h2>

1606 

1607<h3 id="version-management">

1608 Управление версиями

1609</h3>

1610 

1611Claude Code использует версию плагина в качестве ключа кэша, который определяет, доступно ли обновление. Когда вы запускаете `/plugin update` или срабатывает автоматическое обновление, Claude Code вычисляет текущую версию и пропускает обновление, если она совпадает с уже установленной. Плагин [загруженный на месте](#plugin-caching-and-file-resolution) из локального каталога marketplace загружает свои текущие исходные файлы при каждом запуске сеанса, независимо от того, что говорит его строка версии.

1612 

1613Для каждого типа источника, кроме `command`, Claude Code разрешает версию из первого из следующих установленных параметров:

1614 

16151. Поле `version` в `plugin.json` плагина

16162. Поле `version` в записи плагина на marketplace в `marketplace.json`

16173. SHA коммита git источника плагина для источников `github`, `url`, `git-subdir` и relative-path в marketplace, размещённом на git

16184. Дайджест SHA-256 для [`archive` источников](/docs/ru/plugin-marketplaces#zip-archives): пин `sha256` в записи marketplace или дайджест загруженного файла, когда вы не устанавливаете пин. Claude Code сокращает его до первых 12 символов

16195. `unknown` для источников `npm` или локальных каталогов, не находящихся в репозитории git. Claude Code не берёт версию из репозитория, который охватывает путь установки, такого как управляемый git `~/.claude`

1620 

1621Для [`command` источника](/docs/ru/plugin-marketplaces#command-sources) Claude Code всегда выводит версию из того, что произвёл команда: 12-символный хеш содержимого самостоятельно или добавленный к версии `plugin.json` как `<version>-<hash>`, когда он установлен. Claude Code игнорирует поле `version` записи marketplace для источников command. Команда, чей хешированный вывод изменяется, поэтому создаёт новую версию, даже когда строка авторской версии остаётся той же. В [режиме ссылки](/docs/ru/plugin-marketplaces#copy-mode-and-link-mode) хеш охватывает реальный путь напечатанного каталога и его записи верхнего уровня, а не содержимое файла.

1622 

1623Для этих типов источников это даёт вам три способа версионирования плагина:

1624 

1625| Подход | Как | Поведение обновления | Лучше всего для |

1626| :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------- |

1627| **Явная версия** | Установите `"version": "2.1.0"` в `plugin.json` | Пользователи получают обновления только при изменении этого поля. Отправка новых коммитов без изменения этого поля не имеет эффекта, и `/plugin update` сообщает "already at the latest version". Для плагина [загруженного на месте](#plugin-caching-and-file-resolution) новое содержимое загружается в любом случае. | Опубликованные плагины со стабильными циклами выпуска |

1628| **Версия Commit-SHA** | Опустите `version` из `plugin.json` и записи marketplace | Пользователи получают обновления всякий раз, когда изменяется разрешённый коммит источника | Внутренние или командные плагины в активной разработке |

1629| **Версия Digest** | Используйте [`archive` источник](/docs/ru/plugin-marketplaces#zip-archives) и опустите `version` из `plugin.json` и записи marketplace | С пином `sha256` пользователи получают обновления при изменении пина. Без него пользователи получают обновления всякий раз, когда изменяются байты размещённого zip-файла | Плагины, опубликованные как zip-файлы на статическом сервере или репозитории артефактов |

1630 

1631Если вы используете явные версии, следуйте [семантическому версионированию](https://semver.org) (`MAJOR.MINOR.PATCH`): увеличивайте MAJOR для критических изменений, MINOR для новых функций, PATCH для исправлений ошибок. Документируйте изменения в `CHANGELOG.md`.

1632 

1633***

1634 

1635<h2 id="see-also">

1636 Смотрите также

1637</h2>

1638 

1639* [Плагины](/docs/ru/plugins) - Учебные материалы и практическое использование

1640* [Маркетплейсы плагинов](/docs/ru/plugin-marketplaces) - Создание и управление маркетплейсами

1641* [Skills](/docs/ru/skills) - Детали разработки skills

1642* [Subagents](/docs/ru/sub-agents) - Конфигурация и возможности агентов

1643* [Hooks](/docs/ru/hooks) - Обработка событий и автоматизация

1644* [MCP](/docs/ru/mcp) - Интеграция внешних инструментов

1645* [Параметры](/docs/ru/settings) - Опции конфигурации для плагинов

plugins/cli-hints.md +136 −0 created

Details

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# Рекомендуйте ваш plugin из вашего CLI

6 

7> Предложите пользователям Claude Code установить ваш plugin из официального marketplace, отправив тег claude-code-hint из вашего CLI или SDK.

8 

9Если вы поддерживаете CLI или SDK, ваш инструмент может предложить пользователям Claude Code установить ваш plugin. Когда ваш CLI обнаружит, что он работает внутри Claude Code, он должен записать однострочный тег `<claude-code-hint />` в stderr. Claude Code удаляет строку из вывода инструментов Bash и PowerShell перед тем, как модель увидит вывод, а затем показывает пользователю одноразовое предложение об установке.

10 

11Эта страница применяется только если ваш plugin указан в `claude-plugins-official` или другом marketplace с одним из [официальных названий marketplace Anthropic](/docs/ru/plugins/security#official-marketplace-names). Сообщество marketplace, `claude-community`, не входит в их число.

12 

13<Note>

14 Чтобы опубликовать plugin, см. [Опубликуйте и распространяйте plugin](/docs/ru/plugins/publish).

15</Note>

16 

17<h2 id="emit-the-hint">

18 Отправьте подсказку

19</h2>

20 

21Отправляйте тег только когда установлены `CLAUDECODE` или `CLAUDE_CODE_CHILD_SESSION`, чтобы он не появлялся, когда человек запускает ваш CLI напрямую.

22 

23Claude Code устанавливает `CLAUDECODE=1` в командах, которые он запускает через инструменты Bash и PowerShell, и в командах hook. На v2.1.172 и более поздних версиях он также устанавливает `CLAUDE_CODE_CHILD_SESSION=1` там. Переменные отличаются тем, какие процессы их переносят:

24 

25* **`CLAUDECODE`**: устанавливается каждой версией Claude Code. IDE расширения также устанавливают его в своих интегрированных терминалах, поэтому проверка только `CLAUDECODE` также отправляет тег, когда человек запускает ваш CLI самостоятельно в одном из этих терминалов

26* **`CLAUDE_CODE_CHILD_SESSION`**: устанавливается только в подпроцессах, которые сам запускает Claude Code. Используйте его, когда вы можете требовать v2.1.172 или более позднюю версию

27 

28[Справочник переменных окружения](/docs/ru/env-vars) содержит подробности.

29 

30Следующие примеры проверяют `CLAUDECODE` для наибольшего охвата и отправляют подсказку для plugin с именем `example-cli` в официальном marketplace:

31 

32<CodeGroup>

33 ```javascript Node.js theme={null}

34 if (process.env.CLAUDECODE) {

35 process.stderr.write(

36 '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />\n',

37 )

38 }

39 ```

40 

41 ```python Python theme={null}

42 import os, sys

43 

44 if os.environ.get("CLAUDECODE"):

45 print(

46 '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />',

47 file=sys.stderr,

48 )

49 ```

50 

51 ```go Go theme={null}

52 if os.Getenv("CLAUDECODE") != "" {

53 fmt.Fprintln(os.Stderr,

54 `<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />`)

55 }

56 ```

57 

58 ```shell Shell theme={null}

59 if [ -n "$CLAUDECODE" ]; then

60 printf '%s\n' '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />' >&2

61 fi

62 ```

63</CodeGroup>

64 

65Замените `example-cli` на имя вашего plugin в официальном marketplace.

66 

67Вы можете отправлять подсказку при каждом вызове, потому что Claude Code предлагает для каждого plugin один раз.

68 

69Чтобы проверить отправителя, запустите `CLAUDECODE=1 example-cli` в терминале и подтвердите, что строка тега появляется на stderr, затем запустите `example-cli` без переменной и подтвердите, что ничего лишнего не печатается.

70 

71<h2 id="hint-format">

72 Формат подсказки

73</h2>

74 

75Тег должен занимать свою собственную строку; Claude Code игнорирует тег, встроенный в середину строки.

76 

77Тег принимает три атрибута, все обязательны:

78 

79| Атрибут | Описание |

80| :------ | :------------------------------------------------------------- |

81| `v` | Версия протокола. `1` — единственное поддерживаемое значение |

82| `type` | Вид подсказки. `plugin` — единственное поддерживаемое значение |

83| `value` | Идентификатор plugin в форме `name@marketplace` |

84 

85Значения могут быть заключены в двойные кавычки или без кавычек; значение без кавычек не может содержать пробелы.

86 

87Claude Code удаляет строку из вывода даже когда `v` или `type` не распознаны.

88 

89<h2 id="check-when-the-prompt-appears">

90 Проверьте, когда появляется подсказка

91</h2>

92 

93Подсказка появляется только в интерактивных сеансах терминала. В запусках `claude -p`, в запусках подагента и в выводе команд hook тег удаляется и подсказка не показывается. Все эти проверки также должны пройти:

94 

95* **Официальный и устанавливаемый**: `value` называет plugin, который Claude Code находит в своей локальной копии официального marketplace, который еще не установлен, и который не блокирует никакая политика

96* **Аналитика включена**: сеанс, где аналитика Claude Code отключена, никогда не предлагает, например, с установленными `DISABLE_TELEMETRY`, `DO_NOT_TRACK` или `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, или на поставщике третьей стороны, таком как Amazon Bedrock, где применяется [автоматический отказ от телеметрии](/docs/ru/data-usage#default-behaviors-by-api-provider)

97* **Ограничения частоты**: одна подсказка за сеанс, одна подсказка когда-либо за plugin независимо от ответа пользователя, и ни одна после того, как на этой машине было предложено 100 plugin

98* **Не отключено**: пользователь не выбрал **Нет, и больше не показывать подсказки об установке plugin**

99* **Локальный, посещаемый сеанс**: рабочее пространство сеанса является локальным, а не в облаке или на удаленной машине, и сеанс не работает без присмотра. Например, сеанс, запущенный с `--cloud`, один, обслуживающий Remote Control, или товарищ по команде агентов никогда не предлагает

100 

101<h2 id="preview-what-the-user-sees">

102 Предпросмотр того, что видит пользователь

103</h2>

104 

105Когда проверки в [Проверьте, когда появляется подсказка](#check-when-the-prompt-appears) пройдены, Claude Code показывает диалог **Рекомендация plugin** следующим образом:

106 

107```text theme={null}

108─────────────────────────────────────────────────────────────

109 Рекомендация plugin

110 

111 Команда example-cli предлагает установить plugin.

112 

113 Plugin: example-cli

114 Marketplace: claude-plugins-official

115 Описание: Официальная интеграция для развертываний example-cli

116 

117 Вы хотите установить его?

118 ❯ 1. Да, установить

119 2. Нет

120 3. Нет, и больше не показывать подсказки об установке plugin

121 

122─────────────────────────────────────────────────────────────

123```

124 

125Диалог называет первое слово команды shell, которую запустил Claude, поэтому пользователи могут заметить несоответствие. Каждый ответ имеет один эффект:

126 

127* **Да, установить**: устанавливает plugin в [область пользователя](/docs/ru/plugins/install)

128* **Нет, и больше не показывать подсказки об установке plugin**: отключает будущие подсказки для этого пользователя

129* **Нет ответа в течение 30 секунд**: считается как **Нет**

130 

131<h2 id="next-steps">

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

133</h2>

134 

135* [Опубликуйте и распространяйте plugin](/docs/ru/plugins/publish): маршруты в каждый marketplace, включая официальный marketplace, который требует подсказка

136* [Справочник команд plugin](/docs/ru/plugins/cli-reference#plugin-install): команда shell, которая устанавливает тот же plugin вне сеанса

plugins/cli-reference.md +841 −0 created

Details

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# Справочник команд плагинов

6 

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

8 

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

10 

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

12 

13<Note>

14 Эти случаи рассматриваются на других страницах:

15 

16 * **Установка и управление шагами, и где запускается `/plugin`**: см. [Установка и управление плагинами](/docs/ru/plugins/install)

17 * **Что команда изменяет на диске и какой приоритет области действия**: см. [Справочник загрузки плагинов](/docs/ru/plugins/loading)

18 * **Что означает сообщение об ошибке**: см. [Устранение неполадок плагинов](/docs/ru/plugins/troubleshooting)

19</Note>

20 

21<h2 id="claude-plugin-commands">

22 Команды claude plugin

23</h2>

24 

25Запустите `claude plugin <subcommand>` из вашей оболочки или скрипта, вне сеанса Claude Code. Эти подкоманды устанавливают и управляют плагинами без открытия панели [`/plugin`](#plugin-in-a-session).

26 

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

28 

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

30 

31* **Коды выхода**: `0` при успехе и `1` при ошибке. `validate` добавляет выход `2` для неожиданной ошибки, а `eval` добавляет коды, указанные в [его разделе](#plugin-eval).

32* **Аргументы плагина**: аргумент `<plugin>` — это `name` плагина или `name@marketplace`. Когда два маркетплейса предлагают одно и то же имя, используйте квалифицированную форму.

33* **Области действия**: `--scope` принимает `user`, `project` или `local`, и называет файл параметров, в который команда записывает. `update` также принимает `managed`.

34 

35<h3 id="plugin-init">

36 plugin init

37</h3>

38 

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

40 

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

42 

43Для рабочего процесса создания, тестирования и редактирования, который начинается с этой команды, см. [Создание плагина](/docs/ru/plugins/create).

44 

45```bash theme={null}

46claude plugin init <name> [options]

47```

48 

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

50 

51Команда не имеет флага для другого местоположения. Чтобы создать каркас внутри проекта, см. [Создание плагина](/docs/ru/plugins/create).

52 

53| Флаг | Описание |

54| :----------------------- | :--------------------------------------------------------------------------------------------------------- |

55| `--description <text>` | Описание манифеста |

56| `--author <name>` | Имя автора. По умолчанию `git config user.name` |

57| `--author-email <email>` | Email автора. По умолчанию `git config user.email` |

58| `--with <components...>` | Также создайте файлы-заготовки для `skills`, `agents`, `hooks`, `mcp`, `lsp`, `output-style` или `channel` |

59| `-f, --force` | Перезапишите существующий `.claude-plugin/` в целевом месте |

60 

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

62 

63```bash theme={null}

64claude plugin init my-helper --with skills hooks

65```

66 

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

68 

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

70 

71* Неизвестное значение `--with`

72* Существующий каркас в целевом месте без `--force`

73* Управляемый параметр, который блокирует плагины из каталога skills

74 

75<h3 id="plugin-install">

76 plugin install

77</h3>

78 

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

80 

81```bash theme={null}

82claude plugin install <plugin> [options]

83```

84 

85Большинство плагинов устанавливаются без запроса. Для плагина, запись маркетплейса которого [запускает команду для его установки](/docs/ru/plugins/host-marketplace) или [устанавливает `headersHelper` для его загрузки](/docs/ru/plugins/host-marketplace#how-users-accept-a-headershelper-command), Claude Code сначала выводит команду и спрашивает `Run this command now? [y/N]`.

86 

87| Флаг | Описание |

88| :-------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

89| `-s, --scope <scope>` | Область действия установки: `user`, `project` или `local`. По умолчанию `user` |

90| `--config <key=value>` | Установите опцию [`userConfig`](/docs/ru/plugins/manifest-reference), которую объявляет манифест плагина. Повторите флаг для каждой опции. Требует Claude Code v2.1.147 или позже |

91| `-y, --yes` | Примите отображаемую команду установки без запроса `Run this command now?`. Игнорируется, когда команда запускается внутри сеанса Claude Code, например из инструмента Bash или hook. Требует Claude Code v2.1.229 или позже |

92| `--accept-command <sha256>` | Примите отображаемую команду установки, чей `sha256` предыдущий запуск [`--json`](#plugin-json-result) сообщил в `shownCommand`, вместо `-y`. Не может быть объединён с `-y`. См. [Принять отображаемую команду установки](#accept-a-displayed-install-command). Требует Claude Code v2.1.271 или позже |

93| `--json` | Выведите результат как один JSON объект на последней строке stdout вместо читаемого сообщения для использования в скриптах. См. [Формат результата JSON](#plugin-json-result). Требует Claude Code v2.1.268 или позже |

94 

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

96 

97* **stdin или stdout не является TTY, и вы не передаёте ни `-y`, ни `--accept-command`**: установка отклоняется. Выходные данные говорят, что команда была только отображена, и код выхода — `1`

98* **Claude запускает команду через свой инструмент Bash**: `-y` игнорируется. Запустите команду из вашего собственного терминала вместо этого

99 

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

101 

102```bash theme={null}

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

104```

105 

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

107 

108* **Уже установлено в этой области действия**: выходные данные — `Plugin "formatter@my-marketplace" is already installed (scope: project)` и код выхода — `0`

109* **Вы отклоняете запрос источника команды**: выходные данные — `Aborted.` и код выхода — `1`

110* **Вы отклоняете запрос `headersHelper`, или его нельзя подтвердить без TTY**: выходные данные — `Aborted — the command was not run.` и код выхода — `1`

111 

112<h4 id="plugin-json-result">

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

114</h4>

115 

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

117 

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

119 

120* `command`: подкоманда, которая запустилась, например `install`

121* `outcome`: `ok` или `failed`

122* `message`: читаемое описание результата

123 

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

125 

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

127 

128<h4 id="accept-a-displayed-install-command">

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

130</h4>

131 

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

133 

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

135 

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

137 

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

139 

140<h3 id="plugin-uninstall">

141 plugin uninstall

142</h3>

143 

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

145 

146```bash theme={null}

147claude plugin uninstall <plugin> [options]

148```

149 

150| Флаг | Описание |

151| :-------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

152| `-s, --scope <scope>` | Удалить из области действия: `user`, `project` или `local`. По умолчанию `user` |

153| `--keep-data` | Сохраните каталог постоянных данных плагина, `~/.claude/plugins/data/<id>/` |

154| `--prune` | Также удалите автоустановленные [зависимости](/docs/ru/plugins/dependencies), которые больше не нужны ни одному оставшемуся плагину |

155| `-y, --yes` | Пропустите запрос подтверждения `--prune`. Требуется с `--prune`, когда stdin или stdout не является TTY |

156| `--json` | Выведите результат как один JSON объект на последней строке stdout в [том же формате, что и `plugin install --json`](#plugin-json-result). Не может быть объединён с `--prune`. Требует Claude Code v2.1.268 или позже |

157 

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

159 

160```bash theme={null}

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

162```

163 

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

165 

166<h3 id="plugin-enable">

167 plugin enable

168</h3>

169 

170Включите отключённый плагин. Для [плагина, синхронизированного с claude.ai](/docs/ru/plugins/loading#synced-plugins), передайте `<name>@synced` как плагин.

171 

172```bash theme={null}

173claude plugin enable <plugin> [options]

174```

175 

176| Флаг | Описание |

177| :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

178| `-s, --scope <scope>` | Область действия для включения: `user`, `project` или `local`. Автоопределяется при пропуске |

179| `--json` | Выведите результат как один JSON объект на последней строке stdout в [том же формате, что и `plugin install --json`](#plugin-json-result). Требует Claude Code v2.1.268 или позже |

180 

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

182 

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

184 

185* **Область действия, которая [имеет приоритет](/docs/ru/plugins/loading) над объявляющей**: Claude Code записывает переопределение в переданную область действия. Например, `claude plugin disable formatter --scope local` отключает плагин, включённый на уровне проекта, только для вас

186* **Любая другая область действия**: команда не выполняется с `Plugin "formatter" is installed at project scope, not user. Use --scope project or omit --scope to auto-detect.`

187 

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

189 

190Когда плагин объявляет [зависимости](/docs/ru/plugins/dependencies), Claude Code также включает их. Команда не выполняется в этих случаях:

191 

192* **Зависимость не установлена**: включение не выполняется и выводит команду `claude plugin install` для каждой отсутствующей зависимости

193* **Зависимость заблокирована политикой плагинов вашей организации**: включение не выполняется и называет заблокированную зависимость

194* **Зависимость установлена на `false` в области действия с более высоким приоритетом, чем целевая область действия**: включение не выполняется. Включите зависимость в этой области действия или передайте `--scope` для записи там

195 

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

197 

198```bash theme={null}

199claude plugin enable formatter

200```

201 

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

203 

204<h3 id="plugin-disable">

205 plugin disable

206</h3>

207 

208Отключите плагин без его удаления. Для [плагина, синхронизированного с claude.ai](/docs/ru/plugins/loading#synced-plugins), передайте `<name>@synced` как плагин.

209 

210```bash theme={null}

211claude plugin disable [plugin] [options]

212```

213 

214| Флаг | Описание |

215| :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

216| `-a, --all` | Отключите каждый включённый плагин. Не может быть объединён с именем плагина или `--scope` |

217| `-s, --scope <scope>` | Область действия для отключения: `user`, `project` или `local`. Автоопределяется при пропуске |

218| `--json` | Выведите результат как один JSON объект на последней строке stdout в [том же формате, что и `plugin install --json`](#plugin-json-result). Требует Claude Code v2.1.268 или позже |

219 

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

221 

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

223 

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

225 

226* **Другой включённый плагин [зависит от](/docs/ru/plugins/dependencies) него**: команда не выполняется и называет зависимые плагины для отключения в первую очередь

227* **Ваша организация требует его как синхронизированный плагин**: команда не выполняется и ничего не сохраняет

228 

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

230 

231```bash theme={null}

232claude plugin disable formatter

233```

234 

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

236 

237<h3 id="plugin-update">

238 plugin update

239</h3>

240 

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

242 

243```bash theme={null}

244claude plugin update <plugin> [options]

245```

246 

247| Флаг | Описание |

248| :-------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

249| `-s, --scope <scope>` | Область действия для обновления: `user`, `project`, `local` или `managed`. По умолчанию область действия, в которой установлен плагин |

250| `-y, --yes` | Примите изменённую команду установки из плагина [command-source](/docs/ru/plugins/host-marketplace) без запроса. Требуется, когда stdin или stdout не является TTY, если вы не передаёте `--accept-command`. Требует Claude Code v2.1.229 или позже |

251| `--accept-command <sha256>` | Примите команду, объявленную маркетплейсом, чей `sha256` предыдущий запуск [`--json`](#plugin-json-result) сообщил в `shownCommand`, вместо `-y`. Не может быть объединён с `-y`. Требует Claude Code v2.1.271 или позже |

252| `--json` | Выведите результат как один JSON объект на последней строке stdout в [том же формате, что и `plugin install --json`](#plugin-json-result). Требует Claude Code v2.1.268 или позже |

253 

254`managed` — это единственная область действия, которую вы можете обновить, но не установить. Для плагинов, установленных администратором, см. [Управление плагинами для вашей организации](/docs/ru/plugins/org).

255 

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

257 

258```bash theme={null}

259claude plugin update formatter@my-marketplace

260```

261 

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

263 

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

265 

266<h3 id="plugin-list">

267 plugin list

268</h3>

269 

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

271 

272```bash theme={null}

273claude plugin list [options]

274```

275 

276| Флаг | Описание |

277| :------------ | :----------------------------------------------------------------------------------------------------------------------- |

278| `--json` | Выведите список как JSON |

279| `--available` | Также выведите плагины, которые предлагают ваши маркетплейсы, но которые вы не установили. Не имеет эффекта без `--json` |

280 

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

282 

283* **`Installed plugins:`**: плагины, которые вы установили из маркетплейса

284* **`Session-only plugins (--plugin-dir / --plugin-url):`**: плагины, загруженные этими флагами в той же команде, как в `claude --plugin-dir ./my-plugin plugin list`

285* **`Skills-directory plugins (.claude/skills/*):`**: плагины, которые Claude Code нашёл в каталоге skills

286* **`Synced from claude.ai`**: [плагины, синхронизированные с вашей учётной записью claude.ai](/docs/ru/plugins/loading#synced-plugins)

287 

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

289 

290<h4 id="json-output">

291 Выход JSON

292</h4>

293 

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

295 

296| Поле | Тип | Описание |

297| :------------- | :--------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

298| `id` | string | `name@marketplace` для установок, `name@inline` для плагинов только для сеанса, `name@skills-dir` для плагинов из каталога skills, `name@synced` для плагинов, синхронизированных с claude.ai |

299| `version` | string | Для установки маркетплейса, [версия, которую вычислил Claude Code](/docs/ru/plugins/loading#versions-and-updates) при установке. Для плагина только для сеанса, из каталога skills или синхронизированного, `version` из манифеста или `unknown`, когда он не объявляет |

300| `scope` | string | `user`, `project`, `local` или `managed` для установок; `user` или `project` для плагинов из каталога skills; `session` для плагинов только для сеанса; `synced` для плагинов, синхронизированных с claude.ai |

301| `enabled` | boolean | Включён ли плагин в ваших объединённых параметрах |

302| `installPath` | string | Каталог, из которого загружается плагин |

303| `installedAt` | string | ISO временная метка установки. Только установки маркетплейса |

304| `lastUpdated` | string | ISO временная метка последнего обновления. Только установки маркетплейса |

305| `projectPath` | string | Проект, к которому принадлежит установка. Только области действия `project` и `local` |

306| `mcpServers` | object | Определения MCP сервера плагина, когда установленный на маркетплейсе плагин имеет какие-либо |

307| `errors` | array of strings | Ошибки загрузки, когда плагин не загрузился |

308| `notes` | array of strings | Предупреждения авторства для плагина, который загрузился и работает |

309| `errorDetails` | array of objects | Один объект на запись `errors`, дающий его диагностический `type` и имена, на которые он ссылается, такие как плагин, маркетплейс, сервер или файл. Требует Claude Code v2.1.268 или позже |

310| `noteDetails` | array of objects | Те же объекты деталей для каждой записи `notes`. Требует Claude Code v2.1.268 или позже |

311 

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

313 

314| Поле | Тип | Описание |

315| :---------------- | :--------------- | :--------------------------------------------------------------------------------------------------------------------------- |

316| `pluginId` | string | `name@marketplace` |

317| `name` | string | Имя плагина в маркетплейсе |

318| `marketplaceName` | string | Маркетплейс, который его предлагает |

319| `source` | string or object | [Источник](/docs/ru/plugins/marketplace-reference) записи маркетплейса: строка для относительного пути, объект в противном случае |

320| `description` | string | Описание записи, когда оно есть |

321| `version` | string | Версия записи, когда она объявляет |

322| `installCount` | number | Количество установок, когда Claude Code имеет его для плагина |

323 

324<h3 id="plugin-details">

325 plugin details

326</h3>

327 

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

329 

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

331 

332```bash theme={null}

333claude plugin details <name>

334```

335 

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

337 

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

339 

340```bash theme={null}

341claude plugin details formatter

342```

343 

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

345 

346* **`Component inventory`**: skills, agents, hooks, MCP серверы и LSP серверы плагина

347* **`Projected token cost`**: всегда включённые токены, которые плагин добавляет в каждый сеанс

348* **`Per-component (rounded)`**: оценки всегда включённых и при вызове для каждого skill, agent и команды. Пропускается, когда плагин не имеет ни одного

349 

350Для того, что означают две цифры стоимости, см. [Измерение стоимости и использования плагина](/docs/ru/plugins/measure).

351 

352Для плагина, который не загружен, 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`.

353 

354<h3 id="plugin-prune">

355 plugin prune

356</h3>

357 

358Удалите автоустановленные [зависимости](/docs/ru/plugins/dependencies), которые больше не нужны ни одному установленному плагину. Команда никогда не удаляет плагин, который вы установили сами. `autoremove` — это псевдоним для `prune`.

359 

360```bash theme={null}

361claude plugin prune [options]

362```

363 

364| Флаг | Описание |

365| :-------------------- | :--------------------------------------------------------------------------------- |

366| `-s, --scope <scope>` | Очистить в области действия: `user`, `project` или `local`. По умолчанию `user` |

367| `--dry-run` | Выведите список того, что было бы удалено, без удаления |

368| `-y, --yes` | Пропустите запрос подтверждения. Требуется, когда stdin или stdout не является TTY |

369 

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

371 

372```bash theme={null}

373claude plugin prune --dry-run

374```

375 

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

377 

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

379 

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

381 

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

383 

384| Терминал и флаги | Что происходит |

385| :--------------------------------- | :-------------------------------------------------------------------------------------- |

386| Интерактивный терминал, без `-y` | Выводит список сиротских зависимостей и спрашивает `Remove? [y/N]` |

387| Любой терминал, `-y` | Удаляет их и выводит `Removed N auto-installed plugins: <names>` |

388| Non-TTY stdin или stdout, без `-y` | Выводит список и ``Not a TTY — run `claude plugin prune -y` to remove.``, удаляя ничего |

389 

390<h3 id="plugin-eval">

391 plugin eval

392</h3>

393 

394Запустите [eval случаи](/docs/ru/plugin-evals) плагина и сообщите оценённые результаты. Требует Claude Code v2.1.269 или позже.

395 

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

397 

398См. [Тестирование плагинов с помощью evals](/docs/ru/plugin-evals) для формата случая, оценщиков, результатов и использования CI.

399 

400```bash theme={null}

401claude plugin eval [target] [options]

402```

403 

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

405 

406* Каталог плагина

407* Один файл `prompt.md` или `case.yaml`

408* Установленный плагин как `name` или `name@marketplace`

409* `name@skills-dir`

410 

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

412 

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

414 

415| Опция | Описание | По умолчанию |

416| :------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------ |

417| `--runs <n>` | Запусков на случай в каждом [arm](/docs/ru/plugin-evals#compare-against-a-no-plugin-baseline) | `runs` каждого случая, иначе 3 |

418| `-j, --concurrency <n>` | Сеансы агента для запуска одновременно, 1 до 8. Они делят ваш лимит скорости | `1` |

419| `--model <model>` | Модель для тестируемого агента | `model` каждого случая, иначе `ANTHROPIC_MODEL`, если установлено, иначе по умолчанию Claude Code |

420| `--judge-model <model>` | Модель для оценщиков `llm` и `baseline` | Маленькая быстрая модель |

421| `--ablation <mode>` | `none` или `with-without`. См. [Сравнение с базовым уровнем без плагина](/docs/ru/plugin-evals#compare-against-a-no-plugin-baseline) | `with-without`, когда плагин разрешается, иначе `none` |

422| `--threshold <0..1>` | Выход 1, если какой-либо случай оценивается ниже этого | `1.0` |

423| `--max-cost-usd <usd>` | Остановитесь перед следующим запуском, когда расходы достигнут этого, выход 2 и сообщите частичные результаты | Без ограничений |

424| `--allow-tools <tools...>` | Предоставьте инструменты помимо набора только для чтения, такие как `Bash`, `Write`, `Edit` или `"mcp__plugin_<plugin>_<server>__*"`. См. [Предоставление инструментов](/docs/ru/plugin-evals#grant-tools) | |

425| `--scaffold` | Запустите [`scaffold_script`](/docs/ru/plugin-evals#add-setup-or-history-with-case-yaml) каждого случая | Выключено |

426| `--trust-plugin` | Пропустите первый запрос доверия, для CI. См. [Что может получить доступ запуск](/docs/ru/plugin-evals#security) | Выключено |

427| `--mocks <mode>` | `record` или `off`. См. [Mock MCP серверы](/docs/ru/plugin-evals#mock-mcp-servers) | `record` |

428| `--eval-dir <dir>` | Каталог ниже плагина, который содержит случаи | `experimental.evals` манифеста, иначе `evals` |

429| `--json [path]` | Выведите [документ результата](/docs/ru/plugin-evals#json-result) на stdout или запишите его в путь `.json` | |

430| `--no-publish` | Держите HTML отчёт локально | |

431 

432Код выхода сообщает, как закончился запуск. Чтобы действовать на нём в конвейере, см. [Запуск evals в CI](/docs/ru/plugin-evals#run-evals-in-ci).

433 

434| Код выхода | Значение |

435| :--------- | :----------------------------------------------------------------- |

436| `0` | Каждый случай соответствует порогу |

437| `1` | Неудачный случай, ошибка загрузки или недоверенный каталог плагина |

438| `2` | Частичный запуск |

439| `130` | Прервано |

440| `143` | Завершено |

441 

442<h3 id="plugin-eval-init">

443 plugin eval init

444</h3>

445 

446Создайте набор eval для плагина в текущем каталоге. Требует Claude Code v2.1.269 или позже. См. [Создание вашего первого набора eval](/docs/ru/plugin-evals#create-your-first-eval-suite).

447 

448```bash theme={null}

449claude plugin eval init [name] [options]

450```

451 

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

453 

4541. Читает плагин

4552. Спрашивает вас, что он должен делать хорошо

4563. Предлагает случаи и оценщиков

4574. Записывает файлы случаев

4585. Запускает случаи и проверяет оценки с вами, чтобы убедиться, что оценщики оценивают так, как вы бы оценили

459 

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

461 

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

463 

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

465 

466| Опция | Описание | По умолчанию |

467| :------------------ | :--------------------------------------------------------------------------------------- | :-------------------------------------------- |

468| `--bare` | Запишите пустой `prompt.md` и `graders/criteria.md` для `<name>` вместо запуска интервью | |

469| `-i, --interactive` | Требуйте интервью. Не выполняется без терминала вместо записи шаблона | |

470| `--eval-dir <dir>` | Каталог ниже текущего каталога для записи случаев в | `experimental.evals` манифеста, иначе `evals` |

471 

472<h3 id="plugin-tag">

473 plugin tag

474</h3>

475 

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

477 

478Для того, когда тегировать выпуск, см. [Публикация плагина](/docs/ru/plugins/publish).

479 

480```bash theme={null}

481claude plugin tag [path] [options]

482```

483 

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

485 

486| Флаг | Описание |

487| :-------------------- | :-------------------------------------------------------------------------------- |

488| `--push` | Отправьте тег в `--remote` после создания |

489| `--dry-run` | Выведите то, что было бы тегировано, без создания тега |

490| `-f, --force` | Пропустите проверки грязного рабочего дерева и существующего тега |

491| `-m, --message <msg>` | Сообщение аннотации тега. `%s` обозначает версию. По умолчанию `<name> <version>` |

492| `--remote <name>` | Удалённый для отправки с `--push`. По умолчанию `origin` |

493 

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

495 

496```bash theme={null}

497claude plugin tag plugins/formatter --dry-run

498```

499 

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

501 

502* Имя плагина

503* Версию и из какого файла она взята

504* Соответствующую запись маркетплейса, когда она есть

505* Имя тега

506* Команды `git tag` и `git push`, которые он запустил бы

507 

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

509 

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

511 

512* Нет `version` в `plugin.json` или записи маркетплейса

513* Тег уже существует

514* Рабочее дерево грязное

515 

516<h3 id="plugin-validate">

517 plugin validate

518</h3>

519 

520Проверьте манифест плагина, манифест маркетплейса или skills, agents и команды в каталоге, и выходите с кодом, на который может действовать задача CI. Для рабочего процесса создания, тестирования и редактирования см. [Создание плагина](/docs/ru/plugins/create). Для того, что проверяет валидатор в каждом манифесте, см. [справочник манифеста плагина](/docs/ru/plugins/manifest-reference) и [справочник маркетплейса](/docs/ru/plugins/marketplace-reference).

521 

522```bash theme={null}

523claude plugin validate <path> [options]

524```

525 

526| Флаг | Описание |

527| :--------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

528| `--strict` | Рассматривайте предупреждения как ошибки, поэтому нераспознанные поля и отсутствующие метаданные, которые среда выполнения допускает, не выполняют запуск. Требует Claude Code v2.1.145 или позже |

529| `--json` | Выведите отчёт о проверке как один JSON объект с теми же кодами выхода. Требует Claude Code v2.1.259 или позже |

530 

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

532 

533```bash theme={null}

534claude plugin validate ./my-plugin --strict

535```

536 

537<h4 id="validate-a-directory">

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

539</h4>

540 

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

542 

543* `.claude-plugin/marketplace.json`, когда он существует

544* Иначе `.claude-plugin/plugin.json`

545* Иначе файлы компонентов, выбранные по имени каталога. Проверка файлов компонентов без манифеста требует Claude Code v2.1.233 или позже:

546 * Каталог с именем `skills`, `agents` или `commands`: файлы внутри него

547 * Каталог с именем `.claude`: каталоги `skills`, `agents` и `commands` внутри него

548 * Любой другой каталог: эти три каталога под его `.claude`

549 

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

551 

552* **Связанный каталог `skills`, `agents` или `commands` под корнем плагина или `.claude`**: Claude Code предупреждает, что ничего в нём не было прочитано.

553* **Связанная запись внутри каталога `skills`, `agents` или `commands`**: Claude Code пропускает её и предупреждает, по каталогу, сколько записей оно пропустило, которые сеанс загрузил бы.

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

555 

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

557 

558* **`SKILL.md` в корне плагина**: когда вы запускаете `claude plugin validate` против каталога плагина, Claude Code не проверяет `SKILL.md` в корне плагина

559* **`CLAUDE.md` в корне плагина**: в запуске плагина Claude Code также предупреждает о `CLAUDE.md` в корне плагина

560* **Файлы плагина в запуске маркетплейса**: из каталога маркетплейса Claude Code не открывает файлы skill, agent, command или hook плагинов. Чтобы найти ошибки в этих файлах, проверьте каждый каталог плагина

561 

562<h4 id="output-and-exit-codes">

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

564</h4>

565 

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

567 

568| Код выхода | Строка вердикта | Значение |

569| :--------- | :------------------------------------------------------------------------------- | :---------------------------------------------------------- |

570| `0` | `Validation passed` или `Validation passed with warnings` | Манифест загружается. С `--strict`, нет предупреждений либо |

571| `1` | `Validation failed` или `Validation failed (--strict treats warnings as errors)` | Ошибка или предупреждение под `--strict` |

572| `2` | `Unexpected error during validation: <reason>` | Сам валидатор не выполнился, например на нечитаемом пути |

573 

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

575 

576* `success`: тот же вердикт, который даёт код выхода

577* `strict`: рассматривал ли запуск предупреждения как ошибки

578* `target`: разрешённый путь, который Claude Code проверил

579* `manifest`: собственный результат манифеста или `null` для запуска без манифеста

580* `contents`: результаты для каждого файла, каждый называет свой `file` и содержит массивы `errors`, `warnings` и `notes`

581 

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

583 

584<h2 id="claude-plugin-marketplace-commands">

585 Команды claude plugin marketplace

586</h2>

587 

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

589 

590* **Коды выхода**: эти подкоманды следуют [соглашению кода выхода](#claude-plugin-commands) команд плагина

591* **Области действия**: их флаг `--scope` не имеет короткой формы `-s`

592 

593Для того, что такое маркетплейс и как Claude Code его кэширует, см. [Справочник загрузки плагинов](/docs/ru/plugins/loading).

594 

595<h3 id="plugin-marketplace-add">

596 plugin marketplace add

597</h3>

598 

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

600 

601После добавления Claude Code устанавливает любые [зависимости](/docs/ru/plugins/dependencies), которые отсутствовали у ваших установленных плагинов.

602 

603```bash theme={null}

604claude plugin marketplace add <source> [options]

605```

606 

607| Флаг | Описание |

608| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------- |

609| `--scope <scope>` | Файл параметров для объявления маркетплейса в: `user`, `project` или `local`. По умолчанию `user` |

610| `--sparse <paths...>` | Ограничьте проверку git этими каталогами для монорепозиториев. Только источники `github` и `git` |

611| `--claudeai` | Читайте аргумент как имя [маркетплейса, размещённого на claude.ai](/docs/ru/plugins/install#add-from-claude-ai). Требует Claude Code v2.1.273 или позже |

612 

613`<source>` принимает любую из форм в таблице ниже, и его форма решает тип источника и как Claude Code получает маркетплейс. Для результирующего объекта источника см. [справочник маркетплейса](/docs/ru/plugins/marketplace-reference).

614 

615| Вы вводите | Тип источника | Как Claude Code его получает |

616| :------------------------------------------------------------------------------------------------ | :------------ | :-------------------------------------------------------------------------------------------------------------------------- |

617| `owner/repo`, `owner/repo#ref` или `owner/repo@ref` | `github` | Клонирует репозиторий GitHub, закреплённый на `ref`, когда дан. Владелец и репо должны следовать правилам именования GitHub |

618| `user@host:path[.git][#ref]` | `git` | Клонирует по SSH |

619| `https://example.com/repo.git[#ref]` или URL, содержащий `/_git/` | `git` | Клонирует по HTTPS, включая URL Azure DevOps |

620| `https://github.com/owner/repo` или `https://gitlab.com/namespace/project` | `git` | Клонирует по HTTPS после добавления `.git` |

621| Любой другой URL `http://` или `https://`, включая самостоятельно размещённый git хост без `.git` | `url` | Получает URL как `marketplace.json`. Чтобы клонировать репозиторий там вместо этого, добавьте `.git` |

622| `./path`, `../path`, `/path` или `~/path` в каталог | `directory` | Читает каталог на месте. На Windows, `.\`, `..\` и `C:\` формы также работают |

623| Те же формы пути в файл `.json` | `file` | Читает файл на месте |

624 

625Для хоста, чьи URL клонирования не содержат суффикс `.git`, такого как AWS CodeCommit, добавьте маркетплейс как запись git в [`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces) вместо этого. Claude Code клонирует запись git независимо от того, заканчивается ли её URL на `.git`.

626 

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

628 

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

630 

631```bash theme={null}

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

633```

634 

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

636 

637* **Маркетплейс уже на диске**: выходные данные — `Marketplace 'your-marketplace' already on disk — declared in project settings` и код выхода — `0`

638* **Нераспознанный источник**: выходные данные — `Invalid marketplace source format. Try: owner/repo, https://..., or ./path` и код выхода — `1`

639* **Простой хост, такой как `gitlab.example.com/team/plugins`**: добавление не выполняется как неверный ярлык `owner/repo`, и сообщение говорит вам добавить `https://` или использовать локальный путь

640 

641Добавьте [маркетплейс, размещённый на claude.ai](/docs/ru/plugins/install#add-from-claude-ai) по имени, выведённому в разделе `From claude.ai:` из `claude plugin marketplace list`:

642 

643```bash theme={null}

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

645```

646 

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

648 

649<h3 id="plugin-marketplace-list">

650 plugin marketplace list

651</h3>

652 

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

654 

655```bash theme={null}

656claude plugin marketplace list [options]

657```

658 

659| Флаг | Описание |

660| :------- | :----------------------- |

661| `--json` | Выведите список как JSON |

662 

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

664 

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

666 

667| Поле | Описание |

668| :---------------- | :------------------------------------------------------------------------------ |

669| `name` | Имя маркетплейса |

670| `source` | `github`, `git`, `url`, `directory`, `file` или `claudeai` |

671| `repo` | `owner/repo`. Только источники `github` |

672| `url` | URL клонирования или получения. Только источники `git` и `url` |

673| `path` | Локальный путь. Только источники `directory` и `file` |

674| `ref` | Закреплённая ветвь или тег. Источники `github` и `git`, только когда закреплено |

675| `installLocation` | Где Claude Code кэшировал маркетплейс |

676 

677Добавленный [маркетплейс claude.ai](/docs/ru/plugins/install#add-from-claude-ai) не имеет локального клона, поэтому его запись содержит его идентификаторы claude.ai, `marketplaceId` и `organizationUuid`, вместо `installLocation`. Он также содержит `scope`, когда один записан, и `status`.

678 

679Если ваши сеансы терминала [синхронизируют плагины с вашей учётной записью claude.ai](/docs/ru/plugins/loading#synced-plugins), текстовый список заканчивается разделом `From claude.ai:`. Этот раздел называет маркетплейсы, которые claude.ai выводит для вашей учётной записи, которые вы не добавили, как основанные на git, так и размещённые. Это требует Claude Code v2.1.273 или позже.

680 

681Чтобы добавить маркетплейс из этого раздела, см. [Добавление маркетплейса с claude.ai](/docs/ru/plugins/install#add-from-claude-ai).

682 

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

684 

685<h3 id="plugin-marketplace-remove">

686 plugin marketplace remove

687</h3>

688 

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

690 

691<Warning>

692 Когда вы удаляете маркетплейс из последней области действия, которая его объявляет, Claude Code также удаляет его кэш и удаляет каждый плагин, который вы установили из него. Без `--scope` команда удаляет объявление из каждой области действия. Чтобы обновить маркетплейс без потери его плагинов, запустите `plugin marketplace update` вместо этого.

693</Warning>

694 

695```bash theme={null}

696claude plugin marketplace remove <name> [options]

697```

698 

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

700 

701| Флаг | Описание |

702| :---------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

704 

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

706 

707```bash theme={null}

708claude plugin marketplace remove your-marketplace

709```

710 

711Claude 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.`

712 

713<h3 id="plugin-marketplace-update">

714 plugin marketplace update

715</h3>

716 

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

718 

719```bash theme={null}

720claude plugin marketplace update [name]

721```

722 

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

724 

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

726 

727```bash theme={null}

728claude plugin marketplace update your-marketplace

729```

730 

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

732 

733<h2 id="plugin-in-a-session">

734 /plugin в сеансе

735</h2>

736 

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

738 

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

740 

741Для того, какие поверхности имеют `/plugin`, как установить без него и что показывает каждая вкладка панели, см. [Установка и управление плагинами](/docs/ru/plugins/install).

742 

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

744 

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

746 

747| Команда | Псевдонимы | Что она делает |

748| :-------------------------------------------------- | :--------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

749| `/plugin` | | Открывает панель на вкладке **Discover**. Любое нераспознанное первое слово после `/plugin` делает то же самое |

750| `/plugin help` | `/plugin --help`, `/plugin -h` | Показывает список использования подкоманд `/plugin` |

751| `/plugin list [--enabled\|--disabled]` | `ls` | Выводит ваши установленные на маркетплейсе плагины встроенно, с версией, областью действия и статусом. Флаг фильтра показывает только это состояние. Плагин, чьё состояние включения ещё не применено, отмечен `— run /reload-plugins to apply`. Требует Claude Code v2.1.163 или позже |

752| `/plugin install` | `i` | Открывает вкладку **Discover** |

753| `/plugin install <plugin>` | `i` | Открывает детали плагина на вкладке **Discover**. С `name@marketplace` открывает их в списке этого маркетплейса |

754| `/plugin install <plugin> --marketplace <source>` | `i` | Добавляет маркетплейс в `<source>`, когда вы его ещё не добавили, спрашивая вас подтвердить сначала, затем открывает детали плагина. См. [Добавление маркетплейса и установка в одной команде](/docs/ru/plugins/install#add-a-marketplace-and-install-in-one-command). Требует Claude Code v2.1.275 или позже |

755| `/plugin manage` | | Открывает вкладку **Installed** |

756| `/plugin stats` | | Открывает вкладку **Stats** в сеансах, где [`/skill-doctor`](/docs/ru/skills#find-unused-skills) доступен. Везде ещё открывает панель на вкладке **Discover** |

757| `/plugin enable <plugin>` | | Открывает вкладку **Installed** на плагине и включает его |

758| `/plugin disable <plugin>` | | Открывает вкладку **Installed** на плагине и отключает его |

759| `/plugin uninstall <plugin>` | | Открывает вкладку **Installed** на плагине и удаляет его |

760| `/plugin configure <plugin>` | `config` | Открывает диалог [`userConfig`](/docs/ru/plugins/manifest-reference) плагина или сообщает, что плагин не объявляет ни одного. Требует Claude Code v2.1.147 или позже |

761| `/plugin validate <path>` | | Выводит тот же отчёт, что и `claude plugin validate`, встроенно |

762| `/plugin tag [path] [--push] [--dry-run] [--force]` | | Создаёт тег выпуска как `claude plugin tag` делает. Принимает `--push`, `--dry-run` и `--force` или `-f`; с любым другим флагом или дополнительным аргументом Claude Code выводит использование вместо этого |

763| `/plugin marketplace` | `market` | Ничего видимого не делает. Передайте `add`, `list`, `update` или `remove` |

764| `/plugin marketplace add [source]` | `market add` | С источником добавляет его и сообщает результат. Без одного открывает ввод **Add marketplace** |

765| `/plugin marketplace list` | `market list` | Выводит имена ваших маркетплейсов встроенно |

766| `/plugin marketplace update [name]` | `market update` | Открывает вкладку **Marketplaces**. С именем обновляет этот маркетплейс там |

767| `/plugin marketplace remove [name]` | `market remove`, `market rm`, `marketplace rm` | Открывает вкладку **Marketplaces**. С именем удаляет этот маркетплейс там |

768 

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

770 

771<h2 id="reload-plugins">

772 /reload-plugins

773</h2>

774 

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

776 

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

778 

779```text theme={null}

780/reload-plugins [--force]

781```

782 

783| Флаг | Описание |

784| :-------- | :--------------------------------------------------------------------------------------------------- |

785| `--force` | Примените перезагрузку, даже если она инвалидирует кэш подсказок. `force` без дефисов также работает |

786 

787<h3 id="reload-summary">

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

789</h3>

790 

791Claude 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.`

792 

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

794 

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

796 

797<h3 id="reloads-that-change-mcp-tools">

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

799</h3>

800 

801Когда перезагрузка добавляет или удаляет сервер MCP плагина или инструмент `LSP`, и это изменение инвалидирует [кэш подсказок](/docs/ru/prompt-caching#enabling-or-disabling-a-plugin), 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`, чтобы применить её в любом случае.

802 

803<h3 id="sessions-without-an-interactive-terminal">

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

805</h3>

806 

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

808 

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

810 

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

812 

813<h2 id="flags-that-load-a-plugin-for-one-session">

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

815</h2>

816 

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

818 

819Авторы плагинов используют их для тестирования плагина перед публикацией. Для рабочего процесса загрузки-редактирования-перезагрузки см. [Разработка без маркетплейса](/docs/ru/plugins/create#develop-without-a-marketplace).

820 

821| Флаг | Описание | Пример |

822| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------- |

823| `--plugin-dir <path>` | Загрузите плагин из каталога или архива `.zip` одного. Папка плагинов загружает каждую дочернюю папку, которая содержит `.claude-plugin/plugin.json`. Каждый флаг принимает один путь | `claude --plugin-dir ./my-plugin --plugin-dir ./other.zip` |

824| `--plugin-url <url>` | Получите архив плагина `.zip` из URL. Повторите флаг или передайте несколько URL, разделённых пробелом, в одном цитируемом значении | `claude --plugin-url "https://example.com/a.zip https://example.com/b.zip"` |

825 

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

827 

828Когда плагин только для сеанса имеет одно и то же имя с установленным плагином, Claude Code загружает копию только для сеанса для этого сеанса и пропускает установленную. Установленная копия загружается вместо этого, если вы отключили копию только для сеанса с `claude plugin disable <name>@inline`, или если управляемые параметры блокируют это имя плагина. Для приоритета см. [Справочник загрузки плагинов](/docs/ru/plugins/loading).

829 

830Администратор может отклонить оба флага и папки, названные в переменной [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/ru/env-vars#variables), с управляемым параметром [`disableSideloadFlags`](/docs/ru/settings-reference#disablesideloadflags). Claude Code затем выводит, что флаг отключён управляемыми параметрами вашей организации, и выходит с кодом `1` без запуска.

831 

832Из Agent SDK опция [`plugins`](/docs/ru/agent-sdk/plugins) — это эквивалент `--plugin-dir`.

833 

834<h2 id="next-steps">

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

836</h2>

837 

838* [Установка и управление плагинами](/docs/ru/plugins/install): те же операции, что и шаги, с тем, что вы видите на каждом

839* [Справочник загрузки плагинов](/docs/ru/plugins/loading): что каждая команда изменяет на диске и какая область действия вступает в силу

840* [Устранение неполадок плагинов](/docs/ru/plugins/troubleshooting): установка, маркетплейс, загрузка и сообщения об ошибках проверки с их исправлениями

841* [Справочник манифеста плагина](/docs/ru/plugins/manifest-reference): поля, которые `claude plugin validate` проверяет

plugins/code-intelligence.md +156 −0 created

Details

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# Code intelligence plugins

6 

7> Установите плагин языкового сервера, чтобы Claude видел ошибки типов после редактирования и навигировал по коду по символам, и ответьте на диалог рекомендации плагина LSP.

8 

9Плагин code intelligence предоставляет Claude живую диагностику и переход к определению, которые есть в вашем редакторе, поэтому Claude перехватывает ошибки типов и отсутствующие импорты, которые вводят его собственные правки, прежде чем вы запустите сборку, и находит определения и ссылки по символам вместо поиска по тексту.

10 

11Каждый плагин подключает Claude Code к языковому серверу для одного языка через Language Server Protocol (LSP). Вы устанавливаете плагин из официального marketplace Anthropic и двоичный файл языкового сервера на вашей машине.

12 

13<Note>

14 Code intelligence plugins работают в сеансах терминала. В [облачных сеансах](/docs/ru/claude-code-on-the-web) Claude Code не запускает языковые серверы плагинов, поэтому Claude не получает диагностику или навигацию по коду там. Чтобы написать свой собственный плагин языкового сервера или подключить языковой сервер, у которого нет плагина, см. [LSP servers in plugin components](/docs/ru/plugins/components#lsp-servers).

15</Note>

16 

17Чтобы начать работу, найдите свой язык в таблице в разделе [Установка плагина code intelligence](#install-a-code-intelligence-plugin). Плагины в этой таблице поступают из [официального marketplace плагинов](/docs/ru/plugins/anthropic-marketplaces) Anthropic.

18 

19Если вы уже видели диалог **LSP plugin recommendation**, см. [Принять или отклонить диалог рекомендации](#accept-or-dismiss-the-recommendation-dialog), чтобы узнать, что делает каждый выбор.

20 

21<h2 id="install-a-code-intelligence-plugin">

22 Установка плагина code intelligence

23</h2>

24 

25Плагин code intelligence сообщает Claude Code, какая команда запускает языковой сервер и какие расширения файлов он обрабатывает. Он не включает языковой сервер. Сначала установите двоичный файл языкового сервера, затем плагин, затем подтвердите, что сервер запускается.

26 

27<Steps>

28 <Step title="Установка двоичного файла языкового сервера">

29 Найдите свой язык в таблице ниже и установите двоичный файл в его строке. Если вашего языка нет в списке, см. [Добавление языка без официального плагина](#add-a-language-without-an-official-plugin).

30 

31 | Язык | Плагин | Двоичный файл |

32 | :---------------------- | :--------------------------------------------------------------------------------------------------------------- | :--------------------------- |

33 | C/C++ | [`clangd-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/clangd-lsp) | `clangd` |

34 | C# | [`csharp-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/csharp-lsp) | `csharp-ls` |

35 | Go | [`gopls-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/gopls-lsp) | `gopls` |

36 | Java | [`jdtls-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/jdtls-lsp) | `jdtls` |

37 | Kotlin | [`kotlin-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/kotlin-lsp) | `kotlin-lsp` |

38 | Liquid | [`liquid-lsp`](https://github.com/Shopify/liquid-skills/tree/main/plugins/liquid-lsp) | `shopify`, из Shopify CLI |

39 | Lua | [`lua-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/lua-lsp) | `lua-language-server` |

40 | PHP | [`php-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/php-lsp) | `intelephense` |

41 | Python | [`pyright-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/pyright-lsp) | `pyright-langserver` |

42 | Ruby | [`ruby-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/ruby-lsp) | `ruby-lsp` |

43 | Rust | [`rust-analyzer-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/rust-analyzer-lsp) | `rust-analyzer` |

44 | Swift | [`swift-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/swift-lsp) | `sourcekit-lsp` |

45 | TypeScript и JavaScript | [`typescript-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/typescript-lsp) | `typescript-language-server` |

46 

47 Anthropic поддерживает каждый плагин в таблице, кроме `liquid-lsp`, который поддерживает Shopify и который официальный marketplace указывает.

48 

49 Чтобы найти команду, которая устанавливает двоичный файл, перейдите по ссылке плагина в таблице на его README. Для TypeScript эта команда: `npm install -g typescript-language-server typescript`.

50 

51 После установки двоичного файла подтвердите, что он находится в `PATH` оболочки, из которой вы запускаете `claude`, например с помощью `which typescript-language-server` или `Get-Command typescript-language-server` в PowerShell.

52 </Step>

53 

54 <Step title="Установка плагина">

55 Чтобы установить плагин, указанный для вашего языка в таблице шага 1, запустите `/plugin install` в сеансе Claude Code, заменив `typescript-lsp` на имя этого плагина:

56 

57 ```

58 /plugin install typescript-lsp@claude-plugins-official

59 ```

60 

61 Сообщение подтверждения указывает, активен ли плагин сейчас или требуется `/reload-plugins`. Если установка не удалась с ошибкой `Marketplace "claude-plugins-official" not found`, см. [запись по устранению неполадок для этой ошибки](/docs/ru/plugins/troubleshooting#marketplace-claude-plugins-official-not-found). Чтобы контролировать, где устанавливается плагин, или запустить установку из вашей оболочки вместо Claude Code, см. [Установка плагинов](/docs/ru/plugins/install).

62 </Step>

63 

64 <Step title="Подтверждение запуска сервера">

65 Языковой сервер запускается в первый раз, когда Claude редактирует файл с одним из расширений плагина. Чтобы увидеть это в действии, попросите Claude внести ошибку типа в файл этого языка, а затем исправить её. Затем проверьте разговор на наличие строки диагностики:

66 

67 * **Появляется строка диагностики**: `Found N new diagnostic issues in M files (ctrl+o to expand)` под редактированием, которое внесло ошибку, означает, что сервер запустился.

68 * **Строка диагностики не появляется**: запустите `/plugin` и откройте вкладку **Errors**. Строка, читающая `Executable not found in $PATH: "<binary>"`, называет двоичный файл для установки. Если вкладка не содержит такую строку, см. [Устранение неполадок code intelligence](#troubleshoot-code-intelligence).

69 

70 После установки отсутствующего двоичного файла Claude Code повторит попытку в следующий раз, когда Claude отредактирует соответствующий файл. Если вы установили двоичный файл в каталог, который не находится в `PATH` оболочки, из которой вы запустили `claude`, запустите новый сеанс из оболочки, где он находится.

71 </Step>

72</Steps>

73 

74<h2 id="see-what-claude-gains">

75 Посмотрите, что получает Claude

76</h2>

77 

78С запущенным языковым сервером Claude получает диагностику и навигацию по коду:

79 

80* **Диагностика после редактирования**: каждый раз, когда Claude редактирует или записывает файл, который обрабатывает сервер, Claude получает ошибки и предупреждения, которые сообщает сервер. Он видит ошибку типа, отсутствующий импорт или синтаксическую ошибку, которую он внёс, без запуска компилятора.

81* **Навигация по коду**: Claude получает инструмент `LSP`, который ищет символы через сервер вместо поиска текста. Инструмент доступен только для чтения. Для того, что Claude может искать с помощью инструмента и как разрешения применяются к нему, см. [LSP tool behavior](/docs/ru/tools-reference#lsp-tool-behavior).

82 

83<h3 id="read-the-diagnostics-yourself">

84 Прочитайте диагностику самостоятельно

85</h3>

86 

87После того как Claude отредактирует файл, который обрабатывает сервер, разговор показывает только сводку `Found N new diagnostic issues`. Чтобы прочитать сами проблемы, нажмите **Ctrl+O**.

88 

89<h2 id="accept-or-dismiss-the-recommendation-dialog">

90 Принять или отклонить диалог рекомендации

91</h2>

92 

93Если двоичный файл языкового сервера уже находится в вашем `PATH` и плагин, который его использует, не установлен, Claude Code предлагает установить плагин для вас в диалоге с названием **LSP plugin recommendation**.

94 

95<h3 id="when-the-recommendation-dialog-appears">

96 Когда появляется диалог рекомендации

97</h3>

98 

99Диалог **LSP plugin recommendation** может появиться после того, как Claude отредактирует файл. Эти условия определяют, появляется ли он и какой плагин он предлагает:

100 

101* **Плагин соответствует файлу**: один из добавленных вами marketplaces или официальный marketplace, который Claude Code зарегистрировал для вас, содержит плагин code intelligence для расширения этого файла, и двоичный файл плагина установлен.

102* **Официальный первым**: когда более одного marketplace предлагает плагин для расширения, диалог предлагает плагин официального marketplace.

103* **Один раз за сеанс**: диалог появляется максимум один раз в сеансе, для первого соответствующего файла, который редактирует Claude.

104* **Не для облачных сеансов**: диалог никогда не появляется, когда ваш терминал подключен к облачному сеансу, например к тому, который вы запустили с помощью [`claude --cloud`](/docs/ru/claude-code-on-the-web#from-terminal-to-cloud).

105 

106<h3 id="respond-to-the-recommendation-dialog">

107 Ответьте на диалог рекомендации

108</h3>

109 

110Диалог **LSP plugin recommendation** называет плагин и предлагает эти варианты:

111 

112* **Yes, install**: Claude Code устанавливает плагин для вашей учётной записи пользователя и выводит `<plugin> installed · restart to apply`. Запустите новый сеанс для загрузки сервера.

113* **No, not now**: диалог закрывается, и более поздний сеанс может предложить плагин снова. Нажатие **Esc** делает то же самое.

114* **Never for this plugin**: диалог перестаёт появляться для этого плагина и по-прежнему появляется для других.

115* **Disable all LSP recommendations**: диалог перестаёт появляться для каждого языка.

116 

117Если вы не выберете опцию, Claude Code закроет её через 30 секунд и будет считать это игнорированием. Счёт ведётся между сеансами. После пяти игнорируемых диалогов Claude Code перестаёт рекомендовать плагины, как если бы вы выбрали **Disable all LSP recommendations**.

118 

119<h3 id="turn-recommendations-back-on">

120 Включить рекомендации снова

121</h3>

122 

123Диалог **LSP plugin recommendation** перестаёт появляться после того, как вы выберете **Disable all LSP recommendations** или игнорируете его пять раз.

124 

125* **Отключено или игнорировано пять раз**: чтобы включить его снова в любом случае, удалите ключи `lspRecommendationDisabled` и `lspRecommendationIgnoredCount` из `~/.claude.json`, собственного файла конфигурации Claude Code.

126* **Never for this plugin**: если вы выбрали **Never for this plugin** и хотите, чтобы этот плагин был предложен снова, удалите его идентификатор `name@marketplace` из списка `lspRecommendationNeverPlugins` в том же файле.

127 

128<h2 id="troubleshoot-code-intelligence">

129 Устранение неполадок code intelligence

130</h2>

131 

132Страница устранения неполадок плагинов охватывает симптомы, специфичные для плагинов code intelligence, в разделе [Language server doesn't start, uses too much memory, or reports wrong diagnostics](/docs/ru/plugins/troubleshooting#language-server-doesnt-start):

133 

134* **Языковой сервер не запускается**: вы видите `Executable not found in $PATH` на вкладке **Errors** в `/plugin`, или Claude никогда не сообщает диагностику для языка.

135* **Высокое использование памяти**: использование памяти увеличивается, пока сервер индексирует проект.

136* **Ложные положительные диагностики в monorepo**: диагностика сообщает об импортах как неразрешённых, когда они разрешены.

137 

138<h2 id="add-a-language-without-an-official-plugin">

139 Добавление языка без официального плагина

140</h2>

141 

142Если вашего языка нет в [таблице официальных плагинов](#install-a-code-intelligence-plugin), вы всё равно можете подключить языковой сервер.

143 

1441. Напишите плагин с файлом `.lsp.json`, который называет команду сервера и расширения файлов, которые он обрабатывает.

1452. Затем загрузите плагин с помощью [`--plugin-dir`](/docs/ru/plugins/cli-reference#flags-that-load-a-plugin-for-one-session) или опубликуйте его на marketplace.

146 

147Для полей файла и рабочего примера см. [LSP servers in plugin components](/docs/ru/plugins/components#lsp-servers).

148 

149<h2 id="next-steps">

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

151</h2>

152 

153* [LSP servers in plugin components](/docs/ru/plugins/components#lsp-servers): напишите `.lsp.json` для языкового сервера, у которого нет официального плагина

154* [Install and manage plugins](/docs/ru/plugins/install): области, обновления и удаление

155* [Troubleshoot plugins](/docs/ru/plugins/troubleshooting): ошибки загрузки, выходящие за рамки языковых серверов на этой странице

156* [Find plugins in the official marketplace](/docs/ru/plugins/anthropic-marketplaces#find-plugins-in-the-official-marketplace): где просмотреть остальную часть официального marketplace

plugins/components.md +1130 −0 created

Details

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# Добавление компонентов в плагин

6 

7> Добавляйте skills, hooks, MCP серверы и все остальные типы компонентов в плагин Claude Code с примерами, которые проходят валидацию для каждого.

8 

9export const Piece = ({id, children}) => <div className="pe-piece" data-piece={id}>{children}</div>;

10 

11export const PluginExplorer = ({children}) => {

12 const PIECES = [{

13 id: 'manifest',

14 name: 'Manifest',

15 path: '.claude-plugin/plugin.json',

16 required: "Required by Anthropic's directory",

17 lines: [{

18 depth: 0,

19 kind: 'folder',

20 text: '.claude-plugin/'

21 }, {

22 depth: 1,

23 kind: 'file',

24 text: 'plugin.json'

25 }],

26 href: '/en/plugins/manifest-reference#manifest-file',

27 linkText: 'Go to the manifest reference'

28 }, {

29 id: 'skills',

30 name: 'Skills',

31 path: 'skills/review/SKILL.md',

32 lines: [{

33 depth: 0,

34 kind: 'folder',

35 text: 'skills/'

36 }, {

37 depth: 1,

38 kind: 'folder',

39 text: 'review/'

40 }, {

41 depth: 2,

42 kind: 'file',

43 text: 'SKILL.md'

44 }],

45 href: '/en/plugins/components#skills',

46 linkText: 'Go to the Skills section'

47 }, {

48 id: 'commands',

49 name: 'Commands',

50 path: 'commands/about.md',

51 lines: [{

52 depth: 0,

53 kind: 'folder',

54 text: 'commands/'

55 }, {

56 depth: 1,

57 kind: 'file',

58 text: 'about.md'

59 }],

60 href: '/en/plugins/components#commands',

61 linkText: 'Go to the Commands section'

62 }, {

63 id: 'agents',

64 name: 'Agents',

65 path: 'agents/security-reviewer.md',

66 lines: [{

67 depth: 0,

68 kind: 'folder',

69 text: 'agents/'

70 }, {

71 depth: 1,

72 kind: 'file',

73 text: 'security-reviewer.md'

74 }],

75 href: '/en/plugins/components#agents',

76 linkText: 'Go to the Agents section'

77 }, {

78 id: 'hooks',

79 name: 'Hooks',

80 path: 'hooks/hooks.json',

81 lines: [{

82 depth: 0,

83 kind: 'folder',

84 text: 'hooks/'

85 }, {

86 depth: 1,

87 kind: 'file',

88 text: 'hooks.json'

89 }],

90 href: '/en/plugins/components#hooks',

91 linkText: 'Go to the Hooks section'

92 }, {

93 id: 'monitors',

94 name: 'Monitors',

95 path: 'monitors/monitors.json',

96 lines: [{

97 depth: 0,

98 kind: 'folder',

99 text: 'monitors/'

100 }, {

101 depth: 1,

102 kind: 'file',

103 text: 'monitors.json'

104 }],

105 href: '/en/plugins/components#monitors',

106 linkText: 'Go to the Monitors section'

107 }, {

108 id: 'output-styles',

109 name: 'Output styles',

110 path: 'output-styles/terse.md',

111 lines: [{

112 depth: 0,

113 kind: 'folder',

114 text: 'output-styles/'

115 }, {

116 depth: 1,

117 kind: 'file',

118 text: 'terse.md'

119 }],

120 href: '/en/plugins/components#themes-and-output-styles',

121 linkText: 'Go to the Themes and output styles section'

122 }, {

123 id: 'themes',

124 name: 'Themes',

125 path: 'themes/dracula.json',

126 lines: [{

127 depth: 0,

128 kind: 'folder',

129 text: 'themes/'

130 }, {

131 depth: 1,

132 kind: 'file',

133 text: 'dracula.json'

134 }],

135 href: '/en/plugins/components#themes-and-output-styles',

136 linkText: 'Go to the Themes and output styles section'

137 }, {

138 id: 'workflows',

139 name: 'Workflows',

140 path: 'workflows/audit-routes.js',

141 lines: [{

142 depth: 0,

143 kind: 'folder',

144 text: 'workflows/'

145 }, {

146 depth: 1,

147 kind: 'file',

148 text: 'audit-routes.js'

149 }],

150 href: '/en/workflows#distribute-a-workflow-in-a-plugin',

151 linkText: 'Go to Distribute a workflow in a plugin'

152 }, {

153 id: 'bin',

154 name: 'Executables',

155 path: 'bin/hello-plugin',

156 lines: [{

157 depth: 0,

158 kind: 'folder',

159 text: 'bin/'

160 }, {

161 depth: 1,

162 kind: 'file',

163 text: 'hello-plugin'

164 }],

165 href: '/en/plugins/components#executables',

166 linkText: 'Go to the Executables section'

167 }, {

168 id: 'scripts',

169 name: 'Scripts',

170 path: 'scripts/format.sh',

171 lines: [{

172 depth: 0,

173 kind: 'folder',

174 text: 'scripts/'

175 }, {

176 depth: 1,

177 kind: 'file',

178 text: 'format.sh'

179 }],

180 href: '/en/plugins/components#hooks',

181 linkText: 'Go to the Hooks section'

182 }, {

183 id: 'settings',

184 name: 'Default settings',

185 path: 'settings.json',

186 lines: [{

187 depth: 0,

188 kind: 'file',

189 text: 'settings.json'

190 }],

191 href: '/en/plugins/components#default-settings',

192 linkText: 'Go to the Default settings section'

193 }, {

194 id: 'mcp',

195 name: 'MCP servers',

196 path: '.mcp.json',

197 lines: [{

198 depth: 0,

199 kind: 'file',

200 text: '.mcp.json'

201 }],

202 href: '/en/plugins/components#mcp-servers',

203 linkText: 'Go to the MCP servers section'

204 }, {

205 id: 'lsp',

206 name: 'LSP servers',

207 path: '.lsp.json',

208 lines: [{

209 depth: 0,

210 kind: 'file',

211 text: '.lsp.json'

212 }],

213 href: '/en/plugins/components#lsp-servers',

214 linkText: 'Go to the LSP servers section'

215 }];

216 const [selectedId, setSelectedId] = useState('manifest');

217 const [isFullscreen, setIsFullscreen] = useState(false);

218 const rootRef = useRef(null);

219 useEffect(() => {

220 const onFsChange = () => setIsFullscreen(!!document.fullscreenElement);

221 document.addEventListener('fullscreenchange', onFsChange);

222 return () => document.removeEventListener('fullscreenchange', onFsChange);

223 }, []);

224 const toggleFullscreen = () => {

225 if (!rootRef.current) return;

226 if (document.fullscreenElement) document.exitFullscreen(); else rootRef.current.requestFullscreen().catch(() => {});

227 };

228 const selected = PIECES.find(p => p.id === selectedId) || PIECES[0];

229 const onTreeKeyDown = e => {

230 const keys = ['ArrowDown', 'ArrowUp', 'Home', 'End'];

231 if (keys.indexOf(e.key) === -1) return;

232 const i = PIECES.findIndex(p => p.id === selectedId);

233 let next = i;

234 if (e.key === 'ArrowDown') next = Math.min(PIECES.length - 1, i + 1);

235 if (e.key === 'ArrowUp') next = Math.max(0, i - 1);

236 if (e.key === 'Home') next = 0;

237 if (e.key === 'End') next = PIECES.length - 1;

238 e.preventDefault();

239 if (next === i) return;

240 const id = PIECES[next].id;

241 setSelectedId(id);

242 const el = document.getElementById('pe-node-' + id);

243 if (el) el.focus();

244 };

245 const FolderIcon = () => <svg className="pe-icon" width="15" height="15" viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinejoin="round" aria-hidden="true">

246 <path d="M1.5 4.5a1 1 0 0 1 1-1h3.2l1.3 1.5h6a1 1 0 0 1 1 1V12a1 1 0 0 1-1 1h-10.5a1 1 0 0 1-1-1z" />

247 </svg>;

248 const FileIcon = () => <svg className="pe-icon" width="15" height="15" viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinejoin="round" aria-hidden="true">

249 <path d="M4 1.5h5.5L13 5v9.5H4z" />

250 <path d="M9.5 1.5V5H13" />

251 </svg>;

252 return <div ref={rootRef} className={isFullscreen ? 'pe-root pe-fullscreen not-prose' : 'pe-root not-prose'} data-selected={selected.id}>

253 <style>{`

254 .pe-root {

255 --pe-mono: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);

256 --pe-accent: #D97757;

257 --pe-accent-text: #A8502F;

258 --pe-accent-bg: rgba(217,119,87,0.10);

259 --pe-bg: #FFFFFF;

260 --pe-surface: #FAFAF7;

261 --pe-hover: #F0EEE6;

262 --pe-border: #E8E6DC;

263 --pe-text: #141413;

264 --pe-text-2: #3D3D3A;

265 --pe-text-3: #5E5D59;

266 font-family: inherit;

267 background: var(--pe-bg);

268 color: var(--pe-text);

269 border: 1px solid var(--pe-border);

270 border-radius: 12px;

271 margin: 1.5rem 0;

272 overflow: hidden;

273 box-sizing: border-box;

274 }

275 .dark .pe-root {

276 --pe-accent-text: #EBA98F;

277 --pe-accent-bg: rgba(217,119,87,0.18);

278 --pe-bg: #1A1918;

279 --pe-surface: #232221;

280 --pe-hover: #2E2D2B;

281 --pe-border: #3A3936;

282 --pe-text: #F1EFE9;

283 --pe-text-2: #D6D4CA;

284 --pe-text-3: #B8B5AD;

285 }

286 .pe-root *, .pe-root *::before, .pe-root *::after { box-sizing: border-box; }

287 .pe-head { display: flex; align-items: flex-start; gap: 12px; padding: 18px 24px 16px; border-bottom: 1px solid var(--pe-border); }

288 .pe-head-text { flex: 1; min-width: 0; }

289 .pe-fs-btn { flex-shrink: 0; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--pe-border); border-radius: 6px; background: var(--pe-surface); color: var(--pe-text-2); font-size: 15px; line-height: 1; cursor: pointer; }

290 .pe-fs-btn:hover { background: var(--pe-hover); }

291 .pe-fs-btn:focus-visible { outline: 2px solid var(--pe-accent); outline-offset: 2px; }

292 .pe-fullscreen { border-radius: 0; height: 100vh; display: flex; flex-direction: column; overflow: auto; }

293 .pe-fullscreen .pe-body { flex: 1; }

294 .pe-title { font-size: 19px; font-weight: 600; line-height: 1.3; color: var(--pe-text); margin: 0; }

295 .pe-sub { font-size: 15px; line-height: 1.5; color: var(--pe-text-3); margin: 4px 0 0; }

296 .pe-sub code { font-family: var(--pe-mono); font-size: 0.88em; padding: 1px 5px; border-radius: 4px; background: var(--pe-surface); border: 1px solid var(--pe-border); }

297 .pe-body { display: flex; align-items: stretch; }

298 .pe-tree-pane { width: 270px; flex-shrink: 0; background: var(--pe-surface); border-right: 1px solid var(--pe-border); padding: 16px 0 12px; }

299 .pe-panel { flex: 1; min-width: 0; padding: 16px 24px 24px; }

300 .pe-caption { font-size: 13px; font-weight: 600; color: var(--pe-text-3); margin: 0 0 10px; }

301 .pe-tree-pane .pe-caption { padding: 0 16px; }

302 .pe-rootline { display: flex; align-items: center; gap: 7px; padding: 3px 16px; font-family: var(--pe-mono); font-size: 13.5px; color: var(--pe-text-3); }

303 .pe-node {

304 display: block; width: 100%; margin: 0; padding: 3px 16px 3px 30px; text-align: left; cursor: pointer;

305 background: transparent; color: var(--pe-text-2);

306 border: none; border-left: 3px solid transparent;

307 font-family: var(--pe-mono); font-size: 13.5px; line-height: 1.4;

308 }

309 .pe-node:hover { background: var(--pe-hover); }

310 .pe-node:focus-visible { outline: 2px solid var(--pe-accent); outline-offset: -2px; }

311 .pe-node[aria-pressed="true"] { background: var(--pe-accent-bg); border-left-color: var(--pe-accent); color: var(--pe-accent-text); font-weight: 600; }

312 .pe-line { display: flex; align-items: center; gap: 7px; padding: 2px 0; }

313 .pe-line-tree { flex-wrap: wrap; }

314 .pe-line-tree .pe-req { flex-basis: 100%; margin: 2px 0 0 22px; white-space: normal; width: fit-content; max-width: calc(100% - 22px); }

315 .pe-line span { overflow-wrap: anywhere; }

316 .pe-piece { display: none; font-size: 16px; line-height: 1.6; color: var(--pe-text-2); }

317 .pe-root[data-selected="manifest"] .pe-piece[data-piece="manifest"],

318 .pe-root[data-selected="skills"] .pe-piece[data-piece="skills"],

319 .pe-root[data-selected="commands"] .pe-piece[data-piece="commands"],

320 .pe-root[data-selected="agents"] .pe-piece[data-piece="agents"],

321 .pe-root[data-selected="hooks"] .pe-piece[data-piece="hooks"],

322 .pe-root[data-selected="monitors"] .pe-piece[data-piece="monitors"],

323 .pe-root[data-selected="output-styles"] .pe-piece[data-piece="output-styles"],

324 .pe-root[data-selected="themes"] .pe-piece[data-piece="themes"],

325 .pe-root[data-selected="workflows"] .pe-piece[data-piece="workflows"],

326 .pe-root[data-selected="bin"] .pe-piece[data-piece="bin"],

327 .pe-root[data-selected="scripts"] .pe-piece[data-piece="scripts"],

328 .pe-root[data-selected="settings"] .pe-piece[data-piece="settings"],

329 .pe-root[data-selected="mcp"] .pe-piece[data-piece="mcp"],

330 .pe-root[data-selected="lsp"] .pe-piece[data-piece="lsp"] { display: block; }

331 .pe-piece p { margin: 0 0 10px; }

332 .pe-piece p:last-child { margin-bottom: 0; }

333 .pe-piece code { font-family: var(--pe-mono); font-size: 0.88em; padding: 1px 5px; border-radius: 4px; background: var(--pe-surface); border: 1px solid var(--pe-border); }

334 .pe-piece .code-block { margin: 12px 0 0; }

335 .pe-piece pre code { padding: 0; border: none; background: none; }

336 .pe-piece a { color: var(--pe-accent-text); }

337 .pe-line-compact { display: none; }

338 .pe-icon { flex-shrink: 0; }

339 .pe-req { margin-left: 8px; padding: 0 6px; border-radius: 999px; font-size: 11px; line-height: 18px; letter-spacing: .02em; color: var(--pe-accent-text); border: 1px solid var(--pe-border); background: var(--pe-surface); white-space: nowrap; font-weight: 500; vertical-align: middle; }

340 .pe-name { font-size: 22px; font-weight: 600; line-height: 1.25; letter-spacing: -0.2px; color: var(--pe-text); margin: 0; }

341 .pe-path { font-family: var(--pe-mono); font-size: 13.5px; color: var(--pe-accent-text); margin: 4px 0 0; overflow-wrap: anywhere; }

342 .pe-block { margin: 20px 0 0; }

343 .pe-link {

344 display: inline-block; margin: 24px 0 0; padding: 8px 14px; border-radius: 8px;

345 font-size: 14.5px; font-weight: 600; text-decoration: none;

346 color: var(--pe-accent-text); background: var(--pe-accent-bg); border: 1px solid var(--pe-accent);

347 }

348 .pe-link:hover { filter: brightness(0.97); }

349 .pe-link:focus-visible { outline: 2px solid var(--pe-accent); outline-offset: 2px; }

350 @media (max-width: 700px) {

351 .pe-head { padding: 16px 16px 14px; }

352 .pe-body { flex-direction: column; }

353 .pe-tree-pane { width: 100%; border-right: none; border-bottom: 1px solid var(--pe-border); }

354 .pe-line-tree { display: none; }

355 .pe-line-compact { display: flex; }

356 .pe-panel { padding: 16px 16px 20px; }

357 }

358 `}</style>

359 

360 <div className="pe-head">

361 <div className="pe-head-text">

362 <div className="pe-title">What goes in a plugin</div>

363 <div className="pe-sub">This example plugin, <code>my-plugin</code>, has one of every kind of component, each in its default location. Select a file or folder to read what it’s for and see what goes in it.</div>

364 </div>

365 <button type="button" className="pe-fs-btn" onClick={toggleFullscreen} aria-label={isFullscreen ? 'Exit fullscreen' : 'Fullscreen'} title={isFullscreen ? 'Exit fullscreen' : 'Fullscreen'}>

366 {isFullscreen ? '⤡' : '⛶'}

367 </button>

368 </div>

369 

370 <div className="pe-body">

371 <div className="pe-tree-pane">

372 <div className="pe-caption" id="pe-tree-caption">Plugin directory</div>

373 <div role="group" aria-labelledby="pe-tree-caption" onKeyDown={onTreeKeyDown}>

374 <div className="pe-rootline"><FolderIcon /><span>my-plugin/</span></div>

375 {PIECES.map(p => <button key={p.id} id={'pe-node-' + p.id} type="button" className="pe-node" aria-pressed={p.id === selected.id} aria-label={p.name + ', ' + p.path} onClick={() => setSelectedId(p.id)}>

376 {p.lines.map((line, i) => <span key={i} className="pe-line pe-line-tree" style={{

377 paddingLeft: line.depth * 18 + 'px'

378 }}>

379 {line.kind === 'folder' ? <FolderIcon /> : <FileIcon />}

380 <span>{line.text}</span>

381 {p.required && i === p.lines.length - 1 ? <span className="pe-req">{p.required}</span> : null}

382 </span>)}

383 <span className="pe-line pe-line-compact">

384 <FileIcon />

385 <span>{p.path}</span>

386 {p.required ? <span className="pe-req">{p.required}</span> : null}

387 </span>

388 </button>)}

389 </div>

390 </div>

391 

392 <div className="pe-panel" role="region" aria-labelledby="pe-panel-caption" aria-live="polite" aria-atomic="true">

393 <div className="pe-caption" id="pe-panel-caption">Selected piece</div>

394 <div className="pe-name">{selected.name}{selected.required ? <span className="pe-req">{selected.required}</span> : null}</div>

395 <div className="pe-path">{selected.path}</div>

396 

397 <div className="pe-block">{children}</div>

398 

399 <a className="pe-link" href={selected.href}>{selected.linkText}</a>

400 </div>

401 </div>

402 </div>;

403};

404 

405Плагин Claude Code строится из компонентов, таких как skills, agents, hooks и MCP серверы. Каждый компонент имеет папку по умолчанию в плагине, необязательный ключ манифеста в `.claude-plugin/plugin.json`, который заменяет или добавляет к этой папке, и имя, которое видит пользователь. Для полной таблицы полей каждого ключа см. [справочник манифеста](/docs/ru/plugins/manifest-reference#fields).

406 

407Используйте эту страницу для добавления компонента в плагин, который уже загружается.

408 

409После добавления компонента запустите `/reload-plugins` в работающей сессии или начните новую, чтобы Claude Code загрузил его. Чтобы проверить файл компонента перед загрузкой, запустите [`claude plugin validate .`](/docs/ru/plugins/cli-reference#plugin-validate) в вашей оболочке из директории плагина.

410 

411<Note>

412 Эти случаи рассматриваются на других страницах:

413 

414 * **Создание вашего первого плагина**: начните с [Create a plugin](/docs/ru/plugins/create)

415 * **Установка плагина кого-то другого**: см. [Install plugins](/docs/ru/plugins/install)

416 * **Ваши пользователи плагина находятся на claude.ai или в Cowork**: там загружается другой набор компонентов. См. [Plugins on claude.ai and in Cowork](https://claude.com/docs/plugins/overview)

417</Note>

418 

419<h2 id="explore-the-plugin-directory">

420 Изучите каталог плагинов

421</h2>

422 

423Обозреватель показывает пример плагина `my-plugin`, который содержит по одному компоненту каждого вида в его расположении по умолчанию:

424 

425* Skill для проверки и команду `about`

426* Subagent для проверки безопасности

427* Hook, который форматирует файлы после редактирования Claude, и папку `scripts/`, которую он вызывает

428* Монитор логов

429* Стиль вывода и цветовую тему

430* Workflow для аудита маршрутов

431* Исполняемый файл `hello-plugin`

432* Параметры по умолчанию

433* Локальный MCP сервер и языковой сервер Go

434 

435Каждый файл — это наименьший допустимый пример своего формата, предназначенный для демонстрации структуры, а не для практического использования: реальный skill или agent содержит полные инструкции и часто вспомогательные файлы, а реальный hook или монитор выполняет реальную работу. Разделы после обозревателя используют те же файлы в качестве примеров и ссылаются на более полные версии. Выберите файл или папку, чтобы прочитать, для чего она нужна, увидеть, что в ней содержится, и найти раздел, который её описывает.

436 

437<PluginExplorer>

438 <Piece id="manifest">

439 [Манифест](/docs/ru/plugins/manifest-reference) — это файл `plugin.json` в директории `.claude-plugin/` плагина. Он содержит метаданные плагина и значения `userConfig`, которые Claude Code запрашивает у пользователя. Обязателен только `name`. В этом примере `description` — это текст, который пользователи видят для плагина в `/plugin`, а `version` удерживает пользователей на этой версии, пока вы её не измените:

440 

441 ```json theme={null}

442 {

443 "name": "my-plugin",

444 "version": "1.0.0",

445 "description": "Review, formatting, and database tools for this team"

446 }

447 ```

448 </Piece>

449 

450 <Piece id="skills">

451 [Skill](/docs/ru/skills) — это файл `SKILL.md`. Сохраняйте каждый skill в отдельной директории в папке `skills/`. Claude читает `description` каждого skill, и когда то, что просит пользователь, совпадает с ней, например, когда пользователь просит Claude проверить pull request, Claude загружает инструкции skill и следует им. Пользователь также может запустить его напрямую как `/my-plugin:review`:

452 

453 ```markdown theme={null}

454 ---

455 description: Reviews a pull request for style and test coverage. Use when asked to review code.

456 ---

457 

458 Review the changed files. Report style problems first, then missing tests.

459 ```

460 </Piece>

461 

462 <Piece id="commands">

463 Команда — это один файл Markdown, который пользователь запускает по имени. Команды — это более старый формат: skill запускается по имени таким же образом и может также содержать вспомогательные файлы в собственной директории, поэтому пишите новые как skills и сохраняйте `commands/` для файлов, которые у вас уже есть. Этот файл становится `/my-plugin:about` и принимает тот же frontmatter, что и skill:

464 

465 ```markdown theme={null}

466 ---

467 description: Summarize the repository

468 ---

469 

470 Summarize what this repository does in three sentences.

471 ```

472 </Piece>

473 

474 <Piece id="agents">

475 [Subagent](/docs/ru/sub-agents) — это отдельный помощник с собственными инструкциями и собственным контекстным окном, которому Claude может делегировать задачу и получить результат. Каждый файл Markdown в папке `agents/` определяет один: frontmatter называет его и говорит, когда его использовать, а тело — это его системный prompt. Этот назван `my-plugin:security-reviewer`, и пользователь может вызвать его с помощью `@agent-my-plugin:security-reviewer`:

476 

477 ```markdown theme={null}

478 ---

479 name: security-reviewer

480 description: Reviews code changes for security issues. Use after edits to authentication or input handling.

481 model: sonnet

482 ---

483 

484 You are a security reviewer. Read the changed files and report injection, authentication, and secrets-handling risks.

485 ```

486 </Piece>

487 

488 <Piece id="hooks">

489 [Hook](/docs/ru/hooks-guide) запускает что-то автоматически в точке жизненного цикла Claude Code, например, после каждого редактирования файла: команду shell, HTTP запрос, вызов инструмента MCP, prompt к модели или subagent. Сохраняйте hooks плагина в `hooks/hooks.json` в корне плагина. Этот запускает `scripts/format.sh` плагина после того, как Claude записывает или редактирует файл:

490 

491 ```json theme={null}

492 {

493 "hooks": {

494 "PostToolUse": [

495 {

496 "matcher": "Write|Edit",

497 "hooks": [

498 {

499 "type": "command",

500 "command": "\"${CLAUDE_PLUGIN_ROOT}/scripts/format.sh\""

501 }

502 ]

503 }

504 ]

505 }

506 }

507 ```

508 </Piece>

509 

510 <Piece id="monitors">

511 Монитор — это команда shell, которую Claude Code запускает в фоне при запуске сеанса и держит запущенной до его завершения, используя [инструмент Monitor](/docs/ru/tools-reference#monitor-tool). То, что он выводит, достигает Claude как уведомления. Поле `when` может вместо этого запустить его в первый раз, когда запустится названный skill. Этот отслеживает журнал ошибок:

512 

513 ```json theme={null}

514 [

515 {

516 "name": "error-log",

517 "command": "tail -F ./logs/error.log",

518 "description": "Application error log"

519 }

520 ]

521 ```

522 </Piece>

523 

524 <Piece id="output-styles">

525 Плагин может включать [стили вывода](/docs/ru/output-styles), которые изменяют, как Claude форматирует и формулирует свои ответы. Сохраняйте каждый стиль вывода как `output-styles/<name>.md`. Этот появляется в `/output-style` как `my-plugin:terse`:

526 

527 ```markdown theme={null}

528 ---

529 name: terse

530 description: Answer in as few words as possible

531 keep-coding-instructions: true

532 ---

533 

534 Keep every reply short. Skip preambles and summaries.

535 ```

536 </Piece>

537 

538 <Piece id="themes">

539 Плагин может включать [цветовые темы](/docs/ru/terminal-config#create-a-custom-theme) для интерфейса Claude Code. Сохраняйте каждую тему как `themes/<slug>.json`. Этот появляется в `/theme` как `Dracula`, отмеченный как из `my-plugin`:

540 

541 ```json theme={null}

542 {

543 "name": "Dracula",

544 "base": "dark",

545 "overrides": {

546 "claude": "#bd93f9",

547 "error": "#ff5555"

548 }

549 }

550 ```

551 </Piece>

552 

553 <Piece id="workflows">

554 Папка `workflows/` содержит файлы [workflow](/docs/ru/workflows) `.js`: блок `meta`, затем тело скрипта, которое координирует несколько subagents. Этот запускается как `/my-plugin:audit-routes`:

555 

556 ```javascript theme={null}

557 export const meta = {

558 name: 'audit-routes',

559 description: 'Audit every route handler for missing auth checks',

560 }

561 

562 const found = await agent('List every .ts file under src/routes/.', {

563 schema: { type: 'object', required: ['files'], properties: { files: { type: 'array', items: { type: 'string' } } } },

564 })

565 

566 const audits = await pipeline(found.files, file =>

567 agent(`Audit ${file} for missing authentication checks.`, { label: file }),

568 )

569 

570 return audits.filter(Boolean)

571 ```

572 </Piece>

573 

574 <Piece id="bin">

575 `bin/` — это способ, которым плагин поставляет инструмент командной строки. Пока плагин включен, Claude Code помещает эту папку в `PATH` shell, в котором он запускает команды, поэтому Claude или инструкции skill могут запустить инструмент по имени без установки пользователем. С этим [исполняемым файлом](#executables) на месте `hello-plugin` — это команда, которую Claude может запустить:

576 

577 ```bash theme={null}

578 #!/bin/bash

579 echo "hello from my-plugin"

580 ```

581 </Piece>

582 

583 <Piece id="scripts">

584 Hook в `hooks/hooks.json` запускает скрипт, и эта папка — это место, где пример его хранит. Имя `scripts/` — это соглашение, а не что-то, что Claude Code ищет: hook указывает на файл по его пути, `${CLAUDE_PLUGIN_ROOT}/scripts/format.sh`. Скрипт форматирования может выглядеть так:

585 

586 ```bash theme={null}

587 #!/bin/bash

588 npx prettier --write .

589 ```

590 </Piece>

591 

592 <Piece id="settings">

593 `settings.json` в корне плагина содержит [параметры](/docs/ru/settings-reference), которые применяются, пока плагин включен, поэтому плагин может изменить поведение сеанса и не только добавить компоненты. Только два ключа действуют из плагина, [`agent`](/docs/ru/settings-reference#agent) и [`subagentStatusLine`](/docs/ru/settings-reference#subagentstatusline); все остальные ключи отбрасываются. См. [Параметры по умолчанию](#default-settings).

594 

595 Этот устанавливает `agent`, который запускает основной поток сеанса как собственный agent `security-reviewer` плагина, поэтому системный prompt этого agent, ограничения инструментов и модель применяются ко всему сеансу:

596 

597 ```json theme={null}

598 {

599 "agent": "security-reviewer"

600 }

601 ```

602 </Piece>

603 

604 <Piece id="mcp">

605 [MCP сервер](/docs/ru/mcp) предоставляет Claude инструменты из внешней системы. Объявите его в `.mcp.json` в корне плагина. Этот запускает локальный сервер из скрипта внутри плагина и появляется в `/mcp` как `plugin:my-plugin:db`:

606 

607 ```json theme={null}

608 {

609 "mcpServers": {

610 "db": {

611 "command": "node",

612 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"]

613 }

614 }

615 }

616 ```

617 </Piece>

618 

619 <Piece id="lsp">

620 LSP сервер предоставляет Claude [диагностику и навигацию по коду](/docs/ru/plugins/code-intelligence) для языка. Объявите сервер в `.lsp.json` в корне плагина. Этот подключает языковой сервер Go для файлов `.go`:

621 

622 ```json theme={null}

623 {

624 "gopls": {

625 "command": "gopls",

626 "args": ["serve"],

627 "extensionToLanguage": {

628 ".go": "go"

629 }

630 }

631 }

632 ```

633 </Piece>

634</PluginExplorer>

635 

636<h2 id="add-each-kind-of-component">

637 Добавление каждого вида компонента

638</h2>

639 

640Каждый раздел ниже охватывает один вид компонента: где его файлы находятся в плагине, пример, который проходит валидацию, что видит пользователь после загрузки плагина, и ключ манифеста, который изменяет расположение по умолчанию. Добавляйте те, которые нужны вашему плагину; ни один не требуется.

641 

642<h3 id="skills">

643 Skills

644</h3>

645 

646[Skill](/docs/ru/skills) — это файл `SKILL.md`, который Claude может загрузить, когда его описание совпадает с задачей. Пользователь также может запустить его как команду. Сохраняйте каждый skill в его собственной директории под `skills/`:

647 

648```text theme={null}

649my-plugin/

650├── .claude-plugin/

651│ └── plugin.json

652└── skills/

653 └── review/

654 └── SKILL.md

655```

656 

657Дайте `SKILL.md` `description`, чтобы Claude знал, когда его использовать:

658 

659```markdown skills/review/SKILL.md theme={null}

660---

661description: Reviews a pull request for style and test coverage. Use when asked to review code.

662---

663 

664Review the changed files. Report style problems first, then missing tests.

665```

666 

667После загрузки плагина `/my-plugin:review` запускает skill. Имя команды и кто может её вызвать следуют этим правилам:

668 

669* **Имя команды**: `/<plugin>:<directory>`, поэтому `skills/review/SKILL.md` в `my-plugin` — это `/my-plugin:review`. Если вы установите `name` в frontmatter, он заменит последний сегмент, и префикс плагина остаётся. См. [как skill получает имя команды](/docs/ru/skills#how-a-skill-gets-its-command-name)

670* **Кто вызывает**: Claude, пользователь или оба, контролируется frontmatter. См. [Control who invokes a skill](/docs/ru/skills#control-who-invokes-a-skill)

671 

672Вы также можете разместить skills вне директории по умолчанию `skills/`:

673 

674* **Дополнительные директории**: перечислите их в ключе манифеста `skills`. Они добавляются к сканированию по умолчанию `skills/`, а не заменяют его, в отличие от `commands` и `agents`

675* **Один skill в корне плагина**: без директории `skills/` и без ключа манифеста `skills`, `SKILL.md` в корне плагина загружается как один skill. Установите `name` в его frontmatter, потому что иначе установка из marketplace назовёт skill по его [директории кэша](/docs/ru/plugins/loading#find-plugins-on-disk), а не по вашему плагину

676 

677Чтобы включить инструкции в плагин, напишите их как skill. Claude Code не загружает `CLAUDE.md` в корне плагина, и `claude plugin validate` предупреждает `CLAUDE.md at the plugin root is not loaded as project context`.

678 

679Для полей frontmatter и вспомогательных файлов см. [Skills](/docs/ru/skills).

680 

681<h3 id="commands">

682 Команды

683</h3>

684 

685Команда — это один файл Markdown, который пользователь запускает по имени, например `/my-plugin:about`.

686 

687<Note>

688 Команды — это более старый формат, и [skills](#skills) их заменяют для новой работы. Skill запускается по имени таким же образом, и он также может содержать вспомогательные файлы в своей директории. Сохраняйте `commands/` для файлов, которые вы переносите из `.claude/commands/`.

689</Note>

690 

691Сохраняйте команду в `commands/<file>.md` и она становится `/<plugin>:<file>`. Подпапка добавляет сегмент, поэтому `commands/db/migrate.md` — это `/my-plugin:db:migrate`.

692 

693Файлы команд принимают тот же frontmatter, что и skills.

694 

695<h4 id="define-commands-in-the-manifest">

696 Определение команд в манифесте

697</h4>

698 

699Это нужно только, если вы хотите сохранить файлы команд где-то в другом месте, чем `commands/`, или определить короткую команду внутри `plugin.json` без отдельного файла Markdown. Установите ключ манифеста `commands`, и Claude Code читает его вместо сканирования `commands/`. Ключ принимает путь, массив путей или объект, который отображает каждое имя команды либо на файл `source`, либо на встроенное `content`.

700 

701Этот манифест определяет `/my-plugin:about` встроенным образом, без файла Markdown:

702 

703```json .claude-plugin/plugin.json theme={null}

704{

705 "name": "my-plugin",

706 "commands": {

707 "about": {

708 "content": "Summarize what this repository does in three sentences.",

709 "description": "Summarize the repository"

710 }

711 }

712}

713```

714 

715Загрузите плагин и запустите `/my-plugin:about` в сессии, чтобы подтвердить, что он загрузился.

716 

717Для полного синтаксиса ключа см. [`commands`](/docs/ru/plugins/manifest-reference#commands).

718 

719<h3 id="agents">

720 Агенты

721</h3>

722 

723[Подагент](/docs/ru/sub-agents) — это отдельный помощник с собственными инструкциями и окном контекста, которому Claude может делегировать задачу. Каждый файл Markdown под `agents/` определяет один:

724 

725```markdown agents/security-reviewer.md theme={null}

726---

727name: security-reviewer

728description: Reviews code changes for security issues. Use after edits to authentication or input handling.

729model: sonnet

730---

731 

732You are a security reviewer. Read the changed files and report injection, authentication, and secrets-handling risks.

733```

734 

735Этот агент назван `my-plugin:security-reviewer`, и пользователь может [вызвать его явно](/docs/ru/sub-agents#invoke-subagents-explicitly) с помощью `@agent-my-plugin:security-reviewer`. Форма имени — `<plugin>:<name>`, где `<name>` берётся из frontmatter или из имени файла, когда его нет.

736 

737Ключ `agents` манифеста заменяет сканирование `agents/`.

738 

739<h4 id="organize-agents-in-subfolders">

740 Организация агентов в подпапках

741</h4>

742 

743Вы можете поместить файлы агентов плагина в подпапки `agents/`. Claude Code [загружает их рекурсивно](/docs/ru/sub-agents#choose-the-subagent-scope) и объединяет имя плагина, каждое имя подпапки и имя файла с двоеточиями, чтобы сформировать имя агента с областью видимости. Например, `agents/review/security.md` в плагине с именем `my-plugin` загружается как `my-plugin:review:security`. Два параметра изменяют это имя:

744 

745* Frontmatter `name`: он заменяет только имя файла, поэтому `name: audit` в `agents/review/security.md` загружается как `my-plugin:review:audit`

746* Манифест [`agents`](/docs/ru/plugins/manifest-reference#fields) поле: файл, который вы там перечислите, загружается без имён подпапок, поэтому `"agents": "./custom/review/security.md"` загружается как `my-plugin:security`

747 

748<h4 id="frontmatter-fields-in-plugin-agents">

749 Поля frontmatter в агентах плагина

750</h4>

751 

752Frontmatter агента плагина следует этим правилам:

753 

754* **Поддерживаемые поля**: `name`, `description`, `model`, `effort`, `maxTurns`, `tools`, `disallowedTools`, `skills`, `memory`, `background`, `omitClaudeMd`, `isolation`, `color` и ключ `cacheTtl` из `experimental`. Единственное допустимое значение `isolation` — это `"worktree"`. См. [поддерживаемые поля frontmatter](/docs/ru/sub-agents#supported-frontmatter-fields) для того, что делает каждое

755* **Игнорируемые поля**: `permissionMode`, `hooks`, `mcpServers` и `initialPrompt`. Файл агента не может добавлять hooks или MCP серверы самостоятельно, поэтому добавляйте их как плагин [hooks](#hooks) и [MCP серверы](#mcp-servers) вместо этого

756* **Frontmatter, который не парсится**: агент всё ещё загружается со всеми полями, игнорируемыми. Он назван по имени файла, и его описание читается как `Agent from my-plugin plugin`. Запустите [`claude plugin validate`](/docs/ru/plugins/cli-reference#plugin-validate) в вашей оболочке, чтобы найти эти файлы

757 

758Для того, что делает каждое поле и правила приоритета, см. [Subagents](/docs/ru/sub-agents#supported-frontmatter-fields).

759 

760<h3 id="hooks">

761 Hooks

762</h3>

763 

764[Hook](/docs/ru/hooks-guide) запускает что-то автоматически в точке жизненного цикла Claude Code, например, после каждого редактирования файла: команду оболочки, HTTP запрос, вызов инструмента MCP, prompt к модели или подагента. Сохраняйте hooks плагина в `hooks/hooks.json` в корне плагина, под верхним уровнем ключа `"hooks"`, в той же форме, что и объект `hooks` в `settings.json`. Это позволяет вам скопировать существующий hook параметров без изменений.

765 

766Этот hook запускает встроенный скрипт после каждого `Write` или `Edit`:

767 

768```json hooks/hooks.json theme={null}

769{

770 "hooks": {

771 "PostToolUse": [

772 {

773 "matcher": "Write|Edit",

774 "hooks": [

775 {

776 "type": "command",

777 "command": "\"${CLAUDE_PLUGIN_ROOT}/scripts/format.sh\""

778 }

779 ]

780 }

781 ]

782 }

783}

784```

785 

786Сохраняйте скрипт в `scripts/format.sh` и сделайте его исполняемым.

787 

788Загрузите плагин и попросите Claude отредактировать файл. Hook `PostToolUse`, который выходит с кодом 0, ничего не показывает в транскрипте, поэтому подтвердите, что он запустился с помощью [debug logging](/docs/ru/hooks#debug-hooks) или по тому, что сам скрипт изменяет.

789 

790Hooks в `hooks/hooks.json` и в ключе манифеста `hooks` оба загружаются. Для каждого события и его payload см. [Hook events](/docs/ru/hooks#hook-events).

791 

792<h4 id="when-plugin-hooks-fire">

793 Когда запускаются hooks плагина

794</h4>

795 

796Hooks плагина не ждут использования одного из skills или команд плагина. Claude Code регистрирует их, когда сессия загружает плагин, и они запускаются на своих событиях с этого момента. Чтобы ограничить, когда запускается hook, сузьте его `matcher`.

797 

798Если hook никогда не запускается, см. [hooks that don't fire](/docs/ru/plugins/troubleshooting#failed-to-load-hooks-from-and-hooks-that-dont-fire).

799 

800<h4 id="environment-quoting-and-matching-mcp-tools">

801 Окружение, кавычки и соответствие инструментам MCP

802</h4>

803 

804Окружение hook, кавычки `${CLAUDE_PLUGIN_ROOT}` и matchers для собственных инструментов MCP плагина работают следующим образом:

805 

806* **Окружение**: каждый процесс hook получает `CLAUDE_PLUGIN_ROOT` и `CLAUDE_PLUGIN_DATA` в своём окружении, плюс `CLAUDE_PLUGIN_OPTION_<KEY>` для каждого значения [конфигурации пользователя](#user-configuration), поэтому ваш скрипт может читать их оттуда

807* **Кавычки**: когда `command` не имеет `args`, он запускается через оболочку, поэтому оберните путь `${CLAUDE_PLUGIN_ROOT}` в двойные кавычки, как пример `hooks/hooks.json` под [Hooks](#hooks) делает, чтобы сохранить развёрнутый путь одним словом оболочки. Когда вы передаёте `args` вместо этого, каждый элемент передаётся как один аргумент без оболочки и не нуждается в кавычках. См. [exec form and shell form](/docs/ru/hooks#exec-form-and-shell-form)

808* **Соответствие собственным инструментам MCP плагина**: инструмент из [MCP сервера, который объявляет этот плагин](#mcp-servers), назван `mcp__plugin_<plugin>_<server>__<tool>`, поэтому напишите это полное имя в matcher. Matcher только на имя сервера никогда не запускается. См. [Match MCP tools](/docs/ru/hooks#match-mcp-tools)

809 

810<h3 id="mcp-servers">

811 MCP серверы

812</h3>

813 

814MCP сервер предоставляет Claude инструменты из внешней системы. Объявите его в `.mcp.json` в корне плагина, в той же форме, что и [проект `.mcp.json`](/docs/ru/mcp#project-scope). Этот `.mcp.json` объявляет один сервер с именем `db`:

815 

816```json .mcp.json theme={null}

817{

818 "mcpServers": {

819 "db": {

820 "command": "node",

821 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"]

822 }

823 }

824}

825```

826 

827Вы также можете опустить обёртку `mcpServers` и поместить `db` на верхний уровень файла.

828 

829Загрузите плагин и запустите `/mcp`, чтобы подтвердить, что сервер появляется как `plugin:my-plugin:db`.

830 

831`claude plugin validate` проверяет `.mcp.json` и сообщает запись сервера, которую Claude Code отбросит во время загрузки, как ошибку. Требуется Claude Code v2.1.281 или позже.

832 

833Для того, где плохая запись появляется во время загрузки, см. [MCP servers that don't start](/docs/ru/plugins/troubleshooting#invalid-mcp-server-config-for-and-mcp-servers-that-dont-start).

834 

835Ключ манифеста `mcpServers` принимает встроенную карту сервера, путь к файлу JSON или массив этих. Когда сервер манифеста имеет то же имя, что и один в `.mcp.json`, сервер манифеста заменяет его.

836 

837<h4 id="reach-users-on-claude-ai-and-cowork">

838 Достижение пользователей на claude.ai и Cowork

839</h4>

840 

841Локальный сервер stdio, такой как сервер `db` под [MCP servers](#mcp-servers), работает в Claude Code и в сессии Cowork, которая работает на вашей машине в приложении Claude Desktop, но не на claude.ai. Чтобы достичь пользователей там тоже, ссылайтесь на удалённый сервер по его URL `https://`, который claude.ai и Cowork предлагают пользователю как соединитель.

842 

843<h4 id="server-names-tool-names-and-reloads">

844 Имена серверов, имена инструментов и перезагрузки

845</h4>

846 

847Имена сервера, подстановка переменных и поведение перезагрузки следуют этим правилам:

848 

849* **Имя сервера**: `plugin:<plugin>:<server>`, поэтому сервер `db` в `my-plugin` — это `plugin:my-plugin:db` в `/mcp`. Используйте ту же форму для именования сервера в [hook `mcp_tool`](/docs/ru/hooks#mcp-tool-hook-fields)

850* **Имена инструментов**: `mcp__plugin_<plugin>_<server>__<tool>`, поэтому инструмент `query` на том сервере `db` — это `mcp__plugin_my-plugin_db__query`. Это имя, которое нужно использовать в [правилах разрешений](/docs/ru/permissions) и [matchers hook](#hooks)

851* **Подстановка**: `${CLAUDE_PLUGIN_ROOT}` и другие [переменные пути](#path-variables-and-persistent-data) подставляются в `command`, `args` и `env`. Кавычки не нужны в `args`, потому что каждый элемент передаётся как один аргумент

852* **Перезагрузка**: когда пользователь запускает `/reload-plugins` и [перезагрузка применяется](/docs/ru/plugins/cli-reference#reloads-that-change-mcp-tools), сервер, конфигурация которого не изменилась, сохраняет своё соединение. Сервер, конфигурация которого изменилась, переподключается, и тот, который вы удалили, отключается

853 

854<h4 id="include-a-packaged-mcpb-server">

855 Включение упакованного MCPB сервера

856</h4>

857 

858Ключ `mcpServers` также принимает упакованный сервер как [файл MCPB](https://github.com/modelcontextprotocol/mcpb), расширение которого `.mcpb` или более старое `.dxt`. Укажите ключ на файл, как путь внутри плагина или URL `https://`:

859 

860```json .claude-plugin/plugin.json theme={null}

861{

862 "name": "my-plugin",

863 "mcpServers": "./servers/db.mcpb"

864}

865```

866 

867Сервер берёт своё имя из `name` в манифесте пакета.

868 

869Для транспортов и аутентификации см. [MCP](/docs/ru/mcp#plugin-provided-mcp-servers).

870 

871<h3 id="lsp-servers">

872 LSP серверы

873</h3>

874 

875LSP сервер предоставляет Claude диагностику и навигацию по коду для языка. Если [официальный плагин code intelligence](/docs/ru/plugins/code-intelligence) уже охватывает ваш язык, установите его вместо написания собственного. Иначе объявите сервер в `.lsp.json` в корне плагина:

876 

877```json .lsp.json theme={null}

878{

879 "gopls": {

880 "command": "gopls",

881 "args": ["serve"],

882 "extensionToLanguage": {

883 ".go": "go"

884 }

885 }

886}

887```

888 

889Файл отображает каждое имя сервера непосредственно на его конфигурацию, без объекта-обёртки вокруг карты. `command` — это имя двоичного файла, с его аргументами в `args`. `extensionToLanguage` нуждается по крайней мере в одном расширении, каждое начинается с `.`.

890 

891`claude plugin validate` не читает этот файл. Когда любая запись недействительна, весь файл пропускается при загрузке и `Invalid LSP server config for ".lsp.json"` появляется на вкладке **Errors** в `/plugin`.

892 

893Ваш плагин конфигурирует соединение, но не устанавливает двоичный файл сервера, и каждое расширение файла получает один сервер:

894 

895* **Отсутствующий двоичный файл**: Claude Code запускает `command` по имени из `PATH` пользователя. Когда двоичный файл там не находится, сервер не запускается и `claude --debug` логирует `LSP server <name> failed to start`

896* **Конфликты расширений**: когда два включённых сервера претендуют на одно и то же расширение, первый зарегистрированный обрабатывает эти файлы, а другой не используется для них, независимо от того, поступают ли серверы из одного плагина или двух. Вкладка **Errors** в `/plugin` показывает предупреждение `LSP server "<name>" is not used for <ext> files`

897 

898Ключ манифеста `lspServers` принимает ту же карту встроенной, путь к файлу JSON или массив этих, и его серверы добавляются к тем, что в `.lsp.json`. Когда сервер манифеста имеет то же имя, что и один в `.lsp.json`, сервер манифеста заменяет его.

899 

900Для `transport`, timeouts, restarts и других полей см. [`lspServers`](/docs/ru/plugins/manifest-reference#lspservers).

901 

902Отправляйте вывод логов в stderr, а не stdout. Claude Code читает stdout сервера только как сообщения протокола и принимает заголовки сообщений до 64 КиБ и тело сообщения до 32 МиБ.

903 

904Claude Code отключает сервер, который превышает любой лимит или пишет вывод, не являющийся протоколом, в stdout, и считает отключение сбоем для `restartOnCrash` и `maxRestarts`. Когда вы запускаете с `--debug`, Claude Code пишет ошибку, называющую причину, в журнал отладки.

905 

906<h3 id="executables">

907 Исполняемые файлы

908</h3>

909 

910Файлы в `bin/` в корне плагина находятся на `PATH` оболочки инструмента Bash, пока плагин включен, поэтому Claude может запустить их как простые команды. Добавьте исполняемый скрипт:

911 

912```bash bin/hello-plugin theme={null}

913#!/bin/bash

914echo "hello from my-plugin"

915```

916 

917Сделайте его исполняемым с помощью `chmod +x bin/hello-plugin` и загрузите плагин. Когда вы просите Claude запустить `hello-plugin`, результат инструмента Bash показывает вывод скрипта.

918 

919Директории `bin/` плагина идут после собственных записей `PATH` пользователя, поэтому плагин не может затенять `git`, `ls` или другую системную команду.

920 

921claude.ai и Cowork не устанавливают плагин, который имеет директорию `bin/` верхнего уровня, включая тот, который вы [распространяете через параметры организации claude.ai](/docs/ru/plugins/host-marketplace#distribute-through-organization-settings).

922 

923<h3 id="default-settings">

924 Параметры по умолчанию

925</h3>

926 

927Чтобы установить значения по умолчанию, которые применяются, пока плагин включен, добавьте `settings.json` в корень плагина или поместите тот же объект встроенным в ключ манифеста `settings`. Два ключа вступают в силу, `agent` и `subagentStatusLine`, и все остальные ключи отбрасываются.

928 

929Установите `agent` для запуска одного из собственных агентов плагина как основного потока:

930 

931```json settings.json theme={null}

932{

933 "agent": "security-reviewer"

934}

935```

936 

937Загрузите плагин и начните сессию. Claude затем отвечает в основном разговоре с системным prompt и моделью агента `security-reviewer`.

938 

939Для всего, что контролирует ключ, см. [параметр `agent`](/docs/ru/settings-reference#agent).

940 

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

942 

943* **Файл над манифестом**: когда оба существуют и `settings.json` устанавливает по крайней мере один поддерживаемый ключ, `settings.json` применяется и `settings` манифеста игнорируется

944* **Параметры пользователя над значениями по умолчанию плагина**: во всех источниках параметров значения по умолчанию плагина — это самый низкий уровень, поэтому собственный `agent` пользователя в `~/.claude/settings.json` переопределяет ваш

945* **Два плагина устанавливают один и тот же ключ**: значение из плагина, загруженного последним, применяется, и `claude --debug` логирует `overrides setting`

946 

947Для формы `subagentStatusLine` см. [subagent status lines](/docs/ru/statusline#subagent-status-lines).

948 

949<h3 id="themes-and-output-styles">

950 Темы и стили вывода

951</h3>

952 

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

954 

955| Компонент | Сохраняйте как | Формат | Появляется в | Ключ манифеста |

956| :----------- | :------------------------ | :--------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------- | :-------------------- |

957| Тема | `themes/<slug>.json` | Формат [пользовательского файла темы](/docs/ru/terminal-config#create-a-custom-theme), который пользователи пишут в `~/.claude/themes/` | `/theme`, под `name` файла | `experimental.themes` |

958| Стиль вывода | `output-styles/<name>.md` | Формат [пользовательского стиля вывода](/docs/ru/output-styles#create-a-custom-output-style), с frontmatter `name` и `description` | `/output-style`, как `<plugin>:<name>` | `outputStyles` |

959 

960Темы плагина доступны только для чтения, поэтому когда пользователь редактирует одну в `/theme`, редактирование сохраняется как копия в их собственной директории тем.

961 

962Эта тема перекрашивает акцент prompt и текст ошибки на тёмном предустановке:

963 

964```json themes/dracula.json theme={null}

965{

966 "name": "Dracula",

967 "base": "dark",

968 "overrides": {

969 "claude": "#bd93f9",

970 "error": "#ff5555"

971 }

972}

973```

974 

975<h3 id="channels">

976 Каналы

977</h3>

978 

979[Канал](/docs/ru/channels) позволяет внешней системе, такой как приложение чата, отправлять сообщения в сессию. В плагине канал — это один из MCP серверов плюс запись `channels`, которая привязывает к нему и может запросить собственную конфигурацию. Этот манифест привязывает канал к серверу `telegram` и запрашивает токен бота:

980 

981```json .claude-plugin/plugin.json theme={null}

982{

983 "name": "my-plugin",

984 "mcpServers": {

985 "telegram": {

986 "command": "node",

987 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"],

988 "env": { "BOT_TOKEN": "${user_config.bot_token}" }

989 }

990 },

991 "channels": [

992 {

993 "server": "telegram",

994 "userConfig": {

995 "bot_token": {

996 "type": "string",

997 "title": "Bot token",

998 "description": "Telegram bot token",

999 "sensitive": true

1000 }

1001 }

1002 }

1003 ]

1004}

1005```

1006 

1007`server` должен совпадать с ключом в `mcpServers`. Per-channel `userConfig` принимает ту же форму, что и [верхний уровень ключа `userConfig`](#user-configuration).

1008 

1009Для того, что должен реализовать сервер и как пользователи включают плагин канала, см. [Package as a plugin](/docs/ru/channels-reference#package-as-a-plugin) в справочнике каналов. Для таблицы полей см. [`channels`](/docs/ru/plugins/manifest-reference#channels).

1010 

1011<h3 id="monitors">

1012 Мониторы

1013</h3>

1014 

1015Монитор — это команда оболочки, которая работает в фоне для всей сессии. То, что она выводит, достигает Claude как уведомления, поэтому Claude может реагировать на журнал или изменение статуса без просьбы наблюдать за ним. Сохраняйте записи в `monitors/monitors.json`:

1016 

1017```json monitors/monitors.json theme={null}

1018[

1019 {

1020 "name": "error-log",

1021 "command": "tail -F ./logs/error.log",

1022 "description": "Application error log"

1023 }

1024]

1025```

1026 

1027Команда запускается в оболочке, в рабочей директории, в которой сессия началась.

1028 

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

1030 

1031* **Только интерактивные сессии**: мониторы плагина запускаются в интерактивной сессии и никогда в неинтерактивном режиме с флагом `-p`. Они также запускаются только там, где доступен [инструмент Monitor](/docs/ru/tools-reference#monitor-tool)

1032* **Нет конфигурации пользователя**: `command` получает [переменные пути](#path-variables-and-persistent-data) и `${ENV_VAR}` из окружения, но никогда `${user_config.*}`. Монитор, который ссылается на один, не запускается, и процессы монитора также не получают `CLAUDE_PLUGIN_OPTION_<KEY>`

1033* **Отключение во время сессии**: если вы отключите плагин во время сессии, Claude Code не останавливает мониторы, которые уже работают. Они останавливаются, когда сессия заканчивается

1034 

1035Ключ манифеста `experimental.monitors` принимает тот же массив встроенным или путь к файлу JSON и читается вместо `monitors/monitors.json`.

1036 

1037Для триггера `when` и других полей см. [`monitors`](/docs/ru/plugins/manifest-reference#monitors).

1038 

1039<h2 id="user-configuration">

1040 Запрос значений конфигурации у пользователя

1041</h2>

1042 

1043Объявите значения, которые ваш плагин нужен от пользователя, в ключе манифеста `userConfig`, чтобы пользователи не редактировали `settings.json` сами. Каждый вариант появляется в диалоге с его `title` как метка и его `description` под ней.

1044 

1045Установите `"sensitive": true` для токена или пароля. Диалог затем маскирует ввод, и значение хранится в защищённом хранилище, а не в `settings.json`.

1046 

1047Этот манифест запрашивает конечную точку и токен:

1048 

1049```json .claude-plugin/plugin.json theme={null}

1050{

1051 "name": "my-plugin",

1052 "userConfig": {

1053 "api_url": {

1054 "type": "string",

1055 "title": "API URL",

1056 "description": "Base URL of your team's API"

1057 },

1058 "api_token": {

1059 "type": "string",

1060 "title": "API token",

1061 "description": "Token for your team's API",

1062 "sensitive": true

1063 }

1064 }

1065}

1066```

1067 

1068<h3 id="when-the-configuration-dialog-appears">

1069 Когда появляется диалог конфигурации

1070</h3>

1071 

1072Диалог появляется только в интерактивном интерфейсе `/plugin`. Он открывается для любого варианта, который ещё не установлен, когда пользователь делает любое из следующего:

1073 

1074* Устанавливает плагин в `/plugin`

1075* Запускает `/plugin install <plugin>@<marketplace>` внутри сессии

1076* Включает плагин из вкладки **Installed** в `/plugin`

1077 

1078Чтобы открыть тот же диалог в любое время, пользователь запускает `/plugin configure <plugin>@<marketplace>`.

1079 

1080Команда оболочки `claude plugin install` никогда не запрашивает значения `userConfig`. Чтобы установить значения из оболочки, передайте каждое как `--config KEY=VALUE`. Когда варианты остаются неустановленными, команда выводит строку `userConfig options not yet set`, которая называет оба способа их установки. [The `userConfig` dialog never appears](/docs/ru/plugins/troubleshooting#the-userconfig-dialog-never-appears) цитирует строку.

1081 

1082Для полей варианта, где хранится каждое значение, как компонент ссылается на сохранённое значение и какие поля отклоняют `${user_config.*}`, см. [User configuration](/docs/ru/plugins/manifest-reference#user-configuration).

1083 

1084<h2 id="path-variables-and-persistent-data">

1085 Ссылка на пути плагина и хранение данных

1086</h2>

1087 

1088Вы не знаете, где будет установлен ваш плагин, поэтому ссылайтесь на его файлы и данные через эти переменные, а не через фиксированные пути. Они подставляются в содержимое skill, команды и агента, в команды hook и монитора, а также в конфигурации MCP и LSP сервера. Они также экспортируются в процессы hook, MCP и LSP:

1089 

1090* **`${CLAUDE_PLUGIN_ROOT}`**: директория установки плагина. Каждая версия имеет свою собственную [директорию кэша](/docs/ru/plugins/loading#find-plugins-on-disk), поэтому путь изменяется при обновлении плагина. Не пишите состояние там

1091* **`${CLAUDE_PLUGIN_DATA}`**: директория, которая выживает обновления, для `node_modules`, виртуальных окружений и кэшей. Она разрешается в `~/.claude/plugins/data/<id>/` и создаётся при первой ссылке

1092* **`${CLAUDE_PROJECT_DIR}`**: корень проекта, то же значение, которое получают hooks

1093 

1094В пути директории данных `<id>` — это идентификатор плагина со всеми символами, кроме букв, цифр, `_` и `-`, заменённых на `-`, поэтому `my-plugin@my-marketplace` становится `my-plugin-my-marketplace`.

1095 

1096На Windows подставленные пути используют прямые слэши, поэтому оболочка не читает обратные слэши как экранирование.

1097 

1098<h3 id="install-dependencies-into-the-data-directory">

1099 Установка зависимостей в директорию данных

1100</h3>

1101 

1102Для плагина, установленного из marketplace, Claude Code автоматически устанавливает подходящие [зависимости пакета Node.js](/docs/ru/plugins/loading#node-js-package-dependencies) при кэшировании плагина, поэтому вам может не потребоваться устанавливать их самостоятельно. Когда вам нужно, этот hook `SessionStart` устанавливает `node_modules` в `${CLAUDE_PLUGIN_DATA}` при первом запуске и снова после обновления, которое изменяет `package.json`:

1103 

1104```json hooks/hooks.json theme={null}

1105{

1106 "hooks": {

1107 "SessionStart": [

1108 {

1109 "hooks": [

1110 {

1111 "type": "command",

1112 "command": "diff -q \"${CLAUDE_PLUGIN_ROOT}/package.json\" \"${CLAUDE_PLUGIN_DATA}/package.json\" >/dev/null 2>&1 || (cd \"${CLAUDE_PLUGIN_DATA}\" && cp \"${CLAUDE_PLUGIN_ROOT}/package.json\" . && npm install) || rm -f \"${CLAUDE_PLUGIN_DATA}/package.json\""

1113 }

1114 ]

1115 }

1116 ]

1117 }

1118}

1119```

1120 

1121После первой сессии `~/.claude/plugins/data/<id>/node_modules` существует. MCP сервер может затем установить `NODE_PATH` в `${CLAUDE_PLUGIN_DATA}/node_modules` в его `env`. Для того, какие поля подставляют какую переменную, см. [Environment variables](/docs/ru/plugins/manifest-reference#environment-variables).

1122 

1123<h2 id="next-steps">

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

1125</h2>

1126 

1127* [Plugin manifest reference](/docs/ru/plugins/manifest-reference): поля `plugin.json`, правила пути и стандартная раскладка

1128* [Test plugins with evals](/docs/ru/plugin-evals): проверьте, что компоненты, которые вы добавили, изменяют поведение Claude так, как вы намеревались

1129* [Publish and distribute a plugin](/docs/ru/plugins/publish): версионируйте плагин и поместите его в marketplace

1130* [Troubleshoot plugins](/docs/ru/plugins/troubleshooting): что делать, когда компонент не загружается или hook не запускается

plugins/create.md +424 −0 created

Details

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# Создание плагина Claude Code

6 

7> Создайте свой первый плагин Claude Code с нуля, протестируйте его без marketplace и преобразуйте существующую конфигурацию .claude/.

8 

9Плагин — это директория с skills, agents, hooks и MCP серверами, а также файл `plugin.json`, называемый манифестом, который называет плагин. Claude Code загружает директорию как одно целое, поэтому вы можете поделиться ею с коллегами, установить её в несколько проектов или опубликовать на marketplace.

10 

11Эта страница предназначена для людей, которые пишут свои собственные плагины.

12 

13<Note>

14 Эти случаи рассмотрены на других страницах:

15 

16 * **Установка плагина другого человека**: см. [Установка плагинов](/docs/ru/plugins/install)

17 * **Не уверены, нужен ли вам плагин**: см. [Решите, нужен ли вам плагин](/docs/ru/plugins/overview#decide-whether-you-need-a-plugin) в обзоре

18 * **Пользователи вашего плагина находятся на claude.ai или в Cowork**: одна и та же папка устанавливается там с другим подмножеством компонентов. См. [Плагины на claude.ai и в Cowork](https://claude.com/docs/plugins/overview)

19</Note>

20 

21Начните с раздела, который соответствует тому, что у вас уже есть:

22 

23* **Ничего ещё**: следуйте [Создайте свой первый плагин](#create-your-first-plugin), затем [Разработка без marketplace](#develop-without-a-marketplace) и [Тестирование и отладка](#test-and-debug).

24* **Файлы под `.claude/` уже есть**: пройдите пошаговое руководство первого плагина один раз, чтобы изучить макет, затем следуйте [Преобразование существующей конфигурации `.claude/`](#convert-an-existing-claude-setup).

25 

26<h2 id="decide-when-to-use-a-plugin">

27 Решите, когда использовать плагин

28</h2>

29 

30Skills, agents, hooks и MCP серверы работают отдельно в вашем проекте или домашней директории. Сохраняйте эту отдельную конфигурацию, пока она служит одному проекту или только вам. Создайте плагин, когда вы хотите поделиться конфигурацией с коллегами, установить её в несколько проектов или опубликовать версионные релизы.

31 

32Когда вы перемещаете отдельные skills, agents, hooks и MCP конфигурацию в плагин, их местоположение и имена меняются:

33 

34* **Где находятся файлы**: под собственной директорией плагина, называемой корнем плагина, как `skills/`, `agents/`, `hooks/hooks.json` и `.mcp.json`.

35* **Как они названы**: skills и agents плагина получают имя плагина в качестве префикса, например `/my-plugin:hello`, поэтому два плагина могут каждый предоставить skill `hello` без конфликтов.

36 

37Чтобы переместить существующую конфигурацию в плагин, см. [Преобразование существующей конфигурации `.claude/`](#convert-an-existing-claude-setup).

38 

39<h2 id="create-your-first-plugin">

40 Создайте свой первый плагин

41</h2>

42 

43В этом пошаговом руководстве вы создаёте плагин, единственным компонентом которого является один skill — приветствие, и запускаете его с `--plugin-dir`, который загружает плагин на одну сессию без установки. Плагин может содержать любую комбинацию [компонентов](/docs/ru/plugins/components), таких как skills, agents, hooks и MCP серверы, и ни один не требуется; один skill — это наименьший пример, который показывает макет.

44 

45Вам нужен Claude Code [установленный и авторизованный](/docs/ru/quickstart#step-1-install-claude-code).

46 

47Откройте терминал в директории, где вы хотите хранить плагин, например `~/projects`, и запустите команды в этих шагах из неё. Вы можете хранить плагин где угодно, потому что вы передаёте его путь Claude Code при запуске сессии.

48 

49<Steps>

50 <Step title="Создайте директорию плагина">

51 Создайте директорию плагина с папкой `.claude-plugin/` внутри неё для хранения манифеста:

52 

53 ```bash theme={null}

54 mkdir -p my-first-plugin/.claude-plugin

55 ```

56 </Step>

57 

58 <Step title="Напишите манифест">

59 [Манифест](/docs/ru/plugins/manifest-reference) — это JSON файл с именем `plugin.json`, который сообщает Claude Code имя плагина и описывает его. Сохраните этот файл как `my-first-plugin/.claude-plugin/plugin.json`:

60 

61 ```json my-first-plugin/.claude-plugin/plugin.json theme={null}

62 {

63 "name": "my-first-plugin",

64 "description": "A greeting plugin to learn the basics",

65 "version": "1.0.0",

66 "author": {

67 "name": "Your Name"

68 }

69 }

70 ```

71 

72 Четыре поля делают следующее:

73 

74 * **`name`**: обязательно. Оно идентифицирует плагин и становится префиксом для каждого skill и agent, который предоставляет плагин. Не ставьте в нём пробелы.

75 * **`description`**: текст, который пользователи видят для плагина в `/plugin`.

76 * **`version`**: опционально. Установка его сохраняет пользователей на этой версии, пока вы не измените её; [Выпустить новую версию](/docs/ru/plugins/host-marketplace#release-a-new-version) говорит, когда установить или опустить его.

77 * **`author`**: кого кредитовать. `name` обязателен внутри него; `email` и `url` опциональны.

78 

79 Каждое другое поле находится на [справочнике манифеста](/docs/ru/plugins/manifest-reference#fields).

80 

81 Только `plugin.json` находится внутри `.claude-plugin/`. Skill, который вы добавите далее, находится непосредственно под `my-first-plugin/`, рядом с этой папкой.

82 </Step>

83 

84 <Step title="Добавьте skill">

85 Единственным компонентом этого плагина является skill. Каждый skill — это директория под `skills/`, которая содержит файл `SKILL.md`. Создайте директорию skill:

86 

87 ```bash theme={null}

88 mkdir -p my-first-plugin/skills/hello

89 ```

90 

91 Затем создайте `my-first-plugin/skills/hello/SKILL.md` с этим содержимым:

92 

93 ```markdown my-first-plugin/skills/hello/SKILL.md theme={null}

94 ---

95 name: hello

96 description: Greet the user with a friendly message

97 disable-model-invocation: true

98 ---

99 

100 Greet the user warmly and ask how you can help them today.

101 ```

102 

103 Строка `disable-model-invocation: true` означает, что Claude не запускает skill самостоятельно, поэтому только вы его запускаете. Удалите эту строку из skill, который вы хотите, чтобы Claude запускал самостоятельно. Команда skill объединяет имя плагина и имя skill, поэтому вы запускаете этот как `/my-first-plugin:hello`. Для других полей frontmatter см. [справочник frontmatter skill](/docs/ru/skills#frontmatter-reference).

104 </Step>

105 

106 <Step title="Проверьте плагин">

107 Проверьте манифест и frontmatter skill перед запуском чего-либо:

108 

109 ```bash theme={null}

110 claude plugin validate ./my-first-plugin

111 ```

112 

113 Команда выводит путь манифеста, который она проверила, и `✔ Validation passed`. Если вместо этого она выводит `✘ Validation failed`, каждая строка выше строки результата называет поле для исправления. Посмотрите каждое сообщение под [`claude plugin validate` сообщает об ошибках](/docs/ru/plugins/troubleshooting#claude-plugin-validate-reports-errors).

114 </Step>

115 

116 <Step title="Запустите Claude Code с плагином">

117 Запустите сессию с загруженным плагином:

118 

119 ```bash theme={null}

120 claude --plugin-dir ./my-first-plugin

121 ```

122 

123 После запуска Claude Code запустите skill:

124 

125 ```text theme={null}

126 /my-first-plugin:hello

127 ```

128 

129 Claude ответит приветствием.

130 </Step>

131</Steps>

132 

133Плагин загружается только в сессиях, которые вы запускаете с `--plugin-dir`. Чтобы продолжить работу над ним без флага или протестировать сборку `.zip`, см. [Разработка без marketplace](#develop-without-a-marketplace).

134 

135<h3 id="share-the-plugin">

136 Поделитесь своим плагином

137</h3>

138 

139Плагин, который вы создали с помощью [Создайте свой первый плагин](#create-your-first-plugin), существует только на вашей машине. Когда он готов для других людей, есть три способа доставить его им:

140 

141* **Отправьте его нескольким людям напрямую**: дайте им директорию плагина или `.zip` её, и ничего не нужно публиковать. См. [Поделитесь плагином без marketplace](/docs/ru/plugins/publish#share-a-plugin-without-a-marketplace).

142* **Перечислите его в своём собственном marketplace**: коллеги добавляют ваш marketplace один раз и устанавливают плагин по имени, и они получают ваши обновления. См. [Опубликуйте через свой собственный marketplace](/docs/ru/plugins/publish#publish-through-your-own-marketplace).

143* **Отправьте его на community marketplace Anthropic**: после того как он будет указан, любой, кто добавит этот marketplace, сможет его установить. См. [Отправьте на community marketplace](/docs/ru/plugins/publish#submit-to-the-community-marketplace).

144 

145<h3 id="plugin-layout">

146 Макет плагина

147</h3>

148 

149Каждый вид [компонента](/docs/ru/plugins/components), такой как skills, agents, hooks и MCP серверы, находится в фиксированной директории под корнем плагина, который является директорией, которую вы передаёте `--plugin-dir`. Добавляйте только директории, которые вы используете. Чтобы пройти через полную директорию плагина и прочитать, что делает каждый файл, откройте [обозреватель плагинов](/docs/ru/plugins/components#explore-the-plugin-directory).

150 

151Таблица перечисляет директории, с которых начинают большинство плагинов, и [полный макет](/docs/ru/plugins/manifest-reference#standard-layout) перечисляет остальные.

152 

153| Местоположение | Содержимое |

154| :--------------------------- | :------------------------------------------------------------------------------------------------------------------------------- |

155| `.claude-plugin/plugin.json` | Манифест. Когда вы загружаете плагин с `--plugin-dir` и у него нет манифеста, Claude Code называет плагин в честь его директории |

156| `skills/` | Одна директория `<name>/SKILL.md` на skill |

157| `commands/` | Плоские файлы Markdown, более старая форма skills. Используйте `skills/` для новых плагинов |

158| `agents/` | Один файл Markdown на subagent |

159| `hooks/hooks.json` | Конфигурация hook: ключ верхнего уровня `"hooks"`, значение которого имеет ту же форму, что и `hooks` в файле settings |

160| `.mcp.json` | Определения MCP сервера |

161 

162<Warning>

163 Только `plugin.json` находится внутри `.claude-plugin/`. Компоненты, сохранённые там, не загружаются.

164 

165 Корень плагина — это собственная директория плагина, а не сама `~/.claude/`. `.mcp.json`, сохранённый в `~/.claude/.mcp.json`, не загружается.

166</Warning>

167 

168<h2 id="develop-without-a-marketplace">

169 Разработка без marketplace

170</h2>

171 

172Вам не нужен [marketplace](/docs/ru/plugins/overview#get-plugins-from-a-marketplace) для запуска плагина, который вы пишете. Загружайте его непосредственно с диска или URL вместо этого:

173 

174* [`--plugin-dir`](#load-a-directory-or-archive-for-one-session): загружает директорию или архив `.zip` на одну сессию.

175* [`--plugin-url`](#fetch-an-archive-from-a-url-for-one-session): загружает архив `.zip` с URL на одну сессию.

176* [`claude plugin init`](#scaffold-a-plugin-that-loads-every-session): создаёт плагин под `~/.claude/skills/`, который загружается в каждую сессию.

177 

178Если два плагина, загруженные разными способами, имеют одно имя, см. [Конфликты имён](/docs/ru/plugins/loading#name-conflicts) для того, какой из них Claude Code сохраняет.

179 

180<h3 id="load-a-directory-or-archive-for-one-session">

181 Загрузите плагин на одну сессию

182</h3>

183 

184Вы можете загрузить плагин на одну сессию тремя способами: из директории или архива `.zip` на диске с `--plugin-dir`, с URL с `--plugin-url` или из переменной окружения, когда вы не можете добавить флаг. Каждый плагин загружается только на эту сессию, и ничего не записывается в ваши settings для него. Когда вы редактируете файлы плагина во время сессии, запустите `/reload-plugins` для загрузки изменений.

185 

186<h4 id="from-a-directory-or-zip">

187 Из директории или `.zip`

188</h4>

189 

190Когда вы запускаете `claude` из вашей оболочки, передайте `--plugin-dir` с корневой директорией плагина или архивом `.zip` её. Повторите флаг для загрузки нескольких плагинов:

191 

192```bash theme={null}

193claude --plugin-dir ./my-first-plugin --plugin-dir ./other-plugin.zip

194```

195 

196<h4 id="load-a-folder-of-plugins">

197 Из папки плагинов

198</h4>

199 

200Чтобы загрузить несколько плагинов из одного места, передайте папку, которая их содержит, например `--plugin-dir ./plugins`. Загрузка папки плагинов требует Claude Code v2.1.265 или позже.

201 

202Если папка не имеет директории `.claude-plugin/` и нет компонентов плагина на её верхнем уровне, Claude Code рассматривает её как папку плагинов. Каждая непосредственная подпапка, которая имеет манифест `.claude-plugin/plugin.json`, затем загружается как отдельный плагин. Всё остальное в папке пропускается без ошибки, включая подпапку, которая не имеет манифеста. Если плагин в папке не загружается, проверьте, что его подпапка имеет `.claude-plugin/plugin.json`.

203 

204В интерактивной сессии вы также можете добавлять и удалять плагины в папке после запуска:

205 

206* Подпапка, которую вы добавляете, загружается как новый плагин, как только существует её манифест.

207* Когда вы удаляете подпапку, её плагин выгружается.

208 

209Сообщение появляется в сессии для каждого из этих изменений. Если загрузка или выгрузка плагина в середине разговора [инвалидирует кэш подсказки](/docs/ru/prompt-caching#enabling-or-disabling-a-plugin), изменение вместо этого удерживается, и сообщение говорит вам запустить `/reload-plugins` для применения его.

210 

211<h4 id="fetch-an-archive-from-a-url-for-one-session">

212 С URL

213</h4>

214 

215Когда вы запускаете `claude` из вашей оболочки, передайте `--plugin-url` с адресом архива `.zip`, например артефакта сборки, который ваш CI публикует:

216 

217```bash theme={null}

218claude --plugin-url https://example.com/my-first-plugin.zip

219```

220 

221Claude Code загружает архив при запуске. Чтобы загрузить несколько, повторите флаг или передайте URL разделённые пробелом в одном цитируемом аргументе.

222 

223Указывайте флаг только на архивы, которые вы контролируете или доверяете.

224 

225Если Claude Code не может загрузить архив или архив недействителен, он запускается без плагина и записывает ошибку загрузки плагина, которую вы можете просмотреть на вкладке **Errors** менеджера `/plugin`.

226 

227<h4 id="from-an-environment-variable">

228 Из переменной окружения

229</h4>

230 

231Чтобы загрузить плагины в сессии, где вы не можете добавить флаг `--plugin-dir`, перечислите их абсолютные пути в переменной окружения [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/ru/env-vars#variables) вместо этого. Claude Code загружает каждый путь, как загружает путь `--plugin-dir`. Эти плагины загружаются в дополнение к любым, которые вы передаёте с `--plugin-dir`. [Параметры проекта и локальные параметры не могут установить эту переменную](/docs/ru/settings-reference#variables-claude-code-ignores-in-env). `CLAUDE_CODE_PLUGIN_DIRS` требует Claude Code v2.1.280 или позже.

232 

233Управляемые параметры могут отключить `--plugin-dir` и `CLAUDE_CODE_PLUGIN_DIRS`. См. [Флаги, которые загружают плагин на одну сессию](/docs/ru/plugins/cli-reference#flags-that-load-a-plugin-for-one-session). Чтобы протестировать плагин вместе с плагином, от которого он зависит, см. [Протестируйте плагин и его зависимость локально](/docs/ru/plugins/dependencies#test-a-plugin-and-its-dependency-locally).

234 

235<h3 id="scaffold-a-plugin-that-loads-every-session">

236 Сделайте плагин загружаемым в каждую сессию

237</h3>

238 

239Ваша личная директория skills — это `~/.claude/skills/`. Claude Code загружает любую папку там, которая содержит `.claude-plugin/plugin.json` как плагин в каждую сессию, без флага и без шага установки. `claude plugin init` создаёт один из этих плагинов для вас.

240 

241<h4 id="scaffold-the-plugin-with-claude-plugin-init">

242 Создайте плагин с `claude plugin init`

243</h4>

244 

245`claude plugin init` пишет стартовый плагин под `~/.claude/skills/`. Требует Claude Code v2.1.157 или позже. Создайте один из вашей оболочки:

246 

247```bash theme={null}

248claude plugin init my-tool

249```

250 

251Команда создаёт `~/.claude/skills/my-tool/` с `.claude-plugin/plugin.json` и корневым `SKILL.md`. Она выводит `✔ Created plugin "my-tool" at ~/.claude/skills/my-tool` затем `It will auto-load next session as my-tool@skills-dir. Run /reload-plugins to load it now.`

252 

253Передайте `--with skills` для того, чтобы `claude plugin init` создал skill под `skills/` для вас. Другие значения `--with` находятся на [справочнике команд плагина](/docs/ru/plugins/cli-reference#plugin-init).

254 

255<h4 id="skill-names-in-a-scaffolded-plugin">

256 Назовите skills плагина

257</h4>

258 

259Корневой skill в `~/.claude/skills/my-tool/SKILL.md` также является личным skill, поэтому вы вызываете его как `/my-tool`, а не `/my-tool:my-tool`. Skills, которые вы добавляете под `skills/` внутри плагина, получают префикс имени плагина, например `/my-tool:example`.

260 

261<h4 id="stop-loading-the-plugin">

262 Остановите загрузку плагина

263</h4>

264 

265Чтобы остановить загрузку созданного плагина, удалите его директорию или запустите `claude plugin disable my-tool@skills-dir` в вашей оболочке с именем `my-tool@skills-dir`, которое `claude plugin init` вывел. В ID `my-tool@skills-dir`, `skills-dir` стоит там, где было бы имя marketplace, потому что плагин загружается из вашей директории skills, а не из marketplace.

266 

267<h4 id="load-a-plugin-for-everyone-in-one-repository">

268 Поделитесь плагином через репозиторий

269</h4>

270 

271`claude plugin init` пишет плагин в вашу личную директорию skills в `~/.claude/skills/`, поэтому он загружается для вас в каждом проекте. Чтобы сделать плагин загружаемым для всех в одном репозитории, создайте тот же макет самостоятельно в `<project>/.claude/skills/<name>/`, включая его `.claude-plugin/plugin.json`. См. [Плагины, общие через репозиторий](/docs/ru/plugins/loading#plugins-shared-through-a-repository) для условий, при которых Claude Code его загружает.

272 

273<h2 id="test-and-debug">

274 Тестирование и отладка

275</h2>

276 

277Когда изменение вашего плагина не отображается, работайте через эти проверки по порядку. Каждая говорит вам, что Claude Code сделал с плагином:

278 

2791. В вашей оболочке запустите `claude plugin validate <path>`. Она проверяет манифест и frontmatter каждого файла skill, agent и command, и выходит `0` на `Validation passed`. Добавьте `--strict` для отказа и на предупреждения. Коды выхода и обработка директорий находятся на [справочнике команд плагина](/docs/ru/plugins/cli-reference#plugin-validate).

2802. В запущенной сессии запустите `/reload-plugins` для применения правок, которые вы сделали на диске. Она выводит одну строку `Reloaded:` с подсчётами. Затем подтвердите, что skill загружен, введя его команду `/plugin-name:skill`, или найдя плагин на вкладке **Installed** в `/plugin`.

2813. В той же сессии запустите `/plugin`. Вкладка **Installed** перечисляет ваш плагин и, в деталях плагина, компоненты, которые Claude Code нашёл. Вкладка **Errors** перечисляет то, что не загрузилось и почему, например путь в вашем манифесте, который не существует.

2824. Вернитесь в вашу оболочку и запустите `claude plugin list`. Она выводит плагины только для сессии и директории skills в их собственных разделах с `Status: ✔ loaded` или ошибкой загрузки. Чтобы включить плагин, который вы разрабатываете, передайте `--plugin-dir` с его путём перед `plugin list`.

283 

284Чтобы проверить MCP сервер, запустите `/mcp` в сессии для просмотра статуса сервера. Когда сервер здоров, `/mcp` перечисляет его как подключённый. Если нет, см. [MCP серверы, которые не запускаются](/docs/ru/plugins/troubleshooting#invalid-mcp-server-config-for-and-mcp-servers-that-dont-start).

285 

286Чтобы проверить hook, запустите событие, которое он соответствует. Например, попросите Claude отредактировать файл для запуска hook `PostToolUse`. Затем прочитайте [журнал отладки](/docs/ru/hooks#debug-hooks), который показывает, какие hooks соответствовали, их коды выхода и их вывод.

287 

288Следующие разделы охватывают сбои, которые вы, вероятно, столкнётесь при разработке, и [страница устранения неполадок](/docs/ru/plugins/troubleshooting#build-a-plugin) имеет полную запись для каждого.

289 

290<h3 id="a-component-path-isn’t-found">

291 Путь компонента не найден

292</h3>

293 

294Вкладка **Errors** в `/plugin` показывает `<component> path not found: <path>`, например `commands path not found`. Путь компонента в вашем манифесте, такой как `commands`, `skills`, `agents` или `hooks`, указывает на ничто. Исправьте путь или создайте директорию, затем запустите `/reload-plugins` в сессии. См. [`commands path not found`](/docs/ru/plugins/troubleshooting#commands-path-not-found).

295 

296<h3 id="plugin-dir-at-a-marketplace-root-doesn’t-load-the-plugins-under-plugins/">

297 `--plugin-dir` в корне marketplace не загружает плагины под `plugins/`

298</h3>

299 

300`--plugin-dir` принимает корневую директорию плагина, ту, которая содержит `.claude-plugin/plugin.json` и директории компонентов, такие как `skills/`. Если вы вместо этого указываете его на корень marketplace, Claude Code не читает `marketplace.json`, поэтому плагин под `plugins/` не загружается, и вы не видите ошибку. Указывайте флаг на папку одного плагина или добавьте marketplace. См. [запись устранения неполадок](/docs/ru/plugins/troubleshooting#plugin-dir-loads-a-plugin-with-no-components).

301 

302<h3 id="the-plugin-loads-but-its-skills-are-missing">

303 Плагин загружается, но его skills отсутствуют

304</h3>

305 

306Директория `skills/` находится внутри `.claude-plugin/`, или запись `skills` в манифесте указывает на файл. Переместите `skills/` в корень плагина, укажите каждую запись `skills` на директорию, которая содержит `SKILL.md`, и запустите `/reload-plugins` в сессии. См. [Плагин загружается, но его skills отсутствуют](/docs/ru/plugins/troubleshooting#plugin-loads-but-its-skills-are-missing).

307 

308<h3 id="the-userconfig-dialog-never-appears">

309 Диалог `userConfig` никогда не появляется

310</h3>

311 

312Диалог для опций [`userConfig`](/docs/ru/plugins/components#user-configuration) вашего плагина является частью установки через `/plugin` в сессии. Загрузка с `--plugin-dir` не показывает его, и `claude plugin install` в оболочке тоже. С загруженным плагином запустите `/plugin configure <plugin-name>` в сессии для открытия его. См. [Диалог `userConfig` никогда не появляется](/docs/ru/plugins/troubleshooting#the-userconfig-dialog-never-appears).

313 

314<h3 id="check-that-the-plugin-changes-claude’s-behavior">

315 Проверьте, что плагин изменяет поведение Claude

316</h3>

317 

318Плагин, который загружается без ошибок, всё ещё может не направить Claude так, как вы намеревались. `claude plugin eval`, который вы запускаете в вашей оболочке, запускает ваши тестовые случаи с плагином и без него и оценивает разницу. См. [Протестируйте плагины с evals](/docs/ru/plugin-evals), начиная с [Создайте свой первый набор eval](/docs/ru/plugin-evals#create-your-first-eval-suite).

319 

320<h2 id="convert-an-existing-claude-setup">

321 Преобразование существующей конфигурации `.claude/`

322</h2>

323 

324Если у вас уже есть skills, agents или hooks под директорией `.claude/` проекта, вы можете переместить их в плагин без переписывания их.

325 

326Запустите команды в этих шагах из корня проекта, который является директорией, которая содержит `.claude/`, потому что пути `cp` относительны к нему.

327 

328<Steps>

329 <Step title="Создайте структуру плагина">

330 Создайте директорию плагина и её папку `.claude-plugin/` рядом с `.claude/`. Вы можете переместить плагин куда угодно впоследствии.

331 

332 ```bash theme={null}

333 mkdir -p my-plugin/.claude-plugin

334 ```

335 

336 Создайте `my-plugin/.claude-plugin/plugin.json`:

337 

338 ```json my-plugin/.claude-plugin/plugin.json theme={null}

339 {

340 "name": "my-plugin",

341 "description": "Migrated from standalone configuration",

342 "version": "1.0.0"

343 }

344 ```

345 </Step>

346 

347 <Step title="Скопируйте ваши существующие файлы">

348 Скопируйте каждую директорию конфигурации, которая у вас есть, в корень плагина, и пропустите команду для любой директории, которой у вас нет.

349 

350 ```bash theme={null}

351 cp -r .claude/commands my-plugin/

352 ```

353 

354 ```bash theme={null}

355 cp -r .claude/agents my-plugin/

356 ```

357 

358 ```bash theme={null}

359 cp -r .claude/skills my-plugin/

360 ```

361 

362 Запустите `ls -a my-plugin` для подтверждения, что каждая директория, которую вы скопировали, появляется рядом с `.claude-plugin`.

363 </Step>

364 

365 <Step title="Переместите ваши hooks">

366 Если у вас есть hooks в `.claude/settings.json` или `.claude/settings.local.json`, создайте директорию hooks:

367 

368 ```bash theme={null}

369 mkdir -p my-plugin/hooks

370 ```

371 

372 Создайте `my-plugin/hooks/hooks.json` и скопируйте объект `hooks` из вашего файла settings в него. Формат тот же.

373 

374 Этот пример показывает форму с одним hook, который запускает linter на каждом файле, который Claude пишет или редактирует. Замените пример на ваш собственный объект `hooks`.

375 

376 ```json my-plugin/hooks/hooks.json theme={null}

377 {

378 "hooks": {

379 "PostToolUse": [

380 {

381 "matcher": "Write|Edit",

382 "hooks": [{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npm run lint:fix" }]

383 }

384 ]

385 }

386 }

387 ```

388 </Step>

389 

390 <Step title="Протестируйте перенесённый плагин">

391 Загрузите плагин на сессию:

392 

393 ```bash theme={null}

394 claude --plugin-dir ./my-plugin

395 ```

396 

397 Проверьте каждый компонент под его новым именем:

398 

399 * **Skills**: запустите `/my-plugin:deploy` для skill, который был `/deploy`.

400 * **Subagents**: попросите Claude использовать agent `my-plugin:reviewer` для agent, который был `reviewer`.

401 * **Hooks**: запустите событие, которое каждый hook соответствует.

402 

403 Если что-то отсутствует, работайте через [Тестирование и отладка](#test-and-debug).

404 </Step>

405</Steps>

406 

407Пока оригиналы всё ещё находятся под `.claude/`, они остаются загруженными рядом с копиями плагина:

408 

409* **Skills и agents**: два набора не конфликтуют, потому что skills и agents плагина несут префикс `my-plugin:`. `/deploy` и `/my-plugin:deploy` оба работают, и Claude видит `reviewer` и `my-plugin:reviewer` как два subagents.

410* **Hooks**: hooks не имеют префикса, поэтому hook, который находится и в вашем файле settings, и в `hooks/hooks.json`, запускается дважды каждый раз, когда его событие срабатывает.

411 

412После того как вы подтвердили, что плагин работает, удалите оригиналы из `.claude/` и удалите объект `hooks` из вашего файла settings.

413 

414<h2 id="next-steps">

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

416</h2>

417 

418* [Компоненты плагина](/docs/ru/plugins/components): добавьте agents, hooks, MCP серверы, LSP серверы и конфигурацию пользователя в ваш плагин

419* [Протестируйте плагины с evals](/docs/ru/plugin-evals): напишите случаи eval и запустите их с `claude plugin eval` для проверки того, насколько надёжно плагин направляет поведение Claude

420* [Опубликуйте плагин](/docs/ru/plugins/publish): версионируйте его, поместите его в marketplace и отправьте на community marketplace

421* [Плагины на claude.ai и в Cowork](https://claude.com/docs/plugins/overview): одна и та же папка плагина устанавливается на claude.ai и в Cowork. Некоторые компоненты только для Claude Code

422* [Справочник манифеста плагина](/docs/ru/plugins/manifest-reference): каждое поле `plugin.json`, правило пути и директория

423* [Skills](/docs/ru/skills): напишите skills, которые предоставляет ваш плагин

424* [Плагины Anthropic в репозитории claude-code](https://github.com/anthropics/claude-code/tree/main/plugins): полные рабочие примеры макета на этой странице, такие как `feature-dev` и `code-review`

plugins/create-marketplace.md +251 −0 created

Details

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# Создание marketplace

6 

7> Создайте plugin marketplace из файла marketplace.json и протестируйте его локально перед размещением.

8 

9Plugin marketplace — это каталог или репозиторий с файлом `.claude-plugin/marketplace.json`, который содержит список ваших плагинов и указывает, откуда их загружать. Вы отправляете каталог на хост git, и любой, у кого есть доступ, регистрирует его в Claude Code одной командой и устанавливает ваши плагины из него.

10 

11Создавайте собственный marketplace, когда вы хотите, чтобы выбранная вами группа, например ваша команда или организация, устанавливала ваши плагины и продолжала получать ваши обновления из каталога, который вы контролируете. Репозиторий может быть приватным, он может содержать столько плагинов, сколько вам нужно, и администратор может [требовать его на каждой машине](/docs/ru/plugins/org).

12 

13<Note>

14 Эти случаи рассмотрены на других страницах:

15 

16 * **Совместное использование одного плагина с несколькими людьми**: отправьте им каталог плагина или его `.zip`. См. [Совместное использование плагина без marketplace](/docs/ru/plugins/publish#share-a-plugin-without-a-marketplace).

17 * **Предложение плагина всем**: отправьте его в community marketplace Anthropic. См. [Отправка в community marketplace](/docs/ru/plugins/publish#submit-to-the-community-marketplace).

18 * **Использование плагина самостоятельно**: загрузите его с помощью `--plugin-dir` или сохраните в каталог skills. См. [Разработка без marketplace](/docs/ru/plugins/create#develop-without-a-marketplace).

19</Note>

20 

21Начните с [Создание marketplace](#create-a-marketplace), чтобы создать его на своей машине и установить плагин из него, затем [добавьте больше записей плагинов](#add-plugin-entries).

22 

23<h2 id="create-a-marketplace">

24 Create a marketplace

25</h2>

26 

27Следующие шаги создают marketplace на вашей машине, добавляют плагин в него, регистрируют его в Claude Code и устанавливают плагин из него. Это весь цикл, и это тот же цикл, через который проходят ваши пользователи после того, как вы разместите marketplace где-то, где они смогут его достичь. Запустите каждую команду в своей оболочке из каталога, где вы хотите создать `my-marketplace/`.

28 

29Вам нужен плагин для списка. Пример использует `my-first-plugin` из [Создание вашего первого плагина](/docs/ru/plugins/create#create-your-first-plugin), плагин с одним skill, который вы запускаете как `/my-first-plugin:hello`; создайте его сначала, если у вас еще нет плагина. Чтобы использовать свой плагин, замените его каталог и его `name` везде, где в шагах говорится `my-first-plugin`. О том, что может содержать каталог плагина, см. [обозреватель каталога плагина](/docs/ru/plugins/components#explore-the-plugin-directory).

30 

31<Steps>

32 <Step title="Настройка каталога marketplace">

33 Marketplace — это каталог с файлом `.claude-plugin/marketplace.json`, плюс плагины, которые он содержит. Создайте каталог marketplace и его папку `.claude-plugin/`, затем скопируйте ваш плагин в `plugins/`:

34 

35 ```bash theme={null}

36 mkdir -p my-marketplace/.claude-plugin my-marketplace/plugins

37 cp -r my-first-plugin my-marketplace/plugins/

38 ```

39 

40 Проверьте, что плагин действителен в его текущем расположении, чтобы любая последующая ошибка была о marketplace, а не о плагине:

41 

42 ```bash theme={null}

43 claude plugin validate ./my-marketplace/plugins/my-first-plugin

44 ```

45 

46 Последняя строка вывода читается `✔ Validation passed`.

47 </Step>

48 

49 <Step title="Создание файла marketplace">

50 Сохраните `marketplace.json` в `my-marketplace/.claude-plugin/marketplace.json`. Файл требует `name`, `owner` и массив `plugins`.

51 

52 Каждый объект в `plugins` — это запись плагина и требует `name` и `source`. Напишите `source` записи как путь от корня marketplace. Корень — это `my-marketplace/`, каталог, который содержит `.claude-plugin/`.

53 

54 ```json my-marketplace/.claude-plugin/marketplace.json theme={null}

55 {

56 "name": "my-marketplace",

57 "description": "Plugins for my team",

58 "owner": {

59 "name": "Your Name"

60 },

61 "plugins": [

62 {

63 "name": "my-first-plugin",

64 "source": "./plugins/my-first-plugin",

65 "description": "A greeting plugin to learn the basics"

66 }

67 ]

68 }

69 ```

70 </Step>

71 

72 <Step title="Валидация marketplace">

73 Запустите `claude plugin validate` на каталоге marketplace, чтобы проверить синтаксис JSON, требуемые поля и каждую запись плагина в его `.claude-plugin/marketplace.json`.

74 

75 ```bash theme={null}

76 claude plugin validate ./my-marketplace

77 ```

78 

79 Для файла, написанного на шаге 2, последняя строка вывода читается `✔ Validation passed`.

80 </Step>

81 

82 <Step title="Добавление marketplace и установка плагина">

83 Зарегистрируйте каталог как marketplace.

84 

85 ```bash theme={null}

86 claude plugin marketplace add ./my-marketplace

87 ```

88 

89 Команда выводит `✔ Successfully added marketplace: my-marketplace (declared in user settings)`, что означает, что marketplace записан в ваш файл пользовательских настроек.

90 

91 Установите плагин. ID установки — это `name` записи, `@` и `name` marketplace.

92 

93 ```bash theme={null}

94 claude plugin install my-first-plugin@my-marketplace

95 ```

96 

97 Команда выводит `✔ Successfully installed plugin: my-first-plugin@my-marketplace (scope: user)`.

98 

99 Внутри сеанса `/plugin marketplace add ./my-marketplace` регистрирует marketplace таким же образом. `/plugin install my-first-plugin@my-marketplace` открывает детали плагина в панели `/plugin`, где вы его устанавливаете. Для этого потока см. [Установка и управление плагинами](/docs/ru/plugins/install).

100 </Step>

101 

102 <Step title="Подтверждение загрузки плагина">

103 Список установленных плагинов.

104 

105 ```bash theme={null}

106 claude plugin list

107 ```

108 

109 Вывод содержит `my-first-plugin@my-marketplace` с `Status: ✔ enabled`.

110 

111 Чтобы увидеть, что загрузил плагин, покажите его детали.

112 

113 ```bash theme={null}

114 claude plugin details my-first-plugin

115 ```

116 

117 Раздел `Component inventory` читается `Skills (1) hello`.

118 

119 Чтобы запустить skill, начните сеанс и введите `/my-first-plugin:hello`. Claude приветствует вас. Команда имеет имя плагина в качестве префикса, как и каждый skill плагина.

120 </Step>

121</Steps>

122 

123<h2 id="add-plugin-entries">

124 Add plugin entries

125</h2>

126 

127Каждый плагин, который вы распространяете, — это один объект в массиве `plugins` файла `marketplace.json`. Чтобы добавить второй плагин, добавьте второй объект. Эти поля охватывают большинство записей:

128 

129* `name`: идентификатор, который люди вводят перед `@` при установке. Он не может содержать пробелы.

130* `source`: откуда Claude Code загружает плагин. Напишите строку относительного пути для плагина внутри каталога marketplace, как в [пошаговом руководстве](#create-a-marketplace), или объект source для плагина вне его. См. [Выбор источника плагина](#choose-a-plugin-source).

131* `description`: строка, которую люди видят рядом с плагином при просмотре вашего marketplace в `/plugin`.

132 

133Для полного списка полей см. [Записи плагинов](/docs/ru/plugins/marketplace-reference#plugin-entries).

134 

135Запись также может устанавливать любое поле [`plugin.json`](/docs/ru/plugins/manifest-reference). Для того, когда поля `plugin.json` записи применяются к плагину, который имеет свой собственный `plugin.json`, см. [Запись и plugin.json](/docs/ru/plugins/marketplace-reference#entry-and-plugin-json).

136 

137<h2 id="rules-for-plugin-entries">

138 Rules for plugin entries

139</h2>

140 

141Большинство неудачных установок из нового marketplace происходят из-за относительного пути, написанного из неправильного каталога, или из-за имени записи, которое отличается от `name` в `plugin.json` плагина.

142 

143<h3 id="write-relative-paths-from-the-marketplace-root">

144 Write relative paths from the marketplace root

145</h3>

146 

147Корень marketplace — это каталог, который содержит `.claude-plugin/`. В [пошаговом руководстве](#create-a-marketplace) это `my-marketplace/`, поэтому `source` записи — это `"./plugins/my-first-plugin"`. Путь не начинается внутри `.claude-plugin/`, поэтому не используйте `..` для выхода из него.

148 

149Путь с `..` и путь к отсутствующему каталогу не работают в разных командах:

150 

151* **Путь с `..`**: `claude plugin validate` сообщает о записи как недействительной. Сообщение начинается с `Path contains "..": ./../plugins/my-first-plugin`.

152* **Путь к каталогу, который не существует**: `claude plugin validate` проходит. `claude plugin install` не работает с `Source path does not exist: <path>`, и `<path>` — это абсолютное расположение, которое проверил Claude Code.

153 

154<h3 id="keep-the-entry-name-and-the-manifest-name-the-same">

155 Keep the entry name and the manifest name the same

156</h3>

157 

158Plugin marketplace имеет запись `name` в `marketplace.json` и `name` в его собственном `plugin.json`, называемый именем манифеста. Каждое имя появляется в разных местах:

159 

160* **Имя записи**: ID установки, `<entry-name>@<marketplace>`. Это то, что люди вводят для установки, что показывает `claude plugin list`, и ключ, который Claude Code записывает под [`enabledPlugins`](/docs/ru/settings-reference#enabledplugins) в их файле настроек.

161* **Имя манифеста**: префикс на skills плагина и имя, которое принимает `claude plugin details`.

162 

163Когда два имени отличаются и кто-то устанавливает по имени манифеста, Claude Code сообщает `Plugin "<manifest-name>" not found in marketplace "<marketplace>"`. Держите два имени одинаковыми. Для получения дополнительной информации о том, как Claude Code использует два имени, см. [Справочник по загрузке плагинов](/docs/ru/plugins/loading#find-where-a-plugin-came-from).

164 

165<h2 id="choose-a-plugin-source">

166 Choose a plugin source

167</h2>

168 

169Каждая запись плагина в `marketplace.json` имеет `source`, который говорит Claude Code, откуда загружать этот плагин. Выберите источник по тому, где хранятся файлы плагина. Таблица содержит источники, которые используют большинство владельцев marketplace.

170 

171| Source | Use it when | Minimal `source` value |

172| :------------ | :----------------------------------------------------------------------- | :---------------------------------------------------------------------------------------- |

173| Relative path | Файлы плагина находятся внутри самого каталога marketplace | `"./plugins/my-first-plugin"` |

174| `github` | Плагин — это собственный репозиторий GitHub | `{ "source": "github", "repo": "your-org/my-first-plugin" }` |

175| `git-subdir` | Плагин — это подкаталог какого-то другого репозитория, например monorepo | `{ "source": "git-subdir", "url": "your-org/monorepo", "path": "tools/my-first-plugin" }` |

176 

177В источнике `git-subdir` `url` принимает URL git или сокращение GitHub `owner/repo`.

178 

179Плагин также может поступать из одного из этих типов источников:

180 

181* `url`: git репозиторий по URL на любом хосте

182* `archive`: zip файл, загруженный через HTTPS

183* `npm`: npm пакет

184* `command`: каталог, созданный путем запуска команды на машине, где установлен плагин

185 

186Для полей каждого типа источника и для привязки источника на основе git к `ref` или `sha`, см. [Источники плагинов](/docs/ru/plugins/marketplace-reference#plugin-sources).

187 

188<h2 id="validate-and-test">

189 Validate and test

190</h2>

191 

192По мере добавления плагинов запускайте `claude plugin validate ./my-marketplace` в своей оболочке после каждого редактирования и устанавливайте из marketplace на своей машине перед тем, как поделиться им. Валидация и установка выявляют разные проблемы.

193 

194<h3 id="problems-that-validation-reports">

195 Problems that validation reports

196</h3>

197 

198`claude plugin validate` читает только файлы внутри каталога marketplace. Он сообщает:

199 

200* Ошибки синтаксиса JSON, как `json: Invalid JSON syntax: <reason>`

201* Отсутствующие требуемые поля, такие как `owner: Invalid input`

202* Имя marketplace с пробелами, символами, отличными от ASCII, или форму, которая имитирует официальный marketplace Anthropic, такой как `claude-official`

203* Относительный `source`, содержащий `..`

204* Неизвестные поля на верхнем уровне или в записи плагина, как предупреждения

205* Проблемы в `plugin.json` каждого плагина с относительным путем, как `plugins[N] plugin.json → <field>: <message>`

206 

207Для каждого сообщения, которое может вывести `validate`, см. [Сообщения валидации](/docs/ru/plugins/marketplace-reference#validation-messages). Для его флагов и кодов выхода см. [`plugin validate`](/docs/ru/plugins/cli-reference#plugin-validate).

208 

209<h3 id="problems-that-surface-when-you-add-or-install">

210 Problems that surface when you add or install

211</h3>

212 

213Проблемы, которые `claude plugin validate` не сообщает, появляются при добавлении marketplace или установке из него:

214 

215* **При добавлении marketplace**: точные [официальные имена marketplace](/docs/ru/plugins/marketplace-reference#reserved-names), такие как `claude-plugins-official`, проходят валидацию. Когда вы добавляете marketplace с одним из этих имен, Claude Code отказывает ему с сообщением, которое начинается с `The name '<name>' is reserved for official Anthropic marketplaces`.

216* **При установке плагина**:

217 * Claude Code сначала загружает источник `github`, `git-subdir` или другой удаленный источник при установке плагина, поэтому неправильный `repo` или `path` появляется тогда.

218 * Относительный `source`, чей каталог не существует, также не работает при установке, с `Source path does not exist: <path>`.

219 

220<h3 id="test-an-edit-to-a-plugin">

221 Test an edit to a plugin

222</h3>

223 

224В [пошаговом руководстве](#create-a-marketplace) вы добавили `my-marketplace` из локального каталога с относительным путем `source`. С этой настройкой Claude Code читает файлы плагина непосредственно из `my-marketplace/plugins/`. Ваши изменения вступают в силу при следующем запуске сеанса или при запуске `/reload-plugins` в сеансе, без изменения `version` плагина.

225 

226Люди, которые устанавливают из вашего размещенного marketplace, получают копию в кэше плагина вместо этого. О том, как они получают новую версию, см. [Держите пользователей в курсе](/docs/ru/plugins/host-marketplace#keep-users-up-to-date).

227 

228<h3 id="remove-the-marketplace-to-start-over">

229 Remove the marketplace to start over

230</h3>

231 

232Чтобы удалить все и начать заново, запустите `claude plugin marketplace remove my-marketplace` в своей оболочке. Команда удаляет marketplace и удаляет его плагины.

233 

234<h2 id="host-your-marketplace">

235 Host your marketplace

236</h2>

237 

238После того как вы сможете установить плагин из marketplace на своей машине, как в [Создание marketplace](#create-a-marketplace), отправьте каталог marketplace на хост git.

239 

240Ваши товарищи по команде затем запускают `claude plugin marketplace add <owner>/<repo>` в своей оболочке для репозитория GitHub или ту же команду с URL репозитория. Затем они устанавливают плагин по имени, как в [пошаговом руководстве](#create-a-marketplace).

241 

242Для доступа к приватному репозиторию, обновлений, версионирования и переименования или удаления записей см. [Размещение и поддержка marketplace](/docs/ru/plugins/host-marketplace).

243 

244<h2 id="next-steps">

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

246</h2>

247 

248* [Размещение и поддержка marketplace](/docs/ru/plugins/host-marketplace): выберите хост, держите пользователей в курсе и безопасно переименовывайте или удаляйте плагины

249* [Справочник Marketplace](/docs/ru/plugins/marketplace-reference): поля `marketplace.json` и типы источников

250* [Управление плагинами для вашей организации](/docs/ru/plugins/org): требуйте ваш marketplace и его плагины на каждой машине

251* [Предложение плагинов по релевантности](/docs/ru/plugins/relevance): настройте Claude Code так, чтобы он предлагал плагин из вашего marketplace, когда сеанс соответствует критериям

plugins/dependencies.md +245 −0 created

Details

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# Зависимости плагинов

6 

7> Объявляйте плагины, от которых зависит ваш плагин, с диапазонами версий, такими как ^1.2, и узнайте, как Claude Code устанавливает, разрешает и удаляет их.

8 

9Зависимость плагина — это другой плагин, на который полагается ваш плагин, например плагин, чей MCP-сервер или skill вы вызываете. Каждая зависимость отслеживает последнюю версию, которую предоставляет её маркетплейс, если вы не объявите ограничение версии — диапазон семантических версий, такой как `^2.0` или `~2.1.0`, который вы протестировали.

10 

11Эта страница предназначена для авторов плагинов, которые объявляют зависимости в `plugin.json`, и для администраторов маркетплейсов, которые помечают релизы.

12 

13<Note>

14 Эти случаи рассмотрены на других страницах:

15 

16 * **Установка плагина, который имеет зависимости**: см. [Управление установленными плагинами](/docs/ru/plugins/install#manage-installed-plugins)

17 * **Чтение ошибки зависимости**: см. [Ошибки зависимостей](/docs/ru/plugins/troubleshooting#dependency-errors)

18 * **Объявление пакетов npm и Bun, которые нужны коду вашего плагина**: см. [Зависимости пакетов Node.js](/docs/ru/plugins/loading#node-js-package-dependencies)

19</Note>

20 

21Чтобы добавить ограничение, начните с раздела [Объявить зависимость с ограничением версии](#declare-a-dependency-with-a-version-constraint). Если вы поддерживаете плагин, от которого зависят другие, [помечайте ваши релизы](#tag-plugin-releases-for-version-resolution), чтобы их ограничения могли разрешиться.

22 

23<h2 id="declare-dependencies">

24 Объявить зависимости

25</h2>

26 

27<span id="decide-whether-to-constrain-dependency-versions" />Без ограничения версии зависимость переходит на каждый новый релиз, который её маркетплейс публикует, в следующий раз, когда пользователи обновляют. Если этот релиз переименует MCP-инструмент, который вызывает ваш плагин, ваш плагин сломается для всех, кто обновляет.

28 

29С ограничением, таким как `~2.1.0`, на зависимость из источника на основе git, пользователи, у которых установлен ваш плагин, продолжают получать патчи `2.1.x` зависимости и никогда не переходят на `2.2`. Чтобы обновить по собственному расписанию, протестируйте более новый релиз, а затем опубликуйте новую версию вашего плагина с более широким ограничением.

30 

31<h3 id="declare-a-dependency-with-a-version-constraint">

32 Объявить зависимость с ограничением версии

33</h3>

34 

35Перечислите зависимости в массиве `dependencies` файла `.claude-plugin/plugin.json` вашего плагина. Следующий манифест объявляет одну зависимость без версии и одну зависимость с ограничением:

36 

37```json .claude-plugin/plugin.json theme={null}

38{

39 "name": "deploy-kit",

40 "version": "3.1.0",

41 "dependencies": [

42 "audit-logger",

43 { "name": "secrets-vault", "version": "~2.1.0" }

44 ]

45}

46```

47 

48Запись может быть строкой: только имя плагина, такое как `"audit-logger"` в этом манифесте, или `"name@marketplace"` для разрешения в другом маркетплейсе. С простой строкой ваш плагин зависит от любой версии, которую предоставляет маркетплейс этого плагина.

49 

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

51 

52| Поле | Описание |

53| :------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

54| `name` | Имя плагина зависимости, как оно появляется в его записи маркетплейса. Claude Code ищет его в том же маркетплейсе, что и объявляющий плагин, если вы не установите `marketplace`. Обязательно. |

55| `version` | [Диапазон семантических версий](https://github.com/npm/node-semver#ranges), такой как `~2.1.0`, `^2.0`, `>=1.4` или `=2.1.0`. Зависимость устанавливается в самую высокую git-метку, которая удовлетворяет этому диапазону, поэтому администратор зависимости должен [помечать релизы](#tag-plugin-releases-for-version-resolution). |

56| `marketplace` | Другой маркетплейс для разрешения `name`. Список разрешений контролирует кросс-маркетплейсные зависимости, описанные в [Зависимость от плагина из другого маркетплейса](#depend-on-a-plugin-from-another-marketplace). |

57 

58Диапазон не совпадает с версиями предварительного выпуска, такими как `2.0.0-beta.1`, если вы не согласитесь с суффиксом предварительного выпуска, таким как `^2.0.0-0`.

59 

60<h3 id="bundle-plugins-for-a-team">

61 Объединить плагины для команды

62</h3>

63 

64Чтобы позволить инженерам установить тщательно отобранный набор плагинов одной командой, опубликуйте плагин, чей манифест содержит `name` и массив `dependencies`. Манифест плагина нужен только `name`, поэтому это действительный плагин, и его установка устанавливает каждую зависимость.

65 

66Например, команда платформы может опубликовать пакеты, специфичные для ролей, во внутреннем маркетплейсе, чтобы инженеры запустили одну команду `claude plugin install` вместо установки каждого плагина отдельно:

67 

68```json .claude-plugin/plugin.json theme={null}

69{

70 "name": "backend-standard",

71 "version": "1.0.0",

72 "description": "Standard plugin set for backend engineers",

73 "dependencies": [

74 "secrets-vault",

75 "deploy-kit",

76 { "name": "db-migrate", "version": "^3.0" },

77 "oncall-runbook"

78 ]

79}

80```

81 

82Чтобы добавить плагин в стандартный набор позже, опубликуйте новую версию `backend-standard` с дополнительной зависимостью. Когда маркетплейс не [автоматически обновляется по умолчанию](/docs/ru/plugins/loading#which-marketplaces-and-plugins-auto-update), инженеры либо включают автоматическое обновление для маркетплейса, либо обновляют вручную:

83 

84* **Включить автоматическое обновление для маркетплейса**: следующее автоматическое обновление переместит пакет на новую версию и установит любые зависимости, которые он добавляет.

85* **Обновить вручную**: запустите `claude plugin update backend-standard` в оболочке, затем `/reload-plugins` в открытой сессии, чтобы установить вновь добавленные зависимости.

86 

87Для шагов со стороны инженера см. [Держите плагины в актуальном состоянии](/docs/ru/plugins/install#keep-plugins-updated).

88 

89Чтобы развернуть пакет для всех в организации, администратор добавляет его в `enabledPlugins` в управляемых параметрах. См. [Предварительная установка и требование плагинов](/docs/ru/plugins/org#pre-install-and-require-plugins).

90 

91<h3 id="depend-on-a-plugin-from-another-marketplace">

92 Зависимость от плагина из другого маркетплейса

93</h3>

94 

95По умолчанию Claude Code не устанавливает зависимость из другого маркетплейса, чем собственный маркетплейс объявляющего плагина, если пользователь уже не установил эту зависимость и не включил её в той же области. Это значение по умолчанию предотвращает молчаливую установку плагинов из источника, который пользователь не проверил, одним маркетплейсом.

96 

97Чтобы разрешить установку, добавьте имя целевого маркетплейса в `allowCrossMarketplaceDependenciesOn` в `marketplace.json` корневого маркетплейса. Корневой маркетплейс — это тот, который размещает плагин, который устанавливает пользователь. Применяется только список разрешений корневого маркетплейса.

98 

99Следующий `marketplace.json` позволяет `deploy-kit` зависеть от плагина из `your-shared-marketplace`:

100 

101```json .claude-plugin/marketplace.json theme={null}

102{

103 "name": "your-marketplace",

104 "owner": { "name": "Your Org" },

105 "allowCrossMarketplaceDependenciesOn": ["your-shared-marketplace"],

106 "plugins": [

107 {

108 "name": "deploy-kit",

109 "source": "./deploy-kit",

110 "dependencies": [

111 { "name": "audit-logger", "marketplace": "your-shared-marketplace" }

112 ]

113 }

114 ]

115}

116```

117 

118Если `allowCrossMarketplaceDependenciesOn` отсутствует или не включает целевой маркетплейс, Claude Code не устанавливает зависимость. Когда зависимость объявлена в записи маркетплейса, сама установка отклоняется с сообщением, которое начинается с `Dependency "audit-logger@your-shared-marketplace" (required by deploy-kit@your-marketplace) is in marketplace "your-shared-marketplace", which is not in the allowlist` и называет поле для установки. Когда она объявлена в `plugin.json`, установка завершается без зависимости, и ваш плагин затем не загружается.

119 

120Проверка списка разрешений не применяется к зависимости, которая уже включена. Если пользователь сначала сам установит `audit-logger` из `your-shared-marketplace` в той же области, `deploy-kit` затем устанавливается без каких-либо изменений в списке разрешений.

121 

122<h3 id="test-a-plugin-and-its-dependency-locally">

123 Протестировать плагин и его зависимость локально

124</h3>

125 

126Если вы разрабатываете плагин и плагин, от которого он зависит, одновременно, запустите Claude Code из вашей оболочки и загрузите оба с помощью [`--plugin-dir`](/docs/ru/plugins/cli-reference#flags-that-load-a-plugin-for-one-session):

127 

128```bash theme={null}

129claude --plugin-dir ./my-dependency --plugin-dir ./my-plugin

130```

131 

132Локальная копия зависимости удовлетворяет записи зависимости вашего плагина, поэтому вам не нужно устанавливать зависимость из её маркетплейса.

133 

134* **Не требуется `version`**: локальный `plugin.json` также не нуждается в `version`, потому что [ограничение версии](#declare-a-dependency-with-a-version-constraint) не проверяется против локальной копии.

135* **Записи, которые называют маркетплейс**: запись, которая называет маркетплейс, также совпадает с локальной копией на Claude Code v2.1.242 или позже.

136 

137Пока вы не установите зависимость из её маркетплейса, ваш плагин перестаёт загружаться всякий раз, когда локальная копия отключена или отсутствует:

138 

139* **Вы отключили локальную копию**: ваш плагин отключается при следующей загрузке плагина с ошибкой, которая заканчивается на `is disabled — enable it or remove the dependency`. Когда ошибка называет зависимость как `<name>@inline`, этот идентификатор относится к копии `--plugin-dir`.

140* **Вы запустили сессию без флага `--plugin-dir` зависимости**: ошибка сообщает, что зависимость не установлена. Передайте флаг снова или установите зависимость из её маркетплейса.

141 

142Когда оба плагина находятся в одной родительской папке, вы можете передать эту папку в `--plugin-dir` один раз. Если папка сама по себе не является плагином, Claude Code загружает каждую дочернюю папку, которая имеет `.claude-plugin/plugin.json`. Требуется Claude Code v2.1.265 или позже.

143 

144<h2 id="tag-plugin-releases-for-version-resolution">

145 Выпустить плагин, от которого зависят другие

146</h2>

147 

148Если вы поддерживаете плагин, от которого другие плагины зависят с ограничением версии, помечайте его релизы, чтобы эти ограничения могли разрешиться. Ограничение разрешается против git-меток в репозитории, который размещает плагин. Помечайте репозиторий, на который указывает [источник плагина](/docs/ru/plugins/marketplace-reference#plugin-sources) плагина в `marketplace.json`:

149 

150* **Источник `github`, `url` или `git-subdir`**: собственный репозиторий плагина, поэтому автор плагина создаёт метки

151* **Относительный путь, такой как `./plugins/secrets-vault`**: репозиторий маркетплейса, поэтому администратор маркетплейса создаёт метки

152 

153<h3 id="create-a-release-tag">

154 Создать метку релиза

155</h3>

156 

157Помечайте каждый релиз как `<plugin-name>--v<version>`, где `<version>` совпадает с полем `version` в `plugin.json` этого коммита. Префикс plugin-name позволяет одному репозиторию маркетплейса размещать несколько плагинов с независимыми историями версий.

158 

159Создайте метку из директории плагина с настроенным удалённым `origin` для получения отправленной метки, используя [`claude plugin tag`](/docs/ru/plugins/cli-reference#plugin-tag):

160 

161```bash theme={null}

162claude plugin tag --push

163```

164 

165Команда строит имя метки из манифеста плагина. Перед созданием метки она запускает эти проверки:

166 

167* Проверяет плагин

168* Проверяет, что `plugin.json` и запись маркетплейса согласны по версии, когда директория плагина находится внутри проверки маркетплейса

169* Требует чистое рабочее дерево под директорией плагина

170* Отказывает, если метка уже существует

171 

172Успешный запуск выводит `Created tag secrets-vault--v2.1.0`. С `--push` он также выводит `Pushed to origin`. Без `--push` он выводит команду `git push` для запуска самостоятельно.

173 

174Передайте `--dry-run`, чтобы увидеть план без создания чего-либо.

175 

176[Справочник `claude plugin tag`](/docs/ru/plugins/cli-reference#plugin-tag) перечисляет оставшиеся флаги.

177 

178Вы также можете запустить `git tag secrets-vault--v2.1.0` напрямую, если вы сохраняете `version` в `plugin.json` и в записи маркетплейса в синхронизации самостоятельно.

179 

180<h3 id="constrain-a-dependency-that-has-a-non-git-source">

181 Ограничить зависимость, которая имеет источник, не основанный на git

182</h3>

183 

184Разрешение на основе меток применяется только к источникам на основе git. Для зависимости с источником `npm`, `archive` или `command` [plugin source](/docs/ru/plugins/marketplace-reference#plugin-sources), ограничение не контролирует, какая версия будет получена. Оно всё ещё проверяется при загрузке плагина, и зависимый плагин отключается, если установленная версия не удовлетворяет ему.

185 

186Для источников `npm`, `archive` и `command`, проверяемая версия — это `version` в `plugin.json` зависимости. Установите его там перед ограничением этой зависимости, потому что `plugin.json`, который не устанавливает версию, не удовлетворяет никакому ограничению.

187 

188Claude Code никогда не устанавливает зависимость с источником `command` самостоятельно, поэтому пользователи [устанавливают её первыми](/docs/ru/plugins/marketplace-reference#command-plugin-source). Он также никогда не запускает [`headersHelper`](/docs/ru/plugins/host-marketplace#authenticate-archive-downloads) зависимости, поэтому пользователи также устанавливают зависимость, чья запись маркетплейса устанавливает её перед установкой вашего плагина.

189 

190Помимо `claude plugin install`, эти операции также устанавливают любую отсутствующую объявленную зависимость, и ограничения `command` и `headersHelper` применяются к ним также:

191 

192* `/reload-plugins`

193* Автоматическое обновление маркетплейса зависимого плагина

194* Повторный запуск `claude plugin install` на зависимом плагине

195* `claude plugin marketplace add`

196 

197<h2 id="how-dependencies-behave-for-your-users">

198 Как зависимости ведут себя для ваших пользователей

199</h2>

200 

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

202 

203<h3 id="how-a-constraint-resolves-against-tags">

204 Как ограничение разрешается против меток

205</h3>

206 

207Когда пользователь устанавливает плагин, который объявляет `{ "name": "secrets-vault", "version": "~2.1.0" }`, зависимость устанавливается из самой высокой метки `secrets-vault--v`, которая удовлетворяет `~2.1.0` в репозитории, который размещает `secrets-vault`. Когда никакая метка не удовлетворяет диапазону, установка либо не удаётся, либо использует текущую копию маркетплейса:

208 

209* **Плагин с собственным репозиторием**: установка не удаётся с сообщением, содержащим `Dependency "secrets-vault@your-marketplace" has no git tag satisfying`.

210* **Плагин, на который ссылается относительный путь**: установка использует текущую копию маркетплейса вместо этого, и ограничение проверяется при загрузке плагина. Если эта копия находится вне диапазона, зависимый плагин остаётся отключённым и `claude plugin list` показывает `Requires "secrets-vault@your-marketplace" ~2.1.0, installed 3.0.0`.

211 

212Для плагина, на который маркетплейс ссылается относительным путём, маркетплейс, который вы добавили как путь локальной папки, также разрешает ограничения против git-меток этой папки, когда папка является git-репозиторием. Это требует Claude Code v2.1.196 или позже. Локальная папка, которая не является git-репозиторием, не имеет меток, поэтому Claude Code устанавливает зависимость из текущего содержимого папки вместо этого.

213 

214<h3 id="confirm-the-resolved-version">

215 Подтвердить разрешённую версию

216</h3>

217 

218Чтобы подтвердить, какую версию разрешило ограничение, запустите `claude plugin list` в вашей оболочке. Зависимость, разрешённая меткой, показывает свою версию с суффиксом коммита из 12 символов, такой как `2.1.0-8713c5b11005`.

219 

220Проверки ограничений используют версию метки, а не `version` в `plugin.json`, даже если `plugin.json` в этом коммите отстаёт.

221 

222Если вы принудительно переместите метку на другой коммит, следующая установка получит содержимое этого коммита вместо повторного использования устаревшей кэшированной копии. См. [Версии и обновления](/docs/ru/plugins/loading#versions-and-updates) для того, как версия плагина становится его ключом кэша.

223 

224<h3 id="combine-constraints-from-several-plugins">

225 Объединить ограничения из нескольких плагинов

226</h3>

227 

228Когда несколько установленных плагинов ограничивают одну и ту же зависимость, зависимость разрешается в самую высокую версию, которая удовлетворяет всем их диапазонам. Общие комбинации разрешаются так:

229 

230| Плагин A требует | Плагин B требует | Результат |

231| :--------------- | :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------- |

232| `^2.0` | `>=2.1` | Одна установка в самую высокую метку `2.x` на или выше `2.1.0`. Оба плагина загружаются. |

233| `~2.1` | `~3.0` | Установка плагина B не удаётся с сообщением `has conflicting version requirements`. Плагин A и зависимость остаются такими, какими они были. |

234| `=2.1.0` | нет | Зависимость остаётся в `2.1.0`. Автоматическое обновление пропускает более новые версии, пока плагин A установлен. |

235 

236Автоматическое обновление получает ограниченную зависимость в самую высокую git-метку, которая удовлетворяет диапазону каждого установленного плагина, а не в последнюю версию маркетплейса. Если диапазоны установленных плагинов не перекрываются, автоматическое обновление оставляет эту зависимость в её текущей версии, и вкладка **Errors** `/plugin` показывает запись, называющую ограничивающий плагин. Если они перекрываются, но никакая метка не попадает в диапазон, автоматическое обновление получает текущую копию маркетплейса и пропускает обновление, когда `version` этой копии выходит за пределы диапазона любого установленного плагина.

237 

238Когда пользователь удаляет последний плагин, который ограничивает зависимость, зависимость больше не ограничивается диапазоном версий и возобновляет отслеживание записи маркетплейса при следующем обновлении.

239 

240<h2 id="see-also">

241 См. также

242</h2>

243 

244* [`claude plugin prune`](/docs/ru/plugins/cli-reference#plugin-prune): удалить автоматически установленные зависимости, которые больше не нужны никакому плагину

245* [Размещение маркетплейса](/docs/ru/plugins/host-marketplace): каналы выпуска и рекомендация других плагинов

plugins/host-marketplace.md +458 −0 created

Details

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# Размещение и поддержка маркетплейса

6 

7> Опубликуйте маркетплейс плагинов, где пользователи смогут его найти, предоставьте доступ к приватному маркетплейсу и выпускайте обновления и переименования без нарушения установок.

8 

9Размещение маркетплейса означает размещение вашего каталога `marketplace.json` в месте, где другие люди смогут добавить его с помощью `/plugin marketplace add`, установить его плагины и продолжать получать ваши изменения после их публикации.

10 

11Эта страница предназначена для человека, который управляет маркетплейсом.

12 

13<Note>

14 Эти случаи рассматриваются на других страницах:

15 

16 * **Вы еще не написали файл каталога**: начните с [Создание маркетплейса](/docs/ru/plugins/create-marketplace)

17 * **Вы администратор, требующий, ограничивающий или предварительно устанавливающий маркетплейсы на машинах вашей организации**: прочитайте [Управление плагинами для вашей организации](/docs/ru/plugins/org)

18</Note>

19 

20Начните с [Размещение вашего маркетплейса](#host-your-marketplace), чтобы выбрать хост и команду, которую запустят ваши пользователи. Прочитайте [Держите пользователей в курсе](#keep-users-up-to-date) перед вашим первым выпуском. Прочитайте [Переименование или удаление плагина](#rename-or-remove-a-plugin) перед изменением `name` плагина.

21 

22<h2 id="host-your-marketplace">

23 Host your marketplace

24</h2>

25 

26Вы можете разместить marketplace на GitHub, на другом git-хосте, как размещенный URL `marketplace.json` или в каталоге на общей файловой системе. Отправьте пользователям команду добавления для вашего хоста и скажите им, что им нужно на их машине:

27 

28| Хост | Пользователи запускают в сеансе Claude Code | Что нужно пользователям |

29| :-------------------------------------------------------------- | :--------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------- |

30| GitHub | `/plugin marketplace add your-org/your-marketplace` | `git`, и для приватного репозитория доступ, описанный в [Grant access to a private marketplace](#grant-access-to-a-private-marketplace) |

31| GitLab, Bitbucket, GitHub Enterprise Server или другой git-хост | `/plugin marketplace add https://gitlab.example.com/team/plugins.git` | `git` и доступ к хосту с их машины. Отправьте полный URL, потому что сокращение `owner/repo` всегда означает github.com |

32| Размещенный URL `marketplace.json` | `/plugin marketplace add https://plugins.example.com/marketplace.json` | HTTPS доступ к URL. Пользователям не нужен `git` для самого каталога |

33| Каталог на общей файловой системе | `/plugin marketplace add /Volumes/shared/claude-plugins` | Доступ на чтение к пути |

34 

35Чтобы закрепить ветку или тег marketplace GitHub или git-URL, скажите пользователям добавить `#<ref>`, как в `your-org/your-marketplace#stable`. [Справочник команд плагинов](/docs/ru/plugins/cli-reference#plugin-marketplace-add) перечисляет все формы, которые команда принимает.

36 

37Успешное добавление выводит `Successfully added marketplace: your-marketplace`. Claude Code берет это имя из поля `name` в вашем `marketplace.json`, а не из имени репозитория.

38 

39Затем пользователи устанавливают плагин по `name` его записи и `name` marketplace, как в `/plugin install code-formatter@your-marketplace`.

40 

41<h3 id="register-the-marketplace-for-everyone-in-a-repository">

42 Register the marketplace for everyone in a repository

43</h3>

44 

45Чтобы поделиться marketplace со всеми, кто работает в одном репозитории, запустите `claude plugin marketplace add your-org/your-marketplace --scope project` там один раз из вашей оболочки и зафиксируйте `.claude/settings.json`, который он создает. Claude Code затем регистрирует marketplace для каждого товарища по команде, который [доверяет папке](/docs/ru/plugins/org#require-plugins-per-repository).

46 

47<h3 id="avoid-relative-path-entries-in-a-url-hosted-marketplace">

48 Avoid relative-path entries in a URL-hosted marketplace

49</h3>

50 

51Когда пользователи добавляют ваш marketplace как простой URL `marketplace.json`, Claude Code загружает только этот файл. Запись в вашем массиве `plugins`, чей `source` является относительным путем, таким как `./plugins/formatter`, затем не работает при установке с [`its marketplace entry path does not stay inside the marketplace directory`](/docs/ru/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces). Дайте каждой записи источник, который можно получить самостоятельно, такой как репозиторий `github` или URL `archive`, или разместите marketplace в git-репозитории, чтобы Claude Code клонировал все дерево.

52 

53<h3 id="edit-plugins-in-place-on-a-shared-directory">

54 Edit plugins in place on a shared directory

55</h3>

56 

57Когда пользователи добавляют ваш marketplace из общего каталога, Claude Code читает плагины с источниками относительных путей непосредственно из этого каталога вместо их копирования. Пользователи видят ваши правки при следующем запуске сеанса или запуске `/reload-plugins`, без шага обновления или увеличения версии.

58 

59<h3 id="keep-plugin-files-out-of-git-lfs">

60 Keep plugin files out of Git LFS

61</h3>

62 

63Держите файлы, которые нужны вашим плагинам, вне [Git LFS](https://git-lfs.com). Когда пользователи добавляют marketplace, размещенный в git-репозитории, или устанавливают основанный на git плагин, который он перечисляет, Claude Code клонирует этот marketplace или репозиторий плагина на их машину. Клон никогда не загружает содержимое LFS, поэтому отслеживаемые LFS файлы приходят как файлы указателей.

64 

65<h3 id="share-files-within-a-marketplace-with-symlinks">

66 Share files within a marketplace with symlinks

67</h3>

68 

69Чтобы поделиться файлами между вашим плагином и другими частями того же marketplace, создайте символические ссылки внутри каталога вашего плагина. Когда Claude Code копирует плагин в его кэш, он обрабатывает каждую символическую ссылку по тому, где разрешается цель:

70 

71* **В собственном каталоге плагина**: символическая ссылка сохраняется как относительная символическая ссылка в кэше, поэтому она продолжает разрешаться скопированной цели во время выполнения.

72* **В другом месте в том же marketplace**: символическая ссылка разыменовывается. Содержимое цели копируется в кэш на его место. Это позволяет каталогу `skills/` мета-плагина ссылаться на навыки, определенные другими плагинами в marketplace.

73* **Вне marketplace**: символическая ссылка пропускается в целях безопасности.

74 

75Для плагинов, установленных из локального пути, или из [`command` источника](/docs/ru/plugins/marketplace-reference#command-plugin-source), чей `mode` является стандартным `copy`, Claude Code сохраняет только символические ссылки, которые разрешаются в собственном каталоге плагина, и пропускает все остальные.

76 

77Следующая команда создает ссылку из плагина marketplace на общий навык, определенный соседним плагином. На Windows используйте `mklink /D` из повышенной командной строки или включите режим разработчика:

78 

79```bash theme={null}

80ln -s ../../shared-plugin/skills/foo ./skills/foo

81```

82 

83<h2 id="distribute-through-organization-settings">

84 Distribute through organization settings

85</h2>

86 

87На плане Team или Enterprise вы также можете распространять marketplace через [**Organization settings > Plugins & skills**](https://claude.ai/admin-settings/skills?tab=inventory) на claude.ai вместо размещения его где-то, где пользователи добавляют его сами. Organization sync читает репозиторий через подключение GitHub или GitLab вашей организации на claude.ai, поэтому учетные данные git ваших пользователей не задействованы.

88 

89Organization sync более строг к репозиторию, чем `/plugin marketplace add`:

90 

91* **Репозиторий Marketplace**: на github.com и gitlab.com он должен быть приватным или внутренним

92* **Источники плагинов**: каждый источник плагина должен быть типа `github`, `url` или `git-subdir`, или [относительный путь](/docs/ru/plugins/marketplace-reference#relative-path-plugin-source), который начинается с `./`

93* **Каталог `bin/` верхнего уровня**: claude.ai отклоняет плагин, который его имеет, и синхронизирует остальную часть marketplace. Сообщение об ошибке начинается с `Plugin contains a top-level bin/ directory`. Держите исполняемые файлы в другом каталоге, таком как `scripts/`, и ссылайтесь на них как `${CLAUDE_PLUGIN_ROOT}/scripts/<name>` из ваших hooks или конфигов MCP сервера

94 

95Смотрите [Manage plugins for your organization](https://support.claude.com/en/articles/13837433) для рабочего процесса администратора.

96 

97<h2 id="grant-access-to-a-private-marketplace">

98 Grant access to a private marketplace

99</h2>

100 

101Когда пользователь добавляет, устанавливает из или обновляет ваш marketplace, Claude Code запускает `git` на их машине с отключенными интерактивными подсказками и полагается на любые учетные данные, которые эта машина уже держит. Claude Code не имеет собственного git токена, и `marketplace.json` не имеет поля для него.

102 

103Вы выбираете, работает ли клон по SSH или HTTPS по форме команды добавления, которую вы отправляете пользователям:

104 

105* **GitHub `owner/repo`**: Claude Code проверяет `ssh -T git@github.com` и клонирует по SSH, когда проверка успешна. Если проверка не удается, или сам SSH клон не удается, он клонирует по HTTPS. Пользователи на машинах без ключа GitHub SSH могут установить `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`, чтобы пропустить проверку и клонировать по HTTPS.

106* **`git@host:path.git`**: SSH.

107* **`https://example.com/repo.git`**: HTTPS.

108 

109Скажите пользователям, что нужно каждому протоколу на их машине:

110 

111* **SSH**: ключ должен работать без подсказки парольной фразы, например потому что он загружен в `ssh-agent`. Хост должен уже быть в `known_hosts`.

112* **HTTPS**: Claude Code оставляет помощника учетных данных git пользователя включенным, но запрещает ему подсказывать. Учетные данные, которые помощник уже хранит, работают; те, которые ему пришлось бы просить, не работают. На GitHub запустите `gh auth login`, затем `gh auth setup-git`, чтобы сохранить один.

113 

114Для хоста GitHub Enterprise Server пользователям нужен доступ git к этому хосту с их машины. Смотрите [Plugin marketplaces on GHES](/docs/ru/github-enterprise-server#plugin-marketplaces-on-ghes) для того, что каждой поверхности Claude Code нужно, чтобы достичь marketplace, размещенного на GHES.

115 

116Если вы распространяете через **Organization settings > Plugins & skills** на claude.ai вместо этого, учетные данные git ваших пользователей не задействованы. Смотрите [Distribute through organization settings](#distribute-through-organization-settings) для того, какие источники плагинов могут быть приватными там.

117 

118<h3 id="serve-users-who-have-no-git-host-account">

119 Serve users who have no git-host account

120</h3>

121 

122Пользователи без учетной записи git-хоста могут добавить marketplace, который вы обслуживаете, как URL `marketplace.json` или из общего каталога, но они могут устанавливать только плагины, чьи источники записей они также могут достичь. Запись, которая указывает на приватный репозиторий `github`, все еще не работает при установке для них, потому что Claude Code получает его с тем же неинтерактивным `git`, который он использует для marketplace, размещенного на git.

123 

124Эти источники записей не нуждаются в учетной записи git:

125 

126* **`archive`**: zip, загруженный по HTTPS. Пользователям не нужны ни `git`, ни учетная запись, только сетевой доступ к URL. Требует Claude Code v2.1.224 или позже. Закрепите каждый архив с `sha256`, чтобы Claude Code отказал в измененной загрузке. Чтобы отправить учетные данные с загрузкой, смотрите [Authenticate archive downloads](#authenticate-archive-downloads).

127* **Публичный git репозиторий**: Claude Code клонирует публичный источник `url` или `git-subdir` по HTTPS без учетных данных, когда запись дает URL `https://`. Для источника `github` или источника `git-subdir`, написанного как `owner/repo`, пользователи без набора ключа GitHub SSH устанавливают `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`.

128 

129Для команды в одной сети marketplace `directory` на общей файловой системе также работает без учетных записей git. Пользователям нужен только доступ на чтение к пути.

130 

131<h3 id="what-background-auto-update-does-with-credentials">

132 What background auto-update does with credentials

133</h3>

134 

135Background auto-update — это автоматическое обновление Claude Code для marketplaces и установленных плагинов после запуска сеанса. Оно отключено для вашего marketplace, пока пользователь или администратор его не включит, как описано в [Keep users up to date](#keep-users-up-to-date).

136 

137Когда оно включено для приватного marketplace, фоновая проверка новых коммитов использует помощников учетных данных git, настроенных пользователем, и никогда не подсказывает. Каждый вид удаленного и помощника дает другой результат:

138 

139* **SSH удаленные**: ключ, загруженный в `ssh-agent`, аутентифицирует проверку.

140* **HTTPS удаленные с сохраненными учетными данными**: помощник, который может предоставить сохраненные учетные данные без подсказки, аутентифицирует проверку. Git Credential Manager, помощник macOS Keychain и `git-credential-store` работают таким образом, как только они держат учетные данные для хоста.

141* **HTTPS удаленные с помощником, который нужно подсказать**: помощник не может ответить в фоне. Обновление не удается тихо и существующий checkout остается на месте, поэтому плагины пользователя продолжают работать из последнего синхронизированного состояния.

142 

143После проверки Claude Code делает одно из следующего:

144 

145* **Checkout актуален**: Claude Code оставляет его как есть.

146* **Проверка находит новые коммиты, или не удается, потому что не может достичь или аутентифицировать удаленное**: Claude Code клонирует marketplace снова и заменяет существующий checkout новым клоном. Если этот клон не удается, существующий checkout остается на месте. Повторный клон может [истечь по времени на больших репозиториях](/docs/ru/plugins/troubleshooting#git-clone-timed-out-after-120s).

147 

148Чтобы держать приватный marketplace актуальным, пользователь может сделать одно из следующего:

149 

150* **Сохранить учетные данные**: сначала войдите в помощника учетных данных, чтобы он держал учетные данные для хоста. Для GitHub запустите `gh auth login`, затем `gh auth setup-git`.

151* **Держать checkout при сбое**: если пользователь установит `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1`, Claude Code держит существующий checkout без попытки повторного клона, когда фоновая проверка не может достичь или аутентифицировать удаленное. Плагины продолжают работать из последнего синхронизированного состояния.

152 

153Если пользователь установит `GITHUB_TOKEN` или другой токен поставщика в окружении, это само по себе не аутентифицирует фоновую проверку. Токен вступает в силу через помощника учетных данных, такого как помощник `gh` CLI, который читает `GH_TOKEN` и `GITHUB_TOKEN`.

154 

155<h2 id="roll-out-to-a-whole-company">

156 Roll out to a whole company

157</h2>

158 

159Развертывание плагина в компании включает вас как владельца marketplace, администратора, который контролирует управляемые параметры, и каждого человека, который использует Claude Code. Вы можете запустить развертывание без администратора, в этом случае каждый человек добавляет marketplace и устанавливает плагин сам.

160 

161| Кто | Что они делают | Где это рассматривается |

162| :----------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------ |

163| Вы, владелец marketplace | Держите каталог в репозитории, который может читать только компания, отправьте команду добавления для вашего хоста и скажите, что каждому человеку нужно на его машине | [Host your marketplace](#host-your-marketplace) и [Grant access to a private marketplace](#grant-access-to-a-private-marketplace) |

164| Администратор | Регистрирует marketplace и включает его плагины для всех с `extraKnownMarketplaces` и `enabledPlugins` в управляемых параметрах, и устанавливает `autoUpdate` там | [Require a marketplace and its plugins](/docs/ru/plugins/org#require-a-marketplace-and-its-plugins) и [Set update policy](/docs/ru/plugins/org#set-update-policy) |

165| Каждый человек | Нужен доступ на чтение к приватному git репозиторию, с учетными данными уже сохраненными на их машине. Без администратора они также запускают команды добавления и установки | [Add a private marketplace](/docs/ru/plugins/install#add-a-private-marketplace) |

166 

167Для людей, у которых нет учетной записи git-хоста, эти разделы каждый охватывают один способ их достичь:

168 

169* **Источники записей, которые не нуждаются в учетной записи git**: [Serve users who have no git-host account](#serve-users-who-have-no-git-host-account)

170* **Предварительно заполненный каталог плагинов**: [Seed containers and CI](/docs/ru/plugins/org#seed-containers-and-ci), который также служит пользователям, у которых нет учетной записи git-хоста

171* **claude.ai organization settings**: [Distribute through organization settings](#distribute-through-organization-settings), где учетные данные git ваших пользователей не задействованы

172 

173<h2 id="keep-users-up-to-date">

174 Keep users up to date

175</h2>

176 

177Ваши изменения достигают пользователей через background auto-update, как только оно включено для вашего marketplace, или когда пользователи обновляют плагин сами. В обоих случаях пользователь получает новую копию плагина только когда его вычисленная версия изменяется, как описано в [Release a new version](#release-a-new-version).

178 

179<h3 id="turn-on-auto-update">

180 Turn on auto-update

181</h3>

182 

183Background auto-update отключен для вашего marketplace по умолчанию, и `marketplace.json` не имеет поля для его включения. Пользователь или администратор включает его:

184 

185* **Скажите пользователям включить его**: каждый пользователь идет в **Marketplaces** в `/plugin`, выбирает ваш marketplace и выбирает **Enable auto-update**.

186* **Попросите администратора установить его**: если администратор установит `"autoUpdate": true` на записи `extraKnownMarketplaces` вашего marketplace в управляемых параметрах, оно включено для всех, кто получает эти параметры. Смотрите [Set update policy](/docs/ru/plugins/org#set-update-policy).

187 

188Без auto-update пользователи получают ваши изменения, когда они запускают `/plugin marketplace update <name>` в сеансе или `claude plugin update <plugin>@<name>` в оболочке.

189 

190Для того, что пользователи видят, когда обновление их достигает, смотрите [When auto-update runs](/docs/ru/plugins/loading#when-auto-update-runs).

191 

192<h3 id="release-a-new-version">

193 Release a new version

194</h3>

195 

196Чтобы выпустить новую версию пользователям, измените `version` плагина. Пользователи получают новую копию только когда вычисленная версия плагина отличается от той, которая у них есть. Эта версия поступает из `plugin.json` сначала, затем из записи marketplace, согласно [Versions and updates](/docs/ru/plugins/loading#versions-and-updates).

197 

198Плагин, который пользователи [загружают на месте](/docs/ru/plugins/loading#find-plugins-on-disk) из marketplace, который они добавили как локальный каталог, не контролируется `version`. Он загружает ваши текущие файлы при каждом запуске сеанса, независимо от того, что говорит его строка версии.

199 

200Для каждой установки, кроме загрузки на месте или из источника `command`, либо увеличьте `version` при каждом выпуске, либо опустите его:

201 

202* **Увеличьте `version` при каждом выпуске**: пользователи остаются на своей кэшированной копии, пока строка не изменится. Если вы установите `"version": "1.0.0"` и отправите новые коммиты без изменения его, пользователи их не получат.

203* **Опустите `version`**: пользователи отслеживают ваши коммиты вместо этого. Оставьте `version` вне обоих `plugin.json` и записи marketplace.

204 

205Не устанавливайте `version` в обоих `plugin.json` и записи marketplace. Если вы это сделаете, Claude Code использует значение `plugin.json` без предупреждения, и `claude plugin validate` сообщает о несоответствии как `Entry declares version "<a>" but <path>/plugin.json says "<b>"`.

206 

207<h3 id="hold-users-on-one-version">

208 Hold users on one version

209</h3>

210 

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

212 

213* **`ref` и `sha` на записи плагина**: `ref` называет ветку или тег и `sha` называет коммит для источника `github`, `url` или `git-subdir`. Смотрите [Plugin sources](/docs/ru/plugins/marketplace-reference#plugin-sources).

214* **`#<ref>` на команде добавления**: пользователи, которые добавляют `your-org/your-marketplace#stable`, получают эту ветку или тег каталога. Для двух линий выпуска одновременно, смотрите [Run release channels](#run-release-channels).

215* **`<plugin>--v<version>` теги**: диапазон версий зависимости разрешается против этих тегов. Смотрите [Release a plugin that others depend on](/docs/ru/plugins/dependencies#tag-plugin-releases-for-version-resolution).

216 

217[Release a new version](#release-a-new-version) говорит, когда измененная запись достигает пользователей.

218 

219<h3 id="change-the-command-of-a-command-source">

220 Change the command of a command source

221</h3>

222 

223Если вы измените `command` источника [`command`](/docs/ru/plugins/marketplace-reference#command-plugin-source), или переключите его `mode`, каждый пользователь должен принять новую команду перед тем, как Claude Code ее запустит. Claude Code запускает только точную команду, которую пользователь принял, когда установил или последний раз обновил плагин.

224 

225После того как копия marketplace пользователя подхватит изменение, этот пользователь видит следующее:

226 

227* **Нет больше фоновых запусков**: [однократный запуск в сеансе](/docs/ru/plugins/loading#when-a-command-source-re-runs) команды останавливается для этого пользователя, поэтому новый вывод инструмента не достигает их.

228* **Запись на вкладке `/plugin` Errors**: запись показывает новую команду и команду `claude plugin update` для запуска.

229 

230Скажите пользователям запустить команду `claude plugin update`, которую показывает эта запись, в терминале. Claude Code показывает им новую команду и просит ее принять.

231 

232<h2 id="run-release-channels">

233 Run release channels

234</h2>

235 

236Чтобы предложить стабильные и ранние дорожки доступа, разместите два marketplace, чьи записи указывают на разные refs одного плагина, и позвольте каждому пользователю добавить тот, который он хочет. Claude Code не имеет концепции канала выпуска, и один marketplace служит одной версии каждого плагина одновременно.

237 

238Дайте двум файлам `marketplace.json` разные значения `name`. Claude Code идентифицирует marketplace по его `name`, поэтому пользователь не может иметь два marketplace с одинаковым именем, зарегистрированные одновременно.

239 

240С этими двумя каталогами пользователи, которые добавляют `stable-tools`, устанавливают `code-formatter` из ветки `stable`, и пользователи, которые добавляют `latest-tools`, устанавливают его из `latest`:

241 

242```json theme={null}

243{

244 "name": "stable-tools",

245 "owner": { "name": "Your Org" },

246 "plugins": [

247 { "name": "code-formatter", "source": { "source": "github", "repo": "your-org/code-formatter", "ref": "stable" } }

248 ]

249}

250```

251 

252```json theme={null}

253{

254 "name": "latest-tools",

255 "owner": { "name": "Your Org" },

256 "plugins": [

257 { "name": "code-formatter", "source": { "source": "github", "repo": "your-org/code-formatter", "ref": "latest" } }

258 ]

259}

260```

261 

262Дайте двум refs разные версии `plugin.json`, или опустите `version`, чтобы SHA коммита их различал. Обновления обнаруживаются путем сравнения версий, поэтому ref, который движется без изменения версии, оставляет пользователей на кэшированной копии.

263 

264Чтобы назначить каналы группам пользователей вместо того, чтобы позволить пользователям выбирать, администратор дает каждой группе соответствующую запись `extraKnownMarketplaces`, как описано в [Set update policy](/docs/ru/plugins/org#set-update-policy).

265 

266<h2 id="rename-or-remove-a-plugin">

267 Переименование или удаление плагина

268</h2>

269 

270`name` плагина — это его идентификатор. Пользователи ссылаются на него в ключах настроек `enabledPlugins` и `pluginConfigs` и в `/plugin install`, поэтому его изменение нарушает каждую существующую установку.

271 

272Чтобы изменить метку, которую пользователи видят в `/plugin`, без нарушения чего-либо, установите `displayName` в `plugin.json` и оставьте `name` без изменений.

273 

274<h3 id="migrate-users-with-a-renames-map">

275 Миграция пользователей с помощью карты переименований

276</h3>

277 

278Когда вы должны изменить `name`, добавьте карту верхнего уровня `renames` в `marketplace.json`, чтобы Claude Code перенёс существующих пользователей вместо того, чтобы сообщать об ошибке [`Plugin "<name>" not found in marketplace`](/docs/ru/plugins/troubleshooting#plugin-not-found-in-marketplace). Сделайте то же самое, когда вы удаляете запись из `plugins`. Автоматическая миграция требует Claude Code v2.1.193 или позже.

279 

280Сопоставьте каждое прежнее имя с его текущим именем или с `null`, когда плагин удалён. Этот marketplace переименовывает `formatter` в `code-formatter` и записывает, что `legacy-linter` был удалён:

281 

282```json theme={null}

283{

284 "name": "your-marketplace",

285 "owner": { "name": "Your Org" },

286 "plugins": [

287 { "name": "code-formatter", "source": "./plugins/code-formatter" }

288 ],

289 "renames": {

290 "formatter": "code-formatter",

291 "legacy-linter": null

292 }

293}

294```

295 

296После того как вы отправите изменения, пользователь, у которого всё ещё включено старое имя, увидит один из этих результатов:

297 

298* **Переименованная запись**: плагин загружается под своим новым именем. `claude plugin list` и детали плагина в `/plugin` показывают `Renamed to "code-formatter" in the "your-marketplace" marketplace` один раз, и Claude Code переписывает старый ключ на новый в `enabledPlugins` и `pluginConfigs` в пользовательских, проектных и локальных областях настроек.

299* **Запись `null`**: старый ключ удаляется из этих областей и пользователь видит `Removed from the "your-marketplace" marketplace`.

300* **Включено в управляемые настройки**: плагин всё ещё загружается под своим новым именем, но Claude Code не может переписать управляемые настройки, поэтому уведомление повторяется до тех пор, пока администратор не обновит `enabledPlugins` там.

301 

302Для marketplace, который пользователи добавили из репозитория git или URL, переименованный плагин сообщает об ошибке [`Plugin "<name>" not cached at <path>`](/docs/ru/plugins/troubleshooting#plugin-not-cached-at) до тех пор, пока пользователь не запустит `/plugin install code-formatter@your-marketplace` один раз в сеансе.

303 

304Рассматривайте `renames` как историю только для добавления. Сохраняйте старые записи после того, как все перейдут. Когда вы переименуете снова, добавьте вторую запись вместо редактирования первой, потому что Claude Code следует цепочке от самого старого имени.

305 

306В вашей оболочке запустите `claude plugin validate .` после редактирования карты. Она отклоняет цепочку, которая циклится или заканчивается где-либо, кроме `null` или имени в `plugins`, с ошибкой `renames.<name>: chain does not resolve`.

307 

308<h3 id="uninstall-removed-plugins-from-users’-machines">

309 Удаление удалённых плагинов с машин пользователей

310</h3>

311 

312Чтобы удалить удалённый плагин с машин пользователей вместо того, чтобы оставить копию, установите `"forceRemoveDeletedPlugins": true` на верхнем уровне `marketplace.json`. Без этого поля удалённый плагин остаётся установленным и сообщает об ошибке `Plugin "<name>" not found in marketplace` при загрузке сеанса. С ним Claude Code выполняет следующее при каждом запуске сеанса:

313 

3141. Сравнивает то, что пользователи установили из вашего marketplace, с записями и картой `renames`, и рассматривает любой плагин, который ни указан в списке, ни переименован, как удалённый.

3152. Удаляет каждый удалённый плагин из пользовательской, проектной и локальной областей. Плагины, которые установили только управляемые настройки, остаются на месте.

3163. Перечисляет каждый удалённый плагин под заголовком **Flagged** в `/plugin` со статусом `Removed from marketplace`.

317 

318<h2 id="authenticate-archive-downloads">

319 Authenticate archive downloads

320</h2>

321 

322Чтобы аутентифицировать загрузку [`archive`](/docs/ru/plugins/marketplace-reference#archive-plugin-source), такую как загрузка из приватного реестра, установите HTTP заголовки, которые Claude Code отправляет с ней. Вы можете установить `headers` в одном из этих мест:

323 

324* **Источник `url` marketplace**: источник `url`, из которого вы зарегистрировали marketplace, такой как запись [`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces).

325* **Запись плагина**: на Claude Code v2.1.238 или позже, вы можете установить его на записи `marketplace.json` плагина вместо этого, рядом с `source`.

326 

327В любом месте установите команду `headersHelper` вместо `headers`, когда значение недолговечно, такое как токен, который ваш реестр генерирует по запросу. Claude Code запускает команду и отправляет объект JSON, который она выводит, как заголовки этого места. Требует Claude Code v2.1.238 или позже.

328 

329[Справочник marketplace](/docs/ru/plugins/marketplace-reference#plugin-entries) перечисляет поля записи `headers` и `headersHelper`.

330 

331Место, которое вы выбираете, решает, какие загрузки получают заголовки и когда Claude Code запускает команду:

332 

333| Место | Загрузки, которые получают заголовки | Когда Claude Code запускает `headersHelper`, установленный там |

334| :------------------------- | :--------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

335| Источник `url` Marketplace | Загрузки архива на происхождении URL marketplace, означая ту же схему, хост и порт | Перед каждой выборкой `marketplace.json` marketplace и перед каждой загрузкой архива на этом происхождении. Claude Code переиспользует вывод одного запуска до 60 секунд |

336| Запись плагина | Только загрузка этой записи | Только когда пользователь устанавливает или обновляет этот один плагин сам по себе и [принимает команду](#how-users-accept-a-headershelper-command) |

337 

338Где оба места устанавливают заголовок с одинаковым именем, Claude Code отправляет значение записи. В одном месте заголовок, который команда выводит, переопределяет заголовок с одинаковым именем, указанный в `headers`.

339 

340<h3 id="add-a-headershelper-to-a-plugin-entry">

341 Add a headersHelper to a plugin entry

342</h3>

343 

344Эта запись устанавливает `headersHelper` рядом с `source`. Она также устанавливает [`"strict": false`](/docs/ru/plugins/marketplace-reference#strict-mode), что Claude Code требует от записи `marketplace.json`, которая устанавливает `headersHelper`:

345 

346```json theme={null}

347{

348 "name": "my-plugin",

349 "description": "Formatting commands for internal services",

350 "strict": false,

351 "source": {

352 "source": "archive",

353 "url": "https://registry.example.com/plugins/my-plugin-2.1.0.zip"

354 },

355 "headersHelper": "/opt/bin/mint-registry-token.sh"

356}

357```

358 

359Чтобы проверить запись, запустите `claude plugin install my-plugin@your-marketplace` в вашей оболочке. Claude Code показывает вам команду и URL архива и загружает zip после того как вы принимаете.

360 

361<h3 id="write-the-headershelper-command">

362 Write the headersHelper command

363</h3>

364 

365Независимо от того, устанавливаете ли вы `headersHelper` на источник `url` marketplace или на запись плагина, напишите команду, чтобы соответствовать этим требованиям:

366 

367* **Текст команды**: максимум 500 символов печатного ASCII, без запуска четырех или более пробелов.

368* **Вывод**: выведите один объект JSON имен заголовков и строковых значений на stdout, затем выйдите 0 в течение 10 секунд.

369* **Оболочка и рабочий каталог**: Claude Code запускает команду через `sh`, или через `cmd.exe` на Windows. Рабочий каталог — это каталог конфигурации, который является `~/.claude` или [`CLAUDE_CONFIG_DIR`](/docs/ru/env-vars#variables). Дайте абсолютный путь или команду на `PATH`, потому что относительный путь разрешается против этого каталога, а не проекта пользователя.

370* **Переменные, которые Claude Code удаляет**: когда команда установлена в записи `marketplace.json`, или в проектном `.claude/settings.json` или `.claude/settings.local.json`, Claude Code удаляет из окружения каждую переменную, чье имя выглядит как учетные данные, по [тому же правилу, которое оно применяет к MCP `headersHelper`](/docs/ru/mcp#which-variables-a-helper-can-read). `ANTHROPIC_API_KEY` и `MY_REGISTRY_TOKEN` оба удаляются, поэтому имейте команду, читающую свои учетные данные из файла или хранилища учетных данных. Это удаление не применяется к команде, установленной в пользовательских параметрах, файле `--settings` или управляемых параметрах.

371* **Переменные, которые Claude Code устанавливает**: `CLAUDE_CODE_MARKETPLACE_URL` и `CLAUDE_CODE_MARKETPLACE_NAME` для команды источника `url`, и `CLAUDE_CODE_PLUGIN_NAME` и `CLAUDE_CODE_PLUGIN_ARCHIVE_URL` для команды записи. `CLAUDE_CODE_MARKETPLACE_NAME` не установлена при первой выборке после того как пользователь добавляет marketplace по URL, потому что эта выборка — это то, что поставляет имя.

372 

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

374 

375```json theme={null}

376{"Authorization": "Bearer eyJhbGciOiJSUzI1NiJ9"}

377```

378 

379<h3 id="when-claude-code-skips-a-headershelper-command-or-drops-its-output">

380 When Claude Code skips a headersHelper command or drops its output

381</h3>

382 

383Команда `headersHelper` не запускается, или заголовки из `headers` или из вывода команды удаляются, когда применяется одно из следующего:

384 

385* **Команда не удается**: если команда выходит ненулевой, работает более 10 секунд, или выводит что-либо, кроме объекта JSON строковых значений, выборка или загрузка, для которой команда была запущена, не происходит.

386* **URL Marketplace не начинается с `https://`**: команда этого источника `url` не запускается, и запросы несут только заголовки, указанные в его поле `headers`.

387* **Перенаправление оставляет происхождение**: когда загрузка перенаправляется с происхождения URL архива, перенаправленный запрос не несет значения `headers` или вывод команды ни от источника `url` marketplace, ни от записи плагина.

388* **Запись устанавливает заголовок маршрутизации или идентификации**: Claude Code удаляет имена маршрутизации запросов и идентификации клиента, такие как `Host`, `Cookie` и `X-Forwarded-*`, из `headers` записи и вывода команды, и держит имена аутентификации, такие как `Authorization`. Каждая запись `marketplace.json` фильтруется таким образом. Для встроенной записи плагина в параметрах, смотрите [`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces).

389* **Команда установлена в параметрах каталога `--add-dir`**: команда игнорируется, на источнике `url` и на [встроенной записи плагина](/docs/ru/settings-reference#extraknownmarketplaces) одинаково, и только `headers` этого файла отправляются.

390* **Управляемые параметры блокируют команду**: установка [`disableCommandPluginSources`](/docs/ru/settings-reference#disablecommandpluginsources) на `true` блокирует команды `headersHelper`, и [`allowManagedHooksOnly`](/docs/ru/settings-reference#allowmanagedhooksonly) блокирует их тоже, если `disableCommandPluginSources` явно не `false`. Под любым блоком Claude Code все еще запускает команду для marketplace, который сами управляемые параметры объявляют.

391 

392<h3 id="how-users-accept-a-headershelper-command">

393 How users accept a headersHelper command

394</h3>

395 

396Пользователь принимает команду записи плагина каждый раз, когда они устанавливают или обновляют этот один плагин сам по себе. Они делают это из собственного представления плагина в `/plugin`, или с `claude plugin install` или `claude plugin update`. Claude Code показывает команду и URL архива и запускает команду только после того как пользователь принимает.

397 

398В неинтерактивной оболочке передайте [`--yes`](/docs/ru/plugins/cli-reference#plugin-install), чтобы принять команду. Чтобы принять только команду, которую предыдущий запуск `--json` отобразил, передайте [`--accept-command`](/docs/ru/plugins/cli-reference#plugin-install) с `sha256`, который запуск сообщил.

399 

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

401 

402<h3 id="installs-and-updates-that-refuse-the-command-instead-of-asking">

403 Installs and updates that refuse a command instead of asking

404</h3>

405 

406На любой операции, кроме установки или обновления одного плагина, Claude Code ни не запускает команду записи, ни не загружает ее архив. Плагин остается на его установленной версии или остается неустановленным, и пользователь видит один из этих результатов:

407 

408* **Установка нескольких плагинов одновременно, из предложения плагина, или как зависимость другого плагина**: Claude Code отказывает плагину, который имеет команду, и направляет пользователя к собственному представлению этого плагина в `/plugin`. Другие плагины в массовой установке все еще устанавливаются. Плагин, который зависит от отказанного плагина, не устанавливается, пока пользователь не установит отказанный плагин сам по себе.

409* **Background auto-update, или запуск сеанса для плагина, чей архив никогда не был загружен**: Claude Code перечисляет плагин на вкладке `/plugin` Errors, чтобы пользователь знал, чтобы установить или обновить его сам.

410 

411<h3 id="when-a-marketplace-url-sources-command-runs">

412 When a marketplace `url` source's command runs

413</h3>

414 

415Вы объявляете команду `headersHelper` источника `url` marketplace в файле параметров, такой как запись [`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces), вместо каталога, который marketplace публикует. Claude Code поэтому не просит пользователя принять его при каждой установке или обновлении. Вместо этого файл параметров, который объявляет его, решает, когда Claude Code запускает его:

416 

417| Файл параметров | Когда Claude Code запускает команду |

418| :-------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

419| Пользовательские параметры, файл `--settings` или файл управляемых параметров на машине | Без запроса, включая во время фонового обновления marketplace |

420| Проектный `.claude/settings.json` или `.claude/settings.local.json` | Только после того как пользователь принимает [диалог доверия рабочей области](/docs/ru/permissions#what-runs-before-you-trust-a-folder) для этой папки самой. Сеанс `-p` или SDK не считается принятием его, и ни доверие, предоставленное родительской папке |

421| Управляемые параметры сервера | В интерактивном сеансе, только после того как пользователь одобряет доставленные параметры в [диалоге одобрения безопасности](/docs/ru/server-managed-settings#security-approval-dialogs) |

422 

423Для [встроенной записи плагина](/docs/ru/settings-reference#extraknownmarketplaces) в одном из этих файлов Claude Code требует того же доверия папки или одобрения параметров, что и для команды уровня marketplace в этом файле, и пользователь также принимает команду записи при каждой установке или обновлении.

424 

425<h2 id="depend-on-and-recommend-other-plugins">

426 Depend on and recommend other plugins

427</h2>

428 

429Запись может объявить зависимости от других плагинов.

430 

431* **Диапазоны версий**: зависимость может нести диапазон semver.

432* **Кросс-marketplace зависимости**: зависимость от другого marketplace устанавливается только когда ваш marketplace перечисляет этот marketplace в `allowCrossMarketplaceDependenciesOn`.

433 

434Для диапазонов версий, соглашение git-тега `<plugin>--v<version>`, против которого они разрешаются, и кросс-marketplace доверие, смотрите [Plugin dependencies](/docs/ru/plugins/dependencies).

435 

436Чтобы Claude Code предложил плагин, когда проект соответствует ему, добавьте блок `relevance` к записи с сигналами, которые идентифицируют проект. Пользователи видят предложения из вашего marketplace только когда администратор перечисляет его в `pluginSuggestionMarketplaces`. Для сигналов и шага включения, смотрите [Plugin relevance](/docs/ru/plugins/relevance).

437 

438<h2 id="work-around-what-a-marketplace-can’t-do">

439 Work around what a marketplace can't do

440</h2>

441 

442Некоторые вещи, которые владельцы просят, не имеют поля в `marketplace.json`. Вот ближайший вариант для каждого:

443 

444* **Ограничить то, что еще устанавливают пользователи**: список разрешений marketplace — это управляемый параметр, `strictKnownMarketplaces`. Смотрите [Restrict what users can install](/docs/ru/plugins/org#restrict-what-users-can-install).

445* **Установить или включить плагин без того, чтобы пользователь просил**: ни одно поле записи не устанавливает плагин. Управляемый `enabledPlugins` делает это для флота; смотрите [Pre-install and require plugins](/docs/ru/plugins/org#pre-install-and-require-plugins).

446* **Показать разные записи разным пользователям**: записи не несут поле аудитории, и каждый пользователь, который добавляет marketplace, видит весь каталог. Разместите отдельные marketplaces для отдельных аудиторий.

447* **Отметить плагин устаревшим**: нет состояния устаревания. Вариант — удалить запись, сопоставить ее имя с `null` в `renames` и опционально установить `forceRemoveDeletedPlugins`.

448* **Включить auto-update для ваших пользователей**: каждый пользователь включает его в **Marketplaces** в `/plugin`, или администратор устанавливает `autoUpdate` в управляемых параметрах. Смотрите [Turn on auto-update](#turn-on-auto-update).

449* **Нести git учетные данные**: ни одно поле marketplace не держит git токен. Доступ к marketplace или плагину, размещенному на git, следует настройке git пользователя, согласно [Grant access to a private marketplace](#grant-access-to-a-private-marketplace). Для источников `archive`, запись может установить [`headers` или `headersHelper`](#authenticate-archive-downloads) вместо этого.

450 

451<h2 id="next-steps">

452 Next steps

453</h2>

454 

455* [Marketplace reference](/docs/ru/plugins/marketplace-reference): поля `marketplace.json`, типы источников и сообщения валидации

456* [Manage plugins for your organization](/docs/ru/plugins/org): требуйте, ограничивайте или заполняйте ваш marketplace на машинах вашей организации

457* [Plugin dependencies](/docs/ru/plugins/dependencies): отмечайте выпуски, чтобы плагины, которые зависят от вашего, могли разрешать версии

458* [Troubleshoot plugins](/docs/ru/plugins/troubleshooting): ошибки, которые видят ваши пользователи при добавлении или обновлении из вашего marketplace

plugins/install.md +418 −0 created

Details

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# Установка и управление плагинами

6 

7> Установите плагины Claude Code из маркетплейса на любой поверхности, которую вы используете, выберите область установки и обновляйте или удаляйте их позже.

8 

9Установка плагина добавляет его skills, agents, hooks и MCP серверы в Claude Code на вашу машину.

10 

11Эта страница предназначена для всех, кто использует плагины на своей машине или аккаунте, будь то в терминале, настольном приложении, IDE или облачной сессии: она охватывает установку, выбор области, добавление маркетплейсов и поддержание плагинов в актуальном состоянии.

12 

13<Note>

14 Эти случаи рассматриваются на других страницах:

15 

16 * **Вы используете claude.ai chat или Cowork, а не Claude Code**: см. [Плагины на claude.ai и в Cowork](https://claude.com/docs/plugins/overview)

17 * **Claude Code вывел ошибку**: найдите её в [Troubleshoot plugins](/docs/ru/plugins/troubleshooting)

18</Note>

19 

20Начните с [Установка плагина](#install-a-plugin). Если кто-то отправил вам команду установки, чьё имя `@` не является `claude-plugins-official`, сначала [добавьте этот маркетплейс](#add-a-marketplace).

21 

22<h2 id="install-a-plugin">

23 Установка плагина

24</h2>

25 

26В качестве примера этот раздел устанавливает [`commit-commands`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/commit-commands) из [официального маркетплейса Anthropic](/docs/ru/plugins/anthropic-marketplaces), который добавляет команды для коммитов, пушей и открытия pull requests.

27 

28Те же шаги устанавливают любой другой плагин: замените его имя и имя его маркетплейса везде, где появляются `commit-commands` и `claude-plugins-official`. Если этот плагин поступает из другого маркетплейса, сначала [добавьте маркетплейс](#add-a-marketplace).

29 

30Выберите вкладку для того места, где вы запускаете Claude Code.

31 

32<Tabs>

33 <Tab title="Terminal">

34 Запустите Claude Code с помощью `claude` в вашем проекте, затем:

35 

36 <Steps>

37 <Step title="Откройте детали плагина с помощью команды установки">

38 Запустите `/plugin install` с именем плагина и маркетплейса. В сессии эта команда не устанавливает сразу: она открывает панель `/plugin` с деталями этого плагина, чтобы вы могли его просмотреть и сначала выбрать область.

39 

40 ```text theme={null}

41 /plugin install commit-commands@claude-plugins-official

42 ```

43 

44 Чтобы вместо этого просмотреть список, запустите `/plugin` без имени плагина: панель откроется на вкладке **Discover**, которая перечисляет плагины из каждого добавленного вами маркетплейса, и вы можете вводить для поиска, затем нажать **Enter** на плагине, чтобы открыть его детали.

45 </Step>

46 

47 <Step title="Просмотрите, что добавляет плагин">

48 Панель деталей показывает описание плагина. Она также может показывать:

49 

50 * **Will install**: команды, agents, skills, hooks и MCP и LSP серверы, которые добавляет плагин.

51 * **Last updated**: показывается для плагина в официальном маркетплейсе Anthropic.

52 * **Context cost**: для плагина в официальном маркетплейсе Anthropic две оценки токенов. **Every turn** — это то, что плагин добавляет к каждому отправляемому вами сообщению, а **When invoked** — это то, что его skills и agents добавляют после того, как Claude их загружает. Оценки появляются, когда вы открываете плагин, назвав его маркетплейс, как это делает команда шага 1, или со вкладки **Marketplaces**. Панель деталей, которую вы достигаете из списка **Discover**, их не показывает.

53 

54 Плагины из локального или пользовательского маркетплейса могут вместо этого показывать `Components will be discovered at installation`.

55 

56 Плагин может запускать hooks и MCP серверы, поэтому прочитайте панель перед установкой. См. [Plugin security and trust](/docs/ru/plugins/security).

57 </Step>

58 

59 <Step title="Выберите область">

60 Выберите один из трёх вариантов установки:

61 

62 * **Install for you (user scope)**: вы получаете плагин в каждом проекте на этой машине

63 * **Install for all collaborators on this repository (project scope)**: он включен для всех, кто работает в этом репозитории

64 * **Install for you, in this repo only (local scope)**: вы получаете его только в этом репозитории

65 

66 [Выберите область установки](#choose-an-install-scope) говорит, в какой файл настроек записывается каждый из них и какой применяется, когда один и тот же плагин установлен в нескольких местах.

67 

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

69 </Step>

70 

71 <Step title="Прочитайте сводку установки">

72 Последнее предложение сводки говорит вам, доступен ли плагин в этой сессии прямо сейчас:

73 

74 * **Active now**: `Plugin is now active.` Перезагрузка не требуется.

75 * **Reload needed**: `Run /reload-plugins to activate.` Панель закрывается и Claude Code запускает эту перезагрузку для вас. Если перезагрузка [инвалидирует кэш подсказок](/docs/ru/prompt-caching#enabling-or-disabling-a-plugin), она предупреждает и оставляет плагин в ожидании. Запустите `/reload-plugins --force`, чтобы активировать его в любом случае, что стоит один некэшированный запрос.

76 * **Load failed**: `The plugin couldn't be loaded`. Откройте вкладку **Errors** в `/plugin`, чтобы узнать причину, затем см. [After install: plugin not working](/docs/ru/plugins/troubleshooting#plugin-installed-but-not-working).

77 </Step>

78 

79 <Step title="Подтвердите, что плагин работает">

80 Введите `/` и ищите skills плагина под его именем в форме `/<plugin>:<skill>`. Для `commit-commands` появляется `/commit-commands:commit`. Два других места также перечисляют плагин:

81 

82 * Откройте вкладку **Installed** в `/plugin`, которая перечисляет плагин с его областью.

83 * В вашей оболочке запустите `claude plugin list`, который выводит тот же список с строками `Version`, `Scope` и `Status`.

84 

85 Если `/commit-commands:commit` не появляется, см. [After install: plugin not working](/docs/ru/plugins/troubleshooting#plugin-installed-but-not-working).

86 </Step>

87 </Steps>

88 

89 Установка из любого другого маркетплейса требует одного дополнительного шага: [добавьте маркетплейс](#add-a-marketplace). Claude Code добавляет официальный маркетплейс Anthropic для вас в первый раз, когда вы запускаете интерактивную сессию терминала, поэтому пример пропускает этот шаг. Если вы нашли плагин на [claude.com/marketplace](https://claude.com/marketplace), его кнопка **Claude Code** копирует команду установки в её [форме оболочки](#install-from-your-shell), `claude plugin install <name>@claude-plugins-official`.

90 </Tab>

91 

92 <Tab title="Desktop app">

93 В локальной или SSH сессии на вкладке **Code** настольного приложения:

94 

95 <Steps>

96 <Step title="Откройте браузер плагинов">

97 Нажмите кнопку **+** рядом с полем подсказки и выберите **Plugins**, затем **Add plugin**. Браузер плагинов откроется с плагинами из ваших маркетплейсов.

98 </Step>

99 

100 <Step title="Выберите плагин">

101 Найдите `commit-commands` и выберите его.

102 </Step>

103 

104 <Step title="Выберите область">

105 Выберите [область](#choose-an-install-scope): ваш пользовательский аккаунт, этот проект или только локально.

106 </Step>

107 </Steps>

108 

109 Чтобы включить, отключить или удалить позже, используйте **+ > Plugins > Manage plugins**. Браузер плагинов недоступен в облачных сессиях настольного приложения. См. [Install plugins in the desktop app](/docs/ru/desktop#install-plugins).

110 </Tab>

111 

112 <Tab title="VS Code">

113 На панели Claude Code в VS Code:

114 

115 <Steps>

116 <Step title="Откройте Manage plugins">

117 Введите `/plugins` в поле подсказки, чтобы открыть **Manage plugins**.

118 </Step>

119 

120 <Step title="Установите плагин">

121 На вкладке **Plugins** найдите `commit-commands` и нажмите **Install**. Если вкладка не перечисляет плагины, сначала добавьте `anthropics/claude-plugins-official` на вкладке **Marketplaces**.

122 </Step>

123 

124 <Step title="Выберите область">

125 Выберите [область](#choose-an-install-scope): **Install for you**, **Install for this project** или **Install locally**.

126 </Step>

127 </Steps>

128 

129 Ваши изменения применяются к открытым сессиям без перезагрузки. См. [Manage plugins in VS Code](/docs/ru/vs-code#manage-plugins).

130 </Tab>

131 

132 <Tab title="Cloud session">

133 [Облачная сессия](/docs/ru/cloud-environments), включая [браузер на claude.ai/code](/docs/ru/claude-code-on-the-web), не имеет браузера плагинов и не загружает плагины, которые вы установили на своей машине, или те, которые включены в `.claude/settings.json` вашего репозитория. Для плагинов, которые ваша организация распространяет через управляемые настройки, см. [Manage plugins for your organization](/docs/ru/plugins/org).

134 

135 См. [какие части вашей настройки также доступны в облачной сессии](/docs/ru/cloud-environments#what-carries-over-from-your-setup) для остальной части вашей настройки.

136 </Tab>

137</Tabs>

138 

139<h3 id="choose-an-install-scope">

140 Выберите область установки

141</h3>

142 

143Область установки плагина определяет, кто получает плагин и какой файл настроек записывает его как включённый:

144 

145* **User scope**: плагин включен для вас в каждом проекте на этой машине. Запись идёт в `enabledPlugins` в `~/.claude/settings.json`.

146* **Project scope**: плагин включен для всех, кто работает в этом репозитории. Запись идёт в `.claude/settings.json`, который вы коммитите.

147* **Local scope**: плагин включен для вас только в этом репозитории. Запись идёт в `.claude/settings.local.json`.

148 

149Некоторые плагины установлены их автором на запуск в отключённом состоянии через поле [`defaultEnabled`](/docs/ru/plugins/manifest-reference#defaultenabled). Такой плагин установлен, но остаётся отключённым, пока вы не включите его с помощью `claude plugin enable <name>` в вашей оболочке или со вкладки **Installed** в `/plugin` в сессии.

150 

151Когда один и тот же плагин установлен в нескольких областях, локальная настройка переопределяет настройку проекта, а настройка проекта переопределяет пользовательскую настройку. См. [Find where a plugin is enabled](/docs/ru/plugins/loading#find-where-a-plugin-is-enabled) для полного правила.

152 

153Терминал, локальные сессии настольного приложения и расширение VS Code на одном компьютере читают одни и те же файлы настроек, поэтому плагин, который вы устанавливаете в пользовательской области в любом из них, доступен в двух других.

154 

155<h3 id="other-places-you-run-claude-code">

156 JetBrains, неинтерактивные запуски и Agent SDK

157</h3>

158 

159Некоторые места, где вы запускаете Claude Code, не имеют собственного браузера плагинов:

160 

161* **JetBrains IDEs**: плагин JetBrains запускает Claude Code в терминале IDE, поэтому используйте шаги вкладки **Terminal** там.

162* **`claude -p` и другие неинтерактивные запуски**: `/plugin` не запускается, и Claude отвечает `/plugin isn't available in this environment.` Плагины, которые вы уже установили, загружаются. Устанавливайте и управляйте ими из вашей оболочки с помощью [`claude plugin` команд](#install-from-your-shell).

163* **Agent SDK**: загружайте плагины через опцию плагина SDK. См. [Load plugins in the Agent SDK](/docs/ru/agent-sdk/plugins).

164 

165Если Claude Code сообщает, что плагин, включённый в `.claude/settings.json` репозитория, не установлен, см. [Enabled in project settings but not installed](/docs/ru/plugins/loading#enabled-in-project-settings-but-not-installed).

166 

167<Tip>

168 Если вы автор плагина, тестирующий копию вашего плагина на диске, запустите Claude Code из вашей оболочки с `--plugin-dir`, чтобы загрузить его для одной сессии вместо установки. См. [Flags that load a plugin for one session](/docs/ru/plugins/cli-reference#flags-that-load-a-plugin-for-one-session).

169</Tip>

170 

171<h3 id="plugins-from-your-claude-ai-account">

172 Плагины из вашего аккаунта claude.ai

173</h3>

174 

175Ваш аккаунт claude.ai — это отдельный источник плагинов, наряду с маркетплейсами, из которых вы устанавливаете:

176 

177* **Что приходит**: каждый плагин, который вы включаете для своего аккаунта claude.ai, и каждый плагин, который ваша организация включает для своих членов. В сессии терминала они синхронизируются в фоне каждый раз, когда вы запускаете Claude Code, подписавшись с этим аккаунтом; в сессиях Cowork они загружаются при запуске сессии.

178* **Где вы их видите**: в `/plugin` и `claude plugin list` под ID `<name>@synced`. Вы можете отключить один в своей области, если ваша организация этого не требует.

179* **Что не идёт в другую сторону**: плагины, которые вы устанавливаете с помощью `/plugin` или `claude plugin install`, остаются на этой машине и не добавляются в ваш аккаунт claude.ai.

180 

181Для синхронизации времени, требований входа и отключения синхронизации см. [Plugins synced from claude.ai](/docs/ru/plugins/loading#synced-plugins).

182 

183<h3 id="install-from-your-shell">

184 Установка из вашей оболочки

185</h3>

186 

187Запустите `claude plugin install` в вашей оболочке, чтобы установить плагин без запуска сессии Claude Code, например из скрипта настройки.

188 

189* **Область**: пользовательская область по умолчанию. Передайте `--scope project` или `--scope local`, чтобы изменить её.

190* **Когда плагины загружаются**: плагины, которые он устанавливает, загружаются в следующий раз, когда вы запускаете Claude Code, или когда вы запускаете `/reload-plugins` в уже открытой сессии.

191* **Маркетплейс должен быть добавлен первым**: на машине, где никто ещё не открывал интерактивную сессию Claude Code, официальный маркетплейс не зарегистрирован, поэтому скрипт, который устанавливает из него, запускает `claude plugin marketplace add anthropics/claude-plugins-official` перед установкой.

192 

193```bash theme={null}

194claude plugin install formatter@your-org --scope project

195```

196 

197Команда выводит `Successfully installed plugin: formatter@your-org (scope: project)` при завершении.

198 

199Некоторые плагины устанавливаются путём запуска команды, которую называет их маркетплейс, называемой [`command` source](/docs/ru/plugins/marketplace-reference#command-plugin-source). Claude Code показывает вам эту команду и просит вас принять её перед запуском. Скрипт не имеет никого, кто ответит на этот запрос, поэтому передайте `--yes` там, чтобы принять его.

200 

201Для каждого флага `claude plugin install` см. [plugin install](/docs/ru/plugins/cli-reference#plugin-install).

202 

203<h2 id="add-a-marketplace">

204 Добавление маркетплейса

205</h2>

206 

207Вам нужен этот раздел только когда плагин, который вы хотите, не находится в официальном маркетплейсе Anthropic, например один, который опубликовал коллега, или один из маркетплейса сообщества Anthropic.

208 

209Маркетплейс — это каталог плагинов, и Claude Code должен знать о маркетплейсе, прежде чем вы сможете установить из него. Вы добавляете маркетплейс один раз. После этого его плагины появляются на вкладке **Discover** и устанавливаются с помощью `/plugin install <plugin>@<marketplace>` в сессии или `claude plugin install <plugin>@<marketplace>` в вашей оболочке, где `<marketplace>` — это имя, под которым маркетплейс зарегистрирован. Чтобы сделать оба в один шаг, см. [Add a marketplace and install in one command](#add-a-marketplace-and-install-in-one-command).

210 

211В сессии Claude Code запустите `/plugin marketplace add`, за которым следует источник маркетплейса: репозиторий GitHub, репозиторий git на любом хосте, локальный каталог или файл, или размещённый `marketplace.json`.

212 

213| Источник | Что вы вводите | Пример |

214| :----------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------ |

215| Репозиторий GitHub | `owner/repo`. Добавьте `#ref`, чтобы закрепить ветку или тег. | `/plugin marketplace add anthropics/claude-code`, или `/plugin marketplace add your-org/plugins#v1.2.0`, чтобы закрепить тег `v1.2.0` |

216| Репозиторий Git на любом хосте | Полный URL клонирования. Добавьте `#ref`, чтобы закрепить ветку или тег. | `/plugin marketplace add https://gitlab.example.com/your-group/your-marketplace.git#v1.0.0` |

217| Локальный каталог или файл | Относительный или абсолютный путь к каталогу, который содержит `.claude-plugin/marketplace.json`, или к самому JSON файлу. Начните относительный путь с `./` или `../`, потому что Claude Code читает голый `name/name` как репозиторий GitHub. | `/plugin marketplace add ./my-marketplace` |

218| Размещённый `marketplace.json` | Его URL `https://` | `/plugin marketplace add https://example.com/marketplace.json` |

219 

220Из вашей оболочки `claude plugin marketplace add` принимает те же источники.

221 

222<Tip>

223 `/plugin market` также работает как более короткая форма `/plugin marketplace`.

224</Tip>

225 

226Включайте префикс `https://` на каждый URL или используйте форму `git@host:path` для SSH. Если вы введёте голый `gitlab.example.com/your-group/your-marketplace.git`, Claude Code прочитает его как сокращение GitHub `owner/repo` и отклонит его.

227 

228Когда команда успешна, она выводит `Successfully added marketplace: <name>`, и плагины маркетплейса появляются на вкладке **Discover** в следующий раз, когда вы откроете `/plugin`, без необходимости перезагрузки. Если она не удаётся, сопоставьте сообщение об ошибке в [Troubleshoot plugins](/docs/ru/plugins/troubleshooting#add-a-marketplace).

229 

230<h3 id="add-a-marketplace-and-install-in-one-command">

231 Добавление маркетплейса и установка в одной команде

232</h3>

233 

234Чтобы установить плагин из маркетплейса, который вы ещё не добавили, запустите `/plugin install` в сессии Claude Code и назовите источник маркетплейса с помощью `--marketplace`. Требуется Claude Code v2.1.275 или позже.

235 

236```text theme={null}

237/plugin install deploy-helper --marketplace your-org/plugins

238```

239 

240Источник принимает [те же формы, что и `/plugin marketplace add`](#add-a-marketplace), такие как GitHub `owner/repo`, URL git или локальный путь, за исключением того, что он не может содержать пробелы. Дайте имя плагина само по себе, без суффикса `@marketplace`.

241 

242Если вы ещё не добавили этот маркетплейс, Claude Code показывает разрешённый источник и просит вас подтвердить перед добавлением. После добавления маркетплейса детали плагина открываются и вы выбираете [область установки](#install-a-plugin). Если источник совпадает с маркетплейсом, который вы уже добавили, Claude Code пропускает подтверждение и открывает детали плагина в этом маркетплейсе.

243 

244<h3 id="add-a-private-marketplace">

245 Добавление приватного маркетплейса

246</h3>

247 

248Приватный маркетплейс — это один в репозитории, для которого вам нужны учётные данные для клонирования, на GitHub или любом другом хосте git. Вы добавляете его с помощью той же команды `/plugin marketplace add` или `claude plugin marketplace add`, что и публичный. Claude Code клонирует его с учётными данными git, уже находящимися на вашей машине, и никогда не запрашивает, поэтому каждый способ подключения имеет требование:

249 

250* **HTTPS**: применяются ваши помощники учётных данных git, поэтому доступ, который вы установили с помощью `gh auth login`, macOS Keychain или `git-credential-store`, работает. Интерактивные запросы подавляются, поэтому хост, к которому вы никогда не аутентифицировались, не удаётся вместо запроса пароля.

251* **SSH**: хост должен уже находиться в вашем файле `known_hosts` и ключ должен работать без запроса парольной фразы, потому что запросы отпечатка хоста и парольной фразы также подавляются.

252* **Сокращение GitHub `owner/repo`**: Claude Code проверяет, аутентифицирует ли ваш ключ SSH на `github.com`, затем клонирует по SSH, если это так, и по HTTPS, если нет. Установите [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/ru/env-vars#variables), чтобы пропустить эту проверку и всегда клонировать по HTTPS.

253 

254Те же учётные данные применяются, когда вы запускаете `/plugin install`, `/plugin marketplace update` и `claude plugin update`.

255 

256На хосте GitHub Enterprise Server см. [Plugin marketplaces on GHES](/docs/ru/github-enterprise-server#plugin-marketplaces-on-ghes) для учётных данных, которые требует каждая операция.

257 

258Если ваша организация регистрирует маркетплейс для вас через управляемые настройки, вы не добавляете его сами. См. [Pre-install and require plugins](/docs/ru/plugins/org#pre-install-and-require-plugins).

259 

260<h3 id="add-from-claude-ai">

261 Добавление маркетплейса из claude.ai

262</h3>

263 

264В сессиях терминала, где [плагины синхронизируются из вашего аккаунта claude.ai](/docs/ru/plugins/loading#synced-plugins), claude.ai также может перечислять маркетплейсы плагинов для вас, такие как библиотека плагинов вашей организации и ваши собственные загрузки claude.ai. Вы добавляете один из них по его имени, а не по источнику. Добавление маркетплейса из claude.ai требует Claude Code v2.1.273 или позже.

265 

266Добавьте маркетплейс claude.ai из панели `/plugin` или из вашей оболочки:

267 

268* **Внутри сессии**: запустите `/plugin` и перейдите на вкладку **Marketplaces**, которая перечисляет маркетплейсы из claude.ai. Выберите один там, чтобы добавить его.

269* **Из вашей оболочки**: запустите `claude plugin marketplace list`, который выводит их в разделе `From claude.ai:`. Затем запустите `claude plugin marketplace add` с флагом `--claudeai` и именем, показанным в списке.

270 

271Например, эта команда добавляет маркетплейс с именем `claudeai-organization-library`:

272 

273```bash theme={null}

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

275```

276 

277Claude Code регистрирует маркетплейс под локальным именем, которое начинается с `claudeai-`, полученным из имени, которое claude.ai перечисляет под ним. Например, маркетплейс, перечисленный как "Organization library", становится `claudeai-organization-library`. Устанавливайте его плагины по этому имени, например с помощью `claude plugin install <plugin>@claudeai-organization-library`.

278 

279Если вы выходите или входите в другую организацию claude.ai, маркетплейс остаётся настроенным, но не показывает плагины, и плагины, которые вы уже установили из него, продолжают загружаться.

280 

281Раздел `From claude.ai:` также может перечислять маркетплейсы на основе git, общие через claude.ai, и выводит источник для каждого из них. Добавляйте их по этому источнику, как в [Add a marketplace](#add-a-marketplace), а не с `--claudeai`.

282 

283<h2 id="manage-installed-plugins">

284 Управление установленными плагинами

285</h2>

286 

287Вкладка **Installed** в `/plugin` перечисляет ваши плагины с действиями для включения, отключения, обновления или удаления каждого. В сессии Claude Code запустите `/plugin` и нажмите **Tab**, чтобы достичь её, или запустите `/plugin enable`, `/plugin disable` или `/plugin uninstall`, чтобы открыть панель и сделать это изменение там. Отключённые плагины сгруппированы под свёрнутым заголовком в нижней части списка. Используйте эти клавиши на списке:

288 

289* Введите для фильтрации по имени или описанию.

290* Нажмите **Space**, чтобы включить или отключить выбранный плагин, и **f**, чтобы добавить его в избранное.

291* Нажмите **Enter**, чтобы открыть детали плагина. Меню там предлагает **Disable plugin** или **Enable plugin**, **Update now** и **Uninstall**. Плагины, которые принимают настройки, также предлагают **Configure options**.

292 

293Вкладка также может показывать плагины в области **Managed**. Ваша организация установила их через [управляемые настройки](/docs/ru/settings#settings-files), и вы не можете включить, отключить или удалить их здесь.

294 

295Для синхронизированного плагина, который ваша организация требует на claude.ai, см. [Manage plugins synced from claude.ai](#manage-plugins-synced-from-claude-ai).

296 

297Когда вы закрываете панель `/plugin` с ожидающими изменениями, которые вы сделали в ней, Claude Code запускает `/reload-plugins` для вас, чтобы применить их. Если перезагрузка [инвалидирует кэш подсказок](/docs/ru/prompt-caching#enabling-or-disabling-a-plugin), она предупреждает и оставляет изменения в ожидании. Запустите `/reload-plugins --force`, чтобы применить их в любом случае.

298 

299<h3 id="manage-plugins-synced-from-claude-ai">

300 Управление плагинами, синхронизированными из claude.ai

301</h3>

302 

303Вкладка **Installed** в `/plugin` также перечисляет [плагины, синхронизированные из вашего аккаунта claude.ai](/docs/ru/plugins/loading#synced-plugins), с `synced` в качестве их источника. Синхронизированные плагины появляются в сессиях терминала на Claude Code v2.1.273 или позже.

304 

305* **Включить или отключить**: используйте вкладку **Installed**, если ваша организация не отметила плагин как обязательный.

306* **Удалить**: отключите плагин на claude.ai.

307 

308Когда Claude Code синхронизирует добавленный, обновлённый или удалённый плагин в интерактивную сессию, вы видите `Plugins changed. Run /reload-plugins to activate.` Запустите `/reload-plugins`, чтобы загрузить изменение в этой сессии, или оставьте его на следующий раз, когда вы запустите Claude Code.

309 

310<h3 id="uninstall-a-plugin-the-project-enables">

311 Удаление плагина, который включает проект

312</h3>

313 

314Когда вы выбираете **Uninstall** для плагина, который этот репозиторий `.claude/settings.json` включает, будь то со вкладки **Installed** или с `/plugin uninstall`, Claude Code спрашивает, отключить ли его для вас или удалить для всех:

315 

316* **Disable for me**: нажмите **y**. Claude Code записывает `false` для плагина в вашем `.claude/settings.local.json` и оставляет его установленным для проекта.

317* **Uninstall for everyone**: нажмите **u**. Claude Code удаляет плагин из общего `.claude/settings.json`.

318 

319<h3 id="see-what-an-installed-plugin-adds-to-your-sessions">

320 Посмотрите, что добавляет установленный плагин к вашим сессиям

321</h3>

322 

323В вашей оболочке запустите `claude plugin details <name>` для установленного плагина. Строка `Always-on` — это количество токенов, которые плагин добавляет к каждой сессии, где он включен, и строки для каждого компонента показывают, какой skill или agent вносит наибольший вклад. Для полного вывода и того, что означает каждая цифра, см. [Measure what a plugin costs](/docs/ru/plugins/measure#measure-what-a-plugin-costs).

324 

325<h3 id="find-plugins-you-no-longer-use">

326 Найдите плагины, которые вы больше не используете

327</h3>

328 

329На вкладке **Installed** в `/plugin` плагины, которые вы установили сами и не использовали недавно, появляются под заголовком **Not used recently**, и детали каждого плагина показывают строку **Last used**. Используйте этот заголовок и эту строку, чтобы найти плагины, которые всё ещё добавляют стартовые и контекстные затраты, затем отключите или удалите их.

330 

331<h3 id="plugins-with-dependencies">

332 Плагины с зависимостями

333</h3>

334 

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

336 

337* **Install**: Claude Code также устанавливает и включает объявленные зависимости плагина в той же области. Сообщение об успехе их перечисляет.

338* **Enable**: Claude Code также включает зависимости плагина, которые установлены, но отключены. Если объявленная зависимость не установлена, включение не удаётся и сообщение говорит вам установить её сначала.

339* **Disable**: когда другой включённый плагин всё ещё нуждается в том, который вы назвали, Claude Code отказывает и выводит цепную команду, которая отключает оба в правильном порядке.

340* **Uninstall**: автоустановленные зависимости остаются, пока вы не запустите `claude plugin prune` в вашей оболочке; см. [plugin prune](/docs/ru/plugins/cli-reference#plugin-prune).

341 

342Если вы загрузили плагин с `--plugin-dir` вместо этого, см. [Test a plugin and its dependency locally](/docs/ru/plugins/dependencies#test-a-plugin-and-its-dependency-locally).

343 

344<h3 id="manage-plugins-from-your-shell">

345 Управление плагинами из вашей оболочки

346</h3>

347 

348Вы также можете управлять плагинами без запуска сессии Claude Code. В вашей оболочке запустите `claude plugin install`, `enable`, `disable` или `uninstall` как обычные команды терминала; они изменяют те же настройки, что и панель `/plugin`. Каждый принимает `--scope`, чтобы нацелиться на одну область, и использует область по умолчанию, когда вы её опускаете:

349 

350* `enable` и `disable` действуют на наиболее специфичную область, чьи настройки уже перечисляют плагин.

351* `install` и `uninstall` действуют на пользовательскую область.

352 

353Например, эти команды отключают и повторно включают плагин, затем удаляют его в области проекта:

354 

355```bash theme={null}

356claude plugin disable formatter@your-org

357claude plugin enable formatter@your-org

358claude plugin uninstall formatter@your-org --scope project

359```

360 

361<h2 id="keep-plugins-updated">

362 Поддержание плагинов в актуальном состоянии

363</h2>

364 

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

366 

367Запущенная сессия сохраняет версии, которые она уже загрузила. После обновления вы видите `Plugin updated: <name> · Run /reload-plugins to apply`, и следующая сессия автоматически загружает новые версии.

368 

369Это значения по умолчанию для автообновления для каждого вида маркетплейса:

370 

371* **On by default**: `claude-plugins-official` и другие [официальные имена маркетплейсов](/docs/ru/plugins/security#official-marketplace-names), кроме `knowledge-work-plugins` и `first-party-plugins`, плюс [маркетплейсы, добавленные из claude.ai](#add-from-claude-ai).

372* **Off by default**: каждый другой маркетплейс, включая маркетплейс сообщества, маркетплейсы третьих сторон и локальные маркетплейсы разработки.

373 

374Для того, когда запускается автообновление, какие плагины оно пропускает и переменные окружения, которые его отключают, см. [When auto-update runs](/docs/ru/plugins/loading#when-auto-update-runs).

375 

376<h3 id="turn-auto-update-on-or-off-for-a-marketplace">

377 Включение или отключение автообновления для маркетплейса

378</h3>

379 

380В сессии Claude Code запустите `/plugin` и перейдите на вкладку **Marketplaces**. Выберите маркетплейс, затем выберите **Enable auto-update** или **Disable auto-update**.

381 

382<h3 id="update-one-plugin-now">

383 Обновление одного плагина сейчас

384</h3>

385 

386В сессии откройте плагин на вкладке **Installed** в `/plugin` и выберите **Update now**, или в вашей оболочке запустите `claude plugin update <plugin>@<marketplace>`.

387 

388<h3 id="auto-update-from-a-private-marketplace">

389 Автообновление из приватного маркетплейса

390</h3>

391 

392Для приватного маркетплейса см. [What background auto-update does with credentials](/docs/ru/plugins/host-marketplace#what-background-auto-update-does-with-credentials) для того, как фоновые автообновления аутентифицируются по SSH и HTTPS, и [Troubleshoot plugins](/docs/ru/plugins/troubleshooting#add-a-marketplace) для сообщений, которые вы видите, когда они не удаются.

393 

394<h2 id="manage-marketplaces">

395 Управление маркетплейсами

396</h2>

397 

398Вкладка **Marketplaces** в `/plugin` перечисляет каждый маркетплейс, который вы зарегистрировали, вместе с его источником. Выберите один, чтобы просмотреть его плагины, обновить его список, включить или отключить автообновление или удалить его.

399 

400Вы также можете перечислять, обновлять и удалять маркетплейсы с помощью команд, из вашей оболочки или внутри сессии:

401 

402| Действие | В вашей оболочке | Внутри сессии |

403| :--------------------------- | :---------------------------------------- | :---------------------------------- |

404| Перечислить маркетплейсы | `claude plugin marketplace list` | `/plugin marketplace list` |

405| Обновить список маркетплейса | `claude plugin marketplace update <name>` | `/plugin marketplace update <name>` |

406| Удалить маркетплейс | `claude plugin marketplace remove <name>` | `/plugin marketplace remove <name>` |

407 

408Когда вы удаляете маркетплейс, Claude Code удаляет каждый плагин, который вы установили из него, и удаляет их записи `enabledPlugins` из ваших файлов настроек. Вкладка **Marketplaces** называет эти плагины перед тем, как попросить вас подтвердить.

409 

410<h2 id="next-steps">

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

412</h2>

413 

414* [Anthropic's marketplaces](/docs/ru/plugins/anthropic-marketplaces): как отличаются официальный, маркетплейсы сообщества и демонстрационный и где просмотреть каждый

415* [Plugin loading reference](/docs/ru/plugins/loading): почему плагин загрузился, не загрузился или не изменился после обновления

416* [Plugin security and trust](/docs/ru/plugins/security): что просмотреть перед установкой плагина из маркетплейса, который вы не знаете

417* [Troubleshoot plugins](/docs/ru/plugins/troubleshooting): установка и сообщения об ошибках маркетплейса с их исправлениями

418* [Create a plugin](/docs/ru/plugins/create): создайте свой собственный

plugins/loading.md +424 −0 created

Details

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# Справочник по загрузке плагинов

6 

7> Отследите, откуда Claude Code загружает каждый плагин, какой файл параметров решает, загружается ли он, и почему обновление ничего не изменило.

8 

9Используйте эту страницу, когда плагин не загрузился, загрузилась другая копия, чем вы ожидали, или плагин не подхватил обновление, и вы хотите увидеть, какой источник, область параметров или файл на диске это решил. На ней приведены правила, которые Claude Code применяет при запуске сеанса и каждый раз при запуске `/reload-plugins`. Вы также можете попросить Claude прочитать эту страницу и диагностировать вашу конфигурацию.

10 

11<Note>

12 Эти случаи рассмотрены на других страницах:

13 

14 * **Шаги установки, включения, отключения и обновления**: см. [Установка и управление плагинами](/docs/ru/plugins/install)

15 * **У вас есть конкретное сообщение об ошибке**: см. [Устранение неполадок плагинов](/docs/ru/plugins/troubleshooting)

16</Note>

17 

18Начните с раздела [Проверьте, на каком этапе находится плагин](#check-which-stage-a-plugin-reached) для трёх этапов, через которые проходит установленный плагин, или перейдите в раздел, соответствующий тому, что вы видите:

19 

20* Плагин, который вы отключили, всё ещё загружается: [Найдите, где плагин включен](#find-where-a-plugin-is-enabled)

21* Обновление ничего не изменило: [Версии и обновления](#versions-and-updates)

22* Вы смотрите на файлы в `~/.claude/plugins/`: [Найдите плагины на диске](#find-plugins-on-disk)

23* Плагин `--plugin-dir` не загрузился, или вместо него загрузился плагин с тем же именем: [Конфликты имён](#name-conflicts)

24 

25<h2 id="check-which-stage-a-plugin-reached">

26 Проверьте, на каком этапе находится плагин

27</h2>

28 

29Запись `enabledPlugins` становится плагином, который вы можете использовать, в несколько этапов: ваши параметры объявляют его, Claude Code загружает его на диск, и работающий сеанс загружает его. Когда плагин ведёт себя не так, как предполагает файл параметров, проверьте, на каком этапе он находится:

30 

31* **Объявлен в параметрах**: `enabledPlugins` указывает, какие плагины должны быть включены, а `extraKnownMarketplaces` указывает, какие маркетплейсы должны существовать. Когда вы запускаете `claude plugin marketplace add`, Claude Code записывает маркетплейс в `extraKnownMarketplaces` в ваши пользовательские параметры, а также на диск

32* **Загружен на диск в `~/.claude/plugins/`**: записи о том, что Claude Code загрузил, и сами загруженные файлы:

33 * `known_marketplaces.json` записывает каждый маркетплейс, который Claude Code загрузил, с его `source`, `installLocation`, `lastUpdated` и `autoUpdate`. На одного пользователя приходится один `known_marketplaces.json`, поэтому маркетплейс, который вы добавляете в одном проекте, доступен в каждом проекте

34 * `installed_plugins.json` записывает каждую установку с её `scope`, `installPath` и `version`

35 * `cache/` содержит файлы плагинов

36* **Загружен в работающем сеансе**: набор плагинов, который Claude Code загрузил при запуске или при последнем `/reload-plugins`. Изменения параметров или диска не достигают этого уровня до тех пор, пока вы не запустите `/reload-plugins` или не начнёте новый сеанс. Вот почему `claude plugin update` заканчивается на `Restart to apply changes.` и фоновые обновления предлагают вам `Run /reload-plugins to apply`

37 

38<h3 id="plugins-and-marketplaces-that-aren’t-on-disk-at-session-start">

39 Плагины и маркетплейсы, которых нет на диске при запуске сеанса

40</h3>

41 

42Плагины загружаются при запуске сеанса из `installed_plugins.json` и кэша без использования сети. После запуска сеанса Claude Code проверяет объявленные маркетплейсы в фоновом режиме:

43 

44* **Маркетплейс, который параметры объявляют, но `known_marketplaces.json` не содержит**: Claude Code клонирует его, затем перезагружает плагины и загружает включённые плагины, которые ещё не кэшированы

45* **Объявленный маркетплейс, чей источник изменился в параметрах**: Claude Code повторно загружает его из нового источника и показывает `Plugins changed. Run /reload-plugins to activate.`

46 

47Включённый плагин, который ни один путь не загрузил и у которого нет пригодного для использования каталога кэша, показывает `Plugin "<name>" not cached at <path>` на вкладке `/plugin` **Errors**, и `claude plugin list` добавляет `— run /plugin to refresh` на ту же строку. Для исправления см. [`Plugin "<name>" not cached at <path>`](/docs/ru/plugins/troubleshooting#plugin-not-cached-at).

48 

49<h2 id="find-where-a-plugin-came-from">

50 Найдите, откуда пришёл плагин

51</h2>

52 

53Каждый плагин имеет идентификатор вида `<name>@<origin>`, который вы видите в файлах параметров и в `claude plugin list --json`. Часть после `@` говорит вам, где Claude Code нашёл плагин:

54 

55| ID заканчивается на | Как плагин туда попал | Как вы его включаете или отключаете |

56| :------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

57| `@<marketplace>` | Вы установили его из маркетплейса, который добавили | `"<name>@<marketplace>": true` или `false` под `enabledPlugins` в файле параметров |

58| `@inline` | Вы запустили Claude Code с `--plugin-dir` или `--plugin-url`, установили [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/ru/env-vars#variables), или приложение Agent SDK передало опцию `plugins`. Он загружается только для этого сеанса | Включен для сеанса, если только манифест не устанавливает `defaultEnabled: false` или файл параметров не устанавливает `"<name>@inline": false` |

59| `@skills-dir` | Вы сохранили каталог плагина, который имеет `.claude-plugin/plugin.json` в `~/.claude/skills/` или в `.claude/skills/` проекта | `defaultEnabled` манифеста, если только файл параметров не устанавливает `"<name>@skills-dir"` в `true` или `false` |

60| `@synced` | Вы или ваша организация включили его для вашей учётной записи claude.ai, и Claude Code [загрузил его](#synced-plugins) | Включен, если только манифест не устанавливает `defaultEnabled: false` или файл параметров не устанавливает `"<name>@synced": false`. Плагин, который ваша организация отмечает как обязательный, загружается в любом случае |

61 

62Для плагина маркетплейса `<name>` — это имя записи в `marketplace.json`; для `@inline` и `@skills-dir` это `name` в манифесте плагина.

63 

64Имена источников в этой таблице зарезервированы, поэтому ни один маркетплейс не может быть назван `inline`, `skills-dir` или `synced`.

65 

66<h3 id="entry-name-and-manifest-name">

67 Имя записи и имя манифеста

68</h3>

69 

70Плагин маркетплейса имеет два имени, и они могут отличаться:

71 

72* **Имя записи в `marketplace.json`**: ключ установки и включения. Это то, что вы пишете в `enabledPlugins`, по чему назван каталог кэша, и что показывает `claude plugin list`

73* **`name` в манифесте**: то, под чем пространства имён компонентов плагина, и что сравнивают [конфликты имён](#name-conflicts)

74 

75<h3 id="plugins-shared-through-a-repository">

76 Плагины, общие через репозиторий

77</h3>

78 

79Чтобы поделиться плагином через репозиторий, перечислите его под `enabledPlugins` в `.claude/settings.json` или поместите его в `.claude/skills/`. Claude Code не сканирует каталог `.claude/plugins/` проекта.

80 

81Облачный сеанс не добавляет маркетплейсы, которые репозиторий перечисляет под [`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces), потому что это требует диалога доверия рабочей области, который облачный сеанс никогда не показывает.

82 

83Плагин каталога навыков с областью проекта загружается только из `.claude/skills/` [основного рабочего каталога](/docs/ru/permissions#working-directories) сеанса и только после того, как вы примете [диалог доверия рабочей области](/docs/ru/permissions#what-runs-before-you-trust-a-folder) для этого каталога. Он не [ищет родительские каталоги вверх до корня репозитория](/docs/ru/skills#discovery-from-parent-and-nested-directories) так, как это делают обычные навыки и команды. Если вы запустите из подкаталога, плагин в корне репозитория не загрузится. Запустите из корня репозитория вместо этого, или [переместите сеанс туда с помощью `/cd`](/docs/ru/permissions#move-the-session-to-another-directory) на v2.1.246 или позже.

84 

85Плагин с областью проекта проверяется в репозиторий и достигает каждого сотрудника, который его клонирует. Поскольку это содержимое поступает из репозитория, а не от вас, оно загружается только после той же проверки доверия, которая применяется к правилам разрешения проекта в `.claude/settings.json`. Доверие к родительской папке или запуск с `-p` недостаточно. Компоненты, которые выполняют код, имеют дополнительные ограничения:

86 

87* MCP серверы, которые он объявляет, проходят через [то же одобрение для каждого сервера](/docs/ru/mcp), что и проект `.mcp.json`

88* MCP серверы, которые он объявляет как [MCP пакет](/docs/ru/plugins/manifest-reference#mcpservers), файл `.mcpb` или `.dxt`, или из файла вне каталога плагина, пропускаются. Объявляйте их встроенными или в `.mcp.json` внутри каталога плагина

89* [Фоновые мониторы](/docs/ru/plugins/components#monitors) не загружаются

90 

91Плагины с областью пользователя не имеют этих ограничений.

92 

93О том, как писать плагины `--plugin-dir` и каталога навыков, см. [Создание плагинов](/docs/ru/plugins/create).

94 

95<h3 id="synced-plugins">

96 Плагины, синхронизированные с claude.ai

97</h3>

98 

99Плагин, который вы включаете для своей учётной записи claude.ai, также загружается в Claude Code рядом с плагинами, которые вы устанавливаете из маркетплейсов. Это включает плагины, которые ваша организация включает для своих членов. Каждый из этих плагинов загружается как `<name>@synced`, без маркетплейса и без [записи об установке](#check-which-stage-a-plugin-reached).

100 

101В сеансах терминала навыки, агенты, hooks, MCP серверы и LSP серверы синхронизированного плагина все загружаются с тем же доверием, что и плагин маркетплейса, который вы установили.

102 

103О компонентах, которые загружает Cowork, см. [Плагины на claude.ai и в Cowork](https://claude.com/docs/plugins/overview) на claude.com.

104 

105Синхронизированные плагины загружаются в сеансах Cowork и в сеансах терминала, где вы входите с помощью своей учётной записи claude.ai:

106 

107* **[Cowork](https://claude.com/product/cowork)**: Claude Code загружает их в собственную среду сеанса при запуске сеанса

108* **Сеансы терминала**: каждый раз, когда вы запускаете Claude Code, он синхронизируется один раз в фоновом режиме, загружая новые и обновлённые плагины и удаляя те, которые вы или ваша организация отключили. Синхронизация в сеансах терминала требует Claude Code v2.1.273 или позже

109 

110<h4 id="sync-timing-in-terminal-sessions">

111 Время синхронизации в сеансах терминала

112</h4>

113 

114Поскольку синхронизация терминала выполняется в фоновом режиме, она может завершиться после запуска вашего сеанса. Когда она добавляет, обновляет или удаляет синхронизированный плагин в интерактивном сеансе, вы видите `Plugins changed. Run /reload-plugins to activate.` Запустите `/reload-plugins`, чтобы загрузить изменение в этом сеансе, или оставьте его на следующий раз, когда вы запустите Claude Code.

115 

116Если вы включите плагин на claude.ai во время работы сеанса, плагин загрузится в следующий раз, когда вы запустите Claude Code.

117 

118<h4 id="sign-in-requirements-for-terminal-sync">

119 Требования входа для синхронизации терминала

120</h4>

121 

122В вашем терминале плагины синхронизируются только в сеансах, где вы входите с помощью своей учётной записи claude.ai.

123 

124Если вы вошли в более ранней версии Claude Code, этот вход не охватывает плагины до тех пор, пока Claude Code не обновит его в фоновом режиме. Чтобы получить доступ раньше, запустите `/login` снова. Синхронизация плагинов затем начнётся в следующий раз, когда вы запустите Claude Code.

125 

126<h4 id="control-which-synced-plugins-load">

127 Контролируйте, какие синхронизированные плагины загружаются

128</h4>

129 

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

131 

132* **Один плагин**: `claude plugin disable <name>@synced` в вашей оболочке и вкладка `/plugin` **Installed** в сеансе оба сохраняют `"<name>@synced": false` в вашем пользовательском уровне [`enabledPlugins`](/docs/ru/settings-reference#enabledplugins). Чтобы держать плагин вне проекта в каждой среде, установите тот же ключ в коммитированный `.claude/settings.json` проекта

133* **Все синхронизированные плагины на машине**: установите [`syncClaudeAiPlugins`](/docs/ru/settings-reference#syncclaudeaiplugins) в `false` в ваших пользовательских параметрах, или ваша организация устанавливает это в [управляемых параметрах](/docs/ru/managed-settings). Claude Code прекращает загрузку, и в следующий раз, когда вы его запустите, он перемещает плагины, которые он уже синхронизировал, в `~/.claude/plugins/.trash/` и больше их не загружает. Если ваша организация отключит Skills на claude.ai, плагины также перестанут синхронизироваться

134* **Плагин, который требует ваша организация**: плагин, который ваша организация отмечает как обязательный на 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`

135 

136О удалении плагина на claude.ai см. [Управление установленными плагинами](/docs/ru/plugins/install#manage-installed-plugins).

137 

138<h2 id="find-where-a-plugin-is-enabled">

139 Найдите, где плагин включен

140</h2>

141 

142Вы можете установить запись `enabledPlugins` в любом из шести источников. Таблица перечисляет их от самого низкого приоритета к самому высокому и указывает, к кому применяется каждый. Для самих файлов параметров см. [Файлы параметров и кто они затрагивают](/docs/ru/settings#where-settings-live).

143 

144| Источник | Где вы его устанавливаете | Достигает |

145| :---------- | :------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------- |

146| `--add-dir` | `.claude/settings.json` или `.claude/settings.local.json` в каталоге, который вы передаёте с `--add-dir` | Только этот сеанс. Только значение `true` имеет эффект, и каждый другой источник его переопределяет |

147| `user` | `~/.claude/settings.json` | Вас, в каждом проекте |

148| `project` | `.claude/settings.json` | Каждого, кто клонирует репозиторий |

149| `local` | `.claude/settings.local.json` | Вас, только в этом репозитории |

150| `flag` | Значение `--settings`, которое вы передаёте при запуске | Только этот сеанс |

151| `managed` | [Управляемые параметры](/docs/ru/managed-settings) | Каждого пользователя, который охватывает политика. `true` принудительно включает и `false` блокирует, и ни один другой источник их не переопределяет |

152 

153Эти источники объединяются ключ за ключом. Для каждого идентификатора плагина применяемое значение — это значение из источника с наивысшим приоритетом, который упоминает идентификатор. Источник, который не упоминает идентификатор, оставляет значение из источника с более низким приоритетом в силе.

154 

155<h3 id="disabled-in-user-settings-but-still-loads">

156 Отключено в пользовательских параметрах, но всё ещё загружается

157</h3>

158 

159Если вы установили плагин в `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`.

160 

161Чтобы отказаться от плагина, включённого проектом, на вашей машине, установите идентификатор в `false` в `.claude/settings.local.json`, который имеет более высокий приоритет, чем файл проекта.

162 

163<h3 id="enabled-in-project-settings-but-not-installed">

164 Включено в параметрах проекта, но не установлено

165</h3>

166 

167Когда единственный `true` плагина находится в `.claude/settings.json` проекта, Claude Code не загружает его на машину, где он не установлен, если только его запись маркетплейса не имеет [источника с относительным путём](/docs/ru/plugins/marketplace-reference#plugin-sources) или [каталог семян](/docs/ru/plugins/org#seed-containers-and-ci) уже его содержит. Вместо этого вкладка `/plugin` **Errors** показывает `Plugin "<name>" is enabled in project settings but isn't installed here`.

168 

169Плагин с относительным путём не нуждается в записи об установке, потому что он загружается из самого маркетплейса.

170 

171Claude Code загружает плагин с внешним источником только когда один из этих источников устанавливает его в `true`:

172 

173* Ваши пользовательские параметры

174* `.claude/settings.local.json`, который git не отслеживает

175* Флаг `--settings`

176* Управляемые параметры

177 

178<h2 id="find-plugins-on-disk">

179 Найдите плагины на диске

180</h2>

181 

182Claude Code хранит файлы плагинов и записи состояния в одном корне плагинов, который является `~/.claude/plugins`, если вы не установили [`CLAUDE_CODE_PLUGIN_CACHE_DIR`](/docs/ru/env-vars). Каждый путь в таблице относителен к этому корню.

183 

184| Путь | Что он содержит |

185| :--------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

186| `cache/<marketplace>/<plugin>/<version>/` | Один каталог на установленную версию плагина маркетплейса. `<plugin>` — это имя записи маркетплейса и `<version>` — это [разрешённая версия](#versions-and-updates). `${CLAUDE_PLUGIN_ROOT}` указывает на этот каталог |

187| `data/<plugin-id>/` | Постоянный каталог плагина, открытый как `${CLAUDE_PLUGIN_DATA}`. О том, как формируется `<plugin-id>`, см. [Переменные пути и постоянные данные](/docs/ru/plugins/components#path-variables-and-persistent-data). Claude Code создаёт его, когда компонент плагина впервые его использует, и сохраняет его при обновлениях. Claude Code удаляет его, когда вы удаляете плагин из его последней области, если вы не передаёте `--keep-data` |

188| `marketplaces/<name>/` | Клон или загрузка маркетплейса, добавленного с GitHub, другого хоста Git или URL. Маркетплейс, добавленный из локального источника `file` или `directory`, не имеет копии здесь, и его `installLocation` в `known_marketplaces.json` — это путь, который вы дали |

189| `synced/` | Плагины, которые Claude Code [синхронизировал с вашей учётной записью claude.ai](#synced-plugins) |

190| `.trash/` | Плагины, которые синхронизация claude.ai удалила, например, после того как вы отключили один на claude.ai или прекратили синхронизацию |

191| `installed_plugins.json` и `known_marketplaces.json` | Записи о том, что Claude Code установил и какие маркетплейсы он загрузил, описанные в разделе [Проверьте, на каком этапе находится плагин](#check-which-stage-a-plugin-reached). [Маркетплейс, размещённый на claude.ai](/docs/ru/plugins/install#add-from-claude-ai), записывается в `known_marketplaces_claudeai.json` вместо этого |

192| `flagged-plugins.json` | Плагины, которые Claude Code удалил, потому что их маркетплейс их исключил. Они появляются в разделе **Flagged** в `/plugin`; см. [Размещение маркетплейса](/docs/ru/plugins/host-marketplace) |

193 

194Поскольку `${CLAUDE_PLUGIN_ROOT}` указывает на каталог версии, путь корня плагина изменяется с каждой версией. Сохраняйте постоянные файлы плагина в `${CLAUDE_PLUGIN_DATA}` вместо этого.

195 

196<h3 id="in-place-and-copied-plugins">

197 Плагины на месте и скопированные плагины

198</h3>

199 

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

201 

202* **Плагины `--plugin-dir` и каталога навыков**: каталог загружается на месте и никогда не копируется. Архив `--plugin-url` или `.zip` `--plugin-dir` сначала извлекается во временный каталог сеанса

203* **Плагины с относительным путём в маркетплейсе, который вы добавили из локального каталога**: плагин загружается на месте из его пути внутри папки маркетплейса. Ваши правки в исходный каталог вступают в силу при следующем запуске сеанса или `/reload-plugins`, и вам не нужно увеличивать версию. Процессы hooks плагина и серверы MCP и LSP получают `CLAUDE_PLUGIN_ROOT`, который указывает на исходный каталог. О его зависимостях пакета Node.js см. [Когда запускается установка зависимостей](#when-the-dependency-install-runs)

204* **Плагины источника `command` в [режиме ссылки](/docs/ru/plugins/marketplace-reference#command-plugin-source)**: каталог, который напечатала команда, загружается на месте через ссылки в записи кэша

205* **Каждый другой плагин маркетплейса**: Claude Code копирует плагин в `cache/<marketplace>/<plugin>/<version>/` при установке и загружает эту копию. Файлы вне каталога плагина не копируются, поэтому когда скрипт внутри скопированного плагина читает путь выше корня плагина, такой как `../shared`, он их не находит

206 

207<h3 id="paths-that-escape-the-plugin-directory">

208 Пути, которые выходят за пределы каталога плагина

209</h3>

210 

211Загружается ли плагин на месте или из кэшированной копии, Claude Code не позволяет ему объявлять компоненты вне его собственного каталога. Он отклоняет путь компонента, который разрешается вне корня плагина, независимо от того, объявлен ли путь в `plugin.json` или в записи маркетплейса:

212 

213* **Путь, который указывает вне плагина в написанном виде**, такой как `../shared-utils`

214* **Символическая ссылка, которая ведёт вне плагина**, кроме [ссылок между плагинами в одном маркетплейсе](/docs/ru/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)

215* **На macOS и Linux, путь, который содержит обратную косую черту где-либо в нём**, даже когда путь остаётся внутри плагина. Компоненты, объявленные с путями обратной косой черты, поэтому загружаются только на Windows, поэтому пишите пути компонентов с прямыми косыми чертами, такие как `./commands/deploy.md`

216 

217Отклонённый путь появляется как ошибка [`path escapes plugin directory`](/docs/ru/errors#path-escapes-plugin-directory), и плагин загружается без этого компонента.

218 

219<h3 id="cleanup-of-previous-versions">

220 Очистка предыдущих версий

221</h3>

222 

223Когда вы обновляете или удаляете плагин, Claude Code записывает маркер `.orphaned_at` в каталог предыдущей версии. Он удаляет этот каталог в фоновой очистке через 14 дней, поэтому сеанс, который уже загрузил старую версию, продолжает работать.

224 

225Очистка выполняется только пока `installed_plugins.json` записывает по крайней мере одну установку. После удаления последнего плагина осиротелые каталоги остаются до тех пор, пока вы не установите другой.

226 

227<h3 id="node-js-package-dependencies">

228 Зависимости пакета Node.js

229</h3>

230 

231Когда Claude Code копирует плагин в кэш, он также устанавливает зависимости пакета Node.js плагина там, поэтому hooks и MCP серверы плагина могут их загружать.

232 

233Этот раздел охватывает пакеты npm и Bun, которые плагин объявляет в своём собственном `package.json`. О плагинах, которые зависят от других плагинов, см. [версии зависимостей плагина](/docs/ru/plugins/dependencies).

234 

235<h4 id="when-the-dependency-install-runs">

236 Когда запускается установка зависимостей

237</h4>

238 

239Claude Code запускает установку внутри скопированного каталога версии каждый раз, когда создаёт один:

240 

241* Когда вы устанавливаете плагин

242* Когда Claude Code обновляет плагин до новой версии

243* При запуске сеанса, когда включённый плагин ещё не кэширован, например, на новой машине

244 

245Для плагина с относительным путём [загруженного на месте](#in-place-and-copied-plugins) из маркетплейса локального каталога Claude Code не устанавливает зависимости в исходный каталог. Установите их там сами, или из hook в [`${CLAUDE_PLUGIN_DATA}`](/docs/ru/plugins/components#path-variables-and-persistent-data).

246 

247Установка запускается только когда каталог корня плагина содержит как `package.json`, так и поддерживаемый файл блокировки. Файл блокировки решает, какую команду запускает Claude Code:

248 

249| Файл блокировки | Команда |

250| :-------------------------------------------- | :----------------------------------------------- |

251| `bun.lock` или `bun.lockb` | `bun install --frozen-lockfile --ignore-scripts` |

252| `npm-shrinkwrap.json` или `package-lock.json` | `npm ci --ignore-scripts` |

253 

254Если плагин содержит более одного из этих файлов блокировки, Claude Code использует первое совпадение, проверяя по порядку: `bun.lock`, `bun.lockb`, `npm-shrinkwrap.json`, `package-lock.json`.

255 

256Claude Code пропускает установку для файлов блокировки Yarn и pnpm и для `bunfig.toml` рядом с файлом блокировки Bun:

257 

258* Если ваш плагин имеет только `yarn.lock` или `pnpm-lock.yaml`, замените его файлом блокировки npm

259* Если `bunfig.toml` находится в том же каталоге, что и файл блокировки Bun, удалите `bunfig.toml`, или замените файл блокировки Bun файлом блокировки npm

260 

261Включите файл блокировки npm, чтобы достичь большинства пользователей. Claude Code запускает менеджер пакетов файла блокировки из PATH пользователя и не пытается использовать другой файл блокировки вместо этого, если этот менеджер пакетов отсутствует.

262 

263Для плагина, распространяемого через источник npm, используйте `npm-shrinkwrap.json`, потому что npm исключает `package-lock.json` из опубликованных пакетов.

264 

265<h4 id="limits-on-the-dependency-install">

266 Ограничения на установку зависимостей

267</h4>

268 

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

270 

271* **Замороженное разрешение**: Bun и npm устанавливают ровно то, что файл блокировки закрепляет, и отказывают, а не переразрешают версии, когда `package.json` и файл блокировки не согласны

272* **Нет скриптов жизненного цикла**: `--ignore-scripts` предотвращает запуск скриптов `preinstall`, `install` и `postinstall`, поэтому зависимости, которые собирают собственные модули в этих скриптах, загружаются, но не компилируются во время этой установки

273* **Тайм-аут 60 секунд**: Claude Code останавливает установку, которая выполняется дольше, и рассматривает её как неудачную

274 

275Claude Code загружает плагин источника npm перед этой установкой зависимостей, и ни один из собственных скриптов установки пакета не запускается во время загрузки. См. [источник плагина npm](/docs/ru/plugins/marketplace-reference#npm-plugin-source).

276 

277Вы не можете отключить автоматическую установку. Ни один параметр или переменная окружения её не отключает.

278 

279В ограниченных сетях см. [требования доступа в сеть](/docs/ru/network-config#network-access-requirements) для хостов, которые нужно разрешить.

280 

281<h4 id="when-the-dependency-install-fails-or-is-skipped">

282 Когда установка зависимостей не удаётся или пропускается

283</h4>

284 

285Неудачная или пропущенная установка никогда не блокирует плагин, и каждый случай оставляет другой знак:

286 

287* Неудачная установка, или одна пропущенная из-за файла блокировки Yarn или pnpm или `bunfig.toml`, появляется как предупреждение в выводе `claude --debug`

288* Плагин с `package.json` и без файла блокировки пропускается без записи в журнал

289* Истёкшая по времени установка может оставить частичное дерево `node_modules` в кэшированной копии

290 

291Когда автоматическая установка не может предоставить зависимость, установите её из hook в [каталог постоянных данных](/docs/ru/plugins/components#path-variables-and-persistent-data). Это включает пакеты, которым нужны их скрипты жизненного цикла для сборки, зависимости Python и плагины, заблокированные Yarn или pnpm.

292 

293<h2 id="versions-and-updates">

294 Версии и обновления

295</h2>

296 

297Если автор плагина отправил новые коммиты и `claude plugin update` печатает `<name> is already at the latest version (<version>).`, версия, которую Claude Code вычисляет для плагина, не изменяется, поэтому ничего не изменяется на диске.

298 

299Claude Code вычисляет версию для каждого плагина, который он устанавливает, и эта версия — это то, как он обнаруживает обновление. `claude plugin update` и фоновое автоматическое обновление вычисляют версию снова и пропускают плагин, когда она совпадает с тем, что записывает `installed_plugins.json`.

300 

301Версия также называет каталог кэша плагина.

302 

303Манифест, который закрепляет `"version"`, — это один способ, которым вычисленная версия остаётся неизменной при коммитах. См. [Как Claude Code вычисляет версию](#how-claude-code-computes-the-version) для порядка разрешения.

304 

305Плагин [загруженный на месте](#in-place-and-copied-plugins) из маркетплейса локального каталога загружает свои текущие исходные файлы при каждом запуске сеанса, независимо от того, что говорит его строка версии. Для плагина из [маркетплейса, размещённого на claude.ai](/docs/ru/plugins/install#add-from-claude-ai), версия, которую claude.ai записывает для плагина, — это его версия, и `version` манифеста не читается.

306 

307<h3 id="how-claude-code-computes-the-version">

308 Как Claude Code вычисляет версию

309</h3>

310 

311Для маркетплейса, который вы добавили по источнику, Claude Code выбирает правило по типу `source` записи маркетплейса плагина. [Справочник маркетплейса](/docs/ru/plugins/marketplace-reference#plugin-sources) перечисляет типы источников. Для каждого типа источника в этом списке, кроме `command`:

312 

3131. Поле `version` в манифесте плагина идёт первым

3142. Затем поле `version` в записи маркетплейса плагина

3153. Когда ни один не установлен, версия поступает из типа источника:

316 

317| Тип источника | Версия, когда поле `version` не установлено |

318| :------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------- |

319| `github`, `url` или `git-subdir` | SHA коммита источника, сокращённый до 12 символов. Версия `git-subdir` также содержит хэш пути подкаталога |

320| `archive` | Дайджест SHA-256, сокращённый до 12 символов: закрепление `sha256` в записи маркетплейса, или дайджест загруженного файла, когда нет закрепления |

321| Относительный путь внутри маркетплейса, размещённого на Git | SHA коммита установленного каталога |

322| Локальный каталог, когда ни каталог плагина, ни его маркетплейс не являются репозиторием git | `unknown` |

323| `npm` | `unknown` |

324 

325Claude Code не берёт версию из репозитория, который охватывает путь установки, такого как управляемый git `~/.claude`.

326 

327Для источника `command` Claude Code всегда выводит версию из того, что произвела команда: 12-символьный хэш сам по себе, или `<manifest version>-<hash>`, когда манифест устанавливает один. `version` записи маркетплейса игнорируется для источников команд. О том, что охватывает хэш, см. [Режим копирования и режим ссылки](/docs/ru/plugins/marketplace-reference#copy-mode-and-link-mode).

328 

329Поскольку манифест идёт первым, манифест, который закрепляет `"version": "1.0.0"`, держит каждого пользователя на кэшированной копии до тех пор, пока его автор не изменит строку, сколько бы коммитов они ни отправили. Чтобы позволить пользователям отслеживать коммиты вместо этого, оставьте `version` вне манифеста и записи. [Размещение маркетплейса](/docs/ru/plugins/host-marketplace) охватывает, какой выбор подходит для какой установки выпуска.

330 

331<h3 id="when-claude-code-refreshes-a-marketplace-before-an-install">

332 Когда Claude Code обновляет маркетплейс перед установкой

333</h3>

334 

335Когда вы устанавливаете плагин, Claude Code ищет его в своей локальной копии каталога маркетплейса. Вы можете запустить `/plugin install` в сеансе или `claude plugin install` в вашей оболочке и назвать плагин с его маркетплейсом или без. Таблица показывает, какие из этих комбинаций обновляют локальную копию.

336 

337| Имя плагина | Команда | Что Claude Code обновляет |

338| :----------------- | :-------------------------------------------- | :---------------------------------------------------------------------------------------------------------- |

339| `name@marketplace` | `/plugin install` или `claude plugin install` | Названный маркетплейс перед поиском |

340| `name` один | `/plugin install` | Только маркетплейсы, у которых автоматическое обновление включено, и только после того, как поиск не найдёт |

341| `name` один | `claude plugin install` | Ничего. Он читает кэшированные каталоги без обновления |

342 

343Обновление перед установкой `name@marketplace` не зависит от параметра автоматического обновления маркетплейса или от `DISABLE_AUTOUPDATER`.

344 

345Когда обновление не удаётся, установка продолжается из кэшированного каталога и `claude plugin install` сообщает `marketplace not refreshed`.

346 

347Claude Code пропускает обновление перед установкой `name@marketplace`, когда:

348 

349* Маркетплейс был добавлен из локального источника `file` или `directory`, или определён встроенным в параметрах с источником [`settings`](/docs/ru/settings-reference#extraknownmarketplaces)

350* [Каталог семян](/docs/ru/env-vars) предоставляет маркетплейс

351* Claude Code обновил маркетплейс в течение последних 30 секунд

352* Вы установили `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`

353* [Управляемые параметры](/docs/ru/plugins/org#restrict-what-users-can-install) блокируют маркетплейс, в этом случае Claude Code также отказывает в установке

354 

355<h3 id="when-auto-update-runs">

356 Когда запускается автоматическое обновление

357</h3>

358 

359В интерактивном сеансе, после того как вы отправите своё первое сообщение, Claude Code ждёт случайную задержку до десяти минут. Затем он обновляет каждый маркетплейс с включённым автоматическим обновлением и обновляет плагины, установленные из них, на диске.

360 

361Работающий сеанс сохраняет версии, которые он загрузил, и вы видите `Plugin updated: <name> · Run /reload-plugins to apply`. Загружаете ли вы или нет, новые версии загружаются при следующем запуске.

362 

363<h4 id="which-marketplaces-and-plugins-auto-update">

364 Какие маркетплейсы и плагины автоматически обновляются

365</h4>

366 

367Автоматическое обновление маркетплейса следует первому из этих, что установлено:

368 

3691. **`autoUpdate` на его записи `extraKnownMarketplaces`** в файле параметров

3702. **`autoUpdate` на его записи `known_marketplaces.json`**, которую переключатель **Enable auto-update** под `/plugin` **Marketplaces** пишет. Когда файл параметров также объявляет маркетплейс под `extraKnownMarketplaces`, переключатель пишет `autoUpdate` в эту запись параметров также

3713. **По умолчанию**: включено для официальных маркетплейсов Anthropic, таких как `claude-plugins-official`, отключено для `knowledge-work-plugins` и `first-party-plugins`, включено для [маркетплейсов, добавленных с claude.ai](/docs/ru/plugins/install#add-from-claude-ai), и отключено для каждого другого маркетплейса

372 

373Если вы установите `DISABLE_UPDATES=1`, `DISABLE_AUTOUPDATER=1` или `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1`, весь проход отключен и переключатель **Enable auto-update** скрыт, если вы также не установите `FORCE_AUTOUPDATE_PLUGINS=1`. [Справочник переменных окружения](/docs/ru/env-vars) охватывает более широкий эффект каждой переменной.

374 

375Автоматическое обновление также пропускает плагин, чья запись маркетплейса объявляет `headersHelper`. [Установки и обновления, которые отказывают команде вместо запроса](/docs/ru/plugins/host-marketplace#installs-and-updates-that-refuse-the-command-instead-of-asking) объясняют, когда такой плагин появляется на вкладке `/plugin` **Errors** и как вы его обновляете оттуда.

376 

377Когда скопированный плагин обновляется в середине сеанса, команды hooks, мониторы, MCP серверы и LSP серверы продолжают использовать путь предыдущей версии. Запустите `/reload-plugins`, чтобы переключить hooks, MCP серверы и LSP серверы на новый путь. Мониторы требуют перезагрузки сеанса.

378 

379<h3 id="when-a-command-source-re-runs">

380 Когда источник команды повторно запускается

381</h3>

382 

383Плагины с источником `command` не ждут [прохода автоматического обновления](#when-auto-update-runs). Напечатанный каталог отражает состояние инструмента в момент запуска команды, поэтому Claude Code запускает [команду, которую вы приняли](/docs/ru/plugins/host-marketplace#change-the-command-of-a-command-source), снова в эти моменты:

384 

385* Каждый раз, когда вы устанавливаете или обновляете плагин

386* Один раз за сеанс для каждого включённого плагина с источником команды, в фоновом режиме, вскоре после запуска сеанса. Этот запуск не зависит от параметра автоматического обновления маркетплейса или от `DISABLE_AUTOUPDATER`

387* При запуске или на `/reload-plugins`, когда установленная версия включённого плагина отсутствует в кэше плагина

388 

389Claude Code пропускает два фоновых запуска, когда вы установили [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ru/env-vars). Явные установки и обновления всё ещё запускают команду с этой переменной установленной.

390 

391Когда хэшированный вывод команды изменился, Claude Code устанавливает результат как новую версию и перезагружает его в работающем интерактивном сеансе, переключая [те же компоненты, которые переключает `/reload-plugins`](/docs/ru/plugins/cli-reference#reload-plugins). Вы видите уведомление о том, что плагин был перезагружен.

392 

393Если перезагрузка на месте сделает кэш подсказок сеанса недействительным, Claude Code вместо этого предлагает вам запустить `/reload-plugins`, который [предупреждает о стоимости кэша и применяется при повторном запуске с `--force`](/docs/ru/prompt-caching#enabling-or-disabling-a-plugin).

394 

395<h2 id="name-conflicts">

396 Конфликты имён

397</h2>

398 

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

400 

4011. Плагин, чей идентификатор появляется в управляемых параметрах `enabledPlugins`, как `true` или `false`. Копия `--plugin-dir`, чьё имя манифеста совпадает с частью имени идентификатора, не загружается, и вы видите `--plugin-dir copy of "<name>" ignored: plugin is locked by managed settings`

4022. Включённый плагин `--plugin-dir`, `--plugin-url` или `CLAUDE_CODE_PLUGIN_DIRS`. Он заменяет установленный плагин маркетплейса с тем же именем или плагин каталога навыков:

403 * **Установленный плагин маркетплейса**: заменён молча. `claude plugin list` всё ещё показывает строку маркетплейса как включённую, потому что эта строка отражает ваши параметры. Только журнал, который Claude Code пишет в `~/.claude/debug/`, когда вы запускаете с `--debug`, записывает `Plugin "<name>" from --plugin-dir overrides installed version`

404 * **Плагин каталога навыков**: заменён строкой вкладки `/plugin` **Errors**, которая читает `Not loaded — the name "<name>" is already taken by a session-only plugin (--plugin-dir / --plugin-url), which takes precedence`

4053. Установленный плагин маркетплейса. Плагин каталога навыков с тем же именем получает ту же строку `Not loaded`, называя установленный плагин

4064. Плагин каталога навыков. Между двумя из них копия под `~/.claude/skills/` загружается и копия проекта `.claude/skills/` отбрасывается, со строкой, которая говорит, какой путь её затенил

4075. Плагин [синхронизированный с claude.ai](#synced-plugins). Когда включённый плагин из любого другого источника совпадает с его именем, Claude Code загружает этот плагин и сообщает о синхронизированной копии как не загруженной. Чтобы использовать копию claude.ai вместо этого, отключите свою собственную копию

408 

409Поскольку порядок сравнивает имена манифестов, плагин `--plugin-dir` с именем `hello-plugin` заменяет `hello@example-marketplace`, когда манифест этого плагина также говорит `"name": "hello-plugin"`.

410 

411<h3 id="keep-a-session-only-plugin-from-loading">

412 Держите плагин только для сеанса от загрузки

413</h3>

414 

415Чтобы плагин `--plugin-dir` не затенял ничего, или чтобы отключить его, когда родительский процесс передаёт флаг для вас, установите его идентификатор в `false` в любом файле параметров. Для плагина, чьё имя манифеста — `hello-plugin`, запись — `"enabledPlugins": {"hello-plugin@inline": false}`. Отключённый плагин только для сеанса не затеняет, поэтому вместо этого загружается копия маркетплейса или каталога навыков.

416 

417<h2 id="next-steps">

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

419</h2>

420 

421* [Установка и управление плагинами](/docs/ru/plugins/install): сами шаги установки, включения, отключения и обновления

422* [Устранение неполадок плагинов](/docs/ru/plugins/troubleshooting): сообщения об ошибках по этапам, которые их производят

423* [Справочник команд плагинов](/docs/ru/plugins/cli-reference): флаги и команды, названные на этой странице

424* [Управление плагинами для вашей организации](/docs/ru/plugins/org): управляемые параметры, которые принудительно включают или блокируют плагины

plugins/manifest-reference.md +710 −0 created

Details

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# Справочник манифеста плагина

6 

7> Полный справочник по plugin.json: каждое поле с его типом и значением по умолчанию, принятые формы путей и схемы userConfig и переменных окружения.

8 

9Манифест плагина — это файл `plugin.json` в директории `.claude-plugin/` плагина. Он содержит метаданные плагина и значения [`userConfig`](#user-configuration), которые Claude Code запрашивает у пользователя. Он также объявляет любой компонент, который вы определяете встроенным образом или храните вне его [расположения по умолчанию](#standard-layout).

10 

11Этот справочник предназначен для создателей плагинов и для владельцев маркетплейсов, которые размещают поля компонентов в записи маркетплейса.

12 

13<Note>

14 Эти случаи рассматриваются на других страницах:

15 

16 * **Обучение созданию плагина**: начните с [Создание плагина](/docs/ru/plugins/create)

17 * **Что каждый компонент делает во время выполнения**: см. [Компоненты плагина](/docs/ru/plugins/components)

18</Note>

19 

20Начните с раздела, который соответствует тому, что вы ищете:

21 

22* Поле: таблица [Поля](#fields) дает тип каждого поля, является ли оно обязательным, его значение по умолчанию и что оно принимает. [Правила путей](#path-rules) охватывает префикс `./` и содержание для каждого пути компонента

23* Опция `userConfig` или запись `channels`: схемы [Конфигурация пользователя](#user-configuration) и [Каналы](#channels)

24* `${CLAUDE_PLUGIN_ROOT}` или другая переменная, на которую может ссылаться плагин: [Переменные окружения](#environment-variables)

25* Где находятся файлы каждого компонента: [Стандартное расположение](#standard-layout)

26* Сообщение от `claude plugin validate`: на [странице устранения неполадок](/docs/ru/plugins/troubleshooting) перечислены все сообщения с их исправлениями и ссылками на соответствующие разделы этой страницы

27 

28<h2 id="manifest-file">

29 Файл манифеста

30</h2>

31 

32Манифест является необязательным. Без него Claude Code загружает компоненты, которые находит в [стандартном расположении](#standard-layout). Имя плагина затем берется из записи маркетплейса или из имени директории при загрузке плагина с помощью `--plugin-dir`.

33 

34Напишите манифест, когда вам нужны метаданные, компонент вне его директории по умолчанию, `userConfig` или встроенное определение компонента.

35 

36Сохраните манифест в `.claude-plugin/plugin.json` в корне плагина. Поместите все остальные файлы плагина в корень плагина, а не внутри `.claude-plugin/`. Это включает `skills/`, `commands/` и `hooks/`.

37 

38Следующий пример устанавливает большинство ключей в таблице [Поля](#fields). Он проходит проверку в директории плагина, которая содержит каждый указанный путь.

39 

40```json theme={null}

41{

42 "name": "deploy-tools",

43 "displayName": "Deploy Tools",

44 "version": "1.2.0",

45 "description": "Deployment commands, a review agent, and a status monitor",

46 "author": {

47 "name": "Example Team",

48 "email": "dev@example.com",

49 "url": "https://example.com"

50 },

51 "homepage": "https://example.com/docs/deploy-tools",

52 "repository": "https://github.com/example/deploy-tools",

53 "license": "MIT",

54 "keywords": ["deployment", "ci"],

55 "defaultEnabled": true,

56 "dependencies": ["secrets-vault"],

57 "metadata": { "catalogId": "cat-123" },

58 "skills": ["./extra-skills/"],

59 "commands": {

60 "status": {

61 "source": "./commands/status.md",

62 "description": "Show the current deployment status"

63 },

64 "about": {

65 "content": "Explain what the deploy-tools plugin provides.",

66 "description": "Describe this plugin"

67 }

68 },

69 "agents": ["./agents/reviewer.md"],

70 "hooks": "./config/extra-hooks.json",

71 "mcpServers": {

72 "deploy-api": {

73 "command": "node",

74 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"]

75 }

76 },

77 "lspServers": "./.lsp.json",

78 "outputStyles": "./styles/",

79 "experimental": {

80 "themes": "./themes/",

81 "monitors": "./config/monitors.json"

82 },

83 "userConfig": {

84 "api_token": {

85 "type": "string",

86 "title": "API token",

87 "description": "Token for the deployment API",

88 "sensitive": true

89 }

90 }

91}

92```

93 

94<h3 id="unrecognized-fields">

95 Нераспознанные поля

96</h3>

97 

98Нераспознанный ключ верхнего уровня удаляется, а нераспознанный ключ внутри опции `userConfig`, записи `channels`, конфигурации `lspServers` или записи `monitors` отклоняется:

99 

100* **Поля верхнего уровня**: поле удаляется и плагин загружается. `claude plugin validate` сообщает о каждом нераспознанном поле верхнего уровня как о предупреждении

101* **Строгие объекты**: опции `userConfig`, записи `channels`, конфигурации `lspServers` и записи `monitors` являются строгими. Неизвестный ключ внутри одного из них — это ошибка, и плагин не загружается

102 

103<h3 id="validate-the-manifest">

104 Проверка манифеста

105</h3>

106 

107`claude plugin validate` — это авторитетная проверка манифеста. Запустите его из вашей оболочки для директории плагина:

108 

109```bash theme={null}

110claude plugin validate ./my-plugin

111```

112 

113Команда сообщает один из этих результатов:

114 

115* **`Validation passed`**: манифест загружается

116* **`Validation passed with warnings`**: манифест загружается, но валидатор нашел что-то для исправления, например неизвестное поле верхнего уровня, которое Claude Code удаляет, `name`, который не в kebab-case, или отсутствующие `version`, `description` или `author`. Передайте `--strict`, чтобы превратить предупреждения в ошибки в CI

117* **`Validation failed`**: манифест имеет несоответствие типов, путь, который отсутствует или выходит за пределы корня плагина, или неизвестный ключ внутри опции `userConfig`, записи `channels`, конфигурации `lspServers` или записи `monitors`. Claude Code сообщает о той же проблеме при загрузке плагина

118 

119<h2 id="fields">

120 Поля

121</h2>

122 

123Таблица перечисляет ключи верхнего уровня в `plugin.json`. `name` — единственный обязательный ключ. Где имя поля является ссылкой, связанный раздел содержит его полные правила.

124 

125Для ключей компонентов, таких как `commands` и `hooks`, [Формы путей компонентов](#component-path-forms) показывает каждую принятую форму с примером, и каждый путь следует [правилам путей](#path-rules) для префикса `./`, расширений и содержания.

126 

127| Поле | Тип | Описание |

128| :----------------------------------- | :------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

129| `$schema` | String | URL JSON Schema для автодополнения редактора. Claude Code игнорирует его при загрузке |

130| [`name`](#name) | String | Идентификатор плагина, обязательный. Используйте kebab-case. Каждый компонент находится в пространстве имен под ним |

131| [`displayName`](#displayname) | String | Имя, показываемое в UI вместо `name` |

132| [`version`](#version) | String | Строка версии. Установка ее удерживает пользователей на этой версии, пока вы не измените ее |

133| `description` | String | Краткое объяснение того, что предоставляет плагин |

134| `author` | Object | `name`, который является обязательным, плюс необязательные `email` и `url` |

135| `homepage` | String | URL документации. Должен анализироваться как URL, иначе плагин не загружается |

136| `repository` | String | URL исходного репозитория. Не проверяется |

137| `license` | String | Идентификатор SPDX, такой как `MIT` или `Apache-2.0` |

138| `keywords` | Array of strings | Теги обнаружения |

139| [`metadata`](#metadata) | Object | Объект произвольной формы для ваших собственных данных. Claude Code не читает его |

140| [`defaultEnabled`](#defaultenabled) | Boolean | Включен ли плагин при запуске, когда пользователь не установил его. По умолчанию `true` |

141| [`dependencies`](#dependencies) | Array of strings or objects | Плагины, которые должны быть включены для работы этого |

142| [`settings`](#settings) | Object | Параметры, которые Claude Code применяет при включении плагина. Действуют только `agent` и `subagentStatusLine` |

143| [`userConfig`](#user-configuration) | Object | Значения, которые Claude Code запрашивает у пользователя при включении плагина |

144| [`channels`](#channels) | Array of objects | Каналы сообщений, которые предоставляет плагин, каждый привязан к одному из его MCP серверов |

145| `skills` | Path, or array of paths | Директории для сканирования skills, каждая — директория папок `<name>/SKILL.md` или одна папка, содержащая `SKILL.md` напрямую. `"."` обозначает корень плагина. Добавляет к сканированию по умолчанию `skills/` |

146| [`commands`](#commands) | Path, array of paths, or object | Плоские файлы команд `.md`, директории с ними или объект-карта имени команды на `source` или `content`. Заменяет сканирование по умолчанию `commands/` |

147| `agents` | Path, or array of paths | Файлы агентов `.md`. Директории не принимаются. Заменяет сканирование по умолчанию `agents/` |

148| [`hooks`](#hooks) | Path, object, or array of either | Файлы hook `.json` или встроенная конфигурация hook. Загружаются вместе с `hooks/hooks.json` |

149| [`mcpServers`](#mcpservers) | Path, object, or array of either | Файлы конфигурации MCP `.json`, пакеты `.mcpb` или `.dxt`, или встроенные конфигурации серверов с ключами по имени. Загружаются вместе с `.mcp.json`; имя сервера, объявленное позже, заменяет более раннее |

150| [`lspServers`](#lspservers) | Path, object, or array of either | Файлы конфигурации LSP `.json` или встроенные конфигурации серверов с ключами по имени. Загружаются вместе с `.lsp.json` |

151| `outputStyles` | Path, or array of paths | Файлы стилей вывода или директории. Заменяет сканирование по умолчанию `output-styles/` |

152| `workflows` | Path, or array of paths | Файлы [Workflow](/docs/ru/workflows#distribute-a-workflow-in-a-plugin) `.js` или директории. Заменяет сканирование по умолчанию `workflows/` |

153| `experimental` | Object | Контейнер для `themes`, `monitors` и `evals`, чья форма манифеста может еще измениться |

154| `experimental.themes` | Path, or array of paths | Файлы тем или директории. Заменяет сканирование по умолчанию `themes/`. Ключ `themes` верхнего уровня все еще загружается с предупреждением `claude plugin validate` |

155| [`experimental.monitors`](#monitors) | Path, or inline array | Файл `.json`, содержащий массив monitors, или сам массив. По умолчанию `monitors/monitors.json`. Ключ `monitors` верхнего уровня все еще загружается с предупреждением `claude plugin validate`. Мониторы работают только в интерактивных сеансах и не на Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry |

156| `experimental.evals` | Path, or array of paths | Директория, которая содержит [eval cases](/docs/ru/plugin-evals#use-a-different-eval-directory) плагина, когда это не директория по умолчанию `evals/`. `claude plugin eval --eval-dir` переопределяет ее |

157 

158В столбце Type путь — это строка относительно корня плагина, например `"./custom/commands"`.

159 

160<h3 id="name">

161 `name`

162</h3>

163 

164Идентификатор плагина. Он должен быть непустым, без пробелов, `@`, `:`, разделителей пути, управляющих символов или символов двунаправленного форматирования; используйте kebab-case.

165 

166Claude Code помещает каждый компонент в пространство имен под ним, поэтому агент `reviewer` в плагине `deploy-tools` появляется как `deploy-tools:reviewer`.

167 

168<h3 id="displayname">

169 `displayName`

170</h3>

171 

172Имя, показываемое в UI вместо `name`. Оно может содержать пробелы и любой регистр, и оно не используется для пространства имен или поиска.

173 

174Для плагина, установленного из маркетплейса, `displayName` в [записи маркетплейса](/docs/ru/plugins/marketplace-reference#plugin-entries) имеет приоритет над этим значением.

175 

176<h3 id="version">

177 `version`

178</h3>

179 

180Строка версии, не проверяемая против semver. Установка ее закрепляет плагин на этой версии, пока вы не измените ее; см. [Версии и обновления](/docs/ru/plugins/loading#versions-and-updates). Плагин с [`command` source](/docs/ru/plugins/marketplace-reference), плагин из [маркетплейса, размещенного на claude.ai](/docs/ru/plugins/install#add-from-claude-ai), и плагин [загруженный на месте](/docs/ru/plugins/loading#find-plugins-on-disk) из маркетплейса, добавленного как локальная директория, не закреплены этим полем.

181 

182<h3 id="metadata">

183 `metadata`

184</h3>

185 

186Объект произвольной формы для ваших собственных данных, таких как поля каталога или прав. Claude Code не читает его. Требует Claude Code v2.1.222 или позже.

187 

188<h3 id="defaultenabled">

189 `defaultEnabled`

190</h3>

191 

192Включен ли плагин при запуске, когда пользователь не установил его в [`enabledPlugins`](/docs/ru/settings-reference#enabledplugins). По умолчанию `true`. Плагин, от которого зависит включенный плагин, запускается включенным независимо. То же поле в записи маркетплейса переопределяет это.

193 

194После того как запись `enabledPlugins` пользователя написана, она сохраняется при обновлениях плагина, поэтому изменение `defaultEnabled` в более позднем выпуске не изменяет параметр для существующего пользователя.

195 

196<h3 id="dependencies">

197 `dependencies`

198</h3>

199 

200Плагины, которые должны быть включены для работы этого. Каждая запись — это `"name"`, `"name@marketplace"` или `{ "name": "...", "marketplace": "...", "version": "..." }`. Простые имена разрешаются против собственного маркетплейса этого плагина. См. [ограничения зависимостей](/docs/ru/plugins/dependencies).

201 

202<h3 id="settings">

203 `settings`

204</h3>

205 

206Параметры, которые Claude Code применяет при включении плагина. Действуют только `agent` и `subagentStatusLine`; другие ключи удаляются при загрузке. `settings.json` в корне плагина имеет приоритет над этим ключом. См. [Параметры по умолчанию](/docs/ru/plugins/components#default-settings).

207 

208<h2 id="component-path-forms">

209 Формы путей компонентов

210</h2>

211 

212Каждый ключ компонента принимает путь относительно корня плагина. `hooks`, `mcpServers`, `lspServers` и `experimental.monitors` также принимают встроенную конфигурацию, `commands` также принимает объект-карту, и `mcpServers` также принимает пути пакетов MCP и URL. Примеры, которые следуют, показывают каждую принятую форму один раз. Для того, что каждый компонент делает во время выполнения, см. [Компоненты плагина](/docs/ru/plugins/components).

213 

214<h3 id="path-only-fields">

215 Поля только с путями

216</h3>

217 

218`agents`, `skills`, `outputStyles`, `workflows` и `experimental.themes` принимают один путь или массив путей. Записи `agents` должны быть файлами `.md`, а записи `skills` должны быть директориями. Остальные три принимают директорию или файл.

219 

220```json theme={null}

221{

222 "agents": ["./custom-agents/reviewer.md", "./custom-agents/tester.md"],

223 "skills": ["./extra-skills/", "."],

224 "outputStyles": "./styles/"

225}

226```

227 

228<h3 id="commands">

229 `commands`

230</h3>

231 

232`commands` принимает путь, массив путей или объект-карту. Путь обозначает плоский файл команды `.md` или директорию. В объект-карте каждый ключ становится именем команды после префикса плагина. Например, `"about"` в плагине `deploy-tools` запускается как `/deploy-tools:about`.

233 

234Каждое значение устанавливает ровно один из `source` или `content`, и запись, которая устанавливает оба или ни один, не проходит проверку. Остальные поля в этой таблице являются необязательными:

235 

236| Поле | Тип | Описание |

237| :------------- | :--------------- | :----------------------------------------------------------------------- |

238| `source` | string | Путь к файлу Markdown команды относительно корня плагина |

239| `content` | string | Встроенный Markdown для тела команды вместо `source` |

240| `description` | string | Описание, показываемое для команды |

241| `argumentHint` | string | Подсказка аргумента, показываемая после имени команды, например `[file]` |

242| `model` | string | Модель по умолчанию для команды |

243| `allowedTools` | array of strings | Инструменты, которые команда может использовать без запроса |

244 

245Эта карта объявляет одну команду из файла и одну из встроенного содержимого:

246 

247```json theme={null}

248{

249 "commands": {

250 "status": { "source": "./commands/status.md", "argumentHint": "[env]" },

251 "about": { "content": "Explain what this plugin provides." }

252 }

253}

254```

255 

256<h3 id="hooks">

257 `hooks`

258</h3>

259 

260`hooks` принимает путь файла `.json`, встроенный объект hooks в той же форме, что и [`hooks` в `settings.json`](/docs/ru/hooks#configuration), или массив, смешивающий оба. Для событий hook и полей обработчика см. [справочник hooks](/docs/ru/hooks#hook-events).

261 

262Claude Code объединяет все, что вы объявляете, с `hooks/hooks.json`, когда этот файл существует.

263 

264```json theme={null}

265{

266 "hooks": [

267 "./config/extra-hooks.json",

268 {

269 "PostToolUse": [

270 {

271 "matcher": "Write|Edit",

272 "hooks": [

273 { "type": "command", "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/format.sh" }

274 ]

275 }

276 ]

277 }

278 ]

279}

280```

281 

282<h3 id="mcpservers">

283 `mcpServers`

284</h3>

285 

286`mcpServers` принимает путь файла `.json`, путь пакета MCP или URL, встроенную карту или массив, смешивающий их. Для полей конфигурации сервера см. [MCP серверы, предоставляемые плагином](/docs/ru/mcp#plugin-provided-mcp-servers).

287 

288Claude Code загружает `.mcp.json` в корне плагина первым, затем каждую объявленную форму по порядку. Имя сервера, объявленное позже, заменяет более раннее.

289 

290Значение `mcpServers` принимает одну из этих форм:

291 

292| Форма | Пример значения | Что делает Claude Code |

293| :----------------- | :------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------- |

294| Путь файла `.json` | `"./mcp/servers.json"` | Читает файл как карту `mcpServers` |

295| Путь пакета MCP | `"./bundle.mcpb"` | Извлекает пакет `.mcpb` или `.dxt` в `.mcpb-cache/` в корне плагина и читает его конфигурацию сервера |

296| URL пакета MCP | `"https://example.com/server.mcpb"` | Загружает пакет в `.mcpb-cache/`, затем читает его |

297| Встроенная карта | `{ "deploy-api": { "command": "node", "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"] } }` | Использует карту как конфигурации серверов с ключами по имени |

298 

299Путь пакета или URL должен заканчиваться на `.mcpb` или `.dxt`. Любое другое расширение не проходит проверку.

300 

301<h3 id="lspservers">

302 `lspServers`

303</h3>

304 

305`lspServers` принимает путь файла `.json`, встроенную карту имени сервера на конфигурацию или массив любого из них.

306 

307Claude Code загружает `.lsp.json` в корне плагина первым, затем каждую объявленную конфигурацию по порядку. Имя сервера, объявленное позже, заменяет более раннее.

308 

309Каждая конфигурация сервера — это строгий объект с этими полями. Неизвестный ключ не проходит проверку.

310 

311| Поле | Обязательное | Описание |

312| :---------------------- | :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

313| `command` | Yes | Бинарный файл языкового сервера. Без пробелов, если значение не начинается с `/`; поместите аргументы в `args` |

314| `extensionToLanguage` | Yes | Карта расширения файла на ID языка LSP, по крайней мере одна запись. Ключи начинаются с точки, например `".go"` |

315| `args` | No | Аргументы, передаваемые серверу |

316| `transport` | No | Транспорт связи: `stdio` (по умолчанию) или `socket`. Claude Code принимает `socket`, но запускает каждый сервер через stdio, поэтому правила протокола stdout применяются ко всем серверам |

317| `env` | No | Переменные окружения для процесса сервера |

318| `initializationOptions` | No | Опции, отправляемые в запросе инициализации |

319| `settings` | No | Параметры, отправляемые `workspace/didChangeConfiguration` |

320| `workspaceFolder` | No | Путь папки рабочего пространства для сервера |

321| `startupTimeout` | No | Миллисекунды для ожидания запуска, положительное целое число |

322| `shutdownTimeout` | No | Миллисекунды для ожидания корректного завершения, положительное целое число. Когда истекает время ожидания, Claude Code завершает процесс сервера. Если не установлено, время ожидания не применяется |

323| `restartOnCrash` | No | Перезапускать ли сервер после сбоя. По умолчанию `true`. Установите `false`, чтобы оставить упавший сервер остановленным вместо перезапуска |

324| `maxRestarts` | No | Попытки перезапуска перед отказом, ноль или больше |

325| `diagnostics` | No | Отправлять ли диагностику в контекст после редактирования. По умолчанию `true` |

326 

327Эта встроенная конфигурация запускает `gopls` для файлов `.go`:

328 

329```json theme={null}

330{

331 "lspServers": {

332 "go": {

333 "command": "gopls",

334 "args": ["serve"],

335 "extensionToLanguage": { ".go": "go" }

336 }

337 }

338}

339```

340 

341Для языковых серверов, которые Anthropic публикует как плагины, и того, как серверы ведут себя во время выполнения, см. [Интеллект кода](/docs/ru/plugins/code-intelligence).

342 

343<h3 id="monitors">

344 `monitors`

345</h3>

346 

347`experimental.monitors` принимает путь файла `.json` или встроенный массив. Когда вы опускаете ключ, Claude Code загружает `monitors/monitors.json`, если он существует.

348 

349Каждая запись — это строгий объект с этими полями.

350 

351| Поле | Обязательное | Описание |

352| :------------ | :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

353| `name` | Yes | Идентификатор, уникальный в пределах плагина |

354| `command` | Yes | Команда оболочки, которую Claude Code запускает как постоянный фоновый процесс в директории работы сеанса |

355| `description` | Yes | Краткое резюме, показываемое в панели задач и сводках уведомлений |

356| `when` | No | С `"always"`, по умолчанию, монитор запускается при запуске сеанса и при перезагрузке плагина. С `"on-skill-invoke:<skill>"`, он запускается в первый раз, когда запускается этот skill |

357 

358Этот встроенный массив объявляет один монитор, который запускается в первый раз, когда запускается skill `deploy`:

359 

360```json theme={null}

361{

362 "experimental": {

363 "monitors": [

364 {

365 "name": "deploy-status",

366 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/poll-deploy.sh",

367 "description": "Deployment status changes",

368 "when": "on-skill-invoke:deploy"

369 }

370 ]

371 }

372}

373```

374 

375Команда монитора `command` не может ссылаться на `${user_config.*}`. См. [Поля, которые работают через оболочку](#fields-that-run-through-a-shell).

376 

377<h2 id="path-rules">

378 Правила путей

379</h2>

380 

381Каждый путь компонента в манифесте относителен корню плагина и должен начинаться с `./`. Путь, такой как `commands/foo.md`, не проходит проверку. `skills` и `mcpServers` каждый принимают одну форму вне этого правила:

382 

383* **`skills`**: также принимает `"."`. Оба `"."` и `"./"` обозначают корень плагина. До v2.1.221 `"."` не проходил проверку манифеста, поэтому используйте `"./"`, когда плагин должен загружаться на более ранних версиях

384* **`mcpServers`**: также принимает URL пакета `https://`

385 

386<h3 id="containment-and-existence">

387 Содержание и существование

388</h3>

389 

390Каждый путь компонента должен разрешаться внутри корня плагина и должен существовать. `claude plugin validate` не проверяет пути `outputStyles`, `lspServers`, `monitors` или `themes`, поэтому плохой путь в этих полях не загружается только при загрузке плагина:

391 

392* **Содержание**: путь, который разрешается вне корня плагина, не загружается, и вкладка `/plugin` **Errors** показывает `<component> path escapes plugin directory: <path>`. Путь, содержащий `..`, — обычный случай, и `claude plugin validate` сообщает об этом как `Path contains ".." which could be a path traversal attempt`

393* **Существование**: путь, который не существует, не загружается, и вкладка `/plugin` **Errors** показывает `<component> path not found: <path>`. `claude plugin validate` сообщает об этом как `Path not found`

394 

395<h3 id="how-each-key-combines-with-its-default-location">

396 Как каждый ключ объединяется с его расположением по умолчанию

397</h3>

398 

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

400 

401* **Заменяет по умолчанию**: `commands`, `agents`, `outputStyles`, `workflows`, `experimental.themes`, `experimental.monitors`. Когда вы устанавливаете `commands`, директория по умолчанию `commands/` не сканируется. Чтобы сохранить по умолчанию и добавить больше, перечислите его явно: `"commands": ["./commands/", "./extras/"]`

402* **Добавляет к по умолчанию**: `skills`. Директория `skills/` все еще сканируется, и перечисленные директории загружаются вместе с ней

403* **Объединяет**: `hooks`, `mcpServers`, `lspServers`. Файл по умолчанию загружается первым, и то, что объявляет манифест, объединяется в него, как описано в [Формы путей компонентов](#component-path-forms)

404 

405Если плагин имеет папку по умолчанию, такую как `commands/`, и также устанавливает ключ манифеста, который ее заменяет, Claude Code загружает пути манифеста, а не папку. `claude plugin list` и интерфейс `/plugin` затем показывают предупреждение `Default <folder>/ folder is ignored because the manifest sets "<key>"`.

406 

407Чтобы избежать предупреждения, установите ключ на путь внутри этой папки: `"commands": ["./commands/deploy.md"]` обозначает файл в папке по умолчанию и не производит предупреждение.

408 

409<h2 id="user-configuration">

410 Конфигурация пользователя

411</h2>

412 

413`userConfig` объявляет значения, которые Claude Code запрашивает у пользователя при включении плагина, поэтому пользователи не редактируют `settings.json` сами.

414 

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

416 

417Каждое значение — это строгий объект с этими полями. Неизвестный ключ не проходит проверку.

418 

419| Поле | Обязательное | Описание |

420| :------------ | :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

421| `type` | Yes | Один из `string`, `number`, `boolean`, `directory` или `file` |

422| `title` | Yes | Метка, показываемая в диалоге конфигурации |

423| `description` | Yes | Справочный текст, показываемый под полем |

424| `required` | No | Если `true`, диалог конфигурации не принимает пустое значение |

425| `default` | No | Значение, используемое, когда пользователь ничего не предоставляет: строка, число, логическое значение или массив строк |

426| `options` | No | Для `string`, значения, которые принимает поле, показываемые как выбор в `/config`. См. [Ограничить поле фиксированными опциями](#limit-a-field-to-fixed-options). Требует Claude Code v2.1.271 или позже |

427| `multiple` | No | Для `string`, позволяет массив строк |

428| `sensitive` | No | Если `true`, маскирует ввод и сохраняет значение в безопасном хранилище вместо `settings.json` |

429| `min` / `max` | No | Границы для `number` |

430 

431Каждая опция каждого включенного плагина также появляется как строка в панели `/config`, кроме `sensitive` опций и `multiple` списков. Строки `/config` требуют Claude Code v2.1.269 или позже.

432 

433Этот `userConfig` объявляет конечную точку и замаскированный токен:

434 

435```json theme={null}

436{

437 "userConfig": {

438 "api_endpoint": {

439 "type": "string",

440 "title": "API endpoint",

441 "description": "Your team's API endpoint"

442 },

443 "api_token": {

444 "type": "string",

445 "title": "API token",

446 "description": "API authentication token",

447 "sensitive": true

448 }

449 }

450}

451```

452 

453<h3 id="limit-a-field-to-fixed-options">

454 Ограничить поле фиксированными опциями

455</h3>

456 

457Установите `options` на поле `userConfig`, чтобы пользователи выбирали его значение из фиксированного списка.

458 

459Чтобы ограничить поле `tone` тремя опциями, перечислите их в `options` и установите `default` на одну из них:

460 

461```json theme={null}

462{

463 "userConfig": {

464 "tone": {

465 "type": "string",

466 "title": "Tone",

467 "description": "Voice for generated replies",

468 "options": ["neutral", "warm", "formal"],

469 "default": "neutral"

470 }

471 }

472}

473```

474 

475Если вы объявляете `options` на любом поле, пользователи на версиях Claude Code до v2.1.271 не могут загрузить плагин.

476 

477`options` применяется к полю `string`, которое не является `multiple` или `sensitive`. Установите `default` на одно из перечисленных значений или установите `required: true`, чтобы пользователь выбрал одно. Каждая опция — это простая метка от 1 до 64 символов, и `claude plugin validate`, который вы запускаете в вашей оболочке, сообщает обо всем остальном, что он отклоняет. Плагин, чьи `options` нарушают эти правила, не загружается.

478 

479<h3 id="where-values-are-stored">

480 Где сохраняются значения

481</h3>

482 

483Нечувствительные значения сохраняются в [`pluginConfigs`](/docs/ru/settings-reference#pluginconfigs) в `settings.json` пользователя. Чувствительные значения идут в безопасное хранилище учетных данных платформы вместо этого. На [странице параметров](/docs/ru/settings-reference#pluginconfigs) указано, из каких файлов параметров читается `pluginConfigs`.

484 

485<h3 id="reference-a-saved-value">

486 Ссылка на сохраненное значение

487</h3>

488 

489Ссылайтесь на сохраненное значение, где плагин его нужен, в одной из двух форм:

490 

491* **`${user_config.KEY}`**: подставляется в конфигурацию MCP сервера, конфигурацию LSP сервера, [exec-form](/docs/ru/hooks#exec-form-and-shell-form) hook `args` и содержимое skill и agent. В содержимом skill и agent подставляются только нечувствительные значения, и чувствительное значение там становится заполнителем

492* **`CLAUDE_PLUGIN_OPTION_<KEY>`**: экспортируется в процессы hook для каждой опции, с `<KEY>` в верхнем регистре. Shell-form hook читает `$CLAUDE_PLUGIN_OPTION_API_TOKEN` для `api_token`

493 

494<h3 id="fields-that-run-through-a-shell">

495 Поля, которые работают через оболочку

496</h3>

497 

498Shell-form hook команды, команды монитора и MCP [`headersHelper`](/docs/ru/mcp#use-dynamic-headers-for-custom-authentication) отклоняют `${user_config.*}`. Компонент, который ссылается на него в одном из этих полей, не работает с [ошибкой](/docs/ru/errors#plugin-command-references-user-config) вместо запуска, потому что значение поля передается оболочке, которая переанализирует подставленное значение.

499 

500Таблица показывает, как значение может достичь каждого из этих полей вместо этого.

501 

502| Поле | Как значение может достичь его |

503| :---------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

504| Shell-form hook команды | Используйте [exec form](/docs/ru/hooks#exec-form-and-shell-form) с `args` или читайте `CLAUDE_PLUGIN_OPTION_<KEY>` из окружения hook |

505| Команды монитора | Не через Claude Code. Процессы монитора не получают `CLAUDE_PLUGIN_OPTION_<KEY>`, поэтому скрипт монитора должен получить значение самостоятельно |

506| MCP `headersHelper` | Не через Claude Code. Окружение помощника содержит `CLAUDE_PLUGIN_ROOT`, `CLAUDE_CODE_MCP_SERVER_NAME` и `CLAUDE_CODE_MCP_SERVER_URL`, но не значения опций, поэтому скрипт помощника должен получить значение самостоятельно |

507 

508<h2 id="channels">

509 Каналы

510</h2>

511 

512`channels` объявляет каналы сообщений, которые предоставляет плагин, такие как мост к приложению чата. Когда вы объявляете один, Claude Code может запросить конфигурацию канала при включении плагина. Для того, как сервер внедряет сообщения, см. [справочник каналов](/docs/ru/channels-reference#package-as-a-plugin).

513 

514Каждая запись — это строгий объект, привязанный к одному из MCP серверов плагина, с этими полями:

515 

516| Поле | Обязательное | Описание |

517| :------------ | :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

518| `server` | Yes | Ключ MCP сервера в `mcpServers` этого плагина, к которому привязан канал |

519| `displayName` | No | Имя, показываемое в заголовке диалога конфигурации. По умолчанию имя сервера |

520| `userConfig` | No | Опции для запроса, в той же форме, что и [верхнего уровня `userConfig`](#user-configuration). Сохраненные значения подставляются в ссылки `${user_config.KEY}` в `env` сервера |

521 

522Этот манифест привязывает канал к MCP серверу `telegram` плагина и запрашивает токен бота, который подставляется в `env` сервера:

523 

524```json theme={null}

525{

526 "mcpServers": {

527 "telegram": {

528 "command": "node",

529 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"],

530 "env": { "BOT_TOKEN": "${user_config.bot_token}" }

531 }

532 },

533 "channels": [

534 {

535 "server": "telegram",

536 "displayName": "Telegram",

537 "userConfig": {

538 "bot_token": {

539 "type": "string",

540 "title": "Bot token",

541 "description": "Telegram bot token",

542 "sensitive": true

543 }

544 }

545 }

546 ]

547}

548```

549 

550<h2 id="environment-variables">

551 Переменные окружения

552</h2>

553 

554Claude Code предоставляет три переменные пути компонентам плагина. Ссылайтесь на них как `${NAME}` в полях, перечисленных в [Где каждая переменная разрешается](#where-each-variable-resolves), и читайте их как переменные окружения в процессах, которые их получают.

555 

556| Переменная | Разрешается в | Используйте для |

557| :---------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------ |

558| `${CLAUDE_PLUGIN_ROOT}` | Абсолютный путь установленной версии плагина | Скрипты, бинарные файлы и файлы конфигурации, поставляемые с плагином |

559| `${CLAUDE_PLUGIN_DATA}` | `~/.claude/plugins/data/<id>/`, создается при первой ссылке и сохраняется при обновлениях плагина. `<id>` — это идентификатор плагина с каждым символом, отличным от буквы, цифры, `_` или `-`, замененным на `-` | Установленные зависимости, такие как `node_modules`, сгенерированный код и кэши |

560| `${CLAUDE_PROJECT_DIR}` | Корень проекта | Скрипты и файлы конфигурации, локальные для проекта |

561 

562`${CLAUDE_PLUGIN_ROOT}` изменяется при обновлении плагина, поэтому не записывайте состояние туда. Для того, где корень перемещается и когда старая директория очищается, см. [страницу загрузки](/docs/ru/plugins/loading).

563 

564Когда вы удаляете плагин из последнего места, где он установлен, директория `${CLAUDE_PLUGIN_DATA}` удаляется, если вы не передадите [`--keep-data`](/docs/ru/plugins/cli-reference).

565 

566<h3 id="where-each-variable-resolves">

567 Где каждая переменная разрешается

568</h3>

569 

570В каждом компоненте плагина ссылки `${...}` разрешаются встроенным образом в определенных полях, и некоторые компоненты также получают переменные в окружении их процесса:

571 

572| Компонент плагина | Поля, где `${...}` разрешается | Экспортируется в процесс |

573| :--------------------------------- | :------------------------------------------ | :---------------------------------------------------------------------------------------------- |

574| Команды Hook | Где угодно в `command` и `args` | `CLAUDE_PLUGIN_ROOT`, `CLAUDE_PLUGIN_DATA`, `CLAUDE_PROJECT_DIR` и `CLAUDE_PLUGIN_OPTION_<KEY>` |

575| Команды монитора | Где угодно в `command` | Не экспортируется |

576| MCP `stdio` серверы | `command`, `args`, `env` | `CLAUDE_PLUGIN_ROOT`, `CLAUDE_PLUGIN_DATA` |

577| MCP `http`, `sse`, `ws` серверы | `url`, `headers`, `headersHelper` | Не применимо |

578| LSP серверы | `command`, `args`, `env`, `workspaceFolder` | `CLAUDE_PLUGIN_ROOT`, `CLAUDE_PLUGIN_DATA`, `CLAUDE_PROJECT_DIR` |

579| Содержимое Skill, команды и агента | Где угодно в теле Markdown | Не применимо |

580 

581Переменные отсутствуют в окружении команд, которые Claude запускает через инструмент Bash, в основном сеансе или в подагенте. В содержимом skill, команды и агента напишите ссылку `${...}` в теле Markdown вместо этого, и Claude Code подставляет путь встроенным образом при загрузке содержимого.

582 

583<h3 id="quoting-and-path-separators">

584 Кавычки и разделители пути

585</h3>

586 

587Сохраняйте каждый подставленный путь одним аргументом:

588 

589* **Команды Hook**: используйте [exec form](/docs/ru/hooks#exec-form-and-shell-form) с `args`, чтобы каждый путь был одним аргументом без кавычек

590* **Shell-form hooks и команды монитора**: оберните переменную в двойные кавычки, чтобы путь с пробелами оставался одним словом

591 

592Этот shell-form hook запускает скрипт, поставляемый с плагином:

593 

594```json theme={null}

595{

596 "hooks": {

597 "PostToolUse": [

598 {

599 "hooks": [

600 {

601 "type": "command",

602 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/process.sh"

603 }

604 ]

605 }

606 ]

607 }

608}

609```

610 

611На Windows подставленные пути используют прямые слэши, поэтому оболочка не читает обратные слэши как экранирование.

612 

613<h2 id="standard-layout">

614 Стандартное расположение

615</h2>

616 

617Каждый тип компонента имеет расположение по умолчанию в корне плагина, используемое, когда манифест не указывает иное.

618 

619| Компонент | Расположение по умолчанию | Содержимое |

620| :---------------- | :--------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

621| Манифест | `.claude-plugin/plugin.json` | Метаданные и конфигурация плагина. Необязательно |

622| Skills | `skills/` | Один `<name>/SKILL.md` на skill. Плагин с `SKILL.md` в корне, без `skills/` и без ключа `skills` загружается как один skill |

623| Команды | `commands/` | Плоские файлы команд Markdown. Предпочитайте `skills/` для новых плагинов |

624| Агенты | `agents/` | Файлы Markdown агентов. Подпапки являются частью [имени агента](/docs/ru/plugins/components#agents) |

625| Hooks | `hooks/hooks.json` | Конфигурация hook |

626| MCP серверы | `.mcp.json` | Определения MCP сервера |

627| LSP серверы | `.lsp.json` | Конфигурации LSP сервера |

628| Стили вывода | `output-styles/` | Файлы стилей вывода Markdown |

629| Workflows | `workflows/` | Файлы Workflow `.js` |

630| Темы | `themes/` | Файлы темы JSON |

631| Мониторы | `monitors/monitors.json` | Массив мониторов |

632| Исполняемые файлы | `bin/` | Файлы здесь находятся на `PATH` инструмента Bash при включении плагина, поэтому Claude запускает их как простые команды. claude.ai и Cowork не устанавливают плагин, который имеет эту директорию, включая тот, который вы [распространяете через параметры организации claude.ai](/docs/ru/plugins/host-marketplace#distribute-through-organization-settings) |

633| Параметры | `settings.json` | Значения по умолчанию `agent` и `subagentStatusLine`, применяемые при включении плагина |

634 

635Плагин, который использует каждое расположение по умолчанию, плюс папку `scripts/`, которую вызывают его hooks, расположен следующим образом:

636 

637```text theme={null}

638deploy-tools/

639├── .claude-plugin/

640│ └── plugin.json

641├── skills/

642│ └── deploy/

643│ └── SKILL.md

644├── commands/

645│ └── status.md

646├── agents/

647│ └── reviewer.md

648├── hooks/

649│ └── hooks.json

650├── monitors/

651│ └── monitors.json

652├── output-styles/

653│ └── terse.md

654├── themes/

655│ └── dracula.json

656├── workflows/

657│ └── release-audit.js

658├── bin/

659│ └── deploy-tool

660├── scripts/

661│ └── format.sh

662├── settings.json

663├── .mcp.json

664└── .lsp.json

665```

666 

667Чтобы щелкнуть по этому расположению и прочитать, что делает каждый файл, откройте [обозреватель плагинов](/docs/ru/plugins/components#explore-the-plugin-directory).

668 

669`CLAUDE.md` в корне плагина не загружается как контекст, и `claude plugin validate` предупреждает, когда находит его. Чтобы включить инструкции, которые загружаются в контекст Claude, поместите их в skill.

670 

671<h2 id="marketplace-entries-and-the-manifest">

672 Записи маркетплейса и манифест

673</h2>

674 

675[Запись маркетплейса](/docs/ru/plugins/marketplace-reference) принимает каждое поле на этой странице наряду с [его собственными полями](/docs/ru/plugins/marketplace-reference#plugin-entries), включая `strict`.

676 

677Поле `strict` решает, может ли запись добавлять компоненты к плагину, который имеет свой `plugin.json`. По умолчанию `true`.

678 

679<h3 id="how-entry-fields-combine-with-plugin-json">

680 Как поля записи объединяются с `plugin.json`

681</h3>

682 

683Запись либо служит манифестом, добавляет компоненты к нему, либо конфликтует с ним:

684 

685* **Нет `plugin.json`**: запись — это манифест, независимо от `strict`. Hooks записи загружаются только в встроенной форме объекта. Для пути файла или массива там вкладка `/plugin` **Errors** показывает ошибку `not yet supported in a marketplace entry`

686* **`plugin.json` присутствует, `strict` не установлен или `true`**: Claude Code загружает манифест и добавляет `commands`, `agents`, `skills`, `outputStyles` и `themes` записи к нему. Для `hooks`, matchers записи для события заменяют matchers манифеста для того же события, и события, которые объявляет только манифест, сохраняют свои

687* **`plugin.json` присутствует, `strict: false`**: запись, которая объявляет любой из `commands`, `agents`, `skills`, `hooks`, `outputStyles` или `themes`, — это конфликт, и плагин не загружается с `Plugin <name> has conflicting manifests`

688 

689Когда [запись маркетплейса, чей `source` — корень маркетплейса](/docs/ru/plugins/marketplace-reference), перечисляет определенные поддиректории `skills`, загружаются только эти поддиректории, и директория по умолчанию `skills/` плагина не сканируется. Ключ `skills` в манифесте вместо этого [добавляет к по умолчанию](#how-each-key-combines-with-its-default-location).

690 

691<h3 id="metadata-precedence">

692 Приоритет метаданных

693</h3>

694 

695Некоторые поля метаданных имеют фиксированный приоритет независимо от `strict`:

696 

697* **`defaultEnabled` и поля отображения**: `defaultEnabled` записи и ее [поля отображения](/docs/ru/plugins/marketplace-reference#entry-and-plugin-json), такие как `displayName`, переопределяют манифеста

698* **`version`**: `version` манифеста переопределяет запись

699* **`name`**: когда запись перечисляет плагин под другим `name`, чем манифест, `enabledPlugins` использует имя записи, и компоненты находятся в пространстве имен под именем манифеста

700 

701Для полной таблицы приоритета см. [Строгий режим](/docs/ru/plugins/marketplace-reference).

702 

703<h2 id="next-steps">

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

705</h2>

706 

707* [Добавить компоненты к плагину](/docs/ru/plugins/components): что каждый компонент делает во время выполнения, с примером, который проходит проверку

708* [Справочник маркетплейса](/docs/ru/plugins/marketplace-reference): поля записи, которые маркетплейс может установить для вашего плагина

709* [Справочник команд плагина](/docs/ru/plugins/cli-reference#plugin-validate): флаги и вывод `claude plugin validate`

710* [Устранение неполадок плагинов](/docs/ru/plugins/troubleshooting#claude-plugin-validate-reports-errors): каждое сообщение проверки с его исправлением

Details

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# Справочник Marketplace

6 

7> Полный справочник по полям marketplace.json, записям плагинов и объектам источников плагинов и marketplace, с указанием того, где каждый из них действителен.

8 

9`marketplace.json` — это файл, который определяет marketplace плагинов. Он содержит имя marketplace, его владельца и одну запись для каждого плагина. Источник плагина каждой записи указывает, откуда Claude Code загружает этот плагин.

10 

11Источник marketplace — это отдельный объект, который указывает, откуда Claude Code загружает сам файл marketplace. Вы пишете его в параметрах, или Claude Code создаёт его при запуске `claude plugin marketplace add`.

12 

13Этот справочник предназначен для разработчиков marketplace, которым нужно точное имя или значение поля, и для администраторов, которым нужно знать, какие значения `source` действительны в [`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces), [`strictKnownMarketplaces`](/docs/ru/settings-reference#strictknownmarketplaces) и [`blockedMarketplaces`](/docs/ru/plugins/org#restrict-what-users-can-install).

14 

15<Note>

16 Эти случаи рассмотрены на других страницах:

17 

18 * **Создание или размещение marketplace**: см. [Создание marketplace](/docs/ru/plugins/create-marketplace) и [Размещение и поддержка marketplace](/docs/ru/plugins/host-marketplace)

19 * **Рецепты списков разрешений и запретов**: см. [Управление плагинами для вашей организации](/docs/ru/plugins/org)

20</Note>

21 

22Найдите раздел для того, что вы пишете или читаете:

23 

24* **Файл marketplace**: [Поля верхнего уровня](#top-level-fields) и [Записи плагинов](#plugin-entries)

25* **`source` записи**: [Источники плагинов](#plugin-sources)

26* **Объект `source` в параметрах**: [Источники marketplace](#marketplace-sources)

27* **Вывод из [`claude plugin validate <path>`](/docs/ru/plugins/cli-reference)**: [Сообщения валидации](#validation-messages), которые сопоставляют каждое сообщение с полем, которое оно называет

28 

29<h2 id="marketplace-file">

30 Файл marketplace

31</h2>

32 

33Сохраняйте файл marketplace в `.claude-plugin/marketplace.json` в директории вашего marketplace. Если вы храните файл в другом месте репозитория, пользователи должны объявить marketplace в [`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces) с установленным `path` на его источник, потому что `claude plugin marketplace add` не имеет для этого опции.

34 

35Директория, которая содержит `.claude-plugin/`, называется корневой директорией marketplace, и каждый относительный источник плагина разрешается из неё, а не из `.claude-plugin/`.

36 

37Каждый пользователь регистрирует один marketplace на `name`, поэтому пользователь не может иметь два marketplace с одинаковым именем, зарегистрированные одновременно.

38 

39Claude Code игнорирует неизвестный ключ верхнего уровня или ключ записи плагина, а не отклоняет его, поэтому опечатка загружается молча. `claude plugin validate` сообщает о каждом неизвестном ключе как о предупреждении.

40 

41<h3 id="reserved-names">

42 Зарезервированные имена

43</h3>

44 

45Вы не можете дать вашему marketplace ни одно из следующих имён:

46 

47* **Имена официального marketplace**: `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `anthropic-agent-skills`, `life-sciences`, `knowledge-work-plugins`, `claude-for-legal`, `claude-for-financial-services`, `financial-services-plugins`, `first-party-plugins` и `claude-tag-plugins`. Зарезервированы, если только marketplace не поступает из источника `github` или `git` [marketplace source](#marketplace-sources) под `github.com/anthropics/`.

48* **Имена community marketplace**: `claude-community`, `claude-plugins-community` и `healthcare`. Зарезервированы по тому же правилу, что и официальные имена.

49* **Имена директории плагинов**: `anthropic-plugin-directory` и `claude-plugin-directory`. Зарезервированы по тому же правилу, что и официальные имена.

50* **Имена, выдающие себя за официальный marketplace**: имена такие как `official-claude-plugins` или `claude-plugins-v2`, и любое имя, содержащее символ, отличный от ASCII. Ошибка: `Marketplace name impersonates an official Anthropic/Claude marketplace`. Управляющий символ или символ двунаправленного форматирования в имени также сообщает `Marketplace name cannot contain control or bidirectional-formatting characters`.

51* <span id="reserved-name-spellings" />**Другое написание зарезервированного имени**: имя, которое отличается от зарезервированного имени только конечной точкой, или символом, отличным от подчёркивания, вместо дефиса, поэтому `claude.code.plugins` считается `claude-code-plugins`. `claude plugin validate` принимает такое имя; добавление marketplace завершается ошибкой [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/ru/errors#marketplace-name-is-another-spelling-of-a-reserved-name), и marketplace, уже зарегистрированный под одним, перестаёт загружаться. Эта проверка требует Claude Code v2.1.280 или позже.

52* **Имена, которые Claude Code использует для плагинов, которые не поступают из marketplace**: `inline` для плагинов, загруженных с [`--plugin-dir`](/docs/ru/cli-reference), `builtin` для встроенных плагинов, `skills-dir` для плагинов, автоматически загруженных из [`.claude/skills/`](/docs/ru/skills), и `synced` для плагинов, синхронизированных с вашего аккаунта claude.ai. `claude-plugin-test` также зарезервирован. `skills-dir` также появляется как `{"source": "skills-dir"}` в `strictKnownMarketplaces` и `blockedMarketplaces`, описанные в разделе [Source values valid only in policy lists](#source-values-valid-only-in-policy-lists).

53* **`npm`, `pip`, `uv`, `cargo`, `github` и `gh`**: зарезервированы в любом регистре. Эта проверка требует Claude Code v2.1.275 или позже.

54* **Имена, начинающиеся с `claudeai-`**: зарезервированы для marketplace, размещённых на claude.ai. `claude plugin marketplace add` отказывает любому другому marketplace, который использует один с `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`.

55 

56<h2 id="top-level-fields">

57 Поля верхнего уровня

58</h2>

59 

60Таблица перечисляет каждый ключ, который Claude Code читает из `marketplace.json`. `name`, `owner` и `plugins` являются обязательными.

61 

62| Поле | Тип | Описание |

63| :----------------------------------------- | :--------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

64| `name` | string | Идентификатор Marketplace. Без пробелов, управляющих символов или символов двунаправленного форматирования, без `/` или `\`, без `..` и не `.`. См. [Зарезервированные имена](#reserved-names). Пользователи вводят его после `@` при установке плагина |

65| `owner` | object | Информация о разработчике. `name` обязателен; `email` и `url` опциональны |

66| `plugins` | array | [Записи плагинов](#plugin-entries). Каждая запись проверяется отдельно, поэтому одна неверная запись не приводит к отказу marketplace |

67| `$schema` | string | URL JSON Schema для автодополнения редактора. Игнорируется при загрузке |

68| `description` | string | Описание Marketplace, показываемое пользователям. `claude plugin validate` предупреждает, когда оно отсутствует |

69| `version` | string | Версия манифеста Marketplace |

70| `metadata.description`, `metadata.version` | string | Альтернативное местоположение для `description` и `version` |

71| `metadata.pluginRoot` | string | Каталог, под которым разрешаются имена источников плагинов без префикса. См. [Источник плагина с относительным путём](#relative-path-plugin-source). Требует Claude Code v2.1.239 или позже |

72| `forceRemoveDeletedPlugins` | boolean | Когда `true`, плагин, который вы удаляете из `plugins`, удаляется на машинах пользователей. См. [Размещение и поддержка marketplace](/docs/ru/plugins/host-marketplace) |

73| `allowCrossMarketplaceDependenciesOn` | array of strings | Имена marketplace, чьи плагины могут быть установлены как зависимости плагинов этого marketplace. При установке плагина применяется только список в собственном marketplace этого плагина для всей цепочки зависимостей. См. [Зависимости плагинов](/docs/ru/plugins/dependencies) |

74| `renames` | object | Карта от бывшего `name` плагина к его текущему имени или к `null` для удалённого плагина. Требует Claude Code v2.1.193 или позже. См. [Размещение и поддержка marketplace](/docs/ru/plugins/host-marketplace) |

75 

76<h2 id="plugin-entries">

77 Записи плагинов

78</h2>

79 

80Каждый объект в массиве `plugins` верхнего уровня `marketplace.json` называет плагин и указывает, откуда его загружать. `name` и `source` являются обязательными.

81 

82Запись также принимает каждое поле [`plugin.json`](/docs/ru/plugins/manifest-reference), такое как `description`, `version`, `author`, `commands` и `hooks`. Для того, когда эти поля применяются, см. [Как запись объединяется с plugin.json](#entry-and-plugin-json).

83 

84Таблица перечисляет собственные поля записи и поля манифеста, чьё значение изменяется в записи.

85 

86| Поле | Тип | Описание |

87| :--------------- | :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

88| `name` | string | Идентификатор плагина без пробелов, управляющих символов или символов двунаправленного форматирования. Пользователи вводят его перед `@` при установке, даже когда собственный `plugin.json` плагина устанавливает другой `name` |

89| `source` | string or object | Откуда загружать плагин. См. [Источники плагинов](#plugin-sources) |

90| `description` | string | Показывается в списках и деталях [`/plugin`](/docs/ru/plugins/install) |

91| `version` | string | Строка версии для плагина. Когда `plugin.json` также устанавливает `version`, `plugin.json` имеет приоритет и `claude plugin validate` предупреждает. См. [Справочник загрузки плагинов](/docs/ru/plugins/loading) |

92| `category` | string | Свободная категория для организации каталога |

93| `tags` | array of strings | Свободные теги для поиска |

94| `strict` | boolean | По умолчанию `true`. Является ли `plugin.json` определяющим источником компонентов плагина. См. [Строгий режим](#strict-mode) |

95| `relevance` | object | Сигналы, которые говорят Claude Code, когда предложить плагин. См. [Рекомендация плагинов для вашей организации](/docs/ru/plugins/relevance) |

96| `dependencies` | array | Плагины, которые должны быть включены, чтобы этот работал. Каждый элемент — это `"name"`, `"name@marketplace"` или объект. См. [Зависимости плагинов](/docs/ru/plugins/dependencies) |

97| `defaultEnabled` | boolean | По умолчанию `true`. Включен ли плагин по умолчанию, когда пользователь не установил его в [`enabledPlugins`](/docs/ru/settings-reference#enabledplugins). Значение записи имеет приоритет над `plugin.json` |

98| `displayName` | string | Читаемое имя, показываемое в пользовательском интерфейсе. Когда ни запись, ни `plugin.json` плагина не устанавливают его, пользователи видят `name` плагина |

99| `metadata` | object | Свободный объект для ваших собственных полей. Claude Code не читает его. Требует Claude Code v2.1.222 или позже |

100| `headers` | object | HTTP-заголовки, которые Claude Code отправляет при загрузке [архива](#archive-plugin-source) этой записи. Заголовок, установленный здесь, заменяет заголовок с тем же именем из [`headers`](#fields-by-type) источника marketplace. Требует Claude Code v2.1.238 или позже |

101| `headersHelper` | string | Команда, которая выводит заголовки загрузки архива этой записи как один объект JSON для учётных данных, которые истекают. Запись также должна установить [`"strict": false`](#strict-mode). Требует Claude Code v2.1.238 или позже. См. [Аутентификация загрузок архивов](/docs/ru/plugins/host-marketplace#authenticate-archive-downloads) |

102 

103<h3 id="entry-and-plugin-json">

104 Как запись объединяется с plugin.json

105</h3>

106 

107Поля записи применяются по-разному к загруженному плагину, который имеет свой собственный `.claude-plugin/plugin.json`, и к тому, который его не имеет:

108 

109* **Нет `plugin.json`**: запись является манифестом независимо от `strict`. Каждое поле манифеста в записи применяется, включая [`mcpServers`, `lspServers`, `userConfig` и `channels`](/docs/ru/plugins/manifest-reference).

110* **`plugin.json` присутствует**: `plugin.json` является манифестом. [Строгий режим](#strict-mode) решает, объединяются ли шесть полей компонентов записи, `commands`, `agents`, `skills`, `hooks`, `outputStyles` и `themes`, с ним или отклоняются как конфликт. Запись `mcpServers`, `lspServers`, `userConfig` и `channels` не применяются. Объявите их в `plugin.json`.

111 

112<h4 id="hooks-in-an-entry">

113 Hooks в записи

114</h4>

115 

116Напишите запись `hooks` как встроенный объект, который сопоставляет имена событий hook с массивами сопоставителей. Если вы напишете путь к файлу или массив вместо этого, `claude plugin validate` пройдёт. Эти hooks никогда не запускаются, и Claude Code сообщает об ошибке `not yet supported in a marketplace entry` для плагина. Поместите hooks на основе файлов в собственный [`hooks/hooks.json`](/docs/ru/plugins/components) плагина или `plugin.json`.

117 

118<h4 id="display-fields">

119 Поля отображения

120</h4>

121 

122Как запись, так и собственный `plugin.json` плагина могут устанавливать поля отображения `displayName`, `description`, `author`, `homepage`, `repository`, `license` и `keywords`. Пользователи видят эти значения в списках и деталях плагинов до и после установки:

123 

124* Для поля, которое вы устанавливаете в записи, пользователи видят значение записи, даже когда `plugin.json` устанавливает другое.

125* Для поля, которое запись оставляет неустановленным, пользователи видят значение `plugin.json`.

126 

127До установки Claude Code может читать `plugin.json` только для записей с [источником с относительным путём](#relative-path-plugin-source), чьи файлы плагинов находятся внутри самого marketplace. Для записи с любым другим типом источника пользователи видят только собственные поля записи до установки плагина.

128 

129<h3 id="strict-mode">

130 Строгий режим

131</h3>

132 

133`strict` решает, что происходит, когда загруженный плагин имеет свой собственный `plugin.json` и запись также объявляет любое из [полей компонентов](#entry-and-plugin-json): `commands`, `agents`, `skills`, `hooks`, `outputStyles` или `themes`. При `strict: true`, по умолчанию, Claude Code добавляет поля компонентов записи к `plugin.json`, кроме `hooks`, чьи сопоставители заменяют сопоставители манифеста на событие. При `strict: false`, запись, которая объявляет любое поле компонента, является конфликтом, и плагин не загружается. Таблица показывает каждую комбинацию `strict`, `plugin.json` и полей компонентов записи.

134 

135| `strict` | `plugin.json` | Поля компонентов записи | Результат |

136| :------------------- | :------------ | :---------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

137| любой | отсутствует | любой | Запись является манифестом |

138| `true`, по умолчанию | присутствует | любой | `plugin.json` является авторитетом. Claude Code добавляет поля компонентов записи к нему, кроме `hooks`, чьи сопоставители [заменяют сопоставители манифеста на событие](/docs/ru/plugins/manifest-reference#how-entry-fields-combine-with-plugin-json) |

139| `false` | присутствует | нет | `plugin.json` является манифестом, как с `true` |

140| `false` | присутствует | один или более | Конфликт. Плагин не загружается с `Plugin <name> has conflicting manifests: both plugin.json and marketplace entry specify components` |

141 

142<h2 id="plugin-sources">

143 Источники плагинов

144</h2>

145 

146`source` записи плагина указывает, откуда Claude Code загружает этот плагин. Это либо строка относительного пути, либо объект, чей собственный ключ `source` называет тип, поэтому запись выглядит как `"source": { "source": "github", "repo": "your-org/formatter" }`.

147 

148Таблица перечисляет каждый тип источника плагина и его поля.

149 

150| Тип | Поля | Примечания |

151| :----------------- | :------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

152| Относительный путь | сама строка | Каталог внутри marketplace, разрешённый от корня marketplace. Должен начинаться с `./`, если только вы не напишете [имя без префикса под `metadata.pluginRoot`](#relative-path-plugin-source). `"."` само по себе означает сам корень |

153| `github` | `repo`, `ref`, `sha` | Репозиторий GitHub в форме `owner/repo` |

154| `url` | `url`, `ref`, `sha` | Любой git-репозиторий по URL |

155| `git-subdir` | `url`, `path`, `ref`, `sha` | Один подкаталог git-репозитория, загруженный с разреженным частичным клоном |

156| `npm` | `package`, `version`, `registry` | npm-пакет, загруженный с вашим npm-клиентом и распакованный без запуска скриптов установки |

157| `archive` | `url`, `sha256` | Zip-архив через HTTPS. Требует Claude Code v2.1.224 или позже |

158| `command` | `command`, `timeout`, `mode` | Каталог, выведенный командой, которую Claude Code запускает на машине пользователя. Требует Claude Code v2.1.229 или позже |

159 

160Имена `url` и `github` также являются типами [источника marketplace](#marketplace-sources), где `url` означает прямую ссылку на файл `marketplace.json` вместо git-репозитория. `git` существует только как источник marketplace, и `npm` существует как оба. `git-subdir`, `archive` и `command` существуют только как источники плагинов.

161 

162Используйте относительный путь для плагина в подкаталоге самого репозитория marketplace. Используйте `git-subdir` для подкаталога какого-то другого репозитория.

163 

164Источники `github`, `url` и `git-subdir` совместно используют поля `ref` и `sha`:

165 

166* **`ref`**: ветка или тег. По умолчанию ветка репозитория по умолчанию.

167* **`sha`**: полный 40-символьный SHA коммита в нижнем регистре. Когда вы устанавливаете оба `ref` и `sha`, Claude Code проверяет `sha`. На большинстве git-хостов, включая GitHub, GitLab и Bitbucket, это означает, что установка успешна, даже если ветка или тег, названные `ref`, были удалены выше по течению, пока коммит всё ещё достижим из репозитория. Некоторые серверы, такие как AWS CodeCommit, не поддерживают загрузку коммитов по SHA. На этих серверах `ref` всё ещё должен существовать и закреплённый коммит должен быть достижим из него.

168 

169Для того, как каждый тип загружается, кэшируется и версионируется, см. [Справочник загрузки плагинов](/docs/ru/plugins/loading).

170 

171<h3 id="relative-path-plugin-source">

172 Источник плагина с относительным путём

173</h3>

174 

175Путь разрешается от корня marketplace. `./plugins/formatter` — это `<root>/plugins/formatter`, даже хотя файл marketplace находится в `<root>/.claude-plugin/`.

176 

177Путь, содержащий `..`, не проходит валидацию. На macOS и Linux Claude Code отказывает в записи пути, содержащей обратную косую черту где-либо после начального `./`, поэтому напишите путь с прямыми косыми чертами.

178 

179```json theme={null}

180{ "name": "formatter", "source": "./plugins/formatter" }

181```

182 

183Относительный путь разрешается только, когда Claude Code имеет файлы marketplace, поэтому проверьте тип [источника marketplace](#marketplace-sources):

184 

185* **`github`, `git`, `file` и `directory`**: Claude Code имеет файлы marketplace.

186* **`url`**: Claude Code загружает только `marketplace.json`, поэтому относительные пути не могут разрешаться. Дайте каждому плагину источник объекта вместо этого, такой как `github` или `git-subdir`.

187* **`settings`**: относительные пути отклоняются сразу.

188 

189<h4 id="bare-names-under-pluginroot">

190 Имена без префикса под pluginRoot

191</h4>

192 

193Имя без префикса — это одно имя каталога без `/`, такое как `"formatter"`. Чтобы писать имена без префикса вместо путей `./`, установите [`metadata.pluginRoot`](#top-level-fields) на каталог, под которым они разрешаются. С `"pluginRoot": "./plugins"`, `"source": "formatter"` разрешается в `./plugins/formatter`. Требует Claude Code v2.1.239 или позже.

194 

195`metadata.pluginRoot` имеет эти ограничения:

196 

197* Он сам должен быть относительным путём внутри marketplace.

198* Он не влияет на источник, который уже начинается с `./`.

199* Источник, содержащий `/`, такой как `team-a/formatter`, не является именем без префикса и всё ещё нуждается в префиксе `./`, даже когда установлен `metadata.pluginRoot`.

200 

201<h3 id="github-plugin-source">

202 Источник плагина github

203</h3>

204 

205`repo` принимает `owner/repo`. `ref` и `sha` опциональны.

206 

207```json theme={null}

208{

209 "name": "formatter",

210 "source": {

211 "source": "github",

212 "repo": "your-org/formatter",

213 "ref": "v2.0.0",

214 "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"

215 }

216}

217```

218 

219<h3 id="url-plugin-source">

220 Источник плагина url

221</h3>

222 

223`url` — это полный git URL: `https://`, `http://`, `file://` или `git@`. Суффикс `.git` не требуется, поэтому URL Azure DevOps и AWS CodeCommit работают как написано. Этот тип не принимает сокращение `owner/repo`.

224 

225```json theme={null}

226{

227 "name": "formatter",

228 "source": {

229 "source": "url",

230 "url": "https://gitlab.example.com/your-group/formatter.git",

231 "ref": "main"

232 }

233}

234```

235 

236<h3 id="git-subdir-plugin-source">

237 Источник плагина git-subdir

238</h3>

239 

240`url` принимает полный git URL или сокращение GitHub `owner/repo`. `path` — это подкаталог, который содержит плагин, и Claude Code загружает только этот подкаталог.

241 

242```json theme={null}

243{

244 "name": "formatter",

245 "source": {

246 "source": "git-subdir",

247 "url": "https://github.com/your-org/monorepo.git",

248 "path": "tools/formatter"

249 }

250}

251```

252 

253<h3 id="npm-plugin-source">

254 Источник плагина npm

255</h3>

256 

257Источник `npm` принимает эти поля:

258 

259* `package`: имя пакета или имя с областью видимости, такое как `@your-org/formatter`

260* `version`: версия или диапазон

261* `registry`: URL реестра для пакета, который не находится в реестре по умолчанию

262 

263Claude Code загружает пакет с вашим npm-клиентом. Скрипты установки пакета, такие как `preinstall` или `postinstall`, никогда не запускаются, и его зависимости не устанавливаются во время загрузки. Если пакет имеет поддерживаемый файл блокировки рядом с его `package.json`, Claude Code устанавливает эти [зависимости пакетов Node.js](/docs/ru/plugins/loading#node-js-package-dependencies) в отдельном шаге, также с отключёнными скриптами.

264 

265```json theme={null}

266{

267 "name": "formatter",

268 "source": {

269 "source": "npm",

270 "package": "@your-org/formatter",

271 "version": "^2.0.0",

272 "registry": "https://npm.example.com"

273 }

274}

275```

276 

277<h3 id="archive-plugin-source">

278 Источник плагина archive

279</h3>

280 

281`url` должен использовать `https://` и не может указывать на хост обратной связи, локальной связи или облачных метаданных.

282 

283Корень плагина может быть в верхней части zip или на один каталог ниже.

284 

285`sha256` — это дайджест архива как 64 шестнадцатеричных символа, прописные или строчные. Когда вы его устанавливаете, Claude Code отказывает в загрузке, которая не совпадает.

286 

287```json theme={null}

288{

289 "name": "formatter",

290 "source": {

291 "source": "archive",

292 "url": "https://artifacts.example.com/formatter-2.0.0.zip",

293 "sha256": "6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1"

294 }

295}

296```

297 

298<h3 id="command-plugin-source">

299 Источник плагина command

300</h3>

301 

302Используйте источник `command`, когда инструмент, установленный на машине пользователя, производит каталог плагина, такой как IDE, которая отображает свой плагин для цепочки инструментов, которую выбрал пользователь. Claude Code запускает команду, когда пользователь устанавливает или обновляет плагин, и [снова один раз за сеанс](/docs/ru/plugins/loading#when-a-command-source-re-runs), поэтому пользователи получают изменённый вывод инструмента без переустановки.

303 

304Источник `command` принимает эти поля:

305 

306* `command`: команда оболочки, которая выводит абсолютный путь каталога плагина как одну строку и выходит 0. Claude Code показывает пользователям всю строку для проверки перед её запуском. Напишите её как печатаемый ASCII, максимум 500 символов, без прогона из четырёх или более пробелов.

307* `timeout`: целое число секунд от 1 до 600. По умолчанию 60.

308* `mode`: `copy`, по умолчанию, или `link`. См. [Режим копирования и режим ссылки](#copy-mode-and-link-mode).

309 

310```json theme={null}

311{

312 "name": "formatter",

313 "source": {

314 "source": "command",

315 "command": "my-tool claude-plugin-path",

316 "timeout": 120

317 }

318}

319```

320 

321Для того, как пользователи принимают команду, см. [Установка из вашей оболочки](/docs/ru/plugins/install#install-from-your-shell). Для того, что пользователи видят после того, как вы её измените, см. [Изменение команды источника command](/docs/ru/plugins/host-marketplace#change-the-command-of-a-command-source). Администраторы отключают источники command с [`disableCommandPluginSources`](/docs/ru/settings-reference#disablecommandpluginsources).

322 

323<h4 id="what-the-command-must-do">

324 Что должна делать команда

325</h4>

326 

327Напишите команду, чтобы соответствовать этим требованиям:

328 

329* **Оболочка и рабочий каталог**: Claude Code запускает команду через `sh` или через `cmd.exe` на Windows из домашнего каталога пользователя. Дайте абсолютный путь или команду на `PATH`.

330* **Вывод**: выведите ровно одну строку на stdout, абсолютный путь каталога плагина, и выйдите 0 в течение `timeout` секунд.

331* **Содержимое каталога**: каталог содержит полный плагин к моменту выхода команды. Путь может отличаться от одного запуска к другому.

332 

333<h4 id="output-that-fails-the-install-or-update">

334 Вывод, который приводит к отказу установки или обновления

335</h4>

336 

337Установка или обновление не удаётся, когда команда выходит с ненулевым кодом, работает дольше `timeout` или выводит что-либо, кроме одного абсолютного пути. Это также не удаётся, когда выведённый каталог является одним из этих:

338 

339* **Нет содержимого плагина**: выведённый каталог не имеет содержимого плагина на его верхнем уровне, такого как каталог `.claude-plugin/` или каталог `skills/`, `commands/`, `agents/` или `hooks/`.

340* **Собственный каталог сеанса**: выведённый каталог — это тот, в котором был запущен Claude Code, или один из его родителей.

341* **Сетевой путь**: на Windows выведённый путь — это путь UNC.

342* **Слишком большой для копирования**: в режиме копирования каталог больше 256 МиБ или имеет более 20 000 записей.

343 

344<h4 id="copy-mode-and-link-mode">

345 Режим копирования и режим ссылки

346</h4>

347 

348`mode` решает, копирует ли Claude Code выведённый каталог или использует его на месте:

349 

350* **`copy`**: Claude Code копирует каталог в кэш плагина и выводит [версию плагина](/docs/ru/plugins/loading#how-claude-code-computes-the-version) из хэша скопированных файлов. Ваш инструмент может удалить или переписать каталог после выхода команды. Повторный запуск, который производит идентичные файлы, считается актуальным.

351* **`link`**: Claude Code заполняет запись кэша плагина ссылкой на каждую запись верхнего уровня выведённого каталога и загружает файлы на месте. Ничего не копируется, содержимое файлов не хэшируется, и ограничения размера не применяются. Используйте его для каталога, слишком большого для копирования, такого как экспорт отображённого SDK.

352 

353Плагин в режиме ссылки имеет эти требования:

354 

355* **Держите каталог на месте**: Claude Code загружает плагин через ссылки при каждом запуске, поэтому выведённый каталог должен оставаться там, где он находится, пока плагин остаётся установленным.

356* **Выведите другой путь, чтобы сигнализировать о новом содержимом**: версия поступает из реального пути выведённого каталога и его записей верхнего уровня, а не из файлов внутри них.

357* **Держите символические ссылки верхнего уровня внутри каталога**: установка не удаётся, если запись верхнего уровня — это символическая ссылка, которая указывает вне выведённого каталога.

358* **Включите `node_modules`**: Claude Code пропускает [установку зависимостей пакетов Node.js](/docs/ru/plugins/loading#node-js-package-dependencies) для плагина в режиме ссылки, поэтому выведите каталог, который уже содержит пакеты, которые нужны плагину.

359* **Сеансы, запущенные внутри каталога**: сеанс, запущенный в выведённом каталоге или где-либо ниже, не загружает плагин.

360* **Не на Windows**: Claude Code отказывает в установке плагина в режиме ссылки на Windows. Объявите `"mode": "copy"` там.

361 

362<h2 id="marketplace-sources">

363 Источники Marketplace

364</h2>

365 

366Источник marketplace указывает, откуда Claude Code загружает `marketplace.json`. CLI создаёт один для вас при добавлении marketplace, и вы пишете один сами в параметрах:

367 

368* **[`claude plugin marketplace add`](/docs/ru/plugins/cli-reference)**: Claude Code создаёт источник из строки, которую вы передаёте.

369* **[`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces)**: вы пишете источник сами как объект `source`.

370* **[`strictKnownMarketplaces`](/docs/ru/settings-reference#strictknownmarketplaces) и [`blockedMarketplaces`](/docs/ru/plugins/org#restrict-what-users-can-install)**: администраторы пишут источники в этих двух списках политик. `strictKnownMarketplaces` — это список разрешений, а `blockedMarketplaces` — это список запретов.

371 

372Имена типов `url`, `git` и `github` означают что-то другое в источнике marketplace, чем в [источнике плагина](#plugin-sources):

373 

374| Имя типа | Как источник marketplace | Как источник плагина |

375| :------- | :----------------------------------------------------------------------------------- | :-------------------------------------------------------------- |

376| `url` | Прямая ссылка на файл `marketplace.json` с полями `url`, `headers` и `headersHelper` | Git-репозиторий для клонирования с полями `url`, `ref` и `sha` |

377| `git` | Git-репозиторий для клонирования с полями `url`, `ref`, `path` и `sparsePaths` | Не существует |

378| `github` | Репозиторий GitHub с полями `repo`, `ref`, `path` и `sparsePaths` | Репозиторий GitHub с полями `repo`, `ref` и `sha`, и без `path` |

379 

380Таблица перечисляет каждый тип источника marketplace с его полями, вводом `claude plugin marketplace add`, который его производит, и что он делает в каждом из трёх ключей параметров.

381 

382| Тип | Поля | Ввод `marketplace add` | `extraKnownMarketplaces` | `strictKnownMarketplaces` | `blockedMarketplaces` |

383| :------------ | :----------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------- |

384| `url` | `url`, `headers`, `headersHelper` | URL `http://` или `https://`, который не совпадает с формой git | Загружается | Разрешает тот же URL | Блокирует тот же URL |

385| `github` | `repo`, `ref`, `path`, `sparsePaths` | `owner/repo`, `owner/repo@ref` или `owner/repo#ref` | Загружается | Разрешает тот же `repo`, `ref` и `path`. `repo` может быть `owner/*` | Блокирует то же самое и URL `git` к тому же репозиторию |

386| `git` | `url`, `ref`, `path`, `sparsePaths` | URL `user@host:path` или URL `https://`, который заканчивается на `.git`, содержит `/_git/` или называет репозиторий github.com или gitlab.com. `#ref` закрепляет ref | Загружается | Разрешает тот же URL, `ref` и `path` | Блокирует то же самое и другие написания того же репозитория github.com |

387| `npm` | `package` | Не производится | Не загружается: `NPM marketplace sources not yet implemented` | Анализирует, но ничего не совпадает, потому что ничего не регистрирует marketplace `npm` | Анализирует, но ничего не совпадает |

388| `file` | `path` | Путь к файлу `.json` | Загружается | Разрешает тот же путь | Блокирует тот же путь |

389| `directory` | `path` | Путь к каталогу | Загружается | Разрешает тот же путь | Блокирует тот же путь |

390| `settings` | `name`, `plugins`, `owner` | Не производится | Загружается | Разрешает запись с тем же `name` и идентичными `plugins` | Блокирует то же самое `name` |

391| `skills-dir` | нет | Не производится | Не загружается: `Unsupported marketplace source type` | Держит [плагины каталога skills](/docs/ru/plugins/org#keep-skills-directory-plugins-loading) загруженными, пока установлен список разрешений. См. [Значения источников, действительные только в списках политик](#source-values-valid-only-in-policy-lists) | Останавливает загрузку плагинов каталога skills |

392| `hostPattern` | `hostPattern` | Не производится | Не загружается: `Unsupported marketplace source type` | Разрешает источники `github`, `git` и `url`, чей хост совпадает | Блокирует эти источники |

393| `pathPattern` | `pathPattern` | Не производится | Не загружается: `Unsupported marketplace source type` | Разрешает источники `file` и `directory`, чей `path` совпадает | Блокирует эти источники |

394 

395<h3 id="fields-by-type">

396 Поля по типам

397</h3>

398 

399Таблица перечисляет каждое поле источника marketplace, которое имеет значение по умолчанию, ограничение или значение, специфичное для его типа.

400 

401| Поле | Типы | Описание |

402| :-------------- | :-------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

403| `url` | `url` | Ссылка на файл `marketplace.json`. Claude Code загружает только этот файл, поэтому плагины marketplace не могут использовать [источники с относительными путями](#relative-path-plugin-source) |

404| `url` | `git` | Git-репозиторий для клонирования |

405| `headers` | `url` | Карта HTTP-заголовков, которые Claude Code отправляет с загрузкой, для аутентифицированных хостов |

406| `headersHelper` | `url` | Команда, которая выводит заголовки, чьи значения слишком недолговечны, чтобы их перечислять в `headers`. Требует Claude Code v2.1.238 или позже. См. [Аутентификация загрузок архивов](/docs/ru/plugins/host-marketplace#authenticate-archive-downloads) |

407| `repo` | `github` | В `marketplace add` и `extraKnownMarketplaces`, `repo` должен называть один репозиторий. `marketplace add` отклоняет `owner/*` как неверное сокращение `owner/repo`; в `extraKnownMarketplaces` Claude Code берёт его буквально и клон не удаётся |

408| `ref` | `github`, `git` | Ветка или тег. По умолчанию ветка репозитория по умолчанию |

409| `path` | `github`, `git` | Путь файла marketplace внутри репозитория. По умолчанию `.claude-plugin/marketplace.json` |

410| `path` | `file` | Сам файл marketplace. Claude Code читает его на месте и берёт каталог на два уровня выше как корень marketplace, поэтому держите файл в `<root>/.claude-plugin/marketplace.json` |

411| `path` | `directory` | Корень marketplace, каталог, который содержит `.claude-plugin/marketplace.json` |

412| `sparsePaths` | `github`, `git` | Массив каталогов для разреженного извлечения, такой как `[".claude-plugin", "plugins"]`. `claude plugin marketplace add --sparse` устанавливает его |

413| `skipLfs` | `github`, `git` | Принимается и не имеет эффекта. См. [Держите файлы плагинов вне Git LFS](/docs/ru/plugins/host-marketplace#keep-plugin-files-out-of-git-lfs) |

414| `name` | `settings` | Должен равняться ключу `extraKnownMarketplaces` и не может быть [зарезервированным именем](#reserved-names) |

415| `plugins` | `settings` | Встроенный каталог без размещённого файла. Каждый элемент принимает `name`, `source`, `description`, `version`, `strict`, `headers` и `headersHelper`. Напишите `source` каждого элемента как тип объекта, потому что относительный путь не имеет репозитория для разрешения |

416 

417<h3 id="source-values-valid-only-in-policy-lists">

418 Значения источников, действительные только в списках политик

419</h3>

420 

421`hostPattern`, `pathPattern`, `skills-dir` и форма `owner/*` из `repo` действительны только в двух списках политик, `strictKnownMarketplaces` и `blockedMarketplaces`:

422 

423* **`hostPattern` и `pathPattern`**: регулярные выражения, которые Claude Code тестирует против источника перед загрузкой из него.

424* **`skills-dir`**: не источник. Если вы вообще устанавливаете `strictKnownMarketplaces`, [плагины каталога skills](/docs/ru/plugins/org#keep-skills-directory-plugins-loading) перестают загружаться, пока вы не добавите `{"source": "skills-dir"}` в этот список.

425* **`owner/*`**: как значение `repo` из `github`, совпадает с каждым репозиторием ровно под этим владельцем GitHub. Требует Claude Code v2.1.223 или позже.

426 

427Для порядка совпадения, точной семантики `ref` и рецептов см. [Управление плагинами для вашей организации](/docs/ru/plugins/org).

428 

429<h3 id="source-objects-in-settings">

430 Объекты источников в параметрах

431</h3>

432 

433Значение `extraKnownMarketplaces` — это карта от имени marketplace к объекту с `source`. Эта запись регистрирует marketplace из git-репозитория в его ветке `main`:

434 

435```json theme={null}

436{

437 "extraKnownMarketplaces": {

438 "your-marketplace": {

439 "source": {

440 "source": "git",

441 "url": "https://git.example.com/your-org/your-marketplace.git",

442 "ref": "main"

443 }

444 }

445 }

446}

447```

448 

449`strictKnownMarketplaces` и `blockedMarketplaces` — это массивы объектов источников. Этот список разрешений допускает одного владельца GitHub и один внутренний хост:

450 

451```json theme={null}

452{

453 "strictKnownMarketplaces": [

454 { "source": "github", "repo": "your-org/*" },

455 { "source": "hostPattern", "hostPattern": "^git\\.example\\.com$" }

456 ]

457}

458```

459 

460<h2 id="validation-messages">

461 Сообщения валидации

462</h2>

463 

464`claude plugin validate <path>` принимает корень marketplace или сам файл marketplace. Он выводит ошибки и предупреждения. Для кодов выхода и `--strict` см. [plugin validate](/docs/ru/plugins/cli-reference#plugin-validate).

465 

466Сообщение называет запись плагина по её индексу, написанному как `plugins.1.source` или `plugins[1].source`.

467 

468Сообщение с префиксом индекса записи и `plugin.json →`, такое как `plugins[2] plugin.json →`, касается собственных файлов этого плагина. [`claude plugin validate` сообщает об ошибках](/docs/ru/plugins/troubleshooting#claude-plugin-validate-reports-errors) перечисляет эти сообщения с их исправлениями.

469 

470Предупреждения, которые упоминают имена флагов Claude Desktop, флаги, которые Claude Code принимает, но Claude Desktop отклоняет, потому что правила имён Claude Desktop более строгие.

471 

472Таблица сопоставляет сообщения уровня marketplace с полем, которое каждое касается.

473 

474| Сообщение | Уровень | Поле |

475| :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------- | :------------------------------------------------------------------------------------------------------------------------ |

476| `Marketplace must have a name` | Ошибка | `name` пуст |

477| `Marketplace name cannot contain spaces. Use kebab-case (e.g., "my-marketplace")` | Ошибка | `name` |

478| `Marketplace name cannot contain path separators (/ or \), ".." sequences, or be "."` | Ошибка | `name` |

479| `Marketplace name impersonates an official Anthropic/Claude marketplace` | Ошибка | `name`. См. [Зарезервированные имена](#reserved-names) |

480| `Marketplace name cannot contain control or bidirectional-formatting characters` | Ошибка | `name` содержит управляющий символ, такой как escape или новая строка, или символ двунаправленного форматирования Unicode |

481| `Marketplace name "inline" is reserved for --plugin-dir session plugins`, и варианты `builtin`, `skills-dir`, `synced`, `claude-plugin-test`, `npm`, `pip`, `uv`, `cargo`, `github` и `gh` | Ошибка | `name` |

482| `Author name cannot be empty` | Ошибка | `owner.name` |

483| `Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")` | Ошибка | `plugins[i].name` |

484| `Plugin name cannot contain control or bidirectional-formatting characters` | Ошибка | `plugins[i].name` |

485| `Duplicate plugin name "x" found in marketplace` | Ошибка | Две записи совместно используют `name` |

486| `plugins.i.source: Invalid input` | Ошибка | `source` записи не совпадает с типом. См. [Неверный ввод на источнике](#invalid-input-on-a-source) |

487| `plugins[i].source: Path contains "..": <path>` | Ошибка | Относительный `source`, который выходит за пределы корня marketplace |

488| `source.source: 'unsupported' is a parse-time placeholder and cannot be authored` | Ошибка | `plugins[i].source` |

489| `Plugin "x" sets headersHelper but is not "strict": false` | Ошибка | `plugins[i].headersHelper`, на записи `archive` |

490| `chain does not resolve (<reason>) — target must be a name in plugins[], a key in renames, or null` | Ошибка | `renames.<old>` |

491| `target "x" is not a valid plugin name (PluginIdSchema)` | Ошибка | `renames.<old>` |

492| `Unknown field 'x'. Claude Code ignores it at load time.` | Предупреждение | Названный ключ на верхнем уровне, под `metadata`, в записи или под `relevance` записи |

493| `Marketplace has no plugins defined` | Предупреждение | `plugins` пуст |

494| `Plugin "x" sets headers/headersHelper, which only apply to "archive" sources; they have no effect on this entry.` | Предупреждение | `plugins[i].headers` или `plugins[i].headersHelper`, на записи, чей `source` не является `archive` |

495| `Plugin "x" fetches its archive with a headersHelper but sets no sha256 pin` | Предупреждение | `plugins[i].source.sha256` |

496| `Header "x" is a request-routing/identity header that catalog entries may not set; Claude Code drops it at download time.` | Предупреждение | `plugins[i].headers.<name>` |

497| `Local source "x" is or traverses a symlink, so <path> was not read` | Предупреждение | `plugins[i].source` |

498| `No marketplace description provided. Adding a description helps users understand what this marketplace offers` | Предупреждение | `description` |

499| `Entry declares version "x" but <path>/plugin.json says "y". At install time, plugin.json wins` | Предупреждение | `plugins[i].version`, на записи с относительным путём |

500| `'relevance' must be an object containing topic and signals; got <type>. It will be ignored at load time.` | Предупреждение | `plugins[i].relevance` |

501| `'metadata' must be a free-form object; got <type>. It will be ignored at load time.` | Предупреждение | `plugins[i].metadata` |

502| `'experimental' must be an object containing component declarations; got <type>. It will be ignored at load time.` | Предупреждение | `plugins[i].experimental` |

503| `Marketplace name "x" is reserved in Claude Desktop` | Предупреждение | `name` — это `org`, `org-provisioned` или `unknown`. Claude Desktop отклоняет marketplace |

504| `Marketplace name "x" is not accepted by Claude Desktop (letters, digits, ".", "_", "-"; must start alphanumeric; max 128 chars)` | Предупреждение | `name`. Claude Desktop отклоняет marketplace |

505| `Plugin name "x" is not accepted by Claude Desktop (letters, digits, ".", "_", "-"; must start alphanumeric; max 128 chars)` | Предупреждение | `plugins[i].name`. Claude Desktop отбрасывает запись |

506 

507<h3 id="invalid-input-on-a-source">

508 Неверный ввод на источнике

509</h3>

510 

511`Invalid input` на `source` означает, что объект не совпадал с типом источника. Проверьте эти причины:

512 

513* Относительный путь, который не начинается с `./`, кроме `"."` или [имени без префикса под `metadata.pluginRoot`](#relative-path-plugin-source)

514* `npm` `package`, содержащий `..`

515* Тип `source`, который не является одним из [источников плагинов](#plugin-sources)

516* Известный тип с отсутствующим обязательным полем или неправильного типа, такой как `github` без `repo`

517 

518<h3 id="failures-that-validation-doesn’t-catch">

519 Сбои, которые валидация не ловит

520</h3>

521 

522`claude plugin validate` не сообщает о каждом сбое. Запись `hooks`, написанная как путь к файлу или массив, проходит валидацию, и ошибка появляется только при загрузке плагина, как описывает [Hooks в записи](#hooks-in-an-entry). Ошибки загрузки `source` также появляются только после установки, а не при валидации.

523 

524[`claude plugin list`](/docs/ru/plugins/cli-reference) показывает плагин, который не загрузился, с его ошибкой, и [Устранение неполадок плагинов](/docs/ru/plugins/troubleshooting) охватывает строки загрузки.

525 

526<h2 id="next-steps">

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

528</h2>

529 

530* [Создание marketplace](/docs/ru/plugins/create-marketplace): создайте marketplace из этих полей и установите его локально

531* [Размещение и поддержка marketplace](/docs/ru/plugins/host-marketplace): где поместить файл и как пользователи получают изменения

532* [Справочник манифеста плагина](/docs/ru/plugins/manifest-reference): поля `plugin.json`, которые запись может переопределить

533* [Управление плагинами для вашей организации](/docs/ru/plugins/org): рецепты списков разрешений и запретов, которые используют эти значения источников

plugins/measure.md +193 −0 created

Details

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# Измерение стоимости и использования плагина

6 

7> Измерьте стоимость токенов плагина Claude Code, узнайте, используют ли его люди, и выберите события телеметрии для вопросов плагинов на уровне организации.

8 

9Каждый сеанс, в котором включен плагин, включает имена и описания его skills, agents и commands в контексте Claude, и эти токены учитываются в использовании пользователя независимо от того, используется ли плагин или нет. На этой странице показано, как увидеть это число для плагина, как его уменьшить, если вы поддерживаете плагин, и где отображается использование, чтобы вы могли определить, все ли еще используется плагин.

10 

11Эта страница предназначена для авторов и разработчиков плагинов. Если вы администрируете Claude Code для организации, раздел [Измерение по всему парку](#measure-across-a-fleet) охватывает те же вопросы на каждой машине.

12 

13<Note>

14 Эти случаи рассматриваются на других страницах:

15 

16 * **Тестирование того, насколько надежно плагин изменяет поведение Claude**: см. [Тестирование плагинов с помощью evals](/docs/ru/plugin-evals)

17 * **Сокращение контекста вашего собственного сеанса**: см. [Управление установленными плагинами](/docs/ru/plugins/install#manage-installed-plugins) и страницу [контекстного окна](/docs/ru/context-window)

18</Note>

19 

20Начните с раздела [Измерение стоимости плагина](#measure-what-a-plugin-costs).

21 

22<h2 id="measure-what-a-plugin-costs">

23 Измерение стоимости плагина

24</h2>

25 

26Чтобы увидеть, что плагин добавляет в контекст Claude, запустите [`claude plugin details`](/docs/ru/plugins/cli-reference#plugin-details) с именем плагина. Вы запускаете его в своей оболочке, а не в приглашении запущенного сеанса Claude Code. Плагин должен быть загружен: установлен, находиться в каталоге skills или передан с помощью `--plugin-dir` в той же команде, как в `claude --plugin-dir ./formatter plugin details formatter`.

27 

28Этот пример читает установленный плагин с именем `formatter`, который имеет два skills, команду, agent, hook и MCP server:

29 

30```bash theme={null}

31claude plugin details formatter

32```

33 

34```text theme={null}

35formatter 1.0.0

36 Description: Formats and lints code on save

37 Source: formatter@my-marketplace

38 

39Component inventory

40 Skills (3) format-all, format-code, lint-fix

41 Agents (1) style-reviewer

42 Hooks (1) PostToolUse (harness-only — no model context cost)

43 MCP servers (1) formatter-tools (tool schemas resolved at runtime; not counted)

44 LSP servers (0)

45 

46Projected token cost

47 Always-on: ~146 tok added to every session

48 

49Per-component (rounded)

50 component always-on on-invoke

51 format-code ~40 ~30

52 lint-fix ~50 ~30

53 style-reviewer ~40 ~40

54 format-all < 20 ~30

55 

56 On-invoke cost is paid each time a skill or agent fires.

57 Token counts are estimates and may differ from actual usage.

58```

59 

60Каждая часть вывода отвечает на другой вопрос:

61 

62* **Component inventory**: что Claude Code нашел в плагине. Commands считаются вместе с skills, поэтому `format-all` появляется под `Skills`. Hooks и MCP servers не получают оценку стоимости и не имеют строки per-component; чтобы увидеть, что добавляют MCP tools плагина, запустите `/context` в сеансе с включенным плагином и прочитайте категорию `MCP tools`.

63* **Always-on**: токены, которые имена и описания skills, agents и commands плагина добавляют к каждому сеансу, в котором включен плагин, независимо от того, запускается ли что-либо. Это число, которое несет каждый пользователь, и то, которое нужно уменьшить.

64* **Per-component**: каждая строка разбивает один skill, agent или command на его always-on долю и его on-invoke стоимость, которая является телом, загружаемым только при запуске этого компонента. Используйте столбец always-on, чтобы найти, какой компонент вносит наибольший вклад.

65 

66<h3 id="lower-the-always-on-figure">

67 Снижение значения always-on

68</h3>

69 

70Если вы поддерживаете плагин, эти изменения уменьшают то, что он добавляет к каждому сеансу. Если вы только его используете, ваши варианты — отключить или удалить его; см. [Управление установленными плагинами](/docs/ru/plugins/install#manage-installed-plugins).

71 

72Значение always-on считает имя каждого компонента плюс его `description` и `when_to_use` frontmatter. Чтобы его снизить:

73 

74* Сократите описания skill и agent.

75* Разделите большой плагин, чтобы пользователи устанавливали только нужные им компоненты.

76 

77Описание skill также то, что Claude сопоставляет с запросом, поэтому более короткое может остановить срабатывание skill. После сокращения описаний проверьте срабатывание с помощью [`tool_used: Skill` grader](/docs/ru/plugin-evals#create-your-first-eval-suite) в вашем eval suite.

78 

79Для того, что вносит каждый тип компонента, см. [plugin components](/docs/ru/plugins/components).

80 

81<h3 id="cost-shown-to-users-before-install">

82 Стоимость, показанная пользователям перед установкой

83</h3>

84 

85Плагины в официальном marketplace показывают свою стоимость пользователям перед установкой. В `/plugin`, когда пользователь просматривает список плагинов marketplace и выбирает плагин, панель деталей показывает раздел **Context cost** с линией `Every turn:` и линией `When invoked:`. Когда значение always-on составляет 2000 токенов или более, линия `Every turn:` отображается выделенной.

86 

87Плагин в вашем собственном marketplace не имеет раздела **Context cost**.

88 

89<h2 id="check-whether-a-plugin-is-used">

90 Проверка использования плагина

91</h2>

92 

93Claude Code не сообщает об использовании плагина его автору. Использование записывается на машине каждого человека, который установил плагин, поэтому то, что вы можете узнать, зависит от вашего отношения к этим людям:

94 

95* **Вы администрируете Claude Code для их организации**: события OpenTelemetry и Analytics API считают установки и активации skills на каждой машине. См. [Измерение по всему парку](#measure-across-a-fleet).

96* **Это товарищи по команде, которых вы можете спросить**: собственный Claude Code каждого пользователя показывает им, используют ли они все еще плагин, в четырех местах: панель [`/plugin`](#not-used-recently-in-/plugin), [`/skill-doctor`](#find-skills-that-never-run), [`/doctor`](#unused-plugins-in-/doctor) и [`/usage`](#usage-share-in-/usage). Все четыре — это команды, которые пользователь запускает в приглашении Claude Code в сеансе на своей собственной машине.

97* **Ни то, ни другое**: у вас нет сигнала об использовании Claude Code для этого плагина.

98 

99<h3 id="not-used-recently-in-/plugin">

100 Не использовалось недавно в `/plugin`

101</h3>

102 

103На вкладке **Installed** в `/plugin` плагин, который пользователь установил из marketplace, перемещается под заголовок **Not used recently** после того, как он не использовался в течение как минимум 14 дней и 10 сеансов. Детали плагина также показывают линию `Last used:`. Для того, что пользователи делают с этим заголовком и линией, см. [Поиск плагинов, которые вы больше не используете](/docs/ru/plugins/install#find-plugins-you-no-longer-use).

104 

105Заголовок **Not used recently** никогда не появляется для:

106 

107* Плагинов, загруженных с помощью `--plugin-dir` или из каталога skills

108* Плагинов, включенных через управляемые параметры или смонтированных из [seed directory](/docs/ru/plugins/org#seed-containers-and-ci)

109* Плагинов, которые включают тему, стиль вывода, монитор или workflow, потому что они используются без отслеживаемого вызова

110 

111[Language server](/docs/ru/plugins/components#lsp-servers) плагина считается используемым, когда он доставляет диагностику или отвечает на запрос навигации по коду, поэтому плагин LSP, сервер которого активен в ваших сеансах, не указывается как неиспользуемый.

112 

113Когда организация пользователя устанавливает [`strictKnownMarketplaces`](/docs/ru/plugins/org#restrict-what-users-can-install), ни заголовок, ни линия `Last used:` не отображаются.

114 

115<h3 id="find-skills-that-never-run">

116 Поиск skills, которые никогда не запускаются

117</h3>

118 

119Запустите `/skill-doctor`, чтобы увидеть, что стоит каждый из ваших skills и как часто он используется. Он отмечает skills, которые находятся в списке skills Claude, но никогда не были вызваны, включая skills из плагинов.

120 

121В интерактивном сеансе отчет открывается на вкладке **Stats** менеджера `/plugin`. См. [Поиск неиспользуемых skills](/docs/ru/skills#find-unused-skills) для того, что охватывает отчет и где он доступен.

122 

123<h3 id="unused-plugins-in-/doctor">

124 Неиспользуемые плагины в `/doctor`

125</h3>

126 

127Проверка `/doctor` перечисляет каждый установленный пользователем skill, MCP server и плагин и рекомендует отключить те, которые не использовались. См. [`/doctor` в справочнике команд](/docs/ru/commands#all-commands).

128 

129<h3 id="usage-share-in-/usage">

130 Доля использования в `/usage`

131</h3>

132 

133На плане Pro, Max, Team или Enterprise разбивка `/usage` приписывает недавнее использование skills, subagents, плагинам и MCP servers как доле от общего количества. См. [Использование команды `/usage`](/docs/ru/costs#using-the-/usage-command).

134 

135<h2 id="measure-across-a-fleet">

136 Измерение по всему парку

137</h2>

138 

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

140 

141* **События OpenTelemetry**: Claude Code экспортирует их в ваш собственный backend после [настройки экспортера](/docs/ru/monitoring-usage). См. [События OpenTelemetry для установок и использования плагинов](#pick-the-opentelemetry-event-for-each-question).

142* **Analytics API**: обслуживается из записей Anthropic, без необходимости в экспортере. См. [Запрос Analytics API](#query-the-analytics-api).

143 

144<h3 id="pick-the-opentelemetry-event-for-each-question">

145 События OpenTelemetry для установок и использования плагинов

146</h3>

147 

148Эти события OpenTelemetry и атрибуты отвечают на каждый вопрос плагина из вашего backend:

149 

150| Вопрос | Событие или атрибут OpenTelemetry |

151| :-------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ |

152| Какие плагины устанавливаются и откуда | [`claude_code.plugin_installed`](/docs/ru/monitoring-usage#plugin-installed-event), один за установку |

153| Какие плагины активны в скольких сеансах | [`claude_code.plugin_loaded`](/docs/ru/monitoring-usage#plugin-loaded-event), один за включенный плагин в начале сеанса |

154| Какие skills активируются и какой плагин их владеет | [`claude_code.skill_activated`](/docs/ru/monitoring-usage#skill-activated-event), с `plugin.name` и `marketplace.name` для skills плагина |

155| Что сообщают hooks плагина | [`claude_code.hook_plugin_metrics`](/docs/ru/monitoring-usage#hook-plugin-metrics-event), выпускается только для hooks в плагинах официального marketplace |

156| Что стоит плагин в расходах API | `plugin.name` и `marketplace.name` на [cost counter](/docs/ru/monitoring-usage#cost-counter), установленные, когда активный skill или subagent принадлежит плагину |

157 

158<h3 id="redacted-plugin-names-in-your-backend">

159 Скрытые имена плагинов в вашем backend

160</h3>

161 

162Плагины из официального marketplace сообщают свое имя плагина и имя marketplace в ваш backend дословно. Имя каждого другого плагина скрывается или опускается по умолчанию, включая плагин из собственного marketplace вашей организации. [Уровень доверия](/docs/ru/plugins/security#find-plugins-in-telemetry) плагина решает, какой.

163 

164Чтобы получить реальные имена для некоторых событий, установите переменную окружения [`OTEL_LOG_TOOL_DETAILS`](/docs/ru/monitoring-usage#common-configuration-variables) на `1` на машинах, которые экспортируют телеметрию, например в блоке `env` тех же [управляемых параметров](/docs/ru/monitoring-usage#administrator-configuration), которые настраивают экспортер:

165 

166| Событие | По умолчанию | С `OTEL_LOG_TOOL_DETAILS=1` |

167| :------------------------------------ | :-------------------------------------------------------------------------------------------------- | :------------------------------------------------------------- |

168| `plugin_loaded` | `plugin.name` и `marketplace.name` — это буквальная строка `third-party` | Реальные имена |

169| `plugin_installed`, `skill_activated` | `plugin.name` и `marketplace.name` опущены; на `skill_activated`, `skill.name` — это `custom_skill` | Реальные имена |

170| Cost counter | `plugin.name` — это `third-party`; `marketplace.name` отсутствует | Реальный `plugin.name`; `marketplace.name` все еще отсутствует |

171 

172На `plugin_loaded`, `plugin_id_hash` все еще идентифицирует каждый плагин по умолчанию, поэтому вы можете считать отдельные плагины третьих сторон.

173 

174<h3 id="query-the-analytics-api">

175 Запрос Analytics API

176</h3>

177 

178На плане Enterprise Analytics API отвечает на вопрос "какие плагины устанавливает и вызывает моя организация" из записей Anthropic, без необходимости в экспортере. [`GET /v1/organizations/analytics/plugins`](https://platform.claude.com/docs/en/api/admin/analytics/plugins/list) возвращает количество установок и вызовов за плагин, за день на Claude Code и Cowork, которые вы можете группировать по пользователю, группе RBAC или продукту.

179 

180Активность плагина, которая достигает Anthropic без имени плагина, отображается в одной агрегированной строке `third-party`. [Поиск плагинов в телеметрии](/docs/ru/plugins/security#find-plugins-in-telemetry) говорит, какие плагины Claude Code сообщает по имени.

181 

182Аутентифицируйте запрос с помощью ключа API, который имеет область `read:analytics`, которую Primary Owner создает, как описано в разделе [Доступ к данным программно](/docs/ru/analytics#access-data-programmatically).

183 

184См. [справочник конечной точки](https://platform.claude.com/docs/en/api/admin/analytics/plugins/list) для параметров и полей ответа.

185 

186<h2 id="next-steps">

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

188</h2>

189 

190* [Тестирование плагинов с помощью evals](/docs/ru/plugin-evals): измерьте, насколько надежно плагин направляет Claude, а не только то, что он стоит

191* [Снижение значения always-on](#lower-the-always-on-figure): что изменить в плагине, чтобы уменьшить его стоимость за ход

192* [Безопасность и доверие плагинов](/docs/ru/plugins/security#find-plugins-in-telemetry): какие поля телеметрии содержат имена плагинов и когда они скрыты

193* [Мониторинг использования](/docs/ru/monitoring-usage): полный справочник событий OpenTelemetry

plugins/org.md +460 −0 created

Details

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# Управление плагинами Claude Code для вашей организации

6 

7> Контролируйте, какие плагины Claude Code устанавливает и разрешает на каждой машине в вашей организации через управляемые параметры.

8 

9Управляемые параметры позволяют вам решать, какие плагины Claude Code устанавливает и разрешает на каждой машине в вашей организации. Пользователи не могут их переопределить. Вы доставляете их либо как [управляемые параметры сервера](/docs/ru/server-managed-settings) из консоли администратора claude.ai, либо как управляемые параметры конечной точки через MDM или файл `managed-settings.json`. Большинство элементов управления на этой странице вступают в силу только из управляемых параметров.

10 

11Эта страница предназначена для администраторов и управляет Claude Code.

12 

13<Note>

14 Эти случаи рассматриваются на других страницах:

15 

16 * **Установка плагинов для себя**: начните с [Установка плагинов](/docs/ru/plugins/install)

17 * **Контроль, какие плагины члены могут использовать в claude.ai и Cowork**: см. [Управление плагинами для вашей организации](https://support.claude.com/en/articles/13837433) в справочном центре

18 * **Страница плагинов в параметрах администратора claude.ai**: [**Organization settings > Plugins & skills**](https://claude.ai/admin-settings/skills?tab=inventory) включает плагины для учетных записей claude.ai членов, и они достигают Claude Code как [синхронизированные плагины](/docs/ru/plugins/loading#synced-plugins). Это не устанавливает ни один из ключей на этой странице

19</Note>

20 

21Разделы следуют порядку, который обычно принимают развертывания: [требуют плагины](#pre-install-and-require-plugins) для всех или по репозиторию, [заполняют контейнеры и CI](#seed-containers-and-ci), [ограничивают](#restrict-what-users-can-install) то, что пользователи могут добавить самостоятельно, [устанавливают политику обновления](#set-update-policy), затем [проверяют](#audit-and-review) то, что установлено. Чтобы просмотреть каждый ключ политики в одном месте, см. [матрицу управления](#control-matrix).

22 

23<h2 id="pre-install-and-require-plugins">

24 Pre-install and require plugins

25</h2>

26 

27Marketplace — это каталог плагинов, который Claude Code получает из репозитория git, URL-адреса или локального пути. После регистрации marketplace на машине Claude Code может устанавливать плагины из него.

28 

29Чтобы установить плагины для флота, установите два ключа вместе в [управляемые параметры](/docs/ru/managed-settings), файл политики или политику, доставляемую сервером, которую каждая машина в вашей организации читает: `extraKnownMarketplaces` регистрирует marketplace на каждой машине, а `enabledPlugins` называет плагины для установки и включения из него. [Выберите механизм доставки](#choose-a-delivery-mechanism) охватывает, как управляемые параметры достигают каждой машины.

30 

31<h3 id="choose-a-delivery-mechanism">

32 Choose a delivery mechanism

33</h3>

34 

35Управляемые параметры достигают машины через один из трех механизмов доставки:

36 

37* **Server-managed settings**: установите ключи плагина как JSON в [**Organization settings > Claude Code > Managed settings**](https://claude.ai/admin-settings/claude-code). Требует роль [Owner](/docs/ru/server-managed-settings#access-control) в вашей организации Claude. Облачная сессия получает эти параметры перед установкой плагинов.

38* **MDM policies**: на macOS доставьте plist, чьи ключи верхнего уровня являются ключами параметров. На Windows сохраните весь документ JSON как строку в значение реестра. Домен plist и ключ реестра находятся в [Где каждый механизм хранит политику](/docs/ru/managed-settings#where-each-mechanism-stores-the-policy).

39* **Managed settings file**: поместите `managed-settings.json` в системный путь платформы. Вы также можете добавить файлы в каталог drop-in `managed-settings.d/` рядом с ним. Пути файлов для каждой платформы находятся в [Где каждый механизм хранит политику](/docs/ru/managed-settings#where-each-mechanism-stores-the-policy), а правила слияния drop-in находятся в [Разделить файловую политику между командами](/docs/ru/managed-settings#split-a-file-based-policy-across-teams).

40 

41Используйте управляемые параметры сервера, если у вас есть организация Claude for Teams или Enterprise на claude.ai и ваши устройства не все находятся под MDM. В противном случае используйте политику MDM или файл управляемых параметров. Для компромисса см. [Выбор между управляемыми параметрами сервера и конечной точки](/docs/ru/server-managed-settings#choose-between-server-managed-and-endpoint-managed-settings).

42 

43<h4 id="which-managed-source-applies-on-a-machine">

44 Which managed source applies on a machine

45</h4>

46 

47По умолчанию на машине применяется только один из этих трех источников. Claude Code использует первый, который доставляет ключ политики, проверяя сначала управляемые параметры сервера, затем политики MDM, затем файл управляемых параметров. Если управляемые параметры сервера доставляют даже один несвязанный ключ политики, Claude Code игнорирует ключи плагина в политике MDM или файле управляемых параметров на этой машине, кроме [ключей, которые он читает из каждого источника](/docs/ru/managed-settings#keys-read-from-every-admin-source).

48 

49Чтобы применить каждый источник вместо этого, установите [`managedSourcesBehavior`](/docs/ru/managed-settings#compose-every-managed-source) на `"merge"`.

50 

51[Как Claude Code объединяет управляемые источники](/docs/ru/managed-settings#how-claude-code-combines-managed-sources) также перечисляет ключи, которые Claude Code читает из каждого источника в обоих режимах.

52 

53<h3 id="require-a-marketplace-and-its-plugins">

54 Require a marketplace and its plugins

55</h3>

56 

57Добавьте marketplace под `extraKnownMarketplaces`, ключ по собственному `name` marketplace из его `marketplace.json`. Затем добавьте каждый плагин под `enabledPlugins` как `plugin-name@marketplace-name`. Каждая запись marketplace содержит объект `source` с полем `source`, называющим тип, например `github`. Этот пример управляемых параметров регистрирует marketplace организации и принудительно включает два плагина из него:

58 

59```json theme={null}

60{

61 "extraKnownMarketplaces": {

62 "your-marketplace": {

63 "source": { "source": "github", "repo": "your-org/your-marketplace" },

64 "autoUpdate": true

65 }

66 },

67 "enabledPlugins": {

68 "code-formatter@your-marketplace": true,

69 "deploy-helper@your-marketplace": true

70 }

71}

72```

73 

74После того как параметры достигнут машины, Claude Code регистрирует marketplace и устанавливает два плагина в начале следующей сессии пользователя. Пользователи видят их в `/plugin`, и отключение одного в своей области не останавливает его загрузку, потому что управляемые параметры имеют приоритет над всеми остальными областями.

75 

76Чтобы заблокировать плагин во всех областях и скрыть его из списка marketplace, установите его на `false` в управляемом `enabledPlugins` вместо этого.

77 

78Отрегулируйте поля `autoUpdate` и `source` для вашего marketplace:

79 

80* **`autoUpdate`**: `true` сохраняет marketplace и его плагины обновляющимися в фоновом режиме, а `false` отключает это. См. [Установка политики обновления](#set-update-policy).

81* **`source`**: `github` — один из нескольких типов источников. Источник `git` принимает `url` для GitLab или внутреннего хоста, а источник `url` принимает адрес размещенного `marketplace.json`. Каждая форма источника находится в [справочнике marketplace](/docs/ru/plugins/marketplace-reference).

82 

83Если marketplace — это приватный репозиторий git, каждому пользователю нужен доступ на чтение к нему. Клонирование marketplace на основе git работает с git на машине пользователя, используя сохраненные учетные данные и без подсказок. Для пользователей без учетных записей на хосте git используйте [seed](#seed-containers-and-ci) вместо этого.

84 

85Управляемая запись также переопределяет запись marketplace с тем же именем или копию `--plugin-dir` из другого источника:

86 

87* **Marketplaces**: управляемая запись marketplace заменяет запись с более низким приоритетом с тем же именем, и поля двух записей не объединяются.

88* **`--plugin-dir` copies**: `--plugin-dir` загружает плагин из локального каталога для одной сессии. Для того, что происходит, когда имя этой копии совпадает с плагином, который ваш управляемый `enabledPlugins` называет, см. [Конфликты имен](/docs/ru/plugins/loading#name-conflicts).

89 

90Официальный marketplace Anthropic `claude-plugins-official` не требует записи `extraKnownMarketplaces` когда `enabledPlugins` устанавливает один из его плагинов на `true`. Эта запись `name@claude-plugins-official` объявляет marketplace сама по себе, где бы эти ключи ни применялись. Если вы не включаете ни один из его плагинов и все еще хотите, чтобы он был зарегистрирован на каждой машине, дайте ему явную запись, как это делает [Разрешить официальный marketplace и ваш собственный](#allow-the-official-marketplace-and-your-own).

91 

92<h3 id="require-plugins-per-repository">

93 Require plugins per repository

94</h3>

95 

96Чтобы охватить участников одного репозитория вместо всего флота, установите `extraKnownMarketplaces` и `enabledPlugins` в `.claude/settings.json` этого репозитория. Записи `extraKnownMarketplaces` применяются только в папке, которую участник доверил, и в недоверенной папке Claude Code игнорирует их без сообщения:

97 

98* **Interactive sessions**: Claude Code регистрирует marketplace только после того, как участник примет [диалог доверия рабочей области](/docs/ru/permissions#what-runs-before-you-trust-a-folder) для этой папки.

99* **[Non-interactive `-p` runs](/docs/ru/headless)**: записи применяются только в папке, доверие которой пользователь уже принял интерактивно, или чей флаг `hasTrustDialogAccepted` вы установили в `~/.claude.json`.

100 

101Плагин, который marketplace перечисляет по относительному пути, загружается из копии marketplace после того, как записи `extraKnownMarketplaces` репозитория применяются. Плагин, чья запись marketplace указывает на внешний источник вместо этого, например собственный репозиторий GitHub плагина, не устанавливается только из параметров репозитория. Каждый участник видит `Plugin "<name>" is enabled in project settings but isn't installed` до тех пор, пока они не запустят `claude plugin install <name>@<marketplace> --scope project`, как описано в [Установка плагинов](/docs/ru/plugins/install).

102 

103Если вы используете локальный источник `directory` или `file` с относительным путем, путь разрешается относительно основного checkout вашего репозитория. Когда вы запускаете Claude Code из git worktree, путь все еще указывает на основной checkout, поэтому все worktrees совместно используют одно и то же местоположение marketplace.

104 

105Чтобы развернуть пакет плагинов с зависимостями, поместите плагин пакета в `enabledPlugins`, как описано в [Зависимости плагинов](/docs/ru/plugins/dependencies).

106 

107<h3 id="when-each-surface-applies-the-plugin-keys">

108 When each surface applies the plugin keys

109</h3>

110 

111Таблица показывает, когда каждый вид сессии Claude Code применяет `extraKnownMarketplaces` и `enabledPlugins`, из управляемых параметров и из `.claude/settings.json` репозитория. Для Desktop app и расширений IDE см. [Установка плагина](/docs/ru/plugins/install#install-a-plugin).

112 

113| Surface | Managed `extraKnownMarketplaces` and `enabledPlugins` | Repository `.claude/settings.json` |

114| :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------- |

115| Terminal, interactive | Applied at session start on every machine that receives the settings | `extraKnownMarketplaces` applied after trust; `enabledPlugins` applied at session start |

116| `-p` and CI | Applied at session start, with installs running in the background | `extraKnownMarketplaces` in trusted folders only; `enabledPlugins` applied |

117| Cloud sessions | In an Anthropic-hosted environment, only server-managed settings reach the session, which waits for them before it installs plugins. MDM policies and managed settings files stay on the user's machine. For a self-hosted environment, see [Where and when a policy applies](/docs/ru/managed-settings#where-and-when-a-policy-applies) | See the **Cloud session** tab under [Install a plugin](/docs/ru/plugins/install#install-a-plugin) |

118 

119В запуске `-p` или CI marketplaces и плагины устанавливаются в фоновом режиме, поэтому плагин может отсутствовать в первом повороте. Установите `CLAUDE_CODE_SYNC_PLUGIN_INSTALL=1`, чтобы запуск ждал установки перед своим первым запросом.

120 

121<h3 id="confirm-the-rollout">

122 Confirm the rollout

123</h3>

124 

125Проверьте, что marketplace и плагины прибыли на машину или в запуск CI:

126 

127* **На одной машине**: запустите Claude Code и запустите `/plugin`. Marketplace и плагины перечислены.

128* **В CI**: запустите `claude -p` с `--output-format stream-json --verbose`. Событие `init` перечисляет загруженные плагины под `plugins`.

129 

130<h2 id="seed-containers-and-ci">

131 Seed containers and CI

132</h2>

133 

134Для образов контейнеров и CI runners, которые не могут клонировать во время выполнения, предварительно заполните каталог плагинов во время сборки и укажите `CLAUDE_CODE_PLUGIN_SEED_DIR` на него. Claude Code регистрирует marketplaces seed при запуске и загружает кэши плагинов из seed на месте, без клонирования.

135 

136Seed также служит пользователям, у которых нет учетной записи на хосте git.

137 

138<Note>

139 В средах CI/CD настройте помощник учетных данных git перед установкой плагинов из приватных репозиториев. На GitHub Actions экспортируйте токен с доступом на чтение к репозиторию marketplace как `GH_TOKEN`, затем запустите `gh auth setup-git`. Токен рабочего процесса по умолчанию может получить доступ только к репозиторию самого рабочего процесса, поэтому приватный marketplace в другом репозитории требует личного токена доступа или токена приложения.

140</Note>

141 

142<Steps>

143 <Step title="Install into the seed at build time">

144 Установите `CLAUDE_CODE_PLUGIN_CACHE_DIR` на путь seed, чтобы marketplace и плагины устанавливались туда вместо `~/.claude/plugins`:

145 

146 ```bash theme={null}

147 CLAUDE_CODE_PLUGIN_CACHE_DIR=/opt/claude-seed claude plugin marketplace add your-org/your-marketplace

148 CLAUDE_CODE_PLUGIN_CACHE_DIR=/opt/claude-seed claude plugin install code-formatter@your-marketplace

149 ```

150 

151 Seed имеет тот же макет, что и `~/.claude/plugins`: `known_marketplaces.json`, `marketplaces/<name>/`, и `cache/<marketplace>/<plugin>/<version>/`. Вы можете смонтировать seed по другому пути, чем вы его построили.

152 </Step>

153 

154 <Step title="Point the runtime at the seed">

155 Установите `CLAUDE_CODE_PLUGIN_SEED_DIR=/opt/claude-seed` в окружении контейнера. Чтобы использовать несколько seeds, разделите их пути с `:` на Unix или `;` на Windows. Claude Code использует первый seed, который содержит данный marketplace или кэш плагина.

156 </Step>

157 

158 <Step title="Enable the plugins">

159 Плагины в seed не включены сами по себе. Установите `enabledPlugins` для каждого плагина seed, который вы хотите загрузить, в управляемые параметры или в `.claude/settings.json` репозитория.

160 </Step>

161</Steps>

162 

163Чтобы проверить seed, запустите `claude -p` с `--output-format stream-json --verbose` в образе. В списке `plugins` события `init` путь каждого загруженного плагина находится под seed, например `/opt/claude-seed/cache/your-marketplace/code-formatter/1.0.0`.

164 

165Seed marketplaces следуют этим правилам:

166 

167* **Read-only**: Claude Code никогда не пишет в seed и принудительно отключает `autoUpdate` для seed marketplaces.

168* **Seed entries take precedence**: при каждом запуске marketplace, объявленный в seed, перезаписывает запись пользователя с тем же именем. Пользователи отказываются от плагина seed с `claude plugin disable`, а не удаляя marketplace.

169* **Update and remove fail**: `claude plugin marketplace update <name>` и `remove` без `--scope` на seed marketplace не работают с сообщением, которое называет каталог seed.

170* **Policy still applies**: [allowlist и blocklist](#restrict-what-users-can-install) проверяют записанный источник seed marketplace тоже. Разрешите источник, из которого вы построили seed.

171 

172Для флотов без исходящего доступа git объедините seed с источниками marketplace `directory` или `file` на общем монтировании. Установите `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1` также, что также отключает [автоматическое обновление плагина](/docs/ru/plugins/loading#when-auto-update-runs). Если доступен прокси, см. [Конфигурация прокси](/docs/ru/network-config#proxy-configuration) для переменных, которые нужно установить.

173 

174<h2 id="restrict-what-users-can-install">

175 Restrict what users can install

176</h2>

177 

178Управляемый allowlist `strictKnownMarketplaces` и blocklist `blockedMarketplaces` решают, из каких источников marketplace могут поступать плагины. Источник marketplace — это репозиторий git, URL-адрес или локальный путь, который Claude Code получает из него. Оба списка совпадают с источником marketplace, из которого поступает плагин, а не с собственной записью плагина внутри этого marketplace.

179 

180Для обычной блокировки, которая разрешает официальный marketplace и ваш собственный, см. [Разрешить официальный marketplace и ваш собственный](#allow-the-official-marketplace-and-your-own). Объедините его с [`disableSideloadFlags`](#control-matrix), чтобы пользователи не могли загружать плагины из локального каталога или URL-адреса.

181 

182Оба списка применяются перед загрузкой чего-либо и снова при запуске сессии:

183 

184* **Before a download**: списки применяются, когда пользователь добавляет marketplace и при каждой установке, обновлении, обновлении и автоматическом обновлении.

185* **At session start**: списки применяются снова к плагинам, которые уже установлены, поэтому установленный плагин, чей источник marketplace больше не совпадает, не загружается. `/plugin` перечисляет его с `Marketplace "<name>" is not in the allowed marketplace list` или `Marketplace "<name>" is blocked by enterprise policy`.

186 

187Где два списка применяются, зависит от того, где вы их установили:

188 

189* **The claude.ai admin console**: Claude Code применяет оба списка в сессиях, которые [читают управляемые параметры сервера](/docs/ru/managed-settings#where-and-when-a-policy-applies). claude.ai также проверяет их, когда кто-либо в вашей организации добавляет новый marketplace из репозитория git на claude.ai или из **Customize** в Claude Desktop app вне его вкладки Code. Это охватывает marketplace, который член добавляет для своей собственной учетной записи, и тот, который добавляется для всей организации под [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins). claude.ai отказывает репозиторию, который allowlist не допускает или который blocklist называет. Он не переопределяет marketplace, который был добавлен в любом месте до того, как вы установили списки, и он не проверяет загруженные плагины.

190* **A managed settings file, OS-level policy, or other managed source**: Claude Code применяет оба списка, где он читает этот источник. claude.ai не читает его.

191 

192Пока установлен какой-либо allowlist, или blocklist называет любой источник, кроме [`skills-dir`](#blocklist-with-blockedmarketplaces), плагин, чей marketplace Claude Code не может найти, не загружается. `/plugin` показывает ошибку политики для него, а не ошибку не найдено. Обычный случай — устаревшая запись `enabledPlugins` для marketplace, который никто не регистрировал.

193 

194<h3 id="control-matrix">

195 Control matrix

196</h3>

197 

198Таблица перечисляет каждый ключ политики плагина, что он применяет, и что он не может делать.

199 

200| Key | What it enforces | What it can't do |

201| :----------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

202| `strictKnownMarketplaces` | Allowlist источников marketplace. `[]` блокирует каждый источник, включая официальный marketplace. Alias: `allowedMarketplaces` | Не регистрирует marketplace, не ограничивает записи внутри разрешенного marketplace или не блокирует `--plugin-dir` |

203| `blockedMarketplaces` | Blocklist источников marketplace, проверяется перед allowlist | Не блокирует marketplace, уже зарегистрированный из источника, который он не совпадает |

204| `syncClaudeAiPlugins` | Установите `false`, чтобы остановить Claude Code загрузку и загрузку плагинов [синхронизированных из claude.ai](/docs/ru/plugins/loading#synced-plugins) для учетной записи каждого пользователя. Требует Claude Code v2.1.273 или позже | Не отключает один синхронизированный плагин. Для этого установите `"<name>@synced": false` в [`enabledPlugins`](/docs/ru/settings-reference#enabledplugins) |

205| `enabledPlugins` | `true` принудительно включает, `false` блокирует во всех областях и скрывает плагин | Не устанавливает плагин, чей marketplace не зарегистрирован или не разрешен |

206| `disableSideloadFlags` | Отклоняет `--plugin-dir`, `--plugin-url`, `--agents`, опцию Agent SDK `plugins` и non-SDK `--mcp-config` при запуске, и отклоняет папки, названные в переменной [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/ru/env-vars#variables) так же | Не ограничивает `.mcp.json`, `claude mcp add` или предоставленные SDK серверы. Объедините его с [`allowedMcpServers`](/docs/ru/managed-mcp) |

207| `disableCommandPluginSources` | Блокирует плагины с источником `command` от установки, обновления или загрузки. Источник `command` — это тот, чей каталог плагина создается путем запуска команды на машине. Когда не установлено, принимает значение `allowManagedHooksOnly` | Не влияет на другие типы источников |

208| `allowManagedHooksOnly` | Ограничивает, какие hooks работают. См. [`allowManagedHooksOnly`](/docs/ru/settings-reference#allowmanagedhooksonly) | Не доверяет hooks из плагинов, которые пользователи включают сами |

209| `strictPluginOnlyCustomization` | Блокирует skills, agents, hooks и MCP серверы, которые не поступают из плагина, управляемых параметров или встроенных Claude Code. Установите `true`, чтобы охватить все четыре типа, или массив значений `skills`, `agents`, `hooks` и `mcp`, таких как `["skills", "hooks"]`, чтобы охватить некоторые | Не ограничивает, какие плагины пользователи устанавливают. Объедините его с `strictKnownMarketplaces` |

210| `pluginSuggestionMarketplaces` | Marketplaces, чьи плагины могут появляться как предложения установки. См. [Рекомендовать плагины](#recommend-plugins) | Не влияет на встроенные советы |

211| `pluginTrustMessage` | Добавляет ваш текст к предупреждению доверия, которое `/plugin` показывает перед установкой плагина | Не изменяет собственный текст предупреждения |

212| `allowedChannelPlugins` | Заменяет список плагинов по умолчанию, разрешенных для отправки сообщений канала. Требует `channelsEnabled: true` | См. [Ограничить, какие плагины канала могут работать](/docs/ru/channels#restrict-which-channel-plugins-can-run) |

213| [`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL=1`](/docs/ru/env-vars) | Останавливает интерактивные сессии терминала от автоматической регистрации официального marketplace | Не удаляет marketplace, уже зарегистрированный. Allowlist и blocklist управляют той же автоматической регистрацией без него. Машина, которая запустилась один раз с установленным, не возобновляет автоматическую регистрацию после того, как вы его отключите |

214 

215Каждый ключ в таблице является управляемым параметром, кроме `enabledPlugins`, `syncClaudeAiPlugins` и `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`:

216 

217* **`enabledPlugins`**: вы можете установить его в любой области, и управляемые параметры его блокируют.

218* **`syncClaudeAiPlugins`**: каждый пользователь также может установить его в своих собственных пользовательских или локальных параметрах. См. его [область в справочнике параметров](/docs/ru/settings-reference#syncclaudeaiplugins).

219* **`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`**: это переменная окружения, которую вы доставляете через управляемый блок `env`, показанный под [Отключить обновления для всего флота](#turn-updates-off-for-the-whole-fleet).

220 

221Каждый ключ параметров здесь имеет запись в [справочнике параметров](/docs/ru/settings-reference).

222 

223<h4 id="aliases-for-the-marketplace-keys">

224 Aliases for the marketplace keys

225</h4>

226 

227`strictKnownMarketplaces` также может быть написан как `allowedMarketplaces`, а `extraKnownMarketplaces` также может быть написан как `additionalMarketplaces`.

228 

229* **Version**: aliases требуют Claude Code v2.1.232 или позже, и старые клиенты их игнорируют. В файле, который читает смешанный флот, сохраняйте канонические имена.

230* **Both spellings set**: когда файл устанавливает оба написания, применяется значение канонического ключа.

231 

232<h3 id="allowlist-with-strictknownmarketplaces">

233 Allowlist with `strictKnownMarketplaces`

234</h3>

235 

236Установите allowlist на список этих объектов источника. Большинство записей совпадают точно, записи `hostPattern` и `pathPattern` совпадают как регулярные выражения, и подстановочные знаки владельца `github` совпадают по владельцу:

237 

238* **`github`**: `{ "source": "github", "repo": "your-org/approved-plugins" }`, с опциональными `ref` и `path`.

239* **`github` owner wildcard**: `{ "source": "github", "repo": "your-org/*" }` совпадает с каждым репозиторием под этим владельцем. `*` должен стоять за всем именем репозитория. Claude Code игнорирует записи, такие как `*/plugins` и `your-org/tools-*`, как недействительные, поэтому они ничему не совпадают. Требует Claude Code v2.1.223 или позже.

240* **`git`**: `{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git" }`, с опциональными `ref` и `path`.

241* **`url`**: `{ "source": "url", "url": "https://plugins.example.com/marketplace.json" }`, с опциональными `headers`.

242* **`file` and `directory`**: `{ "source": "file", "path": "/opt/marketplace/marketplace.json" }` или `{ "source": "directory", "path": "/opt/marketplace/plugins" }`, с абсолютными путями.

243* **`hostPattern`**: `{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" }`, совпадает с хостом источников `github`, `git` и `url`. Шаблон совпадает в любом месте имени хоста, поэтому закрепите его с `^` и `$`, как показано, чтобы совпадать со всем хостом. Источник `github` всегда считается `github.com`. Используйте запись `hostPattern` для GitHub Enterprise Server или хоста GitLab, где разработчики создают свои собственные marketplaces. [Страница GHES](/docs/ru/github-enterprise-server#allowlist-ghes-marketplaces-in-managed-settings) имеет отработанный пример.

244* **`pathPattern`**: `{ "source": "pathPattern", "pathPattern": "^/opt/approved/" }`, совпадает с `path` источников `file` и `directory`. Шаблон совпадает в любом месте пути, поэтому начните его с `^`, чтобы закрепить префикс каталога. `".*"` разрешает каждый локальный путь.

245* **`skills-dir`**: `{ "source": "skills-dir" }` сохраняет [плагины skills-directory](#keep-skills-directory-plugins-loading) загружающимися при установленном allowlist и не совпадает ни с каким marketplace.

246 

247<h4 id="how-entries-match">

248 How entries match

249</h4>

250 

251Запись `url` совпадает по своему значению `url`; `headers` не сравниваются. Для записей `github` и `git`, `repo` или `url`, `ref` и `path` должны все совпадать или отсутствовать с обеих сторон:

252 

253* Запись без `ref` не охватывает источник с `ref: "main"`.

254* Запись для `your-org/your-marketplace` не охватывает URL `git`, который клонирует тот же репозиторий.

255* Косая черта в конце, суффикс `.git` или `ssh://` вместо `https://` — это другое значение. Когда marketplace может быть клонирован более чем одним URL-адресом, предпочитайте запись `hostPattern`.

256 

257Записи с подстановочным знаком владельца следуют точным правилам для `ref` и совпадают с любым `path` внутри репозитория, если запись не закрепляет один. Сопоставление подстановочных знаков чувствительно к регистру в allowlist.

258 

259<h4 id="keep-skills-directory-plugins-loading">

260 Keep skills-directory plugins loading

261</h4>

262 

263Плагины skills-directory — это плагины, которые пользователи хранят под `~/.claude/skills/` или `.claude/skills/` проекта в папках, которые содержат `.claude-plugin/plugin.json`. Если вы установите какой-либо allowlist без записи `{ "source": "skills-dir" }`, они перестанут загружаться. Простые [skills](/docs/ru/skills), означающие `SKILL.md` без этого манифеста, продолжают загружаться.

264 

265<h4 id="marketplaces-hosted-on-claude-ai">

266 Marketplaces hosted on claude.ai

267</h4>

268 

269Allowlist и blocklist совпадают с [marketplace, размещенным на claude.ai](/docs/ru/plugins/install#add-from-claude-ai), по его хосту. Чтобы разрешить или заблокировать один, добавьте запись `hostPattern`, которая совпадает с `claude.ai`, в `strictKnownMarketplaces` или `blockedMarketplaces`. На allowlist такая запись допускает ваши marketplaces claude.ai организации и marketplaces claude.ai по умолчанию, но не marketplace, состоящий из собственных загрузок claude.ai члена или тот, чья область claude.ai не указал. Требует Claude Code v2.1.273 или позже.

270 

271<h4 id="lock-every-source-out">

272 Lock every source out

273</h4>

274 

275Пустой allowlist, `[]`, блокирует каждый источник marketplace, включая официальный marketplace.

276 

277Эта блокировка не охватывает плагины [синхронизированные из claude.ai](/docs/ru/plugins/loading#synced-plugins), которые Claude Code загружает из учетной записи каждого пользователя, а не из marketplace. Чтобы остановить и те, установите [`syncClaudeAiPlugins`](/docs/ru/settings-reference#syncclaudeaiplugins) на `false` в управляемых параметрах или отключите Skills для вашей организации на claude.ai.

278 

279<h3 id="blocklist-with-blockedmarketplaces">

280 Blocklist with `blockedMarketplaces`

281</h3>

282 

283`blockedMarketplaces` принимает те же объекты источника, что и [`strictKnownMarketplaces`](#allowlist-with-strictknownmarketplaces), и проверяется первым, поэтому источник в обоих списках блокируется. Сопоставление blocklist шире, чем сопоставление allowlist:

284 

285* URL-адреса Git канонизируются, поэтому формы `git@` и `https://`, суффиксы `.git` и косые черты в конце одного репозитория `github.com` все совпадают с одной записью.

286* Запись `github` также блокирует эквивалентный URL `git`, и наоборот.

287* Для записи `owner/*`, сравнение владельца не чувствительно к регистру.

288* Запись без `ref` или `path` блокирует каждый ref и path репозиториев, которые она совпадает.

289 

290Эта запись блокирует каждый репозиторий под одним владельцем GitHub:

291 

292```json theme={null}

293{

294 "blockedMarketplaces": [

295 { "source": "github", "repo": "untrusted-org/*" }

296 ]

297}

298```

299 

300Записи `url` в `blockedMarketplaces` также применяются, когда пользователь добавляет URL репозитория `https://`, который Claude Code [клонирует, а не получает](/docs/ru/plugins/cli-reference#plugin-marketplace-add), например простой URL репозитория `github.com` или `gitlab.com`. Пользователь не может добавить этот URL, если запись его называет. Сопоставление игнорирует суффикс `.git` и любой ref, который пользователь добавляет после `#`. Требует Claude Code v2.1.232 или позже.

301 

302Запись `{ "source": "skills-dir" }` здесь останавливает [плагины skills-directory](#keep-skills-directory-plugins-loading) от загрузки, из обоих `~/.claude/skills/` и `.claude/skills/` проекта.

303 

304Blocklist, который называет только эту запись, не считается активным ограничением, поэтому он не [останавливает плагины, чей marketplace Claude Code не может найти](#restrict-what-users-can-install) от загрузки.

305 

306<h3 id="allow-the-official-marketplace-and-your-own">

307 Allow the official marketplace and your own

308</h3>

309 

310Большинство организаций разрешают официальный marketplace и свой собственный, и регистрируют оба, чтобы каждая машина имела их. Эта политика управляемых параметров разрешает оба marketplace, регистрирует оба, принудительно включает два плагина и отклоняет `--plugin-dir`:

311 

312```json theme={null}

313{

314 "strictKnownMarketplaces": [

315 { "source": "github", "repo": "anthropics/claude-plugins-official" },

316 { "source": "github", "repo": "your-org/*" },

317 { "source": "skills-dir" }

318 ],

319 "extraKnownMarketplaces": {

320 "claude-plugins-official": {

321 "source": { "source": "github", "repo": "anthropics/claude-plugins-official" }

322 },

323 "your-marketplace": {

324 "source": { "source": "github", "repo": "your-org/your-marketplace" }

325 }

326 },

327 "enabledPlugins": {

328 "code-formatter@your-marketplace": true,

329 "deploy-helper@your-marketplace": true

330 },

331 "disableSideloadFlags": true

332}

333```

334 

335На машине с этой политикой добавление любого источника вне списка, например `/plugin marketplace add https://example.com/other-marketplace.git`, не работает с сообщением, содержащим `is blocked by enterprise policy`, за которым следуют разрешенные источники. `claude --plugin-dir ./x` выходит с сообщением, называющим `disableSideloadFlags`.

336 

337Запись `{ "source": "skills-dir" }` сохраняет [плагины skills-directory](#keep-skills-directory-plugins-loading) загружающимися под этим allowlist. Удалите эту запись и они перестанут загружаться.

338 

339Регистрируйте оба marketplace с явными записями `extraKnownMarketplaces`, как эта политика делает, а не полагаясь на allowlist или на официальный marketplace, регистрирующий себя:

340 

341* **Allowlist не регистрирует ничего**: запись `extraKnownMarketplaces` делает, и она сама должна пройти allowlist. Claude Code отказывает регистрировать управляемый marketplace, чей источник allowlist не совпадает.

342* **Официальный marketplace регистрирует себя только в интерактивной сессии терминала**: даже там он регистрируется только, когда allowlist это разрешает. Запуск `-p` или терминал, подключенный к облачной сессии, никогда его не регистрирует.

343* **Заблокированная попытка запоминается**: если машина когда-либо работала под политикой, которая блокировала официальный marketplace, Claude Code записывает заблокированную попытку и не повторяет попытку после изменения политики. Блокировка `[]` — это одна такая политика. Эта машина регистрирует его снова только через запись `extraKnownMarketplaces`, такую как в этой политике, запись `enabledPlugins` для одного из его плагинов или ручное `/plugin marketplace add`.

344 

345<h2 id="set-update-policy">

346 Set update policy

347</h2>

348 

349Вы можете установить политику обновления для каждого marketplace, для всего флота или для каждой группы пользователей через каналы выпуска.

350 

351<h3 id="turn-auto-update-on-or-off-per-marketplace">

352 Turn auto-update on or off per marketplace

353</h3>

354 

355Автоматическое обновление плагина работает в фоновом режиме после запуска для marketplaces, у которых оно включено. Для того, какие marketplaces имеют его включенным по умолчанию, см. [Когда автоматическое обновление работает](/docs/ru/plugins/loading#when-auto-update-runs). Чтобы решить для флота, установите `"autoUpdate": true` или `false` на управляемой записи `extraKnownMarketplaces`:

356 

357* Если управляемая запись устанавливает поле, Claude Code отклоняет переключение `/plugin` пользователя с ошибкой, которая начинается с `Auto-update for '<name>' is set by`.

358* Если управляемая запись оставляет поле неустановленным, переключение пользователя сохраняется.

359 

360<h3 id="turn-updates-off-for-the-whole-fleet">

361 Turn updates off for the whole fleet

362</h3>

363 

364Чтобы отключить автоматическое обновление плагина для каждого marketplace, установите `DISABLE_AUTOUPDATER` в управляемом блоке `env`, как это делает этот пример. Та же переменная также останавливает собственные обновления Claude Code:

365 

366```json theme={null}

367{

368 "env": {

369 "DISABLE_AUTOUPDATER": "1"

370 }

371}

372```

373 

374Чтобы остановить собственные обновления Claude Code, но сохранить автоматическое обновление плагина, добавьте `"FORCE_AUTOUPDATE_PLUGINS": "1"` в тот же блок. Другие [переменные окружения, которые останавливают автоматическое обновление плагина](/docs/ru/plugins/loading#when-auto-update-runs), работают так же.

375 

376`DISABLE_AUTOUPDATER` не охватывает плагины с источником [`command`](/docs/ru/plugins/marketplace-reference#command-plugin-source). Claude Code повторно запускает команду каждого включенного при каждой сессии и устанавливает вывод, когда он изменился. Для того, что останавливает эти запуски, см. [Когда источник команды повторно запускается](/docs/ru/plugins/loading#when-a-command-source-re-runs).

377 

378<h3 id="assign-release-channels-to-user-groups">

379 Assign release channels to user groups

380</h3>

381 

382Чтобы запустить стабильные и ранние каналы доступа, разместите два marketplace, которые указывают на разные refs одних и тех же плагинов. Затем дайте каждой группе пользователей свой собственный marketplace через отдельные управляемые параметры конечной точки или политику шлюза. Управляемые параметры сервера из консоли администратора [применяются к каждому пользователю в вашей организации](/docs/ru/server-managed-settings#current-limitations), поэтому они не могут назначать разные параметры разным группам.

383 

384* Развертывайте отдельные [управляемые параметры конечной точки](/docs/ru/managed-settings#delivery-mechanisms), такие как файл управляемых параметров или профиль MDM, на устройства каждой группы. Чтобы проверить, применяется ли файл или профиль для каждой группы на устройстве, которое также имеет источник на уровне организации, см. [Как Claude Code объединяет управляемые источники](/docs/ru/managed-settings#precedence-within-the-managed-tier).

385* Определите одну [политику шлюза Claude apps](/docs/ru/claude-apps-gateway-config#managed) для каждой группы. Шлюз применяет первую политику, чье правило совпадения подходит пользователю, поэтому упорядочите политики так, чтобы каждый пользователь достигал политики своей группы. Карта `extraKnownMarketplaces` этой политики не объединяется с картой любой другой политики, поэтому перечислите каждый marketplace, который группе нужен в ней, а не только ее marketplace канала.

386 

387С любым механизмом стабильная группа получает эту конфигурацию:

388 

389```json theme={null}

390{

391 "extraKnownMarketplaces": {

392 "stable-tools": {

393 "source": { "source": "github", "repo": "your-org/stable-tools" }

394 }

395 }

396}

397```

398 

399Группа раннего доступа получает `latest-tools` вместо этого. Чтобы установить два marketplace, см. [Запустить каналы выпуска](/docs/ru/plugins/host-marketplace#run-release-channels).

400 

401<h2 id="recommend-plugins">

402 Recommend plugins

403</h2>

404 

405Владельцы Marketplace могут прикреплять сигналы `relevance` к записям, чтобы Claude Code предлагал плагин, когда проект совпадает.

406 

407Предложения из marketplace появляются только, когда он зарегистрирован на машине пользователя, вы перечисляете его имя в `pluginSuggestionMarketplaces` в управляемых параметрах, и вы объявляете его источник в той же политике. Объявите источник либо как запись `extraKnownMarketplaces` marketplace, либо как запись allowlist. Официальный marketplace требует только имя. См. [Включить предложения в управляемых параметрах](/docs/ru/plugins/relevance#enable-suggestions-in-managed-settings).

408 

409<h2 id="audit-and-review">

410 Audit and review

411</h2>

412 

413События OpenTelemetry и Analytics API говорят вам, что ваш флот устанавливает и запускает.

414 

415Для того, что плагин может запустить на машине и что каждый уровень доверия разрешает, прочитайте [Безопасность плагина](/docs/ru/plugins/security) перед тем, как вы одобрите marketplace.

416 

417<h3 id="opentelemetry-events">

418 OpenTelemetry events

419</h3>

420 

421`claude_code.plugin_installed` записывает каждую установку, и `claude_code.plugin_loaded` записывает каждый включенный плагин при запуске сессии. Оба события редактируют или опускают имена плагинов и marketplace третьих сторон, если вы не установите `OTEL_LOG_TOOL_DETAILS=1`, как показано в [Редактированные имена плагинов в вашем бэкенде](/docs/ru/plugins/measure#redacted-plugin-names-in-your-backend). Списки полей находятся под [Событие установки плагина](/docs/ru/monitoring-usage#plugin-installed-event) и [Событие загрузки плагина](/docs/ru/monitoring-usage#plugin-loaded-event).

422 

423<h3 id="analytics-api">

424 Analytics API

425</h3>

426 

427На плане Enterprise `GET /v1/organizations/analytics/plugins` возвращает подсчеты установки и вызова для каждого плагина, в день, по Claude Code и Cowork. Вы можете группировать подсчеты по пользователю или группе RBAC. Активность плагина, которая достигает Anthropic без имени плагина, появляется в одной совокупной строке `third-party`. См. [справочник конечной точки](https://platform.claude.com/docs/en/api/admin/analytics/plugins/list) и [Доступ к данным программно](/docs/ru/analytics#access-data-programmatically) для ключа, который ему нужен.

428 

429<h2 id="plan-for-what-managed-settings-can’t-enforce">

430 Plan for what managed settings can't enforce

431</h2>

432 

433Эти запросы из проверок безопасности не имеют выделенного ключа в текущей схеме параметров. Ближайшие существующие элементы управления:

434 

435* **Per-user or per-group targeting**: каждый ключ плагина применяется к каждому пользователю, который получает параметры. Управляемые параметры сервера доставляют одну конфигурацию для каждой организации. Для политики для каждой группы используйте отдельные управляемые параметры конечной точки или политики шлюза, как под [Назначить каналы выпуска группам пользователей](#assign-release-channels-to-user-groups).

436* **Restricting entries inside an allowed marketplace**: allowlist совпадает с источниками marketplace. Чтобы заблокировать один плагин из разрешенного marketplace, установите его на `false` в управляемом `enabledPlugins`.

437* **Hiding `/plugin`**: нет ключа, который отключает команду. Ближайший эквивалент объединяет allowlist, называющий только ваш marketplace, управляемые записи `enabledPlugins` для плагинов, которые вы поставляете, и `disableSideloadFlags`.

438* **Gating `--plugin-dir` through the allowlist**: allowlist не охватывает `--plugin-dir`. `disableSideloadFlags` делает.

439* **Enforcing the claude.ai plugin toggles through these keys**: [**Organization settings > Plugins & skills**](https://claude.ai/admin-settings/skills?tab=inventory) не устанавливает ключи на этой странице. Что члены и ваша организация включают там достигает CLI как [синхронизированные плагины](/docs/ru/plugins/loading#synced-plugins), которые имеют свои собственные элементы управления.

440 

441<h2 id="troubleshoot-policy">

442 Troubleshoot policy

443</h2>

444 

445Если политика плагина не ведет себя как ожидается на машине, сначала проверьте эти симптомы:

446 

447* **The managed file didn't parse**: когда `managed-settings.json` не является действительным JSON, Claude Code отказывается запускаться и печатает [ошибку, называющую файл](/docs/ru/errors#managed-settings-document-could-not-be-parsed). Файл, который анализирует, но имеет одну недействительную запись, сохраняет остальную часть своей политики. См. [Недействительные записи в управляемых параметрах](/docs/ru/managed-settings#invalid-entries-in-managed-settings).

448* **The managed source didn't load**: запустите `/status` и ищите `Enterprise managed settings` в строке `Setting sources`. Если его нет, источник не загрузился.

449* **A user reports `blocked by enterprise policy`**: сообщение называет marketplace или его источник. Для allowlist он также перечисляет разрешенные источники. Записи, обращенные к пользователю, находятся на [Troubleshoot plugins](/docs/ru/plugins/troubleshooting).

450* **A plugin the user disabled in `~/.claude/settings.json` still loads**: другой источник параметров повторно включил его, такой как управляемая запись `enabledPlugins`, которая принудительно включает его. `/plugin` и `claude plugin list` показывают `Disabled in ~/.claude/settings.json but still loads` с этим источником параметров.

451 

452<h2 id="next-steps">

453 Next steps

454</h2>

455 

456* [Marketplace reference](/docs/ru/plugins/marketplace-reference#marketplace-sources): значения `source`, которые `extraKnownMarketplaces`, `strictKnownMarketplaces` и `blockedMarketplaces` принимают

457* [Host and maintain a marketplace](/docs/ru/plugins/host-marketplace): запустите marketplace, на который указывает ваша политика

458* [Plugin security and trust](/docs/ru/plugins/security): что плагин может делать на машине и как просмотреть один перед установкой

459* [Server-managed settings](/docs/ru/server-managed-settings): доставляйте эти ключи из консоли администратора claude.ai

460* [Troubleshoot plugins](/docs/ru/plugins/troubleshooting#blocked-by-your-organization): сообщения, которые пользователи видят, когда политика их блокирует

plugins/overview.md +142 −0 created

Details

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> Узнайте, что такое Claude Code plugin, когда вам нужен plugin вместо отдельного skill или MCP server, и какую страницу прочитать для установки или создания plugin.

8 

9Claude Code plugin — это директория skills, agents, hooks, MCP servers или других компонентов, которые Claude Code устанавливает и загружает как одну единицу. Большинство plugins поступают из marketplace, который представляет собой каталог, в котором перечислены plugins и указано, где получить каждый из них. Вы также можете загрузить plugin из папки, которую вам дал кто-то другой, или [создать свой собственный](/docs/ru/plugins/create).

10 

11<Note>

12 Если вы используете claude.ai chat или Cowork, а не Claude Code, см. [Plugins на claude.ai и в Cowork](https://claude.com/docs/plugins/overview).

13</Note>

14 

15Чтобы попробовать plugin прямо сейчас, запустите `/plugin` в сеансе терминала Claude Code и установите один из вкладки **Discover**, на которой перечислены plugins из официального marketplace Anthropic и любого marketplace, который вы добавили. Оттуда:

16 

17* [Установка и управление plugins](/docs/ru/plugins/install): полные шаги установки, области действия и другие поверхности

18* [Создание plugin](/docs/ru/plugins/create): создайте свой собственный

19* [Решите, нужен ли вам plugin](#decide-whether-you-need-a-plugin): является ли plugin правильным инструментом для того, что вы хотите

20 

21<h2 id="understand-what-a-plugin-is">

22 Поймите, что такое plugin

23</h2>

24 

25Plugin — это директория компонентов, обычно с манифестом. Манифест, JSON-файл в `.claude-plugin/plugin.json`, дает plugin его имя и может добавить версию, описание и другие [метаданные](/docs/ru/plugins/manifest-reference). Компоненты — это то, что plugin добавляет в Claude Code, например:

26 

27* [**Skills**](/docs/ru/plugins/components#skills): инструкции `SKILL.md`, которые Claude загружает при необходимости, и которые вы также можете запустить как команду

28* [**Agents**](/docs/ru/plugins/components#agents): определения подагентов, которым Claude может делегировать

29* [**Hooks**](/docs/ru/plugins/components#hooks): команды, которые Claude Code запускает в точках своего жизненного цикла, например после каждого редактирования

30* [**MCP servers**](/docs/ru/plugins/components#mcp-servers): серверы инструментов, к которым Claude Code подключается, пока plugin включен

31 

32На этой диаграмме показан plugin с именем `my-plugin`, который содержит по одному из каждого из этих компонентов, и что вы получаете от каждого файла после загрузки plugin.

33 

34<img src="https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugin-directory.svg?fit=max&auto=format&n=2Q_GtOEovg5qaBem&q=85&s=f623b64e82713b830e48174f0a922888" className="dark:hidden" alt="Диаграмма в двух столбцах, соединенных пятью прямыми стрелками. Слева — директория plugin с именем my-plugin, содержащая манифест в .claude-plugin/plugin.json, skills/review/SKILL.md, agents/reviewer.md, hooks/hooks.json, .mcp.json и другие компоненты. Справа — то, что каждый файл дает вам в вашем сеансе: манифест устанавливает имя plugin, my-plugin; skill запускается как /my-plugin:review; файл agent — это подагент, которому Claude может делегировать; файл hooks содержит hooks, которые запускаются на событиях жизненного цикла; и .mcp.json добавляет MCP server, который дает Claude инструменты." width="760" height="336" data-path="images/plugin-directory.svg" />

35 

36<img src="https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugin-directory-dark.svg?fit=max&auto=format&n=2Q_GtOEovg5qaBem&q=85&s=17ee2bd45b63154fcc148ae1d1f736d8" className="hidden dark:block" alt="Диаграмма в двух столбцах, соединенных пятью прямыми стрелками. Слева — директория plugin с именем my-plugin, содержащая манифест в .claude-plugin/plugin.json, skills/review/SKILL.md, agents/reviewer.md, hooks/hooks.json, .mcp.json и другие компоненты. Справа — то, что каждый файл дает вам в вашем сеансе: манифест устанавливает имя plugin, my-plugin; skill запускается как /my-plugin:review; файл agent — это подагент, которому Claude может делегировать; файл hooks содержит hooks, которые запускаются на событиях жизненного цикла; и .mcp.json добавляет MCP server, который дает Claude инструменты." width="760" height="336" data-path="images/plugin-directory-dark.svg" />

37 

38Для каждого типа компонента, который может содержать plugin, с примером каждого, см. [Plugin components](/docs/ru/plugins/components). Чтобы увидеть, где находится каждая часть в директории plugin, используйте [plugin explorer](/docs/ru/plugins/components#explore-the-plugin-directory) на этой странице.

39 

40<h3 id="decide-whether-you-need-a-plugin">

41 Решите, нужен ли вам plugin

42</h3>

43 

44Skills, подагенты, hooks и MCP servers работают самостоятельно, без plugin. Skill, который вы сохраняете в `~/.claude/skills/`, например, доступен в каждом проекте на вашем компьютере. Чтобы установить один самостоятельно, см. [Skills](/docs/ru/skills), [Subagents](/docs/ru/sub-agents), [Hooks](/docs/ru/hooks-guide) или [MCP](/docs/ru/mcp).

45 

46Используйте plugin, когда вы хотите упаковать несколько skills, подагентов, hooks или MCP servers как одну единицу. Установите один, чтобы получить настройку, которую создал кто-то другой, с одной командой и обновлениями из его marketplace. Создайте один, чтобы дать вашу собственную настройку товарищам по команде, установить его во многих проектах или опубликовать версионные релизы.

47 

48<h3 id="what-an-enabled-plugin-adds-to-your-sessions">

49 Что включенный plugin добавляет в ваши сеансы

50</h3>

51 

52Включенный plugin является частью каждого сеанса, а не только сеансов, в которых вы его используете. Это имеет несколько последствий, о которых стоит знать перед установкой:

53 

54* **Контекст и использование**: для каждого skill, agent и команды, которые [Claude может вызвать самостоятельно](/docs/ru/skills#control-who-invokes-a-skill), имя и описание находятся в контексте Claude на каждом ходу, чтобы Claude знал об их существовании. Эти токены учитываются в вашем использовании и оставляют меньше места в [контекстном окне](/docs/ru/context-window) даже в сеансах, где ничего из plugin не запускается. Полный текст skill или agent загружается только при его использовании. То, что MCP servers plugin добавляют за ход, следует [MCP tool search](/docs/ru/mcp#scale-with-mcp-tool-search).

55* **Процессы**: MCP servers, которые определяет plugin, работают параллельно с каждым сеансом, в котором он включен, и его hooks срабатывают при их событиях.

56* **Разрешения**: то, что запускает plugin, запускается от вас. См. [Plugin security and trust](/docs/ru/plugins/security) для того, что нужно проверить в первую очередь.

57 

58Вы можете проверить отпечаток plugin на каждом этапе:

59 

60* **Перед установкой**: откройте plugin из вкладки **Marketplaces** в `/plugin`. Plugins в официальном marketplace Anthropic показывают там оценку **Context cost**.

61* **После установки**: [Measure what a plugin costs](/docs/ru/plugins/measure#measure-what-a-plugin-costs) показывает, как прочитать отпечаток plugin, и группа **Not used recently** вкладки **Installed** перечисляет plugins, которые вы можете отключить.

62* **Чтобы остановить его без удаления**: отключите plugin с помощью `/plugin` или в вашей оболочке `claude plugin disable`. См. [Manage installed plugins](/docs/ru/plugins/install#manage-installed-plugins).

63 

64<h2 id="get-plugins-from-a-marketplace">

65 Получайте plugins из marketplace

66</h2>

67 

68Marketplace — это репозиторий или директория с файлом `.claude-plugin/marketplace.json`, который перечисляет plugins и указывает, где получить каждый из них. Это каталог, а не размещенный магазин. Вы добавляете marketplace один раз, затем устанавливаете plugins из него по имени, например `commit-commands@claude-plugins-official`.

69 

70<Note>

71 Marketplace plugin — это не [Claude Marketplace](https://claude.com/marketplace). Claude Marketplace — это веб-сайт на claude.com/marketplace, где вы просматриваете plugins, connectors, партнерские продукты и партнеров услуг. Это не marketplace, который вы добавляете с помощью `/plugin marketplace add`.

72</Note>

73 

74Claude Code добавляет официальный marketplace Anthropic при первом запуске интерактивного сеанса терминала, если [управляемая политика](/docs/ru/plugins/org#allow-the-official-marketplace-and-your-own) это не блокирует. Claude Code не добавляет никакой другой marketplace самостоятельно, включая community и demo marketplaces Anthropic. Чтобы различить три marketplace Anthropic, прочитайте [Anthropic's marketplaces](/docs/ru/plugins/anthropic-marketplaces). Чтобы увидеть, что перечисляет официальный, откройте вкладку **Discover** в `/plugin` в сеансе или просмотрите [Claude Marketplace](https://claude.com/marketplace/plugins).

75 

76На этой диаграмме показан путь от marketplace к вашему сеансу. Marketplace перечисляет plugin, вы устанавливаете этот plugin, и Claude Code загружает его компоненты.

77 

78<img src="https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugins-model.svg?fit=max&auto=format&n=2Q_GtOEovg5qaBem&q=85&s=4196344954b7c2e27fc0bd6a9a1113a1" className="dark:hidden" alt="Диаграмма пути marketplace в трех ящиках, слева направо. Marketplace, каталог plugins, перечисляет plugin. Plugin — это одна директория, установленная как единица, содержащая skills, agents, hooks, MCP servers и другие компоненты. Вы устанавливаете plugin в Claude Code, который загружает его компоненты." width="760" height="252" data-path="images/plugins-model.svg" />

79 

80<img src="https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugins-model-dark.svg?fit=max&auto=format&n=2Q_GtOEovg5qaBem&q=85&s=f6cdefe1fc05daf3b253d26e9f3f70f6" className="hidden dark:block" alt="Диаграмма пути marketplace в трех ящиках, слева направо. Marketplace, каталог plugins, перечисляет plugin. Plugin — это одна директория, установленная как единица, содержащая skills, agents, hooks, MCP servers и другие компоненты. Вы устанавливаете plugin в Claude Code, который загружает его компоненты." width="760" height="252" data-path="images/plugins-model-dark.svg" />

81 

82[Install and manage plugins](/docs/ru/plugins/install#install-a-plugin) содержит шаги установки для каждого места, где вы запускаете Claude Code. Пока вы разрабатываете plugin, вам не нужен marketplace: загружайте его прямо из его папки с помощью `--plugin-dir`, как показано в [Develop without a marketplace](/docs/ru/plugins/create#develop-without-a-marketplace).

83 

84<h3 id="make-an-installed-plugin-available-in-your-session">

85 Сделайте установленный plugin доступным в вашем сеансе

86</h3>

87 

88Прежде чем plugin, который вы установили, даст вам skill, который вы можете запустить, он должен присутствовать на каждом из этих уровней:

89 

90* **Settings**: ваши settings перечисляют marketplaces, которые вы добавили, и plugins, которые включены.

91* **Disk**: `~/.claude/plugins/` содержит то, что Claude Code загрузил и установил.

92* **Session**: plugins загружаются при запуске или когда вы [reload plugins](/docs/ru/plugins/loading#check-which-stage-a-plugin-reached).

93 

94Прочитайте [Plugin loading reference](/docs/ru/plugins/loading) для правил на каждом уровне, включая то, какой файл settings имеет приоритет и где находятся файлы на диске.

95 

96<h2 id="tell-anthropic’s-marketplaces-from-third-party-ones">

97 Отличайте marketplace Anthropic от marketplace третьих сторон

98</h2>

99 

100Имя marketplace помещает его в один из трех уровней. Claude Code принимает официальные и community имена только для marketplaces, полученных из репозиториев `github.com/anthropics/`:

101 

102* **Official**: marketplaces с одним из [официальных имен marketplace](/docs/ru/plugins/security#official-marketplace-names) Anthropic, включая `claude-plugins-official` и demo marketplace `claude-code-plugins`.

103* **Community**: marketplaces с одним из community имен Anthropic, например `claude-community`. [Identify Anthropic's marketplaces by name](/docs/ru/plugins/security#marketplace-tiers) их перечисляет.

104* **Third-party**: все остальные marketplaces. Marketplace, который публикует ваш коллега или ваша организация, является third-party.

105 

106Независимо от уровня, plugin, который вы устанавливаете, может запускать код с вашими привилегиями пользователя. Прочитайте [Plugin security and trust](/docs/ru/plugins/security) для того, как проверить plugin перед его установкой.

107 

108Через [managed settings](/docs/ru/settings#settings-files) организация может добавить в список разрешений или заблокировать marketplaces, принудительно установить plugins и отключить загрузку только для сеанса. Прочитайте [Manage plugins for your organization](/docs/ru/plugins/org) для этих элементов управления.

109 

110<h2 id="understand-install-scopes">

111 Поймите области действия установки

112</h2>

113 

114Когда вы устанавливаете plugin, вы выбираете область действия, и область действия определяет, для кого включен plugin:

115 

116* **User scope**: включен для вас в каждом проекте на этом компьютере

117* **Project scope**: включен для всех, кто работает в этом репозитории, через committed `.claude/settings.json`. Каждый сотрудник все еще [устанавливает его на своей машине](/docs/ru/plugins/loading#enabled-in-project-settings-but-not-installed)

118* **Local scope**: включен для вас только в этом репозитории

119 

120Plugin, который вы устанавливаете в области действия пользователя в терминале, локальных сеансах настольного приложения или расширении VS Code, доступен в двух других на этом компьютере, потому что все три читают одни и те же файлы settings. См. [Choose an install scope](/docs/ru/plugins/install#choose-an-install-scope) для того, как выбрать один.

121 

122Облачный сеанс, включая сеанс в браузере на claude.ai/code, не загружает plugins в ваши локальные settings. Для шагов установки в терминале, VS Code и настольном приложении, а также для того, что загружает облачный сеанс, см. [Install a plugin](/docs/ru/plugins/install#install-a-plugin).

123 

124<Note>

125 Тот же формат plugin также устанавливается на claude.ai и в Cowork, где загружается другой набор компонентов. Для этих поверхностей см. [Plugins на claude.ai и в Cowork](https://claude.com/docs/plugins/overview) на claude.com.

126</Note>

127 

128<h2 id="next-steps">

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

130</h2>

131 

132Большинство людей начинают с установки plugin из официального marketplace Anthropic, который Claude Code добавляет при первом запуске интерактивного сеанса терминала. Запустите `/plugin` в сеансе терминала для его просмотра или следуйте [Install and manage plugins](/docs/ru/plugins/install), который также охватывает настольное приложение и VS Code. Чтобы увидеть, что находится в этом marketplace перед открытием Claude Code, просмотрите [Claude Marketplace](https://claude.com/marketplace/plugins) в Интернете.

133 

134Чтобы создать свой собственный, [Create a plugin](/docs/ru/plugins/create) начинается с пустой директории и заканчивается рабочим plugin.

135 

136После установки или создания plugin эти страницы охватывают то, что дальше:

137 

138* **Поделитесь тем, что вы создали**: [Publish and distribute a plugin](/docs/ru/plugins/publish)

139* **Проверьте, работает ли он и используется ли**: [Test plugins with evals](/docs/ru/plugin-evals) и [Measure plugin cost and usage](/docs/ru/plugins/measure)

140* **Запустите marketplace для вашей команды**: [Create a marketplace](/docs/ru/plugins/create-marketplace), затем [Host and maintain a marketplace](/docs/ru/plugins/host-marketplace)

141* **Установите политику plugin для организации**: [Manage plugins for your organization](/docs/ru/plugins/org)

142* **Исправьте проблему**: [Troubleshoot plugins](/docs/ru/plugins/troubleshooting)

plugins/publish.md +210 −0 created

Details

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# Публикация и распространение плагина

6 

7> Опубликуйте плагин Claude Code через собственный маркетплейс или маркетплейс сообщества Anthropic с предварительным контрольным списком и информацией о том, как пользователи получают обновления.

8 

9Публикация плагина Claude Code означает его размещение в маркетплейсе — каталоге JSON, который содержит список плагинов и указывает, откуда получить каждый из них, чтобы другие люди могли установить его по имени и получать ваши обновления. Вы можете запустить собственный маркетплейс или отправить свой плагин в маркетплейс сообщества Anthropic. Чтобы поделиться плагином без публикации, отправьте людям папку плагина или файл `.zip` для самостоятельной загрузки.

10 

11Эта страница предназначена для автора готового плагина, который готов поделиться им.

12 

13<Note>

14 Следующие случаи рассматриваются на других страницах:

15 

16 * **Ваш плагин еще не готов**: начните с [Создание плагина](/docs/ru/plugins/create)

17 * **Вы поддерживаете CLI или SDK с плагином в официальном маркетплейсе**: см. [Рекомендуйте свой плагин из вашего CLI](/docs/ru/plugins/cli-hints)

18</Note>

19 

20Начните с [Выбор способа распространения](#choose-how-to-distribute), чтобы сравнить варианты распространения. Если вы уже знаете свой путь, перейдите к [Подготовка плагина к выпуску](#prepare-your-plugin-for-release), а затем следуйте разделу вашего маршрута, чтобы узнать, что сказать пользователям и как они получают ваши обновления.

21 

22<h2 id="choose-how-to-distribute">

23 Выбор способа распространения

24</h2>

25 

26Выберите вариант распространения в зависимости от того, кому нужно установить плагин:

27 

28| Маршрут | Кто может установить | Что вам нужно | Получают ли пользователи ваши обновления автоматически? |

29| :----------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------ |

30| [Без маркетплейса](#share-a-plugin-without-a-marketplace) | Люди, которым вы отправили папку плагина или файл `.zip` | Папка плагина | Нет. Они загружают копию, которую вы отправили |

31| [Собственный маркетплейс](#publish-through-your-own-marketplace) | Любой, кто может получить доступ к репозиторию, который может быть приватным, который может клонировать ваша команда | Репозиторий git или другой хост с файлом `.claude-plugin/marketplace.json`, который содержит список вашего плагина | Выключено |

32| [Маркетплейс сообщества Anthropic](#submit-to-the-community-marketplace) | Любой, кто добавит `anthropics/claude-plugins-community` | Отправка через форму отправки каталога плагинов | Выключено |

33 

34Автоматическое обновление — это параметр маркетплейса на стороне пользователя, который получает новые версии в фоновом режиме.

35 

36<h2 id="prepare-your-plugin-for-release">

37 Подготовка плагина к выпуску

38</h2>

39 

40Имя, версия, валидация и установка из маркетплейса определяют, будет ли выпуск работать для людей, которые его установят. Проверьте их перед первым выпуском и снова перед каждым последующим.

41 

42<Steps>

43 <Step title="Выберите постоянное имя">

44 Пользователи устанавливают, включают и настраивают ваш плагин по `name@marketplace`, поэтому переименованный плагин — это другой плагин для каждой существующей установки. Выберите имя в формате kebab-case, например `deploy-helper`, потому что `claude plugin validate` предупреждает о других формах, и рассматривайте его как постоянное. Установите `displayName` в `plugin.json` для метки, которую видят пользователи.

45 </Step>

46 

47 <Step title="Решите, как вы будете версионировать">

48 Если вы установите `version` в `plugin.json` и позже отправите коммиты без его изменения, `claude plugin update` выведет `<name> is already at the latest version (1.0.0).` и пользователи сохранят старую копию. Либо увеличивайте `version` при каждом выпуске, либо опустите его в маркетплейсе, размещенном на git, чтобы Claude Code использовал SHA коммита вместо этого. См. [Версии и обновления](/docs/ru/plugins/loading#versions-and-updates).

49 </Step>

50 

51 <Step title="Валидация">

52 В вашей оболочке выполните `claude plugin validate --strict ./your-plugin`. Чистый запуск выводит `✔ Validation passed`.

53 

54 * **В CI**: сохраняйте `--strict`, который также завершает запуск с кодом выхода 1 при предупреждениях, таких как неизвестное поле манифеста или отсутствующий `version`. Удалите `--strict`, если вы выбрали опустить `version` на предыдущем шаге.

55 * **Пути**: валидация сообщает пути компонентов, которые не начинаются с `./`. Внутри команд hook и конфигов MCP сервера ссылайтесь на файлы как `${CLAUDE_PLUGIN_ROOT}/...`. См. [правила пути](/docs/ru/plugins/manifest-reference#path-rules).

56 </Step>

57 

58 <Step title="Установите его из локального маркетплейса">

59 В вашей оболочке добавьте локальный маркетплейс, который содержит список плагина с помощью `claude plugin marketplace add ./path-to-marketplace`, установите плагин из него и запустите сеанс, чтобы подтвердить, что он загружается.

60 

61 * Для наименьшего маркетплейса, который работает, см. [Создание маркетплейса](/docs/ru/plugins/create-marketplace).

62 * Чтобы узнать, загружает ли установка ваш исходный каталог или кэшированную копию, см. [Плагины на месте и скопированные плагины](/docs/ru/plugins/loading#in-place-and-copied-plugins).

63 </Step>

64 

65 <Step title="Заполните метаданные, которые видят пользователи">

66 Установите `description`, `author`, `homepage` и `repository` в `plugin.json` и добавьте `README.md` в корень плагина. `homepage` должен анализироваться как URL. [Справочник манифеста](/docs/ru/plugins/manifest-reference#fields) содержит список каждого поля.

67 </Step>

68 

69 <Step title="Запустите свой набор eval">

70 Если у вас есть набор eval, запустите `claude plugin eval` в вашей оболочке. Он запускает тестовые случаи плагина и оценивает результаты, что выявляет регрессии при изменении плагина. См. [Тестирование плагинов с помощью eval](/docs/ru/plugin-evals).

71 </Step>

72</Steps>

73 

74<h2 id="share-a-plugin-without-a-marketplace">

75 Поделитесь плагином без маркетплейса

76</h2>

77 

78Если плагин находится в репозитории git, люди могут клонировать его и загрузить checkout, или запустить Claude Code из своей оболочки с `--plugin-url`, указывающим на файл `.zip`, который вы прикрепляете к выпуску. Чтобы получить вашу следующую версию, они вытягивают или загружают снова. Если он не находится в репозитории, отправьте им каталог или файл `.zip` из него. Они загружают его одним из двух способов:

79 

80* **Для одного сеанса**: они запускают Claude Code из своей оболочки с `claude --plugin-dir ./deploy-helper`, где путь — это клон, распакованная папка или сам файл `.zip`. См. [Флаги, которые загружают плагин для одного сеанса](/docs/ru/plugins/cli-reference#flags-that-load-a-plugin-for-one-session).

81* **Для каждого сеанса**: они перемещают каталог плагина с его `.claude-plugin/plugin.json` под `~/.claude/skills/`, чтобы Claude Code [загружал его в каждом сеансе](/docs/ru/plugins/loading#find-where-a-plugin-came-from).

82 

83Добавление `.claude-plugin/marketplace.json` в тот же репозиторий — это то, что позволяет людям устанавливать по имени и обновляться с помощью команды; см. [Публикация через собственный маркетплейс](#publish-through-your-own-marketplace).

84 

85<h3 id="ship-a-plugin-with-your-own-tool">

86 Отправьте плагин со своим собственным инструментом

87</h3>

88 

89Если вы поддерживаете CLI или SDK, опубликуйте плагин в маркетплейсе и попросите ваш установщик или сообщение после установки запустить или вывести две команды, которые нужны пользователю: `claude plugin marketplace add <source>`, затем `claude plugin install <name>@<marketplace>`. Для обнаружения в сеансе, когда кто-то использует ваш инструмент, см. [Рекомендуйте свой плагин из вашего CLI](/docs/ru/plugins/cli-hints).

90 

91<h2 id="publish-through-your-own-marketplace">

92 Публикация через собственный маркетплейс

93</h2>

94 

95Ваш собственный маркетплейс — это файл `.claude-plugin/marketplace.json`, который содержит список вашего плагина, добавленный в репозиторий git. После того как файл находится в репозитории, плагин опубликован, без формы отправки. Вы можете сохранить файл в собственном репозитории плагина или в отдельном.

96 

97<h3 id="add-the-marketplace-file-to-your-repository">

98 Добавьте файл маркетплейса в ваш репозиторий

99</h3>

100 

101Чтобы опубликовать из собственного репозитория плагина, сохраните файл маркетплейса рядом с `plugin.json` в `.claude-plugin/`, с одной записью, чей `source` — это `"./"`, корень репозитория. Дайте записи то же `name`, что и `plugin.json`, согласно [Сохраняйте имя записи и имя манифеста одинаковыми](/docs/ru/plugins/create-marketplace#keep-the-entry-name-and-the-manifest-name-the-same):

102 

103```json .claude-plugin/marketplace.json theme={null}

104{

105 "name": "your-marketplace",

106 "owner": { "name": "Your Name" },

107 "plugins": [

108 { "name": "deploy-helper", "source": "./" }

109 ]

110}

111```

112 

113В вашей оболочке запустите `claude plugin validate .` в репозитории, чтобы проверить файл перед отправкой.

114 

115[Создание маркетплейса](/docs/ru/plugins/create-marketplace) охватывает макет с несколькими плагинами в одном репозитории.

116 

117<h3 id="control-who-can-install">

118 Контролируйте, кто может установить

119</h3>

120 

121Любой, кто может клонировать репозиторий, может установить из него, поэтому если репозиторий приватный, маркетплейс также приватный. Для хостов, отличных от репозитория git, см. [Размещение маркетплейса](/docs/ru/plugins/host-marketplace). Чтобы охватить всех в компании, включая людей, которые не используют git, см. [Развертывание для всей компании](/docs/ru/plugins/host-marketplace#roll-out-to-a-whole-company).

122 

123<h3 id="tell-users-how-to-install">

124 Скажите пользователям, как установить

125</h3>

126 

127Скажите своим пользователям добавить маркетплейс, а затем установить плагин из своей оболочки, заменив источник и имена на ваши:

128 

129* Добавьте маркетплейс один раз: `claude plugin marketplace add your-org/your-marketplace`, где аргумент — это сокращение GitHub `owner/repo`, URL или путь

130* Установите плагин: `claude plugin install deploy-helper@your-marketplace`

131* Или сделайте оба из сеанса: `/plugin install deploy-helper --marketplace your-org/your-marketplace`. Требуется Claude Code v2.1.275 или позже. См. [Добавьте маркетплейс и установите в одной команде](/docs/ru/plugins/install#add-a-marketplace-and-install-in-one-command)

132 

133<h3 id="ship-updates-to-users">

134 Отправьте обновления пользователям

135</h3>

136 

137Пользователи получают выпуск, когда они его запрашивают или когда для вашего маркетплейса включено автоматическое обновление:

138 

139* **По запросу**: `claude plugin update deploy-helper@your-marketplace` в оболочке пользователя обновляет маркетплейс и устанавливает новую копию, когда версия вашего плагина изменилась

140* **Автоматическое обновление**: по умолчанию отключено для вашего маркетплейса. См. [Включите автоматическое обновление](/docs/ru/plugins/host-marketplace#turn-on-auto-update). После включения он делает то же самое, что `claude plugin update` с задержкой после запуска сеанса

141 

142[Установка плагинов](/docs/ru/plugins/install) охватывает команды на стороне пользователя, а [когда запускается автоматическое обновление](/docs/ru/plugins/loading#when-auto-update-runs) охватывает время.

143 

144<h2 id="submit-to-the-community-marketplace">

145 Отправить в сообщество marketplace

146</h2>

147 

148Сообщество marketplace Anthropic, `claude-community`, — это публичный marketplace, в котором перечислены плагины, отправленные через форму отправки каталога плагинов.

149 

150Пользователи добавляют сообщество marketplace в сеанс Claude Code с помощью `/plugin marketplace add anthropics/claude-plugins-community` и устанавливают его как `@claude-community`.

151 

152О том, чем сообщество marketplace отличается от официального marketplace, см. [Marketplaces Anthropic](/docs/ru/plugins/anthropic-marketplaces).

153 

154Чтобы отправить ваш плагин в сообщество marketplace, используйте одну из встроенных форм:

155 

156* **claude.ai**: [claude.ai/admin-settings/directory/submissions/plugins/new](https://claude.ai/admin-settings/directory/submissions/plugins/new)

157* **Console**: [platform.claude.com/plugins/submit](https://platform.claude.com/plugins/submit)

158 

159Форма claude.ai требует организацию Team или Enterprise и разрешение Directory, которое по умолчанию имеют владельцы. Отдельные авторы, которые не являются частью организации Team или Enterprise, могут вместо этого использовать форму Console.

160 

161В вашей оболочке запустите `claude plugin validate ./your-plugin` локально перед отправкой, заменив `./your-plugin` на путь к каталогу вашего плагина. Когда валидация пройдена успешно, Claude Code выводит `✔ Validation passed`, или `✔ Validation passed with warnings`, если есть предупреждения. Предупреждения не приводят к сбою валидации; добавьте `--strict`, чтобы рассматривать их как ошибки.

162 

163Перечисленные плагины появляются в каталоге [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community), в подавляющем большинстве случаев закреплённые на определённом коммите SHA.

164 

165Может быть задержка между отправкой и появлением вашего плагина в `marketplace.json`. Чтобы проверить, доступен ли ваш плагин для установки, найдите его имя в [каталоге сообщества](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json).

166 

167Официальный marketplace, `claude-plugins-official`, не принимает отправки через эти формы. Если вы работаете с контактом партнёра Anthropic, попросите у них информацию о размещении в официальном marketplace.

168 

169<h2 id="ship-updates-renames-and-removals">

170 Отправка обновлений, переименований и удалений

171</h2>

172 

173<h3 id="release-a-new-version">

174 Выпустите новую версию

175</h3>

176 

177Если вы публикуете через собственный маркетплейс и ваш `plugin.json` устанавливает `version`, увеличьте его и отправьте. Пользователи, которые запускают `claude plugin update` или имеют включенное автоматическое обновление, получают новую версию, как описано в [Отправка обновлений пользователям](#ship-updates-to-users).

178 

179<h3 id="tag-a-release">

180 Отметьте выпуск

181</h3>

182 

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

184 

185Чтобы отметить, запустите `claude plugin tag` в вашей оболочке из каталога плагина. Он создает тег `{name}--v{version}`. Добавьте `--push`, чтобы отправить тег на `origin`. [Справочник `plugin tag`](/docs/ru/plugins/cli-reference#plugin-tag) содержит список его флагов.

186 

187<h3 id="rename-or-remove-a-plugin">

188 Переименуйте или удалите плагин

189</h3>

190 

191Никогда не изменяйте `name` опубликованного плагина. После переименования пользователи, которые уже установили его, теряют плагин, потому что их установка записана под старым именем. Запись `renames` в файле маркетплейса переносит их вместо этого. Измените `displayName`, когда вы хотите другую метку.

192 

193Если переименование неизбежно, используйте карту `renames` файла маркетплейса, чтобы существующие установки переносились вместо сбоя с [`Plugin "<name>" not found in marketplace`](/docs/ru/plugins/troubleshooting#plugin-not-found-in-marketplace). Чтобы удалить плагин из маркетплейса или получить полные детали `renames`, см. [Переименуйте или удалите плагин](/docs/ru/plugins/host-marketplace#rename-or-remove-a-plugin) на странице размещения. [Справочник маркетплейса](/docs/ru/plugins/marketplace-reference#top-level-fields) содержит поле.

194 

195<h2 id="declare-dependencies">

196 Объявите зависимости

197</h2>

198 

199Если ваш плагин нуждается в другом плагине из того же маркетплейса для включения, перечислите его в массиве `dependencies` в `plugin.json`. Каждая запись — это простое имя или объект с диапазоном semver `version`. Когда пользователь устанавливает ваш плагин, Claude Code также устанавливает и включает зависимость.

200 

201[Зависимости плагинов](/docs/ru/plugins/dependencies) охватывает синтаксис диапазона, кросс-маркетплейс зависимости и как пользователи удаляют зависимости, которые им больше не нужны.

202 

203<h2 id="next-steps">

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

205</h2>

206 

207* [Размещение и поддержка маркетплейса](/docs/ru/plugins/host-marketplace): выпускайте новые версии и держите пользователей в курсе

208* [Зависимости плагинов](/docs/ru/plugins/dependencies): объявляйте и версионируйте плагины, на которые полагается ваш

209* [Рекомендуйте свой плагин из вашего CLI](/docs/ru/plugins/cli-hints): подсказывайте пользователям Claude Code вашего CLI установить плагин

210* [Измеряйте стоимость и использование плагина](/docs/ru/plugins/measure): посмотрите, что стоит ваш плагин в контексте и используют ли его люди

plugins/relevance.md +247 −0 created

Details

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> Добавьте блок relevance к записям marketplace plugins, чтобы Claude Code предлагал их, когда работа пользователя совпадает, и разрешите marketplace в управляемых параметрах.

8 

9Claude Code может предложить установку plugin из marketplace вашей организации, когда сеанс пользователя совпадает с сигналами, которые вы определяете для этого plugin. Сигналы включают рабочий каталог, файлы, которые прочитал Claude, и команды, которые запустил Claude. Вы определяете их, добавляя блок `relevance` к записи plugin в `marketplace.json`.

10 

11Оператор marketplace пишет записи `relevance`. Затем администратор разрешает marketplace в управляемых параметрах. Пользователи не видят предложений из marketplace, пока он не будет разрешен.

12 

13<Note>

14 Эти случаи рассматриваются на других страницах:

15 

16 * **Вы хотите установить plugins**: см. [Установка и управление plugins](/docs/ru/plugins/install)

17 * **Вы хотите отключить предложения**: см. [Понимание того, как работает relevance plugin](#understand-how-plugin-relevance-works)

18</Note>

19 

20Начните с разделов для вашей роли:

21 

22* **Операторы marketplace**: прочитайте [как работают предложения](#understand-how-plugin-relevance-works), затем [добавьте relevance к записи plugin](#add-relevance-to-a-plugin-entry) и [проверьте ваш marketplace](#validate-your-marketplace)

23* **Администраторы**: [включите предложения в управляемых параметрах](#enable-suggestions-in-managed-settings)

24 

25<h2 id="understand-how-plugin-relevance-works">

26 Понимание того, как работает relevance plugin

27</h2>

28 

29Каждая запись plugin в `marketplace.json` может включать объект `relevance`. Объект называет тему и один или несколько сигналов. Сигнал — это шаблон, который Claude Code проверяет в текущем сеансе, например рабочий каталог или файлы, которые прочитал Claude.

30 

31Сопоставление сигналов происходит локально на машине пользователя и не добавляет сетевой трафик. Claude Code не сообщает, какие сигналы совпали или их значения Anthropic или оператору marketplace.

32 

33Когда сигнал совпадает и plugin еще не установлен, Claude Code предлагает plugin в этих местах:

34 

35* **Spinner tip**: сообщение с командой `/plugin install` появляется под спиннером, пока Claude отвечает.

36* **Уведомление при запуске сеанса**: если сигнал `cwd` совпадает с рабочим каталогом, однострочное уведомление появляется перед тем, как пользователь отправит первое сообщение.

37* **Вкладка `/plugin` Discover**: plugin закреплен в верхней части списка Discover.

38 

39[Предпросмотр того, что видит пользователь](#preview-what-the-user-sees) показывает точный текст каждого и как часто они повторяются.

40 

41Claude Code никогда не устанавливает plugin автоматически. Пользователь всегда подтверждает.

42 

43Spinner tip и уведомление при запуске сеанса оба перестают появляться, когда пользователь или проект устанавливает [`spinnerTipsEnabled`](/docs/ru/settings-reference#spinnertipsenabled) на `false`, или когда [`spinnerTipsOverride`](/docs/ru/settings-reference#spinnertipsoverride) с `excludeDefault` заменяет встроенные советы. Закрепление на вкладке Discover не зависит от обоих параметров.

44 

45<h2 id="add-relevance-to-a-plugin-entry">

46 Добавление relevance к записи plugin

47</h2>

48 

49Добавьте объект `relevance` к записи plugin в вашем `marketplace.json`. Следующий пример объявляет, что plugin `terraform-helpers` актуален, когда Claude читает файл `.tf` или запускает `terraform`:

50 

51```json theme={null}

52{

53 "name": "your-marketplace",

54 "owner": { "name": "Your Org" },

55 "plugins": [

56 {

57 "name": "terraform-helpers",

58 "source": "./plugins/terraform-helpers",

59 "description": "Your organization's Terraform conventions and helpers",

60 "relevance": {

61 "topic": "Terraform",

62 "signals": {

63 "cli": ["terraform"],

64 "filesRead": ["**/*.tf"]

65 }

66 }

67 }

68 ]

69}

70```

71 

72Пока ни один из его сигналов не совпадает, plugin сохраняет свою нормальную позицию в списке Discover и не появляется как spinner tip.

73 

74Чтобы проверить блок перед публикацией, [проверьте ваш marketplace](#validate-your-marketplace).

75 

76<h2 id="field-reference">

77 Справочник полей

78</h2>

79 

80Объект `relevance` и его вложенный объект `signals` принимают поля в следующих таблицах.

81 

82Более старые клиенты по-прежнему загружают marketplace, который использует поля `relevance`, которые они не распознают, потому что неизвестные поля под `relevance` и `relevance.signals` игнорируются во время загрузки. Распознанное поле, значение которого превышает его лимит в [справочнике полей](#field-reference), делает недействительной всю запись plugin, и пользователи не могут установить этот plugin из marketplace, пока вы его не исправите; `claude plugin validate` сообщает те же лимиты.

83 

84<h3 id="relevance">

85 `relevance`

86</h3>

87 

88| Поле | Тип | Описание |

89| :-------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

90| `topic` | string | Необязательно. Фраза, которая заполняет "Working with *topic*?" в spinner tip. По умолчанию имя plugin с каждым сегментом дефиса с заглавной буквы. Максимум 64 символа. |

91| `signals` | object | Сопоставители, которые определяют, когда plugin актуален. Claude Code предлагает plugin только если установлен хотя бы один сигнал. См. [`relevance.signals`](#relevance-signals). |

92 

93`topic` часто является названием продукта, например `Terraform`. Используйте домен, такой как `design`, когда имя plugin не звучит естественно как тема.

94 

95<h3 id="relevance-signals">

96 `relevance.signals`

97</h3>

98 

99Объект `signals` принимает следующие поля.

100 

101| Поле | Тип | Описание | Лимит |

102| :------------- | :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------- |

103| `cwd` | array of strings | Glob-шаблоны, сопоставленные с рабочим каталогом сеанса. См. [сопоставление рабочего каталога](#working-directory-matching). | 10 шаблонов по 256 символов каждый |

104| `cli` | array of strings | Имена команд из shell-команд, которые Claude запустил в этом сеансе, например `["terraform"]`. Точное совпадение. См. [сопоставление имен команд](#command-name-matching). | 10 записей по 64 символа каждая |

105| `hosts` | array of strings | Имена хостов, видимые в URL-адресах `http://` или `https://` в Bash-командах в этом сеансе, например `["registry.terraform.io"]`. Только голое имя хоста в нижнем регистре: без схемы, порта или пути. Точное совпадение без учета регистра. | 20 записей по 128 символов каждая |

106| `filesRead` | array of strings | Glob-шаблоны, сопоставленные с путями файлов, которые Claude прочитал в этом сеансе, например `["**/*.tf"]`. Нормализовано прямой косой чертой и без учета регистра. | 10 шаблонов по 256 символов каждый |

107| `manifestDeps` | array of objects | Зависимости, объявленные в манифестах пакетов, которые Claude прочитал в этом сеансе. Каждая запись — это `{ "file": "...", "pattern": "..." }`, где оба значения — регулярные выражения. См. [сопоставление зависимостей манифеста](#manifest-dependency-matching). | 10 записей, каждое значение максимум 256 символов. Файлы манифеста размером более 512 КБ пропускаются |

108 

109Сигналы `filesRead` и `manifestDeps` также совпадают с файлами, которые Claude написал или отредактировал в этом сеансе, и с файлами памяти `CLAUDE.md` проекта, загруженными автоматически.

110 

111<h4 id="working-directory-matching">

112 Сопоставление рабочего каталога

113</h4>

114 

115`cwd` — единственный сигнал, который может совпадать при запуске сеанса, до того как пользователь отправит первое сообщение.

116 

117Claude Code сопоставляет каждый шаблон `cwd` следующим образом:

118 

119* Шаблон сопоставляется с рабочим каталогом как абсолютный путь. Когда сеанс находится внутри git-репозитория, он также сопоставляется с путем рабочего каталога относительно корня репозитория.

120* Сопоставление нормализовано прямой косой чертой и без учета регистра.

121* Каждый шаблон совпадает с самим каталогом и всем, что находится под ним, поэтому `infra`, `infra/` и `infra/**` ведут себя одинаково.

122 

123<h4 id="command-name-matching">

124 Сопоставление имен команд

125</h4>

126 

127Claude Code записывает одно имя команды для каждой shell-команды, которую запускает Claude: первый токен после любых назначений переменных окружения в начале и `sudo`. Составные команды вносят только свою ведущую команду, поэтому `cd infra && terraform plan` записывает `cd`, а не `terraform`.

128 

129<h4 id="manifest-dependency-matching">

130 Сопоставление зависимостей манифеста

131</h4>

132 

133Каждая запись `manifestDeps` объединяет две строки источника JavaScript `RegExp`:

134 

135* `file`: сопоставляется без учета регистра с путем файла манифеста. Путь обычно абсолютный, поэтому привяжите шаблон в конце, а не в начале. Пути не нормализуются по разделителям для этого сигнала, поэтому пути Windows используют обратные косые черты.

136* `pattern`: сопоставляется с учетом регистра с содержимым этого файла.

137 

138Следующий пример использует `manifestDeps` для предложения вашего plugin после того, как Claude прочитал `package.json`, который зависит от npm-пакета вашего SDK, названного здесь `your-sdk`.

139 

140```json theme={null}

141{

142 "name": "your-plugin",

143 "source": "./plugins/your-plugin",

144 "relevance": {

145 "signals": {

146 "manifestDeps": [

147 {

148 "file": "[/\\\\]package\\.json$",

149 "pattern": "\"your-sdk\"\\s*:"

150 }

151 ]

152 }

153 }

154}

155```

156 

157В этом примере шаблон `file` использует `[/\\\\]`, чтобы он совпадал как с прямой косой чертой, так и с обратной косой чертой в разделителях пути, и `\\.`, чтобы точка была буквальной. В JSON каждая обратная косая черта в регулярном выражении написана дважды.

158 

159<h2 id="validate-your-marketplace">

160 Проверка вашего marketplace

161</h2>

162 

163В вашей оболочке запустите `claude plugin validate` для каталога вашего marketplace, чтобы проверить блок `relevance` перед публикацией:

164 

165```bash theme={null}

166claude plugin validate ./my-marketplace

167```

168 

169Валидатор сообщает об ошибках и предупреждениях в блоке `relevance`, включая следующие:

170 

171* Сообщает об неизвестных ключах под `relevance` и `relevance.signals` как предупреждения

172* Отмечает значение `relevance`, которое не является объектом

173* Отклоняет запись `signals.hosts`, которая включает схему, порт или путь

174 

175Каждый результат выводится с путем поля, которое его касается, и вывод заканчивается на `Validation passed`, `Validation passed with warnings` или `Validation failed`.

176 

177<h2 id="enable-suggestions-in-managed-settings">

178 Включение предложений в управляемых параметрах

179</h2>

180 

181Пользователи не видят предложений из marketplace, пока администратор не разрешит его в [управляемых параметрах](/docs/ru/plugins/org), даже когда его `marketplace.json` объявляет `relevance`.

182 

183Чтобы разрешить marketplace, отредактируйте ваши управляемые параметры следующим образом:

184 

185* Добавьте имя marketplace в `pluginSuggestionMarketplaces`.

186* Для любого marketplace, отличного от официального marketplace Anthropic, также объявите источник marketplace, либо как запись этого имени в [`extraKnownMarketplaces`](/docs/ru/plugins/org#require-a-marketplace-and-its-plugins), либо как запись в [`strictKnownMarketplaces`](/docs/ru/plugins/org#allowlist-with-strictknownmarketplaces).

187 

188На машине, где marketplace не зарегистрирован или зарегистрирован под разрешенным именем из другого источника, предложения из него не появляются. Проверка источника предотвращает регистрацию несвязанного источника под разрешенным именем для получения предложений его plugins по всей вашей организации.

189 

190Следующий `managed-settings.json` регистрирует marketplace организации из GitHub-репозитория и включает его предложения:

191 

192```json theme={null}

193{

194 "extraKnownMarketplaces": {

195 "your-marketplace": {

196 "source": {

197 "source": "github",

198 "repo": "your-org/your-marketplace"

199 }

200 }

201 },

202 "pluginSuggestionMarketplaces": ["your-marketplace"]

203}

204```

205 

206Имя официального marketplace может регистрироваться только из официального источника Anthropic, поэтому ему не требуется объявление источника. Для официального marketplace разрешите только имя:

207 

208```json theme={null}

209{

210 "pluginSuggestionMarketplaces": ["claude-plugins-official"]

211}

212```

213 

214<h2 id="preview-what-the-user-sees">

215 Предпросмотр того, что видит пользователь

216</h2>

217 

218Когда сигнал `relevance` plugin совпадает во время сеанса, совет под спиннером читается:

219 

220```text theme={null}

221Working with Terraform? Install the terraform-helpers plugin:

222/plugin install terraform-helpers@your-marketplace

223```

224 

225Когда сигнал `cwd` совпадает при запуске сеанса, однострочное уведомление читается:

226 

227```text theme={null}

228plugin suggestion: terraform-helpers@your-marketplace · /plugin

229```

230 

231На вкладке `/plugin` Discover plugin закреплен над другими результатами с аннотацией, которая называет совпадающий сигнал, такой как `suggested for this directory` или `suggested for terraform commands`.

232 

233Claude Code ограничивает, как часто он предлагает данный plugin:

234 

235* Предложение появляется максимум один раз каждые три сеанса в совокупности spinner tip и уведомления при запуске сеанса.

236* Уведомление при запуске сеанса перестает появляться после того, как spinner tip и уведомление показали plugin в совокупности два раза.

237* Ни spinner tip, ни уведомление при запуске сеанса не повторяются после установки plugin.

238* Вкладка Discover закрепляет plugin в первый раз, когда пользователь открывает вкладку, пока сигналы plugin совпадают. Claude Code записывает это в `~/.claude.json`, поэтому каждый раз, когда пользователь позже открывает `/plugin` на этой машине, plugin появляется в нормальном порядке.

239 

240<h2 id="see-also">

241 См. также

242</h2>

243 

244* [Размещение marketplace](/docs/ru/plugins/host-marketplace): запустите marketplace, который размещает ваши plugins

245* [Справочник Marketplace](/docs/ru/plugins/marketplace-reference#plugin-entries): каждое поле, которое принимает запись plugin

246* [Рекомендуйте ваш plugin из вашего CLI](/docs/ru/plugins/cli-hints): предложите пользователям из вашего собственного CLI вместо сигналов сеанса Claude Code

247* [Управление plugins для вашей организации](/docs/ru/plugins/org): `extraKnownMarketplaces`, `strictKnownMarketplaces` и остальные ключи политики plugin

plugins/security.md +186 −0 created

Details

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# Безопасность и доверие к плагинам

6 

7> Решите, доверять ли плагину перед его установкой: от того, что плагин может делать на вашем компьютере, до того, как его проверить и удалить.

8 

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

10 

11Вы устанавливаете плагин из marketplace, который является каталогом, из которого Claude Code его получает. Некоторые названия marketplace [зарезервированы для собственных marketplace Anthropic](#marketplace-tiers), а все остальные marketplace являются сторонними. Название marketplace говорит вам, кто публикует каталог, а не то, что делает каждый плагин в нём, поэтому [проверьте плагин перед установкой](#review-a-plugin-before-you-install) независимо от того, из какого marketplace он поступает.

12 

13Прочитайте эту страницу, если вы решаете, устанавливать ли плагин, или если вы проверяете инструменты перед тем, как ваша команда сможет их использовать.

14 

15<Note>

16 Эти случаи рассматриваются на других страницах:

17 

18 * **Собственная модель безопасности Claude Code**: см. [Security](/docs/ru/security)

19 * **Ограничение или требование плагинов для организации**: см. [Manage plugins for your organization](/docs/ru/plugins/org)

20 * **Плагины `security-guidance` или `claude-security`**: эта страница о них не идёт. См. [`security-guidance`](/docs/ru/security-guidance) и [`claude-security`](/docs/ru/claude-security)

21</Note>

22 

23Начните с [того, что может делать плагин](#understand-what-a-plugin-can-do) и [какие marketplace принадлежат Anthropic](#marketplace-tiers), затем [проверьте плагин перед установкой](#review-a-plugin-before-you-install).

24 

25<h2 id="understand-what-a-plugin-can-do">

26 Поймите, что может делать плагин

27</h2>

28 

29Плагин может содержать контент, который выполняет код на вашей машине с вашими привилегиями пользователя, и контент, который входит в контекст Claude в качестве инструкций, поэтому [перед установкой плагина его следует проверить](#review-a-plugin-before-you-install). Вот что может делать установленный плагин:

30 

31* **Hooks**: [hooks](/docs/ru/hooks) плагина выполняются как команды shell в определённых точках жизненного цикла Claude Code, например до или после вызова инструмента.

32* **MCP и LSP серверы**: Claude Code подключается к [MCP серверам](/docs/ru/mcp), которые объявляет включённый плагин, и предоставляет Claude их инструменты. Stdio MCP сервер работает как процесс, который Claude Code запускает на вашей машине. Claude Code также запускает языковые серверы, которые объявляет плагин.

33* **`bin/` директория**: Claude Code добавляет директорию `bin/` каждого включённого плагина в `PATH` shell инструмента Bash, поэтому команды Bash от Claude могут запускать любой исполняемый файл там.

34* **Skills, команды и агенты**: они входят в контекст Claude в качестве инструкций, поэтому они влияют на то, что Claude делает с инструментами, которые у него уже есть.

35* **Обновления**: когда автоматическое обновление включено для маркетплейса, из которого вы установили плагин, Claude Code обновляет этот плагин в фоновом режиме, поэтому файлы, которые вы проверили, могут измениться на диске. [Когда выполняется автоматическое обновление](/docs/ru/plugins/loading#when-auto-update-runs) содержит информацию о времени. Чтобы включить или отключить автоматическое обновление для каждого маркетплейса, см. [Держите плагины в актуальном состоянии](/docs/ru/plugins/install#keep-plugins-updated).

36 

37[Правила разрешений](/docs/ru/permissions) Claude Code и [sandbox](/docs/ru/sandboxing) охватывают вызовы инструментов, которые делает Claude, а не код, который плагин запускает самостоятельно:

38 

39* **Hooks и серверные процессы**: command hooks выполняют команды shell с вашими полными привилегиями пользователя. Claude Code запускает hooks и MCP серверы вне sandbox.

40* **Вызовы инструментов Claude**: вызов одного из инструментов MCP плагина и команда Bash, которая запускает исполняемый файл из `bin/` плагина, являются вызовами инструментов, поэтому к ним применяются ваши правила разрешений.

41 

42Установка плагина также включает его, если только его манифест или запись маркетплейса не устанавливают [`defaultEnabled: false`](/docs/ru/plugins/install#choose-an-install-scope) и вы сами его не включили.

43 

44Чтобы удалить плагин, которому вы больше не доверяете, см. [Удалите плагин, которому вы больше не доверяете](#remove-a-plugin-you-no-longer-trust).

45 

46<h2 id="marketplace-tiers">

47 Определите marketplace Anthropic по названию

48</h2>

49 

50Название marketplace помещает его в один из трёх уровней: official, community или third-party. Claude Code принимает названия official и community только для marketplace, полученных из репозиториев `github.com/anthropics/`, поэтому сторонний marketplace не может выдавать себя за marketplace Anthropic. Marketplace, который публикует коллега или ваша организация, является third-party.

51 

52В таблице указано, какие названия относятся к каждому уровню:

53 

54| Уровень | Какие marketplace |

55| :---------- | :--------------------------------------------------------------------------------------------------- |

56| Official | [Официальные названия marketplace](#official-marketplace-names), такие как `claude-plugins-official` |

57| Community | `claude-community`, `claude-plugins-community` и `healthcare` |

58| Third-party | Все остальные marketplace |

59 

60Где каталог `claude-community` закрепляет плагин к commit SHA, что он делает почти для каждой записи, Claude Code отказывается устанавливать другой commit.

61 

62<h3 id="official-marketplace-names">

63 Официальные названия marketplace

64</h3>

65 

66Эти названия marketplace составляют official уровень:

67 

68* `claude-plugins-official`

69* `claude-code-marketplace`

70* `claude-code-plugins`

71* `anthropic-marketplace`

72* `anthropic-plugins`

73* `agent-skills`

74* `anthropic-agent-skills`

75* `life-sciences`

76* `knowledge-work-plugins`

77* `claude-for-legal`

78* `claude-for-financial-services`

79* `financial-services-plugins`

80* `first-party-plugins`

81* `claude-tag-plugins`

82 

83О том, чем отличаются official, community и demo marketplace и где можно просмотреть, что указано в каждом, см. [Anthropic's marketplaces](/docs/ru/plugins/anthropic-marketplaces).

84 

85<h2 id="review-a-plugin-before-you-install">

86 Проверьте плагин перед установкой

87</h2>

88 

89Перед установкой плагина посмотрите, что он добавляет и откуда он поступает.

90 

91<Steps>

92 <Step title="Проверьте источник marketplace">

93 В вашей shell выполните `claude plugin marketplace list`, чтобы вывести источник, из которого был добавлен каждый marketplace, например репозиторий GitHub или директорию.

94 </Step>

95 

96 <Step title="Прочитайте панель деталей">

97 В сеансе Claude Code выполните `/plugin` и выберите плагин. Панель деталей показывает раздел **Will install**, в котором перечислены команды, agents, skills, hooks и MCP и LSP серверы плагина. Для плагина, для которого Anthropic не опубликовала данные компонентов, раздел показывает то, что объявляет запись marketplace, или примечание: `Components will be discovered at installation` для плагина, хранящегося внутри marketplace, или `Component summary not available for remote plugin` для плагина, полученного откуда-то ещё.

98 </Step>

99 

100 <Step title="Прочитайте исходный код плагина">

101 На панели деталей выберите **Open homepage** или **View on GitHub** под опциями установки. Если панель не предлагает ни того, ни другого, откройте репозиторий marketplace, который вы нашли на первом шаге. Найдите там директорию плагина. Раздел **Will install** показывает, что hook существует, но не то, что он запускает, поэтому прочитайте эти файлы в директории плагина:

102 

103 * **`hooks/hooks.json`**: команда, которую запускает каждый hook

104 * **`.mcp.json`**: команда или URL каждого сервера

105 * **`bin/`**: каждый файл в директории

106 </Step>

107 

108 <Step title="Перечислите содержимое плагина">

109 Клонируйте репозиторий, который содержит директорию плагина, затем выполните `claude --plugin-dir <plugin directory> plugin details <plugin name>` в вашей shell, чтобы увидеть, что Claude Code находит в нём. Команда читает файлы плагина без запуска сеанса и выводит `Component inventory`, в котором перечислены skills и commands плагина, agents, hooks с событием каждого hook и MCP и LSP серверы.

110 </Step>

111</Steps>

112 

113После установки плагина выполните `claude plugin details <plugin name>` в вашей shell, чтобы вывести тот же `Component inventory` для установленной копии под `~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/`.

114 

115<h3 id="remove-a-plugin-you-no-longer-trust">

116 Удалите плагин, которому вы больше не доверяете

117</h3>

118 

119В вашей shell выполните [`claude plugin uninstall <plugin>`](/docs/ru/plugins/cli-reference#plugin-uninstall) с `--scope`, в котором вы его установили. Затем проверьте, что удалила деинсталляция и что она оставила:

120 

121* **Постоянные данные**: когда это был последний scope, в котором был установлен плагин, деинсталляция также удаляет директорию постоянных данных плагина, если вы не передадите `--keep-data`.

122* **Кэшированные файлы**: файлы плагина остаются на диске под `~/.claude/plugins/cache/` в течение 14 дней, прежде чем [фоновая очистка их удалит](/docs/ru/plugins/loading#cleanup-of-previous-versions). После деинсталляции последнего плагина orphaned директории остаются, пока вы не установите другой. Чтобы удалить файлы сейчас, удалите директорию плагина под `~/.claude/plugins/cache/<marketplace>/<plugin>/` самостоятельно.

123* **Marketplace**: если вы также не доверяете владельцу marketplace, [удалите marketplace](/docs/ru/plugins/install#manage-marketplaces) тоже, что деинсталлирует каждый плагин, который вы установили из него.

124 

125<h2 id="recognize-when-claude-code-refuses-or-warns">

126 Распознайте, когда Claude Code отказывает или предупреждает

127</h2>

128 

129Панель деталей, которую вы открываете из вкладки **Discover** или **Marketplaces** в `/plugin`, показывает одно и то же предупреждение о доверии для каждого плагина. Claude Code отказывает вместо предупреждения в случаях, таких как те, что указаны в [Untrusted marketplace sources and failed integrity checks](#untrusted-marketplace-sources-and-failed-integrity-checks).

130 

131<h3 id="trust-warning-before-you-install">

132 Предупреждение о доверии перед установкой

133</h3>

134 

135Предупреждение читается одинаково независимо от того, из какого marketplace поступает плагин:

136 

137```text theme={null}

138Make sure you trust a plugin before installing, updating, or using it. Anthropic does not control what MCP servers, files, or other software are included in plugins and cannot verify that they will work as intended or that they won't change. See each plugin's homepage for more information.

139```

140 

141Если ваша организация устанавливает `pluginTrustMessage` в [managed settings](/docs/ru/plugins/org), Claude Code добавляет этот текст к предупреждению.

142 

143<h3 id="untrusted-marketplace-sources-and-failed-integrity-checks">

144 Ненадёжные источники marketplace и неудачные проверки целостности

145</h3>

146 

147Claude Code отказывает загружать marketplace или устанавливать плагин в этих случаях, каждый со своим сообщением об ошибке:

148 

149* **Ненадёжный источник marketplace**: когда marketplace использует официальное или community название, но его источник находится вне `github.com/anthropics/`, Claude Code прекращает загрузку marketplace и плагинов, которые вы установили из него. Ошибка: [Marketplace is registered from an untrusted source](/docs/ru/errors#marketplace-is-registered-from-an-untrusted-source).

150* **Целостность архива**: когда запись marketplace закрепляет [`archive` источник](/docs/ru/plugins/marketplace-reference#archive-plugin-source) к дайджесту `sha256` и дайджест загруженного файла не совпадает с ним, Claude Code отказывает установку. Ошибка: [Plugin archive integrity check failed](/docs/ru/errors#plugin-archive-integrity-check-failed).

151 

152Закрепление `sha256` отделено от закрепления commit SHA каталога community, которое выбирает git commit для проверки.

153 

154<h2 id="enforce-plugin-controls-for-your-organization">

155 Применяйте элементы управления плагинами для вашей организации

156</h2>

157 

158С помощью [managed settings](/docs/ru/plugins/org) администратор может применять эти элементы управления плагинами:

159 

160* Allowlist или blocklist источников marketplace

161* Force-enable плагины

162* Отключить флаги `--plugin-dir` и `--plugin-url` и переменную `CLAUDE_CODE_PLUGIN_DIRS`

163* Ограничить hooks теми, которые из managed settings и force-enabled плагинов

164* Остановить загрузку плагинов из учётных записей claude.ai членов в Claude Code с помощью [`syncClaudeAiPlugins`](/docs/ru/plugins/org#control-matrix)

165 

166[Матрица управления](/docs/ru/plugins/org#control-matrix) говорит, что делает каждый ключ и что он не охватывает.

167 

168<h2 id="find-plugins-in-telemetry">

169 Найдите плагины в телеметрии

170</h2>

171 

172Если ваша организация экспортирует [OpenTelemetry события](/docs/ru/monitoring-usage) Claude Code на свой собственный backend, [уровни marketplace](#marketplace-tiers) определяют, какие названия плагинов появляются там:

173 

174* **[Plugin loaded event](/docs/ru/monitoring-usage#plugin-loaded-event)**: событие сообщает официальные названия плагинов и marketplace как они есть. Для уровней community и third-party `plugin.name` и `marketplace.name` являются буквальной строкой `third-party`, если вы не установите `OTEL_LOG_TOOL_DETAILS=1`.

175* **Plugin scope**: `plugin.scope` загруженного события по-прежнему сообщает, откуда поступил плагин, например `org` для плагина, который включают ваши managed settings, или `user-local` для любого другого плагина third-party. [Plugin loaded event](/docs/ru/monitoring-usage#plugin-loaded-event) перечисляет каждое значение.

176* **[Plugin installed event](/docs/ru/monitoring-usage#plugin-installed-event)**: если вы не установите `OTEL_LOG_TOOL_DETAILS=1`, событие опускает поля имён для плагинов, не являющихся official, вместо того чтобы сообщать `third-party`.

177* **[Claude Code Analytics API](https://platform.claude.com/docs/en/api/admin/analytics/plugins/list)**: Claude Code сообщает плагины из official и community уровней по названию и сообщает каждый другой плагин как `third-party`.

178 

179<h2 id="next-steps">

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

181</h2>

182 

183* [Manage plugins for your organization](/docs/ru/plugins/org): ограничьте, из каких marketplace пользователи могут устанавливать, и требуйте те, которым вы доверяете

184* [Install and manage plugins](/docs/ru/plugins/install): проверьте панель деталей плагина перед выбором scope

185* [Anthropic's marketplaces](/docs/ru/plugins/anthropic-marketplaces): какие названия marketplace принадлежат Anthropic

186* [Security](/docs/ru/security): собственная модель безопасности Claude Code

plugins/troubleshooting.md +1064 −0 created

Details

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# Устранение неполадок плагинов

6 

7> Исправьте ошибки плагинов в Claude Code. Найдите точное сообщение об ошибке, сгруппированное по этапам от запуска /plugin до установки и политики организации.

8 

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

10 

11Если сообщение содержит имя плагина или маркетплейса, запись показывает заполнитель, такой как `<name>`.

12 

13Используйте эту страницу, устанавливаете ли вы плагины, создаёте их, размещаете маркетплейс или администрируете плагины для организации.

14 

15<Note>

16 Эти случаи рассматриваются на других страницах:

17 

18 * **Почему области видимости, кэш и приоритет ведут себя так, как они себя ведут**: прочитайте [Справочник по загрузке плагинов](/docs/ru/plugins/loading)

19 * **Поиск флага, поля или команды**: используйте [справочник команд плагинов](/docs/ru/plugins/cli-reference), [справочник манифеста](/docs/ru/plugins/manifest-reference) или [справочник маркетплейса](/docs/ru/plugins/marketplace-reference)

20</Note>

21 

22Найдите точное сообщение, которое вы видели. Каждое сообщение указано под этапом, который его создаёт, что не всегда совпадает с командой, которую вы запустили. Например, установка может завершиться ошибкой, потому что маркетплейс отсутствует, поэтому это сообщение находится в разделе [Добавить маркетплейс](#add-a-marketplace).

23 

24<h2 id="find-where-/plugin-runs">

25 Найдите, где запускается `/plugin`

26</h2>

27 

28`/plugin` — это команда, которую вы вводите в работающем сеансе терминала Claude Code, и она открывает интерактивную панель. Записи в этом разделе охватывают места, где вы можете её ввести, но она не может запуститься, и написания команд, которые не существуют.

29 

30<h3 id="plugin-isnt-available-in-this-environment">

31 `/plugin isn't available in this environment`

32</h3>

33 

34Вы ввели `/plugin` где-то вне сеанса терминала Claude Code, и Claude ответил этой строкой вместо открытия чего-либо.

35 

36Вы получаете этот ответ в сеансе, у которого нет терминала для отрисовки панели `/plugin`: [неинтерактивный режим](/docs/ru/headless) с `claude -p`, Agent SDK, вкладка Code в приложении Claude для рабочего стола, панель расширения VS Code и браузер на claude.ai/code.

37 

38В панели расширения VS Code только строка `/plugin` с чем-то после неё, такая как `/plugin install <plugin>@<marketplace>`, получает этот ответ. `/plugin` или `/plugins`, введённые отдельно, открывают диалог **Управление плагинами**.

39 

40Установите плагин с поверхности, на которой вы находитесь:

41 

42* **Приложение Claude для рабочего стола, локальный или SSH-сеанс**: нажмите кнопку **+** рядом с приглашением, затем **Плагины**, затем **Добавить плагин**, чтобы открыть [браузер плагинов](/docs/ru/desktop#install-plugins)

43* **Расширение VS Code**: используйте вкладку **VS Code** в разделе [Установить плагин](/docs/ru/plugins/install#install-a-plugin)

44* **Claude Code в веб-браузере или облачный сеанс рабочего стола**: облачный сеанс не имеет браузера плагинов. См. вкладку **Cloud session** в разделе [Установить плагин](/docs/ru/plugins/install#install-a-plugin), чтобы узнать, что загружает облачный сеанс

45* **Терминал, к которому у вас есть доступ**: запустите `claude` и введите `/plugin` там, или запустите `claude plugin install <plugin>@<marketplace>` в вашей оболочке без запуска сеанса

46 

47Когда установка терминала работает, `/plugin` выводит сводку установки, которая начинается с `✓ Installed <plugin>.` и `claude plugin install` выводит `Successfully installed plugin: <plugin>@<marketplace>`.

48 

49<h3 id="zsh-no-such-file-or-directory-plugin">

50 `zsh: no such file or directory: /plugin`

51</h3>

52 

53Вы ввели `/plugin ...` в приглашение оболочки, и оболочка сообщила, что файла с именем `/plugin` не существует. Bash сообщает `bash: /plugin: No such file or directory`.

54 

55`/plugin` — это команда, которую вы вводите в сеансе Claude Code, а не в приглашение оболочки. Запустите сеанс и введите ту же команду там:

56 

57```shell theme={null}

58claude

59```

60 

61Затем в приглашении Claude Code:

62 

63```text theme={null}

64/plugin install <plugin>@<marketplace>

65```

66 

67Успешная установка выводит сводку, которая начинается с `✓ Installed <plugin>.` Если сама установка затем не пройдёт, её сообщение находится в разделе [Добавить маркетплейс](#add-a-marketplace) или [Установить плагин](#install-a-plugin).

68 

69Чтобы установить из оболочки без запуска сеанса, запустите `claude plugin install <plugin>@<marketplace>`.

70 

71<h3 id="the-term-plugin-is-not-recognized-as-the-name-of-a-cmdlet">

72 `The term '/plugin' is not recognized as the name of a cmdlet`

73</h3>

74 

75Вы ввели `/plugin ...` в приглашение PowerShell, и `/plugin` — это команда Claude Code, а не программа. Bash и Zsh сообщают [свою форму этой ошибки](#zsh-no-such-file-or-directory-plugin).

76 

77Используйте вместо этого одно из следующих:

78 

79* Запустите `claude`, затем введите `/plugin` в приглашение Claude Code

80* Запустите `claude plugin install <plugin>@<marketplace>` в PowerShell без запуска сеанса

81 

82<h3 id="claude-command-not-found-after-claude-plugin">

83 `claude: command not found` после `claude plugin ...`

84</h3>

85 

86Вы запустили `claude plugin install ...` в вашей оболочке, и оболочка вообще не смогла найти `claude`. На Windows сообщение: `'claude' is not recognized as the name of a cmdlet` или `'claude' is not recognized as an internal or external command`.

87 

88Причина не в команде плагина. Либо Claude Code не установлен, либо его каталог установки не находится в вашем `PATH` в этой оболочке. Следуйте [`command not found: claude` после установки](/docs/ru/troubleshoot-install#command-not-found-claude-after-installation), затем повторите команду плагина.

89 

90<h3 id="unknown-command-and-command-spellings-that-dont-exist">

91 `Unknown command` и написания команд, которые не существуют

92</h3>

93 

94Вы ввели команду плагина, которую видели где-то, и получили `Unknown command: /<name>` в сеансе, или `error: unknown command '<name>'` или `error: unknown option '<flag>'` из двоичного файла `claude` в вашей оболочке.

95 

96Используются несколько написаний команд, которые Claude Code не имеет. Таблица ниже сопоставляет каждое с реальной командой. [Справочник команд плагинов](/docs/ru/plugins/cli-reference) перечисляет все подкоманды и флаги.

97 

98| Вы ввели | Что говорит Claude Code | Используйте вместо этого |

99| :----------------------------------------- | :--------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------- |

100| `claude plugin add <source>` | `error: unknown command 'add'` | `claude plugin marketplace add <source>` для добавления маркетплейса или `claude plugin install <plugin>@<marketplace>` для установки плагина |

101| `claude plugin install <plugin> --project` | `error: unknown option '--project'` | `claude plugin install <plugin>@<marketplace> --scope project` |

102| `/install <plugin>` | `Unknown command: /install` | `/plugin install <plugin>@<marketplace>` |

103| `/plugin add <source>` | Панель `/plugin` открывается на вкладке **Discover** | `/plugin marketplace add <source>` |

104| `marketplace.anthropic.com` как источник | `Invalid marketplace source format. Try: owner/repo, https://..., or ./path` | `anthropics/claude-plugins-official` для официального маркетплейса |

105 

106Эти написания выглядят неправильно, но работают:

107 

108* `claude plugins` — это псевдоним `claude plugin`

109* `claude plugin remove` — это псевдоним `claude plugin uninstall`

110* `/plugins` и `/marketplace` в сеансе открывают ту же панель, что и `/plugin`

111 

112<h2 id="add-a-marketplace">

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

114</h2>

115 

116Маркетплейс — это каталог, который вы добавляете в Claude Code из репозитория git, URL или локального пути. Эти записи охватывают сообщения, которые вы получаете, когда добавление не удаётся или более позднее обновление не удаётся.

117 

118<h3 id="marketplace-claude-plugins-official-not-found">

119 `Marketplace "claude-plugins-official" not found`

120</h3>

121 

122Вы запустили `/plugin install <plugin>@claude-plugins-official` в сеансе, и Claude Code сообщил, что у него нет маркетплейса с таким именем.

123 

124Официальный маркетплейс ещё не зарегистрирован на этой машине. Claude Code обычно регистрирует его самостоятельно при первом запуске интерактивного сеанса терминала. Он ещё не запустился, если вы использовали Claude Code только через расширение VS Code, и он пропускает или откладывает этот шаг:

125 

126* Когда политика блокирует источник

127* Когда установлена переменная `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`

128* После неудачной попытки, которая ждёт повтора

129 

130Команды оболочки `claude plugin` никогда не регистрируют его для вас.

131 

132Добавьте его, затем повторите установку:

133 

134```text theme={null}

135/plugin marketplace add anthropics/claude-plugins-official

136```

137 

138Claude Code выводит `Successfully added marketplace: claude-plugins-official`, и `/plugin marketplace list` показывает маркетплейс с его источником.

139 

140Для любого другого имени маркетплейса в этом сообщении см. [`Marketplace "<name>" not found`](#marketplace-not-found).

141 

142Та же строка также появляется на вкладке **Errors** в `/plugin`, списке сбоев загрузки панели, когда плагин, указанный в ваших параметрах, называет маркетплейс, который вы не добавили.

143 

144<h3 id="marketplace-not-found">

145 `Marketplace "<name>" not found`

146</h3>

147 

148Вы запустили `/plugin install <plugin>@<name>` в сеансе, часто из строки установки, которую кто-то вам отправил, и Claude Code сообщил, что у него нет маркетплейса с таким именем.

149 

150Если имя начинается с `claudeai-`, маркетплейс размещён на claude.ai, и вы добавляете его по имени из вашей оболочки с помощью `claude plugin marketplace add --claudeai <name>`. См. [Добавить маркетплейс с claude.ai](/docs/ru/plugins/install#add-from-claude-ai).

151 

152Для любого другого имени строка установки называет маркетплейс, но не говорит, где он размещён, и Claude Code не имеет индекса для поиска имени маркетплейса. Попросите у того, кто отправил строку, источник маркетплейса, который является GitHub `owner/repo`, URL git или путём. Затем [добавьте маркетплейс](/docs/ru/plugins/install#add-a-marketplace) и запустите строку установки снова.

153 

154Маркетплейс, который кто-то вам отправляет, является сторонним, поэтому [просмотрите плагин перед его установкой](/docs/ru/plugins/security#review-a-plugin-before-you-install).

155 

156Если вы уже добавили маркетплейс, проверьте написание в `/plugin marketplace list`.

157 

158<h3 id="invalid-marketplace-source-format">

159 `Invalid marketplace source format`

160</h3>

161 

162Вы запустили `/plugin marketplace add <source>` или `claude plugin marketplace add <source>`, и Claude Code ответил `Invalid marketplace source format. Try: owner/repo, https://..., or ./path`.

163 

164Claude Code принимает источник в одной из этих форм:

165 

166* Сокращение GitHub `owner/repo`

167* URL `https://` или `http://`

168* SSH URL `user@host:path`

169* Локальный путь, начинающийся с `./`, `../`, `/` или `~`

170 

171Простое имя, такое как `claude-plugins-official`, не соответствует ни одному из них. Также не соответствует простое имя хоста, такое как `marketplace.anthropic.com`.

172 

173Переведите источник в одну из принятых форм:

174 

175```text theme={null}

176/plugin marketplace add anthropics/claude-plugins-official

177```

178 

179Claude Code выводит `Successfully added marketplace: <name>`, когда добавление работает.

180 

181<h3 id="is-not-a-valid-github-owner-repo-shorthand">

182 `'<source>' is not a valid GitHub owner/repo shorthand`

183</h3>

184 

185Вы передали источник с косой чертой, который не является `owner/repo`, такой как `github.com/owner/repo` или путь `gitlab.example.com/group/project`. Claude Code отказал ему с этим сообщением и списком принятых форм.

186 

187Сокращение `owner/repo` предназначено только для GitHub и должно следовать правилам именования GitHub, поэтому имя хоста или дополнительный сегмент пути не работает. Передайте источник в форме, которая соответствует тому, где размещён маркетплейс:

188 

189* **Репозиторий на любом хосте**: полный URL клонирования

190* **Размещённый `marketplace.json`**: его URL `https://`

191* **Локальная копия**: `./path` или абсолютный путь

192 

193Например, чтобы добавить официальный маркетплейс по его URL клонирования, в сеансе:

194 

195```text theme={null}

196/plugin marketplace add https://github.com/anthropics/claude-plugins-official.git

197```

198 

199Успешное добавление выводит `Successfully added marketplace: <name>`.

200 

201<h3 id="path-does-not-exist">

202 `Path does not exist: <path>`

203</h3>

204 

205Вы передали локальный путь в `marketplace add`, и ничего не существует по этому пути. Относительный путь разрешается относительно вашего текущего каталога.

206 

207Проверьте разрешённый путь в сообщении. Затем запустите команду из каталога, с которого начинается относительный путь, или передайте абсолютный путь к каталогу маркетплейса. Успешное добавление выводит `Successfully added marketplace: <name>`.

208 

209Claude Code принимает каталог, содержащий `.claude-plugin/marketplace.json`, или путь к файлу `.json`. Путь к любому другому файлу не работает с `File path must point to a .json file (marketplace.json)`.

210 

211<h3 id="marketplace-file-not-found-at-claude-plugin-marketplace-json">

212 `Marketplace file not found at <path>/.claude-plugin/marketplace.json`

213</h3>

214 

215Claude Code клонировал или загрузил маркетплейс, но не нашёл `marketplace.json` по ожидаемому пути внутри него. Команда добавления сообщает об этом как `Failed to add marketplace: Marketplace file not found at ...`.

216 

217Расположение по умолчанию — `.claude-plugin/marketplace.json` в корне репозитория, и [справочник маркетплейса](/docs/ru/plugins/marketplace-reference) перечисляет принятые расположения.

218 

219Исправление отличается для владельца и для всех остальных:

220 

221* **Вы владеете маркетплейсом**: поместите файл в это расположение и повторно добавьте маркетплейс

222* **Кто-то другой размещает его**: попросите у владельца точный источник, который они публикуют

223 

224<h3 id="ssh-authentication-failed-or-https-authentication-failed">

225 `SSH authentication failed` или `HTTPS authentication failed`

226</h3>

227 

228Вы добавили или обновили маркетплейс из репозитория git, и клонирование не удалось с `Failed to clone marketplace repository:`, за которым следует одна из этих строк.

229 

230Сначала проверьте сам репозиторий: неправильный `owner/repo`, репозиторий, который не существует, или приватный репозиторий, который вы не можете видеть, также заканчивается этим сообщением. Откройте URL репозитория в вашем браузере или запустите `git ls-remote <url>` в вашем терминале, чтобы подтвердить, что он существует и у вас есть доступ.

231 

232Если репозиторий правильный, причина — учётные данные. Claude Code запускает git с отключёнными интерактивными приглашениями, поэтому он не может попросить вас пароль, парольную фразу ключа или учётные данные так, как это делал бы ваш терминал. Если git нужно приглашение, вы видите `fatal: Cannot prompt because user interactivity has been disabled` или `terminal prompts disabled` в исходной ошибке. Работают только учётные данные, которые уже работают неинтерактивно:

233 

234* **SSH**: `ssh -T git@<host>` должен успешно выполниться без запроса парольной фразы, и хост должен уже находиться в `known_hosts`

235* **HTTPS**: ваш помощник учётных данных должен содержать токен для хоста. Для GitHub запустите `gh auth login` и `gh auth setup-git`. Для другого хоста сохраните личный токен доступа в помощнике учётных данных git. Протестируйте с помощью `git ls-remote <url>`

236 

237Как только `git ls-remote` успешно выполнится в вашем терминале без приглашения, запустите добавление или обновление снова. Успешное добавление выводит `Successfully added marketplace: <name>`. Успешное обновление выводит `Successfully updated marketplace: <name>` из вашей оболочки или `✔ Updated 1 marketplace` в сеансе.

238 

239Чтобы Claude Code пропустил SSH для источников GitHub `owner/repo`, установите `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`. Без этого Claude Code клонирует эти источники через SSH, когда SSH-ключ для `github.com` выглядит настроенным, и возвращается к HTTPS, когда клонирование SSH не удаётся.

240 

241Для того, что фоновое автообновление может и не может делать с вашими учётными данными, см. [Что фоновое автообновление делает с учётными данными](/docs/ru/plugins/host-marketplace#what-background-auto-update-does-with-credentials).

242 

243<h3 id="ssh-host-key-is-not-in-your-known-hosts-file">

244 `SSH host key is not in your known_hosts file`

245</h3>

246 

247Вы добавили маркетплейс через SSH с хоста, к которому вы никогда не подключались, и клонирование не удалось с этой строкой и подсказкой `ssh -T git@<host>`. Для хоста, чей ключ изменился, сообщение: `SSH host key has changed` с подсказкой `ssh-keygen -R <host>` вместо этого.

248 

249Claude Code клонирует с `StrictHostKeyChecking=yes`, поэтому он отказывает хосту, чей ключ вы ещё не приняли, вместо автоматического принятия ключа. Подключитесь один раз из вашего терминала, чтобы принять отпечаток, затем повторите попытку:

250 

251```shell theme={null}

252ssh -T git@github.com

253```

254 

255Для публичного репозитория добавьте маркетплейс по его URL `https://` вместо этого, чтобы полностью избежать SSH.

256 

257<h3 id="command-git-not-found-or-is-in-an-unsafe-location">

258 `Command 'git' not found or is in an unsafe location`

259</h3>

260 

261На Windows вы добавили маркетплейс, и Claude Code сообщил `Failed to clone marketplace repository: Command 'git' not found or is in an unsafe location (current directory)`.

262 

263Claude Code ищет `git` в вашем `PATH` и отказывается запускать найденный только в текущем каталоге. Чтобы исправить это, установите Git и повторите попытку:

264 

265<Steps>

266 <Step title="Установить Git для Windows">

267 Установите Git для Windows, чтобы `git` находился в вашем `PATH`.

268 </Step>

269 

270 <Step title="Откройте новый терминал">

271 Откройте новый терминал, чтобы обновлённый `PATH` применился.

272 </Step>

273 

274 <Step title="Подтвердите, что git работает">

275 Подтвердите, что `git --version` выводит версию.

276 </Step>

277 

278 <Step title="Повторите добавление">

279 Запустите команду `marketplace add` снова.

280 </Step>

281</Steps>

282 

283<h3 id="git-clone-timed-out-after-120s">

284 `Git clone timed out after 120s`

285</h3>

286 

287Вы добавили или обновили маркетплейс, и это не удалось с `Git clone timed out after 120s`, за которым следует подсказка установить `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS`.

288 

289Клонирование маркетплейса и повторное клонирование для его обновления получает 120 секунд по умолчанию. Для большого репозитория или медленного соединения повысьте лимит. Значение указано в миллисекундах:

290 

291<Tabs>

292 <Tab title="Bash или Zsh">

293 ```bash theme={null}

294 export CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS=300000

295 ```

296 </Tab>

297 

298 <Tab title="PowerShell">

299 ```powershell theme={null}

300 $env:CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS = "300000"

301 ```

302 </Tab>

303</Tabs>

304 

305Затем повторите попытку в той же оболочке.

306 

307Если репозиторий — это монорепо, ограничьте проверку каталогами, которые вы называете с помощью `claude plugin marketplace add <source> --sparse <paths>`.

308 

309<h3 id="marketplace-updates-keep-failing-offline">

310 Обновления маркетплейса продолжают не работать в автономном режиме

311</h3>

312 

313Вы работаете в среде, где хост git маркетплейса недоступен, и каждый сеанс повторяет неудачное обновление в фоне. Ваша существующая копия маркетплейса остаётся на месте, и запуск не задерживается.

314 

315Каждый сеанс для маркетплейса с [включённым автообновлением](/docs/ru/plugins/loading#which-marketplaces-and-plugins-auto-update) Claude Code проверяет хост git маркетплейса на предмет новых коммитов в фоне. Когда эта проверка не может достичь хоста, она пытается клонировать маркетплейс снова, и в автономном режиме это клонирование также не удаётся.

316 

317Установите эту переменную, чтобы пропустить попытку повторного клонирования и продолжить использовать существующую копию, когда проверка не может достичь хоста:

318 

319<Tabs>

320 <Tab title="Bash или Zsh">

321 ```bash theme={null}

322 export CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1

323 ```

324 </Tab>

325 

326 <Tab title="PowerShell">

327 ```powershell theme={null}

328 $env:CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE = "1"

329 ```

330 </Tab>

331</Tabs>

332 

333С установленной переменной Claude Code пропускает повторное клонирование только для копии, которая уже содержит `.claude-plugin/marketplace.json`. Маркетплейс, который никогда не был клонирован или чьё клонирование остановилось на полпути, всё ещё получает попытку клонирования, поэтому добавьте его один раз в сети.

334 

335Для полностью автономного развёртывания вместо этого предварительно заполните каталог плагинов во время сборки образа с помощью `CLAUDE_CODE_PLUGIN_SEED_DIR`, следуя [Seed контейнеры и CI](/docs/ru/plugins/org#seed-containers-and-ci).

336 

337<h3 id="marketplace-add-fails-on-a-github-enterprise-server-host">

338 Добавление маркетплейса не работает на хосте GitHub Enterprise Server

339</h3>

340 

341Вы добавили маркетплейс с URL GitHub Enterprise Server (GHES) и получили ошибку политики, или вы добавили его с claude.ai и получили ошибку доступа GitHub.

342 

343Оба случая находятся на странице GHES:

344 

345* [Ошибка политики](/docs/ru/github-enterprise-server#marketplace-add-fails-with-a-policy-error) означает, что ваша организация ограничила источники маркетплейса, и администратор должен добавить `hostPattern` для хоста

346* [Ошибка доступа GitHub на claude.ai](/docs/ru/github-enterprise-server#marketplace-add-on-claude-ai-fails-with-a-github-access-error) означает, что ваша собственная учётная запись GitHub Enterprise ещё не подключена

347 

348<h2 id="install-a-plugin">

349 Установить плагин

350</h2>

351 

352Вы добавили маркетплейс и запустили установку, и установка остановилась с сообщением вместо установки чего-либо. Эти записи охватывают эти сообщения. Они также охватывают связанные сообщения, которые появляются позже на вкладке **Errors** в `/plugin` или как пустая вкладка **Discover**, когда плагин или его маркетплейс не могут быть найдены, прочитаны или доверены.

353 

354<h3 id="plugin-not-found-in-marketplace">

355 `Plugin "<name>" not found in marketplace "<marketplace>"`

356</h3>

357 

358Вы запустили `/plugin install <name>@<marketplace>` или `claude plugin install <name>@<marketplace>`, и имя плагина отсутствует в копии каталога этого маркетплейса на вашей машине.

359 

360`claude plugin install` в вашей оболочке выводит то же сообщение, когда вы вообще не добавили маркетплейс. Если `claude plugin marketplace update <marketplace>` затем ответит `Marketplace '<marketplace>' not found`, сначала [добавьте маркетплейс](#add-a-marketplace).

361 

362<h4 id="the-message-ends-with-a-refresh-hint">

363 `not found in marketplace` с подсказкой обновления

364</h4>

365 

366Подсказка гласит `Your local copy may be out of date — try claude plugin marketplace update <marketplace>` или `The marketplace couldn't be refreshed (...)`. Claude Code не обновил маркетплейс перед поиском, например, когда вы в автономном режиме, поэтому ваша копия каталога может быть устаревшей. Обновите с именем маркетплейса, затем установите снова:

367 

368```text theme={null}

369/plugin marketplace update <marketplace>

370```

371 

372`claude plugin marketplace update` выводит `Successfully updated marketplace: <name>`, и `/plugin marketplace update` показывает `✔ Updated 1 marketplace`. Если повторная установка выводит то же сообщение, проверьте имя, как описано в [`not found in marketplace` без подсказки](#the-message-has-no-hint). [Когда Claude Code обновляет маркетплейс перед установкой](/docs/ru/plugins/loading#when-claude-code-refreshes-a-marketplace-before-an-install) перечисляет другие случаи, когда обновление не запускается.

373 

374<h4 id="the-message-has-no-hint">

375 `not found in marketplace` без подсказки

376</h4>

377 

378Имя — наиболее вероятная проблема. Откройте `/plugin`, перейдите на **Discover** и скопируйте имя из списка.

379 

380До v2.1.232 Claude Code обновлял названный маркетплейс только после того, как поиск не удавался, и только когда для него было включено автообновление.

381 

382<h3 id="plugin-not-found-in-any-marketplace">

383 `Plugin "<name>" not found in any marketplace`

384</h3>

385 

386Вы запустили `/plugin install <name>` без `@marketplace`, и ни один зарегистрированный маркетплейс не имеет этого плагина. `claude plugin install <name>` сообщает `Plugin "<name>" not found in any configured marketplace`.

387 

388Без имени маркетплейса `claude plugin install` ищет каталоги, которые он уже имеет, и не обновляет их в первую очередь, и `/plugin install` обновляет только маркетплейсы, у которых включено автообновление. Назовите маркетплейс, и Claude Code обновит его перед поиском плагина:

389 

390```text theme={null}

391/plugin install <name>@<marketplace>

392```

393 

394Когда установка работает, вы видите `✓ Installed <plugin>.` в сеансе или `Successfully installed plugin: <plugin>@<marketplace>` из `claude plugin install`.

395 

396Если вы не знаете, какой маркетплейс содержит плагин, запустите `/plugin marketplace list` для маркетплейсов, которые у вас есть, и просмотрите **Discover** в `/plugin` для имени плагина.

397 

398<h3 id="plugin-is-already-installed-globally">

399 `Plugin '<name>@<marketplace>' is already installed globally`

400</h3>

401 

402Вы запустили `/plugin install` для плагина, который уже установлен в области пользователя или управляемыми параметрами, и Claude Code отказал с `Use '/plugin' to manage existing plugins.` Если вы ввели имя плагина без `@<marketplace>`, сообщение опускает `globally`.

403 

404Плагин уже доступен в каждом проекте, поэтому нечего добавлять. Чтобы изменить его [область видимости](/docs/ru/plugins/install), включить или отключить его или настроить его, откройте `/plugin` и перейдите на **Installed**.

405 

406Плагин, установленный только в области проекта или локальной области, не вызывает это сообщение. Claude Code позволяет вам установить его также в области пользователя, поэтому он доступен в других проектах.

407 

408`claude plugin install` в вашей оболочке выводит другое сообщение. Для плагина, уже установленного в целевой области, он выводит `Plugin "<name>@<marketplace>" is already installed (scope: user)` и выходит с кодом 0. Если его каталог кэша отсутствует, та же команда повторно загружает его.

409 

410<h3 id="this-plugin-uses-a-source-type-your-claude-code-version-does-not-suppo">

411 `This plugin uses a source type your Claude Code version does not support`

412</h3>

413 

414Вы установили плагин, чья запись маркетплейса использует тип источника, который эта версия Claude Code не может получить, и Claude Code остановился с этим сообщением и `Update Claude Code and try again.`

415 

416Обновите Claude Code, затем повторите установку. Типы источников находятся в [справочнике маркетплейса](/docs/ru/plugins/marketplace-reference).

417 

418<h3 id="plugin-archive-integrity-check-failed">

419 `Plugin archive integrity check failed`

420</h3>

421 

422Вы установили плагин, который распространяется как zip-архив, и Claude Code отказал ему с этой строкой и `The archive was not installed.` Запись маркетплейса плагина использует [`archive` источник](/docs/ru/plugins/marketplace-reference) с закреплением `sha256`, и дайджест загруженного файла не совпадает с закреплением.

423 

424Полное сообщение выглядит так:

425 

426```text theme={null}

427Plugin archive integrity check failed for https://artifacts.example.com/claude-plugins/my-plugin.zip: expected sha256 6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1, got ac52220c0914ef8ca6a602e4a7362f88d30fb021110f72a6d15b68c3fe7df2b7. The archive was not installed. Verify the sha256 in the marketplace entry, or that the URL serves the intended file.

428```

429 

430Исправление отличается для издателя и установщика:

431 

432* **Вы публикуете плагин**: пересчитайте дайджест точного файла, который служит URL, и обновите `sha256` в записи маркетплейса. Используйте `shasum -a 256 my-plugin.zip` или `Get-FileHash -Algorithm SHA256 my-plugin.zip` в PowerShell

433* **Вы устанавливаете плагин**: запустите `/plugin marketplace update <name>` в сеансе, чтобы обновить каталог на случай, если запись была исправлена, затем повторите установку. Если дайджесты всё ещё не совпадают после обновления, попросите владельца маркетплейса, какой файл они закрепили перед установкой

434 

435<h3 id="marketplace-is-registered-from-an-untrusted-source">

436 `Marketplace "<name>" is registered from an untrusted source`

437</h3>

438 

439Маркетплейс, который вы добавили ранее, перестал загружаться, и его плагины тоже. Эта строка появляется на вкладке **Errors** в `/plugin` или при следующем обновлении.

440 

441Маркетплейс зарегистрирован под именем, которое [зарезервировано для официальных маркетплейсов Anthropic](/docs/ru/plugins/marketplace-reference), но его зарегистрированный источник не является репозиторием GitHub `anthropics`. Зарезервированные имена повторно проверяются каждый раз, когда маркетплейс загружается или обновляется, поэтому маркетплейс и плагины, установленные из него, перестают загружаться.

442 

443Полное сообщение называет зарезервированное имя и исправление:

444 

445```text theme={null}

446Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.

447```

448 

449Исправление отличается для пользователей и издателей:

450 

451* **Вы используете маркетплейс**: в вашей оболочке запустите `claude plugin marketplace remove <name>`, затем добавьте маркетплейс снова из официального репозитория `github.com/anthropics`

452* **Вы публикуете сторонний маркетплейс, который использовал имя до того, как оно было зарезервировано**: переименуйте его и попросите пользователей повторно добавить его из вашего источника

453 

454До v2.1.205 Claude Code проверял имя только при добавлении маркетплейса, поэтому запись, зарегистрированная до того, как её имя было зарезервировано, продолжала загружаться.

455 

456<h3 id="plugin-has-a-corrupt-manifest-file-or-has-an-invalid-manifest-file">

457 `Plugin <name> has a corrupt manifest file` или `has an invalid manifest file`

458</h3>

459 

460Claude Code получил плагин, затем не смог прочитать его `.claude-plugin/plugin.json`. В оболочке `<name>` в этой строке может быть временным именем каталога; префикс `Failed to install plugin "<name>@<marketplace>"` содержит реальное имя плагина. Формулировка говорит, какая проверка не удалась:

461 

462* **`corrupt manifest file`, за которым следует `JSON parse error:`**: файл не является действительным JSON

463* **`invalid manifest file`, за которым следует `Validation errors:`**: файл анализируется, но не проходит схему, такую как `name: Invalid input` для отсутствующего обязательного поля

464 

465`claude plugin install` сообщает либо как `Failed to install plugin "<name>@<marketplace>":` и выходит с кодом 1.

466 

467Автор плагина должен исправить файл, и плагин не может быть установлен до этого:

468 

469* **Если это вы**: запустите `claude plugin validate <plugin-directory>` в вашей оболочке, чтобы увидеть ту же ошибку с нарушающим путём, затем исправьте файл

470* **Если это не вы**: сообщите сообщение владельцу маркетплейса

471 

472<h3 id="plugin-directory-not-found-at-path">

473 `Plugin directory not found at path: <path>`

474</h3>

475 

476Вкладка **Errors** в `/plugin` показывает это для включённого плагина, который его маркетплейс указывает относительным путём, такой как `./plugins/my-plugin`, когда в этом пути внутри маркетплейса не существует каталога. Если вы поддерживаете маркетплейс, исправьте путь `source` записи или восстановите папку. В противном случае сообщите сообщение владельцу маркетплейса.

477 

478`Marketplace directory not found at path: <path>` означает, что вместо этого отсутствует собственный каталог маркетплейса. Для маркетплейса, который вы добавили из локального пути, этот каталог переместился или был удалён. Восстановите его или удалите маркетплейс и добавьте его снова из его нового расположения.

479 

480<h3 id="no-plugins-available-or-no-marketplaces-configured">

481 `No plugins available` или `No marketplaces configured`

482</h3>

483 

484Вы открыли `/plugin` и вкладка **Discover** пуста, или `claude plugin marketplace list` вывел `No marketplaces configured`.

485 

486Ни один маркетплейс не зарегистрирован, поэтому нет каталога для отображения. В сеансе добавьте официальный маркетплейс, `anthropics/claude-plugins-official`:

487 

488```text theme={null}

489/plugin marketplace add anthropics/claude-plugins-official

490```

491 

492Claude Code выводит `Successfully added marketplace: claude-plugins-official`, и **Discover** перечисляет его плагины. На странице [Маркетплейсы Anthropic](/docs/ru/plugins/anthropic-marketplaces) перечислены другие маркетплейсы, которые вы можете добавить.

493 

494<h3 id="marketplace-is-already-added-from-a-different-source">

495 `Marketplace "<name>" is already added from a different source`

496</h3>

497 

498Вы подтвердили добавление маркетплейса через [`/plugin install <plugin> --marketplace <source>`](/docs/ru/plugins/install#add-a-marketplace-and-install-in-one-command), и каталог, который Claude Code получил из этого источника, имеет то же имя, что и маркетплейс, который вы уже добавили из другого источника. Claude Code сохраняет существующий маркетплейс вместо его замены, и плагин не устанавливается.

499 

500Полное сообщение выглядит так:

501 

502```text theme={null}

503Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.

504```

505 

506Выберите, какой источник вы хотите:

507 

508* **Маркетплейс, который вы уже добавили**: установите из него по имени с помощью `/plugin install <plugin>@<name>`

509* **Новый источник**: запустите `/plugin marketplace remove <name>`, затем повторите установку

510 

511<h3 id="cannot-add-marketplace-its-network-source-differs">

512 `Cannot add marketplace "<name>": its network source differs from the one declared for it in settings`

513</h3>

514 

515Вы запустили `marketplace add`, и каталог в этом источнике имеет то же имя, что и маркетплейс, который файл параметров уже объявляет в [`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces) с другим источником. Claude Code отказывает добавлению и ничего не регистрирует.

516 

517Сообщение заканчивается исправлением: источник должен совпадать с тем, который объявлен для этого имени в параметрах, или вы изменяете объявление. Сравните источник, который вы передали, с записью `extraKnownMarketplaces` для этого имени, включая его `ref`, `path` и `headers`, затем сделайте одно из следующего:

518 

519* **Используйте объявленный источник**: добавьте маркетплейс из источника, который называет запись параметров

520* **Используйте новый источник**: отредактируйте или удалите запись `extraKnownMarketplaces`, затем добавьте маркетплейс снова. Если управляемые параметры объявляют это, попросите вашего администратора

521 

522<h3 id="failed-to-install-from-the-plugin-menu">

523 `Failed to install: <plugin> (<reason>)`

524</h3>

525 

526Вы выбрали плагины для установки в меню `/plugin`, ни один из них не установился, и меню закрылось с этой сводкой того, что не удалось.

527 

528Некоторые причины, такие как вывод git после неудачного клонирования, показывают только их первую строку. Когда такая причина была сокращена, сводка заканчивается `Installing a plugin from its details (Enter) in /plugin shows its full error.`

529 

530Что делать, зависит от того, была ли сокращена сводка причины:

531 

532* Исправьте то, что называет причина в скобках

533* Когда причина была сокращена, запустите `/plugin`, выберите плагин на вкладке **Discover** и нажмите **Enter**, чтобы установить его из его деталей. Если установка там не удаётся, представление деталей показывает всю ошибку

534 

535<h3 id="could-not-move-the-new-copy-of-this-plugin-version">

536 `Could not move the new copy of this plugin version into <path>`

537</h3>

538 

539Когда вы устанавливаете плагин, Claude Code загружает свежую копию его файлов и перемещает её в папку этой версии в [кэше плагинов](/docs/ru/plugins/loading#find-plugins-on-disk). Это сообщение означает, что перемещение не удалось, обычно потому, что другая программа использовала папку во время установки. Код файловой системы появляется в скобках:

540 

541```text theme={null}

542Could not move the new copy of this plugin version into /home/user/.claude/plugins/cache/acme-tools/formatter/1.2.0: the new copy or the version folder stayed busy while the install ran (ENOTEMPTY) — usually a scanner still reading the freshly downloaded files, another program using that folder, or another process re-creating it. The previously installed copy was moved back. Run the install again once other Claude Code sessions or programs using that folder have finished.

543```

544 

545Сообщение говорит, что произошло с копией, которая была установлена раньше, что говорит вам, работает ли плагин:

546 

547* `The previously installed copy was moved back`: версия, которая у вас была, всё ещё установлена

548* `had to be removed first`, `was not moved back` или `could not be moved back`: эта версия плагина не установлена до успешной установки

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

550 

551На Windows, когда другая программа удерживает саму установленную копию, сообщение вместо этого говорит, что эта копия `could not be replaced` и что `It was not replaced and the new copy was discarded`, поэтому версия, которая у вас была, всё ещё установлена.

552 

553Список `Left on disk` называет отложенные папки внутри кэша. Более позднее обновление этой версии или очистка кэша плагинов удаляет их, поэтому вам не нужно их удалять.

554 

555Чтобы исправить установку:

556 

557* Закройте другие сеансы Claude Code, редакторы и терминалы, которые используют папку плагина в `~/.claude/plugins/cache`, затем запустите установку снова

558* Когда сообщение говорит проверить разрешения папки кэша плагинов, восстановите разрешение на запись в папку, которую оно называет, и освободите место на диске, затем запустите установку снова

559 

560<h3 id="dependency-errors">

561 Ошибки зависимостей

562</h3>

563 

564Плагин, который объявляет зависимости, может не установиться или установиться и остаться отключённым, когда зависимость не может быть удовлетворена. Сообщение достигает вас во время установки или во время загрузки:

565 

566* **Во время установки**: отказ возвращается как сообщение об ошибке установки

567* **Когда плагин загружается**: проблема появляется в `claude plugin list` и на вкладке **Errors** в `/plugin`, и Claude Code держит затронутый плагин отключённым до тех пор, пока вы не разрешите это

568 

569Таблица перечисляет каждое сообщение и его исправление. Чтобы объявить зависимости как автор, см. [Зависимости плагинов](/docs/ru/plugins/dependencies).

570 

571| Сообщение | Значение | Как разрешить |

572| :----------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

573| `Dependency "<dep>" is not installed` | Объявленная зависимость не установлена. | Установите её в вашей оболочке с помощью `claude plugin install <dep>@<marketplace>` или удалите плагин. Если маркетплейс зависимости ещё не зарегистрирован, добавьте его и запустите `/reload-plugins` в вашем сеансе, который устанавливает отсутствующие зависимости, которые он может разрешить. |

574| `Dependency "<dep>" is disabled` | Зависимость установлена, но отключена. | Включите зависимость или удалите плагин, который её требует. |

575| `Requires "<dep>" <range>, installed <version>` | Версия установленной зависимости находится вне объявленного диапазона плагина. | Обновите зависимость до версии в диапазоне или удалите плагин. |

576| `<Plugin or Dependency> "<name>" has conflicting version requirements` | Ни одна версия не удовлетворяет каждому диапазону, который её закрепляет. Сообщение перечисляет диапазоны. | Удалите или обновите один из конфликтующих плагинов или попросите автора вышестоящего уровня расширить его ограничение. |

577| `... has version requirements too complex to intersect` или `has an invalid version requirement` | Диапазон не является действительным semver или объединённые диапазоны не могут быть пересечены. | Исправьте недействительный диапазон или упростите длинные цепочки `\|\|`. |

578| `... has no git tag satisfying <range>` | Репозиторий зависимости не имеет тега `<name>--v*` в диапазоне. | Проверьте, что вышестоящий уровень помечает выпуски этим соглашением, или ослабьте диапазон. |

579| `Dependency "<dep>" (required by <plugin>) is in <marketplace>, which is not in the allowlist` | Зависимость находится в другом маркетплейсе, и разрешение между маркетплейсами отключено по умолчанию. | Установите зависимость самостоятельно в той же области видимости, в вашей оболочке с помощью `claude plugin install <dep>@<marketplace>` плюс `--scope`, в котором вы устанавливаете плагин, затем повторите попытку. |

580 

581Чтобы увидеть это программно, запустите `claude plugin list --json` в вашей оболочке. Плагины с проблемами содержат поле `errors` с сообщениями и поле `errorDetails` с `type` для каждого: первые две строки — `dependency-unsatisfied`, а третья — `dependency-version-unsatisfied`.

582 

583<h2 id="plugin-installed-but-not-working">

584 Плагин установлен, но не работает

585</h2>

586 

587Установка прошла успешно, но skills, hooks или серверы плагина ничего не делают. Начните с [Плагин не появляется или его skills не отображаются](#plugin-doesnt-appear-or-its-skills-dont-show-up), что говорит вам, где Claude Code сообщает, что он загрузил, затем сопоставьте сообщение.

588 

589<h3 id="plugin-doesnt-appear-or-its-skills-dont-show-up">

590 Плагин не появляется или его skills не отображаются

591</h3>

592 

593Вы установили плагин и ввели `/`, ожидая его skills, или попросили Claude использовать его, и ничего не произошло.

594 

595Проверьте состояние плагина перед изменением чего-либо:

596 

597<Steps>

598 <Step title="Подтвердите, что плагин установлен и включён">

599 Запустите `/plugin` и откройте **Installed**. Подтвердите, что плагин указан и включён. `claude plugin list` в вашей оболочке выводит тот же список с версией каждого плагина, областью видимости и `Status: ✔ enabled`.

600 </Step>

601 

602 <Step title="Прочитайте вкладку Errors">

603 Откройте вкладку **Errors** в той же панели. Каждая запись связывает сообщение с строкой руководства. Большинство сообщений в остальной части этого раздела поступают с этой вкладки.

604 </Step>

605 

606 <Step title="Перезагрузитесь, если вы установили во время этого сеанса">

607 Если плагин установлен и без ошибок, но вы установили его во время этого сеанса, запустите `/reload-plugins`. Он выводит `Reloaded:` с подсчётом плагинов, skills, агентов, hooks и серверов. Когда что-то не удалось, он добавляет `N errors during load. Run /plugin for details.`

608 </Step>

609</Steps>

610 

611Если плагин загружается без ошибок и его skills всё ещё не появляются, следующий шаг отличается для вашего собственного плагина и для чужого:

612 

613* **Плагин, который вы создаёте**: см. [Плагин загружается, но его skills отсутствуют](#plugin-loads-but-its-skills-are-missing)

614* **Плагин, который кто-то другой опубликовал**: откройте **Installed** в `/plugin` и откройте панель деталей плагина, которая перечисляет, что содержит плагин. Плагин, который не перечисляет skills там, не имеет их для предложения, когда вы вводите `/`

615 

616<h3 id="run-reload-plugins-to-activate">

617 `Run /reload-plugins to activate.`

618</h3>

619 

620Сводка установки в `/plugin` закончилась с `Run /reload-plugins to activate.` вместо `Plugin is now active.`

621 

622Claude Code не активировал плагин во время установки, либо потому, что активация его [инвалидирует кэш подсказок](/docs/ru/prompt-caching#enabling-or-disabling-a-plugin), либо потому, что попытка активации не удалась.

623 

624Вам не нужно вводить команду. Панель закрывается и Claude Code запускает `/reload-plugins` для вас, или ставит её в очередь до завершения потоковой передачи ответа.

625 

626Прочитайте, что выводит эта перезагрузка:

627 

628* **`Reloaded:` с подсчётом плагинов, skills, агентов, hooks и серверов**: плагин теперь активен. Когда что-то не удалось загрузить, строка добавляет `N errors during load. Run /plugin for details.`

629* **`This reload changes MCP tools (...) — your next message will re-read the whole conversation instead of using the cache. Run /reload-plugins --force to apply.`**: перезагрузка добавит или удалит сервер MCP плагина или инструмент `LSP`, и инвалидирует ваш кэш подсказок. Для случая LSP строка начинается с `This reload adds the LSP tool` или `This reload removes the LSP tool`. Запустите его с `--force`, чтобы активировать плагин в любом случае, или запустите новый сеанс

630 

631До v2.1.268 установка, которая не активировалась во время установки, оставалась в ожидании до тех пор, пока вы не запустили `/reload-plugins` самостоятельно.

632 

633До v2.1.246 подсчёт skills в этой сводке включал только записи `commands/` плагина, поэтому перезагрузка могла загрузить skills `SKILL.md` плагина и всё ещё сообщать `0 skills`.

634 

635<h3 id="plugin-not-cached-at">

636 `Plugin "<name>" not cached at <path>`

637</h3>

638 

639Вкладка **Errors** показывает эту строку с руководством `Run /plugin to refresh the plugin cache`. Claude Code имеет запись об установке плагина, но каталог, на который указывает запись, отсутствует, например, после очистки кэша.

640 

641Переустановите плагин из вашей оболочки. `claude plugin install <name>@<marketplace>` повторно загружает плагин, чей каталог установки отсутствует, даже если его запись существует:

642 

643```shell theme={null}

644claude plugin install <name>@<marketplace>

645```

646 

647Затем запустите `/reload-plugins` в вашем сеансе. Запись на вкладке **Errors** исчезает и плагин вернулся в **Installed**.

648 

649<h3 id="a-plugin-you-disabled-still-loads">

650 `Disabled in ~/.claude/settings.json but still loads`

651</h3>

652 

653Вы установили плагин на `false` в `~/.claude/settings.json`, и его строка в `claude plugin list` или `/plugin` показывает это сообщение, за которым следует источник, который его включает, такой как `— project settings enable it, which overrides your user setting`. `true` в этом источнике с более высоким приоритетом переопределяет ваш пользовательский параметр.

654 

655Чтобы отказаться от плагина, включённого проектом, на вашей машине установите id на `false` в `.claude/settings.local.json`, который имеет более высокий приоритет, чем файл проекта. Для других источников, которые может назвать сообщение, см. [Отключено в пользовательских параметрах, но всё ещё загружается](/docs/ru/plugins/loading#disabled-in-user-settings-but-still-loads).

656 

657Если `claude plugin list` вместо этого помечает плагин `required by your org`, никакой файл параметров не задействован: ваша организация помечает этот синхронизированный плагин как требуемый на claude.ai, и он загружается, даже если вы отключили его ранее. См. [Плагины, синхронизированные с claude.ai](/docs/ru/plugins/loading#synced-plugins).

658 

659<h3 id="plugin-is-enabled-in-project-settings-but-isnt-installed-here">

660 `Plugin "<name>" is enabled in project settings but isn't installed here`

661</h3>

662 

663Вкладка **Errors** показывает эту строку для плагина, который `.claude/settings.json` вашего проекта включает, с руководством `Run claude plugin install <name>@<marketplace> --scope project to install it for this project`.

664 

665Параметры репозитория могут включать плагин для всех, кто его открывает, но они его не устанавливают. Когда плагин поступает из внешнего источника, такого как репозиторий GitHub или пакет npm, Claude Code не загружает его до тех пор, пока вы не установите его самостоятельно. Запустите команду из строки руководства в вашей оболочке, затем перезагрузитесь:

666 

667```shell theme={null}

668claude plugin install <name>@<marketplace> --scope project

669```

670 

671После запуска `/reload-plugins` в вашем сеансе запись на вкладке **Errors** исчезает и плагин указан в **Installed**.

672 

673Если ваша организация предварительно устанавливает плагины для вас, она делает это через управляемые параметры вместо этого. См. [Предварительная установка и требование плагинов](/docs/ru/plugins/org#pre-install-and-require-plugins).

674 

675<h3 id="failed-to-load-hooks-from-and-hooks-that-dont-fire">

676 `Failed to load hooks from <path>` и hooks, которые не срабатывают

677</h3>

678 

679Hooks плагина не запускаются. Либо вкладка **Errors** показывает ошибку загрузки для них, hooks загружаются и вы видите уведомления `<Event> hook error` в стенограмме, либо hook загружается без ошибки и никогда не срабатывает.

680 

681<h4 id="hooks-fail-to-load">

682 Hooks не загружаются

683</h4>

684 

685Вкладка **Errors** показывает одно из этих сообщений:

686 

687* **`Failed to load hooks from <path>: <reason>`**: `hooks/hooks.json` не является действительным JSON или не проходит схему hooks. Причина называет ошибку анализа или проверки. Исправьте файл. Чтобы поймать проблему синтаксиса JSON в `hooks/hooks.json` перед публикацией плагина, запустите `claude plugin validate <plugin-directory>` в вашей оболочке

688* **`hooks path not found: <path>`**: поле `hooks` манифеста называет файл, который не существует по этому пути относительно корня плагина. Исправьте путь или добавьте файл

689 

690<h4 id="hook-error-notices-in-the-transcript">

691 Уведомления `hook error` в стенограмме

692</h4>

693 

694Уведомление формы `... hook error: Failed with non-blocking status code: <stderr>` означает, что hook запустился и его команда не удалась. Например, `Stop hook error: Failed with non-blocking status code: /bin/sh: node: command not found` означает, что оболочка, которую Claude Code создал, не смогла найти `node`. Установите его или убедитесь, что он находится в `PATH` терминала, из которого вы запускаете `claude`.

695 

696Для любой другой ошибки запустите команду hook самостоятельно из каталога плагина, чтобы увидеть полный вывод, или захватите полный stderr с помощью [отладочного логирования](/docs/ru/hooks#debug-hooks).

697 

698<h4 id="hook-loads-but-never-fires">

699 Hook загружается, но никогда не срабатывает

700</h4>

701 

702Если hook загружается без ошибки, но никогда не срабатывает, проверьте его определение, а затем посмотрите, как он запускается:

703 

704<Steps>

705 <Step title="Проверьте имя события">

706 Имена событий чувствительны к регистру, поэтому подтвердите, что ваше совпадает точно, например `PostToolUse`.

707 </Step>

708 

709 <Step title="Проверьте matcher">

710 Подтвердите, что `matcher` hook совпадает с именем инструмента.

711 </Step>

712 

713 <Step title="Запустите событие специально">

714 Для hook `PostToolUse` попросите Claude отредактировать файл.

715 </Step>

716 

717 <Step title="Прочитайте отладочный журнал">

718 Откройте [отладочный журнал](/docs/ru/hooks#debug-hooks), который записывает, какие hooks совпадали. Hook, который запустился, появляется там с его кодом выхода.

719 </Step>

720</Steps>

721 

722<h3 id="invalid-mcp-server-config-for-and-mcp-servers-that-dont-start">

723 `Invalid MCP server config for "<server>"` и MCP серверы, которые не запускаются

724</h3>

725 

726Плагин содержит MCP сервер, и вкладка **Errors** показывает `Invalid MCP server config for "<server>": <error>`, или сервер указан, но `/mcp` никогда не показывает его подключённым.

727 

728<h4 id="invalid-mcp-server-config-for-server-error">

729 `Invalid MCP server config for "<server>": <error>`

730</h4>

731 

732Конфигурация сервера проходит проверку схемы, но Claude Code не может разрешить её для этого сеанса. Текст после двоеточия называет причину и решает исправление:

733 

734* **`Missing environment variables: <names>`**: установите эти переменные в оболочке, из которой вы запускаете Claude Code, затем запустите новый сеанс

735* **`URL is unset or invalid`**: опция `${user_config.*}`, которую использует URL, не установлена. Запустите `/plugin configure <plugin>`, чтобы установить её

736* **`has an invalid MCP url`** или **`headersHelper for MCP server '<server>' references ${user_config.*}`**: конфигурация самого плагина виновата. Исправьте `url` или `headersHelper` в конфигурации MCP вашего плагина или сообщите об этом автору плагина, если плагин не ваш. Случай `headersHelper` имеет свою собственную запись в разделе [команда плагина ссылается на user\_config](/docs/ru/errors#plugin-command-references-user-config)

737 

738<h4 id="server-is-configured-but-never-connects">

739 Сервер настроен, но никогда не подключается

740</h4>

741 

742Запустите `/mcp`, чтобы увидеть статус сервера. Когда сервер здоров, `/mcp` перечисляет его как подключённый.

743 

744Чтобы прочитать ошибку, которую сервер вывел при запуске, запустите `claude --debug` и откройте журнал в `~/.claude/debug/<session-id>.txt`. Флаг `--debug` не выводит на терминал.

745 

746Запись сервера в `.mcp.json`, которая не проходит схему, не появляется на вкладке **Errors**. Claude Code удаляет этот сервер и записывает `Invalid MCP server config for <server> in <path>` только в этот отладочный журнал. Чтобы найти запись без загрузки плагина, запустите `claude plugin validate` в вашей оболочке в каталоге плагина, который сообщает об этом как об ошибке.

747 

748До v2.1.281 `claude plugin validate` не проверял `.mcp.json`.

749 

750<h4 id="server-works-with-plugin-dir-but-fails-after-install">

751 Сервер работает с `--plugin-dir`, но не работает после установки

752</h4>

753 

754Вы автор плагина, и сервер запускается, когда вы загружаете плагин из его исходного каталога с `--plugin-dir`, но не работает после установки плагина.

755 

756Claude Code копирует установленный плагин в его кэш, поэтому путь, который работает только из исходного каталога, ломается. Напишите пути внутри плагина с помощью `${CLAUDE_PLUGIN_ROOT}`.

757 

758Для путей, которые достигают вне каталога плагина, см. [Файлы, на которые ссылается плагин вне его каталога, не найдены](#files-the-plugin-references-outside-its-directory-arent-found).

759 

760<h3 id="language-server-doesnt-start">

761 Языковой сервер не запускается, использует слишком много памяти или сообщает неправильные диагностики

762</h3>

763 

764Вы установили [плагин интеллекта кода](/docs/ru/plugins/code-intelligence) и Claude не видит диагностики, или языковой сервер использует слишком много памяти или сообщает об ошибках, которые не являются реальными.

765 

766<h4 id="language-server-doesn’t-start">

767 Языковой сервер не запускается

768</h4>

769 

770Плагин подключается к двоичному файлу языкового сервера, который вы устанавливаете отдельно, и Claude Code создаёт его по имени команды из вашего `PATH`.

771 

772Вкладка **Errors** в `/plugin` показывает ошибку с её причиной, такой как `Executable not found in $PATH: "<binary>"`, и `claude --debug` логирует её как `LSP server <name> failed to start: <reason>`.

773 

774Установите двоичный файл и подтвердите, что он находится в `PATH` терминала, из которого вы запускаете `claude`, например, с помощью `which typescript-language-server`. Затем запустите новый сеанс.

775 

776<h4 id="language-server-uses-too-much-memory">

777 Языковой сервер использует слишком много памяти

778</h4>

779 

780Языковые серверы, такие как `rust-analyzer` и `pyright`, индексируют весь проект. Отключите плагин с помощью `/plugin disable <plugin>` в сеансе и вместо этого полагайтесь на встроенные инструменты поиска Claude.

781 

782<h4 id="false-positive-diagnostics-in-a-monorepo">

783 Ложные положительные диагностики в монорепо

784</h4>

785 

786Языковой сервер, который не настроен для рабочей области, может сообщать о неразрешённых импортах для внутренних пакетов. На стороне Claude Code нечего исправлять, и диагностики не мешают Claude редактировать код.

787 

788<h2 id="build-a-plugin">

789 Создать плагин

790</h2>

791 

792Вы разрабатываете плагин и загружаете его с помощью `--plugin-dir` или устанавливаете из локального маркетплейса. Эти записи охватывают ошибки, которые вы получаете при разработке плагина. Для проверок, которые запускаются после каждого изменения, см. [Тестирование и отладка](/docs/ru/plugins/create#test-and-debug).

793 

794Две ошибки, которые также достигают пользователей плагина, имеют свои записи в разделе [Плагин установлен, но не работает](#plugin-installed-but-not-working):

795 

796* **Hook, который не срабатывает**: см. [hooks, которые не срабатывают](#failed-to-load-hooks-from-and-hooks-that-dont-fire)

797* **MCP сервер, который не запускается**: см. [MCP серверы, которые не запускаются](#invalid-mcp-server-config-for-and-mcp-servers-that-dont-start)

798 

799<h3 id="commands-path-not-found">

800 `commands path not found: <path>`

801</h3>

802 

803Вкладка **Errors** показывает `commands path not found: <absolute path>` с руководством `Check that the path in your manifest or marketplace config is correct`. То же сообщение появляется для `skills`, `agents` и `hooks`.

804 

805Claude Code разрешил путь из вашего `plugin.json` или записи маркетплейса относительно корня плагина и ничего там не нашёл. Путь в сообщении — это абсолютный путь, который он проверил, поэтому сравните его с тем, что находится на диске. Исправьте путь или создайте каталог, затем запустите `/reload-plugins`.

806 

807Пути в манифесте относительны корню плагина и начинаются с `./`. Путь, который разрешается вне корня плагина, сообщается как `<component> path escapes plugin directory` вместо этого и удаляется.

808 

809<h3 id="plugin-dir-loads-a-plugin-with-no-components">

810 `--plugin-dir` в корне маркетплейса не загружает плагины в `plugins/`

811</h3>

812 

813Вы запустили `claude --plugin-dir <path>` и не видите ошибку, но skills, агенты и hooks плагина отсутствуют.

814 

815`--plugin-dir` принимает каталог корня плагина, тот, который содержит `.claude-plugin/plugin.json` и каталоги компонентов, такие как `skills/`. Если вы вместо этого указываете его на корень маркетплейса, Claude Code не читает `marketplace.json`, поэтому плагин в `plugins/` не загружается, и вы не видите ошибку. До v2.1.281 Claude Code загружал корень маркетплейса как один пустой плагин с именем этого каталога. Укажите флаг на сам каталог плагина:

816 

817```shell theme={null}

818claude --plugin-dir ./my-marketplace/plugins/my-plugin

819```

820 

821Затем откройте **Installed** в `/plugin`, где панель деталей плагина перечисляет его компоненты.

822 

823<h3 id="files-the-plugin-references-outside-its-directory-arent-found">

824 Файлы, на которые ссылается плагин вне его каталога, не найдены

825</h3>

826 

827Плагин работает из его исходного каталога с `--plugin-dir`, но не работает после установки, с ошибками о пути, такой как `../shared-utils`.

828 

829Claude Code копирует установленный плагин в его кэш и загружает его оттуда, поэтому путь, который достигает вне собственного каталога плагина, указывает на ничто в кэше. Переместите общие файлы внутри каталога плагина или ссылайтесь на них через символическую ссылку внутри него. Для того, где находится кэш и как разрешаются пути, см. [Найдите плагины на диске](/docs/ru/plugins/loading#find-plugins-on-disk).

830 

831<h3 id="claude-plugin-root-shows-forward-slashes-on-windows">

832 `${CLAUDE_PLUGIN_ROOT}` показывает прямые косые черты на Windows

833</h3>

834 

835На Windows hook плагина получает `${CLAUDE_PLUGIN_ROOT}` как `C:/Users/you/...` вместо `C:\Users\you\...`, и скрипт, который ожидал обратных косых черт, ломается.

836 

837Claude Code запускает hooks в форме оболочки через Git Bash на Windows и подставляет корень плагина в форме Win32 с прямыми косыми чертами специально. Встроенные функции Bash, инструменты MSYS и собственные двоичные файлы Windows все принимают эту форму.

838 

839Если вашему скрипту нужны обратные косые черты, переключитесь на одну из форм, которые сохраняют собственные пути, описанные в разделе [exec форма и shell форма](/docs/ru/hooks#exec-form-and-shell-form):

840 

841* Hook в exec-форме, который создаёт процесс непосредственно с массивом `args`

842* Hook с `"shell": "powershell"`

843 

844<h3 id="plugin-loads-but-its-skills-are-missing">

845 Плагин загружается, но его skills отсутствуют

846</h3>

847 

848Ваш плагин указан в **Installed** без ошибок, но его skills не предлагаются, когда вы вводите `/`.

849 

850Skills загружаются из `skills/` в корне плагина и команды из `commands/` в корне плагина. Только `plugin.json` принадлежит внутри `.claude-plugin/`, и каталог `skills/` внутри `.claude-plugin/` не сканируется. Переместите каталоги в корень плагина и запустите `/reload-plugins`. После этого панель деталей плагина в `/plugin` перечисляет skills, и ввод `/` предлагает их.

851 

852Каждый skill — это каталог, содержащий `SKILL.md`. Запись `skills` в манифесте, которая указывает на файл `SKILL.md` вместо его каталога, сообщается как `path is a file; skills entries must be directories containing SKILL.md`.

853 

854<h3 id="skill-loads-but-claude-never-invokes-the-skill">

855 Skill загружается, но Claude никогда не вызывает skill

856</h3>

857 

858Skill вашего плагина запускается, когда вы вводите его команду `/<plugin>:<skill>`, но Claude никогда не вызывает его в ответ на простой запрос.

859 

860Проверьте эти причины по порядку:

861 

862* **Skill устанавливает `disable-model-invocation: true`**: с этим полем установленным только вы можете вызвать skill. Шаблонный skill в [Создайте свой первый плагин](/docs/ru/plugins/create#create-your-first-plugin) устанавливает его. Удалите строку из skill, который вы хотите, чтобы Claude вызвал самостоятельно. [Контролируйте, кто вызывает skill](/docs/ru/skills#control-who-invokes-a-skill) охватывает поле

863* **Описание не совпадает с тем, как люди спрашивают**: пройдите проверки в [Skill не срабатывает](/docs/ru/skills#skill-not-triggering)

864* **Описание обрезано**: когда установлено много skills, Claude Code сокращает описания, чтобы они поместились в бюджет символов списка, что может удалить ключевые слова, которые Claude нужны для сопоставления запроса. См. [Описания skills обрезаны](/docs/ru/skills#skill-descriptions-are-cut-short)

865 

866Чтобы измерить, как часто skill срабатывает на реалистичных подсказках, а не проверять по одной, напишите случай eval с [оценщиком `tool_used: Skill`](/docs/ru/plugin-evals#create-your-first-eval-suite) и запустите его с `claude plugin eval` после каждого изменения описания.

867 

868<h3 id="is-not-a-plugin-or-skill-folder">

869 `<directory> is not a plugin or skill folder` из `claude plugin eval init`

870</h3>

871 

872Вы запустили `claude plugin eval init` из каталога, который не является корнем плагина, такой как ваш домашний каталог или корень репозитория, который хранит плагин в подкаталоге. `init` пишет набор в рабочий каталог, поэтому он останавливается вместо создания каталога `evals/`, который плагин никогда не увидит.

873 

874Перейдите в корень плагина, каталог, который содержит `.claude-plugin/plugin.json` или `SKILL.md` skill, и запустите команду снова. Чтобы создать набор где-то ещё специально, передайте `--eval-dir`. См. [Тестируйте плагины с помощью evals](/docs/ru/plugin-evals).

875 

876<h3 id="the-userconfig-dialog-never-appears">

877 Диалог `userConfig` никогда не появляется

878</h3>

879 

880Ваш плагин объявляет опции `userConfig`, но диалог конфигурации не появляется при его установке.

881 

882Интерактивная установка показывает диалог, и команда оболочки принимает значения как флаги вместо этого:

883 

884* **`/plugin install` в сеансе или вкладка Discover в `/plugin`**: диалог является частью этой интерактивной установки

885* **`claude plugin install` в вашей оболочке**: никогда не запрашивает значения `userConfig`. Он сохраняет любые значения `--config KEY=VALUE`, которые вы передаёте, и когда опции остаются неустановленными, он выводит `N userConfig options not yet set — run /plugin configure <plugin>@<marketplace> in Claude Code, or pass --config KEY=VALUE.` Когда любая из неустановленных опций требуется, `(M required)` следует за `not yet set`.

886 

887Если вы установили из оболочки, передайте значения с `--config`, один флаг на опцию:

888 

889```shell theme={null}

890claude plugin install my-plugin@my-marketplace --config api_url=https://example.com

891```

892 

893Когда каждая опция установлена, вывод установки не содержит строку `not yet set`. Чтобы открыть диалог позже вместо этого, запустите `/plugin configure my-plugin@my-marketplace` в сеансе.

894 

895Если вы передаёте ключ `--config`, который манифест не объявляет, плагин всё ещё устанавливается, и команда выводит `⚠ Installed, but --config not applied: --config key "<key>" isn't declared in this plugin's userConfig.` за которым следуют ключи, которые плагин объявляет.

896 

897<h3 id="claude-plugin-validate-reports-errors">

898 `claude plugin validate` сообщает об ошибках

899</h3>

900 

901Вы запустили `claude plugin validate <path>` или `/plugin validate <path>` в сеансе, и он вывел `Found N errors` и `Validation failed`, затем вышел с кодом 1.

902 

903Валидатор читает манифест по пути, который вы даёте ему: `.claude-plugin/plugin.json` для каталога плагина или `.claude-plugin/marketplace.json` для каталога маркетплейса. Для маркетплейса он предваряет проблемы в собственном манифесте записи с индексом записи, как `plugins[1] plugin.json → json: ...`.

904 

905Таблица охватывает сообщения, которые останавливают валидацию, и два предупреждения, `No frontmatter block found` и `Unknown field '<key>'`, которые останавливают её только при передаче `--strict`. Другие предупреждения, такие как отсутствующее описание, не указаны.

906 

907| Сообщение | Причина | Исправление |

908| :------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------ |

909| `File not found: <path>` | Путь не имеет манифеста или не существует. | Запустите команду против корня плагина или маркетплейса, каталога, который содержит `.claude-plugin/`. |

910| `No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json` | Каталог не имеет манифеста `.claude-plugin/`. | Создайте манифест или укажите на правильный каталог. |

911| `Invalid JSON syntax: <parse error>` | Манифест или `hooks/hooks.json` не является действительным JSON. | Исправьте JSON. До тех пор, пока вы не исправите `hooks/hooks.json`, сеанс загружает плагин без hooks в этом файле. |

912| `Path not found: <path>. The runtime loader will report this as a load failure.` | Путь компонента в манифесте не существует. | Исправьте путь или создайте каталог. |

913| `Path contains ".." which could be a path traversal attempt: <path>` | Путь компонента выходит за пределы каталога плагина. | Используйте пути внутри корня плагина. |

914| `Path is a file; skills entries must be directories containing SKILL.md` | Запись `skills` указывает на `SKILL.md` вместо его каталога. | Укажите на родительский каталог или `.` для `SKILL.md` на уровне корня. |

915| `No frontmatter block found` или `YAML frontmatter failed to parse: <error>` | Файл skill, агента или команды имеет отсутствующий или недействительный YAML frontmatter. | Добавьте или исправьте frontmatter между разделителями `---`. Сообщается при валидации каталога плагина. |

916| `Unknown field '<key>'` | Манифест имеет поле, которое схема не определяет. | Удалите его или используйте имя, которое предлагает сообщение. Claude Code игнорирует неизвестные поля во время загрузки. |

917 

918Запустите команду снова после каждого исправления до тех пор, пока она не выведет никаких ошибок.

919 

920Поля `plugin.json` находятся в [справочнике манифеста](/docs/ru/plugins/manifest-reference), и сообщения на уровне маркетплейса находятся в разделе [Ошибки валидации маркетплейса](#marketplace-validation-errors).

921 

922<h3 id="plugin-has-conflicting-manifests">

923 `Plugin <name> has conflicting manifests`

924</h3>

925 

926Плагин не загружается с `Plugin <name> has conflicting manifests: both plugin.json and marketplace entry specify components.`

927 

928Плагин имеет свой собственный `plugin.json`, и его запись маркетплейса устанавливает `strict: false`, одновременно объявляя любой из `commands`, `agents`, `skills`, `hooks`, `outputStyles` или `themes`. Удалите эти поля из записи или установите `strict: true` в записи, чтобы Claude Code добавил их к `plugin.json`. См. [Strict режим](/docs/ru/plugins/marketplace-reference#strict-mode).

929 

930<h3 id="warning-no-commands-found-in-plugin-custom-directory">

931 `Warning: No commands found in plugin <name> custom directory`

932</h3>

933 

934Когда плагин загружается, журнал `claude --debug` в `~/.claude/debug/<session-id>.txt` записывает `Warning: No commands found in plugin <name> custom directory: <path>. Expected .md files or SKILL.md in subdirectories.` Ничего не появляется в сеансе или на вкладке **Errors**.

935 

936Путь `commands` в манифесте существует, но не содержит файлов `.md` и не содержит `SKILL.md` в подкаталоге. Добавьте файлы команд или удалите путь из манифеста.

937 

938<h2 id="host-a-marketplace">

939 Размещение маркетплейса

940</h2>

941 

942Вы публикуете маркетплейс и пользователь сообщает об ошибке, или ваша собственная валидация не удаётся. Эти записи предназначены для владельца маркетплейса.

943 

944<h3 id="plugins-with-relative-paths-fail-in-url-based-marketplaces">

945 Плагины с относительными путями не работают в маркетплейсах на основе URL

946</h3>

947 

948Пользователи добавили ваш маркетплейс с URL `https://example.com/marketplace.json`. Установки плагинов, чей `source` — это относительный путь, такой как `./plugins/my-plugin`, не работают с `its marketplace entry path does not stay inside the marketplace directory`. Уже установленные плагины не загружаются с `Plugin source path refused`. Оба сообщения имеют [запись справочника ошибок](/docs/ru/errors#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory).

949 

950Когда пользователь добавляет маркетплейс на основе URL, Claude Code загружает только сам файл `marketplace.json`. Он не загружает файлы плагинов по относительному пути с этого сервера, поэтому относительный путь в записи указывает на каталог, который никогда не был загружен. Дайте каждой записи источник, который Claude Code может получить самостоятельно, такой как репозиторий GitHub:

951 

952```json theme={null}

953{ "name": "my-plugin", "source": { "source": "github", "repo": "owner/repo" } }

954```

955 

956Альтернативно, разместите маркетплейс в репозитории git и скажите пользователям добавить его с URL репозитория. Для источника git Claude Code клонирует весь репозиторий, поэтому относительные пути разрешаются. Типы источников находятся в [справочнике маркетплейса](/docs/ru/plugins/marketplace-reference).

957 

958<h3 id="marketplace-validation-errors">

959 Ошибки валидации маркетплейса

960</h3>

961 

962Вы запустили `claude plugin validate .` из каталога вашего маркетплейса и он сообщил об ошибках или предупреждениях в самом файле маркетплейса.

963 

964`claude plugin validate` также валидирует каждую запись, чей `source` — это локальный путь, и предупреждает, когда `version` записи не совпадает с собственным манифестом плагина.

965 

966Таблица перечисляет сообщения на уровне маркетплейса. Сообщения на уровне записи — это сообщения плагина в разделе [`claude plugin validate` сообщает об ошибках](#claude-plugin-validate-reports-errors), предваренные `plugins[N] plugin.json →`.

967 

968| Сообщение | Вид | Исправление |

969| :------------------------------------------------------------------------------------------------------------------------- | :------------- | :------------------------------------------------------------------------------------------------------------------------------------------------ |

970| `Duplicate plugin name "<name>" found in marketplace` | Ошибка | Дайте каждому плагину уникальное имя `name`. |

971| `Path contains "..": <path>` в `plugins[N].source` | Ошибка | Используйте пути относительно корня маркетплейса без сегментов `..`. |

972| `Marketplace name cannot contain control or bidirectional-formatting characters` | Ошибка | Удалите символ из имени, такой как escape или новая строка. |

973| `Plugin name cannot contain control or bidirectional-formatting characters` | Ошибка | Удалите символ из имени плагина `name`. |

974| `Marketplace has no plugins defined` | Предупреждение | Добавьте по крайней мере одну запись в `plugins`. |

975| `No marketplace description provided` | Предупреждение | Добавьте описание на уровне верхнего уровня `description`. |

976| `Plugin name "<name>" is not kebab-case` в `plugins[N] plugin.json → name` | Предупреждение | Переименуйте в строчные буквы, цифры и дефисы. Claude Code принимает другие формы, но синхронизация маркетплейса claude.ai их отклоняет. |

977| `Entry declares version "<a>" but <path>/plugin.json says "<b>"` | Предупреждение | Обновите запись, чтобы совпадать с `plugin.json`, который является авторитетным во время установки. |

978| `Marketplace name "<name>" is reserved in Claude Desktop` | Предупреждение | Переименуйте маркетплейс. Синхронизация управляемого маркетплейса Claude Desktop отклоняет `org`, `org-provisioned` и `unknown` в любом регистре. |

979| `Marketplace name "<name>" is not accepted by Claude Desktop` или `Plugin name "<name>" is not accepted by Claude Desktop` | Предупреждение | Переименуйте максимум на 128 символов букв, цифр, `.`, `_` и `-`, начиная с буквы или цифры. |

980 

981До v2.1.247 имя маркетплейса, содержащее управляющие или двунаправленные символы форматирования, сообщалось только как `Marketplace name impersonates an official Anthropic/Claude marketplace`.

982 

983<h2 id="blocked-by-your-organization">

984 Заблокировано вашей организацией

985</h2>

986 

987Ваша организация развёртывает управляемые параметры, которые ограничивают плагины, и команда была отклонена с сообщением политики. Эти записи называют параметр, стоящий за каждым отказом, чтобы вы знали, что попросить у администратора. Для стороны администратора см. [Управляйте плагинами для вашей организации](/docs/ru/plugins/org).

988 

989<h3 id="marketplace-source-is-blocked-by-enterprise-policy">

990 `Marketplace source '<source>' is blocked by enterprise policy`

991</h3>

992 

993Вы запустили `/plugin marketplace add`, `update` или установку, и Claude Code отказал с этой строкой. Для источника GitHub или git хост следует за источником в скобках, как в `'github:owner/repo' (github.com)`.

994 

995Ваш администратор установил `blockedMarketplaces` или `strictKnownMarketplaces` в управляемых параметрах, и этот источник не разрешён. Попросите вашего администратора разрешить источник или добавить один из разрешённых источников, которые перечисляет сообщение.

996 

997Сопоставьте остальную часть сообщения, чтобы увидеть, какой вид политики заблокировал источник:

998 

999* **`Allowed sources: <list>`**: блокировка поступает из списка разрешений `strictKnownMarketplaces` вместо списка блокировок `blockedMarketplaces`

1000* **`No external marketplaces are allowed.`**: список разрешений `strictKnownMarketplaces` пуст

1001* **`Tip:` о том, что сокращение предполагает github.com**: список разрешений разрешает хост git по имени хоста, и сокращение `owner/repo`, которое вы передали, указывает на github.com. Если репозиторий находится на вашем внутреннем хосте, добавьте его снова с его полным URL, такой как `git@your-git-host.com:owner/repo.git`

1002 

1003Маркетплейс, который вы добавили до того, как политика стала более ограничивающей, также перестаёт обновляться, потому что политика применяется при каждом обновлении.

1004 

1005<h3 id="marketplace-is-not-in-the-allowed-marketplace-list">

1006 `Marketplace "<name>" is not in the allowed marketplace list`

1007</h3>

1008 

1009Вкладка **Errors** показывает эту строку или `Marketplace "<name>" is blocked by enterprise policy` для маркетплейса, который у вас уже есть зарегистрирован.

1010 

1011Те же управляемые параметры, которые блокируют [источник маркетплейса](#marketplace-source-is-blocked-by-enterprise-policy), применяются во время загрузки. `strictKnownMarketplaces` не включает этот маркетплейс, или `blockedMarketplaces` его называет, поэтому Claude Code перестаёт его загружать и его плагины. Для варианта списка разрешений строка руководства показывает разрешённые источники или `Contact your administrator to configure allowed marketplace sources`. Для варианта списка блокировок она гласит `This marketplace source is explicitly blocked by your administrator`.

1012 

1013<h3 id="plugin-is-blocked-by-your-organizations-policy-and-cannot-be-installed">

1014 `Plugin "<name>" is blocked by your organization's policy and cannot be installed`

1015</h3>

1016 

1017Установка была отклонена с этой строкой, включение с той же строкой, заканчивающейся `cannot be enabled`, или установка или обновление с одной, называющей причину: `Plugin "<name>" is from marketplace "<marketplace>", which is blocked by your organization's policy` или `Plugin "<name>" depends on "<dep>", which is blocked by your organization's policy`.

1018 

1019Управляемые параметры блокируют этот плагин, его маркетплейс или зависимость, которая ему нужна. Попросите вашего администратора, какая запись применяется. Заблокированная зависимость означает, что плагин не может установиться до тех пор, пока маркетплейс зависимости не будет разрешён.

1020 

1021<h3 id="plugin-dir-is-disabled-by-your-organizations-managed-settings-disables">

1022 `--plugin-dir is disabled by your organization's managed settings (disableSideloadFlags)`

1023</h3>

1024 

1025Вы запустили `claude` с `--plugin-dir`, `--plugin-url`, `--agents` или `--mcp-config`. Claude Code вышел с этим сообщением и `Plugins, custom agents, and MCP servers can only be loaded from sources your administrator has approved.`

1026 

1027Ваш администратор установил `disableSideloadFlags` в управляемых параметрах, что отключает флаги, которые загружают плагины, агентов и серверы из произвольных путей. Загрузите плагин из одобренного маркетплейса вместо этого или попросите вашего администратора удалить параметр.

1028 

1029Связанное сообщение на вкладке **Errors** в `/plugin` — это `--plugin-dir copy of "<name>" ignored: plugin is locked by managed settings`. Управляемые параметры включают или отключают этот плагин по имени, и Claude Code игнорирует вашу копию `--plugin-dir` его, чтобы флаг не мог переопределить политику.

1030 

1031<h3 id="plugins-from-claude-skills-are-blocked-by-your-organizations-managed-s">

1032 `Plugins from ~/.claude/skills/ are blocked by your organization's managed settings`

1033</h3>

1034 

1035Вы запустили `claude plugin init` или `claude plugin enable`, и это остановилось с этой строкой. Сообщение называет `strictKnownMarketplaces or blockedMarketplaces` и просит вашего администратора добавить `{"source":"skills-dir"}` в `strictKnownMarketplaces` или удалить его из `blockedMarketplaces`.

1036 

1037Источник `skills-dir` обозначает плагины, которые Claude Code загружает из вашего каталога `~/.claude/skills/`. Попросите вашего администратора сделать изменение, которое называет сообщение.

1038 

1039<h3 id="command-sourced-plugins-are-disabled-by-your-organizations-managed-set">

1040 `Command-sourced plugins are disabled by your organization's managed settings`

1041</h3>

1042 

1043Вы установили или обновили плагин с источником `command`, и это остановилось с этой строкой и `The plugin was not installed or updated and its command was not run.`

1044 

1045Ваш администратор установил `disableCommandPluginSources`, поэтому Claude Code отказывает запуск команды, объявленной маркетплейсом, которая производит плагин. Установка `allowManagedHooksOnly` одна имеет тот же эффект, когда `disableCommandPluginSources` не установлена. Попросите вашего администратора, может ли плагин быть опубликован из типа источника, который разрешает политика.

1046 

1047<h3 id="marketplace-is-seed-managed">

1048 `Marketplace '<name>' is seed-managed`

1049</h3>

1050 

1051Вы запустили `claude plugin marketplace update <name>`, и это не удалось с `Marketplace '<name>' is seed-managed (<dir>)` и подсказкой попросить вашего администратора.

1052 

1053Оператор предварительно заполнил этот маркетплейс через `CLAUDE_CODE_PLUGIN_SEED_DIR`, и Claude Code рассматривает управляемый семенем маркетплейс как доступный только для чтения. Массовое `marketplace update` пропускает его и обновляет остальные.

1054 

1055Чтобы изменить содержимое маркетплейса, попросите человека, который поддерживает образ семени, обновить его. Для процедуры см. [Seed контейнеры и CI](/docs/ru/plugins/org#seed-containers-and-ci).

1056 

1057<h2 id="next-steps">

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

1059</h2>

1060 

1061* [Справочник по загрузке плагинов](/docs/ru/plugins/loading): почему области видимости, кэш и приоритет ведут себя так, как они ведут себя

1062* [Справочник команд плагинов](/docs/ru/plugins/cli-reference): флаги, значения по умолчанию, вывод и коды выхода для команд `claude plugin`

1063* [Установка и управление плагинами](/docs/ru/plugins/install): шаги установки с начала

1064* [Управляйте плагинами для вашей организации](/docs/ru/plugins/org#troubleshoot-policy): устранение неполадок политики для администраторов

Details

135 Включение или отключение плагина135 Включение или отключение плагина

136</h3>136</h3>

137 137 

138Когда вы включаете или отключаете [plugin](/docs/ru/plugins), стоимость изменения зависит от того, какие типы компонентов предоставляет плагин. Случаи ниже охватывают каждый тип компонента, когда Claude Code применяет изменение и что происходит, когда вы отключаете плагин снова в том же сеансе.138Когда вы включаете или отключаете [plugin](/docs/ru/plugins/overview), стоимость изменения зависит от того, какие типы компонентов предоставляет плагин. Случаи ниже охватывают каждый тип компонента, когда Claude Code применяет изменение и что происходит, когда вы отключаете плагин снова в том же сеансе.

139 139 

140<h4 id="plugin-components-that-keep-the-cache">140<h4 id="plugin-components-that-keep-the-cache">

141 Компоненты плагина, которые сохраняют кэш141 Компоненты плагина, которые сохраняют кэш


147 Плагины, которые предоставляют MCP серверы147 Плагины, которые предоставляют MCP серверы

148</h4>148</h4>

149 149 

150Когда вы включаете или отключаете плагин, который предоставляет [MCP servers](/docs/ru/plugins-reference#mcp-servers), Claude Code следует тем же правилам, что и при [подключении или отключении MCP server](#connecting-or-disconnecting-an-mcp-server):150Когда вы включаете или отключаете плагин, который предоставляет [MCP servers](/docs/ru/plugins/components#mcp-servers), Claude Code следует тем же правилам, что и при [подключении или отключении MCP server](#connecting-or-disconnecting-an-mcp-server):

151 151 

152* Если Claude Code откладывает инструменты сервера, он сохраняет кэш.152* Если Claude Code откладывает инструменты сервера, он сохраняет кэш.

153* Если Claude Code загружает их в префикс, следующий запрос повторно читает весь разговор.153* Если Claude Code загружает их в префикс, следующий запрос повторно читает весь разговор.


156 Плагины анализа кода156 Плагины анализа кода

157</h4>157</h4>

158 158 

159Когда вы включаете [code intelligence plugin](/docs/ru/discover-plugins#code-intelligence), Claude получает [LSP tool](/docs/ru/tools-reference#lsp-tool-behavior).159Когда вы включаете [code intelligence plugin](/docs/ru/plugins/code-intelligence), Claude получает [LSP tool](/docs/ru/tools-reference#lsp-tool-behavior).

160 160 

161<h4 id="when-plugin-changes-apply">161<h4 id="when-plugin-changes-apply">

162 Когда применяются изменения плагинов162 Когда применяются изменения плагинов

163</h4>163</h4>

164 164 

165Изменение, которое вы вносите в меню `/plugin`, проходит через [`/reload-plugins`](/docs/ru/discover-plugins#apply-plugin-changes-without-restarting), которое Claude Code запускает для вас при закрытии меню. Вы платите стоимость, будь то добавленные объявления или полное повторное чтение, при первом ходе после применения изменения. Claude Code также может применить изменение самостоятельно:165Изменение, которое вы вносите в меню `/plugin`, проходит через [`/reload-plugins`](/docs/ru/plugins/cli-reference#reload-plugins), которое Claude Code запускает для вас при закрытии меню. Вы платите стоимость, будь то добавленные объявления или полное повторное чтение, при первом ходе после применения изменения. Claude Code также может применить изменение самостоятельно:

166 166 

167* Для плагина с источником `command` Claude Code [может перезагрузить плагин самостоятельно](/docs/ru/plugin-marketplaces#when-claude-code-re-runs-the-command).167* Для плагина с источником `command` Claude Code [может перезагрузить плагин самостоятельно](/docs/ru/plugins/loading#when-a-command-source-re-runs).

168* Когда вы [устанавливаете плагин из интерфейса `/plugin`](/docs/ru/discover-plugins#install-plugins), Claude Code может активировать его во время установки. Сводка установки сообщит вам, сделал ли он это.168* Когда вы [устанавливаете плагин из интерфейса `/plugin`](/docs/ru/plugins/install#install-a-plugin), Claude Code может активировать его во время установки. Сводка установки сообщит вам, сделал ли он это.

169* Когда вы [перемещаете сеанс с помощью `/cd`](/docs/ru/permissions#move-the-session-to-another-directory) на v2.1.246 или позже, Claude Code применяет плагины, которые включают параметры нового каталога, как часть перемещения, без полного предупреждения повторного чтения, которое удерживает `/reload-plugins`.169* Когда вы [перемещаете сеанс с помощью `/cd`](/docs/ru/permissions#move-the-session-to-another-directory) на v2.1.246 или позже, Claude Code применяет плагины, которые включают параметры нового каталога, как часть перемещения, без полного предупреждения повторного чтения, которое удерживает `/reload-plugins`.

170* В интерактивных сеансах, когда вы добавляете или удаляете плагин в [folder of plugins](/docs/ru/plugins#test-your-plugins-locally), который вы передали с `--plugin-dir`, изменение применяется сразу же. Если применение его вызовет полное повторное чтение, Claude Code удерживает изменение и показывает уведомление для запуска `/reload-plugins`. Требует Claude Code v2.1.265 или позже.170* В интерактивных сеансах, когда вы добавляете или удаляете плагин в [folder of plugins](/docs/ru/plugins/create#load-a-directory-or-archive-for-one-session) который вы передали с `--plugin-dir`, изменение применяется сразу же. Если применение его вызовет полное повторное чтение, Claude Code удерживает изменение и показывает уведомление для запуска `/reload-plugins`. Требует Claude Code v2.1.265 или позже.

171 171 

172Когда `/reload-plugins` запускается и перезагрузка вызовет полное повторное чтение, Claude Code показывает предупреждение и не применяет перезагрузку. Запустите `/reload-plugins --force` для применения в любом случае.172Когда `/reload-plugins` запускается и перезагрузка вызовет полное повторное чтение, Claude Code показывает предупреждение и не применяет перезагрузку. Запустите `/reload-plugins --force` для применения в любом случае.

173 173 

174`/reload-plugins` также запускается в сеансах без интерактивного терминала, таких как настольное приложение, Agent SDK и [non-interactive mode](/docs/ru/headless) с `-p`, когда вы вводите его непосредственно в сеанс. Требует Claude Code v2.1.260 или позже.174`/reload-plugins` также запускается в сеансах без интерактивного терминала, таких как настольное приложение, Agent SDK и [non-interactive mode](/docs/ru/headless) с `-p`, когда вы вводите его непосредственно в сеанс. Требует Claude Code v2.1.260 или позже.

175 175 

176В этих сеансах перезагрузка применяет все, кроме изменений MCP сервера плагина, которые [вступают в силу в вашем следующем сеансе](/docs/ru/discover-plugins#apply-plugin-changes-without-restarting) и поэтому никогда не стоят полного повторного чтения в середине сеанса.176В этих сеансах перезагрузка применяет все, кроме изменений MCP сервера плагина, которые [вступают в силу в вашем следующем сеансе](/docs/ru/plugins/cli-reference#reload-plugins) и поэтому никогда не стоят полного повторного чтения в середине сеанса.

177 177 

178<h4 id="plugins-you-enable-and-then-disable-in-one-session">178<h4 id="plugins-you-enable-and-then-disable-in-one-session">

179 Плагины, которые вы включаете, а затем отключаете в одном сеансе179 Плагины, которые вы включаете, а затем отключаете в одном сеансе

Details

626 return base + (href.startsWith('/en/') ? '/' + locale + href.slice(3) : href);626 return base + (href.startsWith('/en/') ? '/' + locale + href.slice(3) : href);

627 };627 };

628 }, []);628 }, []);

629 const SAFE_HREF = /^(\/(?![\/\\\s])|#|https?:\/\/)/;

629 const linkify = s => {630 const linkify = s => {

630 const out = [];631 const out = [];

631 let last = 0;632 let last = 0;

632 const re = /\[([^\]]+)\]\(([^)]+)\)/g;633 const re = /\[([^\]]+)\]\(([^)]+)\)/g;

633 for (let m; m = re.exec(s); ) {634 for (let m; m = re.exec(s); ) {

634 if (m.index > last) out.push(s.slice(last, m.index));635 if (m.index > last) out.push(s.slice(last, m.index));

635 out.push(<a key={m.index} href={doc(m[2])}>{m[1]}</a>);636 out.push(SAFE_HREF.test(m[2]) ? <a key={m.index} href={doc(m[2])}>{m[1]}</a> : m[1]);

636 last = re.lastIndex;637 last = re.lastIndex;

637 }638 }

638 if (last < s.length) out.push(s.slice(last));639 if (last < s.length) out.push(s.slice(last));


776 </div>777 </div>

777 <div className="pl-label">{L.whyWorks}</div>778 <div className="pl-label">{L.whyWorks}</div>

778 <div className="pl-teaches">{linkify(p.teaches)}</div>779 <div className="pl-teaches">{linkify(p.teaches)}</div>

779 {p.nextHref && p.next && <div className="pl-next">780 {p.nextHref && p.next && SAFE_HREF.test(p.nextHref) && <div className="pl-next">

780 <span className="pl-next-label">{L.makeItStick}</span>781 <span className="pl-next-label">{L.makeItStick}</span>

781 <a href={doc(p.nextHref)}>{codeify(p.next)} →</a>782 <a href={doc(p.nextHref)}>{codeify(p.next)} →</a>

782 </div>}783 </div>}


1202 },1203 },

1203 "migrate-a-pattern-across": {1204 "migrate-a-pattern-across": {

1204 title: "Перенесите паттерн по всей кодовой базе",1205 title: "Перенесите паттерн по всей кодовой базе",

1205 teaches: "Опишите старый паттерн и новый. Попросить Claude сначала определить каждое место означает, что сайты вызовов перечислены в ответе, поэтому вы можете проверить, что ничего не пропущено. Для миграции по многим файлам запустите [/batch](/docs/ru/commands). Claude разбивает работу на единицы для вашего одобрения, затем фоновые подагенты делают изменения и открывают один pull request на единицу."1206 teaches: "Опишите старый паттерн и новый. Попросить Claude сначала определить каждое место означает, что сайты вызовов перечислены в ответе, поэтому вы можете проверить, что ничего не пропущено. Для миграции по многим файлам запустите [/batch](/docs/ru/commands). Claude разбивает работу на единицы для вашего одобрения, затем фоновые подагенты делают изменения."

1206 },1207 },

1207 "optimize-against-a-measurable": {1208 "optimize-against-a-measurable": {

1208 title: "Оптимизируйте против измеримой цели",1209 title: "Оптимизируйте против измеримой цели",

Details

252<Note>252<Note>

253 Доверенные устройства в настоящее время находятся в бета-версии. Функции и возможности могут развиваться по мере совершенствования опыта.253 Доверенные устройства в настоящее время находятся в бета-версии. Функции и возможности могут развиваться по мере совершенствования опыта.

254 254 

255 Доверенные устройства доступны на планах Team и Enterprise. Они отключены по умолчанию до тех пор, пока владелец не включит их.255 Доверенные устройства доступны на планах Pro, Max, Team и Enterprise и отключены по умолчанию. На планах Team и Enterprise владелец включает эту функцию для организации. На планах Pro и Max вы сами включаете **Require trusted devices** в своих параметрах на странице Cowork или Account.

256</Note>256</Note>

257 257 

258Доверенные устройства — это параметр на уровне организации, который требует от членов проверки своего устройства перед тем, как они смогут просматривать или управлять сеансами Remote Control из claude.ai, мобильных приложений Claude или Claude Desktop. Это связывает доступ Remote Control с известным устройством и недавней аутентификацией, а не просто с подписанной учётной записью.258Доверенные устройства требуют от каждого члена вашей организации или только от вас на плане Pro или Max проверить своё устройство перед тем, как они смогут просматривать или управлять сеансами Remote Control из claude.ai, мобильных приложений Claude или Claude Desktop. Это связывает доступ Remote Control с известным устройством и недавней аутентификацией, а не просто с подписанной учётной записью.

259 259 

260Когда параметр включен, взаимодействие с сеансом Remote Control требует обоих следующих условий:260Когда параметр включен, взаимодействие с сеансом Remote Control требует обоих следующих условий:

261 261 


267Параметр применяется только к Remote Control. Обычный чат Claude, Claude Code в терминале и использование API не затронуты.267Параметр применяется только к Remote Control. Обычный чат Claude, Claude Code в терминале и использование API не затронуты.

268 268 

269<h3 id="enable-trusted-devices-for-your-organization">269<h3 id="enable-trusted-devices-for-your-organization">

270 Включение доверенных устройств для вашей организации270 Включение доверенных устройств для организации Team или Enterprise

271</h3>271</h3>

272 272 

273Владелец включает параметр из консоли администратора Claude Code.273Владелец включает параметр из параметров организации claude.ai.

274 274 

275<Steps>275<Steps>

276 <Step title="Откройте параметры администратора Claude Code">276 <Step title="Перейдите на страницу Capabilities">

277 Перейдите на [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code). Переключатель **Require trusted devices** появляется под параметром Remote Control.277 Перейдите на [**Organization settings > Capabilities > Remote sessions**](https://claude.ai/admin-settings/capabilities). Переключатель **Require trusted devices** появляется в этом разделе.

278 </Step>278 </Step>

279 279 

280 <Step title="Включите Require trusted devices">280 <Step title="Включите Require trusted devices">

sandboxing.md +2 −2

Details

147* Простое правило `Bash` ask, или эквивалентная форма `Bash(*)`, пропускается для команд, которые выполняются в изолированном режиме; оно по-прежнему применяется к командам, которые возвращаются к обычному потоку разрешений. В [режиме plan](/docs/ru/permission-modes#analyze-before-you-edit-with-plan-mode) правило не пропускается: оно запрашивает разрешение для изолированных команд, включая команды только для чтения. До версии 2.1.212 пропуск применялся и в режиме plan147* Простое правило `Bash` ask, или эквивалентная форма `Bash(*)`, пропускается для команд, которые выполняются в изолированном режиме; оно по-прежнему применяется к командам, которые возвращаются к обычному потоку разрешений. В [режиме plan](/docs/ru/permission-modes#analyze-before-you-edit-with-plan-mode) правило не пропускается: оно запрашивает разрешение для изолированных команд, включая команды только для чтения. До версии 2.1.212 пропуск применялся и в режиме plan

148 148 

149<Info>149<Info>

150 Режим автоматического разрешения работает независимо от вашего параметра режима разрешений, за исключением [режима plan](/docs/ru/permission-modes#analyze-before-you-edit-with-plan-mode) и, в режиме auto, для команды, которая несёт [разрешённые домены для каждой команды](#per-command-allowed-domains-in-auto-mode). Даже если вы не находитесь в режиме "принять правки", изолированные команды Bash выполняются автоматически при включении автоматического разрешения. Это означает, что команды Bash, которые изменяют файлы в границах sandbox, выполняются без запроса, даже в режиме Manual, где инструменты редактирования файлов запрашивали бы разрешение.150 Режим автоматического разрешения работает независимо от вашего параметра режима разрешений, за исключением [режима plan](/docs/ru/permission-modes#analyze-before-you-edit-with-plan-mode), команды, которая несёт [разрешённые домены для каждой команды](#per-command-allowed-domains-in-auto-mode), и [проверки классификатором на стороне сервера](/docs/ru/permission-modes#how-the-classifier-evaluates-actions) изолированных команд в режиме auto. Даже если вы не находитесь в режиме "принять правки", изолированные команды Bash выполняются автоматически при включении автоматического разрешения. Это означает, что команды Bash, которые изменяют файлы в границах sandbox, выполняются без запроса, даже в режиме Manual, где инструменты редактирования файлов запрашивали бы разрешение.

151 151 

152 В режиме plan автоматическое разрешение не расширяет одобрения; см. [режим plan](/docs/ru/permission-modes#analyze-before-you-edit-with-plan-mode) для информации о том, как Claude Code управляет командами во время планирования. До версии 2.1.212 автоматическое разрешение выполняло изолированные команды без запроса и в режиме plan.152 В режиме plan автоматическое разрешение не расширяет одобрения; см. [режим plan](/docs/ru/permission-modes#analyze-before-you-edit-with-plan-mode) для информации о том, как Claude Code управляет командами во время планирования. До версии 2.1.212 автоматическое разрешение выполняло изолированные команды без запроса и в режиме plan.

153</Info>153</Info>


318 Защита учётных данных318 Защита учётных данных

319</h3>319</h3>

320 320 

321Параметр `sandbox.credentials` объявляет файлы учётных данных и переменные окружения для защиты от команд в песочнице. Каждая запись называет путь файла или переменную окружения и `mode`. Выделенный блок `credentials` сохраняет правила учётных данных сгруппированными вместе и отдельно от общих правил файловой системы. Требуется Claude Code v2.1.187 или позже.321Параметр `sandbox.credentials` объявляет файлы учётных данных и переменные окружения для защиты от команд в песочнице. Каждая запись называет путь файла или переменную окружения и `mode`. Выделенный блок `credentials` сохраняет правила учётных данных сгруппированными вместе и отдельно от общих правил файловой системы.

322 322 

323Для записей с `"mode": "deny"` пути файлов запрещены для чтения внутри песочницы, то же ограничение, которое применяет `filesystem.denyRead`, и переменные окружения не установлены перед каждой командой в песочнице. Защита файла является частью слоя файловой системы, поэтому она не применяется, если вы [отключите изоляцию файловой системы](#disable-filesystem-isolation); защита переменной окружения по-прежнему применяется.323Для записей с `"mode": "deny"` пути файлов запрещены для чтения внутри песочницы, то же ограничение, которое применяет `filesystem.denyRead`, и переменные окружения не установлены перед каждой командой в песочнице. Защита файла является частью слоя файловой системы, поэтому она не применяется, если вы [отключите изоляцию файловой системы](#disable-filesystem-isolation); защита переменной окружения по-прежнему применяется.

324 324 

Details

25 Установка плагина25 Установка плагина

26</h2>26</h2>

27 27 

28В сеансе Claude Code установите из [официального маркетплейса Anthropic](/docs/ru/discover-plugins#official-anthropic-marketplace):28В сеансе Claude Code установите из [официального маркетплейса Anthropic](/docs/ru/plugins/anthropic-marketplaces):

29 29 

30```text theme={null}30```text theme={null}

31/plugin install security-guidance@claude-plugins-official31/plugin install security-guidance@claude-plugins-official


35 35 

36* **Приложение Claude для рабочего стола, локальный или SSH сеанс**: откройте [браузер плагинов](/docs/ru/desktop#install-plugins), нажав кнопку **+** рядом с приглашением, затем **Plugins**, затем **Add plugin**36* **Приложение Claude для рабочего стола, локальный или SSH сеанс**: откройте [браузер плагинов](/docs/ru/desktop#install-plugins), нажав кнопку **+** рядом с приглашением, затем **Plugins**, затем **Add plugin**

37* **Расширение VS Code**: установите из [диалога **Manage plugins**](/docs/ru/vs-code#manage-plugins)37* **Расширение VS Code**: установите из [диалога **Manage plugins**](/docs/ru/vs-code#manage-plugins)

38* **Облачные сеансы**: включите плагин для вашей учетной записи claude.ai, чтобы Claude Code загружал его как [синхронизированный плагин](/docs/ru/plugins-reference#synced-plugins). Облачный сеанс не загружает плагины из ваших пользовательских параметров или из файла `.claude/settings.json` репозитория, как объясняется в разделе [What carries over from your setup](/docs/ru/cloud-environments#what-carries-over-from-your-setup)38* **Облачные сеансы**: облачный сеанс не загружает плагины из ваших пользовательских параметров или из файла `.claude/settings.json` репозитория, как объясняется в разделе [What carries over from your setup](/docs/ru/cloud-environments#what-carries-over-from-your-setup). Для плагинов, которые ваша организация распространяет через управляемые параметры, см. [Manage plugins for your organization](/docs/ru/plugins/org)

39 39 

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

41 41 

42Если установка не удалась, сопоставьте сообщение, которое сообщает Claude Code:42Если установка не удалась, сопоставьте сообщение, которое сообщает Claude Code:

43 43 

44* `Marketplace "claude-plugins-official" not found`: добавьте маркетплейс с помощью `/plugin marketplace add anthropics/claude-plugins-official`, затем повторите попытку установки.44* `Marketplace "claude-plugins-official" not found`: добавьте маркетплейс с помощью `/plugin marketplace add anthropics/claude-plugins-official`, затем повторите попытку установки.

45* Плагин [не найден в маркетплейсе](/docs/ru/discover-plugins#install-plugins): проверьте имя плагина.45* Плагин [не найден в маркетплейсе](/docs/ru/plugins/install#install-a-plugin): проверьте имя плагина.

46 46 

47Проверьте сводку установки. Если она сообщает `Run /reload-plugins to activate.`, см. [Apply plugin changes without restarting](/docs/ru/discover-plugins#apply-plugin-changes-without-restarting), чтобы активировать плагин в вашем текущем сеансе.47Проверьте сводку установки. Если она сообщает `Run /reload-plugins to activate.`, см. [Apply plugin changes without restarting](/docs/ru/plugins/cli-reference#reload-plugins), чтобы активировать плагин в вашем текущем сеансе.

48 48 

49<h3 id="enable-for-your-team-in-local-sessions">49<h3 id="enable-for-your-team-in-local-sessions">

50 Включение для вашей команды в локальных сеансах50 Включение для вашей команды в локальных сеансах


279 279 

280* [Code Review](/docs/ru/code-review): настройка многоагентной проверки во время PR280* [Code Review](/docs/ru/code-review): настройка многоагентной проверки во время PR

281* [Автоматизируйте действия с помощью hooks](/docs/ru/hooks-guide): создавайте свои собственные проверки в одних и тех же точках жизненного цикла281* [Автоматизируйте действия с помощью hooks](/docs/ru/hooks-guide): создавайте свои собственные проверки в одних и тех же точках жизненного цикла

282* [Откройте и установите плагины](/docs/ru/discover-plugins#official-anthropic-marketplace): просмотрите другие официальные плагины282* [Найдите плагины в официальном marketplace](/docs/ru/plugins/anthropic-marketplaces#find-plugins-in-the-official-marketplace): где просмотреть другие официальные плагины

Details

249}249}

250```250```

251 251 

252Вы также можете установить этот ключ в [управляемом конечной точкой](/docs/ru/managed-settings#delivery-mechanisms) профиле MDM или системном файле `managed-settings.json` для применения поведения отказа при запуске, перед поступлением любой полезной нагрузки сервера. В Claude Code v2.1.191 или более поздней версии этот флаг является исключением из [правила приоритета](#settings-precedence) выше: Claude Code соблюдает его, когда любой управляемый администратором источник его устанавливает, даже если также присутствует кэшированная полезная нагрузка, управляемая сервером, поэтому он не игнорирует значение, доставленное MDM, когда существуют управляемые сервером параметры.252Вы также можете установить этот ключ в [управляемом конечной точкой](/docs/ru/managed-settings#delivery-mechanisms) профиле MDM или системном файле `managed-settings.json` для применения поведения отказа при запуске, перед поступлением любой полезной нагрузки сервера. Этот флаг является исключением из [правила приоритета](#settings-precedence) выше: Claude Code соблюдает его, когда любой управляемый администратором источник его устанавливает, даже если также присутствует кэшированная полезная нагрузка, управляемая сервером, поэтому он не игнорирует значение, доставленное MDM, когда существуют управляемые сервером параметры.

253 253 

254Когда [`policyHelper`](/docs/ru/settings-reference#policyhelper) предоставляет управляемые параметры, его выходные данные заменяют каждый другой управляемый источник для ключей, которые Claude Code читает после запуска. Для источников, из которых Claude Code читает этот ключ, см. [его запись параметров](/docs/ru/settings-reference#forceremotesettingsrefresh). Запись `policyHelper` указывает, из каких источников Claude Code читает помощника и когда он запускается.254Когда [`policyHelper`](/docs/ru/settings-reference#policyhelper) предоставляет управляемые параметры, его выходные данные заменяют каждый другой управляемый источник для ключей, которые Claude Code читает после запуска. Для источников, из которых Claude Code читает этот ключ, см. [его запись параметров](/docs/ru/settings-reference#forceremotesettingsrefresh). Запись `policyHelper` указывает, из каких источников Claude Code читает помощника и когда он запускается.

255 255 


338 338 

339Ни ключи, возвращаемые скриптом [`apiKeyHelper`](/docs/ru/settings-reference#apikeyhelper), ни учетные данные [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) не запускают выборку параметров.339Ни ключи, возвращаемые скриптом [`apiKeyHelper`](/docs/ru/settings-reference#apikeyhelper), ни учетные данные [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) не запускают выборку параметров.

340 340 

341В сеансе [Cowork](https://claude.com/docs/cowork/overview) в приложении Claude Desktop Claude Code не получает параметры, управляемые сервером, из консоли администратора claude.ai, даже если пользователь входит с учетной записью Team или Enterprise. [Где и когда применяется политика](/docs/ru/managed-settings#where-and-when-a-policy-applies) охватывает, какая политика достигает сеансов Cowork на машине пользователя и удаленных сеансов Cowork. claude.ai по-прежнему применяет ваши списки [`strictKnownMarketplaces`](/docs/ru/settings-reference#strictknownmarketplaces) и [`blockedMarketplaces`](/docs/ru/settings-reference#blockedmarketplaces) сам по себе, когда пользователь Cowork добавляет marketplace из репозитория git на claude.ai или из **Customize** на вкладке Cowork. [Как работают ограничения](/docs/ru/plugin-marketplaces#how-restrictions-work) описывает эту проверку.341В сеансе [Cowork](https://claude.com/docs/cowork/overview) в приложении Claude Desktop Claude Code не получает параметры, управляемые сервером, из консоли администратора claude.ai, даже если пользователь входит с учетной записью Team или Enterprise. [Где и когда применяется политика](/docs/ru/managed-settings#where-and-when-a-policy-applies) охватывает, какая политика достигает сеансов Cowork на машине пользователя и удаленных сеансов Cowork. claude.ai по-прежнему применяет ваши списки [`strictKnownMarketplaces`](/docs/ru/settings-reference#strictknownmarketplaces) и [`blockedMarketplaces`](/docs/ru/settings-reference#blockedmarketplaces) сам по себе, когда пользователь Cowork добавляет marketplace из репозитория git на claude.ai или из **Customize** на вкладке Cowork. [Как работают ограничения](/docs/ru/plugins/org#restrict-what-users-can-install) описывает эту проверку.

342 342 

343Если вы экспортируете переменную поставщика `CLAUDE_CODE_USE_*` или нестандартный `ANTHROPIC_BASE_URL` в вашей оболочке, Claude Code пропускает выборку параметров для ваших сеансов. [`claude doctor` и `/status` сообщают о пропущенной выборке и ее причине](#verify-settings-delivery).343Если вы экспортируете переменную поставщика `CLAUDE_CODE_USE_*` или нестандартный `ANTHROPIC_BASE_URL` в вашей оболочке, Claude Code пропускает выборку параметров для ваших сеансов. [`claude doctor` и `/status` сообщают о пропущенной выборке и ее причине](#verify-settings-delivery).

344 344 

sessions.md +1 −1

Details

37 37 

38Возобновлённый сеанс восстанавливает диалог вместе с состоянием, сохранённым в нём:38Возобновлённый сеанс восстанавливает диалог вместе с состоянием, сохранённым в нём:

39 39 

40* История диалога: полная история, включая вызовы инструментов и результаты. Инструмент, который всё ещё выполнялся, когда предыдущий процесс завершился, например при сбое, не завершается и не запускается снова при возобновлении; Claude продолжает без его вывода.40* История диалога: полная история, включая вызовы инструментов и результаты. Инструмент, который всё ещё выполнялся, когда предыдущий процесс завершился, например при сбое, не завершается и не запускается снова при возобновлении. Claude видит вызов, отмеченный как прерванный до того, как был записан его результат, и ему сообщается проверить, был ли он выполнен, перед тем как запустить его снова, если только не установлена переменная [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/ru/env-vars#variables). До версии 2.1.281 Claude Code либо удалял прерванный вызов из диалога, либо показывал его Claude как вызов, который вы прервали.

41* Модель: сеанс продолжается на модели, которую он использовал. Модель не восстанавливается, когда она была снята с производства или не разрешена `availableModels`, когда флаг `--model` или переменная окружения семейства `ANTHROPIC_MODEL` выбирает одну при запуске, или у поставщиков, которые используют ID развёртывания, специфичные для поставщика, такие как [Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry](/docs/ru/third-party-integrations); см. [конфигурация модели](/docs/ru/model-config#setting-your-model) для порядка разрешения.41* Модель: сеанс продолжается на модели, которую он использовал. Модель не восстанавливается, когда она была снята с производства или не разрешена `availableModels`, когда флаг `--model` или переменная окружения семейства `ANTHROPIC_MODEL` выбирает одну при запуске, или у поставщиков, которые используют ID развёртывания, специфичные для поставщика, такие как [Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry](/docs/ru/third-party-integrations); см. [конфигурация модели](/docs/ru/model-config#setting-your-model) для порядка разрешения.

42* Agent: сеанс, запущенный с помощью [`--agent`](/docs/ru/sub-agents#invoke-subagents-explicitly) или параметра `agent`, продолжается как этот agent, сохраняя ограничения его инструментов и модель. Передайте `--agent` при возобновлении, чтобы выбрать другой; для системного приглашения в любом случае см. [Флаги системного приглашения в возобновлённых диалогах](/docs/ru/cli-reference#system-prompt-flags-in-resumed-conversations). Claude Code ищет agent в двух местах: в исходном каталоге сеанса, при условии, что вы [доверили этому рабочему пространству](/docs/ru/permissions#project-allow-rules-and-workspace-trust), а затем в каталоге, из которого вы возобновляете, поэтому agent, ограниченный проектом, всё ещё загружается при возобновлении из другого каталога. Если Claude Code не находит agent ни в одном из этих мест, сеанс возобновляется с инструментами по умолчанию и показывает [предупреждение с названием agent](/docs/ru/errors#session-agent-no-longer-available).42* Agent: сеанс, запущенный с помощью [`--agent`](/docs/ru/sub-agents#invoke-subagents-explicitly) или параметра `agent`, продолжается как этот agent, сохраняя ограничения его инструментов и модель. Передайте `--agent` при возобновлении, чтобы выбрать другой; для системного приглашения в любом случае см. [Флаги системного приглашения в возобновлённых диалогах](/docs/ru/cli-reference#system-prompt-flags-in-resumed-conversations). Claude Code ищет agent в двух местах: в исходном каталоге сеанса, при условии, что вы [доверили этому рабочему пространству](/docs/ru/permissions#project-allow-rules-and-workspace-trust), а затем в каталоге, из которого вы возобновляете, поэтому agent, ограниченный проектом, всё ещё загружается при возобновлении из другого каталога. Если Claude Code не находит agent ни в одном из этих мест, сеанс возобновляется с инструментами по умолчанию и показывает [предупреждение с названием agent](/docs/ru/errors#session-agent-no-longer-available).

43* Режим разрешений: если вы возобновляете из терминала с помощью `claude --continue`, `claude --resume <session-id>` или `claude --resume <name>`, когда имя соответствует одному сеансу, без `-p`, Claude Code восстанавливает режим разрешений, в котором находился сеанс, за исключением случаев в [режим разрешений при возобновлении](#permission-mode-on-resume), который также охватывает средство выбора сеансов, `/resume` и возобновление с помощью `claude -p`. Передайте `--permission-mode` или `--dangerously-skip-permissions`, чтобы переопределить восстановленный режим.43* Режим разрешений: если вы возобновляете из терминала с помощью `claude --continue`, `claude --resume <session-id>` или `claude --resume <name>`, когда имя соответствует одному сеансу, без `-p`, Claude Code восстанавливает режим разрешений, в котором находился сеанс, за исключением случаев в [режим разрешений при возобновлении](#permission-mode-on-resume), который также охватывает средство выбора сеансов, `/resume` и возобновление с помощью `claude -p`. Передайте `--permission-mode` или `--dangerously-skip-permissions`, чтобы переопределить восстановленный режим.

settings.md +5 −1

Details

452 Поделитесь параметрами с вашей командой452 Поделитесь параметрами с вашей командой

453</h3>453</h3>

454 454 

455Зафиксируйте `.claude/settings.json`, чтобы все, кто клонирует репозиторий, получили одинаковые разрешения, hooks, телеметрию и plugins. Каждый товарищ по команде всё ещё может переопределить его для себя в своём собственном `.claude/settings.local.json`, поэтому личные исключения не нуждаются в коммите. Для полного файла команды см. [общие параметры команды](/docs/ru/settings-example#a-teams-shared-settings).455Зафиксируйте `.claude/settings.json`, чтобы все, кто клонирует репозиторий, получили одинаковые разрешения, hooks и plugins. Каждый товарищ по команде всё ещё может переопределить его для себя в своём собственном `.claude/settings.local.json`, поэтому личные исключения не нуждаются в коммите. Для полного файла команды см. [общие параметры команды](/docs/ru/settings-example#a-teams-shared-settings).

456 456 

457Некоторые из того, что вы зафиксируете, ждут, пока каждый товарищ по команде [доверит папку](/docs/ru/permissions#project-allow-rules-and-workspace-trust), и несколько ключей никогда не вступают в силу из файла репозитория; [Troubleshoot a setting that doesn't apply](#common-cases) охватывает оба случая.457Некоторые из того, что вы зафиксируете, ждут, пока каждый товарищ по команде [доверит папку](/docs/ru/permissions#project-allow-rules-and-workspace-trust), и несколько ключей никогда не вступают в силу из файла репозитория; [Troubleshoot a setting that doesn't apply](#common-cases) охватывает оба случая.

458 458 


743* **Более высокий уровень его устанавливает.** Другой файл параметров, флаг `--settings` или управляемый источник устанавливает ключ выше вашего; [стек](#settings-precedence) указывает, какой. Флаг или переменная окружения также может переопределить ключ самостоятельно, решаемый ключ за ключом; запись ключа на [справочнике параметров](/docs/ru/settings-reference) указывает, какой из них использует Claude Code, и [запись `env`](/docs/ru/settings-reference#env) охватывает управляемое значение `env` в сравнении с экспортом оболочки.743* **Более высокий уровень его устанавливает.** Другой файл параметров, флаг `--settings` или управляемый источник устанавливает ключ выше вашего; [стек](#settings-precedence) указывает, какой. Флаг или переменная окружения также может переопределить ключ самостоятельно, решаемый ключ за ключом; запись ключа на [справочнике параметров](/docs/ru/settings-reference) указывает, какой из них использует Claude Code, и [запись `env`](/docs/ru/settings-reference#env) охватывает управляемое значение `env` в сравнении с экспортом оболочки.

744* **Ключ безопасности сохраняет свое строгое значение.** Для нескольких ключей Claude Code соблюдает ограничивающее значение из любого файла, поэтому проектный `true` для [`disableClaudeAiConnectors`](/docs/ru/settings-reference#disableclaudeaiconnectors) остается включенным; см. [Исключения из приоритета управляемых параметров](#exceptions-to-managed-settings-precedence).744* **Ключ безопасности сохраняет свое строгое значение.** Для нескольких ключей Claude Code соблюдает ограничивающее значение из любого файла, поэтому проектный `true` для [`disableClaudeAiConnectors`](/docs/ru/settings-reference#disableclaudeaiconnectors) остается включенным; см. [Исключения из приоритета управляемых параметров](#exceptions-to-managed-settings-precedence).

745* **Файл не может установить это значение.** Значения [`permissions.defaultMode`](/docs/ru/settings-reference#permissions-defaultmode) `auto` и `bypassPermissions` не вступают в силу из проектных или локальных параметров; установите их в пользовательские или управляемые параметры вместо этого, или передайте `--permission-mode` для одной сессии. До v2.1.257 `bypassPermissions` вступал в силу из любого файла.745* **Файл не может установить это значение.** Значения [`permissions.defaultMode`](/docs/ru/settings-reference#permissions-defaultmode) `auto` и `bypassPermissions` не вступают в силу из проектных или локальных параметров; установите их в пользовательские или управляемые параметры вместо этого, или передайте `--permission-mode` для одной сессии. До v2.1.257 `bypassPermissions` вступал в силу из любого файла.

746 

747 Переменная экспорта телеметрии в блоке [`env`](/docs/ru/settings-reference#env) также не вступает в силу из проектных или локальных параметров, кроме нескольких отключенных значений. [Переменные, которые Claude Code игнорирует в `env`](/docs/ru/settings-reference#variables-claude-code-ignores-in-env) перечисляет переменные и эти значения.

746* **Файл сломан.** Неверный JSON или отклоненное значение заставляет Claude Code пропустить файл или запись; см. [Исправить сломанный файл параметров](#fix-a-broken-settings-file).748* **Файл сломан.** Неверный JSON или отклоненное значение заставляет Claude Code пропустить файл или запись; см. [Исправить сломанный файл параметров](#fix-a-broken-settings-file).

747 749 

748<h4 id="a-change-you-made-in-claude-code-is-lost-in-new-sessions">750<h4 id="a-change-you-made-in-claude-code-is-lost-in-new-sessions">


766Две вещи не позволяют ключу в `.claude/settings.json` применяться для всех, кто его клонирует:768Две вещи не позволяют ключу в `.claude/settings.json` применяться для всех, кто его клонирует:

767 769 

768* **Claude Code игнорирует ключ в файле репозитория.** Ищите `User, local, or managed`, `User or managed`, `Managed` или `Global config` в столбце Scope [индекса параметров](/docs/ru/settings-reference#settings-index). Эти ключи никогда не применяются из общего файла, кроме нескольких, которые файл репозитория все еще может отключить. Каждая из этих записей говорит об этом на строке Scope. Ключи `Global config` применяются только из `~/.claude.json`.770* **Claude Code игнорирует ключ в файле репозитория.** Ищите `User, local, or managed`, `User or managed`, `Managed` или `Global config` в столбце Scope [индекса параметров](/docs/ru/settings-reference#settings-index). Эти ключи никогда не применяются из общего файла, кроме нескольких, которые файл репозитория все еще может отключить. Каждая из этих записей говорит об этом на строке Scope. Ключи `Global config` применяются только из `~/.claude.json`.

771 

772 Внутри ключа `env` переменные экспорта телеметрии также никогда не применяются из общего файла, кроме нескольких отключенных значений; см. [Переменные, которые Claude Code игнорирует в `env`](/docs/ru/settings-reference#variables-claude-code-ignores-in-env).

769* **Ключ ждет доверия.** Правила `permissions.allow`, `permissions.additionalDirectories`, `extraKnownMarketplaces` и большинство значений [`env`](/docs/ru/settings-reference#env) применяются только после того, как каждый товарищ по команде [доверяет папке](/docs/ru/permissions#project-allow-rules-and-workspace-trust). До этого они все еще видят подсказки и не получают плагины с маркетплейса, который объявляет файл. Правила `deny` и `ask` применяются сразу же.773* **Ключ ждет доверия.** Правила `permissions.allow`, `permissions.additionalDirectories`, `extraKnownMarketplaces` и большинство значений [`env`](/docs/ru/settings-reference#env) применяются только после того, как каждый товарищ по команде [доверяет папке](/docs/ru/permissions#project-allow-rules-and-workspace-trust). До этого они все еще видят подсказки и не получают плагины с маркетплейса, который объявляет файл. Правила `deny` и `ask` применяются сразу же.

770 774 

771<h4 id="permission-rules-combine-differently-than-you-expected">775<h4 id="permission-rules-combine-differently-than-you-expected">

Details

98 Общие параметры команды98 Общие параметры команды

99</h2>99</h2>

100 100 

101Общие параметры одной команды, зафиксированные в репозитории, чтобы каждый, кто его клонирует, получал одинаковые разрешения, hooks, телеметрию и marketplace плагинов. Сохраните файл, подобный этому, в `.claude/settings.json` в верхней части репозитория. Что нужно знать перед его фиксацией:101Общие параметры одной команды, зафиксированные в репозитории, чтобы каждый, кто его клонирует, получал одинаковые разрешения, hooks и marketplace плагинов. Сохраните файл, подобный этому, в `.claude/settings.json` в верхней части репозитория. Что нужно знать перед его фиксацией:

102 102 

103* **Облачные сеансы также его читают.** [Облачный сеанс](/docs/ru/settings#settings-in-cloud-sessions) начинается с клона репозитория, поэтому зафиксированный файл применяется и там.103* **Облачные сеансы также его читают.** [Облачный сеанс](/docs/ru/settings#settings-in-cloud-sessions) начинается с клона репозитория, поэтому зафиксированный файл применяется и там.

104* **Телеметрия входит в управляемые или личные параметры.** Claude Code игнорирует [переменные экспортера OpenTelemetry](/docs/ru/settings-reference#variables-claude-code-ignores-in-env) в файлах параметров репозитория, за исключением некоторых значений, которые отключают телеметрию. Установите их в [управляемых параметрах](/docs/ru/monitoring-usage#administrator-configuration) для вашей организации или в файле `~/.claude/settings.json` каждого человека.

104* **Правила Allow ждут доверия.** Правила Allow и записи `extraKnownMarketplaces` вступают в силу после того, как каждый человек [доверит этой папке](/docs/ru/permissions#project-allow-rules-and-workspace-trust), а не только родительской папке; правила deny и ask применяются в каждом сеансе, доверенном или нет.105* **Правила Allow ждут доверия.** Правила Allow и записи `extraKnownMarketplaces` вступают в силу после того, как каждый человек [доверит этой папке](/docs/ru/permissions#project-allow-rules-and-workspace-trust), а не только родительской папке; правила deny и ask применяются в каждом сеансе, доверенном или нет.

105* **Hook — это скрипт в репозитории.** Hook этого файла запускает `.claude/hooks/block-rm.sh`; [How a hook resolves](/docs/ru/hooks#how-a-hook-resolves) описывает, как его написать.106* **Hook — это скрипт в репозитории.** Hook этого файла запускает `.claude/hooks/block-rm.sh`; [How a hook resolves](/docs/ru/hooks#how-a-hook-resolves) описывает, как его написать.

106* **Правила соответствуют команде и пути в том виде, в котором они написаны.** `Bash(git push *)` не соответствует [`git -C . push`](/docs/ru/permissions#bash-rule-limits). `Read(./.env)` само по себе останавливает инструменты файлов и команды, которые называют файл, такие как `cat .env`, но не [`grep -r`, запущенный по каталогу](/docs/ru/permissions#read-and-edit); блок `sandbox` в этом файле закрывает этот пробел, потому что sandbox [добавляет ваши пути `Read` deny](/docs/ru/settings-reference#sandbox-filesystem-denyread) к тому, что не может читать каждая команда в sandbox.107* **Правила соответствуют команде и пути в том виде, в котором они написаны.** `Bash(git push *)` не соответствует [`git -C . push`](/docs/ru/permissions#bash-rule-limits). `Read(./.env)` само по себе останавливает инструменты файлов и команды, которые называют файл, такие как `cat .env`, но не [`grep -r`, запущенный по каталогу](/docs/ru/permissions#read-and-edit); блок `sandbox` в этом файле закрывает этот пробел, потому что sandbox [добавляет ваши пути `Read` deny](/docs/ru/settings-reference#sandbox-filesystem-denyread) к тому, что не может читать каждая команда в sandbox.


124 "Read(./secrets/**)"125 "Read(./secrets/**)"

125 ]126 ]

126 },127 },

127 "env": {

128 "CLAUDE_CODE_ENABLE_TELEMETRY": "1",

129 "OTEL_METRICS_EXPORTER": "otlp",

130 "OTEL_EXPORTER_OTLP_PROTOCOL": "grpc",

131 "OTEL_EXPORTER_OTLP_ENDPOINT": "http://collector.example.com:4317"

132 },

133 "hooks": {128 "hooks": {

134 "PreToolUse": [129 "PreToolUse": [

135 {130 {


194 "Read(./secrets/**)"189 "Read(./secrets/**)"

195 ]190 ]

196 },191 },

197 // Отправляйте метрики OpenTelemetry на сборщик команды через gRPC; замените конечную точку на URL вашего сборщика

198 "env": {

199 "CLAUDE_CODE_ENABLE_TELEMETRY": "1",

200 "OTEL_METRICS_EXPORTER": "otlp",

201 "OTEL_EXPORTER_OTLP_PROTOCOL": "grpc",

202 "OTEL_EXPORTER_OTLP_ENDPOINT": "http://collector.example.com:4317"

203 },

204 // Перед каждой командой Bash запустите скрипт в репозитории, который может ее заблокировать192 // Перед каждой командой Bash запустите скрипт в репозитории, который может ее заблокировать

205 "hooks": {193 "hooks": {

206 "PreToolUse": [194 "PreToolUse": [

settings-reference.md +180 −164

Details

626| [`axScreenReader`](#axscreenreader) | Отображайте [вывод, удобный для программ чтения с экрана](/docs/ru/accessibility) | Interface and terminal | Any file |626| [`axScreenReader`](#axscreenreader) | Отображайте [вывод, удобный для программ чтения с экрана](/docs/ru/accessibility) | Interface and terminal | Any file |

627| [`bashEditDiffEnabled`](#basheditdiffenabled) | Записывайте [файлы, которые изменила команда Bash](/docs/ru/hooks#bash) в каждом режиме разрешений | Interface and terminal | User or managed |627| [`bashEditDiffEnabled`](#basheditdiffenabled) | Записывайте [файлы, которые изменила команда Bash](/docs/ru/hooks#bash) в каждом режиме разрешений | Interface and terminal | User or managed |

628| [`bashOutputMaxChars`](#bashoutputmaxchars) | Установите, сколько [вывода](/docs/ru/tools-reference#output-limits) успешной команды Claude получает встроенным образом | Memory and context | Any file |628| [`bashOutputMaxChars`](#bashoutputmaxchars) | Установите, сколько [вывода](/docs/ru/tools-reference#output-limits) успешной команды Claude получает встроенным образом | Memory and context | Any file |

629| [`blockedMarketplaces`](#blockedmarketplaces) | Блокируйте источники [маркетплейса плагинов](/docs/ru/plugin-marketplaces) для вашей организации | Plugins and skills | Managed |629| [`blockedMarketplaces`](#blockedmarketplaces) | Блокируйте источники [маркетплейса плагинов](/docs/ru/plugins/overview) для вашей организации | Plugins and skills | Managed |

630| [`browserExternalPageTools`](#browserexternalpagetools) | Отключите инструменты Claude на внешних страницах в [панели Browser](/docs/ru/desktop) рабочего стола | Tools | Managed |630| [`browserExternalPageTools`](#browserexternalpagetools) | Отключите инструменты Claude на внешних страницах в [панели Browser](/docs/ru/desktop) рабочего стола | Tools | Managed |

631| [`channelsEnabled`](#channelsenabled) | Разрешите [каналы](/docs/ru/channels#enable-channels-for-your-organization) для вашей организации | Plugins and skills | Managed |631| [`channelsEnabled`](#channelsenabled) | Разрешите [каналы](/docs/ru/channels#enable-channels-for-your-organization) для вашей организации | Plugins and skills | Managed |

632| [`claudeMd`](#claudemd) | Внедрите инструкции [CLAUDE.md](/docs/ru/memory#deploy-organization-wide-claude-md) на уровне организации из управляемых параметров | Memory and context | Managed |632| [`claudeMd`](#claudemd) | Внедрите инструкции [CLAUDE.md](/docs/ru/memory#deploy-organization-wide-claude-md) на уровне организации из управляемых параметров | Memory and context | Managed |


647| [`disableBrowserExternalNavigation`](#disablebrowserexternalnavigation) | Ограничьте [панель Browser](/docs/ru/desktop) рабочего стола localhost для людей и Claude | Tools | Managed |647| [`disableBrowserExternalNavigation`](#disablebrowserexternalnavigation) | Ограничьте [панель Browser](/docs/ru/desktop) рабочего стола localhost для людей и Claude | Tools | Managed |

648| [`disableBundledSkills`](#disablebundledskills) | Отключите [навыки](/docs/ru/skills#bundled-skills) и [рабочие процессы](/docs/ru/workflows), включённые в Claude Code | Plugins and skills | Any file |648| [`disableBundledSkills`](#disablebundledskills) | Отключите [навыки](/docs/ru/skills#bundled-skills) и [рабочие процессы](/docs/ru/workflows), включённые в Claude Code | Plugins and skills | Any file |

649| [`disableClaudeAiConnectors`](#disableclaudeaiconnectors) | Отключите [разъёмы claude.ai](/docs/ru/mcp#disable-claude-ai-connectors), чтобы Claude Code их не получал | MCP | Any file |649| [`disableClaudeAiConnectors`](#disableclaudeaiconnectors) | Отключите [разъёмы claude.ai](/docs/ru/mcp#disable-claude-ai-connectors), чтобы Claude Code их не получал | MCP | Any file |

650| [`disableCommandPluginSources`](#disablecommandpluginsources) | Блокируйте [плагины](/docs/ru/plugins), которые устанавливаются путём запуска команды, объявленной маркетплейсом | Plugins and skills | Managed |650| [`disableCommandPluginSources`](#disablecommandpluginsources) | Блокируйте [плагины](/docs/ru/plugins/overview), которые устанавливаются путём запуска команды, объявленной маркетплейсом | Plugins and skills | Managed |

651| [`disableDeepLinkRegistration`](#disabledeeplinkregistration) | Остановите регистрацию Claude Code обработчика [`claude-cli://`](/docs/ru/deep-links) | Remote, desktop, and notifications | Any file |651| [`disableDeepLinkRegistration`](#disabledeeplinkregistration) | Остановите регистрацию Claude Code обработчика [`claude-cli://`](/docs/ru/deep-links) | Remote, desktop, and notifications | Any file |

652| [`disableDesktopLocalSessions`](#disabledesktoplocalsessions) | Отключите [сеансы Desktop Code](/docs/ru/desktop#local-sessions-on-managed-devices), которые работают на устройстве, оставляя SSH для других хостов и облака | Remote, desktop, and notifications | Managed |652| [`disableDesktopLocalSessions`](#disabledesktoplocalsessions) | Отключите [сеансы Desktop Code](/docs/ru/desktop#local-sessions-on-managed-devices), которые работают на устройстве, оставляя SSH для других хостов и облака | Remote, desktop, and notifications | Managed |

653| [`disabledMcpjsonServers`](#disabledmcpjsonservers) | Отклоняйте определённые серверы из [`.mcp.json`](/docs/ru/mcp#project-scope) проекта | MCP | Any file |653| [`disabledMcpjsonServers`](#disabledmcpjsonservers) | Отклоняйте определённые серверы из [`.mcp.json`](/docs/ru/mcp#project-scope) проекта | MCP | Any file |

654| [`disableMobileSimulatorTools`](#disablemobilesimulatortools) | Блокируйте инструменты Claude в [панели iOS Simulator](/docs/ru/desktop) рабочего стола | Tools | Managed |654| [`disableMobileSimulatorTools`](#disablemobilesimulatortools) | Блокируйте инструменты Claude в [панели iOS Simulator](/docs/ru/desktop) рабочего стола | Tools | Managed |

655| [`disableRemoteControl`](#disableremotecontrol) | Отключите [Remote Control](/docs/ru/remote-control) везде, где он может запуститься | Remote, desktop, and notifications | Any file |655| [`disableRemoteControl`](#disableremotecontrol) | Отключите [Remote Control](/docs/ru/remote-control) везде, где он может запуститься | Remote, desktop, and notifications | Any file |

656| [`disableSideloadFlags`](#disablesideloadflags) | Отклоняйте флаги CLI, которые загружают [плагины](/docs/ru/plugins), [подагентов](/docs/ru/sub-agents) и [MCP серверы](/docs/ru/mcp) | Enterprise and managed settings | Managed |656| [`disableSideloadFlags`](#disablesideloadflags) | Отклоняйте флаги CLI, которые загружают [плагины](/docs/ru/plugins/overview), [подагентов](/docs/ru/sub-agents) и [MCP серверы](/docs/ru/mcp) | Enterprise and managed settings | Managed |

657| [`disableSkillShellExecution`](#disableskillshellexecution) | Остановите [навыки](/docs/ru/skills) и пользовательские команды от встроенного выполнения shell | Plugins and skills | Any file |657| [`disableSkillShellExecution`](#disableskillshellexecution) | Остановите [навыки](/docs/ru/skills) и пользовательские команды от встроенного выполнения shell | Plugins and skills | Any file |

658| [`disableWorkflows`](#disableworkflows) | Отключите [динамические рабочие процессы](/docs/ru/workflows) для всех; используйте `enableWorkflows` для себя | Hooks and automation | Any file |658| [`disableWorkflows`](#disableworkflows) | Отключите [динамические рабочие процессы](/docs/ru/workflows) для всех; используйте `enableWorkflows` для себя | Hooks and automation | Any file |

659| [`editorMode`](#editormode) | Используйте [сочетания клавиш vim](/docs/ru/interactive-mode#vim-editor-mode) в приглашении ввода | Interface and terminal | Any file |659| [`editorMode`](#editormode) | Используйте [сочетания клавиш vim](/docs/ru/interactive-mode#vim-editor-mode) в приглашении ввода | Interface and terminal | Any file |


662| [`enableAllProjectMcpServers`](#enableallprojectmcpservers) | Одобрите каждый сервер в файлах проекта [`.mcp.json`](/docs/ru/mcp#project-server-approvals-and-workspace-trust) без подсказки | MCP | Any file |662| [`enableAllProjectMcpServers`](#enableallprojectmcpservers) | Одобрите каждый сервер в файлах проекта [`.mcp.json`](/docs/ru/mcp#project-server-approvals-and-workspace-trust) без подсказки | MCP | Any file |

663| [`enableArtifact`](#enableartifact) | Отключите [инструмент Artifact](/docs/ru/artifacts) с помощью `false` в любом файле; ни один файл не может его включить обратно | Remote, desktop, and notifications | Any file |663| [`enableArtifact`](#enableartifact) | Отключите [инструмент Artifact](/docs/ru/artifacts) с помощью `false` в любом файле; ни один файл не может его включить обратно | Remote, desktop, and notifications | Any file |

664| [`enabledMcpjsonServers`](#enabledmcpjsonservers) | Одобрите определённые серверы из [`.mcp.json`](/docs/ru/mcp#project-server-approvals-and-workspace-trust) проекта | MCP | Any file |664| [`enabledMcpjsonServers`](#enabledmcpjsonservers) | Одобрите определённые серверы из [`.mcp.json`](/docs/ru/mcp#project-server-approvals-and-workspace-trust) проекта | MCP | Any file |

665| [`enabledPlugins`](#enabledplugins) | Включайте или отключайте отдельные [плагины](/docs/ru/plugins) для каждой области действия | Plugins and skills | Any file |665| [`enabledPlugins`](#enabledplugins) | Включайте или отключайте отдельные [плагины](/docs/ru/plugins/overview) для каждой области действия | Plugins and skills | Any file |

666| [`enableWorkflows`](#enableworkflows) | Включайте или отключайте [динамические рабочие процессы](/docs/ru/workflows) в зависимости от умолчания вашего плана | Hooks and automation | Any file |666| [`enableWorkflows`](#enableworkflows) | Включайте или отключайте [динамические рабочие процессы](/docs/ru/workflows) в зависимости от умолчания вашего плана | Hooks and automation | Any file |

667| [`enforceAvailableModels`](#enforceavailablemodels) | Держите [выбор Default](/docs/ru/model-config#enforce-the-allowlist-for-the-default-model) `/model` внутри вашего списка разрешений `availableModels` | Model and responses | Any file |667| [`enforceAvailableModels`](#enforceavailablemodels) | Держите [выбор Default](/docs/ru/model-config#enforce-the-allowlist-for-the-default-model) `/model` внутри вашего списка разрешений `availableModels` | Model and responses | Any file |

668| [`env`](#env) | Установите [переменные окружения](/docs/ru/env-vars#in-settings-files) для каждого сеанса и его подпроцессов | Memory and context | Any file |668| [`env`](#env) | Установите [переменные окружения](/docs/ru/env-vars#in-settings-files) для каждого сеанса и его подпроцессов | Memory and context | Any file |

669| [`externalEditorContext`](#externaleditorcontext) | Показывайте последний ответ Claude как комментарии при нажатии [Ctrl+G](/docs/ru/interactive-mode#general-controls) для редактирования | Global config settings | Global config |669| [`externalEditorContext`](#externaleditorcontext) | Показывайте последний ответ Claude как комментарии при нажатии [Ctrl+G](/docs/ru/interactive-mode#general-controls) для редактирования | Global config settings | Global config |

670| [`extraKnownMarketplaces`](#extraknownmarketplaces) | Зарегистрируйте [маркетплейсы](/docs/ru/plugin-marketplaces) для репозитория или организации | Plugins and skills | Any file |670| [`extraKnownMarketplaces`](#extraknownmarketplaces) | Зарегистрируйте [маркетплейсы](/docs/ru/plugins/overview) для репозитория или организации | Plugins and skills | Any file |

671| [`fallbackModel`](#fallbackmodel) | Назовите [резервные модели](/docs/ru/model-config#fallback-model-chains) на случай перегрузки основной | Model and responses | Any file |671| [`fallbackModel`](#fallbackmodel) | Назовите [резервные модели](/docs/ru/model-config#fallback-model-chains) на случай перегрузки основной | Model and responses | Any file |

672| [`fastMode`](#fastmode) | Включите [быстрый режим](/docs/ru/fast-mode) для сеансов, где он доступен | Model and responses | Any file |672| [`fastMode`](#fastmode) | Включите [быстрый режим](/docs/ru/fast-mode) для сеансов, где он доступен | Model and responses | Any file |

673| [`fastModePerSessionOptIn`](#fastmodepersessionoptin) | Требуйте, чтобы люди включали [быстрый режим](/docs/ru/fast-mode) каждый сеанс | Model and responses | Any file |673| [`fastModePerSessionOptIn`](#fastmodepersessionoptin) | Требуйте, чтобы люди включали [быстрый режим](/docs/ru/fast-mode) каждый сеанс | Model and responses | Any file |


712| [`permissions.deny`](#permissions-deny) | Блокируйте перечисленные [использования инструментов](/docs/ru/permissions#permission-rule-syntax), включая чтение файлов, содержащих секреты | Permission settings | Any file |712| [`permissions.deny`](#permissions-deny) | Блокируйте перечисленные [использования инструментов](/docs/ru/permissions#permission-rule-syntax), включая чтение файлов, содержащих секреты | Permission settings | Any file |

713| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | Предотвратите вход кого-либо в [режим bypassPermissions](/docs/ru/permission-modes#skip-all-checks-with-bypasspermissions-mode) | Permission settings | Any file |713| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | Предотвратите вход кого-либо в [режим bypassPermissions](/docs/ru/permission-modes#skip-all-checks-with-bypasspermissions-mode) | Permission settings | Any file |

714| [`plansDirectory`](#plansdirectory) | Выберите, где [режим плана](/docs/ru/permission-modes#analyze-before-you-edit-with-plan-mode) записывает файлы плана | Memory and context | Any file |714| [`plansDirectory`](#plansdirectory) | Выберите, где [режим плана](/docs/ru/permission-modes#analyze-before-you-edit-with-plan-mode) записывает файлы плана | Memory and context | Any file |

715| [`pluginConfigs`](#pluginconfigs) | Сохраняйте ответы, которые вы дали диалогу конфигурации [плагина](/docs/ru/plugins) | Plugins and skills | User or managed |715| [`pluginConfigs`](#pluginconfigs) | Сохраняйте ответы, которые вы дали диалогу конфигурации [плагина](/docs/ru/plugins/overview) | Plugins and skills | User or managed |

716| [`pluginSuggestionMarketplaces`](#pluginsuggestionmarketplaces) | Выберите, какие [маркетплейсы](/docs/ru/plugin-marketplaces#managed-marketplace-restrictions) могут выводить предложения по установке плагинов в `/plugin` | Plugins and skills | Managed |716| [`pluginSuggestionMarketplaces`](#pluginsuggestionmarketplaces) | Выберите, какие [маркетплейсы](/docs/ru/plugins/org#restrict-what-users-can-install) могут выводить предложения по установке плагинов в `/plugin` | Plugins and skills | Managed |

717| [`pluginTrustMessage`](#plugintrustmessage) | Добавьте свой собственный текст к предупреждению о доверии [плагина](/docs/ru/plugins) | Plugins and skills | Managed |717| [`pluginTrustMessage`](#plugintrustmessage) | Добавьте свой собственный текст к предупреждению о доверии [плагина](/docs/ru/plugins/overview) | Plugins and skills | Managed |

718| [`policyHelper`](#policyhelper) | Запустите исполняемый файл, который вычисляет [управляемые параметры](/docs/ru/managed-settings#compute-the-policy-with-a-helper-program) при запуске | Enterprise and managed settings | Managed |718| [`policyHelper`](#policyhelper) | Запустите исполняемый файл, который вычисляет [управляемые параметры](/docs/ru/managed-settings#compute-the-policy-with-a-helper-program) при запуске | Enterprise and managed settings | Managed |

719| [`policyHelper.path`](#policyhelper-path) | Назовите [вспомогательный исполняемый файл](/docs/ru/managed-settings#compute-the-policy-with-a-helper-program), который запускает Claude Code | Enterprise and managed settings | Managed |719| [`policyHelper.path`](#policyhelper-path) | Назовите [вспомогательный исполняемый файл](/docs/ru/managed-settings#compute-the-policy-with-a-helper-program), который запускает Claude Code | Enterprise and managed settings | Managed |

720| [`policyHelper.refreshIntervalMs`](#policyhelper-refreshintervalms) | Повторно запустите [помощника](/docs/ru/managed-settings#compute-the-policy-with-a-helper-program) в фоновом режиме по расписанию | Enterprise and managed settings | Managed |720| [`policyHelper.refreshIntervalMs`](#policyhelper-refreshintervalms) | Повторно запустите [помощника](/docs/ru/managed-settings#compute-the-policy-with-a-helper-program) в фоновом режиме по расписанию | Enterprise and managed settings | Managed |


785| [`sshConfigs`](#sshconfigs) | Добавьте [SSH-соединения](/docs/ru/desktop#pre-configure-ssh-connections-for-your-team) в раскрывающееся меню среды Desktop | Remote, desktop, and notifications | User or managed |785| [`sshConfigs`](#sshconfigs) | Добавьте [SSH-соединения](/docs/ru/desktop#pre-configure-ssh-connections-for-your-team) в раскрывающееся меню среды Desktop | Remote, desktop, and notifications | User or managed |

786| [`sshHostAllowlist`](#sshhostallowlist) | Ограничьте, какие хосты [сеансы Desktop SSH](/docs/ru/desktop#restrict-which-ssh-hosts-users-can-connect-to) могут достичь | Remote, desktop, and notifications | Managed |786| [`sshHostAllowlist`](#sshhostallowlist) | Ограничьте, какие хосты [сеансы Desktop SSH](/docs/ru/desktop#restrict-which-ssh-hosts-users-can-connect-to) могут достичь | Remote, desktop, and notifications | Managed |

787| [`statusLine`](#statusline) | Запустите свою собственную команду для отображения [строки состояния](/docs/ru/statusline) ниже приглашения | Interface and terminal | Any file |787| [`statusLine`](#statusline) | Запустите свою собственную команду для отображения [строки состояния](/docs/ru/statusline) ниже приглашения | Interface and terminal | Any file |

788| [`strictKnownMarketplaces`](#strictknownmarketplaces) | Список разрешений для источников [маркетплейса](/docs/ru/plugin-marketplaces), которые пользователи могут добавлять и устанавливать | Plugins and skills | Managed |788| [`strictKnownMarketplaces`](#strictknownmarketplaces) | Список разрешений для источников [маркетплейса](/docs/ru/plugins/overview) для пользователей, которые могут добавлять и устанавливать | Plugins and skills | Managed |

789| [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | Блокируйте [навыки](/docs/ru/skills), [агентов](/docs/ru/sub-agents), [hooks](/docs/ru/hooks) и [MCP серверы](/docs/ru/mcp) из источников пользователя и проекта | Plugins and skills | Managed |789| [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | Блокируйте [навыки](/docs/ru/skills), [агентов](/docs/ru/sub-agents), [hooks](/docs/ru/hooks) и [MCP серверы](/docs/ru/mcp) из источников пользователя и проекта | Plugins and skills | Managed |

790| [`strictPluginOnlyCustomization.agents`](#strictpluginonlycustomization-agents) | Заблокируйте [агентов](/docs/ru/sub-agents) для источников плагинов и управляемых источников | Plugins and skills | Managed |790| [`strictPluginOnlyCustomization.agents`](#strictpluginonlycustomization-agents) | Заблокируйте [агентов](/docs/ru/sub-agents) для источников плагинов и управляемых источников | Plugins and skills | Managed |

791| [`strictPluginOnlyCustomization.hooks`](#strictpluginonlycustomization-hooks) | Заблокируйте [hooks](/docs/ru/hooks) для источников плагинов и управляемых источников | Plugins and skills | Managed |791| [`strictPluginOnlyCustomization.hooks`](#strictpluginonlycustomization-hooks) | Заблокируйте [hooks](/docs/ru/hooks) для источников плагинов и управляемых источников | Plugins and skills | Managed |


794| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | Выберите [время жизни кэша подсказки](/docs/ru/prompt-caching#cache-lifetime) для подагентов и других запросов вне основного разговора | Model and responses | Any file |794| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | Выберите [время жизни кэша подсказки](/docs/ru/prompt-caching#cache-lifetime) для подагентов и других запросов вне основного разговора | Model and responses | Any file |

795| [`subagentStatusLine`](#subagentstatusline) | Переписывайте строки в [отображении задач подагента](/docs/ru/sub-agents) с помощью вашей собственной команды | Interface and terminal | Any file |795| [`subagentStatusLine`](#subagentstatusline) | Переписывайте строки в [отображении задач подагента](/docs/ru/sub-agents) с помощью вашей собственной команды | Interface and terminal | Any file |

796| [`switchModelsOnFlag`](#switchmodelsonflag) | Автоматически переключайте модели или приостанавливайте, когда [классификатор безопасности](/docs/ru/model-config#ask-before-switching) помечает запрос | Model and responses | Any file |796| [`switchModelsOnFlag`](#switchmodelsonflag) | Автоматически переключайте модели или приостанавливайте, когда [классификатор безопасности](/docs/ru/model-config#ask-before-switching) помечает запрос | Model and responses | Any file |

797| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | Остановите загрузку [плагинов, включённых в вашу учётную запись claude.ai](/docs/ru/plugins-reference#synced-plugins) и скройте уже синхронизированные | Plugins and skills | User, local, or managed |797| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | Остановите загрузку [плагинов, включённых в вашу учётную запись claude.ai](/docs/ru/plugins/loading#synced-plugins) и скройте уже синхронизированные | Plugins and skills | User, local, or managed |

798| [`syncClaudeAiSkills`](#syncclaudeaiskills) | Остановите загрузку [навыков, включённых в вашу учётную запись claude.ai](/docs/ru/skills#how-synced-skills-behave) и скройте уже синхронизированные | Plugins and skills | User, local, or managed |798| [`syncClaudeAiSkills`](#syncclaudeaiskills) | Остановите загрузку [навыков, включённых в вашу учётную запись claude.ai](/docs/ru/skills#how-synced-skills-behave) и скройте уже синхронизированные | Plugins and skills | User, local, or managed |

799| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | Отключите выделение синтаксиса в дифах и блоках кода | Interface and terminal | Any file |799| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | Отключите выделение синтаксиса в дифах и блоках кода | Interface and terminal | Any file |

800| [`taskOutputMaxChars`](#taskoutputmaxchars) | Удалено в v2.1.277 вместе с инструментом `TaskOutput`, который оно определяло | Memory and context | Any file |800| [`taskOutputMaxChars`](#taskoutputmaxchars) | Удалено в v2.1.277 вместе с инструментом `TaskOutput`, который оно определяло | Memory and context | Any file |


2256 `sandbox.credentials`2256 `sandbox.credentials`

2257</h3>2257</h3>

2258 2258 

2259Объявите файлы учетных данных и переменные окружения для [защиты от изолированных команд](/docs/ru/sandboxing#protect-credentials). Каждая запись называет файл `path` или переменную `name` и `mode`: `deny` скрывает учетные данные внутри песочницы, а `mask` показывает изолированным командам заполнитель, в то время как [sandbox proxy](/docs/ru/sandboxing#mask-credentials) подставляет реальное значение в исходящих запросах. Claude Code защищает только записи, которые вы перечисляете; нет встроенного списка отказа учетных данных. Требует Claude Code v2.1.187 или позже.2259Объявите файлы учетных данных и переменные окружения для [защиты от изолированных команд](/docs/ru/sandboxing#protect-credentials). Каждая запись называет файл `path` или переменную `name` и `mode`: `deny` скрывает учетные данные внутри песочницы, а `mask` показывает изолированным командам заполнитель, в то время как [sandbox proxy](/docs/ru/sandboxing#mask-credentials) подставляет реальное значение в исходящих запросах. Claude Code защищает только записи, которые вы перечисляете; нет встроенного списка отказа учетных данных.

2260 2260 

2261* **Scope**: [`Any file`](#scopes). Claude Code соблюдает записи `mask`, `allowPlaintextInject`, `awsPairs` и `sigv4` только из параметров пользователя, управляемых параметров и флага `--settings`.2261* **Scope**: [`Any file`](#scopes). Claude Code соблюдает записи `mask`, `allowPlaintextInject`, `awsPairs` и `sigv4` только из параметров пользователя, управляемых параметров и флага `--settings`.

2262* **Type**: object с `files`, `envVars`, `allowPlaintextInject`, `awsPairs` и `sigv4`2262* **Type**: object с `files`, `envVars`, `allowPlaintextInject`, `awsPairs` и `sigv4`


2275}2275}

2276```2276```

2277 2277 

2278Защита файла `deny` является частью слоя файловой системы, поэтому она не применяется, когда вы [disable filesystem isolation](/docs/ru/sandboxing#disable-filesystem-isolation); защита переменной окружения по-прежнему применяется. Требует Claude Code v2.1.187 или позже.2278Защита файла `deny` является частью слоя файловой системы, поэтому она не применяется, когда вы [disable filesystem isolation](/docs/ru/sandboxing#disable-filesystem-isolation); защита переменной окружения по-прежнему применяется.

2279 2279 

2280<h4 id="invalid-credential-entries-in-managed-settings">2280<h4 id="invalid-credential-entries-in-managed-settings">

2281 Недействительные записи учетных данных в управляемых параметрах2281 Недействительные записи учетных данных в управляемых параметрах


2293 `sandbox.credentials.files`2293 `sandbox.credentials.files`

2294</h3>2294</h3>

2295 2295 

2296Защитите файлы или каталоги учетных данных от изолированных команд. С `"mode": "deny"`, Claude Code блокирует чтение пути внутри песочницы, тот же блок чтения, что и [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread). С `"mode": "mask"`, изолированные команды на Linux и WSL2 читают копию файла-дозорного, и прокси песочницы подставляет реальное значение в исходящих запросах к `injectHosts` этой записи; на macOS файл вместо этого нечитаем внутри песочницы. Требует Claude Code v2.1.187 или позже, и `"mode": "mask"` требует v2.1.221 или позже.2296Защитите файлы или каталоги учетных данных от изолированных команд. С `"mode": "deny"`, Claude Code блокирует чтение пути внутри песочницы, тот же блок чтения, что и [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread). С `"mode": "mask"`, изолированные команды на Linux и WSL2 читают копию файла-дозорного, и прокси песочницы подставляет реальное значение в исходящих запросах к `injectHosts` этой записи; на macOS файл вместо этого нечитаем внутри песочницы. `"mode": "mask"` требует Claude Code v2.1.221 или позже.

2297 2297 

2298* **Scope**: [`Any file`](#scopes). Claude Code удаляет записи `mask` из проекта `.claude/settings.json` и локального `.claude/settings.local.json`.2298* **Scope**: [`Any file`](#scopes). Claude Code удаляет записи `mask` из проекта `.claude/settings.json` и локального `.claude/settings.local.json`.

2299* **Type**: array of objects, each with `path` and a `mode` of `"deny"` or `"mask"`, plus the optional [mask fields for files](#mask-fields-for-files)2299* **Type**: array of objects, each with `path` and a `mode` of `"deny"` or `"mask"`, plus the optional [mask fields for files](#mask-fields-for-files)


2314}2314}

2315```2315```

2316 2316 

2317Пути используют те же [prefixes](#sandbox-path-prefixes), что и параметры `sandbox.filesystem.*`, и Claude Code объединяет массивы из каждой области параметров, которые загружает сеанс. [Protect credentials](/docs/ru/sandboxing#protect-credentials) охватывает то, что по-прежнему применяется из источников, которые вы исключаете с помощью `--setting-sources`. Требует Claude Code v2.1.187 или позже; записи `mask` требуют v2.1.221 или позже.2317Пути используют те же [prefixes](#sandbox-path-prefixes), что и параметры `sandbox.filesystem.*`, и Claude Code объединяет массивы из каждой области параметров, которые загружает сеанс. [Protect credentials](/docs/ru/sandboxing#protect-credentials) охватывает то, что по-прежнему применяется из источников, которые вы исключаете с помощью `--setting-sources`. `mask` записи требуют Claude Code v2.1.221 или позже.

2318 2318 

2319Подстановка `mask` работает только через прокси песочницы, поэтому установите [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) или [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) для простых сетей HTTP-тестирования. `mask` применяется к одному файлу, поэтому перечислите каждый файл учетных данных отдельно. Claude Code принимает, но игнорирует поля `mask` в записи `deny`. [Mask credential files](/docs/ru/sandboxing#mask-credential-files) охватывает, какие источники параметров соблюдаются и когда запись возвращается к `deny`.2319Подстановка `mask` работает только через прокси песочницы, поэтому установите [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) или [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) для простых сетей HTTP-тестирования. `mask` применяется к одному файлу, поэтому перечислите каждый файл учетных данных отдельно. Claude Code принимает, но игнорирует поля `mask` в записи `deny`. [Mask credential files](/docs/ru/sandboxing#mask-credential-files) охватывает, какие источники параметров соблюдаются и когда запись возвращается к `deny`.

2320 2320 


2370 `sandbox.credentials.envVars`2370 `sandbox.credentials.envVars`

2371</h3>2371</h3>

2372 2372 

2373Защитите переменные окружения от изолированных команд. С `"mode": "deny"`, Claude Code удаляет переменную из окружения изолированных команд. С `"mode": "mask"`, изолированные команды видят значение дозорного для каждого сеанса, и прокси песочницы подставляет реальное значение в исходящих запросах к `injectHosts` этой записи, поэтому инструменты, такие как `gh` и `npm`, продолжают аутентифицироваться без когда-либо удержания реальных учетных данных. Требует Claude Code v2.1.187 или позже, и `"mode": "mask"` требует v2.1.199 или позже.2373Защитите переменные окружения от изолированных команд. С `"mode": "deny"`, Claude Code удаляет переменную из окружения изолированных команд. С `"mode": "mask"`, изолированные команды видят значение дозорного для каждого сеанса, и прокси песочницы подставляет реальное значение в исходящих запросах к `injectHosts` этой записи, поэтому инструменты, такие как `gh` и `npm`, продолжают аутентифицироваться без когда-либо удержания реальных учетных данных. `"mode": "mask"` требует Claude Code v2.1.199 или позже.

2374 2374 

2375* **Scope**: [`Any file`](#scopes). Claude Code удаляет записи `mask` из проекта `.claude/settings.json` и локального `.claude/settings.local.json`.2375* **Scope**: [`Any file`](#scopes). Claude Code удаляет записи `mask` из проекта `.claude/settings.json` и локального `.claude/settings.local.json`.

2376* **Type**: array of objects, each with `name` and a `mode` of `"deny"` or `"mask"`, plus the optional [mask fields for environment variables](#mask-fields-for-environment-variables)2376* **Type**: array of objects, each with `name` and a `mode` of `"deny"` or `"mask"`, plus the optional [mask fields for environment variables](#mask-fields-for-environment-variables)


2391}2391}

2392```2392```

2393 2393 

2394`name` должно начинаться с буквы или подчеркивания и содержать только буквы, цифры и подчеркивания. Claude Code объединяет массивы из каждой области параметров, которые загружает сеанс, и применяет `deny`, когда одна и та же переменная появляется с обоими режимами. [Protect credentials](/docs/ru/sandboxing#protect-credentials) охватывает то, что по-прежнему применяется из источников, которые вы исключаете с помощью `--setting-sources`. Требует Claude Code v2.1.187 или позже; записи `mask` требуют v2.1.199 или позже.2394`name` должно начинаться с буквы или подчеркивания и содержать только буквы, цифры и подчеркивания. Claude Code объединяет массивы из каждой области параметров, которые загружает сеанс, и применяет `deny`, когда одна и та же переменная появляется с обоими режимами. [Protect credentials](/docs/ru/sandboxing#protect-credentials) охватывает то, что по-прежнему применяется из источников, которые вы исключаете с помощью `--setting-sources`. `mask` записи требуют Claude Code v2.1.199 или позже.

2395 2395 

2396Подстановка `mask` работает только через прокси песочницы, поэтому установите [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) или [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) для простых сетей HTTP-тестирования; см. [Mask environment variables](/docs/ru/sandboxing#mask-environment-variables). Claude Code принимает, но игнорирует поля `mask` в записи `deny`.2396Подстановка `mask` работает только через прокси песочницы, поэтому установите [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) или [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) для простых сетей HTTP-тестирования; см. [Mask environment variables](/docs/ru/sandboxing#mask-environment-variables). Claude Code принимает, но игнорирует поля `mask` в записи `deny`.

2397 2397 


2954 `env`2954 `env`

2955</h3>2955</h3>

2956 2956 

2957Установите переменные окружения для каждой сессии и для подпроцессов, которые Claude Code запускает из неё. Любая переменная в [справочнике переменных окружения](/docs/ru/env-vars) может быть здесь, что позволяет применить её к каждой сессии или развернуть её в вашей команде.2957Установите переменные окружения для каждой сессии и для подпроцессов, которые Claude Code запускает из неё. Большинство переменных в [справочнике переменных окружения](/docs/ru/env-vars) могут быть здесь, что позволяет применить одну к каждой сессии или развернуть её в вашей команде. Параметры проекта и локальные параметры не могут устанавливать [некоторые из них](#variables-claude-code-ignores-in-env).

2958 2958 

2959* **Scope**: [`Any file`](#scopes)2959* **Scope**: [`Any file`](#scopes)

2960* **Type**: объект, отображающий имена переменных на строковые значения2960* **Type**: объект, отображающий имена переменных на строковые значения


2975 Как значения `env` взаимодействуют с вашей оболочкой2975 Как значения `env` взаимодействуют с вашей оболочкой

2976</h4>2976</h4>

2977 2977 

2978* Значение здесь перезаписывает ту же переменную, экспортированную в вашей оболочке, и когда более одного файла параметров устанавливает переменную, применяется [наиболее приоритетный](/docs/ru/settings#settings-precedence).2978* Значение здесь перезаписывает ту же переменную, экспортированную в вашей оболочке, и когда более одного файла параметров устанавливает переменную, применяется [наиболее приоритетный](/docs/ru/settings#settings-precedence). [Переменные, которые Claude Code игнорирует в `env`](#variables-claude-code-ignores-in-env) перечисляет исключения для параметров проекта и локальных параметров.

2979* Чтобы отменить экспорт оболочки, установите переменную на `""`. Claude Code рассматривает пустое значение как не установленное для выбора поставщика, и подпроцессы наследуют пустое значение.2979* Чтобы отменить экспорт оболочки, установите переменную на `""`. Claude Code рассматривает пустое значение как не установленное для выбора поставщика, и подпроцессы наследуют пустое значение.

2980* `NO_COLOR` и `FORCE_COLOR`, установленные здесь, достигают только подпроцессов. Чтобы изменить цвета собственного интерфейса Claude Code, установите их в вашей оболочке перед запуском `claude`.2980* `NO_COLOR` и `FORCE_COLOR`, установленные здесь, достигают только подпроцессов. Чтобы изменить цвета собственного интерфейса Claude Code, установите их в вашей оболочке перед запуском `claude`.

2981* Значения здесь представляют собой простой текст в файле параметров и достигают каждого подпроцесса, который запускает Claude Code. Для токена OTLP, который ротируется, используйте [`otelHeadersHelper`](#otelheadershelper); для учётных данных API используйте [`apiKeyHelper`](#apikeyhelper).2981* Значения здесь представляют собой простой текст в файле параметров и достигают каждого подпроцесса, который запускает Claude Code. Для токена OTLP, который ротируется, используйте [`otelHeadersHelper`](#otelheadershelper); для учётных данных API используйте [`apiKeyHelper`](#apikeyhelper).


2986 2986 

2987* Из пользовательских параметров, `--settings` и управляемых параметров: при запуске и снова в работающей сессии, когда сохранённое изменение изменяет объединённый `env`.2987* Из пользовательских параметров, `--settings` и управляемых параметров: при запуске и снова в работающей сессии, когда сохранённое изменение изменяет объединённый `env`.

2988* Из параметров проекта и локальных параметров: после того, как вы доверяете рабочей области, или при запуске в режиме `-p`, который никогда не показывает диалог доверия, и снова, когда сохранённое изменение изменяет объединённый `env`.2988* Из параметров проекта и локальных параметров: после того, как вы доверяете рабочей области, или при запуске в режиме `-p`, который никогда не показывает диалог доверия, и снова, когда сохранённое изменение изменяет объединённый `env`.

2989* Переменные, которые Claude Code классифицирует как безопасные, такие как выбор модели, тайм-ауты и лимиты, переключатели функций и параметры телеметрии: при запуске из каждого файла параметров, кроме [переменных, которые параметры проекта и локальные параметры не могут устанавливать](#variables-claude-code-ignores-in-env).2989* Переменные, которые Claude Code классифицирует как безопасные, такие как выбор модели, тайм-ауты и лимиты, и переключатели функций: при запуске из каждого файла параметров, кроме [переменных, которые параметры проекта и локальные параметры не могут устанавливать](#variables-claude-code-ignores-in-env).

2990* После того, как вы [переместите сессию с помощью `/cd`](/docs/ru/permissions#move-the-session-to-another-directory) на v2.1.246 или позже: значения `env` нового каталога проекта и локальные, поверх предыдущего каталога.2990* После того, как вы [переместите сессию с помощью `/cd`](/docs/ru/permissions#move-the-session-to-another-directory) на v2.1.246 или позже: значения `env` нового каталога проекта и локальные, поверх предыдущего каталога.

2991 2991 

2992<h4 id="variables-claude-code-ignores-in-env">2992<h4 id="variables-claude-code-ignores-in-env">


2997 2997 

2998 * Переменные, которые выбирают, где Claude Code хранит или записывает свои собственные файлы: `CLAUDE_CONFIG_DIR`, `CLAUDE_CODE_TMPDIR` и переменные каталога операционной системы, такие как `HOME`, `TMPDIR`, `TMP`, `TEMP` и семейство `XDG_*`.2998 * Переменные, которые выбирают, где Claude Code хранит или записывает свои собственные файлы: `CLAUDE_CONFIG_DIR`, `CLAUDE_CODE_TMPDIR` и переменные каталога операционной системы, такие как `HOME`, `TMPDIR`, `TMP`, `TEMP` и семейство `XDG_*`.

2999 * Переменные, которые экспортируют содержимое сессии: [`OTEL_LOG_RAW_API_BODIES`](/docs/ru/env-vars#variables) и подробная бета-версия пары трассировки `ENABLE_BETA_TRACING_DETAILED` и `BETA_TRACING_ENDPOINT`.2999 * Переменные, которые экспортируют содержимое сессии: [`OTEL_LOG_RAW_API_BODIES`](/docs/ru/env-vars#variables) и подробная бета-версия пары трассировки `ENABLE_BETA_TRACING_DETAILED` и `BETA_TRACING_ENDPOINT`.

3000 * Переменные [OpenTelemetry exporter](/docs/ru/monitoring-usage), которые включают телеметрию, выбирают, куда она идёт, или выбирают, какое содержимое она захватывает:

3001 

3002 * `CLAUDE_CODE_ENABLE_TELEMETRY`, плюс улучшенная телеметрия бета-версия пары `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA` и `ENABLE_ENHANCED_TELEMETRY_BETA`

3003 * Селекторы exporter `OTEL_LOGS_EXPORTER`, `OTEL_METRICS_EXPORTER` и `OTEL_TRACES_EXPORTER`

3004 * Переменные содержимого `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_ASSISTANT_RESPONSES`, `OTEL_LOG_TOOL_CONTENT` и `OTEL_LOG_TOOL_DETAILS`

3005 * Переменные `OTEL_EXPORTER_OTLP_*`, чьи имена заканчиваются на `_ENDPOINT`, `_HEADERS`, `_PROTOCOL`, `_CERTIFICATE`, `_CLIENT_KEY` или `_INSECURE`, в общих и по-сигнальных формах, таких как `OTEL_EXPORTER_OTLP_ENDPOINT` и `OTEL_EXPORTER_OTLP_METRICS_HEADERS`

3006 * `OTEL_EXPORTER_PROMETHEUS_HOST` и `OTEL_EXPORTER_PROMETHEUS_PORT`

3007 

3008 Только эти значения всё ещё применяются из параметров проекта и локальных параметров, потому что они отключают что-то: `none` для трёх селекторов exporter и значение off, такое как `0` для `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_CONTENT` и `OTEL_LOG_TOOL_DETAILS`. Такое значение переопределяет ту же переменную в ваших пользовательских параметрах, но не ту, которую среда, из которой вы запускаете Claude Code, файл `--settings` или управляемые параметры устанавливают.

3009 

3010 Когда файл параметров проекта или локальных параметров устанавливает переменную в этой группе, локальная интерактивная сессия показывает уведомление при запуске. Запустите `/status` или `claude doctor`, чтобы увидеть, какие из них Claude Code игнорировал и какие отключили телеметрию; оба перечисляют имена, никогда значения. Неинтерактивный запуск с `-p` или сессия Agent SDK не показывает уведомление, поэтому проверьте, что ваш сборщик всё ещё получает данные после обновления. Если нет, установите переменные в ваши пользовательские параметры, управляемые параметры, среду задания или файл, который вы передаёте с помощью `--settings`.

3011 

3012 Игнорирование этой группы в параметрах проекта и локальных параметрах требует Claude Code v2.1.282 или позже.

3000 * Переменные, которые изменяют способ запуска или синхронизации Claude Code, такие как `CLAUDE_CODE_PROCESS_WRAPPER`, `CLAUDE_CODE_SYNC_SKILLS`, `CLAUDE_CODE_SYNC_PLUGINS`, `CLAUDE_CODE_PLUGIN_CACHE_DIR` и `CLAUDE_CODE_PLUGIN_SEED_DIR`.3013 * Переменные, которые изменяют способ запуска или синхронизации Claude Code, такие как `CLAUDE_CODE_PROCESS_WRAPPER`, `CLAUDE_CODE_SYNC_SKILLS`, `CLAUDE_CODE_SYNC_PLUGINS`, `CLAUDE_CODE_PLUGIN_CACHE_DIR` и `CLAUDE_CODE_PLUGIN_SEED_DIR`.

3001 3014 

3002 До v2.1.251 параметры проекта и локальные параметры могли устанавливать каждую переменную, которую этот список называет, кроме `HOME`, `XDG_CONFIG_HOME` и переменных, которые изменяют способ запуска или синхронизации Claude Code.3015 До v2.1.251 параметры проекта и локальные параметры могли также устанавливать переменные в этом списке, которые выбирают, где Claude Code записывает свои файлы или которые экспортируют содержимое сессии, кроме `HOME` и `XDG_CONFIG_HOME`.

3003* Переменные идентификации, которыми владеют среды хостинга Claude Code, такие как `CLAUDE_CODE_REMOTE` и `CLAUDE_CODE_ACCOUNT_UUID`, игнорируются из каждого файла.3016* Переменные идентификации, которыми владеют среды хостинга Claude Code, такие как `CLAUDE_CODE_REMOTE` и `CLAUDE_CODE_ACCOUNT_UUID`, игнорируются из каждого файла.

3004* [`CLAUDE_CODE_MESSAGING_SOCKET` и `CLAUDE_CODE_MESSAGING_TOKEN`](/docs/ru/env-vars#variables), которые Claude Code экспортирует сам, игнорируются из каждого файла. Игнорирование переменной сокета требует Claude Code v2.1.224 или позже, а игнорирование токена требует v2.1.228 или позже.3017* [`CLAUDE_CODE_MESSAGING_SOCKET` и `CLAUDE_CODE_MESSAGING_TOKEN`](/docs/ru/env-vars#variables), которые Claude Code экспортирует сам, игнорируются из каждого файла. Игнорирование переменной сокета требует Claude Code v2.1.224 или позже, а игнорирование токена требует v2.1.228 или позже.

3005* [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/ru/sessions#name-the-project-directory-yourself), которую Claude Code читает только из среды запуска, игнорируется из каждого файла; требует v2.1.234 или позже.3018* [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/ru/sessions#name-the-project-directory-yourself), которую Claude Code читает только из среды запуска, игнорируется из каждого файла; требует v2.1.234 или позже.


3464 `respondToBashCommands`3477 `respondToBashCommands`

3465</h3>3478</h3>

3466 3479 

3467Выберите, отвечает ли Claude после того, как вы запустите команду оболочки с префиксом [`!`](/docs/ru/interactive-mode#shell-mode-with-prefix) в поле ввода. По умолчанию Claude Code добавляет вывод команды в разговор и Claude отвечает на него. Установите этот ключ на `false`, чтобы добавить вывод в контекст без ответа, чтобы вы могли запустить несколько команд и спросить о них вместе. Требуется Claude Code v2.1.186 или позже.3480Выберите, отвечает ли Claude после того, как вы запустите команду оболочки с префиксом [`!`](/docs/ru/interactive-mode#shell-mode-with-prefix) в поле ввода. По умолчанию Claude Code добавляет вывод команды в разговор и Claude отвечает на него. Установите этот ключ на `false`, чтобы добавить вывод в контекст без ответа, чтобы вы могли запустить несколько команд и спросить о них вместе.

3468 3481 

3469* **Область действия**: [`Любой файл`](#scopes)3482* **Область действия**: [`Любой файл`](#scopes)

3470* **Тип**: Boolean3483* **Тип**: Boolean


3478}3491}

3479```3492```

3480 3493 

3481См. [Режим оболочки с префиксом `!`](/docs/ru/interactive-mode#shell-mode-with-prefix). Требуется Claude Code v2.1.186 или позже.3494См. [Режим оболочки с префиксом `!`](/docs/ru/interactive-mode#shell-mode-with-prefix).

3482 3495 

3483<h3 id="showclearcontextonplanaccept">3496<h3 id="showclearcontextonplanaccept">

3484 `showClearContextOnPlanAccept`3497 `showClearContextOnPlanAccept`


3985Настройте атрибуцию, которую Claude Code добавляет к git коммитам и pull request'ам. По умолчанию коммиты получают [git trailer](https://git-scm.com/docs/git-interpret-trailers) такой как `Co-Authored-By`; описания pull request'ов получают простой текст. Установите каждую часть отдельно с помощью подключей ниже.3998Настройте атрибуцию, которую Claude Code добавляет к git коммитам и pull request'ам. По умолчанию коммиты получают [git trailer](https://git-scm.com/docs/git-interpret-trailers) такой как `Co-Authored-By`; описания pull request'ов получают простой текст. Установите каждую часть отдельно с помощью подключей ниже.

3986 3999 

3987* **Область действия**: [`Any file`](#scopes)4000* **Область действия**: [`Any file`](#scopes)

3988* **Тип**: объект со строками `commit` и `pr` и логическим значением `sessionUrl`4001* **Тип**: объект со строками `commit` и `pr` и логическим значением `sessionUrl`, или `false` для скрытия всей атрибуции. Значение `false` требует Claude Code v2.1.281 или позже; более ранние версии его отклоняют и [пропускают весь файл пользователя, проекта или локальных параметров](/docs/ru/settings#fix-a-broken-settings-file), который его содержит

3989* **По умолчанию**: не установлено, поэтому Claude Code использует стандартную атрибуцию, показанную под каждым подключом4002* **По умолчанию**: не установлено, поэтому Claude Code использует стандартную атрибуцию, показанную под каждым подключом

3990 4003 

4004Чтобы скрыть всю атрибуцию, установите `attribution` в `false`. В файле параметров, который также читают более ранние версии, установите [`commit`](#attribution-commit) и [`pr`](#attribution-pr) в пустые строки и [`sessionUrl`](#attribution-sessionurl) в `false` вместо этого.

4005 

3991Этот пример заменяет атрибуцию коммита, удаляет атрибуцию pull request'а и убирает ссылку на сеанс:4006Этот пример заменяет атрибуцию коммита, удаляет атрибуцию pull request'а и убирает ссылку на сеанс:

3992 4007 

3993```json settings.json theme={null}4008```json settings.json theme={null}


4000}4015}

4001```4016```

4002 4017 

4003Чтобы скрыть всю атрибуцию, установите [`commit`](#attribution-commit) и [`pr`](#attribution-pr) в пустые строки и [`sessionUrl`](#attribution-sessionurl) в `false`. После того как вы установите `commit` или `pr`, Claude Code игнорирует устаревший параметр `includeCoAuthoredBy` и использует текст по умолчанию для того из двух, который вы оставили без установки.4018После того как вы установите `commit` или `pr`, Claude Code игнорирует устаревший параметр `includeCoAuthoredBy` и использует текст по умолчанию для того из двух, который вы оставили без установки.

4004 4019 

4005Claude Code сообщает Claude, что ваши собственные инструкции об атрибуции, такие как CLAUDE.md или правило [memory](/docs/ru/memory), имеют приоритет над этими строками коммита и PR, если только строка не установлена в [управляемых параметрах](/docs/ru/managed-settings).4020Claude Code сообщает Claude, что ваши собственные инструкции об атрибуции, такие как CLAUDE.md или правило [memory](/docs/ru/memory), имеют приоритет над этими строками коммита и PR, если только строка не установлена в [управляемых параметрах](/docs/ru/managed-settings).

4006 4021 


4026}4041}

4027```4042```

4028 4043 

4029Чтобы скрыть всю атрибуцию сегодня, установите [`attribution.commit`](#attribution-commit) и [`attribution.pr`](#attribution-pr) в пустые строки и [`attribution.sessionUrl`](#attribution-sessionurl) в `false`.4044Чтобы скрыть всю атрибуцию, см. [`attribution`](#attribution).

4030 4045 

4031<h3 id="includegitinstructions">4046<h3 id="includegitinstructions">

4032 `includeGitInstructions`4047 `includeGitInstructions`


4184* **Запускаются управляемые и SDK hooks**: hooks из управляемых параметров и hooks, которые [Agent SDK](/docs/ru/agent-sdk/overview) регистрирует в процессе4199* **Запускаются управляемые и SDK hooks**: hooks из управляемых параметров и hooks, которые [Agent SDK](/docs/ru/agent-sdk/overview) регистрирует в процессе

4185* **Запускаются hooks принудительно включённых плагинов**: hooks из плагинов, которые ваши управляемые параметры принудительно включают через [`enabledPlugins`](#enabledplugins). Claude Code сопоставляет полный ID `plugin@marketplace`, поэтому плагин с тем же именем из другого marketplace остаётся заблокированным. Это позволяет вам распространять проверенные hooks через организационный marketplace, блокируя всё остальное4200* **Запускаются hooks принудительно включённых плагинов**: hooks из плагинов, которые ваши управляемые параметры принудительно включают через [`enabledPlugins`](#enabledplugins). Claude Code сопоставляет полный ID `plugin@marketplace`, поэтому плагин с тем же именем из другого marketplace остаётся заблокированным. Это позволяет вам распространять проверенные hooks через организационный marketplace, блокируя всё остальное

4186* **Всё остальное блокируется**: пользовательские, проектные и локальные hooks, hooks из других плагинов и hooks, объявленные в frontmatter агента4201* **Всё остальное блокируется**: пользовательские, проектные и локальные hooks, hooks из других плагинов и hooks, объявленные в frontmatter агента

4187* **Плагины с источником команды отключены**: Claude Code также отключает плагины с [источником `command`](/docs/ru/plugin-marketplaces#command-sources), включая плагины, принудительно включённые в управляемых `enabledPlugins`, если вы не установите [`disableCommandPluginSources`](#disablecommandpluginsources) явно в `false`4202* **Плагины с источником команды отключены**: Claude Code также отключает плагины с [источником `command`](/docs/ru/plugins/marketplace-reference#command-plugin-source), включая плагины, принудительно включённые в управляемых `enabledPlugins`, если вы не установите [`disableCommandPluginSources`](#disablecommandpluginsources) явно в `false`

4188* **Команды marketplace `headersHelper` блокируются**: Claude Code также блокирует команды marketplace [`headersHelper`](/docs/ru/plugin-marketplaces#authenticate-archive-downloads), если [`disableCommandPluginSources`](#disablecommandpluginsources) явно не установлен в `false`, за исключением marketplace, который сами управляемые параметры объявляют. Требуется Claude Code v2.1.238 или позже4203* **Команды marketplace `headersHelper` блокируются**: Claude Code также блокирует команды marketplace [`headersHelper`](/docs/ru/plugins/host-marketplace#authenticate-archive-downloads), если [`disableCommandPluginSources`](#disablecommandpluginsources) явно не установлен в `false`, за исключением marketplace, который сами управляемые параметры объявляют. Требуется Claude Code v2.1.238 или позже

4189* **Строка состояния и предложение файла сужаются до управляемых параметров**: Claude Code читает [`statusLine`](/docs/ru/statusline), [`fileSuggestion`](#filesuggestion) и [`subagentStatusLine`](/docs/ru/statusline#subagent-status-lines) только из управляемых параметров, следуя [шлюзам строки состояния и предложения файла](#status-line-and-file-suggestion-gates)4204* **Строка состояния и предложение файла сужаются до управляемых параметров**: Claude Code читает [`statusLine`](/docs/ru/statusline), [`fileSuggestion`](#filesuggestion) и [`subagentStatusLine`](/docs/ru/statusline#subagent-status-lines) только из управляемых параметров, следуя [шлюзам строки состояния и предложения файла](#status-line-and-file-suggestion-gates)

4190 4205 

4191Команда [`/goal`](/docs/ru/goal) не может запуститься, пока этот ключ установлен, потому что она зависит от hooks.4206Команда [`/goal`](/docs/ru/goal) не может запуститься, пока этот ключ установлен, потому что она зависит от hooks.


4366<span id="plugin-settings" />4381<span id="plugin-settings" />

4367 4382 

4368<h2 id="plugins-and-skills">4383<h2 id="plugins-and-skills">

4369 Plugins и skills4384 Plugins and skills

4370</h2>4385</h2>

4371 4386 

4372Включайте plugins, регистрируйте marketplaces, ограничивайте источники plugins, которые разрешены в вашей организации, и контролируйте, какие skills загружаются. Для установки и создания plugins см. [Plugins](/docs/ru/plugins).4387Включайте плагины, регистрируйте маркетплейсы, ограничивайте источники плагинов, которые разрешены в вашей организации, и контролируйте, какие skills загружаются. Для установки и создания плагинов см. [Plugins](/docs/ru/plugins/overview).

4373 4388 

4374<h3 id="disablebundledskills">4389<h3 id="disablebundledskills">

4375 `disableBundledSkills`4390 `disableBundledSkills`

4376</h3>4391</h3>

4377 4392 

4378Отключите [skills](/docs/ru/skills) и workflows, включённые в Claude Code. Claude Code полностью удаляет встроенные skills и workflows, в то время как встроенные команды, такие как `/init`, остаются доступными для ввода, но скрыты от модели.4393Отключите [skills](/docs/ru/skills) и рабочие процессы, включённые в Claude Code. Claude Code полностью удаляет встроенные skills и рабочие процессы, в то время как встроенные команды, такие как `/init`, остаются доступными для ввода, но скрыты от модели.

4379 4394 

4380* **Scope**: [`Any file`](#scopes)4395* **Scope**: [`Any file`](#scopes)

4381* **Type**: Boolean4396* **Type**: Boolean

4382 * `true`: Claude Code удаляет встроенные skills и workflows и скрывает встроенные команды, такие как `/init`, от модели4397 * `true`: Claude Code удаляет встроенные skills и рабочие процессы и скрывает встроенные команды, такие как `/init`, от модели

4383 * `false`: встроенные skills загружаются4398 * `false`: встроенные skills загружаются

4384* **Default**: не установлено, поэтому встроенные skills загружаются4399* **Default**: не установлено, поэтому встроенные skills загружаются

4385* **Per-session overrides**: [`CLAUDE_CODE_DISABLE_BUNDLED_SKILLS`](/docs/ru/env-vars) установлено на `1` отключает встроенные skills на одну сессию; какой бы из двух способов их ни отключил, другой не сможет их включить обратно4400* **Per-session overrides**: [`CLAUDE_CODE_DISABLE_BUNDLED_SKILLS`](/docs/ru/env-vars) установлено на `1` отключает встроенные skills на одну сессию; какой бы из двух способов их ни отключил, другой не сможет их включить обратно


4390}4405}

4391```4406```

4392 4407 

4393Skills из plugins, `.claude/skills/` и `.claude/commands/` не затрагиваются. `/doctor` остаётся доступным для ввода, как встроенные команды; чтобы скрыть его, установите [`DISABLE_DOCTOR_COMMAND`](/docs/ru/env-vars) вместо этого.4408Skills из плагинов, `.claude/skills/` и `.claude/commands/` не затрагиваются. `/doctor` остаётся доступным для ввода, как встроенные команды; чтобы скрыть его, установите [`DISABLE_DOCTOR_COMMAND`](/docs/ru/env-vars) вместо этого.

4394 4409 

4395<h3 id="disableskillshellexecution">4410<h3 id="disableskillshellexecution">

4396 `disableSkillShellExecution`4411 `disableSkillShellExecution`

4397</h3>4412</h3>

4398 4413 

4399Отключите встроенное выполнение shell для `` !`...` `` и ` ```! ` блоков в [skills](/ru/skills) и пользовательских команд из источников user, project, plugin или additional-directory. Claude Code заменяет каждую команду на `[shell command execution disabled by policy]` вместо её выполнения.4414Отключите встроенное выполнение shell для `` !`...` `` и ` ```! ` блоков в [skills](/ru/skills) и пользовательских команд из источников пользователя, проекта, плагина или дополнительного каталога. Claude Code заменяет каждую команду на `[shell command execution disabled by policy]` вместо её выполнения.

4400 4415 

4401* **Scope**: [`Any file`](#scopes). `true` в управляемых параметрах не может быть переопределён на `false` в другом месте.4416* **Scope**: [`Any file`](#scopes). `true` в управляемых параметрах не может быть переопределён на `false` в другом месте.

4402* **Type**: Boolean4417* **Type**: Boolean

4403 * `true`: Claude Code заменяет каждую встроенную shell-команду на `[shell command execution disabled by policy]` вместо её выполнения4418 * `true`: Claude Code заменяет каждую встроенную shell команду на `[shell command execution disabled by policy]` вместо её выполнения

4404 * `false`: встроенный shell выполняется4419 * `false`: встроенный shell выполняется

4405* **Default**: не установлено, поэтому встроенный shell выполняется4420* **Default**: не установлено, поэтому встроенный shell выполняется

4406 4421 


4416 `skillOverrides`4431 `skillOverrides`

4417</h3>4432</h3>

4418 4433 

4419Скройте или свёрните [skill](/docs/ru/skills#override-skill-visibility-from-settings) без редактирования его `SKILL.md`. Claude Code применяет значение под каждым именем skill к списку skills, который видит Claude, и к вашему `/` автодополнению.4434Скройте или свёрните [skill](/docs/ru/skills#override-skill-visibility-from-settings) без редактирования его `SKILL.md`. Claude Code применяет значение под именем каждого skill к списку skills, который видит Claude, и к вашему автодополнению `/`.

4420 4435 

4421* **Scope**: [`Any file`](#scopes). Меню `/skills` записывает в `.claude/settings.local.json`.4436* **Scope**: [`Any file`](#scopes). Меню `/skills` записывает в `.claude/settings.local.json`.

4422* **Type**: object, отображающий имя skill на одно из:4437* **Type**: объект, отображающий имя skill на одно из:

4423 * `"on"`: Claude видит skill и вы можете ввести `/name`4438 * `"on"`: Claude видит skill и вы можете ввести `/name`

4424 * `"name-only"`: Claude видит skill по имени без его описания4439 * `"name-only"`: Claude видит skill по имени без его описания

4425 * `"user-invocable-only"`: Claude не видит skill, но вы всё ещё можете ввести `/name`4440 * `"user-invocable-only"`: Claude не видит skill, но вы всё ещё можете ввести `/name`

4426 * `"off"`: Claude не видит skill и `/name` скрыт от автодополнения4441 * `"off"`: Claude не видит skill и `/name` скрыт из автодополнения

4427* **Default**: не установлено, поэтому каждый skill имеет значение `"on"`4442* **Default**: не установлено, поэтому каждый skill имеет значение `"on"`

4428 4443 

4429Этот пример отображает `legacy-context` Claude только по имени и скрывает `deploy` от Claude и от автодополнения `/`:4444Этот пример перечисляет `legacy-context` для Claude только по имени и скрывает `deploy` от Claude и из автодополнения `/`:

4430 4445 

4431```json settings.json theme={null}4446```json settings.json theme={null}

4432{4447{


4437}4452}

4438```4453```

4439 4454 

4440Переопределения не применяются к plugin skills, которыми вы управляете через `/plugin`.4455Переопределения не применяются к skills плагинов, которыми вы управляете через `/plugin`.

4441 4456 

4442В управляемых параметрах и файлах, переданных с `--settings`, ключ на alias встроенного skill, такой как `checkup` для `/doctor`, также применяется к skill; см. [как ключи alias объединяются с ключами на собственном имени skill](/docs/ru/skills#override-skill-visibility-from-settings).4457В управляемых параметрах и файлах, переданных с `--settings`, ключ на псевдониме встроенного skill, такой как `checkup` для `/doctor`, также применяется к skill; см. [как ключи псевдонимов объединяются с ключами на собственном имени skill](/docs/ru/skills#override-skill-visibility-from-settings).

4443 4458 

4444<h3 id="syncclaudeaiskills">4459<h3 id="syncclaudeaiskills">

4445 `syncClaudeAiSkills`4460 `syncClaudeAiSkills`

4446</h3>4461</h3>

4447 4462 

4448Отключите загрузку [skills, включённых для вашей учётной записи claude.ai](/docs/ru/skills#how-synced-skills-behave). Claude Code загружает их в `~/.claude/skills/synced/` в [сеансах терминала, где вы входите с вашей учётной записью claude.ai](/docs/ru/skills#where-synced-skills-load), интерактивных или неинтерактивных, а также в сеансах Cowork и cloud. Установите `false`, чтобы остановить эту загрузку и остановить загрузку skills, которые она уже синхронизировала. Claude Code учитывает только `false`: `true` то же самое, что и не установлено, и не включает синхронизацию там, где она иначе отключена.4463Отключите загрузку [skills, включённых для вашей учётной записи claude.ai](/docs/ru/skills#how-synced-skills-behave). Claude Code загружает их в `~/.claude/skills/synced/` в [сеансах терминала, где вы входите с вашей учётной записью claude.ai](/docs/ru/skills#where-synced-skills-load), интерактивных или неинтерактивных, а также в сеансах Cowork и облачных сеансах. Установите `false`, чтобы остановить эту загрузку и остановить загрузку skills, которые она уже синхронизировала. Claude Code учитывает только `false`: `true` то же самое, что и не установлено, и не включает синхронизацию там, где она иначе отключена.

4449 4464 

4450* **Scope**: [`User, local, or managed`](#scopes), и файлы, переданные с `--settings`. Репозиторий не может отключить её для вас.4465* **Scope**: [`User, local, or managed`](#scopes), и файлы, переданные с `--settings`. Репозиторий не может отключить её для вас.

4451* **Type**: Boolean4466* **Type**: Boolean

4452 * `false`: Claude Code прекращает загрузку синхронизированных skills и прекращает загрузку тех, которые уже находятся в `~/.claude/skills/synced/`. В пользовательских или управляемых параметрах он также перемещает их в `~/.claude/skills/.trash/`4467 * `false`: Claude Code прекращает загрузку синхронизированных skills и прекращает загрузку тех, которые уже находятся в `~/.claude/skills/synced/`. В пользовательских или управляемых параметрах он также перемещает их в `~/.claude/skills/.trash/`

4453 * `true`: то же самое, что и не установлено4468 * `true`: то же самое, что и не установлено

4454* **Default**: не установлено, поэтому сеансы, вошедшие с вашей учётной записью claude.ai, синхронизируют ваши skills4469* **Default**: не установлено, поэтому сеансы, в которых вы входите с вашей учётной записью claude.ai, синхронизируют ваши skills

4455 4470 

4456Этот пример предотвращает загрузку skills учётной записи машиной в любом сеансе:4471Этот пример предотвращает загрузку skills учётной записи машиной в любом сеансе:

4457 4472 


4465 `syncClaudeAiPlugins`4480 `syncClaudeAiPlugins`

4466</h3>4481</h3>

4467 4482 

4468Отключите загрузку [plugins, включённых для вашей учётной записи claude.ai](/docs/ru/plugins-reference#synced-plugins). Claude Code загружает их в `~/.claude/plugins/synced/` в начале сеансов терминала, где вы входите с вашей учётной записью claude.ai, а также в сеансах Cowork и cloud, и загружает каждый как `<name>@synced`. Установите `false`, чтобы остановить эту загрузку и остановить загрузку plugins, которые она уже синхронизировала. Claude Code учитывает только `false`: `true` то же самое, что и не установлено, и не включает синхронизацию там, где она иначе отключена. Требуется Claude Code v2.1.273 или позже.4483Отключите загрузку [плагинов, включённых для вашей учётной записи claude.ai](/docs/ru/plugins/loading#synced-plugins). Claude Code загружает их в `~/.claude/plugins/synced/` в начале сеансов терминала, где вы входите с вашей учётной записью claude.ai, и в сеансах Cowork, и загружает каждый как `<name>@synced`. Установите `false`, чтобы остановить эту загрузку и остановить загрузку плагинов, которые она уже синхронизировала. Claude Code учитывает только `false`: `true` то же самое, что и не установлено, и не включает синхронизацию там, где она иначе отключена. Требуется Claude Code v2.1.273 или позже.

4469 4484 

4470* **Scope**: [`User, local, or managed`](#scopes), и файлы, переданные с `--settings`. Репозиторий не может отключить её для вас.4485* **Scope**: [`User, local, or managed`](#scopes), и файлы, переданные с `--settings`. Репозиторий не может отключить её для вас.

4471* **Type**: Boolean4486* **Type**: Boolean

4472 * `false`: Claude Code прекращает загрузку синхронизированных plugins и прекращает загрузку тех, которые уже находятся в `~/.claude/plugins/synced/`. В пользовательских или управляемых параметрах он также перемещает их в `~/.claude/plugins/.trash/`4487 * `false`: Claude Code прекращает загрузку синхронизированных плагинов и прекращает загрузку тех, которые уже находятся в `~/.claude/plugins/synced/`. В пользовательских или управляемых параметрах он также перемещает их в `~/.claude/plugins/.trash/`

4473 * `true`: то же самое, что и не установлено4488 * `true`: то же самое, что и не установлено

4474* **Default**: не установлено, поэтому сеансы, вошедшие с вашей учётной записью claude.ai, синхронизируют ваши plugins4489* **Default**: не установлено, поэтому сеансы, в которых вы входите с вашей учётной записью claude.ai, синхронизируют ваши плагины

4475 4490 

4476Чтобы отключить один синхронизированный plugin вместо всех, установите `"<name>@synced": false` в [`enabledPlugins`](#enabledplugins).4491Чтобы отключить один синхронизированный плагин вместо всех, установите `"<name>@synced": false` в [`enabledPlugins`](#enabledplugins).

4477 4492 

4478Этот пример предотвращает загрузку plugins учётной записи машиной в любом сеансе:4493Этот пример предотвращает загрузку плагинов учётной записи машиной в любом сеансе:

4479 4494 

4480```json settings.json theme={null}4495```json settings.json theme={null}

4481{4496{


4487 `allowedChannelPlugins`4502 `allowedChannelPlugins`

4488</h3>4503</h3>

4489 4504 

4490Выберите, какие [channel](/docs/ru/channels) plugins могут отправлять сообщения в сеансы в вашей организации. Когда вы это установите, Claude Code использует ваш список вместо списка разрешений Anthropic по умолчанию; каждая запись называет plugin и marketplace, из которого он поступает.4505Выберите, какие [channel](/docs/ru/channels) плагины могут отправлять сообщения в сеансы в вашей организации. Когда вы это установите, Claude Code использует ваш список вместо списка разрешений Anthropic по умолчанию; каждая запись называет плагин и маркетплейс, из которого он поступает.

4491 4506 

4492* **Scope**: [`Managed`](#scopes)4507* **Scope**: [`Managed`](#scopes)

4493* **Type**: массив объектов, каждый с строками `marketplace` и `plugin`. Запись может быть вместо этого строкой `"plugin@marketplace"`, такой как `"telegram@claude-plugins-official"`, которую Claude Code рассматривает как эквивалентный объект. Форма строки требует Claude Code v2.1.267 или позже; более ранние версии отклоняют всё значение `allowedChannelPlugins`, когда оно содержит одну4508* **Type**: массив объектов, каждый с строками `marketplace` и `plugin`. Запись может быть вместо этого строкой `"plugin@marketplace"`, такой как `"telegram@claude-plugins-official"`, которую Claude Code рассматривает как эквивалентный объект. Форма строки требует Claude Code v2.1.267 или позже; более ранние версии отклоняют всё значение `allowedChannelPlugins`, когда оно содержит одну

4494* **Default**: не установлено, поэтому Claude Code использует список разрешений Anthropic по умолчанию4509* **Default**: не установлено, поэтому Claude Code использует список разрешений Anthropic по умолчанию

4495 4510 

4496Этот пример включает channels и разрешает только plugin Telegram из официального marketplace Anthropic:4511Этот пример включает channels и разрешает только плагин Telegram из официального маркетплейса Anthropic:

4497 4512 

4498```json managed-settings.json theme={null}4513```json managed-settings.json theme={null}

4499{4514{


4504}4519}

4505```4520```

4506 4521 

4507Пустой массив блокирует каждый channel plugin.4522Пустой массив блокирует каждый channel плагин.

4508 4523 

4509Этот ключ вступает в силу после того, как channels пройдут ворота [`channelsEnabled`](#channelsenabled) для учётной записи: на планах Team и Enterprise, а также на учётных записях Console с управляемыми параметрами, это означает `channelsEnabled: true`. См. [Ограничьте, какие channel plugins могут работать](/docs/ru/channels#restrict-which-channel-plugins-can-run).4524Этот ключ вступает в силу после того, как channels пройдут ворота [`channelsEnabled`](#channelsenabled) для учётной записи: на планах Team и Enterprise, а также на учётных записях Console с управляемыми параметрами, это означает `channelsEnabled: true`. См. [Ограничьте, какие channel плагины могут работать](/docs/ru/channels#restrict-which-channel-plugins-can-run).

4510 4525 

4511<h3 id="blockedmarketplaces">4526<h3 id="blockedmarketplaces">

4512 `blockedMarketplaces`4527 `blockedMarketplaces`

4513</h3>4528</h3>

4514 4529 

4515Блокируйте источники plugin marketplace для вашей организации. Claude Code проверяет список блокировки при добавлении marketplace и при установке, обновлении, обновлении и автоматическом обновлении plugin, поэтому marketplace, который кто-то добавил до того, как вы установили политику, не может быть использован для получения plugins. Заблокированные источники проверяются перед загрузкой, поэтому они никогда не касаются файловой системы.4530Заблокируйте источники маркетплейсов плагинов для вашей организации. Claude Code проверяет список блокировки при добавлении маркетплейса и при установке, обновлении, обновлении и автоматическом обновлении плагина, поэтому маркетплейс, который кто-то добавил до того, как вы установили политику, не может быть использован для получения плагинов. Заблокированные источники проверяются перед загрузкой, поэтому они никогда не касаются файловой системы.

4516 4531 

4517Если вы установите этот ключ в [консоли администратора claude.ai](/docs/ru/server-managed-settings), claude.ai также применяет его, когда кто-либо в вашей организации добавляет marketplace из репозитория git на claude.ai, как [Как работают ограничения](/docs/ru/plugin-marketplaces#how-restrictions-work) описывает.4532Если вы установите этот ключ в [консоли администратора claude.ai](/docs/ru/server-managed-settings), claude.ai также применит его, когда кто-либо в вашей организации добавит маркетплейс из репозитория git на claude.ai, как описано в [Как работают ограничения](/docs/ru/plugins/org#restrict-what-users-can-install).

4518 4533 

4519* **Scope**: [`Managed`](#scopes)4534* **Scope**: [`Managed`](#scopes)

4520* **Type**: массив объектов источника marketplace в тех же формах, что и [`strictKnownMarketplaces`](#allowed-source-types)4535* **Type**: массив объектов источника маркетплейса в тех же формах, что и [`strictKnownMarketplaces`](#allowed-source-types)

4521* **Default**: не установлено, поэтому ни один marketplace не заблокирован4536* **Default**: не установлено, поэтому ни один маркетплейс не заблокирован

4522 4537 

4523Этот пример блокирует один репозиторий GitHub как источник marketplace:4538Этот пример блокирует один репозиторий GitHub как источник маркетплейса:

4524 4539 

4525```json managed-settings.json theme={null}4540```json managed-settings.json theme={null}

4526{4541{


4530}4545}

4531```4546```

4532 4547 

4533Запись `github` может использовать [форму owner-wildcard](#owner-wildcards) `"owner/*"` для блокировки каждого репозитория под этим владельцем GitHub, что требует Claude Code v2.1.223 или позже. Добавьте `{ "source": "skills-dir" }`, чтобы остановить загрузку Claude Code [`@skills-dir` plugins](/docs/ru/plugins-reference#skills-directory-plugins) из `~/.claude/skills/` без ограничения какого-либо marketplace. См. [Управляемые ограничения marketplace](/docs/ru/plugin-marketplaces#managed-marketplace-restrictions).4548Запись `github` может использовать [форму с подстановочным знаком владельца](#owner-wildcards) `"owner/*"` для блокировки каждого репозитория под этим владельцем GitHub, что требует Claude Code v2.1.223 или позже. Добавьте `{ "source": "skills-dir" }`, чтобы остановить загрузку Claude Code [`@skills-dir` плагинов](/docs/ru/plugins/loading#plugins-shared-through-a-repository) из `~/.claude/skills/` без ограничения какого-либо маркетплейса. См. [Управляемые ограничения маркетплейса](/docs/ru/plugins/org#restrict-what-users-can-install).

4534 4549 

4535<h3 id="channelsenabled">4550<h3 id="channelsenabled">

4536 `channelsEnabled`4551 `channelsEnabled`

4537</h3>4552</h3>

4538 4553 

4539Разрешите [channels](/docs/ru/channels) для вашей организации. На планах claude.ai Team и Enterprise Claude Code блокирует channels до тех пор, пока вы не установите это на `true`. Для учётных записей [Anthropic Console](/docs/ru/authentication#claude-console-authentication), которые аутентифицируются с помощью API key, channels разрешены по умолчанию. Если ваша организация развёртывает управляемые параметры, Claude Code блокирует channels на этих учётных записях до тех пор, пока вы не установите этот ключ на `true`.4554Разрешите [channels](/docs/ru/channels) для вашей организации. На планах claude.ai Team и Enterprise Claude Code блокирует channels до тех пор, пока вы не установите это на `true`. Для учётных записей [Anthropic Console](/docs/ru/authentication#claude-console-authentication), которые аутентифицируются с помощью ключа API, channels разрешены по умолчанию. Если ваша организация развёртывает управляемые параметры, Claude Code блокирует channels на этих учётных записях до тех пор, пока вы не установите этот ключ на `true`.

4540 4555 

4541* **Scope**: [`Managed`](#scopes)4556* **Scope**: [`Managed`](#scopes)

4542* **Type**: Boolean4557* **Type**: Boolean

4543 * `true`: Claude Code разрешает channels для вашей организации4558 * `true`: Claude Code разрешает channels для вашей организации

4544 * `false`: то же самое, что и не установлено; разрешены ли channels, зависит от вашего плана, как говорит Default4559 * `false`: то же самое, что и не установлено; блокируются ли channels, зависит от вашего плана, как указано в Default

4545* **Default**: не установлено; channels блокированы на планах Team и Enterprise и на учётных записях Console с управляемыми параметрами, и разрешены на планах Pro и Max и на учётных записях Console без управляемых параметров4560* **Default**: не установлено; channels блокируются на планах Team и Enterprise и на учётных записях Console с управляемыми параметрами, и разрешены на планах Pro и Max и на учётных записях Console без управляемых параметров

4546 4561 

4547```json managed-settings.json theme={null}4562```json managed-settings.json theme={null}

4548{4563{


4550}4565}

4551```4566```

4552 4567 

4553Чтобы ограничить, какие plugins могут регистрироваться как channels после их включения, установите [`allowedChannelPlugins`](#allowedchannelplugins). См. [Enterprise controls](/docs/ru/channels#enterprise-controls).4568Чтобы ограничить, какие плагины могут регистрироваться как channels после их включения, установите [`allowedChannelPlugins`](#allowedchannelplugins). См. [Элементы управления Enterprise](/docs/ru/channels#enterprise-controls).

4554 4569 

4555<h3 id="disablecommandpluginsources">4570<h3 id="disablecommandpluginsources">

4556 `disableCommandPluginSources`4571 `disableCommandPluginSources`

4557</h3>4572</h3>

4558 4573 

4559Блокируйте [источник `command` plugin](/docs/ru/plugin-marketplaces#command-sources), который устанавливает plugin путём выполнения команды, объявленной marketplace, на машине пользователя. Когда вы установите это на `true`, Claude Code никогда не выполняет команду, не устанавливает и не обновляет plugins из command sources, и прекращает загрузку уже установленных. Установите на `false`, чтобы явно разрешить их. Всякий раз, когда он блокирует command sources, независимо от того, установили ли вы это на `true` или оставили не установленным под [`allowManagedHooksOnly`](#allowmanagedhooksonly), он также блокирует marketplace [`headersHelper` commands](/docs/ru/plugin-marketplaces#authenticate-archive-downloads), кроме marketplace, который сами управляемые параметры объявляют. Требуется Claude Code v2.1.229 или позже, и блокировка `headersHelper` требует v2.1.238 или позже.4574Заблокируйте [источник плагина `command`](/docs/ru/plugins/marketplace-reference#command-plugin-source), который устанавливает плагин, запуская объявленную маркетплейсом команду на машине пользователя. Когда вы установите это на `true`, Claude Code никогда не запускает команду, не устанавливает и не обновляет плагины, полученные из command, и прекращает загрузку уже установленных. Установите на `false`, чтобы явно разрешить их. Всякий раз, когда он блокирует command источники, независимо от того, установили ли вы это на `true` или оставили не установленным под [`allowManagedHooksOnly`](#allowmanagedhooksonly), он также блокирует маркетплейс [`headersHelper` команды](/docs/ru/plugins/host-marketplace#authenticate-archive-downloads), за исключением маркетплейса, который сами управляемые параметры объявляют. Требуется Claude Code v2.1.229 или позже, и блокировка `headersHelper` требует v2.1.238 или позже.

4560 4575 

4561* **Scope**: [`Managed`](#scopes)4576* **Scope**: [`Managed`](#scopes)

4562* **Type**: Boolean4577* **Type**: Boolean

4563 * `true`: Claude Code никогда не выполняет команду, объявленную marketplace, не устанавливает и не обновляет plugins из command sources, и прекращает загрузку уже установленных4578 * `true`: Claude Code никогда не запускает объявленную маркетплейсом команду, не устанавливает и не обновляет плагины, полученные из command, и прекращает загрузку уже установленных

4564 * `false`: Claude Code явно разрешает plugins из command sources4579 * `false`: Claude Code явно разрешает плагины, полученные из command

4565* **Default**: не установлено, поэтому Claude Code следует [`allowManagedHooksOnly`](#allowmanagedhooksonly): организация, которая ограничивает выполнение hook только управляемыми параметрами, также получает отключённые command sources4580* **Default**: не установлено, поэтому Claude Code следует [`allowManagedHooksOnly`](#allowmanagedhooksonly): организация, которая ограничивает выполнение hook только управляемыми параметрами, также получает отключённые command источники

4566 4581 

4567```json managed-settings.json theme={null}4582```json managed-settings.json theme={null}

4568{4583{


4576 `pluginSuggestionMarketplaces`4591 `pluginSuggestionMarketplaces`

4577</h3>4592</h3>

4578 4593 

4579Назовите marketplaces, чьи plugins могут появляться как контекстные предложения установки, в советах spinner и закреплённые в верхней части вкладки `/plugin` **Discover**. Встроенный совет first-party frontend-design не затрагивается. Предложения поступают из объявления `relevance` каждого plugin в его записи marketplace.4594Назовите маркетплейсы, чьи плагины могут появляться как контекстные предложения по установке, в советах спиннера и закреплённые в верхней части вкладки `/plugin` **Discover**. Встроенное предложение первой стороны по дизайну фронтенда не затрагивается. Предложения поступают из объявления `relevance` каждого плагина в его записи маркетплейса.

4580 4595 

4581* **Scope**: [`Managed`](#scopes)4596* **Scope**: [`Managed`](#scopes)

4582* **Type**: массив имён marketplace4597* **Type**: массив имён маркетплейсов

4583* **Default**: не установлено, поэтому никакие объявленные marketplace предложения не появляются4598* **Default**: не установлено, поэтому никакие объявленные маркетплейсом предложения не появляются

4584 4599 

4585```json managed-settings.json theme={null}4600```json managed-settings.json theme={null}

4586{4601{


4588}4603}

4589```4604```

4590 4605 

4591Имя вступает в силу только когда marketplace зарегистрирован на машине и его зарегистрированный источник также объявлен в тех же управляемых параметрах, либо как запись [`extraKnownMarketplaces`](#extraknownmarketplaces) для этого имени, либо как запись [`strictKnownMarketplaces`](#strictknownmarketplaces). Claude Code игнорирует marketplace, зарегистрированный из другого источника под разрешённым именем. Официальный marketplace освобождён от требования источника: разрешение только его имени достаточно, так как это имя может регистрироваться только из официального источника Anthropic. См. [Предложите plugins по контексту](/docs/ru/plugin-relevance).4606Имя вступает в силу только когда маркетплейс зарегистрирован на машине и его зарегистрированный источник также объявлен в тех же управляемых параметрах, либо как запись [`extraKnownMarketplaces`](#extraknownmarketplaces) для этого имени, либо как запись [`strictKnownMarketplaces`](#strictknownmarketplaces). Claude Code игнорирует маркетплейс, зарегистрированный из другого источника под разрешённым именем. Официальный маркетплейс освобождён от требования источника: разрешение только его имени достаточно, так как это имя может регистрироваться только из официального источника Anthropic. См. [Предложите плагины по контексту](/docs/ru/plugins/relevance).

4592 4607 

4593<h3 id="plugintrustmessage">4608<h3 id="plugintrustmessage">

4594 `pluginTrustMessage`4609 `pluginTrustMessage`

4595</h3>4610</h3>

4596 4611 

4597Добавьте собственный текст вашей организации к предупреждению о доверии plugin, которое Claude Code показывает перед установкой, например, чтобы подтвердить, что plugins из вашего внутреннего marketplace проверены.4612Добавьте собственный текст вашей организации к предупреждению о доверии плагину, которое Claude Code показывает перед установкой, например, чтобы подтвердить, что плагины из вашего внутреннего маркетплейса проверены.

4598 4613 

4599* **Scope**: [`Managed`](#scopes)4614* **Scope**: [`Managed`](#scopes)

4600* **Type**: string4615* **Type**: string


4610 `strictKnownMarketplaces`4625 `strictKnownMarketplaces`

4611</h3>4626</h3>

4612 4627 

4613Ограничьте, какие источники plugin marketplace люди в вашей организации могут добавлять и устанавливать plugins из. Claude Code применяет список разрешений при добавлении marketplace и при установке, обновлении, обновлении и автоматическом обновлении plugin, перед любой сетевой или файловой операцией, поэтому marketplace, который кто-то добавил до того, как вы установили политику, не может быть использован для получения plugins после того, как его источник больше не совпадает. Заблокированные пользователи видят ошибку, называющую управляемую политику.4628Ограничьте, какие источники маркетплейсов плагинов люди в вашей организации могут добавлять и устанавливать плагины из. Claude Code применяет список разрешений при добавлении маркетплейса и при установке, обновлении, обновлении и автоматическом обновлении плагина, перед любой сетевой или файловой операцией, поэтому маркетплейс, который кто-то добавил до того, как вы установили политику, не может быть использован для получения плагинов после того, как его источник больше не совпадает. Заблокированные пользователи видят ошибку, называющую управляемую политику.

4614 4629 

4615Если вы установите этот ключ в [консоли администратора claude.ai](/docs/ru/server-managed-settings), claude.ai также применяет его, когда кто-либо в вашей организации добавляет marketplace из репозитория git на claude.ai, как [Как работают ограничения](/docs/ru/plugin-marketplaces#how-restrictions-work) описывает.4630Если вы установите этот ключ в [консоли администратора claude.ai](/docs/ru/server-managed-settings), claude.ai также применит его, когда кто-либо в вашей организации добавит маркетплейс из репозитория git на claude.ai, как описано в [Как работают ограничения](/docs/ru/plugins/org#restrict-what-users-can-install).

4616 4631 

4617* **Scope**: [`Managed`](#scopes)4632* **Scope**: [`Managed`](#scopes)

4618* **Type**: массив объектов источника marketplace; см. [Allowed source types](#allowed-source-types)4633* **Type**: массив объектов источника маркетплейса; см. [Разрешённые типы источников](#allowed-source-types)

4619* **Default**: не установлено, поэтому пользователи могут добавлять любой marketplace. Пустой массив — это полная блокировка, которая блокирует каждый источник marketplace, включая официальный marketplace Anthropic4634* **Default**: не установлено, поэтому пользователи могут добавлять любой маркетплейс. Пустой массив — это полная блокировка, которая блокирует каждый источник маркетплейса, включая официальный маркетплейс Anthropic

4620 4635 

4621Этот пример разрешает два репозитория GitHub, один закреплённый на ref `v2.0`, и один размещённый URL `marketplace.json`:4636Этот пример разрешает два репозитория GitHub, один закреплённый на ref `v2.0`, и один размещённый URL маркетплейса `marketplace.json`:

4622 4637 

4623```json managed-settings.json theme={null}4638```json managed-settings.json theme={null}

4624{4639{


4630}4645}

4631```4646```

4632 4647 

4633Вы также можете написать этот ключ как `allowedMarketplaces`; [Marketplace key aliases](#marketplace-key-aliases) описывает, как Claude Code рассматривает alias и какая версия его принимает. Этот ключ — это ворота политики: он контролирует, что пользователи могут добавлять, но ничего не регистрирует. Чтобы ограничить и предварительно зарегистрировать в одном файле, см. [Объедините с `extraKnownMarketplaces`](#combine-with-extraknownmarketplaces). Для представления, обращённого к пользователю, см. [Управляемые ограничения marketplace](/docs/ru/plugin-marketplaces#managed-marketplace-restrictions).4648Вы также можете написать этот ключ как `allowedMarketplaces`; [Псевдонимы ключей маркетплейса](#marketplace-key-aliases) описывает, как Claude Code рассматривает псевдоним и какая версия его принимает. Этот ключ — это ворота политики: он контролирует, что пользователи могут добавлять, но ничего не регистрирует. Чтобы ограничить и предварительно зарегистрировать в одном файле, см. [Объедините с `extraKnownMarketplaces`](#combine-with-extraknownmarketplaces). Для представления, обращённого к пользователю, см. [Управляемые ограничения маркетплейса](/docs/ru/plugins/org#restrict-what-users-can-install).

4634 4649 

4635<h4 id="allowed-source-types">4650<h4 id="allowed-source-types">

4636 Allowed source types4651 Allowed source types

4637</h4>4652</h4>

4638 4653 

4639Каждая запись ниже показывает одну запись списка разрешений на тип источника и поля, которые она принимает. Большинство типов совпадают точно; `hostPattern` и `pathPattern` совпадают по regex, и записи `github` могут использовать [owner wildcard](#owner-wildcards).4654Каждая запись ниже показывает одну запись списка разрешений на тип источника и поля, которые она принимает. Большинство типов совпадают точно; `hostPattern` и `pathPattern` совпадают по регулярному выражению, и записи `github` могут использовать [подстановочный знак владельца](#owner-wildcards).

4640 4655 

4641| Source | Example entry | Fields |4656| Source | Example entry | Fields |

4642| :------------ | :------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------- |4657| :------------ | :------------------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------- |

4643| `github` | `{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }` | `repo` обязателен; `ref` — это ветка или тег; `path` — это подпапка |4658| `github` | `{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }` | `repo` обязателен; `ref` — это ветка или тег; `path` — это подкаталог |

4644| `git` | `{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git", "ref": "production" }` | `url` обязателен; `ref` и `path` как для `github` |4659| `git` | `{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git", "ref": "production" }` | `url` обязателен; `ref` и `path` как для `github` |

4645| `url` | `{ "source": "url", "url": "https://plugins.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } }` | `url` обязателен; `headers` добавляет HTTP headers для аутентифицированного доступа |4660| `url` | `{ "source": "url", "url": "https://plugins.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } }` | `url` обязателен; `headers` добавляет HTTP заголовки для аутентифицированного доступа |

4646| `file` | `{ "source": "file", "path": "/opt/acme-corp/plugins/marketplace.json" }` | `path` обязателен, абсолютный путь к файлу `marketplace.json` |4661| `file` | `{ "source": "file", "path": "/opt/acme-corp/plugins/marketplace.json" }` | `path` обязателен, абсолютный путь к файлу `marketplace.json` |

4647| `directory` | `{ "source": "directory", "path": "/opt/acme-corp/approved-marketplaces" }` | `path` обязателен, абсолютный путь к папке, содержащей `.claude-plugin/marketplace.json` |4662| `directory` | `{ "source": "directory", "path": "/opt/acme-corp/approved-marketplaces" }` | `path` обязателен, абсолютный путь к каталогу, содержащему `.claude-plugin/marketplace.json` |

4648| `hostPattern` | `{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" }` | `hostPattern` обязателен, regex, сопоставляемый с хостом marketplace |4663| `hostPattern` | `{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" }` | `hostPattern` обязателен, регулярное выражение, совпадающее в любом месте хоста маркетплейса; закрепите его с помощью `^` и `$`, чтобы совпадать со всем хостом |

4649| `pathPattern` | `{ "source": "pathPattern", "pathPattern": "^/opt/approved/" }` | `pathPattern` обязателен, regex, сопоставляемый с `path` источников `file` и `directory` |4664| `pathPattern` | `{ "source": "pathPattern", "pathPattern": "^/opt/approved/" }` | `pathPattern` обязателен, регулярное выражение, совпадающее в любом месте `path` источников `file` и `directory`; начните его с `^`, чтобы закрепить префикс |

4650| `skills-dir` | `{ "source": "skills-dir" }` | Нет полей. Включает обратно сканирование plugin `~/.claude/skills/` |4665| `skills-dir` | `{ "source": "skills-dir" }` | Нет полей. Включает сканирование плагина `~/.claude/skills/` обратно |

4651 4666 

4652Три типа источников имеют правила, выходящие за рамки таблицы:4667Три типа источников имеют правила, выходящие за рамки таблицы:

4653 4668 

4654* **`url`**: URL marketplace загружает только файл `marketplace.json`, и Claude Code не получает файлы plugin по относительному пути с этого сервера, поэтому его plugins должны использовать [plugin source](/docs/ru/plugin-marketplaces#plugin-sources) отличный от относительного пути, такой как URL архива, который может быть на том же хосте. Для plugins с относительными путями используйте вместо этого Git-based marketplace. См. [Plugins с относительными путями не работают в URL-based marketplaces](/docs/ru/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces).4669* **`url`**: маркетплейс URL загружает только файл `marketplace.json`, и Claude Code не получает файлы плагинов по относительному пути с этого сервера, поэтому его плагины должны использовать [источник плагина](/docs/ru/plugins/marketplace-reference#plugin-sources), отличный от относительного пути, такой как URL архива, который может быть на том же хосте. Для плагинов с относительными путями используйте маркетплейс на основе Git. См. [Плагины с относительными путями не работают в маркетплейсах на основе URL](/docs/ru/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces).

4655* **`hostPattern`**: используйте его, чтобы разрешить каждый marketplace на внутреннем GitHub Enterprise или GitLab сервере без перечисления каждого репозитория. Claude Code сопоставляет источники `github` с `github.com`, берёт имя хоста из источников `url` и берёт его из источников `git` в зависимости от формы [git URL](https://git-scm.com/docs/git-clone#_git_urls):4670* **`hostPattern`**: используйте его, чтобы разрешить каждый маркетплейс на внутреннем GitHub Enterprise или GitLab сервере без перечисления каждого репозитория. Claude Code совпадает с источниками `github` против `github.com`, берёт имя хоста из источников `url` и берёт его из источников `git` в зависимости от формы [git URL](https://git-scm.com/docs/git-clone#_git_urls):

4656 4671 

4657 * URL со схемой, такой как `https://` или `ssh://`: имя хоста в URL.4672 * URL со схемой, такой как `https://` или `ssh://`: имя хоста в URL.

4658 * SSH адрес без схемы, в форме `user@host:path` git, такой как `git@git.example.com:tools/plugins.git`: хост между `@` и `:`, который является хостом, к которому подключается git.4673 * SSH адрес без схемы, в форме `user@host:path` git, такой как `git@git.example.com:tools/plugins.git`: хост между `@` и `:`, который является хостом, к которому подключается git.

4659 * Любая другая форма без схемы: нет хоста, поэтому ни одна запись `strictKnownMarketplaces` `hostPattern` не совпадает с ней. Для `blockedMarketplaces` `hostPattern` Claude Code берёт хост из более широкого набора форм, поэтому запись списка блокировки всё ещё может совпадать с такой формой. До v2.1.234 `strictKnownMarketplaces` `hostPattern` также совпадала с некоторыми формами, которые git не рассматривает как SSH адреса.4674 * Любая другая форма без схемы: нет хоста, поэтому ни одна запись `strictKnownMarketplaces` `hostPattern` не совпадает с ней. Для `blockedMarketplaces` `hostPattern`, Claude Code берёт хост из более широкого набора форм, поэтому запись списка блокировки всё ещё может совпадать с такой формой. До v2.1.234, `strictKnownMarketplaces` `hostPattern` также совпадала с некоторыми формами, которые git не рассматривает как SSH адреса.

4660 4675 

4661 Источники `file` и `directory` не имеют хоста и никогда не совпадают с записью `hostPattern`.4676 Источники `file` и `directory` не имеют хоста и никогда не совпадают с записью `hostPattern`.

4662* **`pathPattern`**: используйте его, чтобы разрешить marketplaces файловой системы наряду с записями `hostPattern` для сетевых источников. `".*"` разрешает каждый локальный путь; более узкий паттерн, такой как `"^/opt/approved/"`, ограничивает папку.4677* **`pathPattern`**: используйте его, чтобы разрешить маркетплейсы файловой системы наряду с записями `hostPattern` для сетевых источников. `".*"` разрешает каждый локальный путь; более узкий паттерн, такой как `"^/opt/approved/"`, ограничивает каталогом.

4663 4678 

4664Любой список разрешений, даже пустой, также останавливает загрузку Claude Code [`@skills-dir` plugins](/docs/ru/plugins-reference#skills-directory-plugins) из `~/.claude/skills/`. Добавьте запись `{ "source": "skills-dir" }`, чтобы продолжить их загрузку; запись не имеет значения вне этого ключа и `blockedMarketplaces`.4679Любой список разрешений, даже пустой, также останавливает загрузку Claude Code [`@skills-dir` плагинов](/docs/ru/plugins/loading#plugins-shared-through-a-repository) из `~/.claude/skills/`. Добавьте запись `{ "source": "skills-dir" }`, чтобы продолжить их загрузку; запись не имеет значения вне этого ключа и `blockedMarketplaces`.

4665 4680 

4666<h4 id="owner-wildcards">4681<h4 id="owner-wildcards">

4667 Owner wildcards4682 Owner wildcards

4668</h4>4683</h4>

4669 4684 

4670Запись `github`, чьё значение `repo` — это `"<owner>/*"`, совпадает с каждым репозиторием под этим владельцем GitHub. Owner wildcards требуют Claude Code v2.1.223 или позже и работают только в `strictKnownMarketplaces` и `blockedMarketplaces`. Везде, где появляется источник `github`, такой как `extraKnownMarketplaces` или `/plugin marketplace add`, значение `repo` должно называть один репозиторий. До v2.1.223 Claude Code сравнивал запись буквально, поэтому запись списка разрешений не совпадала ни с одним репозиторием, а запись списка блокировки ничего не блокировала; записи с одним репозиторием применяются на каждой версии.4685Запись `github`, чьё значение `repo` — это `"<owner>/*"`, совпадает с каждым репозиторием под этим владельцем GitHub. Подстановочные знаки владельца требуют Claude Code v2.1.223 или позже и работают только в `strictKnownMarketplaces` и `blockedMarketplaces`. Везде, где источник `github` появляется, такой как `extraKnownMarketplaces` или `/plugin marketplace add`, значение `repo` должно называть один репозиторий. До v2.1.223, Claude Code сравнивал запись буквально, поэтому запись списка разрешений не совпадала ни с одним репозиторием и запись списка блокировки ничего не блокировала; записи с одним репозиторием применяются на каждой версии.

4671 4686 

4672Эта запись разрешает любой репозиторий marketplace в организации `acme-corp`:4687Эта запись разрешает любой маркетплейс репозитория в организации `acme-corp`:

4673 4688 

4674```json managed-settings.json theme={null}4689```json managed-settings.json theme={null}

4675{4690{


4679}4694}

4680```4695```

4681 4696 

4682Только вся позиция имени репозитория может быть wildcard. Claude Code сравнивает записи, такие как `*`, `*/plugins` или `acme-corp/tools-*`, буквально, поэтому они не совпадают ни с одним репозиторием.4697Только вся позиция имени репозитория может быть подстановочным знаком. Claude Code игнорирует записи, такие как `*`, `*/plugins` или `acme-corp/tools-*`, как недействительные, поэтому они не совпадают ни с одним репозиторием.

4683 4698 

4684Правила сопоставления отличаются между двумя параметрами:4699Правила сопоставления различаются между двумя параметрами:

4685 4700 

4686| Rule | `strictKnownMarketplaces` | `blockedMarketplaces` |4701| Rule | `strictKnownMarketplaces` | `blockedMarketplaces` |

4687| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |4702| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |

4688| Matching source spellings | Только форма `owner/repo`. Git URL, который клонирует тот же репозиторий, не совпадает | Любое написание, включая git URLs, которые разрешаются в тот же репозиторий github.com |4703| Matching source spellings | Только форма `owner/repo`. Git URL, который клонирует тот же репозиторий, не совпадает | Любое написание, включая git URL, которые разрешаются в тот же репозиторий github.com |

4689| Owner case | Чувствителен к регистру, как точное сопоставление записей | Нечувствителен к регистру |4704| Owner case | Чувствительно к регистру, как точное сопоставление записей | Нечувствительно к регистру |

4690| `ref` | Следует правилам точного сопоставления: запись с `ref` совпадает только с источниками с этим точным ref, и запись без одного совпадает только с источниками, которые не указывают ref | Запись без `ref` блокирует все refs репозиториев, которые она совпадает |4705| `ref` | Следует правилам точного сопоставления: запись с `ref` совпадает только с источниками с этим точным ref, и запись без одного совпадает только с источниками, которые не указывают ref | Запись без `ref` блокирует все ref репозиториев, которые она совпадает |

4691| `path` | Более свободно, чем правила точного сопоставления: запись с `path` требует это точное значение, в то время как запись без одного совпадает с любым путём внутри репозитория | Запись без `path` блокирует все пути репозиториев, которые она совпадает |4706| `path` | Более свободно, чем правила точного сопоставления: запись с `path` требует это точное значение, в то время как запись без одного совпадает с любым путём внутри репозитория | Запись без `path` блокирует все пути репозиториев, которые она совпадает |

4692 4707 

4693<h4 id="exact-matching">4708<h4 id="exact-matching">

4694 Exact matching4709 Exact matching

4695</h4>4710</h4>

4696 4711 

4697Для каждого типа источника, кроме owner-wildcard записей `github` и regex-сопоставляемых записей `hostPattern` и `pathPattern`, Claude Code разрешает добавление пользователя только когда источник marketplace точно совпадает с записью. Для Git-based источников `github` и `git`, точное сопоставление включает необязательные поля:4712Для каждого типа источника, кроме записей `github` с подстановочным знаком владельца и записей `hostPattern` и `pathPattern`, совпадающих по регулярному выражению, Claude Code разрешает добавление пользователя только когда источник маркетплейса точно совпадает с записью. Для источников на основе git `github` и `git`, точное сопоставление включает необязательные поля:

4698 4713 

4699* `repo` или `url` должны совпадать точно4714* `repo` или `url` должны совпадать точно

4700* Поле `ref` должно совпадать точно, или оба должны быть undefined4715* Поле `ref` должно совпадать точно, или оба должны быть не определены

4701* Поле `path` должно совпадать точно, или оба должны быть undefined4716* Поле `path` должно совпадать точно, или оба должны быть не определены

4702 4717 

4703Например, Claude Code рассматривает каждую пару ниже как два разных источника:4718Например, Claude Code рассматривает каждую пару ниже как два разных источника:

4704 4719 


4709 Allow only the official marketplace4724 Allow only the official marketplace

4710</h4>4725</h4>

4711 4726 

4712Чтобы разрешить только официальный marketplace Anthropic и ничего больше, перечислите его репозиторий:4727Чтобы разрешить только официальный маркетплейс Anthropic, перечислите его репозиторий:

4713 4728 

4714```json managed-settings.json theme={null}4729```json managed-settings.json theme={null}

4715{4730{


4719}4734}

4720```4735```

4721 4736 

4722С этой записью Claude Code сохраняет уже зарегистрированный официальный marketplace доступным и, на свежей машине, регистрирует marketplace автоматически при первом интерактивном запуске Claude Code. Автоматическая регистрация чаще всего пропускает:4737С этой записью Claude Code сохраняет уже зарегистрированный официальный маркетплейс доступным и, на свежей машине, регистрирует маркетплейс автоматически при первом запуске интерактивного сеанса терминала. Автоматическая регистрация наиболее часто пропускает:

4723 4738 

4724* Неинтерактивные окружения, которые работают перед первым интерактивным запуском машины.4739* Неинтерактивные среды, которые работают до первого интерактивного сеанса терминала машины.

4725* Машины, где Claude Code уже работал интерактивно под политикой, которая блокировала marketplace, такой как блокировка пустого массива. Claude Code записывает заблокированную попытку и не повторяет попытку после изменения политики.4740* Машины, где Claude Code работал только через расширение VS Code.

4741* Машины, где Claude Code уже запустил интерактивный сеанс терминала под политикой, которая блокировала маркетплейс, такой как блокировка пустого массива. Claude Code записывает заблокированную попытку и не повторяет попытку после изменения политики.

4726 4742 

4727На этих машинах добавьте marketplace в [`extraKnownMarketplaces`](#extraknownmarketplaces) в том же `managed-settings.json`, чтобы Claude Code регистрировал его автоматически, или запустите `claude plugin marketplace add anthropics/claude-plugins-official`.4743На этих машинах добавьте маркетплейс в [`extraKnownMarketplaces`](#extraknownmarketplaces) в том же `managed-settings.json`, чтобы Claude Code зарегистрировал его автоматически, или запустите `claude plugin marketplace add anthropics/claude-plugins-official`.

4728 4744 

4729<h4 id="combine-with-extraknownmarketplaces">4745<h4 id="combine-with-extraknownmarketplaces">

4730 Combine with `extraKnownMarketplaces`4746 Combine with `extraKnownMarketplaces`


4733Два ключа выполняют разные работы. Эта таблица их сравнивает:4749Два ключа выполняют разные работы. Эта таблица их сравнивает:

4734 4750 

4735| Aspect | `strictKnownMarketplaces` | `extraKnownMarketplaces` |4751| Aspect | `strictKnownMarketplaces` | `extraKnownMarketplaces` |

4736| ----------------- | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |4752| ----------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |

4737| Purpose | Применение организационной политики | Удобство команды |4753| Purpose | Применение организационной политики | Удобство команды |

4738| Settings file | Только управляемые параметры | Любой файл параметров |4754| Settings file | Только управляемые параметры | Любой файл параметров |

4739| Behavior | Блокирует неразрешённые добавления | Регистрирует отсутствующие marketplaces |4755| Behavior | Блокирует добавления, не входящие в список разрешений | Регистрирует отсутствующие маркетплейсы |

4740| When enforced | Перед сетевыми и файловыми операциями | Сразу же из пользовательских или управляемых параметров; после диалога доверия рабочей области для файлов репозитория |4756| When enforced | Перед сетевыми и файловыми операциями | Сразу из пользовательских или управляемых параметров; после диалога доверия рабочей области для файлов репозитория |

4741| Can be overridden | Нет, наивысший приоритет | Да, более высокоприоритетными параметрами |4757| Can be overridden | Нет, наивысший приоритет | Да, параметрами с более высоким приоритетом |

4742| Source format | Прямой объект источника | Именованный marketplace с вложенным объектом `source` |4758| Source format | Прямой объект источника | Именованный маркетплейс с вложенным объектом `source` |

4743 4759 

4744Чтобы одновременно ограничить и предварительно зарегистрировать marketplace для всех пользователей, установите оба в `managed-settings.json`:4760Чтобы ограничить и предварительно зарегистрировать маркетплейс для всех пользователей, установите оба в `managed-settings.json`:

4745 4761 

4746```json managed-settings.json theme={null}4762```json managed-settings.json theme={null}

4747{4763{


4756}4772}

4757```4773```

4758 4774 

4759Только с установленным `strictKnownMarketplaces` пользователи всё ещё могут добавить разрешённый marketplace сами с помощью `/plugin marketplace add`. Официальный marketplace Anthropic — единственный, который Claude Code регистрирует автоматически, и только когда список разрешений его разрешает. [Allow only the official marketplace](#allow-only-the-official-marketplace) перечисляет машины, которые он пропускает.4775Только с установленным `strictKnownMarketplaces`, пользователи всё ещё могут добавить разрешённый маркетплейс сами с помощью `/plugin marketplace add`. Официальный маркетплейс Anthropic — единственный, который Claude Code регистрирует автоматически, и только когда список разрешений его разрешает. [Разрешите только официальный маркетплейс](#allow-only-the-official-marketplace) перечисляет машины, которые он пропускает.

4760 4776 

4761<h3 id="strictpluginonlycustomization">4777<h3 id="strictpluginonlycustomization">

4762 `strictPluginOnlyCustomization`4778 `strictPluginOnlyCustomization`

4763</h3>4779</h3>

4764 4780 

4765Блокируйте skills, agents, hooks и MCP servers из пользовательских и project источников, поэтому они могут поступать только из plugins или управляемых параметров. Объедините его с [`strictKnownMarketplaces`](#strictknownmarketplaces), чтобы контролировать полную цепь поставок настройки: список разрешений marketplace контролирует, какие plugins пользователи могут устанавливать.4781Заблокируйте skills, agents, hooks и MCP серверы из источников пользователя и проекта, чтобы они могли поступать только из плагинов или управляемых параметров. Объедините его с [`strictKnownMarketplaces`](#strictknownmarketplaces), чтобы контролировать полную цепочку поставок настройки: список разрешений маркетплейса контролирует, какие плагины пользователи могут устанавливать.

4766 4782 

4767* **Scope**: [`Managed`](#scopes)4783* **Scope**: [`Managed`](#scopes)

4768* **Type**: `true` для блокировки всех четырёх видов настройки, или массив, называющий виды для блокировки, из `"skills"`, `"agents"`, `"hooks"` и `"mcp"`4784* **Type**: `true` для блокировки всех четырёх видов настройки, или массив, называющий виды для блокировки, из `"skills"`, `"agents"`, `"hooks"` и `"mcp"`

4769* **Default**: не установлено, поэтому ничего не заблокировано4785* **Default**: не установлено, поэтому ничего не заблокировано

4770 4786 

4771Этот пример блокирует skills и hooks и оставляет agents и MCP servers разблокированными:4787Этот пример блокирует skills и hooks и оставляет agents и MCP серверы разблокированными:

4772 4788 

4773```json managed-settings.json theme={null}4789```json managed-settings.json theme={null}

4774{4790{


4776}4792}

4777```4793```

4778 4794 

4779Четыре записи sub-key ниже перечисляют, что каждая поверхность блокирует и что всё ещё загружается. Claude Code игнорирует имена поверхностей, которые он не распознаёт, вместо того чтобы не пройти файл параметров, поэтому вы можете добавлять новые имена поверхностей перед обновлением каждого клиента.4795Четыре записи подключа ниже перечисляют, что каждая поверхность блокирует и что всё ещё загружается. Claude Code игнорирует имена поверхностей, которые он не распознаёт, вместо того чтобы не пройти файл параметров, поэтому вы можете добавлять новые имена поверхностей перед обновлением каждого клиента.

4780 4796 

4781<h3 id="strictpluginonlycustomization-skills">4797<h3 id="strictpluginonlycustomization-skills">

4782 `strictPluginOnlyCustomization.skills`4798 `strictPluginOnlyCustomization.skills`

4783</h3>4799</h3>

4784 4800 

4785Блокируйте поверхность `skills`. Claude Code прекращает загрузку skills из `~/.claude/skills/` и `.claude/skills/`, пользовательских команд из `~/.claude/commands/` и `.claude/commands/`, skills под папками `--add-dir` и skills, синхронизированные из вашей учётной записи claude.ai, и продолжает загружать plugin skills, встроенные skills и skills в папке управляемой политики.4801Заблокируйте поверхность `skills`. Claude Code прекращает загрузку skills из `~/.claude/skills/` и `.claude/skills/`, пользовательских команд из `~/.claude/commands/` и `.claude/commands/`, skills под каталогами `--add-dir`, и skills, синхронизированные из вашей учётной записи claude.ai, и продолжает загружать skills плагинов, встроенные skills и skills в каталоге управляемой политики.

4786 4802 

4787* **Scope**: [`Managed`](#scopes)4803* **Scope**: [`Managed`](#scopes)

4788* **Type**: строка `"skills"` в массиве [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)4804* **Type**: строка `"skills"` в массиве [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)


4798 `strictPluginOnlyCustomization.agents`4814 `strictPluginOnlyCustomization.agents`

4799</h3>4815</h3>

4800 4816 

4801Блокируйте поверхность `agents`. Claude Code прекращает загрузку agents из `~/.claude/agents/` и `.claude/agents/` и продолжает загружать plugin agents, встроенные agents и agents в папке управляемой политики.4817Заблокируйте поверхность `agents`. Claude Code прекращает загрузку agents из `~/.claude/agents/` и `.claude/agents/`, и продолжает загружать agents плагинов, встроенные agents и agents в каталоге управляемой политики.

4802 4818 

4803* **Scope**: [`Managed`](#scopes)4819* **Scope**: [`Managed`](#scopes)

4804* **Type**: строка `"agents"` в массиве [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)4820* **Type**: строка `"agents"` в массиве [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)


4814 `strictPluginOnlyCustomization.hooks`4830 `strictPluginOnlyCustomization.hooks`

4815</h3>4831</h3>

4816 4832 

4817Блокируйте поверхность `hooks`. Claude Code прекращает выполнение hooks из пользовательских, project и локальных `settings.json` и продолжает выполнять plugin hooks и hooks в управляемых параметрах.4833Заблокируйте поверхность `hooks`. Claude Code прекращает запуск hooks из пользователя, проекта и локального `settings.json`, и продолжает запускать hooks плагинов и hooks в управляемых параметрах.

4818 4834 

4819* **Scope**: [`Managed`](#scopes)4835* **Scope**: [`Managed`](#scopes)

4820* **Type**: строка `"hooks"` в массиве [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)4836* **Type**: строка `"hooks"` в массиве [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)


4830 `strictPluginOnlyCustomization.mcp`4846 `strictPluginOnlyCustomization.mcp`

4831</h3>4847</h3>

4832 4848 

4833Блокируйте поверхность `mcp`. Claude Code прекращает загрузку MCP servers из `~/.claude.json` и `.mcp.json` и продолжает загружать plugin MCP servers, [`managed-mcp.json`](/docs/ru/managed-mcp) servers и servers из [`managedMcpServers`](#managedmcpservers).4849Заблокируйте поверхность `mcp`. Claude Code прекращает загрузку MCP серверов из `~/.claude.json` и `.mcp.json`, и продолжает загружать MCP серверы плагинов, [`managed-mcp.json`](/docs/ru/managed-mcp) серверы и серверы из [`managedMcpServers`](#managedmcpservers).

4834 4850 

4835* **Scope**: [`Managed`](#scopes)4851* **Scope**: [`Managed`](#scopes)

4836* **Type**: строка `"mcp"` в массиве [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)4852* **Type**: строка `"mcp"` в массиве [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)


4846 `enabledPlugins`4862 `enabledPlugins`

4847</h3>4863</h3>

4848 4864 

4849Включайте или отключайте отдельные [plugins](/docs/ru/plugins), обозначенные как `plugin-name@marketplace-name`. Plugin без записи в любой scope возвращается к его значению [`defaultEnabled`](/docs/ru/plugins-reference#default-enablement). Когда вы включаете или отключаете plugin с помощью `/plugin` или `claude plugin enable`, Claude Code записывает этот ключ для вас.4865Включайте или отключайте отдельные [plugins](/docs/ru/plugins/overview), обозначенные как `plugin-name@marketplace-name`. Плагин без записи в любой области возвращается к его значению [`defaultEnabled`](/docs/ru/plugins/manifest-reference#fields). Когда вы включаете или отключаете плагин с помощью `/plugin` или `claude plugin enable`, Claude Code записывает этот ключ для вас.

4850 4866 

4851* **Scope**: [`Any file`](#scopes)4867* **Scope**: [`Any file`](#scopes)

4852* **Type**: object, отображающий `plugin-name@marketplace-name` на Boolean4868* **Type**: объект, отображающий `plugin-name@marketplace-name` на Boolean

4853* **Default**: не установлено, поэтому каждый plugin следует его значению `defaultEnabled`4869* **Default**: не установлено, поэтому каждый плагин следует его значению `defaultEnabled`

4854 4870 

4855Этот пример включает два plugins из marketplace `team-tools` и отключает один из `personal`:4871Этот пример включает два плагина из маркетплейса `team-tools` и отключает один из `personal`:

4856 4872 

4857```json settings.json theme={null}4873```json settings.json theme={null}

4858{4874{


4864}4880}

4865```4881```

4866 4882 

4867Каждый scope служит разной цели:4883Каждая область служит разной цели:

4868 4884 

4869* **User settings**: ваши личные предпочтения plugin4885* **User settings**: ваши личные предпочтения плагинов

4870* **Project settings**: plugins, общие со всеми в репозитории4886* **Project settings**: плагины, общие со всеми в репозитории

4871* **Local settings**: переопределения для каждой машины, gitignored, когда Claude Code сохраняет параметр там4887* **Local settings**: переопределения для каждой машины, игнорируемые, когда Claude Code сохраняет параметр там

4872* **Managed settings**: организационная политика. Plugin, установленный на `false` здесь, заблокирован от установки в каждом scope и скрыт от marketplace4888* **Managed settings**: организационная политика. Плагин, установленный на `false` здесь, заблокирован от установки в каждой области и скрыт из маркетплейса

4873 4889 

4874Project settings имеют приоритет над user settings, поэтому установка plugin на `false` в `~/.claude/settings.json` не отключает plugin, который `.claude/settings.json` проекта включает. Чтобы отказаться от plugin, включённого проектом, на вашей машине, установите его на `false` в `.claude/settings.local.json` вместо этого. Plugins, принудительно включённые управляемыми параметрами, не могут быть отключены таким образом, так как управляемые параметры переопределяют локальные параметры.4890Параметры проекта имеют приоритет над параметрами пользователя, поэтому установка плагина на `false` в `~/.claude/settings.json` не отключает плагин, который `.claude/settings.json` проекта включает. Чтобы отказаться от плагина, включённого проектом, на вашей машине, установите его на `false` в `.claude/settings.local.json` вместо этого. Плагины, принудительно включённые управляемыми параметрами, не могут быть отключены таким образом, так как управляемые параметры переопределяют локальные параметры.

4875 4891 

4876Включение plugin из внешнего источника, такого как репозиторий GitHub или пакет npm, в `.claude/settings.json` проекта не устанавливает его для других людей. На каждом пути, который загружает plugins, Claude Code сообщает о plugin как не установленном до тех пор, пока каждый пользователь [не установит его сам](/docs/ru/discover-plugins#configure-team-marketplaces).4892Включение плагина из внешнего источника, такого как репозиторий GitHub или пакет npm, в `.claude/settings.json` проекта не устанавливает его для других людей. На каждом пути, который загружает плагины, Claude Code сообщает о плагине как не установленном до тех пор, пока каждый пользователь [не установит его сам](/docs/ru/plugins/org#require-plugins-per-repository).

4877 4893 

4878<h3 id="extraknownmarketplaces">4894<h3 id="extraknownmarketplaces">

4879 `extraKnownMarketplaces`4895 `extraKnownMarketplaces`

4880</h3>4896</h3>

4881 4897 

4882Регистрируйте дополнительные plugin marketplaces по имени, чтобы люди, которые открывают репозиторий, или все, кого достигают ваши управляемые параметры, получали marketplace без добавления его самостоятельно. Claude Code регистрирует каждый marketplace, который он ещё не знает. Устанавливается ли plugin, который [`enabledPlugins`](#enabledplugins) называет из него, зависит от источника plugin и какой файл его включает; эта запись имеет правила.4898Регистрируйте дополнительные маркетплейсы плагинов по имени, чтобы люди, которые открывают репозиторий, или все, кого достигают ваши управляемые параметры, получали маркетплейс без добавления его самостоятельно. Claude Code регистрирует каждый маркетплейс, который он ещё не знает. Устанавливается ли плагин, который [`enabledPlugins`](#enabledplugins) называет из него, зависит от источника плагина и какой файл его включает; эта запись имеет правила.

4883 4899 

4884* **Scope**: [`Any file`](#scopes). Claude Code учитывает записи в `.claude/settings.json` или `.claude/settings.local.json` репозитория только после того, как вы примете диалог доверия рабочей области для этой папки; в папке, которую вы не доверяете, включая запуск `-p` там, он игнорирует их без сообщения.4900* **Scope**: [`Any file`](#scopes). Claude Code учитывает записи в `.claude/settings.json` или `.claude/settings.local.json` репозитория только после того, как вы примете диалог доверия рабочей области для этой папки; в папке, которую вы не доверяете, включая запуск `-p` там, он игнорирует их без сообщения.

4885* **Type**: object, отображающий имя marketplace на объект с объектом `source` и необязательным Boolean `autoUpdate`4901* **Type**: объект, отображающий имя маркетплейса на объект с объектом `source` и необязательным Boolean `autoUpdate`

4886* **Default**: не установлено4902* **Default**: не установлено

4887 4903 

4888Этот пример регистрирует GitHub marketplace и marketplace из самостоятельно размещённого git URL:4904Этот пример регистрирует маркетплейс GitHub и маркетплейс из самостоятельно размещённого git URL:

4889 4905 

4890```json settings.json theme={null}4906```json settings.json theme={null}

4891{4907{


4906}4922}

4907```4923```

4908 4924 

4909[Что работает перед тем, как вы доверяете папке](/docs/ru/permissions#what-runs-before-you-trust-a-folder), сравнивает ворота доверия с другим содержимым, которое репозиторий может предоставить. Вы также можете написать этот ключ как `additionalMarketplaces`; см. [Marketplace key aliases](#marketplace-key-aliases).4925[Что работает перед тем, как вы доверяете папке](/docs/ru/permissions#what-runs-before-you-trust-a-folder), сравнивает ворота доверия с другим содержимым, которое репозиторий может предоставить. Вы также можете написать этот ключ как `additionalMarketplaces`; см. [Псевдонимы ключей маркетплейса](#marketplace-key-aliases).

4910 4926 

4911Установите `"autoUpdate": true` рядом с `source`, чтобы Claude Code обновлял этот marketplace и обновлял его установленные plugins в фоне после запуска. Когда опущено, `claude-plugins-official` и большинство других официальных marketplaces Anthropic по умолчанию имеют `true`, а marketplaces третьих сторон по умолчанию имеют `false`. См. [Configure auto-updates](/docs/ru/discover-plugins#configure-auto-updates).4927Установите `"autoUpdate": true` рядом с `source`, чтобы Claude Code обновлял этот маркетплейс и обновлял его установленные плагины в фоне после запуска. Если опущено, `claude-plugins-official` и большинство других официальных маркетплейсов Anthropic по умолчанию имеют `true`, а маркетплейсы третьих сторон по умолчанию имеют `false`. См. [Настройте автоматические обновления](/docs/ru/plugins/install#keep-plugins-updated).

4912 4928 

4913Когда более одного файла параметров определяет запись marketplace под одним и тем же именем, Claude Code использует запись из [файла с наивысшим приоритетом](/docs/ru/settings#settings-precedence) целиком. Эта запись заменяет запись с более низким приоритетом и не наследует ни одно из её полей, поэтому переопределение не может объединить `source.headers` учётные данные одного файла с URL, который контролирует другой файл. До v2.1.228 Claude Code объединял записи с одним именем поле за полем, поэтому запись в файле с более высоким приоритетом могла наследовать поля, которые она не установила, включая `headers` другого файла.4929Когда более одного файла параметров определяет запись маркетплейса под одним и тем же именем, Claude Code использует запись из [файла с наивысшим приоритетом](/docs/ru/settings#settings-precedence) целиком. Эта запись заменяет запись с более низким приоритетом и не наследует ни одно из её полей, поэтому переопределение не может объединить `source.headers` учётные данные одного файла с URL, который контролирует другой файл. До v2.1.228, Claude Code объединял записи с одним и тем же именем поле за полем, поэтому запись в файле с более высоким приоритетом могла наследовать поля, которые она не установила, включая `headers` другого файла.

4914 4930 

4915<h4 id="marketplace-source-types">4931<h4 id="marketplace-source-types">

4916 Marketplace source types4932 Marketplace source types


4920 4936 

4921* **`github`**: репозиторий GitHub, с `repo`4937* **`github`**: репозиторий GitHub, с `repo`

4922* **`git`**: любой git URL, с `url`4938* **`git`**: любой git URL, с `url`

4923* **`url`**: прямой URL к файлу `marketplace.json`, с `url` и необязательными `headers` и `headersHelper` для аутентифицированного доступа. `headersHelper` называет команду, которая печатает headers, чьи значения слишком недолговечны для перечисления в `headers`, и требует Claude Code v2.1.238 или позже4939* **`url`**: прямой URL к файлу `marketplace.json`, с `url` и необязательными `headers` и `headersHelper` для аутентифицированного доступа. `headersHelper` называет команду, которая печатает заголовки, чьи значения слишком недолговечны для перечисления в `headers`, и требует Claude Code v2.1.238 или позже

4924* **`file`**: локальный путь к файлу `marketplace.json`, с `path`4940* **`file`**: локальный путь к файлу `marketplace.json`, с `path`

4925* **`directory`**: локальный путь файловой системы, с `path`, только для разработки4941* **`directory`**: локальный путь файловой системы, с `path`, только для разработки

4926* **`settings`**: встроенный marketplace, объявленный непосредственно в файле параметров без размещённого репозитория, с `name` и `plugins`4942* **`settings`**: встроенный маркетплейс, объявленный непосредственно в файле параметров без размещённого репозитория, с `name` и `plugins`

4927 4943 

4928Тип источника `git` работает с любым сервисом хостинга git, включая самостоятельно размещённые GitLab и Bitbucket. Claude Code клонирует репозиторий с той же аутентификацией, которую использовал бы `git clone` на этой машине: настроенные помощники учётных данных или SSH ключи. Токен поставщика, такой как `GITHUB_TOKEN`, вступает в силу только через помощника учётных данных, который его читает. См. [Private repositories](/docs/ru/plugin-marketplaces#private-repositories) для деталей настройки.4944Тип источника `git` работает с любым сервисом размещения git, включая самостоятельно размещённые GitLab и Bitbucket. Claude Code клонирует репозиторий с той же аутентификацией, которую использовал бы `git clone` на этой машине: настроенные помощники учётных данных или ключи SSH. Токен поставщика, такой как `GITHUB_TOKEN`, вступает в силу через помощника учётных данных, который его читает. См. [Приватные репозитории](/docs/ru/plugins/host-marketplace#grant-access-to-a-private-marketplace) для деталей настройки.

4929 4945 

4930Для источников `github` и `git` Claude Code никогда не загружает содержимое [Git LFS](https://git-lfs.com) при клонировании репозитория marketplace для добавления или обновления. LFS-отслеживаемые файлы проверяются как файлы указателей, и вывод добавления или обновления сообщает, сколько их.4946Для источников `github` и `git`, Claude Code никогда не загружает содержимое [Git LFS](https://git-lfs.com) при клонировании репозитория маркетплейса для добавления или обновления. Файлы, отслеживаемые LFS, проверяются как файлы указателей, и вывод добавления или обновления сообщает, сколько их.

4931 4947 

4932Поле `skipLfs` внутри объекта `source` принимается и не имеет эффекта. До v2.1.274 Claude Code загружал содержимое LFS, если вы не установили `"skipLfs": true`.4948Поле `skipLfs` внутри объекта `source` принимается и не имеет эффекта. До v2.1.274, Claude Code загружал содержимое LFS, если вы не установили `"skipLfs": true`.

4933 4949 

4934Для источника `url` установите `headersHelper` внутри объекта `source`, когда учётные данные в `headers` истекают и команда должна произвести свежие. Требуется Claude Code v2.1.238 или позже. Для того, что команда должна печатать и где Claude Code её запускает, см. [Write the headersHelper command](/docs/ru/plugin-marketplaces#write-the-headershelper-command), и для случаев, когда Claude Code не запускает её, см. [When Claude Code skips a headersHelper command](/docs/ru/plugin-marketplaces#when-claude-code-skips-a-headershelper-command-or-drops-its-output). Как только вы установите `headersHelper` на URL marketplace `https://`, Claude Code запускает команду в двух точках, повторно используя вывод одного запуска в течение до 60 секунд:4950Для источника `url`, установите `headersHelper` внутри объекта `source`, когда учётные данные в `headers` истекают и команда должна произвести свежие. Требуется Claude Code v2.1.238 или позже. Для того, что команда должна печатать и где Claude Code её запускает, см. [Напишите команду headersHelper](/docs/ru/plugins/host-marketplace#write-the-headershelper-command), и для случаев, когда Claude Code её не запускает, см. [Когда Claude Code пропускает команду headersHelper](/docs/ru/plugins/host-marketplace#when-claude-code-skips-a-headershelper-command-or-drops-its-output). Как только вы установите `headersHelper` на URL маркетплейса `https://`, Claude Code запускает команду в двух точках, повторно используя вывод одного запуска в течение до 60 секунд:

4935 4951 

4936* Перед каждой выборкой `marketplace.json` этого marketplace, включая более позднее обновление. Claude Code отправляет напечатанные headers с этой выборкой.4952* Перед каждой выборкой `marketplace.json` этого маркетплейса, включая более позднее обновление. Claude Code отправляет напечатанные заголовки с этой выборкой.

4937* Перед каждой загрузкой архива plugin на происхождение URL marketplace, означая ту же схему, хост и порт. Claude Code отправляет вывод с этой загрузкой, и никакая другая загрузка не получает headers.4953* Перед каждой загрузкой архива плагина на происхождение URL маркетплейса, означая ту же схему, хост и порт. Claude Code отправляет вывод с этой загрузкой, и никакая другая загрузка не получает заголовки.

4938 4954 

4939Claude Code игнорирует любой `headersHelper`, установленный в `.claude/settings.json` или `.claude/settings.local.json` папки, которую вы добавляете с [`--add-dir`](/docs/ru/permissions#what-runs-before-you-trust-a-folder), на источнике `url` и на встроенной записи plugin одинаково, и отправляет только фиксированные `headers`, установленные в этом файле. [How users accept a headersHelper command](/docs/ru/plugin-marketplaces#how-users-accept-a-headershelper-command) охватывает другие файлы параметров.4955Claude Code игнорирует любой `headersHelper`, установленный в `.claude/settings.json` или `.claude/settings.local.json` каталога, который вы добавляете с [`--add-dir`](/docs/ru/permissions#what-runs-before-you-trust-a-folder), на источнике `url` и на встроенной записи плагина, и отправляет только фиксированные `headers`, установленные в этом файле. [Как пользователи принимают команду headersHelper](/docs/ru/plugins/host-marketplace#how-users-accept-a-headershelper-command) охватывает другие файлы параметров.

4940 4956 

4941Plugins, перечисленные в источнике `settings`, должны ссылаться на внешние источники, такие как GitHub или npm, и `name` должен совпадать с ключом marketplace. Вы всё ещё включаете каждый plugin отдельно в `enabledPlugins`. Этот пример объявляет один plugin встроенным:4957Плагины, перечисленные в источнике `settings`, должны ссылаться на внешние источники, такие как GitHub или npm, и `name` должен совпадать с ключом маркетплейса. Вы всё ещё включаете каждый плагин отдельно в `enabledPlugins`. Этот пример объявляет один плагин встроенным:

4942 4958 

4943```json settings.json theme={null}4959```json settings.json theme={null}

4944{4960{


4962}4978}

4963```4979```

4964 4980 

4965Запись plugin под `source: 'settings'`, чей собственный `source` — это [`archive`](/docs/ru/plugin-marketplaces#zip-archives), может установить `headers` для загрузки архива. Если значение, которое вы поместили бы в `headers`, недолговечно, такое как токен, который ваш реестр чеканит по запросу, установите вместо этого команду `headersHelper`. Запись может установить оба. Оба поля требуют Claude Code v2.1.238 или позже.4981Запись плагина под `source: 'settings'`, чей собственный `source` — это [`archive`](/docs/ru/plugins/marketplace-reference#archive-plugin-source), может установить `headers` для загрузки архива. Если значение, которое вы поместили бы в `headers`, недолговечно, такое как токен, который ваш реестр чеканит по запросу, установите вместо этого команду `headersHelper`. Запись может установить оба. Оба поля требуют Claude Code v2.1.238 или позже.

4966 4982 

4967Claude Code отправляет `headers` записи и всё, что печатает команда, с загрузкой архива этого plugin и ни с какой другой загрузкой. Claude Code запускает команду только когда пользователь [устанавливает или обновляет этот один plugin сам](/docs/ru/plugin-marketplaces#how-users-accept-a-headershelper-command). Три дополнительных правила зависят от того, какой файл содержит запись:4983Claude Code отправляет `headers` записи и всё, что печатает команда, с загрузкой архива этого плагина и ни с какой другой загрузкой. Claude Code запускает команду только когда пользователь [устанавливает или обновляет только этот один плагин](/docs/ru/plugins/host-marketplace#how-users-accept-a-headershelper-command). Три дополнительных правила зависят от того, какой файл содержит запись:

4968 4984 

4969* **`strict`**: в отличие от записи в `marketplace.json` marketplace, запись в параметрах не нуждается в `"strict": false`, потому что файл параметров не несёт полей манифеста для встраивания. См. [Strict mode](/docs/ru/plugin-marketplaces#strict-mode).4985* **`strict`**: в отличие от записи в `marketplace.json` маркетплейса, запись в параметрах не нуждается в `"strict": false`, потому что файл параметров не содержит полей манифеста для встраивания. См. [Strict mode](/docs/ru/plugins/marketplace-reference#strict-mode).

4970* **Folder trust**: для записи в `.claude/settings.json` или `.claude/settings.local.json` проекта Claude Code запускает команду только после того, как пользователь также [доверил эту папку](/docs/ru/permissions#what-runs-before-you-trust-a-folder).4986* **Folder trust**: для записи в `.claude/settings.json` или `.claude/settings.local.json` проекта, Claude Code запускает команду только после того, как пользователь также [доверил эту папку](/docs/ru/permissions#what-runs-before-you-trust-a-folder).

4971* **Header filter**: Claude Code удаляет [имена headers маршрутизации запросов и идентификации клиента](/docs/ru/plugin-marketplaces#when-claude-code-skips-a-headershelper-command-or-drops-its-output) из записи в `.claude/settings.json` или `.claude/settings.local.json` проекта, потому что репозиторий может предоставить эти файлы. Claude Code применяет тот же фильтр к записи каталога и к записи в папке `--add-dir`, и никакой фильтр к записи в ваших пользовательских параметрах, файле `--settings` или управляемых параметрах.4987* **Header filter**: Claude Code удаляет [имена заголовков маршрутизации запросов и идентификации клиента](/docs/ru/plugins/host-marketplace#when-claude-code-skips-a-headershelper-command-or-drops-its-output) из записи в `.claude/settings.json` или `.claude/settings.local.json` проекта, потому что репозиторий может предоставить эти файлы. Claude Code применяет тот же фильтр к записи каталога и к записи в каталоге `--add-dir`, и никакой фильтр к записи в ваши пользовательские параметры, файл `--settings` или управляемые параметры.

4972 4988 

4973<h4 id="marketplace-key-aliases">4989<h4 id="marketplace-key-aliases">

4974 Marketplace key aliases4990 Marketplace key aliases

4975</h4>4991</h4>

4976 4992 

4977На Claude Code v2.1.232 или позже вы можете написать `extraKnownMarketplaces` как `additionalMarketplaces` и `strictKnownMarketplaces` как `allowedMarketplaces`. Claude Code рассматривает каждый alias следующим образом:4993На Claude Code v2.1.232 или позже, вы можете написать `extraKnownMarketplaces` как `additionalMarketplaces` и `strictKnownMarketplaces` как `allowedMarketplaces`. Claude Code рассматривает каждый псевдоним следующим образом:

4978 4994 

4979* Более ранние версии игнорируют alias, поэтому сохраняйте каноническое написание в файле, который также читают более старые версии, такой как файл управляемых параметров для флота со смешанными версиями Claude Code.4995* Более ранние версии игнорируют псевдоним, поэтому сохраняйте каноническое написание в файле, который также читают более старые версии, такой как файл управляемых параметров для флота со смешанными версиями Claude Code.

4980* В любом файле параметров, который принимает канонический ключ, Claude Code читает alias точно так же, как он читает канонический ключ.4996* В любом файле параметров, который принимает канонический ключ, Claude Code читает псевдоним точно так же, как читает канонический ключ.

4981* Claude Code может переписать `additionalMarketplaces` на `extraKnownMarketplaces` при обновлении файла.4997* Claude Code может переписать `additionalMarketplaces` на `extraKnownMarketplaces` при обновлении файла.

4982* Если вы установите оба написания в одном файле, Claude Code использует каноническое значение и игнорирует alias.4998* Если вы установите оба написания в одном файле, Claude Code использует каноническое значение и игнорирует псевдоним.

4983 4999 

4984<h3 id="pluginconfigs">5000<h3 id="pluginconfigs">

4985 `pluginConfigs`5001 `pluginConfigs`

4986</h3>5002</h3>

4987 5003 

4988Сохраняйте неконфиденциальные ответы, которые вы даёте диалогу конфигурации [`userConfig`](/docs/ru/plugins-reference#user-configuration) plugin, обозначенные по ID plugin. Claude Code записывает этот ключ в ваши пользовательские параметры при заполнении диалога, поэтому вам не нужно редактировать его вручную. Claude Code сохраняет конфиденциальные опции в macOS Keychain вместо этого, возвращаясь к `~/.claude/.credentials.json`, когда Keychain отклоняет запись; на платформах без поддерживаемого keychain он сохраняет их в `~/.claude/.credentials.json`.5004Сохраняйте нечувствительные ответы, которые вы даёте диалогу конфигурации [`userConfig`](/docs/ru/plugins/manifest-reference#user-configuration) плагина, обозначенные по ID плагина. Claude Code записывает этот ключ в ваши пользовательские параметры при заполнении диалога, поэтому вам не нужно редактировать его вручную. Claude Code сохраняет чувствительные параметры в macOS Keychain вместо этого, возвращаясь к `~/.claude/.credentials.json`, когда Keychain отклоняет запись; на платформах без поддерживаемого keychain, он сохраняет их в `~/.claude/.credentials.json`.

4989 5005 

4990* **Scope**: [`User or managed`](#scopes)5006* **Scope**: [`User or managed`](#scopes)

4991* **Type**: object, отображающий ID plugin на объект с полем `options`, отображающим каждое имя опции на строку, число, Boolean или массив строк, и необязательное поле `mcpServers`, содержащее значения конфигурации пользователя для каждого сервера в той же форме5007* **Type**: объект, отображающий ID плагина на объект с полем `options`, отображающим каждое имя параметра на строку, число, Boolean или массив строк, и необязательное поле `mcpServers`, содержащее значения конфигурации пользователя для каждого сервера в той же форме

4992* **Default**: не установлено5008* **Default**: не установлено

4993 5009 

4994Этот пример сохраняет опцию `api_endpoint` для plugin `deployer` из `acme-tools`:5010Этот пример сохраняет параметр `api_endpoint` для плагина `deployer` из `acme-tools`:

4995 5011 

4996```json settings.json theme={null}5012```json settings.json theme={null}

4997{5013{


5005}5021}

5006```5022```

5007 5023 

5008Встроенные plugins сохраняют свои опции под тем же ключом с суффиксом `@builtin`. Например, параметр [**Project instructions**](/docs/ru/memory#choose-which-instruction-files-load), который контролирует, читает ли Claude Code файлы `AGENTS.md`, — это `pluginConfigs["agents-md@builtin"].options.instructionFiles`.5024Встроенные плагины сохраняют свои параметры под тем же ключом с суффиксом `@builtin`. Например, параметр [**Project instructions**](/docs/ru/memory#choose-which-instruction-files-load), который контролирует, читает ли Claude Code файлы `AGENTS.md`, — это `pluginConfigs["agents-md@builtin"].options.instructionFiles`.

5009 5025 

5010Claude Code игнорирует записи project и local, потому что он подставляет эти значения в конфигурации plugin hook, MCP и LSP, и клонированный репозиторий не должен быть в состоянии их предоставить. До v2.1.207 параметры project и local также читались.5026Claude Code игнорирует записи проекта и локальные, потому что он подставляет эти значения в конфигурации hook, MCP и LSP плагина, и клонированный репозиторий не должен быть в состоянии их предоставить. До v2.1.207, параметры проекта и локальные также читались.

5011 5027 

5012<h2 id="mcp">5028<h2 id="mcp">

5013 MCP5029 MCP


5233}5249}

5234```5250```

5235 5251 

5236Собственный `settings.json` плагина также может предоставить этот ключ; см. [Ship default settings with your plugin](/docs/ru/plugins#ship-default-settings-with-your-plugin).5252Собственный `settings.json` плагина также может предоставить этот ключ; см. [Ship default settings with your plugin](/docs/ru/plugins/components#default-settings).

5237 5253 

5238<h3 id="crosssessioninbound">5254<h3 id="crosssessioninbound">

5239 `crossSessionInbound`5255 `crossSessionInbound`


5329 * `"in-process"`: товарищи по команде работают внутри вашей основной панели терминала5345 * `"in-process"`: товарищи по команде работают внутри вашей основной панели терминала

5330 * `"auto"`: разделённые панели, когда вы работаете внутри tmux, или внутри iTerm2 с `it2` на вашем `PATH` или установленным tmux; в противном случае в процессе5346 * `"auto"`: разделённые панели, когда вы работаете внутри tmux, или внутри iTerm2 с `it2` на вашем `PATH` или установленным tmux; в противном случае в процессе

5331 * `"tmux"`: разделённые панели с использованием tmux или iTerm2, обнаруженные из вашего терминала5347 * `"tmux"`: разделённые панели с использованием tmux или iTerm2, обнаруженные из вашего терминала

5332 * `"iterm2"`: собственные разделённые панели iTerm2 через CLI `it2`, в Claude Code v2.1.186 или позже5348 * `"iterm2"`: собственные разделённые панели iTerm2 через CLI `it2`

5333* **Default**: `"in-process"`5349* **Default**: `"in-process"`

5334* **Per-session overrides**: `--teammate-mode` имеет приоритет над этим ключом для одной сессии5350* **Per-session overrides**: `--teammate-mode` имеет приоритет над этим ключом для одной сессии

5335 5351 


5339}5355}

5340```5356```

5341 5357 

5342Значение `iterm2` требует Claude Code v2.1.186 или позже.

5343 

5344<span id="worktree-settings" />5358<span id="worktree-settings" />

5345 5359 

5346<h3 id="worktree">5360<h3 id="worktree">


6200 6214 

6201Claude Code по-прежнему принимает `--mcp-config`, чьи серверы являются встроенными записями `type: "sdk"`, поэтому Agent SDK и расширение VS Code продолжают работать. Пользователи по-прежнему могут добавлять серверы с помощью `claude mcp add` или файла `.mcp.json`; для управления отдельными серверами также установите [`allowedMcpServers`](/docs/ru/managed-mcp). Требуется Claude Code v2.1.193 или позже.6215Claude Code по-прежнему принимает `--mcp-config`, чьи серверы являются встроенными записями `type: "sdk"`, поэтому Agent SDK и расширение VS Code продолжают работать. Пользователи по-прежнему могут добавлять серверы с помощью `claude mcp add` или файла `.mcp.json`; для управления отдельными серверами также установите [`allowedMcpServers`](/docs/ru/managed-mcp). Требуется Claude Code v2.1.193 или позже.

6202 6216 

6217Та же проверка охватывает папки плагинов, названные в переменной окружения [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/ru/env-vars#variables), что требует Claude Code v2.1.280 или позже. Когда переменная называет папку, Claude Code завершает работу с той же ошибкой, и ошибка говорит отменить установку переменной.

6218 

6203В облачных сеансах Claude Code также игнорирует обновления MCP, доставленные сервером в середине сеанса, путь позади конфигурации облачного сеанса и SDK `setMcpServers()` вызовов, которые достигают этих сеансов. Встроенные записи `type: "sdk"` остаются исключенными там же. До v2.1.239 доставленный сервером `--mcp-config` блокировал запуск облачного сеанса.6219В облачных сеансах Claude Code также игнорирует обновления MCP, доставленные сервером в середине сеанса, путь позади конфигурации облачного сеанса и SDK `setMcpServers()` вызовов, которые достигают этих сеансов. Встроенные записи `type: "sdk"` остаются исключенными там же. До v2.1.239 доставленный сервером `--mcp-config` блокировал запуск облачного сеанса.

6204 6220 

6205<h3 id="forceremotesettingsrefresh">6221<h3 id="forceremotesettingsrefresh">

skills.md +15 −15

Details

129| Project | `.claude/skills/<skill-name>/SKILL.md` | Сеансы в этом репозитории. Зафиксируйте его, чтобы ваша команда тоже его получила |129| Project | `.claude/skills/<skill-name>/SKILL.md` | Сеансы в этом репозитории. Зафиксируйте его, чтобы ваша команда тоже его получила |

130| Nested | `<subdir>/.claude/skills/<skill-name>/SKILL.md` | Сеансы, запущенные в `<subdir>` или ниже. Сеанс, запущенный выше, загружает skill один раз, когда Claude работает с файлами там. См. [монорепозитории и подкаталоги](#discovery-from-parent-and-nested-directories) |130| Nested | `<subdir>/.claude/skills/<skill-name>/SKILL.md` | Сеансы, запущенные в `<subdir>` или ниже. Сеанс, запущенный выше, загружает skill один раз, когда Claude работает с файлами там. См. [монорепозитории и подкаталоги](#discovery-from-parent-and-nested-directories) |

131| Additional directory | `.claude/skills/<skill-name>/SKILL.md` в каталоге, который вы передаете с `--add-dir` | Этот сеанс. См. [каталоги вне проекта](#skills-from-additional-directories) |131| Additional directory | `.claude/skills/<skill-name>/SKILL.md` в каталоге, который вы передаете с `--add-dir` | Этот сеанс. См. [каталоги вне проекта](#skills-from-additional-directories) |

132| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | Везде, где [plugin](/docs/ru/plugins) включен, как `/plugin-name:skill-name` |132| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | Везде, где [plugin](/docs/ru/plugins/overview) включен, как `/plugin-name:skill-name` |

133| claude.ai account | Skills, включенные для вашей учетной записи claude.ai | Сеансы Cowork, облачные сеансы и сеансы терминала, в которых вы входите с этой учетной записью. См. [Skills, синхронизированные с claude.ai](#how-synced-skills-behave) |133| claude.ai account | Skills, включенные для вашей учетной записи claude.ai | Сеансы Cowork, облачные сеансы и сеансы терминала, в которых вы входите с этой учетной записью. См. [Skills, синхронизированные с claude.ai](#how-synced-skills-behave) |

134 134 

135Папки skill также следуют этим правилам:135Папки skill также следуют этим правилам:

136 136 

137* **Символические ссылки на папки**: запись `<skill-name>` в расположении enterprise, personal или project может быть символической ссылкой на каталог в другом месте на диске. Claude Code читает `SKILL.md` из целевого объекта и загружает skill один раз, даже если несколько расположений указывают на один и тот же целевой объект. Plugin skills [обрабатывают символические ссылки по-другому](/docs/ru/plugins-reference#share-files-within-a-marketplace-with-symlinks).137* **Символические ссылки на папки**: запись `<skill-name>` в расположении enterprise, personal или project может быть символической ссылкой на каталог в другом месте на диске. Claude Code читает `SKILL.md` из целевого объекта и загружает skill один раз, даже если несколько расположений указывают на один и тот же целевой объект. Plugin skills [обрабатывают символические ссылки по-другому](/docs/ru/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks).

138* **Зарезервированное имя**: не называйте папку skill `synced` в любом регистре. Claude Code использует `~/.claude/skills/synced/` для [skills, загруженных с claude.ai](#where-synced-skills-load), и пропускает skill, который вы создали с этим именем в расположениях enterprise, personal и project.138* **Зарезервированное имя**: не называйте папку skill `synced` в любом регистре. Claude Code использует `~/.claude/skills/synced/` для [skills, загруженных с claude.ai](#where-synced-skills-load), и пропускает skill, который вы создали с этим именем в расположениях enterprise, personal и project.

139* **Файлы команд**: файл Markdown в `.claude/commands/` — это более старый формат, который все еще работает. Он поддерживает то же [frontmatter](#frontmatter-reference), кроме `name` и `paths`. Чтобы найти имя, которое вы вводите для его вызова, см. [Как skill получает имя команды](#how-a-skill-gets-its-command-name). Предпочитайте skill для новой работы, так как skills также поддерживают [вспомогательные файлы](#add-supporting-files).139* **Файлы команд**: файл Markdown в `.claude/commands/` — это более старый формат, который все еще работает. Он поддерживает то же [frontmatter](#frontmatter-reference), кроме `name` и `paths`. Чтобы найти имя, которое вы вводите для его вызова, см. [Как skill получает имя команды](#how-a-skill-gets-its-command-name). Предпочитайте skill для новой работы, так как skills также поддерживают [вспомогательные файлы](#add-supporting-files).

140* **Папка skill как plugin**: добавьте `.claude-plugin/plugin.json` в папку skill, и она загружается как [plugin](/docs/ru/plugins-reference#skills-directory-plugins) с именем `<name>@skills-dir`, поэтому она может объединять agents, hooks и MCP servers. В `.claude/skills/` проекта это требует предварительного принятия диалога доверия рабочей области.140* **Папка skill как plugin**: добавьте `.claude-plugin/plugin.json` в папку skill, и она загружается как [plugin](/docs/ru/plugins/loading#plugins-shared-through-a-repository) с именем `<name>@skills-dir`, поэтому она может объединять agents, hooks и MCP servers. В `.claude/skills/` проекта это требует предварительного принятия диалога доверия рабочей области.

141 141 

142<h3 id="discovery-from-parent-and-nested-directories">142<h3 id="discovery-from-parent-and-nested-directories">

143 Загружайте skills в монорепозиториях и подкаталогах143 Загружайте skills в монорепозиториях и подкаталогах


275 275 

276Claude Code отслеживает каталоги skills на предмет изменений файлов, кроме [bare mode](/docs/ru/headless#start-faster-with-bare-mode). Когда вы добавляете, редактируете или удаляете skill в `~/.claude/skills/`, project `.claude/skills/` или `.claude/skills/` внутри каталога `--add-dir`, Claude Code подхватывает изменение в текущем сеансе без перезагрузки. Если вы создаете каталог skills верхнего уровня, который не существовал при запуске сеанса, перезапустите Claude Code, чтобы он мог отслеживать новый каталог.276Claude Code отслеживает каталоги skills на предмет изменений файлов, кроме [bare mode](/docs/ru/headless#start-faster-with-bare-mode). Когда вы добавляете, редактируете или удаляете skill в `~/.claude/skills/`, project `.claude/skills/` или `.claude/skills/` внутри каталога `--add-dir`, Claude Code подхватывает изменение в текущем сеансе без перезагрузки. Если вы создаете каталог skills верхнего уровня, который не существовал при запуске сеанса, перезапустите Claude Code, чтобы он мог отслеживать новый каталог.

277 277 

278Обнаружение изменений в реальном времени охватывает только текст `SKILL.md`. Для папки skill, которая также является [plugin](/docs/ru/plugins-reference#skills-directory-plugins), изменения в `hooks/`, `.mcp.json`, `agents/` и `output-styles/` требуют `/reload-plugins` для вступления в силу.278Обнаружение изменений в реальном времени охватывает только текст `SKILL.md`. Для папки skill, которая также является [plugin](/docs/ru/plugins/loading#plugins-shared-through-a-repository), изменения в `hooks/`, `.mcp.json`, `agents/` и `output-styles/` требуют `/reload-plugins` для вступления в силу.

279 279 

280<h3 id="remove-a-skill">280<h3 id="remove-a-skill">

281 Удалите skill281 Удалите skill


285 285 

286* **Personal или project skill**: удалите каталог skill, `~/.claude/skills/<skill-name>/` или `.claude/skills/<skill-name>/`. Claude Code [удаляет его из `/skills` в текущем сеансе](#live-change-detection); содержимое, которое Claude Code уже загрузил из него, следует [жизненному циклу содержимого skill](#skill-content-lifecycle).286* **Personal или project skill**: удалите каталог skill, `~/.claude/skills/<skill-name>/` или `.claude/skills/<skill-name>/`. Claude Code [удаляет его из `/skills` в текущем сеансе](#live-change-detection); содержимое, которое Claude Code уже загрузил из него, следует [жизненному циклу содержимого skill](#skill-content-lifecycle).

287* **Enterprise skill**: администратор удаляет каталог skill из `.claude/skills/` внутри [каталога управляемых параметров](/docs/ru/managed-settings#delivery-mechanisms), например `/etc/claude-code/.claude/skills/<skill-name>/` на Linux.287* **Enterprise skill**: администратор удаляет каталог skill из `.claude/skills/` внутри [каталога управляемых параметров](/docs/ru/managed-settings#delivery-mechanisms), например `/etc/claude-code/.claude/skills/<skill-name>/` на Linux.

288* **Plugin skill**: отключите или удалите plugin, который его предоставляет, из меню `/plugin` или с помощью `/plugin uninstall <plugin-name>@<marketplace-name>`. Claude Code выгружает skills plugin, когда [изменение применяется](/docs/ru/discover-plugins#apply-plugin-changes-without-restarting) или когда вы перезагружаетесь.288* **Plugin skill**: отключите или удалите plugin, который его предоставляет, из меню `/plugin` или с помощью `/plugin uninstall <plugin-name>@<marketplace-name>`. Claude Code выгружает skills plugin, когда [изменение применяется](/docs/ru/plugins/cli-reference#reload-plugins) или когда вы перезагружаетесь.

289* **Skill, синхронизированный с claude.ai**: отключите skill для вашей учетной записи claude.ai в том же месте, где вы его [включили](#skills-in-cowork-and-cloud-sessions). Claude Code удаляет его из `~/.claude/skills/synced/` при следующей [синхронизации ваших skills](#where-synced-skills-load). Если вы вместо этого удалите каталог вручную, следующая синхронизация загружает его снова, пока skill остается включенным на claude.ai.289* **Skill, синхронизированный с claude.ai**: отключите skill для вашей учетной записи claude.ai в том же месте, где вы его [включили](#skills-in-cowork-and-cloud-sessions). Claude Code удаляет его из `~/.claude/skills/synced/` при следующей [синхронизации ваших skills](#where-synced-skills-load). Если вы вместо этого удалите каталог вручную, следующая синхронизация загружает его снова, пока skill остается включенным на claude.ai.

290* **Встроенный skill**: установите [`disableBundledSkills`](#bundled-skills) на `true`, чтобы отключить встроенные skills, или установите один skill на `"off"` в [`skillOverrides`](#override-skill-visibility-from-settings), чтобы скрыть его.290* **Встроенный skill**: установите [`disableBundledSkills`](#bundled-skills) на `true`, чтобы отключить встроенные skills, или установите один skill на `"off"` в [`skillOverrides`](#override-skill-visibility-from-settings), чтобы скрыть его.

291 291 


389 389 

390| Путь распространения | Поля Frontmatter, которые вы можете использовать |390| Путь распространения | Поля Frontmatter, которые вы можете использовать |

391| :------------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------- |391| :------------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------- |

392| Claude Code skills на [любом уровне](#where-skills-live), включая [plugin](/docs/ru/plugins) skills | Каждое поле в таблице выше |392| Claude Code skills на [любом уровне](#where-skills-live), включая [plugin](/docs/ru/plugins/overview) skills | Каждое поле в таблице выше |

393| Загрузки skills на claude.ai, Skills API и упаковка с `package_skill.py` из [anthropics/skills](https://github.com/anthropics/skills) | `name`, `description`, `license`, `compatibility`, `metadata`, `allowed-tools` |393| Загрузки skills на claude.ai, Skills API и упаковка с `package_skill.py` из [anthropics/skills](https://github.com/anthropics/skills) | `name`, `description`, `license`, `compatibility`, `metadata`, `allowed-tools` |

394 394 

395Когда вы включаете личный skill для вашего аккаунта claude.ai, например для использования в [сеансах Cowork и cloud](#skills-in-cowork-and-cloud-sessions) и процедурах, вы загружаете его на claude.ai, поэтому применяются те же правила.395Когда вы включаете личный skill для вашего аккаунта claude.ai, например для использования в [сеансах Cowork и cloud](#skills-in-cowork-and-cloud-sessions) и процедурах, вы загружаете его на claude.ai, поэтому применяются те же правила.


411Таблица ниже показывает, откуда берется имя команды для каждого макета:411Таблица ниже показывает, откуда берется имя команды для каждого макета:

412 412 

413| Расположение Skill | Источник имени команды | Пример |413| Расположение Skill | Источник имени команды | Пример |

414| :---------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------- |414| :---------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------- |

415| Каталог Skill под `~/.claude/skills/` или `.claude/skills/` | Имя каталога | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` |415| Каталог Skill под `~/.claude/skills/` или `.claude/skills/` | Имя каталога | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` |

416| [Вложенный](#where-skills-live) каталог `.claude/skills/`, когда имя конфликтует с другим skill | Путь подкаталога относительно рабочего каталога, затем имя каталога skill | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |416| [Вложенный](#where-skills-live) каталог `.claude/skills/`, когда имя конфликтует с другим skill | Путь подкаталога относительно рабочего каталога, затем имя каталога skill | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |

417| Файл под `.claude/commands/` | Имя файла без расширения | `.claude/commands/deploy.md` → `/deploy` |417| Файл под `.claude/commands/` | Имя файла без расширения | `.claude/commands/deploy.md` → `/deploy` |

418| Файл в подкаталоге `.claude/commands/` | Путь подкаталога относительно `commands/` с каждым `/` заменен на `:`, затем имя файла без расширения | `.claude/commands/frontend/component.md` → `/frontend:component` |418| Файл в подкаталоге `.claude/commands/` | Путь подкаталога относительно `commands/` с каждым `/` заменен на `:`, затем имя файла без расширения | `.claude/commands/frontend/component.md` → `/frontend:component` |

419| Подкаталог Plugin `skills/` | Frontmatter `name` или имя каталога, с пространством имен по plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review`, или `/my-plugin:fancy` с `name: fancy` |419| Подкаталог Plugin `skills/` | Frontmatter `name` или имя каталога, с пространством имен по plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review`, или `/my-plugin:fancy` с `name: fancy` |

420| Plugin root `SKILL.md` | Frontmatter `name`, с именем каталога plugin в качестве резервного варианта | `my-plugin/SKILL.md` с `name: review` → `/my-plugin:review`. См. [Правила поведения пути](/docs/ru/plugins-reference#path-behavior-rules) |420| Plugin root `SKILL.md` | Frontmatter `name`, с именем каталога plugin в качестве резервного варианта | `my-plugin/SKILL.md` с `name: review` → `/my-plugin:review`. См. [одиночный skill в корне plugin](/docs/ru/plugins/components#skills) |

421| Skill [синхронизированный с claude.ai](#how-synced-skills-behave) | Имя skill на вашем аккаунте claude.ai, с префиксом `anthropic-skills:` | Skill аккаунта `deploy` → `/anthropic-skills:deploy`, или `/deploy`, если никакая другая команда не использует это имя |421| Skill [синхронизированный с claude.ai](#how-synced-skills-behave) | Имя skill на вашем аккаунте claude.ai, с префиксом `anthropic-skills:` | Skill аккаунта `deploy` → `/anthropic-skills:deploy`, или `/deploy`, если никакая другая команда не использует это имя |

422 422 

423В plugin skill frontmatter `name` заменяет имя каталога в последнем сегменте команды, поэтому `my-plugin/skills/review/SKILL.md` с `name: fancy` становится `/my-plugin:fancy`. Голая команда `/fancy` также вызывает skill, если другая команда еще не использует это имя. Если `name`, который вы пишете, уже начинается с собственного префикса plugin, Claude Code не добавляет префикс снова на v2.1.246 или позже. Например, `name: my-plugin:fancy` все еще становится `/my-plugin:fancy`. С v2.1.216 по v2.1.245 Claude Code удваивал префикс, когда `name` уже его содержал.423В plugin skill frontmatter `name` заменяет имя каталога в последнем сегменте команды, поэтому `my-plugin/skills/review/SKILL.md` с `name: fancy` становится `/my-plugin:fancy`. Голая команда `/fancy` также вызывает skill, если другая команда еще не использует это имя. Если `name`, который вы пишете, уже начинается с собственного префикса plugin, Claude Code не добавляет префикс снова на v2.1.246 или позже. Например, `name: my-plugin:fancy` все еще становится `/my-plugin:fancy`. С v2.1.216 по v2.1.245 Claude Code удваивал префикс, когда `name` уже его содержал.


442| `${CLAUDE_EFFORT}` | Текущий уровень усилий: `low`, `medium`, `high`, `xhigh` или `max`. Ultracode не является отдельным уровнем и сообщается как `xhigh`. Используйте это, чтобы адаптировать инструкции skill к активной настройке усилий. |442| `${CLAUDE_EFFORT}` | Текущий уровень усилий: `low`, `medium`, `high`, `xhigh` или `max`. Ultracode не является отдельным уровнем и сообщается как `xhigh`. Используйте это, чтобы адаптировать инструкции skill к активной настройке усилий. |

443| `${CLAUDE_SKILL_DIR}` | Каталог, содержащий файл `SKILL.md` skill. Для plugin skills это подкаталог skill в plugin, а не корень plugin. Используйте это в bash-командах внедрения для ссылки на скрипты или файлы, поставляемые с skill, независимо от текущего рабочего каталога. |443| `${CLAUDE_SKILL_DIR}` | Каталог, содержащий файл `SKILL.md` skill. Для plugin skills это подкаталог skill в plugin, а не корень plugin. Используйте это в bash-командах внедрения для ссылки на скрипты или файлы, поставляемые с skill, независимо от текущего рабочего каталога. |

444| `${CLAUDE_PROJECT_DIR}` | Корневой каталог проекта. Это тот же путь, который [hooks](/docs/ru/hooks#reference-scripts-by-path) и MCP-серверы получают как `CLAUDE_PROJECT_DIR`. Используйте это для ссылки на скрипты или файлы, специфичные для проекта, такие как `${CLAUDE_PROJECT_DIR}/.claude/hooks/helper.sh`, независимо от того, где установлен skill. |444| `${CLAUDE_PROJECT_DIR}` | Корневой каталог проекта. Это тот же путь, который [hooks](/docs/ru/hooks#reference-scripts-by-path) и MCP-серверы получают как `CLAUDE_PROJECT_DIR`. Используйте это для ссылки на скрипты или файлы, специфичные для проекта, такие как `${CLAUDE_PROJECT_DIR}/.claude/hooks/helper.sh`, независимо от того, где установлен skill. |

445| `${CLAUDE_PLUGIN_ROOT}` | Каталог установки plugin. Подставляется только в plugin skills. Используйте это для ссылки на скрипты или файлы, поставляемые в любом месте plugin, включая ресурсы, общие для skills plugin. См. [переменные окружения plugin](/docs/ru/plugins-reference#environment-variables). |445| `${CLAUDE_PLUGIN_ROOT}` | Каталог установки plugin. Подставляется только в plugin skills. Используйте это для ссылки на скрипты или файлы, поставляемые в любом месте plugin, включая ресурсы, общие для skills plugin. См. [переменные окружения plugin](/docs/ru/plugins/manifest-reference#environment-variables). |

446| `${CLAUDE_PLUGIN_DATA}` | [Каталог постоянных данных](/docs/ru/plugins-reference#persistent-data-directory) plugin, который сохраняется при обновлении plugin. Подставляется только в plugin skills. Используйте это для ссылки на установленные зависимости, сгенерированные файлы или кэши, которые должны пережить обновление. |446| `${CLAUDE_PLUGIN_DATA}` | [Каталог постоянных данных](/docs/ru/plugins/components#path-variables-and-persistent-data) plugin, который сохраняется при обновлении plugin. Подставляется только в plugin skills. Используйте это для ссылки на установленные зависимости, сгенерированные файлы или кэши, которые должны пережить обновление. |

447 447 

448Claude Code подставляет `${CLAUDE_SKILL_DIR}` и `${CLAUDE_PROJECT_DIR}` в двух местах: содержимое markdown skill и Bash-правила в frontmatter [`allowed-tools`](#frontmatter-reference). В plugin skill Claude Code подставляет `${CLAUDE_PLUGIN_ROOT}` и `${CLAUDE_PLUGIN_DATA}` в тех же двух местах. Использование одной и той же переменной в обоих местах позволяет skill запустить поставляемый скрипт без подсказки разрешения. Следующий skill показывает паттерн:448Claude Code подставляет `${CLAUDE_SKILL_DIR}` и `${CLAUDE_PROJECT_DIR}` в двух местах: содержимое markdown skill и Bash-правила в frontmatter [`allowed-tools`](#frontmatter-reference). В plugin skill Claude Code подставляет `${CLAUDE_PLUGIN_ROOT}` и `${CLAUDE_PLUGIN_DATA}` в тех же двух местах. Использование одной и той же переменной в обоих местах позволяет skill запустить поставляемый скрипт без подсказки разрешения. Следующий skill показывает паттерн:

449 449 


892 892 

893Проверка обоих — это сравнение базовых показателей. Соберите несколько реалистичных подсказок, запустите каждую в свежем сеансе с доступным навыком и снова с ним [отключенным](#override-skill-visibility-from-settings), и сравните результаты. Свежий сеанс важен, потому что оставшийся контекст от создания навыка скроет пробелы в написанных инструкциях.893Проверка обоих — это сравнение базовых показателей. Соберите несколько реалистичных подсказок, запустите каждую в свежем сеансе с доступным навыком и снова с ним [отключенным](#override-skill-visibility-from-settings), и сравните результаты. Свежий сеанс важен, потому что оставшийся контекст от создания навыка скроет пробелы в написанных инструкциях.

894 894 

895Два инструмента автоматизируют это сравнение. Для навыка, который поставляется в [плагине](/docs/ru/plugins), [`claude plugin eval`](/docs/ru/plugin-evals) запускает каждую подсказку в изолированном сеансе с плагином и без него, оценивает его с помощью оценщиков, которые вы определяете или которые он пишет для вас, и выходит с ненулевым кодом ниже порога, чтобы вы могли заблокировать CI на нем. Для итерации над одним навыком внутри разговора Claude Code плагин skill-creator ниже запускает аналогичный цикл с собственным форматом `evals/evals.json`. Эти два формата не взаимозаменяемы.895Два инструмента автоматизируют это сравнение. Для навыка, который поставляется в [плагине](/docs/ru/plugins/overview), [`claude plugin eval`](/docs/ru/plugin-evals) запускает каждую подсказку в изолированном сеансе с плагином и без него, оценивает его с помощью оценщиков, которые вы определяете или которые он пишет для вас, и выходит с ненулевым кодом ниже порога, чтобы вы могли заблокировать CI на нем. Для итерации над одним навыком внутри разговора Claude Code плагин skill-creator ниже запускает аналогичный цикл с собственным форматом `evals/evals.json`. Эти два формата не взаимозаменяемы.

896 896 

897<h3 id="run-evals-with-skill-creator">897<h3 id="run-evals-with-skill-creator">

898 Запуск оценок с skill-creator898 Запуск оценок с skill-creator


907Если установка не удалась, сопоставьте сообщение, которое сообщает Claude Code:907Если установка не удалась, сопоставьте сообщение, которое сообщает Claude Code:

908 908 

909* `Marketplace "claude-plugins-official" not found`: добавьте marketplace с помощью `/plugin marketplace add anthropics/claude-plugins-official`, затем повторите попытку установки.909* `Marketplace "claude-plugins-official" not found`: добавьте marketplace с помощью `/plugin marketplace add anthropics/claude-plugins-official`, затем повторите попытку установки.

910* Плагин [не найден в marketplace](/docs/ru/discover-plugins#install-plugins): проверьте имя плагина.910* Плагин [не найден в marketplace](/docs/ru/plugins/install#install-a-plugin): проверьте имя плагина.

911 911 

912Если сводка установки сообщает `Run /reload-plugins to activate.`, Claude Code затем запускает эту перезагрузку для вас. Если перезагрузка предупреждает, что ваше следующее сообщение повторно прочитает разговор, запустите `/reload-plugins --force`, чтобы сделать навыки плагина доступными в текущем сеансе. Затем попросите Claude оценить существующий навык, например `evaluate my summarize-changes skill with skill-creator`. Плагин проведет вас через написание тестовых случаев и запустит цикл:912Если сводка установки сообщает `Run /reload-plugins to activate.`, Claude Code затем запускает эту перезагрузку для вас. Если перезагрузка предупреждает, что ваше следующее сообщение повторно прочитает разговор, запустите `/reload-plugins --force`, чтобы сделать навыки плагина доступными в текущем сеансе. Затем попросите Claude оценить существующий навык, например `evaluate my summarize-changes skill with skill-creator`. Плагин проведет вас через написание тестовых случаев и запустит цикл:

913 913 


928Skills можно распространять на разных уровнях в зависимости от вашей аудитории:928Skills можно распространять на разных уровнях в зависимости от вашей аудитории:

929 929 

930* **Project skills**: Зафиксируйте `.claude/skills/` в системе контроля версий930* **Project skills**: Зафиксируйте `.claude/skills/` в системе контроля версий

931* **Plugins**: Создайте директорию `skills/` в вашем [plugin](/docs/ru/plugins)931* **Plugins**: Создайте директорию `skills/` в вашем [plugin](/docs/ru/plugins/overview)

932* **Managed**: Разверните на уровне организации через [managed settings](/docs/ru/managed-settings)932* **Managed**: Разверните на уровне организации через [managed settings](/docs/ru/managed-settings)

933 933 

934<h3 id="generate-visual-output">934<h3 id="generate-visual-output">


1143 1143 

1144Если skill поставляется в плагине, вы можете измерить, как часто он срабатывает на реалистичных запросах, вместо того чтобы проверять по одному: напишите eval case с [`tool_used: Skill` grader](/docs/ru/plugin-evals#create-your-first-eval-suite) и запустите его с `claude plugin eval` после каждого изменения описания.1144Если skill поставляется в плагине, вы можете измерить, как часто он срабатывает на реалистичных запросах, вместо того чтобы проверять по одному: напишите eval case с [`tool_used: Skill` grader](/docs/ru/plugin-evals#create-your-first-eval-suite) и запустите его с `claude plugin eval` после каждого изменения описания.

1145 1145 

1146Чтобы найти файлы `SKILL.md`, frontmatter которых не парсится, запустите [`claude plugin validate`](/docs/ru/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest) в директории skills, например `claude plugin validate .claude/skills` для skills проекта или `claude plugin validate ~/.claude/skills` для личных skills. Требуется Claude Code v2.1.233 или позже.1146Чтобы найти файлы `SKILL.md`, frontmatter которых не парсится, запустите [`claude plugin validate`](/docs/ru/plugins/cli-reference#validate-a-directory) в директории skills, например `claude plugin validate .claude/skills` для skills проекта или `claude plugin validate ~/.claude/skills` для личных skills. Требуется Claude Code v2.1.233 или позже.

1147 1147 

1148<h3 id="skill-triggers-too-often">1148<h3 id="skill-triggers-too-often">

1149 Skill triggers too often1149 Skill triggers too often


1184* **[Evaluating skill output quality](https://agentskills.io/skill-creation/evaluating-skills)**: формат файла eval и рабочий процесс итерации на agentskills.io1184* **[Evaluating skill output quality](https://agentskills.io/skill-creation/evaluating-skills)**: формат файла eval и рабочий процесс итерации на agentskills.io

1185* **[Skill authoring best practices](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices)**: рекомендации по написанию, которые применяются во всех продуктах Claude1185* **[Skill authoring best practices](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices)**: рекомендации по написанию, которые применяются во всех продуктах Claude

1186* **[Subagents](/docs/ru/sub-agents)**: делегируйте задачи специализированным агентам1186* **[Subagents](/docs/ru/sub-agents)**: делегируйте задачи специализированным агентам

1187* **[Plugins](/docs/ru/plugins)**: упакуйте и распространяйте skills с другими расширениями1187* **[Plugins](/docs/ru/plugins/overview)**: упакуйте и распространяйте skills с другими расширениями

1188* **[Hooks](/docs/ru/hooks)**: автоматизируйте рабочие процессы вокруг событий инструментов1188* **[Hooks](/docs/ru/hooks)**: автоматизируйте рабочие процессы вокруг событий инструментов

1189* **[Memory](/docs/ru/memory)**: управляйте файлами CLAUDE.md для постоянного контекста1189* **[Memory](/docs/ru/memory)**: управляйте файлами CLAUDE.md для постоянного контекста

1190* **[Commands](/docs/ru/commands)**: справочник для встроенных команд и встроенных skills1190* **[Commands](/docs/ru/commands)**: справочник для встроенных команд и встроенных skills

statusline.md +1 −1

Details

1142 1142 

1143Напишите одну строку JSON в stdout для каждой строки, которую вы хотите переопределить, в форме `{"id": "<task id>", "content": "<row body>"}`. Строка `content` отображается как есть, включая цвета ANSI и гиперссылки OSC 8. Пропустите `id` задачи, чтобы сохранить отображение по умолчанию для этой строки; выведите пустую строку `content`, чтобы скрыть её.1143Напишите одну строку JSON в stdout для каждой строки, которую вы хотите переопределить, в форме `{"id": "<task id>", "content": "<row body>"}`. Строка `content` отображается как есть, включая цвета ANSI и гиперссылки OSC 8. Пропустите `id` задачи, чтобы сохранить отображение по умолчанию для этой строки; выведите пустую строку `content`, чтобы скрыть её.

1144 1144 

1145Те же ворота доверия, `disableAllHooks` и [`allowManagedHooksOnly`](/docs/ru/settings-reference#allowmanagedhooksonly), которые применяются к `statusLine`, применяются здесь. Плагины могут поставлять `subagentStatusLine` по умолчанию в своём [`settings.json`](/docs/ru/plugins-reference#standard-plugin-layout), но в отличие от hooks, значения плагинов не запускаются под `allowManagedHooksOnly` даже когда плагин принудительно включен в управляемых параметрах `enabledPlugins`.1145Те же ворота доверия, `disableAllHooks` и [`allowManagedHooksOnly`](/docs/ru/settings-reference#allowmanagedhooksonly), которые применяются к `statusLine`, применяются здесь. Плагины могут поставлять `subagentStatusLine` по умолчанию в своём [`settings.json`](/docs/ru/plugins/manifest-reference#standard-layout), но в отличие от hooks, значения плагинов не запускаются под `allowManagedHooksOnly` даже когда плагин принудительно включен в управляемых параметрах `enabledPlugins`.

1146 1146 

1147<h2 id="tips">1147<h2 id="tips">

1148 Советы1148 Советы

sub-agents.md +15 −13

Details

174| `--agents` CLI flag | Текущая сессия | 2 | Передайте JSON при запуске Claude Code |174| `--agents` CLI flag | Текущая сессия | 2 | Передайте JSON при запуске Claude Code |

175| `.claude/agents/` | Текущий проект | 3 | Попросите Claude или создайте файл вручную |175| `.claude/agents/` | Текущий проект | 3 | Попросите Claude или создайте файл вручную |

176| `~/.claude/agents/` | Все ваши проекты | 4 | Попросите Claude или создайте файл вручную |176| `~/.claude/agents/` | Все ваши проекты | 4 | Попросите Claude или создайте файл вручную |

177| Директория `agents/` plugin | Где включен plugin | 5 (наименьший) | Установлено с [plugins](/docs/ru/plugins) |177| Директория `agents/` plugin | Где включен plugin | 5 (наименьший) | Установлено с [plugins](/docs/ru/plugins/overview) |

178 178 

179**Project subagents** (`.claude/agents/`) идеальны для subagents, специфичных для кодовой базы. Проверьте их в систему контроля версий, чтобы ваша команда могла использовать и улучшать их совместно.179**Project subagents** (`.claude/agents/`) идеальны для subagents, специфичных для кодовой базы. Проверьте их в систему контроля версий, чтобы ваша команда могла использовать и улучшать их совместно.

180 180 

181Project subagents обнаруживаются путём прохода вверх от текущей рабочей директории, поэтому каждый `.claude/agents/` между ней и корнем репозитория сканируется. Начиная с версии 2.1.178, когда более одной из этих вложенных директорий определяет одно и то же `name`, Claude Code использует определение, ближайшее к рабочей директории.181Project subagents обнаруживаются путём прохода вверх от текущей рабочей директории, поэтому каждый `.claude/agents/` между ней и корнем репозитория сканируется. Когда более одной из этих вложенных директорий определяет одно и то же `name`, Claude Code использует определение, ближайшее к рабочей директории.

182 182 

183Когда вы добавляете директорию с помощью `--add-dir` или `/add-dir`, Claude Code также загружает её папку `.claude/agents/` вместе с project subagents. См. [Additional directories](/docs/ru/permissions#additional-directories-grant-file-access-not-configuration) для того, какие другие типы конфигурации загружаются из `--add-dir`. Чтобы поделиться subagents в проектах без `--add-dir`, используйте `~/.claude/agents/` или [plugin](/docs/ru/plugins).183Когда вы добавляете директорию с помощью `--add-dir` или `/add-dir`, Claude Code также загружает её папку `.claude/agents/` вместе с project subagents. См. [Additional directories](/docs/ru/permissions#additional-directories-grant-file-access-not-configuration) для того, какие другие типы конфигурации загружаются из `--add-dir`. Чтобы поделиться subagents в проектах без `--add-dir`, используйте `~/.claude/agents/` или [plugin](/docs/ru/plugins/overview).

184 184 

185**User subagents** (`~/.claude/agents/`) — это личные subagents, доступные во всех ваших проектах.185**User subagents** (`~/.claude/agents/`) — это личные subagents, доступные во всех ваших проектах.

186 186 


238 238 

239**Managed subagents** развёртываются администраторами организации. Поместите файлы markdown в `.claude/agents/` внутри [директории managed settings](/docs/ru/managed-settings#delivery-mechanisms), используя тот же формат frontmatter, что и project и user subagents. Managed определения имеют приоритет над project и user subagents с тем же именем.239**Managed subagents** развёртываются администраторами организации. Поместите файлы markdown в `.claude/agents/` внутри [директории managed settings](/docs/ru/managed-settings#delivery-mechanisms), используя тот же формат frontmatter, что и project и user subagents. Managed определения имеют приоритет над project и user subagents с тем же именем.

240 240 

241**Plugin subagents** поступают из [plugins](/docs/ru/plugins), которые вы установили. Они загружаются вместе с вашими пользовательскими subagents и появляются в typeahead @-упоминания под их scoped name. См. [справку по компонентам plugin](/docs/ru/plugins-reference#agents) для деталей создания plugin subagents.241**Plugin subagents** поступают из [plugins](/docs/ru/plugins/overview), которые вы установили. Они загружаются вместе с вашими пользовательскими subagents и появляются в typeahead @-упоминания под их scoped name. См. [справку по компонентам plugin](/docs/ru/plugins/components#agents) для деталей создания plugin subagents.

242 242 

243<Note>243<Note>

244 По соображениям безопасности plugin subagents не поддерживают поля frontmatter `hooks`, `mcpServers` или `permissionMode`. Эти поля игнорируются при загрузке агентов из plugin. Если они вам нужны, скопируйте файл агента в `.claude/agents/` или `~/.claude/agents/`. Вы также можете добавить правила в [`permissions.allow`](/docs/ru/settings-reference#permissions-allow) в `settings.json` или `settings.local.json`, но эти правила применяются ко всей сессии, а не только к plugin subagent.244 По соображениям безопасности plugin subagents не поддерживают поля frontmatter `hooks`, `mcpServers` или `permissionMode`. Эти поля игнорируются при загрузке агентов из plugin. Если они вам нужны, скопируйте файл агента в `.claude/agents/` или `~/.claude/agents/`. Вы также можете добавить правила в [`permissions.allow`](/docs/ru/settings-reference#permissions-allow) в `settings.json` или `settings.local.json`, но эти правила применяются ко всей сессии, а не только к plugin subagent.


305 305 

306| Field | Требуется | Description |306| Field | Требуется | Description |

307| :---------------- | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |307| :---------------- | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

308| `name` | Да | Уникальный идентификатор, такой как `code-reviewer` или `reviewer-v2`. [Hooks](/docs/ru/hooks#subagentstart) получают это значение как `agent_type`. Имя файла не должно совпадать. Имена не могут содержать `:`, который зарезервирован для [plugin-scoped identifiers](/docs/ru/plugins), таких как `my-plugin:reviewer`. Claude Code не загружает файл, чьё имя содержит один, и регистрирует ошибку в журнал отладки. До версии 2.1.218 такие имена были приняты |308| `name` | Да | Уникальный идентификатор, такой как `code-reviewer` или `reviewer-v2`. [Hooks](/docs/ru/hooks#subagentstart) получают это значение как `agent_type`. Имя файла не должно совпадать. Имена не могут содержать `:`, который зарезервирован для [plugin-scoped identifiers](/docs/ru/plugins/overview) таких как `my-plugin:reviewer`. Claude Code не загружает файл, чьё имя содержит один, и регистрирует ошибку в журнал отладки. До версии 2.1.218 такие имена были приняты |

309| `description` | Да | Когда Claude должен делегировать этому subagent |309| `description` | Да | Когда Claude должен делегировать этому subagent |

310| `tools` | Нет | [Инструменты](#available-tools), которые может использовать subagent, как строка, разделённая запятыми, такая как `Read, Grep, Bash` или список YAML. Наследует каждый инструмент, доступный для subagents, если опущено. Если ни один элемент в списке не разрешается в инструмент, subagent обычно [не запускается](/docs/ru/errors#agent-would-be-spawned-with-zero-tools) с ошибкой, называющей элементы. Чтобы предварительно загрузить Skills в контекст, используйте поле `skills` вместо перечисления `Skill` здесь |310| `tools` | Нет | [Инструменты](#available-tools), которые может использовать subagent, как строка, разделённая запятыми, такая как `Read, Grep, Bash` или список YAML. Наследует каждый инструмент, доступный для subagents, если опущено. Если ни один элемент в списке не разрешается в инструмент, subagent обычно [не запускается](/docs/ru/errors#agent-would-be-spawned-with-zero-tools) с ошибкой, называющей элементы. Чтобы предварительно загрузить Skills в контекст, используйте поле `skills` вместо перечисления `Skill` здесь |

311| `disallowedTools` | Нет | Инструменты для запрета, удалённые из унаследованного или указанного списка. Тот же формат, что и `tools`. Запись со спецификатором, такая как `Bash(git push *)`, по-прежнему [удаляет весь инструмент](#available-tools) |311| `disallowedTools` | Нет | Инструменты для запрета, удалённые из унаследованного или указанного списка. Тот же формат, что и `tools`. Запись со спецификатором, такая как `Bash(git push *)`, по-прежнему [удаляет весь инструмент](#available-tools) |


349 349 

350Чтобы увидеть журнал отладки, запустите Claude Code с `--debug`.350Чтобы увидеть журнал отладки, запустите Claude Code с `--debug`.

351 351 

352[Plugin subagent](/docs/ru/plugins-reference#agents), чей frontmatter не имеет `name` или не парсится, по-прежнему загружается под его именем файла.352[Plugin subagent](/docs/ru/plugins/components#agents), чей frontmatter не имеет `name` или не парсится, по-прежнему загружается под его именем файла.

353 353 

354<h5 id="check-an-agents-directory-before-a-session">354<h5 id="check-an-agents-directory-before-a-session">

355 Проверьте директорию `agents` перед сессией355 Проверьте директорию `agents` перед сессией

356</h5>356</h5>

357 357 

358Чтобы найти файлы в директории `agents`, чей frontmatter не парсится, запустите `claude plugin validate` против директории, например `.claude/agents` или `~/.claude/agents`. Claude Code проверяет только [директорию, которую вы называете](/docs/ru/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest), и не помечает файл, чей frontmatter парсится, но не имеет `name`. Требует Claude Code v2.1.233 или позже.358Чтобы найти файлы в директории `agents`, чей frontmatter не парсится, запустите `claude plugin validate` против директории, например `.claude/agents` или `~/.claude/agents`. Claude Code проверяет только [директорию, которую вы называете](/docs/ru/plugins/cli-reference#validate-a-directory), и не помечает файл, чей frontmatter парсится, но не имеет `name`. Требует Claude Code v2.1.233 или позже.

359 359 

360<h3 id="choose-a-model">360<h3 id="choose-a-model">

361 Выберите модель361 Выберите модель


573* Имя, которое ссылается на сервер, который вы уже настроили573* Имя, которое ссылается на сервер, который вы уже настроили

574* Встроенный сервер в файле агента из `~/.claude/agents/`, в одном, который вы передаёте с помощью `--agents` или опции SDK `agents`, или в одном, который управляемые настройки предоставляют574* Встроенный сервер в файле агента из `~/.claude/agents/`, в одном, который вы передаёте с помощью `--agents` или опции SDK `agents`, или в одном, который управляемые настройки предоставляют

575 575 

576Начиная с версии 2.1.153, ограничения MCP, которые применяются к основной сессии, также охватывают серверы, объявленные в frontmatter subagent:576Ограничения MCP, которые применяются к основной сессии, также охватывают серверы, объявленные в frontmatter subagent:

577 577 

578* [`--strict-mcp-config`](/docs/ru/cli-reference) и [`--bare`](/docs/ru/cli-reference)578* [`--strict-mcp-config`](/docs/ru/cli-reference) и [`--bare`](/docs/ru/cli-reference)

579* [Enterprise управляемая конфигурация MCP](/docs/ru/managed-mcp)579* [Enterprise управляемая конфигурация MCP](/docs/ru/managed-mcp)


820| `SubagentStart` | Имя типа агента | Когда subagent начинает выполнение |820| `SubagentStart` | Имя типа агента | Когда subagent начинает выполнение |

821| `SubagentStop` | Имя типа агента | Когда subagent завершает выполнение |821| `SubagentStop` | Имя типа агента | Когда subagent завершает выполнение |

822 822 

823Оба события поддерживают matchers для нацеливания на конкретные типы агентов по имени. Значение matcher — это поле frontmatter `name` для project-level и user-level subagents, или scoped identifier, такой как `my-plugin:db-agent` для [plugin subagents](/docs/ru/plugins). Scoped name содержит двоеточие, поэтому он оценивается как [unanchored regular expression](/docs/ru/hooks#matcher-patterns); закрепите его с помощью `^` и `$`, как в `^my-plugin:db-agent$`, чтобы соответствовать только этому агенту.823Оба события поддерживают matchers для нацеливания на конкретные типы агентов по имени. Значение matcher — это поле frontmatter `name` для project-level и user-level subagents, или scoped identifier, такой как `my-plugin:db-agent` для [plugin subagents](/docs/ru/plugins/components#agents). Scoped name содержит двоеточие, поэтому он оценивается как [unanchored regular expression](/docs/ru/hooks#matcher-patterns); закрепите его с помощью `^` и `$`, как в `^my-plugin:db-agent$`, чтобы соответствовать только этому агенту.

824 824 

825Этот пример запускает скрипт установки только при запуске subagent `db-agent` и скрипт очистки при остановке любого subagent:825Этот пример запускает скрипт установки только при запуске subagent `db-agent` и скрипт очистки при остановке любого subagent:

826 826 


862 862 

863Держите описания краткими: Claude Code показывает предупреждение при запуске, когда объединённые описания ваших subagents превышают [лимит в 15 000 токенов](/docs/ru/errors#agent-descriptions-are-over-the-15000-token-limit), и всё ещё загружает каждый subagent.863Держите описания краткими: Claude Code показывает предупреждение при запуске, когда объединённые описания ваших subagents превышают [лимит в 15 000 токенов](/docs/ru/errors#agent-descriptions-are-over-the-15000-token-limit), и всё ещё загружает каждый subagent.

864 864 

865Если subagent поставляется в [plugin](/docs/ru/plugins/overview), вы можете измерить, насколько надёжно Claude делегирует ему задачи на реалистичных приглашениях вместо проверки по одному: [`claude plugin eval`](/docs/ru/plugin-evals) запускает каждое приглашение с плагином и без него и оценивает результаты.

866 

865<h3 id="invoke-subagents-explicitly">867<h3 id="invoke-subagents-explicitly">

866 Явно вызывайте subagents868 Явно вызывайте subagents

867</h3>869</h3>


887 889 

888Ваше полное сообщение по-прежнему идёт Claude, который пишет приглашение задачи subagent на основе того, что вы попросили. @-упоминание контролирует, какой subagent Claude вызывает, а не какое приглашение он получает.890Ваше полное сообщение по-прежнему идёт Claude, который пишет приглашение задачи subagent на основе того, что вы попросили. @-упоминание контролирует, какой subagent Claude вызывает, а не какое приглашение он получает.

889 891 

890Subagents, предоставленные включённым [plugin](/docs/ru/plugins), появляются в автодополнении под их именем с областью видимости, например `my-plugin:code-reviewer` или `my-plugin:review:security`, когда plugin [организует агентов в подпапки](#choose-the-subagent-scope). Именованные фоновые subagents, в настоящее время работающие в сессии, также появляются в автодополнении, показывая их статус рядом с именем.892Subagents, предоставленные включённым [plugin](/docs/ru/plugins/overview), появляются в автодополнении под их именем с областью видимости, например `my-plugin:code-reviewer` или `my-plugin:review:security`, когда plugin [организует агентов в подпапки](#choose-the-subagent-scope). Именованные фоновые subagents, в настоящее время работающие в сессии, также появляются в автодополнении, показывая их статус рядом с именем.

891 893 

892Вы также можете ввести упоминание вручную без использования средства выбора: `@agent-<name>` для локальных subagents или `@agent-` с последующим именем с областью видимости для plugin subagents, например `@agent-my-plugin:code-reviewer`. Пока вы вводите эту форму, автодополнение показывает совпадения файлов, а не агентов. Упоминание агента всё ещё разрешается при отправке.894Вы также можете ввести упоминание вручную без использования средства выбора: `@agent-<name>` для локальных subagents или `@agent-` с последующим именем с областью видимости для plugin subagents, например `@agent-my-plugin:code-reviewer`. Пока вы вводите эту форму, автодополнение показывает совпадения файлов, а не агентов. Упоминание агента всё ещё разрешается при отправке.

893 895 


934Subagents могут работать в переднем плане или фоне:936Subagents могут работать в переднем плане или фоне:

935 937 

936* **Foreground subagents** блокируют основной разговор до завершения. Запросы разрешений передаются вам по мере их возникновения.938* **Foreground subagents** блокируют основной разговор до завершения. Запросы разрешений передаются вам по мере их возникновения.

937* **Background subagents** работают параллельно, пока вы продолжаете работать. Когда фоновый subagent достигает вызова инструмента, требующего разрешения, Claude Code выводит приглашение в вашу основную сессию и называет subagent, который спрашивает. Одобрите, чтобы позволить subagent продолжить, или нажмите Esc, чтобы отклонить этот вызов инструмента без остановки subagent. До v2.1.186 фоновые subagents автоматически отклоняли любой вызов инструмента, который иначе потребовал бы приглашения.939* **Background subagents** работают параллельно, пока вы продолжаете работать. Когда фоновый subagent достигает вызова инструмента, требующего разрешения, Claude Code выводит приглашение в вашу основную сессию и называет subagent, который спрашивает. Одобрите, чтобы позволить subagent продолжить, или нажмите Esc, чтобы отклонить этот вызов инструмента без остановки subagent.

938 940 

939Для каждого subagent, который Claude порождает с помощью инструмента Agent, Claude Code выбирает передний план или фон из первого из этих случаев, который применяется:941Для каждого subagent, который Claude порождает с помощью инструмента Agent, Claude Code выбирает передний план или фон из первого из этих случаев, который применяется:

940 942 


1177 1179 

1178Subagent, который вы остановили сами, с `x` в `/tasks` или запросом SDK `stop_task`, не автоматически возобновляется. Если Claude отправит ему сообщение, сообщение отказывается и Claude сообщается, что агент был отменён.1180Subagent, который вы остановили сами, с `x` в `/tasks` или запросом SDK `stop_task`, не автоматически возобновляется. Если Claude отправит ему сообщение, сообщение отказывается и Claude сообщается, что агент был отменён.

1179 1181 

1180Пока [строка этого subagent всё ещё находится в панели subagent](#run-subagents-in-foreground-or-background), введите в его транскрипт, чтобы возобновить его самостоятельно. После этого сообщение от Claude может автоматически возобновить его снова. Требует Claude Code v2.1.191 или позже.1182Пока [строка этого subagent всё ещё находится в панели subagent](#run-subagents-in-foreground-or-background), введите в его транскрипт, чтобы возобновить его самостоятельно. После этого сообщение от Claude может автоматически возобновить его снова.

1181 1183 

1182Возобновление начинает новый запуск агента под тем же ID, поэтому subagent, который уже завершился или был неудачным, показывается как работающий снова в списке задач и в событиях задач Agent SDK. До v2.1.205 он продолжал показывать свой более ранний статус неудачи или завершения, пока возобновленный запуск работал.1184Возобновление начинает новый запуск агента под тем же ID, поэтому subagent, который уже завершился или был неудачным, показывается как работающий снова в списке задач и в событиях задач Agent SDK. До v2.1.205 он продолжал показывать свой более ранний статус неудачи или завершения, пока возобновленный запуск работал.

1183 1185 


1495 1497 

1496Теперь, когда вы понимаете subagents, изучите эти связанные функции:1498Теперь, когда вы понимаете subagents, изучите эти связанные функции:

1497 1499 

1498* [Распространяйте subagents с помощью plugins](/docs/ru/plugins) для совместного использования subagents в командах или проектах1500* [Распространяйте subagents с помощью plugins](/docs/ru/plugins/components#agents) для совместного использования subagents в командах или проектах

1499* [Запустите Claude Code программно](/docs/ru/headless) с помощью Agent SDK для CI/CD и автоматизации1501* [Запустите Claude Code программно](/docs/ru/headless) с помощью Agent SDK для CI/CD и автоматизации

1500* [Используйте MCP servers](/docs/ru/mcp) для предоставления subagents доступа к внешним инструментам и данным1502* [Используйте MCP servers](/docs/ru/mcp) для предоставления subagents доступа к внешним инструментам и данным

Details

156 Создайте пользовательскую тему156 Создайте пользовательскую тему

157</h3>157</h3>

158 158 

159Помимо встроенных предустановок, `/theme` отображает все определённые вами пользовательские темы и любые темы, предоставленные установленными [plugins](/docs/ru/plugins-reference#themes). Выберите **New custom theme…** в конце списка, чтобы создать её интерактивно: вы назовёте тему, а затем выберете отдельные цветовые токены для переопределения. Нажмите `Ctrl+E`, пока выделена пользовательская тема, чтобы отредактировать её.159Помимо встроенных предустановок, `/theme` отображает все определённые вами пользовательские темы и любые темы, предоставленные установленными [plugins](/docs/ru/plugins/components#themes-and-output-styles). Выберите **New custom theme…** в конце списка, чтобы создать её интерактивно: вы назовёте тему, а затем выберете отдельные цветовые токены для переопределения. Нажмите `Ctrl+E`, пока выделена пользовательская тема, чтобы отредактировать её.

160 160 

161Каждая пользовательская тема — это JSON-файл в `~/.claude/themes/`. Имя файла без расширения `.json` — это слаг темы, а выбор темы сохраняет `custom:<slug>` как ваше предпочтение темы. Файл имеет три необязательных поля:161Каждая пользовательская тема — это JSON-файл в `~/.claude/themes/`. Имя файла без расширения `.json` — это слаг темы, а выбор темы сохраняет `custom:<slug>` как ваше предпочтение темы. Файл имеет три необязательных поля:

162 162 

Details

179Claude Code передаёт вывод команды в рабочий файл по мере выполнения команды; команда, выход которой превышает 5 ГБ, прерывается. Когда команда завершается, Claude Code читает вывод обратно из этого файла, вплоть до окна чтения, описанного ниже. Сколько вывода достигает Claude встроенным образом, зависит от того, рассматривает ли Claude Code результат как ошибку:179Claude Code передаёт вывод команды в рабочий файл по мере выполнения команды; команда, выход которой превышает 5 ГБ, прерывается. Когда команда завершается, Claude Code читает вывод обратно из этого файла, вплоть до окна чтения, описанного ниже. Сколько вывода достигает Claude встроенным образом, зависит от того, рассматривает ли Claude Code результат как ошибку:

180 180 

181| Результат | Что получает Claude |181| Результат | Что получает Claude |

182| :------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |182| :------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

183| Действительный | Встроенный до примерно 30 000 символов по умолчанию; сверх этого, путь файла, сохранённого в каталог сессии и усечённого сверх 64 МиБ, плюс краткий предпросмотр с начала, и Claude читает или ищет файл, когда ему нужен остаток |183| Действительный | Встроенный до примерно 30 000 символов по умолчанию; сверх этого, путь файла, сохранённого в каталог сессии и усечённого сверх 64 МиБ, плюс предпросмотр до 2 000 первых символов, и Claude читает или ищет файл, когда ему нужен остаток |

184| Ошибка | Встроенный до примерно 10 000 символов; сверх этого, выдержка начала и конца этого размера, вырезанная из окна чтения, без пути файла |184| Ошибка | Встроенный до примерно 10 000 символов; сверх этого, выдержка начала и конца этого размера, вырезанная из окна чтения, без пути файла |

185 185 

186Команда, которая выходит с кодом 1, считается действительным результатом для инструмента Bash только когда Claude Code распознаёт код выхода 1 как благоприятный результат для этой команды: `grep`, `rg`, `egrep`, `fgrep`, `find`, `diff`, `test` и `[`, плюс `git diff` и `git grep`. Каждая другая команда, которая выходит с кодом 1, считается ошибкой, даже когда код выхода 1 — это благоприятный информационный результат: нет совпадений для `pgrep` и `jq -e`, файлы, которые отличаются для `cmp`.186Команда, которая выходит с кодом 1, считается действительным результатом для инструмента Bash только когда Claude Code распознаёт код выхода 1 как благоприятный результат для этой команды: `grep`, `rg`, `egrep`, `fgrep`, `find`, `diff`, `test` и `[`, плюс `git diff` и `git grep`. Каждая другая команда, которая выходит с кодом 1, считается ошибкой, даже когда код выхода 1 — это благоприятный информационный результат: нет совпадений для `pgrep` и `jq -e`, файлы, которые отличаются для `cmp`.


221* `mcp`: локальные [серверы MCP](/docs/ru/mcp)221* `mcp`: локальные [серверы MCP](/docs/ru/mcp)

222* `lsp`: [языковые серверы](#lsp-tool-behavior)222* `lsp`: [языковые серверы](#lsp-tool-behavior)

223* `hooks`: команды [hook](/docs/ru/hooks)223* `hooks`: команды [hook](/docs/ru/hooks)

224* `plugin`: команды, которые запускают [плагины](/docs/ru/plugins)224* `plugin`: команды, которые запускают [плагины](/docs/ru/plugins/overview)

225* `helper`: собственные вспомогательные команды Claude Code, такие как `git`225* `helper`: собственные вспомогательные команды Claude Code, такие как `git`

226* `agent`: дочерние процессы Claude Code, такие как [товарищи агентов](/docs/ru/agent-teams)226* `agent`: дочерние процессы Claude Code, такие как [товарищи агентов](/docs/ru/agent-teams)

227 227 


344* Найти реализации интерфейса344* Найти реализации интерфейса

345* Отследить иерархии вызовов345* Отследить иерархии вызовов

346 346 

347Claude Code держит инструмент неактивным до тех пор, пока вы не установите [плагин анализа кода](/docs/ru/discover-plugins#code-intelligence) для вашего языка. В [облачных сеансах](/docs/ru/claude-code-on-the-web) Claude Code не запускает языковые серверы плагинов, поэтому инструмент LSP остаётся неактивным там. Claude Code берёт конфигурацию языкового сервера из плагина, и вы устанавливаете двоичный файл сервера самостоятельно.347Claude Code держит инструмент неактивным до тех пор, пока вы не установите [плагин анализа кода](/docs/ru/plugins/code-intelligence) для вашего языка. В [облачных сеансах](/docs/ru/claude-code-on-the-web) Claude Code не запускает языковые серверы плагинов, поэтому инструмент LSP остаётся неактивным там. Claude Code берёт конфигурацию языкового сервера из плагина, и вы устанавливаете двоичный файл сервера самостоятельно.

348 348 

349Claude Code возвращает результат ошибки для каждого вызова LSP в файле, языковой сервер которого он не может запустить.349Claude Code возвращает результат ошибки для каждого вызова LSP в файле, языковой сервер которого он не может запустить.

350 350 


376 376 

377Инструмент недоступен на Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry. Он также недоступен, когда установлены `DISABLE_TELEMETRY` или `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`.377Инструмент недоступен на Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry. Он также недоступен, когда установлены `DISABLE_TELEMETRY` или `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`.

378 378 

379Плагины могут объявлять мониторы, которые запускаются автоматически при активации плагина, вместо того чтобы просить Claude запустить их. См. [мониторы плагинов](/docs/ru/plugins-reference#monitors).379Плагины могут объявлять мониторы, которые запускаются автоматически при активации плагина, вместо того чтобы просить Claude запустить их. См. [мониторы плагинов](/docs/ru/plugins/components#monitors).

380 380 

381<h3 id="websocket-source">381<h3 id="websocket-source">

382 WebSocket source382 WebSocket source

vs-code.md +2 −2

Details

331 Управление плагинами331 Управление плагинами

332</h2>332</h2>

333 333 

334Расширение VS Code включает графический интерфейс для установки и управления [плагинами](/docs/ru/plugins). Введите `/plugins` в поле подсказки, чтобы открыть интерфейс **Управление плагинами**.334Расширение VS Code включает графический интерфейс для установки и управления [плагинами](/docs/ru/plugins/overview). Введите `/plugins` в поле подсказки, чтобы открыть интерфейс **Управление плагинами**.

335 335 

336<h3 id="install-plugins">336<h3 id="install-plugins">

337 Установка плагинов337 Установка плагинов


394 Управление плагинами в VS Code использует те же команды CLI под капотом. Плагины и маркетплейсы, которые вы настраиваете в расширении, также доступны в CLI, и наоборот.394 Управление плагинами в VS Code использует те же команды CLI под капотом. Плагины и маркетплейсы, которые вы настраиваете в расширении, также доступны в CLI, и наоборот.

395</Note>395</Note>

396 396 

397Дополнительную информацию о системе плагинов см. в разделах [Плагины](/docs/ru/plugins) и [Маркетплейсы плагинов](/docs/ru/plugin-marketplaces).397Дополнительную информацию о системе плагинов см. в разделах [Плагины](/docs/ru/plugins/overview) и [Маркетплейсы плагинов](/docs/ru/plugins/overview).

398 398 

399<h2 id="automate-browser-tasks-with-chrome">399<h2 id="automate-browser-tasks-with-chrome">

400 Автоматизация задач браузера с помощью Chrome400 Автоматизация задач браузера с помощью Chrome

Details

116 └── my-tool116 └── my-tool

117 ```117 ```

118 118 

119 <a className="digest-feature-link" href="/docs/ru/plugins-reference#file-locations-reference">Справочник плагинов</a>119 <a className="digest-feature-link" href="/docs/ru/plugins/manifest-reference#standard-layout">Справочник плагинов</a>

120</div>120</div>

121 121 

122<div className="digest-wins">122<div className="digest-wins">

Details

104 <div>Встроенные сборки macOS и Linux заменяют инструменты <code>Glob</code> и <code>Grep</code> встроенными <code>bfs</code> и <code>ugrep</code>, доступными через Bash, для более быстрого поиска без отдельного раунда инструмента</div>104 <div>Встроенные сборки macOS и Linux заменяют инструменты <code>Glob</code> и <code>Grep</code> встроенными <code>bfs</code> и <code>ugrep</code>, доступными через Bash, для более быстрого поиска без отдельного раунда инструмента</div>

105 <div><code>--from-pr</code> теперь принимает URL запроса слияния GitLab, запроса на извлечение Bitbucket и PR GitHub Enterprise в дополнение к github.com</div>105 <div><code>--from-pr</code> теперь принимает URL запроса слияния GitLab, запроса на извлечение Bitbucket и PR GitHub Enterprise в дополнение к github.com</div>

106 <div>Режим Auto: включите <code>"\$defaults"</code> в <a href="/docs/ru/auto-mode-config"><code>autoMode.allow</code>, <code>soft\_deny</code> или <code>environment</code></a>, чтобы добавить пользовательские правила наряду со встроенным списком вместо его замены</div>106 <div>Режим Auto: включите <code>"\$defaults"</code> в <a href="/docs/ru/auto-mode-config"><code>autoMode.allow</code>, <code>soft\_deny</code> или <code>environment</code></a>, чтобы добавить пользовательские правила наряду со встроенным списком вместо его замены</div>

107 <div>Новая команда <a href="/docs/ru/plugin-dependencies#tag-plugin-releases-for-version-resolution"><code>claude plugin tag</code></a> создает теги выпуска git для плагинов с проверкой версии</div>107 <div>Новая команда <a href="/docs/ru/plugins/dependencies#tag-plugin-releases-for-version-resolution"><code>claude plugin tag</code></a> создает теги выпуска git для плагинов с проверкой версии</div>

108 <div>Сеансы Opus 4.7 теперь вычисляются с учетом встроенного окна контекста модели в 1M, исправляя завышенные процентные значения <code>/context</code> и преждевременное автоматическое сжатие</div>108 <div>Сеансы Opus 4.7 теперь вычисляются с учетом встроенного окна контекста модели в 1M, исправляя завышенные процентные значения <code>/context</code> и преждевременное автоматическое сжатие</div>

109 <div><code>/resume</code> на больших сеансах работает на 67% быстрее и теперь предлагает суммировать устаревшие большие сеансы перед их повторным чтением</div>109 <div><code>/resume</code> на больших сеансах работает на 67% быстрее и теперь предлагает суммировать устаревшие большие сеансы перед их повторным чтением</div>

110 </div>110 </div>

Details

24 claude --plugin-url https://example.com/my-plugin.zip24 claude --plugin-url https://example.com/my-plugin.zip

25 ```25 ```

26 26 

27 <a className="digest-feature-link" href="/docs/ru/plugins">Руководство по плагинам</a>27 <a className="digest-feature-link" href="/docs/ru/plugins/overview">Руководство по плагинам</a>

28</div>28</div>

29 29 

30<div className="digest-feature">30<div className="digest-feature">

Details

59 > /plugin list --enabled59 > /plugin list --enabled

60 ```60 ```

61 61 

62 <a className="digest-feature-link" href="/docs/ru/plugins-reference#plugin-list">Команды плагинов</a>62 <a className="digest-feature-link" href="/docs/ru/plugins/cli-reference#plugin-list">Команды плагинов</a>

63</div>63</div>

64 64 

65<div className="digest-feature">65<div className="digest-feature">

Details

86 <div className="digest-wins-grid">86 <div className="digest-wins-grid">

87 <div>Расширение VS Code получает <a href="/docs/ru/vs-code#extension-settings">Focus view</a>, которое скрывает активность инструментов за одной развёртываемой строкой за ход; переключайте его из меню команд или с помощью <code>Ctrl+Alt+F</code> (<code>Ctrl+Option+F</code> на Mac)</div>87 <div>Расширение VS Code получает <a href="/docs/ru/vs-code#extension-settings">Focus view</a>, которое скрывает активность инструментов за одной развёртываемой строкой за ход; переключайте его из меню команд или с помощью <code>Ctrl+Alt+F</code> (<code>Ctrl+Option+F</code> на Mac)</div>

88 <div>Файлы учётных данных песочницы принимают <a href="/docs/ru/sandboxing#mask-credential-files"><code>mode: "mask"</code></a> на Linux и WSL2, поэтому изолированные команды читают копию-дозорную, пока прокси песочницы подставляет реальное значение при выходе; маскирование учётных данных также получает опции <code>extract</code>, осведомлённый о JWT <code>decode</code> и AWS SigV4 повторного подписания</div>88 <div>Файлы учётных данных песочницы принимают <a href="/docs/ru/sandboxing#mask-credential-files"><code>mode: "mask"</code></a> на Linux и WSL2, поэтому изолированные команды читают копию-дозорную, пока прокси песочницы подставляет реальное значение при выходе; маскирование учётных данных также получает опции <code>extract</code>, осведомлённый о JWT <code>decode</code> и AWS SigV4 повторного подписания</div>

89 <div>Маркетплейсы могут распространять плагин как <a href="/docs/ru/plugin-marketplaces#zip-archives">zip-архив</a> с новым источником <code>archive</code>, загружаемый по HTTPS с опциональным пином SHA-256, поэтому установки работают без git или npm</div>89 <div>Маркетплейсы могут распространять плагин как <a href="/docs/ru/plugins/marketplace-reference#archive-plugin-source">zip-архив</a> с новым источником <code>archive</code>, загружаемый по HTTPS с опциональным пином SHA-256, поэтому установки работают без git или npm</div>

90 <div><code>/review</code> теперь является псевдонимом <a href="/docs/ru/code-review#review-a-diff-locally"><code>/code-review</code></a>, и <code>/code-review</code> без уровня усилий повторно использует уровень, который вы вводили в последний раз</div>90 <div><code>/review</code> теперь является псевдонимом <a href="/docs/ru/code-review#review-a-diff-locally"><code>/code-review</code></a>, и <code>/code-review</code> без уровня усилий повторно использует уровень, который вы вводили в последний раз</div>

91 <div>Сеанс, который вы копируете с помощью <a href="/docs/ru/agent-view#copy-the-session-with-%2Ffork"><code>/fork</code></a>, теперь вносит свои изменения кода в собственный worktree вместо checkout исходного сеанса</div>91 <div>Сеанс, который вы копируете с помощью <a href="/docs/ru/agent-view#copy-the-session-with-%2Ffork"><code>/fork</code></a>, теперь вносит свои изменения кода в собственный worktree вместо checkout исходного сеанса</div>

92 <div>Плагины, которые вы устанавливаете из <a href="/docs/ru/discover-plugins#install-plugins"><code>/plugin</code></a>, активируются в текущем сеансе, когда это безопасно; сводка установки сообщает <code>Plugin is now active.</code> или говорит вам выполнить <code>/reload-plugins</code></div>92 <div>Плагины, которые вы устанавливаете из <a href="/docs/ru/plugins/install#install-a-plugin"><code>/plugin</code></a>, активируются в текущем сеансе, когда это безопасно; сводка установки сообщает <code>Plugin is now active.</code> или говорит вам выполнить <code>/reload-plugins</code></div>

93 <div><a href="/docs/ru/agent-view#how-file-edits-are-isolated">Фоновые сеансы</a>, которые изменили код в worktree, теперь фиксируют и отправляют перед завершением, открывают черновик pull request только когда задача это требует, и следуют инструкциям git в вашем <code>CLAUDE.md</code></div>93 <div><a href="/docs/ru/agent-view#how-file-edits-are-isolated">Фоновые сеансы</a>, которые изменили код в worktree, теперь фиксируют и отправляют перед завершением, открывают черновик pull request только когда задача это требует, и следуют инструкциям git в вашем <code>CLAUDE.md</code></div>

94 <div>Ограничение в 200 подагентов на сеанс удалено, поэтому долгоживущие сеансы больше не отказывают в новых подагентах; ограничения <a href="/docs/ru/sub-agents#concurrent-subagent-limit">параллелизма</a> и глубины по-прежнему применяются</div>94 <div>Ограничение в 200 подагентов на сеанс удалено, поэтому долгоживущие сеансы больше не отказывают в новых подагентах; ограничения <a href="/docs/ru/sub-agents#concurrent-subagent-limit">параллелизма</a> и глубины по-прежнему применяются</div>

95 <div>Проверенные параметры репозитория больше не могут включить <a href="/docs/ru/remote-control#enable-remote-control-for-all-sessions">автоподключение Remote Control</a>; установите <code>remoteControlAtStartup</code> в параметрах пользователя или управляемых параметрах вместо этого, и параметры проекта и локальные параметры могут только его отключить</div>95 <div>Проверенные параметры репозитория больше не могут включить <a href="/docs/ru/remote-control#enable-remote-control-for-all-sessions">автоподключение Remote Control</a>; установите <code>remoteControlAtStartup</code> в параметрах пользователя или управляемых параметрах вместо этого, и параметры проекта и локальные параметры могут только его отключить</div>

Details

72 <div className="digest-wins-grid">72 <div className="digest-wins-grid">

73 <div>Введите <code>@</code> в подсказку, чтобы <a href="/docs/ru/cross-session-messaging#message-another-session">упомянуть другой сеанс Claude</a> по имени, и Claude отправит ему сообщение напрямую с помощью <code>SendMessage</code>; простое имя, которое точно совпадает с одним активным сеансом, теперь доставляется без шага подтверждения</div>73 <div>Введите <code>@</code> в подсказку, чтобы <a href="/docs/ru/cross-session-messaging#message-another-session">упомянуть другой сеанс Claude</a> по имени, и Claude отправит ему сообщение напрямую с помощью <code>SendMessage</code>; простое имя, которое точно совпадает с одним активным сеансом, теперь доставляется без шага подтверждения</div>

74 <div>Интерактивные сеансы на одной машине сохраняют <a href="/docs/ru/cross-session-messaging#see-which-sessions-claude-can-reach">уникальные имена</a>: если вы запустите или переименуете сеанс с именем, которое уже использует другой активный сеанс, Claude Code присвоит вашему сеансу вариант <code>name-word-word</code> и сообщит вам об этом</div>74 <div>Интерактивные сеансы на одной машине сохраняют <a href="/docs/ru/cross-session-messaging#see-which-sessions-claude-can-reach">уникальные имена</a>: если вы запустите или переименуете сеанс с именем, которое уже использует другой активный сеанс, Claude Code присвоит вашему сеансу вариант <code>name-word-word</code> и сообщит вам об этом</div>

75 <div>Маркетплейсы плагинов принимают <a href="/docs/ru/plugin-marketplaces#command-sources">источники <code>command</code></a>: локальная команда выводит каталог плагина, который Claude Code повторно разрешает каждый сеанс и применяет без перезагрузки</div>75 <div>Маркетплейсы плагинов принимают <a href="/docs/ru/plugins/marketplace-reference#command-plugin-source">источники <code>command</code></a>: локальная команда выводит каталог плагина, который Claude Code повторно разрешает каждый сеанс и применяет без перезагрузки</div>

76 <div>На Linux и WSL установите <a href="/docs/ru/tools-reference#memory-limit-on-linux-and-wsl"><code>CLAUDE\_CODE\_TOOL\_MEMORY\_LIMIT</code></a> на размер, например <code>4G</code>, чтобы ограничить память, которую могут использовать команды инструментов Bash и PowerShell</div>76 <div>На Linux и WSL установите <a href="/docs/ru/tools-reference#memory-limit-on-linux-and-wsl"><code>CLAUDE\_CODE\_TOOL\_MEMORY\_LIMIT</code></a> на размер, например <code>4G</code>, чтобы ограничить память, которую могут использовать команды инструментов Bash и PowerShell</div>

77 <div>Инструменты отслеживания задач, такие как <code>TaskCreate</code>, <code>TaskUpdate</code> и <code>TodoWrite</code>, <a href="/docs/ru/tools-reference#task-tool-availability">больше не доступны на Opus 4.8, Sonnet 5, Fable 5, Mythos 5 и более поздних моделях в этих семействах</a>; установите <code>CLAUDE\_CODE\_ENABLE\_TODO\_TOOLS=1</code> для их повторного включения</div>77 <div>Инструменты отслеживания задач, такие как <code>TaskCreate</code>, <code>TaskUpdate</code> и <code>TodoWrite</code>, <a href="/docs/ru/tools-reference#task-tool-availability">больше не доступны на Opus 4.8, Sonnet 5, Fable 5, Mythos 5 и более поздних моделях в этих семействах</a>; установите <code>CLAUDE\_CODE\_ENABLE\_TODO\_TOOLS=1</code> для их повторного включения</div>

78 <div><a href="/docs/ru/code-review#review-a-diff-locally"><code>/code-review</code></a> при высоком, очень высоком и максимальном уровне усилий теперь работает в фоновом агенте, как и другие уровни</div>78 <div><a href="/docs/ru/code-review#review-a-diff-locally"><code>/code-review</code></a> при высоком, очень высоком и максимальном уровне усилий теперь работает в фоновом агенте, как и другие уровни</div>

79 <div><a href="/docs/ru/discover-plugins#install-plugins"><code>/plugin install plugin\@marketplace</code></a> сначала обновляет маркетплейс, поэтому недавно опубликованные плагины устанавливаются без ручного обновления маркетплейса</div>79 <div><a href="/docs/ru/plugins/install#install-a-plugin"><code>/plugin install plugin\@marketplace</code></a> сначала обновляет маркетплейс, поэтому недавно опубликованные плагины устанавливаются без ручного обновления маркетплейса</div>

80 <div>Параметры принимают <a href="/docs/ru/settings-reference#marketplace-key-aliases"><code>additionalMarketplaces</code> и <code>allowedMarketplaces</code></a> как псевдонимы для <code>extraKnownMarketplaces</code> и <code>strictKnownMarketplaces</code></div>80 <div>Параметры принимают <a href="/docs/ru/settings-reference#marketplace-key-aliases"><code>additionalMarketplaces</code> и <code>allowedMarketplaces</code></a> как псевдонимы для <code>extraKnownMarketplaces</code> и <code>strictKnownMarketplaces</code></div>

81 <div>На более новых моделях Claude может <a href="/docs/ru/tools-reference#write-tool-behavior">перезаписать существующий файл с помощью инструмента Write</a> без его предварительного чтения в этом сеансе, что соответствует правилам инструмента Edit; более старые модели требуют чтение</div>81 <div>На более новых моделях Claude может <a href="/docs/ru/tools-reference#write-tool-behavior">перезаписать существующий файл с помощью инструмента Write</a> без его предварительного чтения в этом сеансе, что соответствует правилам инструмента Edit; более старые модели требуют чтение</div>

82 <div>Расширение VS Code может <a href="/docs/ru/vs-code#organize-sessions-into-groups">организовать список сеансов в группы</a>: щелкните правой кнопкой мыши, чтобы создать, переименовать или удалить группу, и используйте Cmd/Ctrl- или Shift-click для одновременного перемещения нескольких сеансов</div>82 <div>Расширение VS Code может <a href="/docs/ru/vs-code#organize-sessions-into-groups">организовать список сеансов в группы</a>: щелкните правой кнопкой мыши, чтобы создать, переименовать или удалить группу, и используйте Cmd/Ctrl- или Shift-click для одновременного перемещения нескольких сеансов</div>

Details

54 54 

55 <div className="digest-wins-grid">55 <div className="digest-wins-grid">

56 <div>Установите <a href="/docs/ru/settings-reference#maxeffortlevel"><code>maxEffortLevel</code></a> на верхнем уровне или для каждой модели в <code>modelSettings</code>, чтобы ограничить уровень усилий на каждом поставщике, включая Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry; любой более высокий уровень работает на пределе</div>56 <div>Установите <a href="/docs/ru/settings-reference#maxeffortlevel"><code>maxEffortLevel</code></a> на верхнем уровне или для каждой модели в <code>modelSettings</code>, чтобы ограничить уровень усилий на каждом поставщике, включая Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry; любой более высокий уровень работает на пределе</div>

57 <div>Укажите `--plugin-dir` на папку плагинов, чтобы <a href="/docs/ru/plugins#test-your-plugins-locally">загрузить каждую непосредственную подпапку, которая имеет манифест</a></div>57 <div>Укажите `--plugin-dir` на папку плагинов, чтобы <a href="/docs/ru/plugins/create#load-a-directory-or-archive-for-one-session">загрузить каждую непосредственную подпапку, которая имеет манифест</a></div>

58 <div>Если WebFetch не завершил загрузку страницы в течение пяти минут, <a href="/docs/ru/tools-reference#webfetch-tool-behavior">загрузка завершается с ошибкой истечения срока</a> вместо зависания; установите <code>CLAUDE\_CODE\_WEBFETCH\_DEADLINE\_MS</code> для изменения срока или на <code>0</code> для удаления ограничения</div>58 <div>Если WebFetch не завершил загрузку страницы в течение пяти минут, <a href="/docs/ru/tools-reference#webfetch-tool-behavior">загрузка завершается с ошибкой истечения срока</a> вместо зависания; установите <code>CLAUDE\_CODE\_WEBFETCH\_DEADLINE\_MS</code> для изменения срока или на <code>0</code> для удаления ограничения</div>

59 <div>Передайте `--json` в <code>claude plugin install</code>, <code>uninstall</code>, <code>update</code>, <code>enable</code> или <code>disable</code>, чтобы вывести результат как <a href="/docs/ru/plugins-reference#plugin-json-result">один объект JSON в последней строке stdout</a></div>59 <div>Передайте `--json` в <code>claude plugin install</code>, <code>uninstall</code>, <code>update</code>, <code>enable</code> или <code>disable</code>, чтобы вывести результат как <a href="/docs/ru/plugins/cli-reference#plugin-json-result">один объект JSON в последней строке stdout</a></div>

60 <div>Когда классификатор автоматического режима блокирует действие, причина, которую получает Claude, <a href="/docs/ru/auto-mode-config#fix-a-denial-with-an-allow-rule-an-environment-entry-or-a-retry">обычно называет правило, которое совпало</a>, например <code>\[Data Exfiltration]</code></div>60 <div>Когда классификатор автоматического режима блокирует действие, причина, которую получает Claude, <a href="/docs/ru/auto-mode-config#fix-a-denial-with-an-allow-rule-an-environment-entry-or-a-retry">обычно называет правило, которое совпало</a>, например <code>\[Data Exfiltration]</code></div>

61 <div>Когда вы вводите <code>/</code> в середине подсказки, вы теперь можете выбрать из <a href="/docs/ru/interactive-mode#complete-a-command-mid-prompt">списка соответствующих команд</a> вместо одного предложения. Список открывается по мере ввода в полноэкранном режиме. Навык плагина также совпадает по его имени без префикса плагина</div>61 <div>Когда вы вводите <code>/</code> в середине подсказки, вы теперь можете выбрать из <a href="/docs/ru/interactive-mode#complete-a-command-mid-prompt">списка соответствующих команд</a> вместо одного предложения. Список открывается по мере ввода в полноэкранном режиме. Навык плагина также совпадает по его имени без префикса плагина</div>

62 <div>В расширении VS Code нажмите на количество агентов в нижней части поля подсказки, чтобы открыть <a href="/docs/ru/vs-code#use-the-prompt-box">карту агентов</a>, где вы можете открыть транскрипт подагента только для чтения или остановить его</div>62 <div>В расширении VS Code нажмите на количество агентов в нижней части поля подсказки, чтобы открыть <a href="/docs/ru/vs-code#use-the-prompt-box">карту агентов</a>, где вы можете открыть транскрипт подагента только для чтения или остановить его</div>

workflows.md +1 −1

Details

239 Распределить workflow в plugin239 Распределить workflow в plugin

240</h3>240</h3>

241 241 

242Чтобы поделиться workflow между командами или репозиториями, включите его в [plugin](/docs/ru/plugins). Поместите скрипт в каталог `workflows/` в корне plugin или укажите другое местоположение с помощью поля манифеста [`workflows`](/docs/ru/plugins-reference#component-path-fields).242Чтобы поделиться workflow между командами или репозиториями, включите его в [plugin](/docs/ru/plugins/overview). Поместите скрипт в каталог `workflows/` в корне plugin или укажите другое местоположение с помощью поля манифеста [`workflows`](/docs/ru/plugins/manifest-reference#fields).

243 243 

244Plugin workflows имеют пространство имён по имени plugin. Plugin под названием `acme-tools`, содержащий скрипт, чьё `meta.name` — это `release-audit`, запускается как `/acme-tools:release-audit`.244Plugin workflows имеют пространство имён по имени plugin. Plugin под названием `acme-tools`, содержащий скрипт, чьё `meta.name` — это `release-audit`, запускается как `/acme-tools:release-audit`.

245 245 

worktrees.md +3 −1

Details

256Worktree получает собственные файлы и ветку, но делит следующее с основной копией:256Worktree получает собственные файлы и ветку, но делит следующее с основной копией:

257 257 

258* **Каталог `.git` репозитория**: команды git в worktree записывают в общий каталог `.git` основного репозитория, и [sandboxing](/docs/ru/sandboxing#filesystem-isolation) позволяет эти записи, поэтому команды, такие как `git commit`, работают из worktree с включённой песочницей.258* **Каталог `.git` репозитория**: команды git в worktree записывают в общий каталог `.git` основного репозитория, и [sandboxing](/docs/ru/sandboxing#filesystem-isolation) позволяет эти записи, поэтому команды, такие как `git commit`, работают из worktree с включённой песочницей.

259* **Плагины**: плагины, установленные в [области проекта](/docs/ru/plugins-reference#plugin-installation-scopes) из основной копии, также загружаются в worktrees того же репозитория, поэтому вам не нужно переустанавливать их для каждого worktree. Требуется Claude Code версии 2.1.200 или позже.259* **Плагины**: плагины, установленные в [области проекта](/docs/ru/plugins/loading#find-where-a-plugin-is-enabled) из основной копии, также загружаются в worktrees того же репозитория, поэтому вам не нужно переустанавливать их для каждого worktree. Требуется Claude Code версии 2.1.200 или позже.

260* **Одобрения разрешений**: выбор "Да, и больше не спрашивать" для команды Bash в сеансе worktree сохраняет правило в `.claude/settings.local.json` основной копии, поэтому оно применяется в основной копии и в каждом другом worktree репозитория, и оно выживает удаление worktree. На Windows и в других случаях, когда Claude Code [не использует корень репозитория](/docs/ru/settings#where-claude-code-looks-for-each-file), правило остаётся с этим worktree. До версии 2.1.211 одобрение, предоставленное в worktree, было сохранено внутри этого worktree, не применялось в другом месте и было потеряно при удалении worktree. См. [где сохраняются одобрения](/docs/ru/permissions#permission-system).260* **Одобрения разрешений**: выбор "Да, и больше не спрашивать" для команды Bash в сеансе worktree сохраняет правило в `.claude/settings.local.json` основной копии, поэтому оно применяется в основной копии и в каждом другом worktree репозитория, и оно выживает удаление worktree. На Windows и в других случаях, когда Claude Code [не использует корень репозитория](/docs/ru/settings#where-claude-code-looks-for-each-file), правило остаётся с этим worktree. До версии 2.1.211 одобрение, предоставленное в worktree, было сохранено внутри этого worktree, не применялось в другом месте и было потеряно при удалении worktree. См. [где сохраняются одобрения](/docs/ru/permissions#permission-system).

261* **Неотслеживаемые skills, agents и commands**: когда копия worktree не имеет каталога `.claude/skills` в своём корне, например потому что ваш `.claude/skills` находится в gitignore, Claude Code загружает [project skills](/docs/ru/skills#where-skills-live) основной копии в сеансе worktree. В worktree с собственным каталогом `.claude/skills` загружается только эта копия.261* **Неотслеживаемые skills, agents и commands**: когда копия worktree не имеет каталога `.claude/skills` в своём корне, например потому что ваш `.claude/skills` находится в gitignore, Claude Code загружает [project skills](/docs/ru/skills#where-skills-live) основной копии в сеансе worktree. В worktree с собственным каталогом `.claude/skills` загружается только эта копия.

262 262 


330 330 

331Объедините его с hook `WorktreeRemove` для очистки при завершении сеанса. Схему входных данных и пример удаления см. в [справочнике hooks](/docs/ru/hooks#worktreecreate).331Объедините его с hook `WorktreeRemove` для очистки при завершении сеанса. Схему входных данных и пример удаления см. в [справочнике hooks](/docs/ru/hooks#worktreecreate).

332 332 

333Hook `WorktreeCreate` также позволяет запускать [`/batch`](/docs/ru/commands#all-commands) вне репозитория git. Каждый подагент `/batch` затем публикует свое изменение с помощью команд контроля версий вашего проекта и, когда он не может открыть pull request, сообщает о том, что он опубликовал вместо этого. Запуск `/batch` вне репозитория git требует Claude Code v2.1.281 или более поздней версии.

334 

333<h2 id="troubleshooting">335<h2 id="troubleshooting">

334 Устранение неполадок336 Устранение неполадок

335</h2>337</h2>

Details

66| Функция | Причина |66| Функция | Причина |

67| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------- |67| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------- |

68| [Cloud sessions](/docs/ru/claude-code-on-the-web), включая те, которые запущены из [приложения Desktop](/docs/ru/desktop#cloud-sessions) | Требует серверного хранилища данных сеанса, включая историю беседы с запросами и завершениями. |68| [Cloud sessions](/docs/ru/claude-code-on-the-web), включая те, которые запущены из [приложения Desktop](/docs/ru/desktop#cloud-sessions) | Требует серверного хранилища данных сеанса, включая историю беседы с запросами и завершениями. |

69| [Claude Tag](/docs/ru/claude-tag) | Сохраняет память канала и стенограммы сеансов. |69| [Claude Tag](https://claude.com/docs/claude-tag) | Сохраняет память канала и стенограммы сеансов. |

70| [Артефакты](/docs/ru/artifacts) | Требует сохранения опубликованного содержимого страницы на инфраструктуре, управляемой Anthropic. |70| [Артефакты](/docs/ru/artifacts) | Требует сохранения опубликованного содержимого страницы на инфраструктуре, управляемой Anthropic. |

71| Отправка отзыва (`/feedback`, `/bug`, `/share`) | Отправка отзыва отправляет данные беседы в Anthropic. |71| Отправка отзыва (`/feedback`, `/bug`, `/share`) | Отправка отзыва отправляет данные беседы в Anthropic. |

72| [Remote Control](/docs/ru/remote-control) | Сохраняет стенограмму сеанса на серверах Anthropic для синхронизации беседы между устройствами. |72| [Remote Control](/docs/ru/remote-control) | Сохраняет стенограмму сеанса на серверах Anthropic для синхронизации беседы между устройствами. |