Skill metadata
Reference: full SKILL.md
The following is the complete skill definition that Mibyan loads when this skill is triggered. This is what the agent sees as instructions when the skill is active.
SearXNG Search
Free meta-search using SearXNG — a privacy-respecting, self-hosted search aggregator that queries 70+ search engines simultaneously. No API key required when using a public instance. Can also be self-hosted for full control. Automatically appears as a fallback when the main web search toolset (FIRECRAWL_API_KEY) is not configured.
Configuration
SearXNG requires aSEARXNG_URL environment variable pointing to your SearXNG instance:
Detection Flow
Check what is actually available before choosing an approach:- If
SEARXNG_URLis set and the instance responds, use SearXNG - If
SEARXNG_URLis unset or unreachable, fall back to other available search tools - If the user wants SearXNG specifically, help them set up an instance or find a public one
Method 1: CLI via curl (Preferred)
Usecurl via terminal to call the SearXNG JSON API. This avoids assuming any particular Python package is installed.
Common CLI Flags
Parsing JSON Results
title, url, content (snippet), engine, parsed_url, img_src, thumbnail, author, published_date
Method 2: Python API via requests
Use the SearXNG REST API directly from Python with the requests library:
Self-Hosting SearXNG
To run your own SearXNG instance:https://searxng.example.com(replace with any public instance)
Workflow: Search then Extract
SearXNG returns titles, URLs, and snippets — not full page content. To get full page content, search first and then extract the most relevant URL withweb_extract, browser tools, or curl.
Limitations
- Instance availability: If the SearXNG instance is down or unreachable, search fails. Always check
SEARXNG_URLis set and the instance is reachable. - No content extraction: SearXNG returns snippets, not full page content. Use
web_extract, browser tools, orcurlfor full articles. - Rate limiting: Some public instances limit requests. Self-hosting avoids this.
- Engine coverage: Available engines depend on the SearXNG instance configuration. Some engines may be disabled.
- Results freshness: Meta-search aggregates external engines — result freshness depends on those engines.
Troubleshooting
Pitfalls
- Always set
SEARXNG_URL: Without it, the skill cannot function. - URL-encode queries: Spaces and special characters must be URL-encoded in curl, or use
urllib.parse.quote()in Python. - Use
format=json: The default format may not be machine-readable. Always request JSON explicitly. - Set a timeout: Always use
--max-timeortimeout=to avoid hanging on unreachable instances. - Self-hosting is best: Public instances may go down, rate-limit, or block. A self-hosted instance is reliable.
Instance Discovery
IfSEARXNG_URL is not set and the user asks about SearXNG, help them either:
- Find a public SearXNG instance (search for “public searxng instance”)
- Set up their own with Docker or pip

