Skip to main content

webserp

Metasearch CLI — query multiple search engines in parallel with browser impersonation.

Like grep for the web. Searches Google, DuckDuckGo, Brave, Yahoo, Mojeek, Startpage, and Presearch simultaneously, deduplicates results, and returns clean JSON.

Why webserp?

Most search scraping tools get rate-limited and blocked because they use standard HTTP libraries. webserp uses curl_cffi to impersonate real browsers (Chrome TLS/JA3 fingerprints), making requests indistinguishable from a human browsing.

  • 7 search engines queried in parallel
  • Browser impersonation via curl_cffi — bypasses bot detection
  • Fault tolerant — if one engine fails, others still return results
  • SearXNG-compatible JSON output format
  • No API keys — scrapes search engine HTML directly
  • Fast — parallel async requests, typically completes in 2-5s

Install

pip install webserp

Usage

# Search all engines
webserp "how to deploy docker containers"

# Search specific engines
webserp "python async tutorial" --engines google,brave,duckduckgo

# Limit results per engine
webserp "rust vs go" --max-results 5

# Show which engines succeeded/failed
webserp "test query" --verbose

# Use a proxy
webserp "query" --proxy "socks5://127.0.0.1:1080"

Output Format

JSON output matching SearXNG's format:

{
  "query": "deployment issue",
  "number_of_results": 42,
  "results": [
    {
      "title": "How to fix Docker deployment issues",
      "url": "https://example.com/docker-fix",
      "content": "Common Docker deployment problems and solutions...",
      "engine": "google"
    }
  ],
  "suggestions": [],
  "unresponsive_engines": []
}

Options

Flag Description Default
-e, --engines Comma-separated engine list all
-n, --max-results Max results per engine 10
--timeout Per-engine timeout (seconds) 10
--proxy Proxy URL for all requests none
--verbose Show engine status in stderr false
--version Print version

Engines

google, duckduckgo, brave, yahoo, mojeek, startpage, presearch

For OpenClaw and AI agents

Built for AI agents. Tools like OpenClaw and other AI agents need reliable web search without API keys or rate limits. webserp uses curl_cffi to mimic real browser fingerprints — results like a browser, speed like an API. It queries 7 engines in parallel, so even if one gets rate-limited, results still come back.

Why a CLI tool instead of a Python library?

A CLI tool keeps web search out of the agent's process. The agent calls webserp, gets JSON back, and the process exits — no persistent HTTP sessions, no in-process state, no import overhead. Agents that never need web search pay zero cost.

Example agent use cases

  • Research — searching the web for current information before answering user questions
  • Fact checking — verifying claims against multiple search engines
  • Link discovery — finding relevant URLs, documentation, or source code
  • News monitoring — checking for recent events or updates on a topic
# Agent searching for current information
webserp "latest python 3.14 release date" --max-results 5

# Searching multiple engines for diverse results
webserp "docker networking troubleshooting" --engines google,brave,duckduckgo --max-results 3

# Quick search with verbose to see which engines responded
webserp "CVE-2024 critical vulnerabilities" --verbose --max-results 5

License

MIT

Metadata

Release files for webserp 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for webserp 0.1.4
File Size Uploaded
webserp-0.1.4.tar.gz 12.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for webserp 0.1.4
File Interpreter ABI Platform
webserp-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 28.4 kB

Release files / webserp-0.1.4.tar.gz

Download URL webserp-0.1.4.tar.gz
Size 12.5 kB
Tags Source
SHA-256 checksum
How to use checksums
3f282bc7420f24b8d8bc0aceb79167fad7c4c49570decfb225efdb44c79f8513
BLAKE2b-256 checksum
How to use checksums
bc7edf6664d31d0de920b7af87e02f79b9319d4fed54b8ef7507638529bac8c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / webserp-0.1.4-py3-none-any.whl

Download URL webserp-0.1.4-py3-none-any.whl
Size 15.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7f30399621c4a243625368224f96502b7c20da9810c100409c295cf37e03bc44
BLAKE2b-256 checksum
How to use checksums
8b21a8a27514df068c984567feb7dbaadaf0475a6923f9abc55599b11244b7c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page