web-search

SKILL.md

SearXNG Search Skill

Prerequisites: Run bash skills/searxng/scripts/setup.sh to auto-install and start SearXNG (Docker-based, idempotent — safe to re-run).

Searching

Query the local SearXNG instance via curl (preferred — WebFetch blocks localhost):

curl -s "http://localhost:8888/search?q=YOUR+QUERY&format=json"

Common variations:

# Target specific engines (reduces noise)
curl -s "http://localhost:8888/search?q=react+hooks&engines=google,bing&format=json"

# Filter by recency
curl -s "http://localhost:8888/search?q=openai+news&time_range=week&format=json"

# Chinese content
curl -s "http://localhost:8888/search?q=人工智能&engines=baidu,bing&lang=zh&format=json"

# Dev/code questions
curl -s "http://localhost:8888/search?q=rust+async+error&engines=stackoverflow,github&format=json"

Parse results with python (recommended):

curl -s "http://localhost:8888/search?q=YOUR+QUERY&format=json" | \
  python3 -c "import sys,json; data=json.load(sys.stdin); [print(f'- {r[\"title\"]}\n  {r[\"url\"]}\n  {r[\"content\"][:150]}') for r in data.get('results',[])[:5]]"

Parameters

Parameter Description Values
q Search query URL-encoded string
engines Specific engines google,bing,duckduckgo,stackoverflow,github,baidu,...
lang Language zh, en, all
pageno Page number 1, 2, ...
time_range Recency filter day, week, month, year
safesearch Safe search 0, 1, 2

Best Practices

Read snippets before fetching pages. Each result has a content field with a relevant excerpt — this often contains the answer directly. Fetching full pages costs significantly more tokens, so only do it when the snippet isn't enough.

Limit to top 3–5 results. The first few results are almost always sufficient. More results mean more tokens without meaningfully better answers.

Target engines for the task. Narrowing to relevant engines reduces noise and speeds up results:

  • Code / dev: engines=stackoverflow,github
  • Chinese content: engines=baidu,bing&lang=zh
  • Recent events: append &time_range=week

If SearXNG is not running

Run the setup script first, then retry:

bash skills/web-search/scripts/setup.sh

Note on WebFetch

Do NOT use WebFetch for SearXNG — it blocks all local/private addresses (localhost, 127.0.0.1, 192.168.x.x, [::1], custom hosts entries) due to SSRF protection. Always use curl via Bash.

Notes

  • First request may be slow (engine warm-up)
  • For remote or production use, add authentication to your SearXNG instance
Weekly Installs
5
First Seen
11 days ago
Installed on
opencode5
gemini-cli5
github-copilot5
codex5
amp5
cline5