> ## Documentation Index
> Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Наборы Plugin

OpenClaw может устанавливать плагины из трех внешних экосистем: **Codex**, **Claude**
и **Cursor**. Они называются **бандлами** — пакетами контента и метаданных, которые
OpenClaw сопоставляет с нативными возможностями, такими как Skills, хуки и инструменты MCP.

<Info>
  Бандлы — **не** то же самое, что нативные плагины OpenClaw. Нативные плагины работают
  внутри процесса и могут регистрировать любые возможности. Бандлы — это пакеты контента с
  выборочным сопоставлением функций и более узкой границей доверия.
</Info>

## Зачем нужны бандлы

Многие полезные плагины публикуются в формате Codex, Claude или Cursor. Вместо
того чтобы требовать от авторов переписать их как нативные плагины OpenClaw, OpenClaw
обнаруживает эти форматы и сопоставляет их поддерживаемый контент с нативным набором
возможностей. Это значит, что вы можете установить пакет команд Claude или бандл Skills
Codex и сразу использовать его.

## Установка бандла

<Steps>
  <Step title="Установите из каталога, архива или маркетплейса">
    ```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
    # Локальный каталог
    openclaw plugins install ./my-bundle

    # Архив
    openclaw plugins install ./my-bundle.tgz

    # Маркетплейс Claude
    openclaw plugins marketplace list <marketplace-name>
    openclaw plugins install <plugin-name>@<marketplace-name>
    ```
  </Step>

  <Step title="Проверьте обнаружение">
    ```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
    openclaw plugins list
    openclaw plugins inspect <id>
    ```

    Бандлы отображаются как `Format: bundle` с подтипом `codex`, `claude` или `cursor`.
  </Step>

  <Step title="Перезапустите и используйте">
    ```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
    openclaw gateway restart
    ```

    Сопоставленные возможности (Skills, хуки, инструменты MCP, значения LSP по умолчанию) будут доступны в следующей сессии.
  </Step>
</Steps>

## Что OpenClaw сопоставляет из бандлов

Сегодня в OpenClaw работает не каждая возможность бандла. Ниже указано, что работает и что
обнаруживается, но еще не подключено.

### Поддерживается сейчас

| Возможность     | Как она сопоставляется                                                                                                     | Применимо к    |
| --------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------- |
| Контент Skills  | Корневые каталоги Skills из бандла загружаются как обычные Skills OpenClaw                                                 | Все форматы    |
| Команды         | `commands/` и `.cursor/commands/` обрабатываются как корневые каталоги Skills                                              | Claude, Cursor |
| Пакеты хуков    | Разметки в стиле OpenClaw `HOOK.md` + `handler.ts`                                                                         | Codex          |
| Инструменты MCP | Конфигурация MCP бандла объединяется со встроенными настройками OpenClaw; поддерживаемые серверы stdio и HTTP загружаются  | Все форматы    |
| Серверы LSP     | Claude `.lsp.json` и объявленные в манифесте `lspServers` объединяются со встроенными значениями LSP OpenClaw по умолчанию | Claude         |
| Настройки       | Claude `settings.json` импортируется как встроенные значения OpenClaw по умолчанию                                         | Claude         |

#### Контент Skills

* корневые каталоги Skills из бандла загружаются как обычные корневые каталоги Skills OpenClaw
* корневые каталоги Claude `commands` обрабатываются как дополнительные корневые каталоги Skills
* корневые каталоги Cursor `.cursor/commands` обрабатываются как дополнительные корневые каталоги Skills

Это означает, что markdown-файлы команд Claude работают через обычный загрузчик Skills
OpenClaw. Markdown-команды Cursor работают через тот же путь.

#### Пакеты хуков

* корневые каталоги хуков бандла работают **только** тогда, когда используют обычную
  разметку пакета хуков OpenClaw. Сегодня это в основном совместимый с Codex случай:
  * `HOOK.md`
  * `handler.ts` или `handler.js`

#### MCP для встроенного OpenClaw

* включенные бандлы могут добавлять конфигурацию MCP-сервера
* OpenClaw объединяет конфигурацию MCP бандла с эффективными встроенными настройками OpenClaw как
  `mcpServers`
* OpenClaw предоставляет поддерживаемые инструменты MCP бандла во время ходов встроенного агента OpenClaw,
  запуская серверы stdio или подключаясь к HTTP-серверам
* профили инструментов `coding` и `messaging` по умолчанию включают инструменты MCP бандла;
  используйте `tools.deny: ["bundle-mcp"]`, чтобы отключить их для агента или Gateway
* локальные для проекта настройки встроенного агента по-прежнему применяются после значений бандла по умолчанию, поэтому настройки рабочей области
  могут при необходимости переопределять записи MCP бандла
* каталоги инструментов MCP бандла сортируются детерминированно перед регистрацией, поэтому
  изменения порядка upstream `listTools()` не приводят к постоянному изменению блоков инструментов в кэше промпта

##### Транспорты

MCP-серверы могут использовать транспорт stdio или HTTP:

**Stdio** запускает дочерний процесс:

```json theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  "mcp": {
    "servers": {
      "my-server": {
        "command": "node",
        "args": ["server.js"],
        "env": { "PORT": "3000" }
      }
    }
  }
}
```

**HTTP** подключается к запущенному MCP-серверу через `sse` по умолчанию или через `streamable-http`, если это запрошено:

```json theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  "mcp": {
    "servers": {
      "my-server": {
        "url": "http://localhost:3100/mcp",
        "transport": "streamable-http",
        "headers": {
          "Authorization": "Bearer ${MY_SECRET_TOKEN}"
        },
        "connectionTimeoutMs": 30000
      }
    }
  }
}
```

* `transport` можно задать как `"streamable-http"` или `"sse"`; если он опущен, OpenClaw использует `sse`
* `type: "http"` — это нативная downstream-форма CLI; используйте `transport: "streamable-http"` в конфигурации OpenClaw. `openclaw mcp set` и `openclaw doctor --fix` нормализуют распространенный алиас.
* разрешены только схемы URL `http:` и `https:`
* значения `headers` поддерживают интерполяцию `${ENV_VAR}`
* запись сервера с одновременными `command` и `url` отклоняется
* учетные данные URL (userinfo и параметры запроса) редактируются из описаний
  инструментов и журналов
* `connectionTimeoutMs` переопределяет стандартный 30-секундный тайм-аут подключения для
  транспортов stdio и HTTP

##### Именование инструментов

OpenClaw регистрирует инструменты MCP бандла с безопасными для провайдера именами в форме
`serverName__toolName`. Например, сервер с ключом `"vigil-harbor"`, предоставляющий инструмент
`memory_search`, регистрируется как `vigil-harbor__memory_search`.

* символы вне `A-Za-z0-9_-` заменяются на `-`
* фрагменты, которые начинались бы не с буквы, получают буквенный префикс, поэтому числовые
  ключи серверов, такие как `12306`, становятся безопасными для провайдера префиксами инструментов
* префиксы серверов ограничены 30 символами
* полные имена инструментов ограничены 64 символами
* пустые имена серверов откатываются к `mcp`
* конфликтующие нормализованные имена различаются числовыми суффиксами
* итоговый порядок предоставляемых инструментов детерминирован по безопасному имени, чтобы повторные
  ходы встроенного агента оставались стабильными для кэша
* фильтрация профилей считает все инструменты с одного MCP-сервера бандла принадлежащими плагину
  `bundle-mcp`, поэтому allowlist и deny list профилей могут включать либо
  отдельные предоставляемые имена инструментов, либо ключ плагина `bundle-mcp`

#### Встроенные настройки OpenClaw

* Claude `settings.json` импортируется как встроенные настройки OpenClaw по умолчанию, когда
  бандл включен
* OpenClaw очищает ключи переопределения shell перед применением

Очищаемые ключи:

* `shellPath`
* `shellCommandPrefix`

#### Встроенный LSP OpenClaw

* включенные бандлы Claude могут добавлять конфигурацию LSP-сервера
* OpenClaw загружает `.lsp.json` плюс любые объявленные в манифесте пути `lspServers`
* конфигурация LSP бандла объединяется с эффективными встроенными значениями LSP OpenClaw по умолчанию
* сегодня запускаться могут только поддерживаемые LSP-серверы на базе stdio; неподдерживаемые
  транспорты все равно отображаются в `openclaw plugins inspect <id>`

### Обнаруживается, но не выполняется

Эти элементы распознаются и показываются в диагностике, но OpenClaw их не запускает:

* Claude `agents`, автоматизация `hooks.json`, `outputStyles`
* Cursor `.cursor/agents`, `.cursor/hooks.json`, `.cursor/rules`
* встроенные метаданные Codex и метаданные приложения, кроме отчетности о возможностях

## Форматы бандлов

<AccordionGroup>
  <Accordion title="Бандлы Codex">
    Маркеры: `.codex-plugin/plugin.json`

    Необязательный контент: `skills/`, `hooks/`, `.mcp.json`, `.app.json`

    Бандлы Codex лучше всего подходят OpenClaw, когда используют корневые каталоги Skills и каталоги
    пакетов хуков в стиле OpenClaw (`HOOK.md` + `handler.ts`).
  </Accordion>

  <Accordion title="Бандлы Claude">
    Два режима обнаружения:

    * **На основе манифеста:** `.claude-plugin/plugin.json`
    * **Без манифеста:** стандартная разметка Claude (`skills/`, `commands/`, `agents/`, `hooks/`, `.mcp.json`, `.lsp.json`, `settings.json`)

    Специфичное для Claude поведение:

    * `commands/` обрабатывается как контент Skills
    * `settings.json` импортируется во встроенные настройки OpenClaw (ключи переопределения shell очищаются)
    * `.mcp.json` предоставляет поддерживаемые инструменты stdio встроенному OpenClaw
    * `.lsp.json` плюс объявленные в манифесте пути `lspServers` загружаются во встроенные значения LSP OpenClaw по умолчанию
    * `hooks/hooks.json` обнаруживается, но не выполняется
    * пользовательские пути компонентов в манифесте являются аддитивными (они расширяют значения по умолчанию, а не заменяют их)
  </Accordion>

  <Accordion title="Бандлы Cursor">
    Маркеры: `.cursor-plugin/plugin.json`

    Необязательный контент: `skills/`, `.cursor/commands/`, `.cursor/agents/`, `.cursor/rules/`, `.cursor/hooks.json`, `.mcp.json`

    * `.cursor/commands/` обрабатывается как контент Skills
    * `.cursor/rules/`, `.cursor/agents/` и `.cursor/hooks.json` только обнаруживаются
  </Accordion>
</AccordionGroup>

## Приоритет обнаружения

OpenClaw сначала проверяет формат нативного плагина:

1. `openclaw.plugin.json` или допустимый `package.json` с `openclaw.extensions` — обрабатывается как **нативный плагин**
2. Маркеры бандла (`.codex-plugin/`, `.claude-plugin/` или стандартная разметка Claude/Cursor) — обрабатываются как **бандл**

Если каталог содержит оба варианта, OpenClaw использует нативный путь. Это предотвращает
частичную установку двухформатных пакетов как бандлов.

## Зависимости времени выполнения и очистка

* Сторонние совместимые бандлы не получают восстановление `npm install` при запуске. Они
  должны устанавливаться через `openclaw plugins install` и поставлять все необходимое
  в установленном каталоге плагина.
* Бандлы плагинов, принадлежащие OpenClaw, либо поставляются в облегченном виде в core, либо
  скачиваются через установщик плагинов. Запуск Gateway никогда не запускает для них
  менеджер пакетов.
* `openclaw doctor --fix` удаляет устаревшие подготовленные каталоги зависимостей и может
  восстановить скачиваемые плагины, отсутствующие в локальном индексе плагинов, когда
  конфигурация ссылается на них.

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

У бандлов более узкая граница доверия, чем у нативных плагинов:

* OpenClaw **не** загружает произвольные runtime-модули бандла внутри процесса
* Пути Skills и пакетов хуков должны оставаться внутри корня плагина (с проверкой границ)
* Файлы настроек читаются с теми же проверками границ
* Поддерживаемые MCP-серверы stdio могут запускаться как подпроцессы

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

## Устранение неполадок

<AccordionGroup>
  <Accordion title="Бандл обнаружен, но возможности не запускаются">
    Выполните `openclaw plugins inspect <id>`. Если возможность указана, но помечена как
    не подключенная, это ограничение продукта, а не сломанная установка.
  </Accordion>

  <Accordion title="Файлы команд Claude не отображаются">
    Убедитесь, что бандл включен, а markdown-файлы находятся внутри обнаруженного
    корневого каталога `commands/` или `skills/`.
  </Accordion>

  <Accordion title="Настройки Claude не применяются">
    Поддерживаются только встроенные настройки OpenClaw из `settings.json`. OpenClaw
    не обрабатывает настройки бандла как необработанные патчи конфигурации.
  </Accordion>

  <Accordion title="Хуки Claude не выполняются">
    `hooks/hooks.json` только обнаруживается. Если вам нужны запускаемые хуки, используйте
    разметку пакета хуков OpenClaw или поставляйте нативный плагин.
  </Accordion>
</AccordionGroup>

## Связанные материалы

* [Установка и настройка плагинов](/ru/tools/plugin)
* [Создание плагинов](/ru/plugins/building-plugins) — создайте нативный плагин
* [Манифест плагина](/ru/plugins/manifest) — схема нативного манифеста
