← Back to Skills Marketplace
jas0n1ee

gemini-smart-search

by jas0n1ee · GitHub ↗ · v0.1.1 · MIT-0
cross-platform ✓ Security Clean
240
Downloads
0
Stars
0
Active Installs
2
Versions
Install in OpenClaw
/install gemini-smart-search
Description
Search the web using Gemini with Google Search grounding through a local script, with model routing and quota fallback across Gemini Flash-Lite / Flash varia...
README (SKILL.md)

Gemini Smart Search

Use this skill when Gemini should be the search backend, but gateway-level web_search config is too static or too disruptive to change.

Purpose

This skill is a script-backed search workflow, not a gateway tool override.

It exists to provide:

  • dynamic Gemini model selection
  • quota-aware fallback
  • a separate Gemini API key path if desired
  • structured JSON output
  • no gateway restart requirement for model changes

Modes

Model routing is split into two layers:

  • display chain: human-facing preferred model family labels
  • candidate API ids: the actual model ids to probe, especially for 3.x preview-era models

Current display chains:

  • cheap
    • Prefer gemini-2.5-flash-lite
    • Then gemini-3.1-flash-lite
    • Then gemini-2.5-flash
  • balanced
    • Prefer gemini-2.5-flash
    • Then gemini-3-flash
    • Then gemini-2.5-flash-lite
  • deep
    • Prefer gemini-3-flash
    • Then gemini-2.5-flash
    • Then gemini-3.1-flash-lite

For 3.x models, do not assume the UI label is the raw API id. Probe candidate ids such as preview-suffixed names when needed.

Invocation

Run the Python script or the shell wrapper via exec and request JSON output.

Python is now the canonical entrypoint because it also loads repo-local .env.local when present. The shell wrapper remains a convenience layer.

Primary example (preferred):

python3 skills/gemini-smart-search/scripts/gemini_smart_search.py \
  --query "BoundaryML context engineering" \
  --mode cheap \
  --json

Wrapper example (convenience only):

bash skills/gemini-smart-search/scripts/gemini_smart_search.sh \
  --query "BoundaryML context engineering" \
  --mode cheap \
  --json

python -m gemini_smart_search may work when run from the scripts/ directory, but it is not a supported interface for agents right now. Do not depend on it.

Output contract

Expect JSON with at least:

  • ok
  • query
  • mode
  • model_used
  • fallback_chain
  • display_chain
  • answer
  • citations
  • error
  • escalation

Notes:

  • model_used is the actual probed API model id (for example gemini-3-flash-preview), not the human-facing display label.
  • Citation URLs may initially be Google/Vertex grounding redirect URLs instead of canonical source URLs; treat that as a known current limitation.
  • With --json, supported runtime paths should return structured JSON on both success and error. Invalid CLI arguments now also return JSON when --json is present.

API key policy

The script should prefer a dedicated key path for this skill, then fall back to the standard Gemini key.

Required key resolution order:

  1. SMART_SEARCH_GEMINI_API_KEY (primary declared env)
  2. GEMINI_API_KEY (compatibility fallback)

If neither key is present, the agent must explicitly ask the human for a Gemini API key before claiming setup is complete.

Do not store the key in tracked repository files. Prefer a repo-local, gitignored file such as .env.local.

See references/config.md.

When to use this skill instead of built-in web_search

Use this skill when:

  • you want Gemini-only search
  • you want to test or isolate quota pools
  • you want model routing without touching gateway config
  • you want predictable JSON output for downstream orchestration

Do not use this skill when:

  • a normal built-in web_search is sufficient
  • you need non-Gemini providers
  • you only need to fetch and read a known URL (web_fetch)
  • you need logged-in or JS-heavy page interaction (browser)

Fallback policy

Fallback only for errors like:

  • quota exceeded / 429
  • model unavailable
  • transient upstream failure

Do not silently fallback on obvious local/script bugs or invalid arguments.

References

  • references/config.md — environment variables and design notes
  • references/qa-test-plan.md — focused QA scope for v1 behavior and release gates
  • references/qa-results-2026-03-12.md — CLI-oriented QA outcomes from the current release cycle
  • references/agent-qa-cases.md — adversarial agent-style misuse review
  • references/model-id-recon.md — verified callable Gemini model IDs and mapping notes
  • references/escalation-design.md — when to return a GitHub issue URL for human escalation
  • references/release-checklist.md — artifact release checklist with current completion status
  • references/development-goals-v0.1.1.md — next small version scope and artifact policy
  • references/release-notes-v0.1.1.md — release notes for the current artifact
  • assets/example-output.json — expected response shape
  • scripts/smoke_test.sh — non-destructive local smoke checks for the scaffold
  • scripts/prepare_artifact.sh — deterministic clean artifact export helper

Status

Python implementation is now wired for a first real version:

  • direct Gemini API call path
  • Google Search grounding enabled
  • mode-based model routing
  • Python-side repo-local .env.local loading
  • fallback across Gemini Flash-Lite / Flash variants for retryable upstream errors
  • structured JSON output for orchestration

This is still intentionally minimal: it does not yet expose advanced tuning flags, caching, or richer citation post-processing.

Before publishing an artifact, consult references/release-checklist.md, review references/development-goals-v0.1.1.md, run scripts/prepare_artifact.sh, and publish the release note in references/release-notes-v0.1.1.md alongside the artifact.

Usage Guidance
This skill appears coherent and implements what it claims: a local Python-based Gemini search worker that needs a Gemini API key. Before installing: - Confirm you provide SMART_SEARCH_GEMINI_API_KEY (or GEMINI_API_KEY) to the environment; the code prefers SMART_SEARCH_GEMINI_API_KEY. The registry metadata omits required env vars, so ensure the platform supplies the secret to the skill. - Understand the skill will make network calls to Google’s Generative Language API (generativelanguage.googleapis.com) and will send your queries and the API key via the x-goog-api-key header — make sure you’re comfortable with that outbound access and quota/billing implications. - Keep your key in a gitignored .env.local (the repo and scripts already recommend this); verify your CI/agent runtime does not accidentally commit keys. - If you rely on autonomous agent invocation, be aware the agent can call this skill and thereby use your Google key; limit the key's permissions/quota as appropriate and monitor usage. - Minor metadata nit: the registry lists no required env vars while the skill declares SMART_SEARCH_GEMINI_API_KEY as primary; verify the platform/agent will surface that secret when the skill runs. Overall, nothing in the code or docs suggests hidden endpoints, unrelated credential requests, or excessive privileges.
Capability Analysis
Type: OpenClaw Skill Name: gemini-smart-search Version: 0.1.1 The gemini-smart-search skill is a well-documented and functionally aligned tool for performing web searches via the Gemini API with Google Search grounding. The core logic in gemini_smart_search.py uses standard Python libraries (urllib) to communicate exclusively with official Google API endpoints and includes robust error handling and model fallback mechanisms. The bundle demonstrates good security hygiene by explicitly excluding sensitive files like .env.local from its artifact preparation script (prepare_artifact.sh) and providing comprehensive QA and design documentation in the references/ directory. No evidence of data exfiltration, malicious execution, or harmful prompt injection was found.
Capability Assessment
Purpose & Capability
The name/description (Gemini smart search) matches the code and docs: a Python script that calls the Gemini Developer API, provides mode-based routing and fallback, and returns structured JSON. Required binary (python3) and the declared primary credential (SMART_SEARCH_GEMINI_API_KEY) are appropriate for this functionality.
Instruction Scope
SKILL.md instructs running the local Python script (or a thin shell wrapper) and documents .env.local behavior and API key precedence. Runtime actions (reading repo-local .env.local, resolving API key, POST to generativelanguage.googleapis.com, returning JSON) are within the stated purpose. The README/SKILL.md explicitly warns about not tracking keys and about wrapper vs Python entrypoint differences.
Install Mechanism
This is instruction-plus-scripts with no install spec — lowest-risk install model. There are no external download URLs or archive extraction steps. All network use is the expected Gemini API (generativelanguage.googleapis.com) and a static GitHub issue URL for escalation.
Credentials
The skill requires a Gemini API key (primaryEnv = SMART_SEARCH_GEMINI_API_KEY) and falls back to GEMINI_API_KEY; that is proportionate. Minor metadata inconsistency: registry 'Required env vars' field lists none while the skill declares SMART_SEARCH_GEMINI_API_KEY as its primary credential — the declared primary credential is correct for the skill, but the registry metadata could more clearly mark the env var as required.
Persistence & Privilege
always:false (no forced persistent inclusion). The skill only reads a repo-local .env.local and does not modify system-wide configs or other skills. Autonomous invocation is allowed by default (normal for skills) but not elevated here.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install gemini-smart-search
  3. After installation, invoke the skill by name or use /gemini-smart-search
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.1.1
- Added new references: development goals and release notes for v0.1.1. - Included a shell script (prepare_artifact.sh) for deterministic artifact preparation and clean export. - Updated documentation to reference new artifact policy and script usage. - Declared the primary required environment variable (SMART_SEARCH_GEMINI_API_KEY) in metadata. - No functional logic changes to search or fallback behavior; changes are artifact and policy-focused.
v0.1.0
Initial public artifact release of a Gemini-only, script-backed smart search skill for OpenClaw.
Metadata
Slug gemini-smart-search
Version 0.1.1
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 2
Frequently Asked Questions

What is gemini-smart-search?

Search the web using Gemini with Google Search grounding through a local script, with model routing and quota fallback across Gemini Flash-Lite / Flash varia... It is an AI Agent Skill for Claude Code / OpenClaw, with 240 downloads so far.

How do I install gemini-smart-search?

Run "/install gemini-smart-search" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is gemini-smart-search free?

Yes, gemini-smart-search is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does gemini-smart-search support?

gemini-smart-search is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created gemini-smart-search?

It is built and maintained by jas0n1ee (@jas0n1ee); the current version is v0.1.1.

💬 Comments