Skip to content
Back to skills

Searxng 3

ASecurity

Search the web using a self-hosted SearXNG instance. Privacy-respecting metasearch that aggregates results from multiple engines.

  • 651 stars
  • 0 votes
  • 0 copies
  • 5 views
  • Added February 10, 2026
toolsgoshellbashdockerapidocumentation

Works with

  • api

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add sundial-org/awesome-openclaw-skills --skill searxng-3 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Searxng 3?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Searxng 3
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sundial-org-searxng-3/badge)](https://www.skillsdirectory.com/skills/sundial-org-searxng-3)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: searxng-3
description: Search the web using a self-hosted SearXNG instance. Privacy-respecting metasearch that aggregates results from multiple engines.
metadata:
  clawdbot:
    config:
      optionalEnv:
        - SEARXNG_URL
---

# SearXNG Search 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.

## Prerequisites

SearXNG running locally or on a server. Quick Docker setup:

```bash
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
```

## Configuration

Set the SearXNG URL (defaults to http://localhost:8080):
```bash
export SEARXNG_URL="http://localhost:8080"
```

## Usage Examples

### Basic Search
```bash
curl "http://localhost:8080/search?q=your+query&format=json" | jq '.results[:5]'
```

### Search with Categories
```bash
# 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"
```

### Search with Language/Region
```bash
curl "http://localhost:8080/search?q=query&language=en-US&format=json"
curl "http://localhost:8080/search?q=query&language=de-DE&format=json"
```

### Paginated Results
```bash
# Page 2 (results 11-20)
curl "http://localhost:8080/search?q=query&pageno=2&format=json"
```

## Response Format

Each result includes:
- `title` - Result title
- `url` - Link to the result  
- `content` - Snippet/description
- `engines` - Array of search engines that returned this result
- `score` - Relevance score (higher = better)
- `category` - Result category

## Shell Function

Add to your `.zshrc` or `.bashrc`:

```bash
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`

## Docker Management

```bash
# Start
cd ~/Projects/searxng && docker compose up -d

# Stop
docker compose down

# View logs
docker compose logs -f searxng

# Restart
docker compose restart
```

## Troubleshooting

**Container won't start:**
```bash
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.

## Why SearXNG?

- **Privacy**: No tracking, no ads, no data collection
- **Aggregation**: Combines results from 70+ search engines
- **Self-hosted**: Your data stays on your machine
- **API**: JSON output for automation
- **Free**: No API keys or rate limits

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.