From sundial-org-awesome-openclaw-skills-4
Searches the web via a self-hosted SearXNG instance, aggregating results from multiple search engines while preserving privacy.
How this skill is triggered — by the user, by Claude, or both
Slash command
/sundial-org-awesome-openclaw-skills-4:searxng-3The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Search the web using your self-hosted SearXNG instance. Privacy-respecting metasearch that aggregates results from Google, DuckDuckGo, Brave, Startpage, and 70+ other engines.
Search the web using your self-hosted SearXNG instance. Privacy-respecting metasearch that aggregates results from Google, DuckDuckGo, Brave, Startpage, and 70+ other engines.
SearXNG running locally or on a server. Quick Docker setup:
mkdir -p ~/Projects/searxng/searxng
cd ~/Projects/searxng
# Create docker-compose.yml
cat > docker-compose.yml << 'EOF'
services:
searxng:
image: searxng/searxng:latest
container_name: searxng
ports:
- "8080:8080"
volumes:
- ./searxng:/etc/searxng:rw
environment:
- SEARXNG_BASE_URL=http://localhost:8080/
restart: unless-stopped
EOF
# Create settings.yml with JSON API enabled
cat > searxng/settings.yml << 'EOF'
use_default_settings: true
server:
secret_key: "change-me-to-random-string"
bind_address: "0.0.0.0"
port: 8080
search:
safe_search: 0
autocomplete: "google"
default_lang: "en"
formats:
- html
- json
EOF
# Start SearXNG
docker compose up -d
Set the SearXNG URL (defaults to http://localhost:8080):
export SEARXNG_URL="http://localhost:8080"
curl "http://localhost:8080/search?q=your+query&format=json" | jq '.results[:5]'
# General web search
curl "http://localhost:8080/search?q=query&categories=general&format=json"
# Images
curl "http://localhost:8080/search?q=query&categories=images&format=json"
# News
curl "http://localhost:8080/search?q=query&categories=news&format=json"
# Videos
curl "http://localhost:8080/search?q=query&categories=videos&format=json"
# IT/Tech documentation
curl "http://localhost:8080/search?q=query&categories=it&format=json"
# Science/Academic
curl "http://localhost:8080/search?q=query&categories=science&format=json"
curl "http://localhost:8080/search?q=query&language=en-US&format=json"
curl "http://localhost:8080/search?q=query&language=de-DE&format=json"
# Page 2 (results 11-20)
curl "http://localhost:8080/search?q=query&pageno=2&format=json"
Each result includes:
title - Result titleurl - Link to the resultcontent - Snippet/descriptionengines - Array of search engines that returned this resultscore - Relevance score (higher = better)category - Result categoryAdd to your .zshrc or .bashrc:
searxng() {
local query="$*"
local url="${SEARXNG_URL:-http://localhost:8080}"
curl -s "${url}/search?q=$(echo "$query" | sed 's/ /+/g')&format=json" | \
jq -r '.results[:10][] | "[\(.score | floor)] \(.title)\n \(.url)\n \(.content // "No description")\n"'
}
Usage: searxng how to make sourdough bread
# Start
cd ~/Projects/searxng && docker compose up -d
# Stop
docker compose down
# View logs
docker compose logs -f searxng
# Restart
docker compose restart
Container won't start:
docker compose logs searxng
JSON format not working:
Ensure formats: [html, json] is in your settings.yml
No results: Some engines may be rate-limited. Check logs for errors.
npx claudepluginhub sundial-org/awesome-openclaw-skillsSearches the web via a self-hosted SearXNG metasearch engine aggregating Google, Brave, DuckDuckGo, and others. Privacy-respecting, no API keys needed.
Deploys a self-hosted SearXNG meta search engine with Docker Compose and Nginx, covering settings.yml configuration, engine selection, result proxying, and updates.
Searches the web using SearXNG metasearch engine aggregating Google, DuckDuckGo, Bing, and others. No API key needed.