How it fits together
Your agent makes one call. Frankensurf checks your settings, works out who the request should run as, picks the cheapest way to fetch the page, checks the result and hands it back with a receipt.
Your agent (any model) ── Python · command line · MCP ──┐ ▼ ┌────────────────────────────── Frankensurf ─────────────────────────────┐ │ your settings ─▶ who to run as ─▶ router ◀── memory of what worked │ │ │ │ │ add-ons can step in before a request, after it, or on failure │ │ ▼ │ │ plugins: browsers · scrapers · search · site parsers · login storage │ │ ▼ │ │ saved pages · cache · receipts · traces · benchmark │ └────────────────────────────────────────────────────────────────────────┘ │ ▼ the web, through plain requests, browsers, stealth browsers, unblocking services and your own logged-in ChromeThe rules it follows
Section titled “The rules it follows”- Get the job done. Getting the right page comes first. Speed and cost come second.
- No hidden limits. Every limit is a setting with a default. You can change any of them.
- Everything plugs in. Browsers, scrapers, search engines and site parsers are all plugins.
- Your secrets stay yours. Passwords and cookies never reach the agent or the AI model.
- Say what you know. Every result has a receipt. If something is unknown, it says so.
- Measure, don’t guess. The benchmark decides which tools become defaults.
The parts
Section titled “The parts”| Part | What it does | Today |
|---|---|---|
| Settings | Every limit, in one place | partly some limits are still fixed in code |
| Router | Picks how to fetch each page | fixed order |
| Memory | Remembers what worked on each site | planned |
| Measurements | Success, speed and cost per tool | recorded |
| Plugins | Lets you add any tool | planned tools are built in for now |
| Logins | Fetch pages as you | working on your own machine |
| Receipts | Show how each result was fetched | working |
Local first
Section titled “Local first”Everything runs on your machine. You don’t need an account or any hosted service. If you add a paid service yourself, like an unblocking API, it’s just another plugin.
A hosted Frankensurf service may come later for extra scale and team features. It will never control your local setup. It can suggest things, and your machine decides.
Before 1.0
Section titled “Before 1.0”Frankensurf hits 1.0 when it passes all six of these checks on the benchmark.
| Check | Passes when |
|---|---|
| Better than any single tool | It succeeds at least as often as the best single tool on every kind of site, and fails at most half as often overall. |
| Cheaper | It sends at most half the tokens of a plain browser snapshot, and costs no more per success than the best single tool. |
| Learns | A second run is at least 30% faster, with almost no wasted attempts. |
| No silent mistakes | Fewer than 1 in 200 “successes” contain the wrong content. |
| Works with any model | Three or more AI apps or models get the same results. |
| Quick to start | A new machine gets its first result within five minutes of opening the README. |
The benchmark
Section titled “The benchmark”The benchmark (FrankenBench) runs the same list of pages through each tool on its own, through a plain browser, and through Frankensurf. Every page has checks for the content it should contain, so “success” means the right content, not just a page that loaded. It records success, mistakes, tokens, cost, speed and attempts, and its results feed the website.
What’s done and what’s next
Section titled “What’s done and what’s next”| Stage | Status | |
|---|---|---|
| A | Fetch pages locally, with receipts | done |
| B | Logins and safety rules | partly |
| H | The benchmark | next |
| P | Plugins, and turning fixed limits into settings | next |
| M | Remembering what works | planned |
| C | Cheaper ways to fetch: markdown pages, signed requests, shorter outputs | planned |
| D | Running on your machine from elsewhere, sharing logins safely | planned |
| E | Auto-written site parsers, shared learning, hosted service | planned |