Loading...
Loading...
Enhanced web and package repository search using local SearXNG instance
npx skill4agent add ypares/agent-skills searxng-searchstart-searxng --detachhttp://localhost:8888podman stop searxng # or: docker stop searxngstart-searxng --port 9999 --detach| Task | Command | Category |
|---|---|---|
| General web search | | |
| Search Cargo/crates.io | | |
| Search npm packages | | |
| Search code repositories | | |
| Search IT resources | | |
| Limit results | Add | - |
| Multiple categories | | - |
curl -s "http://localhost:8888/config" | jq '.categories'{
"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": []
}curl -s "http://localhost:8888/search?q=tokio&format=json&categories=cargo" | \
jq '.results[] | {title, url, content}'curl -s "http://localhost:8888/search?q=express&format=json&categories=packages" | \
jq '.results[] | select(.engines[] == "npm") | {title, url, content}'# PyPI engine is enabled but not returning results in current SearXNG config
# Use direct API or qypi CLI instead (see PyPI Workaround section)curl -s "http://localhost:8888/search?q=rust+async&format=json&categories=it" | \
jq '.results[0:5] | .[] | {title, url, engines}'curl -s "http://localhost:8888/search?q=machine+learning&format=json&categories=repos" | \
jq '.results[] | select(.engines[] == "github") | {title, url}'curl -s "http://localhost:8888/search?q=rust+ownership&format=json" | \
jq '.results[0:3] | .[] | {title, url, content}'curl -s "http://localhost:8888/search?q=python&format=json" | \
jq '.results[0].engines'curl -s "http://localhost:8888/search?q=rust+language&format=json" | \
jq '.infoboxes, .answers'# Search (limited to simple package name matching)
curl -s "https://pypi.org/pypi/<package>/json" | jq '.info | {name, summary, version, home_page}'
# Example:
curl -s "https://pypi.org/pypi/requests/json" | jq '.info.summary'# Install
uvx qypi search pandas --json
# Get package info
uvx qypi info requests --json
# List releases
uvx qypi releases flask --jsonreferences/pypi-direct-search.mddef searx [
query: string,
--category (-c): string = "general",
--limit (-l): int = 10
] {
http get $"http://localhost:8888/search?q=($query | url encode)&format=json&categories=($category)"
| get results
| first $limit
| select title url content engines
}searx "tokio async" --category cargo --limit 5
searx "flask tutorial" --category generalcurl -s "http://localhost:8888/config" | jq '.engines[] | select(.name == "pypi")'curl -s "http://localhost:8888/search?q=test&format=json" | jq '.unresponsive_engines'curl -s "http://localhost:8888/search?q=flask&format=json&engines=pypi" | jq .categories=packagescategories=itstart-searxngstart-searxng --helpuse_default_settings: truestart-searxng --config /path/to/your/config/dirsettings.yml# Create config
mkdir -p /tmp/searxng-config
cat > /tmp/searxng-config/settings.yml << 'EOF'
use_default_settings: true
search:
formats:
- html
- json
server:
secret_key: "change-me-in-production"
bind_address: "0.0.0.0"
port: 8080
EOF
# Start with podman
podman run --rm -d --name searxng \
-p 8888:8080 \
-v /tmp/searxng-config:/etc/searxng:Z \
docker.io/searxng/searxng:latest
# Or with docker
docker run --rm -d --name searxng \
-p 8888:8080 \
-v /tmp/searxng-config:/etc/searxng \
docker.io/searxng/searxng:latestpodman logs searxng # or: docker logs searxnguse_default_settings: true
search:
formats:
- html
- json