Loading...
Loading...
Search the web and scrape pages using the local tool stack: SearXNG (meta-search), Lightpanda (fast headless fetch), and Agent-Browser (full browser automation). This is your DEFAULT web skill — use it whenever you need to look something up, research a topic, fetch a webpage, extract content from a URL, check current information, find documentation, do competitive research, or answer any question that benefits from live web data. Triggers on any form of: search for, look up, google, find out, research, what's the latest on, fetch this page, scrape this site, check this URL, pull info from, web search, or any task where current web information would improve your answer. Even if the user doesn't explicitly ask you to search — if answering well requires current info you don't have, use this skill. NOT for interactive browser automation like form filling or clicking (use [[agent-browser]] or [[browser-use]]).
npx skill4agent add signet-ai/signetai web-search# Basic search
curl -s "http://localhost:8888/search?q=QUERY&format=json" | python3 -c "
import json, sys
data = json.load(sys.stdin)
for r in data.get('results', [])[:10]:
print(r.get('title', ''))
print(r.get('url', ''))
print(r.get('content', '')[:200])
print()
"&categories=generalnewsimagesfilesscienceitmusicvideos# News search
curl -s "http://localhost:8888/search?q=QUERY&format=json&categories=news"
# Multiple categories
curl -s "http://localhost:8888/search?q=QUERY&format=json&categories=science,it"&pageno=2# Fetch as markdown (best for reading/summarizing)
lightpanda fetch --dump markdown https://example.com
# Fetch as HTML (when you need structure)
lightpanda fetch --dump html https://example.com
# Semantic tree (useful for understanding page layout)
lightpanda fetch --dump semantic_tree https://example.com
# Strip unnecessary elements
lightpanda fetch --dump markdown --strip_mode js,css https://example.com
# Include iframe content
lightpanda fetch --dump markdown --with_frames https://example.com# Open and snapshot
agent-browser open https://example.com
agent-browser wait --load networkidle
agent-browser snapshot -i
# Get text content
agent-browser get text body
# Interact with elements
agent-browser fill @e1 "search query"
agent-browser click @e2
# Screenshot for visual inspection
agent-browser screenshot --annotate
# Always close when done
agent-browser closeagent-browser state save auth.json
# Later:
agent-browser state load auth.jsonweb-search~/.agents/tools/web-searchweb-search# Search only
web-search "hospice compliance CMS 2026"
# Search + scrape top results
web-search "hospice compliance CMS 2026" --scrape -n 3
# Fetch a single URL
web-search --fetch https://example.com
# Use Agent-Browser for JS-heavy pages
web-search --fetch https://spa-app.com --browser
# News search + scrape
web-search "CMS hospice updates" --categories news --scrape# 1. Search
curl -s "http://localhost:8888/search?q=topic+here&format=json" > /tmp/results.json
# 2. Review results, pick the best URLs
# 3. Fetch the good ones
lightpanda fetch --dump markdown https://good-result.com# News category + recent results
curl -s "http://localhost:8888/search?q=topic&format=json&categories=news"# Search, extract URLs, fetch each
curl -s "http://localhost:8888/search?q=topic&format=json" | \
python3 -c "import json,sys; [print(r['url']) for r in json.load(sys.stdin)['results'][:5]]" | \
while read url; do
echo "=== $url ==="
lightpanda fetch --dump markdown "$url" 2>/dev/null
done# Lightpanda returned nothing useful? Switch to agent-browser
agent-browser open https://stubborn-spa.com
agent-browser wait --load networkidle
agent-browser get text body > /tmp/page-content.txt
agent-browser closehttp://localhost:8888docker ps | grep searxngdocker start searxng/opt/homebrew/bin/lightpanda/opt/homebrew/bin/agent-browserweb-search~/.agents/tools/web-search/opt/homebrew/bin/web-searchcontentpython3 -c "import urllib.parse; print(urllib.parse.quote('my query'))"scripts/web-search~/.agents/tools/web-searchreferences/infrastructure.mdreferences/searxng-settings.yml~/.agents/searxng/config/settings.ymldocker restart searxng