Self-hosted search for OpenClaw

Private search, wired into your agent.

Run SearXNG on your own machine and give OpenClaw a JSON search backend with 70+ engines available, Redis caching, and multi-page results. No search API key, no vendor query quota, no public instance.

  • Ubuntu 20.04+ / Debian 11+
  • MIT licensed
  • v1.1.0
setup / local host bash
$ git clone https://github.com/FiredMosquito831/searxng-openclaw-complete-setup.git
$ cd searxng-openclaw-complete-setup
$ sudo bash scripts/install-all.sh
$ bash scripts/configure-openclaw.sh
$ bash scripts/test-setup.sh
SearXNG :8080 JSON enabled Redis local
70+ engines available in SearXNG
7 engines enabled by the installer
$0 search API fees
127.0.0.1 default bind address

What you get

A complete local search stack, not a snippet.

The installer handles the host. The configuration and scripts handle the handoff to OpenClaw. The guides cover the failures you will actually hit.

Local JSON endpoint

SearXNG on 127.0.0.1:8080 with format=json enabled for agent use and a normal HTML UI for humans.

Redis cache

A local Redis instance caches upstream responses. Nothing external is required and the cache never leaves the host.

systemd service

Starts on boot, restarts on failure, and runs as the unprivileged searxng user with sandboxing directives.

OpenClaw handoff

A configuration script backs up openclaw.json, registers the search plugin, validates it, and restarts the gateway.

Multi-page results

SearXNG's pageno parameter retrieves further pages. The bundled plugin template enables multi-page search and a 100-result default.

Maintenance scripts

Update from upstream, back up configuration with a restore helper, run a health check, or remove everything with confirmation.

Request path

One loopback hop between your agent and the engines.

OpenClaw calls a local JSON endpoint. SearXNG queries the engines you enabled, merges the results, and caches responses in Redis. Nothing is exposed publicly by the supplied configuration.

Client OpenClaw gateway Telegram, CLI, or another channel
Provider searxng-search or the built-in searxng provider
Loopback · JSON SearXNG :8080 HTML UI + format=json
Cache Redis :6379 local, temporary results
Outbound to enabled engines
  • google
  • duckduckgo
  • brave
  • bing
  • wikipedia
  • github
  • youtube
  • + more available
Seven enabled, seventy-plus available.

SearXNG ships with a large engine catalogue. The installer enables a small set so queries stay fast and do not invite rate limits. Add engines in /etc/searxng/settings.yml.

Zero-cost angle

No API keys. Predictable cost.

SearXNG queries the engines for you. You pay for the host you already run, not a metered search API. There is no key rotation, no monthly quota, and no vendor account to manage.

  • No commercial search subscription or per-query billing
  • No API credentials stored in the repository
  • Local Redis cache instead of a hosted cache
  • Change the engine set without changing your agent

"Unlimited" means no quota from this stack. Upstream engines can still rate-limit your server; SearXNG reports them in unresponsive_engines.

Privacy posture

Local by default, honest about the edges.

SearXNG does not log queries or build profiles. Your requests still reach the enabled engines from your server's IP address, so this is not an anonymity network.

Search results are untrusted input. OpenClaw wraps web content in <<<EXTERNAL_UNTRUSTED_CONTENT>>> boundaries and strips chat-template special tokens before the model sees it. That layer does not replace tool allowlists, approvals, or sandboxing.

Read the security model

Start here

Install the service. Then wire the agent.

The installer never touches OpenClaw. A separate script backs up your config, adds the plugin, validates it, and restarts the gateway.