joshmock/dotfiles/web-search

Claude Code and agent skill by joshmock/dotfiles

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Search the web using SearxNG, a locally-run meta search engine that aggregates results from multiple engines

Install

npx vskill@latest install joshmock/dotfiles/web-search

SKILL.md

Hister search

A Hister instance runs locally on localhost:4433. If the hister CLI is available to you, use hister search to search my browser history for relevant pages. If it is not, use the HTTP API to search instead. Search results from Hister have a high likelihood of containing relevant information.

Jina search

If the jina CLI tool is available, and pass agents/jina-reader/pi exists, ALWAYS use jina search to do a web search. Ensure JINA_API_KEY=$(pass agents/jina-reader/pi) env var is set.

If jina is not installed or pass does not return a key, continue to the next section.

SearXNG Search

SearXNG is a metasearch engine that runs locally. It aggregates results from multiple search engines and package repositories, returning clean JSON output.

NOTE: SearXNG typically runs on localhost:8080 but, if you are sandboxed, it may appear at host.docker.internal:8080.

agent-browser

As a last resort, if Jina and SearXNG do not yield useful results, use the agent-browser skill and runtime.

Quick Reference

TaskCommandCategory
General web searchcurl "http://localhost:8080/search?q=<query>&format=json"general
Search Cargo/crates.iocurl "http://localhost:8080/search?q=<crate>&format=json&categories=cargo"cargo
Search npm packagescurl "http://localhost:8080/search?q=<pkg>&format=json&categories=packages"packages
Search code repositoriescurl "http://localhost:8080/search?q=<query>&format=json&categories=repos"repos
Search IT resourcescurl "http://localhost:8080/search?q=<query>&format=json&categories=it"it
Limit resultsAdd &limit=N to URL-
Multiple categories&categories=cat1,cat2-

Available Categories

Run to see all categories:

bash
curl -s "http://localhost:8080/config" | jq '.categories'

Notable categories:

  • general: General web search (default)
  • cargo: Rust crates from crates.io
  • packages: Multi-repo (npm, rubygems, haskell/hoogle, hex, packagist, metacpan, pub.dev, pkg.go.dev, docker hub, alpine, etc.)
  • it: IT/tech resources (includes GitHub, Docker Hub, crates.io)
  • repos: Code repositories
  • scientific publications: Academic papers

JSON Response Structure

json
{
"query": "search term",
"number_of_results": 0,
"results": [
{
"url": "https://example.com",
"title": "Result Title",
"content": "Snippet of content...",
"publishedDate": "2025-01-01T00:00:00",
"engine": "duckduckgo",
"engines": ["duckduckgo", "startpage"],
"score": 3.0,
"category": "general"
}
],
"answers": [], // Direct answers/infoboxes
"suggestions": [], // Search suggestions
"corrections": [], // Query corrections
"infoboxes": [], // Knowledge panels
"unresponsive_engines": []
}

Common Usage Patterns

1. Package Repository Searches

Cargo/Rust crates:

bash
curl -s "http://localhost:8080/search?q=tokio&format=json&categories=cargo" | \
jq '.results[] | {title, url, content}'

npm packages:

bash
curl -s "http://localhost:8080/search?q=express&format=json&categories=packages" | \
jq '.results[] | select(.engines[] == "npm") | {title, url, content}'

PyPI packages (workaround - see below):

bash
# PyPI engine is enabled but not returning results in current SearXNG config
# Use direct API or qypi CLI instead (see PyPI Workaround section)
2. Web Search with Filtering

IT/Tech search:

bash
curl -s "http://localhost:8080/search?q=rust+async&format=json&categories=it" | \
jq '.results[0:5] | .[] | {title, url, engines}'

GitHub repositories:

bash
curl -s "http://localhost:8080/search?q=machine+learning&format=json&categories=repos" | \
jq '.results[] | select(.engines[] == "github") | {title, url}'
3. Extracting Specific Information

Very helpful for avoiding wasting tokens by adding a large amount of data to the context.

Get top 3 results:

bash
curl -s "http://localhost:8080/search?q=rust+ownership&format=json" | \
jq '.results[0:3] | .[] | {title, url, content}'

Check which engines returned results:

bash
curl -s "http://localhost:8080/search?q=python&format=json" | \
jq '.results[0].engines'

Get answer boxes/infoboxes:

bash
curl -s "http://localhost:8080/search?q=rust+language&format=json" | \
jq '.infoboxes, .answers'

Known Issues

  • Cargo category sometimes returns empty: Try categories=packages or categories=it which also include crates.io
  • Rate limiting: SearXNG may rate-limit if too many requests in quick succession

agent-browser

As a last resort, if Jina and SearXNG do not yield useful results, use the agent-browser skill and runtime.

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/joshmock/dotfiles/web-search/badge)](https://verified-skill.com/skills/joshmock/dotfiles/web-search)

Something wrong with this skill or its page? Tell us.