feat(web): add SearXNG as free local search backend#2
Open
directorboint-arch wants to merge 2 commits into
Open
feat(web): add SearXNG as free local search backend#2directorboint-arch wants to merge 2 commits into
directorboint-arch wants to merge 2 commits into
Conversation
added 2 commits
April 28, 2026 16:42
- tools/tts_tool.py: Include 'signal' in want_opus check so TTS tools generate Opus (.ogg) audio for Signal just like Telegram, enabling proper voice message format. - gateway/platforms/signal.py: Rewrite send_voice() to pass voiceNote=true to signal-cli's JSON-RPC API so Signal renders audio as inline voice messages with waveform playback instead of plain file attachments. Includes proper size validation and typing indicators. - website/docs/user-guide/messaging/signal.md: Update docs to reflect that send_voice now delivers inline voice notes rather than attachments.
Add SearXNG support as a zero-API-key, fully self-hosted web search
backend. When SEARXNG_URL is set in the environment, SearXNG becomes
the highest-priority search backend ahead of Firecrawl, Parallel,
Tavily, and Exa - no paid API required.
Changes:
- Add ${_searxng_search()} function that queries SearXNG JSON API
- Register 'searxng' in _get_backend() and _is_backend_available()
- Dispatch SearXNG in web_search_tool() alongside existing backends
- SearXNG auto-detected via SEARXNG_URL env var
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add SearXNG as a zero-cost, fully self-hosted web search backend for Hermes Agent.
When
SEARXNG_URLis set in the environment (e.g.http://localhost:4000), SearXNG becomes the highest-priority search backend — ahead of Firecrawl, Parallel, Tavily, and Exa. No paid API keys required.Changes
_searxng_search(query, limit)— new function that queries the SearXNG JSON API and normalizes results to the standard response format_get_backend()— registerssearxngas a valid configured backend and adds it as the first priority in auto-detection viaSEARXNG_URLenv var_is_backend_available()— adds availability check for SearXNG backendweb_search_tool()— adds dispatch branch for SearXNG alongside existing backends (Parallel, Exa, Tavily, Firecrawl)Why This Matters
SearXNG is a privacy-respecting, self-hosted metasearch engine. This change lets users run a local instance and get web search for free with zero API key costs, zero rate limits, and full privacy — your queries never leave your own server.
Configuration
Set
SEARXNG_URLin your.env:Or set
web.backend = searxnginconfig.yamlto force it explicitly.SearXNG auto-detects and takes priority over all paid backends. If you want to use a different backend, configure it explicitly in
config.yaml.