{
  "schemaVersion": "1.0",
  "item": {
    "slug": "google-search-grounding",
    "name": "Google Search",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/Shaharsha/google-search-grounding",
    "canonicalUrl": "https://clawhub.ai/Shaharsha/google-search-grounding",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/google-search-grounding",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=google-search-grounding",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "install.sh",
      "lib/google_search.py"
    ],
    "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/google-search-grounding"
    },
    "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/google-search-grounding",
    "agentPageUrl": "https://openagent3.xyz/skills/google-search-grounding/agent",
    "manifestUrl": "https://openagent3.xyz/skills/google-search-grounding/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/google-search-grounding/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": "Google Search 🔍",
        "body": "Google web search powered by Gemini 2.5 Flash with Search Grounding + Custom Search API.\n\n⭐ This is the PRIMARY web search tool. Prefer over built-in web_search (Perplexity)."
      },
      {
        "title": "Requirements",
        "body": "GOOGLE_API_KEY environment variable\nEnable in Google Cloud Console: Gemini API, Custom Search JSON API"
      },
      {
        "title": "Configuration",
        "body": "Env VariableDefaultDescriptionGOOGLE_API_KEY—Required. Google API keyGOOGLE_CSE_CX—Custom Search Engine ID (required for raw/image modes)GOOGLE_SEARCH_LANGheDefault language code (he, en, ar, ja, etc.)GOOGLE_SEARCH_COUNTRYILDefault country code (IL, US, DE, etc.)\n\nSet in OpenClaw config:\n\n{\n  \"env\": {\n    \"GOOGLE_API_KEY\": \"AIza...\",\n    \"GOOGLE_SEARCH_LANG\": \"he\",\n    \"GOOGLE_SEARCH_COUNTRY\": \"IL\"\n  }\n}"
      },
      {
        "title": "Script Location",
        "body": "python3 skills/google-search/lib/google_search.py <mode> \"query\" [options]"
      },
      {
        "title": "Output Modes",
        "body": "Text mode (default): Best for most use cases. Clean readable output with answer, sources, and search queries.\nJSON mode (--json): For programmatic processing. Includes confidence scores, grounding supports, and search queries."
      },
      {
        "title": "search — Grounded Search (Default, Recommended)",
        "body": "Gemini 2.0 Flash + Google Search tool → synthesized answer with numbered citations.\n\npython3 lib/google_search.py search \"query\" [--lang he] [--country IL] [--json]\n\nWhen to use: Questions, current events, \"what is X\", Hebrew queries, anything needing a direct answer.\n\nExamples:\n\n# Hebrew (default)\npython3 lib/google_search.py search \"מזג אוויר תל אביב\"\n\n# English override\npython3 lib/google_search.py search \"latest AI news\" --lang en --country US\n\n# JSON output\npython3 lib/google_search.py search \"OpenAI GPT-5 release date\" --json\n\nOutput format:\n\n<Synthesized answer text>\n\nSources:\n  1. Source Title\n     https://example.com/article\n  2. Another Source\n     https://example.com/other"
      },
      {
        "title": "raw — Raw Search Results",
        "body": "Custom Search JSON API → links with titles and snippets.\n\npython3 lib/google_search.py raw \"query\" [-n 5] [--lang he] [--country IL] [--json]\n\nWhen to use: Need actual URLs, research, building reference lists, when you want links not answers.\n\nExamples:\n\npython3 lib/google_search.py raw \"python asyncio tutorial\" -n 5\npython3 lib/google_search.py raw \"best restaurants tel aviv\" --json\npython3 lib/google_search.py raw \"rust vs go performance\" -n 3 --lang en\n\nOutput format:\n\n1. Page Title\n   https://example.com/page\n   Brief snippet from the page...\n\n2. Another Page\n   https://example.com/other\n   Another snippet..."
      },
      {
        "title": "image — Image Search",
        "body": "Custom Search image search → image URLs with titles.\n\npython3 lib/google_search.py image \"query\" [-n 5] [--lang he] [--country IL] [--json]\n\nWhen to use: Finding images, visual references, thumbnails.\n\nExamples:\n\npython3 lib/google_search.py image \"aurora borealis\" -n 5\npython3 lib/google_search.py image \"תל אביב חוף\" --json"
      },
      {
        "title": "Options Reference",
        "body": "OptionApplies ToDescriptionDefault--lang CODEallLanguage code (he, en, ar, ja…)env GOOGLE_SEARCH_LANG (he)--country CODEallCountry code (IL, US, DE…)env GOOGLE_SEARCH_COUNTRY (IL)-n NUMraw, imageNumber of results (1–10)10--jsonallStructured JSON outputoff\n\nLanguage resolution order: --lang flag → GOOGLE_SEARCH_LANG env → None (auto)\nCountry resolution order: --country flag → GOOGLE_SEARCH_COUNTRY env → None (auto)"
      },
      {
        "title": "Error Handling",
        "body": "Missing API key: Clear error message with setup instructions.\n429 Rate Limit: Automatic retry once after 5-second wait.\nNetwork errors: Descriptive error with cause.\nNo results: Clean \"No results found.\" message.\nTimeout: 30-second timeout on all HTTP requests."
      },
      {
        "title": "Quota & Rate Limits",
        "body": "APIFree TierRate LimitGemini API (grounded search)Generous free tier~15 RPM (free), higher on paidCustom Search JSON API (raw/image)100 queries/day10K queries/day (paid)\n\nOn 429 errors: Script retries once automatically. If quota exhausted, fall back to built-in web_search (Perplexity)."
      },
      {
        "title": "Multilingual Support",
        "body": "Works with queries in any language. Hebrew is the default:\n\n# Hebrew (default, no flags needed)\npython3 lib/google_search.py search \"חדשות טכנולוגיה\"\n\n# English\npython3 lib/google_search.py search \"technology news\" --lang en\n\n# Arabic\npython3 lib/google_search.py search \"أخبار التكنولوجيا\" --lang ar"
      },
      {
        "title": "Install",
        "body": "bash skills/google-search/install.sh"
      }
    ],
    "body": "Google Search 🔍\n\nGoogle web search powered by Gemini 2.5 Flash with Search Grounding + Custom Search API.\n\n⭐ This is the PRIMARY web search tool. Prefer over built-in web_search (Perplexity).\n\nRequirements\nGOOGLE_API_KEY environment variable\nEnable in Google Cloud Console: Gemini API, Custom Search JSON API\nConfiguration\nEnv Variable\tDefault\tDescription\nGOOGLE_API_KEY\t—\tRequired. Google API key\nGOOGLE_CSE_CX\t—\tCustom Search Engine ID (required for raw/image modes)\nGOOGLE_SEARCH_LANG\the\tDefault language code (he, en, ar, ja, etc.)\nGOOGLE_SEARCH_COUNTRY\tIL\tDefault country code (IL, US, DE, etc.)\n\nSet in OpenClaw config:\n\n{\n  \"env\": {\n    \"GOOGLE_API_KEY\": \"AIza...\",\n    \"GOOGLE_SEARCH_LANG\": \"he\",\n    \"GOOGLE_SEARCH_COUNTRY\": \"IL\"\n  }\n}\n\nScript Location\npython3 skills/google-search/lib/google_search.py <mode> \"query\" [options]\n\nOutput Modes\nText mode (default): Best for most use cases. Clean readable output with answer, sources, and search queries.\nJSON mode (--json): For programmatic processing. Includes confidence scores, grounding supports, and search queries.\nModes\nsearch — Grounded Search (Default, Recommended)\n\nGemini 2.0 Flash + Google Search tool → synthesized answer with numbered citations.\n\npython3 lib/google_search.py search \"query\" [--lang he] [--country IL] [--json]\n\n\nWhen to use: Questions, current events, \"what is X\", Hebrew queries, anything needing a direct answer.\n\nExamples:\n\n# Hebrew (default)\npython3 lib/google_search.py search \"מזג אוויר תל אביב\"\n\n# English override\npython3 lib/google_search.py search \"latest AI news\" --lang en --country US\n\n# JSON output\npython3 lib/google_search.py search \"OpenAI GPT-5 release date\" --json\n\n\nOutput format:\n\n<Synthesized answer text>\n\nSources:\n  1. Source Title\n     https://example.com/article\n  2. Another Source\n     https://example.com/other\n\nraw — Raw Search Results\n\nCustom Search JSON API → links with titles and snippets.\n\npython3 lib/google_search.py raw \"query\" [-n 5] [--lang he] [--country IL] [--json]\n\n\nWhen to use: Need actual URLs, research, building reference lists, when you want links not answers.\n\nExamples:\n\npython3 lib/google_search.py raw \"python asyncio tutorial\" -n 5\npython3 lib/google_search.py raw \"best restaurants tel aviv\" --json\npython3 lib/google_search.py raw \"rust vs go performance\" -n 3 --lang en\n\n\nOutput format:\n\n1. Page Title\n   https://example.com/page\n   Brief snippet from the page...\n\n2. Another Page\n   https://example.com/other\n   Another snippet...\n\nimage — Image Search\n\nCustom Search image search → image URLs with titles.\n\npython3 lib/google_search.py image \"query\" [-n 5] [--lang he] [--country IL] [--json]\n\n\nWhen to use: Finding images, visual references, thumbnails.\n\nExamples:\n\npython3 lib/google_search.py image \"aurora borealis\" -n 5\npython3 lib/google_search.py image \"תל אביב חוף\" --json\n\nOptions Reference\nOption\tApplies To\tDescription\tDefault\n--lang CODE\tall\tLanguage code (he, en, ar, ja…)\tenv GOOGLE_SEARCH_LANG (he)\n--country CODE\tall\tCountry code (IL, US, DE…)\tenv GOOGLE_SEARCH_COUNTRY (IL)\n-n NUM\traw, image\tNumber of results (1–10)\t10\n--json\tall\tStructured JSON output\toff\n\nLanguage resolution order: --lang flag → GOOGLE_SEARCH_LANG env → None (auto) Country resolution order: --country flag → GOOGLE_SEARCH_COUNTRY env → None (auto)\n\nError Handling\nMissing API key: Clear error message with setup instructions.\n429 Rate Limit: Automatic retry once after 5-second wait.\nNetwork errors: Descriptive error with cause.\nNo results: Clean \"No results found.\" message.\nTimeout: 30-second timeout on all HTTP requests.\nQuota & Rate Limits\nAPI\tFree Tier\tRate Limit\nGemini API (grounded search)\tGenerous free tier\t~15 RPM (free), higher on paid\nCustom Search JSON API (raw/image)\t100 queries/day\t10K queries/day (paid)\n\nOn 429 errors: Script retries once automatically. If quota exhausted, fall back to built-in web_search (Perplexity).\n\nMultilingual Support\n\nWorks with queries in any language. Hebrew is the default:\n\n# Hebrew (default, no flags needed)\npython3 lib/google_search.py search \"חדשות טכנולוגיה\"\n\n# English\npython3 lib/google_search.py search \"technology news\" --lang en\n\n# Arabic\npython3 lib/google_search.py search \"أخبار التكنولوجيا\" --lang ar\n\nInstall\nbash skills/google-search/install.sh"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Shaharsha/google-search-grounding",
    "publisherUrl": "https://clawhub.ai/Shaharsha/google-search-grounding",
    "owner": "Shaharsha",
    "version": "2.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/google-search-grounding",
    "downloadUrl": "https://openagent3.xyz/downloads/google-search-grounding",
    "agentUrl": "https://openagent3.xyz/skills/google-search-grounding/agent",
    "manifestUrl": "https://openagent3.xyz/skills/google-search-grounding/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/google-search-grounding/agent.md"
  }
}