skills/walterra/agent-tools/searxng-search

searxng-search

SKILL.md

SearXNG Search

Local web search using SearXNG metasearch engine. No external API keys required.

Prerequisites

  • SearXNG instance running locally (default: http://localhost:8080) or accessible via network
  • Node.js 18+ installed

Quick SearXNG Setup

The JSON API must be enabled in SearXNG settings (it's disabled by default). This skill includes a pre-configured settings.yml that enables it.

# Using Docker (recommended) - mount the included settings to enable JSON API
docker run -d -p 8080:8080 --name searxng \
  -v {baseDir}/searxng/settings.yml:/etc/searxng/settings.yml:ro \
  searxng/searxng

# Or see https://docs.searxng.org/admin/installation.html

Note: The default SearXNG image only enables HTML format. Without the custom settings, the JSON API will return HTTP 403 Forbidden.

Setup

Before first use, install dependencies:

cd {baseDir} && npm install

Environment

The skill auto-detects whether it's running locally or in Docker:

Environment Default URL How detected
Local http://localhost:8080 No /.dockerenv file
Docker http://searxng:8080 /.dockerenv exists

Override with SEARXNG_URL environment variable if needed.

Search

{baseDir}/scripts/search.js "query"                    # Basic search (5 results)
{baseDir}/scripts/search.js "query" -n 10              # More results
{baseDir}/scripts/search.js "query" --content          # Include page content as markdown
{baseDir}/scripts/search.js "query" -n 3 --content     # Combined

Examples

# Search for documentation
{baseDir}/scripts/search.js "typescript generics tutorial"

# Research with content extraction
{baseDir}/scripts/search.js "react server components" -n 5 --content

# Find API references
{baseDir}/scripts/search.js "site:docs.github.com REST API" -n 3

Extract Page Content

Fetch a URL and extract readable content as markdown:

{baseDir}/scripts/content.js https://example.com/article

Examples

# Extract documentation page
{baseDir}/scripts/content.js https://docs.python.org/3/tutorial/classes.html

# Extract blog post
{baseDir}/scripts/content.js https://blog.example.com/some-article

Output Format

Search Results

--- Result 1 ---
Title: Page Title
Link: https://example.com/page
Snippet: Description from search results
Content: (if --content flag used)
  Markdown content extracted from the page...

--- Result 2 ---
...

Content Extraction

Title: Article Title
URL: https://example.com/article

--- Content ---
Markdown content of the page...

Advantages

  • ✅ No API keys required
  • ✅ No rate limits
  • ✅ Privacy-preserving (local instance)
  • ✅ Aggregates results from multiple search engines
  • ✅ Fast and reliable
  • ✅ Works locally and in Docker containers

When to Use

  • Searching for documentation or API references
  • Looking up facts or current information
  • Researching libraries, frameworks, or tools
  • Fetching content from specific URLs
  • Any task requiring web search without external dependencies

Troubleshooting

Connection refused

SearXNG is not running. Start it with:

docker run -d -p 8080:8080 --name searxng \
  -v {baseDir}/searxng/settings.yml:/etc/searxng/settings.yml:ro \
  searxng/searxng

HTTP 403 Forbidden

The JSON API is not enabled. The default SearXNG only allows HTML format. Ensure you mount the included settings.yml when starting the container:

docker stop searxng && docker rm searxng
docker run -d -p 8080:8080 --name searxng \
  -v {baseDir}/searxng/settings.yml:/etc/searxng/settings.yml:ro \
  searxng/searxng

Custom SearXNG URL

Set the environment variable:

export SEARXNG_URL=http://your-searxng-host:8080
Weekly Installs
15
GitHub Stars
7
First Seen
Jan 29, 2026
Installed on
cursor13
openclaw12
gemini-cli12
github-copilot12
codex12
kimi-cli12