searxng-search
Skill30 starsChanged 10 months agoMITView on GitHub
Enhanced web and package repository search using local SearXNG instance
2 other projects use a version of this.
Adopted by
Most recently taken up by
- mecidov197-cmyk/misting-agent-skillstheir own version, first seen Aug 30, 2026
- Fred-Zhang83/Openclaw-skillstheir own version, first seen Feb 21, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- Fred-Zhang83/Openclaw-skills★ 2same name
- mecidov197-cmyk/misting-agent-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository13 other files it gives its agents.
- AGENTS.mdAGENTS.md
- cursor-agent-supervisorSkill
- github-pr-workflowSkill
- jj-todo-workflowSkill
- nix-profile-managerSkill
- nushell-plugin-builderSkill
- nushell-usageSkill
- package-npm-nixSkill
- read-bin-docsSkill
- research-assistantSkill
- textual-builderSkill
- typst-writerSkill
- working-with-jjSkill
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 4 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 24
Create a minimal config with JSON output enabled
- Very specific: line 25
Start SearXNG on http://localhost:8888
- Distinctive: line 52
Run to see all categories:
- Distinctive: line 180
Create a helper function:
- Distinctive: line 219
PyPI engine enabled but not working: Use direct API or qypi CLI as workaround
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
SearXNG Search
SearXNG is a privacy-respecting metasearch engine that you can run locally. It aggregates results from multiple search engines and package repositories, returning clean JSON output.
Quick Start
Start SearXNG:
start-searxng --detachThis will:
- Auto-detect podman or docker
- Create a minimal config with JSON output enabled
- Start SearXNG on
http://localhost:8888 - Wait until ready
Stop SearXNG:
podman stop searxng # or: docker stop searxngCustom port:
start-searxng --port 9999 --detachQuick Reference
| Task | Command | Category |
| General web search | curl "http://localhost:8888/search?q=<query>&format=json" | general |
| Search Cargo/crates.io | curl "http://localhost:8888/search?q=<crate>&format=json&categories=cargo" | cargo |
| Search npm packages | curl "http://localhost:8888/search?q=<pkg>&format=json&categories=packages" | packages |
| Search code repositories | curl "http://localhost:8888/search?q=<query>&format=json&categories=repos" | repos |
| Search IT resources | curl "http://localhost:8888/search?q=<query>&format=json&categories=it" | it |
| Limit results | Add &limit=N to URL | - |
| Multiple categories | &categories=cat1,cat2 | - |
Available Categories
Run to see all categories:
curl -s "http://localhost:8888/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
- code: Code search
- scientific publications: Academic papers
- news, videos, images, books, etc.
See package-engine-status.md for comprehensive package search testing results.
JSON Response Structure
{
"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:
curl -s "http://localhost:8888/search?q=tokio&format=json&categories=cargo" | \
jq '.results[] | {title, url, content}'npm packages:
curl -s "http://localhost:8888/search?q=express&format=json&categories=packages" | \
jq '.results[] | select(.engines[] == "npm") | {title, url, content}'PyPI packages (workaround - see below):
# 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:
curl -s "http://localhost:8888/search?q=rust+async&format=json&categories=it" | \
jq '.results[0:5] | .[] | {title, url, engines}'GitHub repositories:
curl -s "http://localhost:8888/search?q=machine+learning&format=json&categories=repos" | \
jq '.results[] | select(.engines[] == "github") | {title, url}'3. Extracting Specific Information
Get top 3 results:
curl -s "http://localhost:8888/search?q=rust+ownership&format=json" | \
jq '.results[0:3] | .[] | {title, url, content}'Check which engines returned results:
curl -s "http://localhost:8888/search?q=python&format=json" | \
jq '.results[0].engines'Get answer boxes/infoboxes:
curl -s "http://localhost:8888/search?q=rust+language&format=json" | \
jq '.infoboxes, .answers'PyPI Workaround
Since PyPI is not returning results in SearXNG (despite being enabled), use these alternatives:
Option 1: Direct PyPI JSON API
# 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'Option 2: qypi CLI tool
# Install
uvx qypi search pandas --json
# Get package info
uvx qypi info requests --json
# List releases
uvx qypi releases flask --jsonSee references/pypi-direct-search.md for more details.
Integration with Nushell
Create a helper function:
def 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
}Usage:
searx "tokio async" --category cargo --limit 5
searx "flask tutorial" --category generalDebugging
Check SearXNG config:
curl -s "http://localhost:8888/config" | jq '.engines[] | select(.name == "pypi")'Check for engine errors:
curl -s "http://localhost:8888/search?q=test&format=json" | jq '.unresponsive_engines'Test specific engine:
curl -s "http://localhost:8888/search?q=flask&format=json&engines=pypi" | jq .Known Issues
- PyPI engine enabled but not working: Use direct API or qypi CLI as workaround
- Cargo category sometimes returns empty: Try
categories=packagesorcategories=itwhich also include crates.io - Rate limiting: SearXNG may rate-limit if too many requests in quick succession
Configuration
Using the Helper Script (Recommended)
The start-searxng script creates a minimal configuration automatically:
start-searxng --helpDefault config includes:
use_default_settings: true(inherits all SearXNG defaults)- JSON format enabled
- Rate limiting disabled (for local use)
- Secret key (change in production!)
Using Your Own Config
start-searxng --config /path/to/your/config/dirYour config directory should contain settings.yml.
Manual Container Start
# 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:latestCheck Logs
podman logs searxng # or: docker logs searxngAdvanced Config
See SearXNG Settings Documentation for all options.
Minimal config to add JSON output to defaults:
use_default_settings: true
search:
formats:
- html
- jsonDoes it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

