# Send serper to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- 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.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "serper",
    "name": "serper",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/nesdeq/serper",
    "canonicalUrl": "https://clawhub.ai/nesdeq/serper",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/serper",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=serper",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "README.md",
      "scripts/search.py",
      "SKILL.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "serper",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-12T15:31:16.377Z",
      "expiresAt": "2026-05-19T15:31:16.377Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=serper",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=serper",
        "contentDisposition": "attachment; filename=\"serper-3.0.2.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "serper"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/serper"
    },
    "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."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/serper",
    "downloadUrl": "https://openagent3.xyz/downloads/serper",
    "agentUrl": "https://openagent3.xyz/skills/serper/agent",
    "manifestUrl": "https://openagent3.xyz/skills/serper/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/serper/agent.md"
  }
}
```
## Documentation

### Serper

Google search via Serper API. Fetches results AND reads the actual web pages to extract clean full-text content via trafilatura. Not just snippets — full article text.

### How It Works

Serper API call — fast Google search, returns result URLs instantly
Concurrent page scraping — all result pages are fetched and extracted in parallel using trafilatura with a 3-second timeout per page
Streamed output — results print one at a time as each page finishes

Each invocation gives you 5 results (default mode) or up to 6 results (current mode), each with full page content. This is already a lot of information.

### Query Discipline

Craft ONE good search query. That is almost always enough.

Each call returns multiple results with full page text — you get broad coverage from a single query. Do not run multiple searches to "explore" a topic. One well-chosen query with the right mode covers it.

At most two calls if the user's request genuinely spans two distinct topics (e.g. "compare X vs Y" where X and Y need separate searches, or one default + one current call for different aspects). Never more than two.

Do NOT:

Run the same query with different wording to "get more results"
Run sequential searches to "dig deeper" — the full page content is already deep
Run one search to find something, then another to follow up — read the content you already have

### When to Use This Skill

Use serper when:

Any question that needs current, factual information from the web
Research topics that need full article content, not just snippets
News and current events
Product info, prices, comparisons, reviews
Technical docs, how-to guides
Anything where reading the actual page matters

Do NOT use this skill for:

Questions you can answer from your training data
Pure math, code execution, creative writing
Greetings, chitchat

IMPORTANT: This skill already fetches and extracts full page content. Do NOT use web_fetch, WebFetch, or any other URL-fetching tool on the URLs returned by this skill. The content is already included in the output.

### Two Search Modes

There are exactly two modes. Pick the right one based on the query:

### default — General search (all-time)

All-time Google web search, 5 results, each enriched with full page content
Use for: general questions, research, how-to, evergreen topics, product info, technical docs, comparisons, tutorials, anything NOT time-sensitive

### current — News and recent info

Past-week Google web search (3 results) + Google News (3 results), each enriched with full page content
Use for: news, current events, recent developments, breaking news, announcements, anything time-sensitive

Mode Selection Guide

Query signalsMode"how does X work", "what is X", "explain X"defaultProduct research, comparisons, tutorialsdefaultTechnical documentation, guidesdefaultHistorical topics, evergreen contentdefault"news", "latest", "today", "this week", "recent"current"what happened", "breaking", "announced", "released"currentCurrent events, politics, sports scores, stock pricescurrent

### Locale (REQUIRED for non-English queries)

Default is global — no country filter, English results. This ONLY works for English queries.

You MUST ALWAYS set --gl and --hl when ANY of these are true:

The user's message is in a non-English language
The search query you construct is in a non-English language
The user mentions a specific country, city, or region
The user asks for local results (prices, news, stores, etc.) in a non-English context

If the user writes in German, you MUST pass --gl de --hl de. No exceptions.

ScenarioFlagsEnglish query, no country target(omit --gl and --hl)German query OR user writes in German OR targeting DE/AT/CH--gl de --hl deFrench query OR user writes in French OR targeting France--gl fr --hl frAny other non-English language/country--gl XX --hl XX (ISO codes)

Rule of thumb: If the query string contains non-English words, set --gl and --hl to match that language.

### How to Invoke

python3 scripts/search.py -q "QUERY" [--mode MODE] [--gl COUNTRY] [--hl LANG]

### Examples

# English, general research
python3 scripts/search.py -q "how does HTTPS work"

# English, time-sensitive
python3 scripts/search.py -q "OpenAI latest announcements" --mode current

# German query — set locale + current mode for news/prices
python3 scripts/search.py -q "aktuelle Preise iPhone" --mode current --gl de --hl de

# German news
python3 scripts/search.py -q "Nachrichten aus Berlin" --mode current --gl de --hl de

# French product research
python3 scripts/search.py -q "meilleur smartphone 2026" --gl fr --hl fr

### Output Format

The output is a streamed JSON array — elements print one at a time as each page is scraped:

[{"query": "...", "mode": "default", "locale": {"gl": "world", "hl": "en"}, "results": [{"title": "...", "url": "...", "source": "web"}, ...]}
,{"title": "...", "url": "...", "source": "web", "content": "Full extracted page text..."}
,{"title": "...", "url": "...", "source": "news", "date": "2 hours ago", "content": "Full article text..."}
]

The first element is search metadata. Each following element contains a result with full extracted content.

Result fields:

title — page title
url — source URL
source — "web", "news", or "knowledge_graph"
content — full extracted page text (falls back to search snippet if extraction fails)
date — present when available (news results always, web results sometimes)

### CLI Reference

FlagDescription-q, --querySearch query (required)-m, --modedefault (all-time, 5 results) or current (past week + news, 3 each)--glCountry code (e.g. de, us, fr, at, ch)--hlLanguage code (e.g. en, de, fr)
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: nesdeq
- Version: 3.0.2
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-12T15:31:16.377Z
- Expires at: 2026-05-19T15:31:16.377Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/serper)
- [Send to Agent page](https://openagent3.xyz/skills/serper/agent)
- [JSON manifest](https://openagent3.xyz/skills/serper/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/serper/agent.md)
- [Download page](https://openagent3.xyz/downloads/serper)