{
  "schemaVersion": "1.0",
  "item": {
    "slug": "elasticsearch-openclaw",
    "name": "Elasticsearch Openclaw",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/salgado/elasticsearch-openclaw",
    "canonicalUrl": "https://clawhub.ai/salgado/elasticsearch-openclaw",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/elasticsearch-openclaw",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=elasticsearch-openclaw",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "_meta.json",
      "references/classic-patterns.md",
      "references/python-client-9.md",
      "references/semantic-search.md",
      "references/vector-search.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/elasticsearch-openclaw"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/elasticsearch-openclaw",
    "agentPageUrl": "https://openagent3.xyz/skills/elasticsearch-openclaw/agent",
    "manifestUrl": "https://openagent3.xyz/skills/elasticsearch-openclaw/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/elasticsearch-openclaw/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Elasticsearch OpenClaw 🔍",
        "body": "Modern Elasticsearch 9.x patterns for AI-orchestrated applications."
      },
      {
        "title": "🔒 Security Model: Read-Only by Design",
        "body": "This skill provides documentation for read-only operations only: search,\naggregations, and analytics. No write operations (indexing, updates, deletions)\nare included or executed by the agent.\n\nNote: This skill requires external credentials (Elasticsearch API key) to\nfunction. ClawHub security scanners may flag this as \"suspicious\" — this is\nexpected for skills that integrate with external services. All code is\ntransparent markdown documentation. Review before granting credentials."
      },
      {
        "title": "Quick Start — Local Dev",
        "body": "For local Elasticsearch 9.x setup with Kibana, use the official start-local tool:\n\nRepository: https://github.com/elastic/start-local\nDocumentation: https://www.elastic.co/start-local\n\nOnce running:\n\nElasticsearch: http://localhost:9200\nKibana: http://localhost:5601\nCredentials: elastic-start-local/.env"
      },
      {
        "title": "Auth — Always Use API Keys",
        "body": "# Test connection\ncurl -s \"$ELASTICSEARCH_URL\" -H \"Authorization: ApiKey $ELASTICSEARCH_API_KEY\"\n\n# Python client 9.x\nfrom elasticsearch import Elasticsearch\nes = Elasticsearch(ES_URL, api_key=API_KEY)"
      },
      {
        "title": "Reference Files",
        "body": "Load these only when needed — do not load all at once:\n\nFileLoad when...references/semantic-search.mdSetting up JINA, semantic_text, inference endpointreferences/vector-search.mdkNN queries, dense_vector mapping, hybrid search with RRFreferences/classic-patterns.mdMapping design, boolean queries, aggregations, paginationreferences/python-client-9.mdPython elasticsearch 9.x — no body=, keyword args, type hints"
      },
      {
        "title": "When to Use Each Pattern",
        "body": "User asks about meaning / intent / \"find products like X\"\n  → semantic_text + semantic query  →  references/semantic-search.md\n\nUser needs exact match + semantic combined\n  → hybrid search (RRF)            →  references/vector-search.md\n\nUser asks about mapping, field types, analyzers, aggregations\n  → classic patterns                →  references/classic-patterns.md\n\nUser uses Python elasticsearch library\n  → always check                    →  references/python-client-9.md"
      },
      {
        "title": "Security Best Practices",
        "body": "Always use API keys over username/password\nScope API keys to specific indices and minimal privileges\nFor read-only OpenClaw access: privileges: [\"read\", \"view_index_metadata\"]\nStore credentials in .env, never hardcode in scripts\n.env always in .gitignore\n\nPOST /_security/api_key\n{\n  \"name\": \"openclaw-readonly\",\n  \"role_descriptors\": {\n    \"reader\": {\n      \"indices\": [{ \"names\": [\"my-index\"], \"privileges\": [\"read\"] }]\n    }\n  }\n}\n\n// Response:\n{\n  \"id\": \"VuaCfGcBCdbkQm-e5aOx\",\n  \"name\": \"openclaw-readonly\",\n  \"api_key\": \"ui2lp2axTNmsyakw9tvNnw\",\n  \"encoded\": \"VnVhQ2ZHY0JDZGJrUW0tZTVhT3g6dWkybHAyYXhUTm1zeWFrdzl0dk5udw==\"\n}\n\n⚠️ Save the encoded field from the response immediately — it cannot be retrieved later.\nAdd to: ~/.openclaw/workspace-[name]/.env as ELASTICSEARCH_API_KEY"
      }
    ],
    "body": "Elasticsearch OpenClaw 🔍\n\nModern Elasticsearch 9.x patterns for AI-orchestrated applications.\n\n🔒 Security Model: Read-Only by Design\n\nThis skill provides documentation for read-only operations only: search, aggregations, and analytics. No write operations (indexing, updates, deletions) are included or executed by the agent.\n\nNote: This skill requires external credentials (Elasticsearch API key) to function. ClawHub security scanners may flag this as \"suspicious\" — this is expected for skills that integrate with external services. All code is transparent markdown documentation. Review before granting credentials.\n\nQuick Start — Local Dev\n\nFor local Elasticsearch 9.x setup with Kibana, use the official start-local tool:\n\nRepository: https://github.com/elastic/start-local\nDocumentation: https://www.elastic.co/start-local\n\nOnce running:\n\nElasticsearch: http://localhost:9200\nKibana: http://localhost:5601\nCredentials: elastic-start-local/.env\nAuth — Always Use API Keys\n# Test connection\ncurl -s \"$ELASTICSEARCH_URL\" -H \"Authorization: ApiKey $ELASTICSEARCH_API_KEY\"\n\n# Python client 9.x\nfrom elasticsearch import Elasticsearch\nes = Elasticsearch(ES_URL, api_key=API_KEY)\n\nReference Files\n\nLoad these only when needed — do not load all at once:\n\nFile\tLoad when...\nreferences/semantic-search.md\tSetting up JINA, semantic_text, inference endpoint\nreferences/vector-search.md\tkNN queries, dense_vector mapping, hybrid search with RRF\nreferences/classic-patterns.md\tMapping design, boolean queries, aggregations, pagination\nreferences/python-client-9.md\tPython elasticsearch 9.x — no body=, keyword args, type hints\nWhen to Use Each Pattern\nUser asks about meaning / intent / \"find products like X\"\n  → semantic_text + semantic query  →  references/semantic-search.md\n\nUser needs exact match + semantic combined\n  → hybrid search (RRF)            →  references/vector-search.md\n\nUser asks about mapping, field types, analyzers, aggregations\n  → classic patterns                →  references/classic-patterns.md\n\nUser uses Python elasticsearch library\n  → always check                    →  references/python-client-9.md\n\nSecurity Best Practices\nAlways use API keys over username/password\nScope API keys to specific indices and minimal privileges\nFor read-only OpenClaw access: privileges: [\"read\", \"view_index_metadata\"]\nStore credentials in .env, never hardcode in scripts\n.env always in .gitignore\nPOST /_security/api_key\n{\n  \"name\": \"openclaw-readonly\",\n  \"role_descriptors\": {\n    \"reader\": {\n      \"indices\": [{ \"names\": [\"my-index\"], \"privileges\": [\"read\"] }]\n    }\n  }\n}\n\n// Response:\n{\n  \"id\": \"VuaCfGcBCdbkQm-e5aOx\",\n  \"name\": \"openclaw-readonly\",\n  \"api_key\": \"ui2lp2axTNmsyakw9tvNnw\",\n  \"encoded\": \"VnVhQ2ZHY0JDZGJrUW0tZTVhT3g6dWkybHAyYXhUTm1zeWFrdzl0dk5udw==\"\n}\n\n\n⚠️ Save the encoded field from the response immediately — it cannot be retrieved later.\nAdd to: ~/.openclaw/workspace-[name]/.env as ELASTICSEARCH_API_KEY"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/salgado/elasticsearch-openclaw",
    "publisherUrl": "https://clawhub.ai/salgado/elasticsearch-openclaw",
    "owner": "salgado",
    "version": "1.1.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/elasticsearch-openclaw",
    "downloadUrl": "https://openagent3.xyz/downloads/elasticsearch-openclaw",
    "agentUrl": "https://openagent3.xyz/skills/elasticsearch-openclaw/agent",
    "manifestUrl": "https://openagent3.xyz/skills/elasticsearch-openclaw/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/elasticsearch-openclaw/agent.md"
  }
}