tools/search/SKILL.md
How to use the web search tools. Default to `search(query=...)` — the plugin auto-picks the best backend and races free fallbacks in parallel. Only override defaults when you have a specific reason.
npx skillsauth add osaurus-ai/osaurus-tools osaurus-searchInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Web search for grounding. Free by default (DuckDuckGo / Brave / Bing scraping, raced in parallel under a 12s wall-clock budget). Upgrades automatically when an API key (Tavily / Brave Search / Serper / Google CSE / Kagi / You.com) is configured.
search(query="latest CVEs in nginx")
That's it. The plugin picks the best backend for you.
search.search_news (defaults to last week).search_images.search_and_extract (does search + Readability).osaurus.fetch.fetch_html for deep extraction → search.osaurus.fetch.fetch_html.Grounded research:
1. search(query="...", time_range="m")
2. for each result.url: osaurus.fetch.fetch_html(url) → markdown
3. Synthesize from the markdowns; cite final_url + published_date.
One-shot grounded answer:
search_and_extract(query="...", max_results=5, extract_count=3)
→ results[].markdown is already populated for the top extract_count hits
Success:
{
"ok": true,
"data": {
"query": "...",
"provider": "ddg",
"results": [
{
"rank": 1,
"title": "...",
"url": "https://...",
"snippet": "...",
"published_date": "2026-04-15",
"source_domain": "example.com",
"engine": "ddg"
}
],
"count": 10,
"next_offset": 10
},
"warnings": ["Ignored unknown provider 'auto'; used auto-cascade. ..."]
}
Failure:
{
"ok": false,
"error": {
"code": "NO_RESULTS",
"message": "No results from any backend.",
"hint": "Try a broader query or drop site:/filetype:/time_range. For better recall, configure an API key (e.g. TAVILY_API_KEY) in plugin settings."
},
"data": { "attempts": [...], "warnings": [...] }
}
Error codes you may see: INVALID_ARGS, NO_RESULTS, PROVIDER_UNAVAILABLE, INTERNAL.
site: and filetype: translate per-backend; pass them as their own params if you really need them.offset rather than re-querying for more.osaurus.fetch.fetch_html on the top URLs (or just call search_and_extract).Configure any of these in the plugin's secrets settings to upgrade from scraping to grounded API search. Priority order (the host automatically prefers the highest-priority configured key):
TAVILY_API_KEY — Tavily (best free agent search; 1000 free queries/month)BRAVE_SEARCH_API_KEY — Brave Search APISERPER_API_KEY — Serper (Google SERP)GOOGLE_CSE_API_KEY + GOOGLE_CSE_CX — Google Custom Search EngineKAGI_API_KEY — KagiYOU_API_KEY — You.comIf none are configured, the free DDG / Brave / Bing scrapers race in parallel under a 12s budget. Once a key is set, the plugin auto-uses it; no code or argument changes required.
tools
Teaches the agent how to use the time tools — current time, timezone conversion, parsing dates, formatting, date arithmetic.
tools
Teaches the agent how to use the HTTP fetch tools — JSON APIs, Readability HTML extraction, file downloads, with built-in SSRF and size limits.
tools
Teaches the agent how to use the headless browser tools — per-agent persistent sessions, the open_login helper, refs, batching, detail levels, console/network inspection, dialogs, viewport/UA, cookies, and lock/unlock for multi-agent safety.
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.