Skip to content

feat(search): add SearXNG search provider support - #151

Open
alanpeng wants to merge 9 commits into
deer-flow:mainfrom
alanpeng:feat/searxng-pr
Open

feat(search): add SearXNG search provider support#151
alanpeng wants to merge 9 commits into
deer-flow:mainfrom
alanpeng:feat/searxng-pr

Conversation

@alanpeng

Copy link
Copy Markdown

Summary

Adds SearXNG as a third search provider for the built-in web_search tool (alongside Brave and Firecrawl). SearXNG is a self-hosted, privacy-respecting metasearch engine that exposes a JSON API — no API key required.

What changes

  • Search settings (SearchSettings): new searxngBaseUrl field, default http://localhost:8080, persisted via the existing settings manager.
  • Runtime (packages/runtime): web_search dispatches to the SearXNG JSON API (GET {base}/search?q=...&format=json&language=auto) with Accept: application/json and X-Forwarded-For/X-Real-IP: 127.0.0.1 headers. Non-OK responses surface the SearXNG error body instead of a bare status message.
  • Settings UI (desktop): SearXNG option in the search provider dropdown + a service-URL field shown when SearXNG is selected.
  • LangGraph generator parity: the generated Python web_search.py mirrors the TS implementation (same URL/params/headers/error handling), per the project's generator-parity requirement; generated sources regenerated.
  • Codegen (generate-project-button): the generated project env now forwards SEARXNG_BASE_URL instead of writing undefined.
  • Tests: TS + generated-Python coverage for query building, result parsing, non-OK error bodies, and settings persistence.

Configuration

Set the provider to SearXNG in Settings → Search and point the service URL at a self-hosted SearXNG instance (default http://localhost:8080), or set SEARXNG_BASE_URL in the environment.

alanpeng and others added 9 commits August 22, 2026 11:30
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
…tings

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Task 1 made SearchSettings.searxngBaseUrl required; latent call sites the
changed-file checks never saw (untouched test fixtures and the playground
codegen button) failed the full-repo typecheck that CI runs. Also fixes a
real gap: a searxng provider generating a project would have written
SEARXNG_BASE_URL=undefined into .env.

Co-Authored-By: Claude <noreply@anthropic.com>
@alanpeng

Copy link
Copy Markdown
Author

Friendly ping for review — happy to iterate on anything.

Short version: adds searxng as a built-in web-search provider for self-hosted SearXNG instances — provider entry + base-URL field in search settings, JSON format API integration in the built-in web tools, and the matching backend in the LangGraph generator so generated projects stay in parity. No new npm dependencies; failures surface the service's error body instead of failing silently. Design notes and the test matrix are in the repo (docs/superpowers/specs/, packages/core/tests).

This is one of three open PRs from us (#150 Windows support, #152 i18n) — independent of each other, any review/merge order works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant