@jwongart/searxng-search
v0.2.0
Published
A web search tool that runs independently of OpenClaw's built-in web_search and uses a local SearXNG search engine for completely free searches.
Downloads
114
Maintainers
Readme
searxng-search
OpenClaw network-search plugin that provides an independent searxng_search tool backed by a local SearXNG search engine. It runs separately from OpenClaw's built-in web_search provider and is completely free to use.
This plugin is intentionally separate from OpenClaw's built-in web_search provider selection. It can stay available as searxng_search while web_search uses another provider such as Codex Hosted Search.
Identity
- Plugin ID:
searxng-search - Package name:
@jwongart/searxng-search - Version:
0.2.0 - Tool ID:
searxng_search - Tool label:
SearXNG Search
Features
- Queries a local or private SearXNG instance.
- Supports SearXNG categories, engines, time filters, language, safe search, and pagination.
- Returns readable text plus structured call details.
- Uses
SEARXNG_BASE_URLas a fallback when plugin config omitsbase_url.
Install
openclaw plugins install npm:@jwongart/[email protected]Build
npm install
npm run build
npm run plugin:validateOpenClaw Manifest
The plugin declares one tool:
{
"contracts": {
"tools": ["searxng_search"]
}
}Runtime entry:
{
"openclaw": {
"extensions": ["./dist/index.js"]
}
}Configuration
Configure the plugin under plugins.entries.searxng-search.config:
{
"plugins": {
"entries": {
"searxng-search": {
"enabled": true,
"config": {
"base_url": "http://127.0.0.1:8088",
"timeout_ms": 30000,
"default_count": 10
}
}
}
}
}Config fields:
| Field | Type | Default | Description |
| --- | --- | --- | --- |
| base_url | string | http://127.0.0.1:8088 | SearXNG instance base URL. Falls back to SEARXNG_BASE_URL. |
| timeout_ms | integer | 30000 | Request timeout in milliseconds. |
| default_count | integer | 10 | Default number of results returned when tool calls omit count. |
Tool: searxng_search
Parameters:
| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| query | string | Yes | Search query string. |
| count | integer | No | Maximum number of results to return, 1-50. |
| categories | string[] | No | SearXNG categories to search. |
| engines | string[] | No | Specific SearXNG engines to use, such as bing, brave, or duckduckgo. |
| time_range | string | No | One of day, week, month, year. |
| language | string | No | Language code such as en, zh, ja, de, or fr. |
| safesearch | number | No | 0 off, 1 moderate, 2 strict. |
| page | integer | No | SearXNG result page number. |
Supported categories:
general, images, videos, news, map, music, it, files, books, science,
social media, repos, packages, currency, weather, translateExamples:
{
"query": "artificial intelligence"
}{
"query": "AI breakthrough",
"categories": ["news"],
"time_range": "week",
"count": 5
}{
"query": "Python tutorial",
"categories": ["general", "it"],
"engines": ["duckduckgo"],
"language": "en",
"safesearch": 1,
"page": 1
}SearXNG Requirement
Your SearXNG instance must allow JSON output. In SearXNG settings.yml, include:
search:
formats:
- html
- jsonResponse Shape
The tool returns:
content: formatted text with query, total result count, result titles, URLs, snippets, categories, engines, and optional suggestions.details: structured metadata including provider, base URL, query, counts, category/engine filters, language, safe search, and page.
License
MIT
