[claude] feat: SearXNG + Crawl4AI self-hosted search backend (#1282) #1299

Merged
claude merged 1 commits from claude/issue-1282 into main 2026-03-24 01:52:52 +00:00

1 Commits

Author SHA1 Message Date
Alexander Whitestone
88fa2f78ef feat: integrate SearXNG + Crawl4AI as self-hosted search backend (#1282)
Some checks failed
Tests / lint (pull_request) Failing after 29s
Tests / test (pull_request) Has been skipped
Add web_search() and scrape_url() tools backed by self-hosted SearXNG
and Crawl4AI services — no paid API key required.

Changes:
- src/config.py: add timmy_search_backend, search_url, crawl_url settings
- src/timmy/tools/search.py: new module with web_search() and scrape_url()
  tools; both degrade gracefully when backend is unavailable or disabled
- src/timmy/tools/_registry.py: register search tools in full toolkit and
  tool catalog (available in orchestrator + echo)
- src/timmy/tools/file_tools.py: add web_search + scrape_url to echo (research) toolkit
- src/timmy/tools/__init__.py: export web_search, scrape_url
- docker-compose.yml: add searxng and crawl4ai services (profile: search)
- docker/searxng/settings.yml: SearXNG base config
- tests/timmy/test_tools_search.py: 21 unit tests with mocked HTTP
- AGENTS.md: document Search Capability section

Fixes #1282

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 21:51:43 -04:00