{
  "title": "`openclaw plugins`",
  "content": "Manage Gateway plugins/extensions (loaded in-process).\n\n* Plugin system: [Plugins](/plugin)\n* Plugin manifest + schema: [Plugin manifest](/plugins/manifest)\n* Security hardening: [Security](/gateway/security)\n\nBundled plugins ship with OpenClaw but start disabled. Use `plugins enable` to\nactivate them.\n\nAll plugins must ship a `openclaw.plugin.json` file with an inline JSON Schema\n(`configSchema`, even if empty). Missing/invalid manifests or schemas prevent\nthe plugin from loading and fail config validation.\n\nSecurity note: treat plugin installs like running code. Prefer pinned versions.\n\nSupported archives: `.zip`, `.tgz`, `.tar.gz`, `.tar`.\n\nUse `--link` to avoid copying a local directory (adds to `plugins.load.paths`):\n\nUpdates only apply to plugins installed from npm (tracked in `plugins.installs`).",
  "code_samples": [
    {
      "code": "Bundled plugins ship with OpenClaw but start disabled. Use `plugins enable` to\nactivate them.\n\nAll plugins must ship a `openclaw.plugin.json` file with an inline JSON Schema\n(`configSchema`, even if empty). Missing/invalid manifests or schemas prevent\nthe plugin from loading and fail config validation.\n\n### Install",
      "language": "unknown"
    },
    {
      "code": "Security note: treat plugin installs like running code. Prefer pinned versions.\n\nSupported archives: `.zip`, `.tgz`, `.tar.gz`, `.tar`.\n\nUse `--link` to avoid copying a local directory (adds to `plugins.load.paths`):",
      "language": "unknown"
    },
    {
      "code": "### Update",
      "language": "unknown"
    }
  ],
  "headings": [
    {
      "level": "h2",
      "text": "Commands",
      "id": "commands"
    },
    {
      "level": "h3",
      "text": "Install",
      "id": "install"
    },
    {
      "level": "h3",
      "text": "Update",
      "id": "update"
    }
  ],
  "url": "llms-txt#`openclaw-plugins`",
  "links": []
}