Install
openclaw skills install tavily-search-native-nodeMinimal Tavily web search for OpenClaw - native Node.js, zero dependencies, auditable in 5 minutes. Use when the user asks to search the web, look up current information, find news, research a topic, check recent events, compare options, or get real-time data. Returns summarized, AI-optimized results with source citations. Requires TAVILY_API_KEY in the process environment. NOT for scraping individual URLs (use web_fetch for that). For caching, raw content, extract endpoint, and usage stats, see tavily-search-pro-native-node.
openclaw skills install tavily-search-native-nodeMinimal, auditable Tavily web search.
Native Node.js. Zero dependencies. Two files. Small enough to audit in a few minutes.
TAVILY_API_KEY from the process environment only.~/.openclaw/.env.https://api.tavily.com/search.Trigger phrases: "search for", "look up", "what's the latest on", "find recent news about", "research", "compare", "current info on".
Use this when:
Do NOT use this when:
web_fetch tool insteadWant caching, raw full-page content, extract endpoint, or usage stats? Use tavily-search-pro-native-node instead.
The script is in scripts/search.mjs.
Basic search:
node "<skill-dir>/scripts/search.mjs" "your query here"
News search (past ~7 days by default, freshness-biased):
node "<skill-dir>/scripts/search.mjs" --topic news "software release notes"
Deeper research (costs 2 credits per call):
node "<skill-dir>/scripts/search.mjs" --depth advanced "AI agents market analysis 2026"
(Where <skill-dir> is typically workspace/skills/tavily-search-native-node/.)
| Flag | Values | Default | Purpose |
|---|---|---|---|
--topic | general | news | general | news biases to fresh articles |
--depth | basic | advanced | basic | advanced = deeper analysis, 2x credits |
--max | 1-20 | 5 | How many results to return |
--days | integer | 7 (news only) | Age window for news topic |
--include | comma list | (none) | Only these domains, e.g. github.com,stackoverflow.com |
--exclude | comma list | (none) | Skip these domains |
--json | flag | off | Return raw JSON instead of formatted output |
# Compare frameworks, GitHub+SO only
node "./scripts/search.mjs" --include "github.com,stackoverflow.com" "React Native vs Flutter 2026"
# Recent news, 10 results, last 14 days
node "./scripts/search.mjs" --topic news --max 10 --days 14 "small business AI adoption"
# Deep research with JSON for programmatic use
node "./scripts/search.mjs" --depth advanced --json "small business VPN options"
Human-readable by default:
JSON mode (--json) dumps the full Tavily response as-is, useful for piping into follow-up scripts.
Requires TAVILY_API_KEY in the process environment.
If it is not set, the script exits with a clear error message.
Get a key: https://app.tavily.com - free tier is 1,000 searches/month.
--depth basic = 1 credit per search--depth advanced = 2 credits per searchWhen invoking this skill, prefer batching:
basic depth unless the user explicitly asks for a deep dive--include to scope to trusted domains when appropriatehttps://api.tavily.com/searchapi.tavily.comThis skill is intentionally small and dependency-free for auditability. Before publishing or updating, run node --check scripts/search.mjs, node scripts/search.mjs --help, and a no-key smoke test with a temporary home directory to verify clear credential errors without spending API credits.