Skip to content

Getting started

Frankensurf is a Python package. You can use it three ways: from the command line, from Python, or from any AI app that supports MCP. It runs on Linux or on Windows through WSL.

  1. Get the code and install it.

    Terminal window
    git clone https://github.com/yail259/frankensurf.git
    cd frankensurf
    python3 -m venv .venv
    .venv/bin/pip install -e '.[test,mcp]'
    .venv/bin/playwright install chromium
  2. Start the two helpers: a browser server (Steel) and a search engine (SearXNG). Both run locally in Docker. Running the scripts again is safe.

    Terminal window
    bash scripts/start-steel.sh
    bash scripts/start-search.sh
    export FRANKENSURF_STEEL_URL=http://127.0.0.1:3100
  3. Optional: install the stealth browsers (Camoufox and Scrapling). They get their own environment so they don’t clash with the main install.

    Terminal window
    bash scripts/install-public-providers.sh
  4. Check it works.

    Terminal window
    .venv/bin/pytest -q
    .venv/bin/frankensurf read https://example.com

You don’t need an account, an API key or a paid service for any of this.

Terminal window
# Fetch a page
.venv/bin/frankensurf read https://example.com
# Search
.venv/bin/frankensurf search 'Sydney used ebike' --source searxng
# Pull structured data and photos from a listing
.venv/bin/frankensurf extract https://www.gumtree.com.au/web/listing/lenses/1344434853 \
--adapter gumtree_listing --images
Variable What it sets
FRANKENSURF_STATE Where saved pages, cache and traces go (used by the MCP server)
FRANKENSURF_STEEL_URL Address of your local Steel browser
FRANKENSURF_SEARCH_URL Address of your local SearXNG
FRANKENSURF_IDENTITIES Where your saved logins are registered (default ~/.frankensurf/identities.json)
FRANKENSURF_PROVIDER_PYTHON The Python that runs the stealth browsers