Searxng Web Search

Plugin bundle (nix)

Search the web using SearXNG. Use when you need current information, research topics, find documentation, verify facts, or look up anything beyond your knowledge. Returns ranked results with titles, URLs, and content snippets.

Bundles the skill pack, CLI binary, and config requirements in one Nix install.
MIT-0 · Free to use, modify, and redistribute. No attribution required.
3 · 3.5k · 22 current installs · 27 all-time installs
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
high confidence
Purpose & Capability
Name/description match the declared requirements: the skill needs the 'bb' (babashka) binary and a SEARXNG_URL to talk to a SearXNG instance. Those two requirements are proportionate to a client that queries a SearXNG JSON API.
Instruction Scope
Runtime instructions are narrowly scoped to performing searches via a babashka script and handling rate limiting. They do reference reading/writing a local filesystem-based state file (.searxng-last-request) for rate limiting and suggest troubleshooting commands (curl, systemctl, journalctl) that an agent could run, so the agent may perform local calls if instructed. The script will perform network requests to the SEARXNG_URL (defaulting to http://localhost:8888 if unset).
!
Install Mechanism
There is no install spec (instruction-only), which is low risk in general — but the SKILL.md repeatedly instructs running 'bb scripts/search.clj' while no scripts/search.clj file is bundled with the skill. That mismatch means the skill as packaged cannot operate without external files and prevents review of the actual executable logic; this is an important incoherence.
Credentials
Only SEARXNG_URL is required, which is appropriate for a web-search client. No unrelated secrets, keys, or system config paths are requested. Note: the skill falls back to localhost if SEARXNG_URL is unset, which could cause unexpected network access to local services.
Persistence & Privilege
The skill does not request elevated or persistent platform privileges and is not always-enabled. It will create a local rate-limit state file (.searxng-last-request) per its instructions; this is limited persistence but should be disclosed to users. Autonomous invocation is allowed (platform default) but not by itself a reason to flag the skill.
What to consider before installing
This skill appears to be a straightforward SearXNG client, but it has a critical inconsistency: SKILL.md instructs running 'bb scripts/search.clj' yet the package does not include scripts/search.clj. Before installing or enabling the skill, do the following: 1) Ask the publisher to provide the missing scripts/search.clj and any other runtime files so you can inspect the code. 2) If you get the script, review it for network endpoints, credential usage, filesystem writes, and any calls to arbitrary executables. 3) Ensure 'bb' (babashka) is the intended runtime and that SEARXNG_URL points to a trusted SearXNG instance (avoid pointing it at unknown external hosts). 4) Be aware the script writes a local file (.searxng-last-request) for rate limiting; if that is a concern, run it in a controlled directory or sandbox. 5) If the publisher cannot provide the script, treat the skill as incomplete/untrustworthy because its runtime behavior cannot be audited.

Like a lobster shell, security has layers — review code before you run it.

Current versionv0.1.0
Plugin bundle (nix)
Skill pack · CLI binary · Config
SKILL.mdCLIConfig
latestvk978a5vz1ybjfcd7ypbng8bgqs809br6

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

🔍 Clawdis
Binsbb
EnvSEARXNG_URL

Install via Nix

nix-clawdbot

programs.clawdbot.plugins = [
  {
    source = "babashka";

  }
];

SKILL.md

SearXNG Web Search

Search the web using a self-hosted SearXNG instance. This skill provides access to web search results through the SearXNG JSON API, with built-in rate limiting, error handling, and result formatting.

When to Use

Use this skill when you need to:

  • Find current information or recent news
  • Research topics beyond your knowledge cutoff
  • Look up documentation or technical references
  • Verify facts or check current status
  • Find URLs or resources on specific topics
  • Search for code examples or solutions

Configuration

Set the SEARXNG_URL environment variable to your SearXNG instance:

export SEARXNG_URL="http://localhost:8888"

Or use the default (http://localhost:8888) if not set.

Usage

Execute the search script with your query:

bb scripts/search.clj "your search query"

Advanced Options

Pass additional parameters as JSON:

bb scripts/search.clj "your query" '{"category": "news", "time_range": "day", "num_results": 10}'

Available options:

  • category - Filter by category: general, news, images, videos, it, science
  • time_range - Time filter: day, week, month, year
  • language - Language code (default: en)
  • num_results - Number of results to return (default: 5)

Output Format

The script returns formatted search results as text:

Search Results for "your query"
Found 42 total results

1. Result Title [Score: 1.85]
   URL: https://example.com/page
   Description snippet from the page...
   Engines: google, bing

2. Another Result [Score: 1.62]
   ...

Error Handling

The script handles common errors gracefully:

  • Network timeouts (30s timeout)
  • SearXNG unavailable (clear error message)
  • Invalid queries (error details)
  • Rate limiting (429 responses)
  • Empty results (informative message)

Rate Limiting

The script implements basic rate limiting:

  • Minimum 1 second between requests
  • Uses filesystem-based state (.searxng-last-request)
  • Prevents accidental spam

Examples

Basic Search

bb scripts/search.clj "NixOS configuration"

News Search

bb scripts/search.clj "AI developments" '{"category": "news", "time_range": "week"}'

Technical Search

bb scripts/search.clj "babashka http client" '{"category": "it", "num_results": 3}'

Recent Results Only

bb scripts/search.clj "product launch" '{"time_range": "day"}'

Troubleshooting

"SEARXNG_URL not set"

  • Set the environment variable: export SEARXNG_URL="http://localhost:8888"

Connection timeout

  • Check that SearXNG is running: curl $SEARXNG_URL/search?q=test&format=json
  • Verify firewall settings
  • Check service status: systemctl status searx

Empty results

  • Try a broader query
  • Remove filters and try again
  • Check SearXNG logs: journalctl -u searx -n 50

Rate limit errors

  • Wait a few seconds between searches
  • The script enforces minimum 1s delay automatically

Implementation Notes

The search script (scripts/search.clj) uses:

  • babashka.http-client for HTTP requests
  • Clojure's cheshire.core for JSON parsing
  • Filesystem-based rate limiting
  • 30-second timeout with proper error messages
  • Result scoring and sorting for best results first

For detailed API documentation, see references/api-guide.md.

Files

2 total
Select a file
Select a file to preview.

Comments

Loading comments…