Skip to main content

browser-goat — Production-grade web search for AI agents.

Tests Python License

Six-stage search pipeline around SearXNG: query intent detection, hybrid BM25+MMR ranking, anti-bot content extraction, quality-gated retry, adaptive exploration, and multi-rollout consensus verification — running entirely on your own infrastructure.

flowchart TD
    Q["Query"] --> L1

    subgraph L1["1. Pre-Search"]
        A["Intent detection<br/>Browser profiles<br/>Language detection"]
    end

    L1 --> SX["SearXNG Engine"]

    SX --> L2
    subgraph L2["2. Post-Search"]
        B["URL normalization<br/>RRF + BM25 + MMR"]
    end

    L2 --> L3
    subgraph L3["3. Extraction"]
        C["7-tier cascading<br/>Anti-bot bypass<br/>Goal-oriented summary"]
    end

    L3 --> L4
    subgraph L4["4. Reliability"]
        D["Give-up detection<br/>Quality-gated retry<br/>Force synthesis"]
    end

    L4 --> L5
    subgraph L5["5. Strategy"]
        E["Query classification<br/>Adaptive exploration<br/>Recursive decomposition"]
    end

    L5 --> L6
    subgraph L6["6. Verification"]
        F["Multi-rollout voting<br/>Consensus verification<br/>LLM tie-breaking"]
    end

    L6 --> A["Answer"]

Quick Start

MCP (AI Agents)

{
  "mcpServers": {
    "browser-goat": {
      "command": "npx",
      "args": ["browser-goat"],
      "env": { "SEARXNG_URL": "http://localhost:8080" }
    }
  }
}

Requires Python 3.13+ and a running SearXNG instance.

CLI

uvx browser-goat search "latest AI research"
uvx browser-goat search "Python vs Rust" --strategy explore
uvx browser-goat extract "https://example.com/article"

Library

pip install browser-goat
from browser_goat import BrowserGoat

meta = BrowserGoat(searxng_url="http://localhost:8080")
result = await meta.search("quantum computing")
print(result.answer)

MCP Tools

Tool Description
search Full pipeline: intent analysis → SearXNG → ranking → extraction → reliability. Supports time_range (day/week/month/year), max_sources, and strategy (default/auto/explore/decompose).
extract Fetch and extract a single URL with anti-bot bypass (Cloudflare Turnstile). Returns title, clean text, and extraction tier.

Client Configuration

Claude Desktop

{
  "mcpServers": {
    "browser-goat": {
      "command": "uvx",
      "args": ["browser-goat-mcp", "--searxng-url", "http://localhost:8080"]
    }
  }
}

Cursor / VS Code

{
  "mcpServers": {
    "browser-goat": {
      "command": "npx",
      "args": ["browser-goat"],
      "env": { "SEARXNG_URL": "http://localhost:8080" }
    }
  }
}

Docker

Bundled SearXNG + Redis sidecar deployment:

docker compose up

SearXNG starts at localhost:8080, browser-goat API at localhost:8000.

docker exec browser-goat uv run browser-goat search "your query"

How It Works

Each search passes through six layers before returning an answer. The diagram above shows the full pipeline. Layers 1-4 run on every query; Layers 5-6 activate when --strategy or --reliability are set.


Development

git clone https://github.com/Im-Busy/browser-goat.git
cd browser-goat
uv sync

uv run pytest                  # 304 tests (287 unit + 17 integration)
uv run ruff check src/ tests/  # zero violations
uv run mypy src/               # zero errors

Tests require SearXNG at localhost:8080. Skip integration tests:

uv run pytest -m "not integration"

License

MIT

Metadata

Release files for browser-goat 0.1.1

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

Source distribution (sdist)

Source distribution for browser-goat 0.1.1
File Size Uploaded Provenance Actions
browser_goat-0.1.1.tar.gz 65.0 kB Without provenance Details for browser_goat-0.1.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for browser-goat 0.1.1
File Interpreter ABI Platform Actions
browser_goat-0.1.1-py3-none-any.whl Python 3 none any Details for browser_goat-0.1.1-py3-none-any.whl

Total release size: 134.9 kB

Release files / browser_goat-0.1.1.tar.gz

Download URL browser_goat-0.1.1.tar.gz
Size 65.0 kB
Tags Source
SHA-256 checksum
How to use checksums
c1cf240dbe67f46135954c8a40ab2c19b1095973a42973504b6742b7f3abe80d
BLAKE2b-256 checksum
How to use checksums
30f61d0aac6470330133cd35997566cbc04279f181b52964f9e375ef5b6d424a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / browser_goat-0.1.1-py3-none-any.whl

Download URL browser_goat-0.1.1-py3-none-any.whl
Size 69.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
41c9b1a1aee51344904f8e0978da91c59ae214a1bb9f6708bf745cd827e237bd
BLAKE2b-256 checksum
How to use checksums
8f9c9ea6993bf8b81e4f1eeeb8b5e8ed11df1df157cd0684c73d22fbb2347b75
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for browser-goat 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files No provenance

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