Skip to main content
Rust · open source

Browser automation for AI agents.

One Rust binary that gives any LLM a real browser. Scrape, clear bot gates, and transcribe videos, all on your machine.

install webrain
webrain installed · one binary, three engines

No Node, no Python, no Docker. Runs on macOS, Linux, and Windows.

webrain · scrapelive
webrain mcp
MCP server ready · 17 tools
“scrape product prices from shop.example.com”
navigate shop.example.com
loaded · 0 challenges
observe product cards
24 product cards detected
extract json
done · 24 items → JSON
webrain · auth + batchlive
“extract prices from 12 auth pages behind Turnstile”
vault add store.example.com
credential stored · AES-256-GCM + TOTP
launch chrome
real chrome up · stealth, cdp 9222
navigate auth.store.example.com
challenge turnstile → cleared · native login
session login service=store profile=default
logged in · session saved, TOTP ok
batch extract · 12 urls (session)
12 pages · 214 items
done · 214 products → JSON
webrain · batch interactlive
“collect specs from 40 public pages, no auth”
batch interact · 40 urls in parallel
clicked specs tab · read rows per page
312 rows · 0 logins
done · 312 specs → JSON
webrain · scrapelive
webrain mcp
MCP server ready · 17 tools
“scrape product prices from shop.example.com”
navigate shop.example.com
loaded · 0 challenges
observe product cards
24 product cards detected
extract json
done · 24 items → JSON
webrain · live CLI sessionlive
webrain mcp
✓ MCP server ready · 17 tools
webrain_navigate shop.example.com
0 challenges · 24 product cards detected
webrain_extract mode=autoschema
schema: · 42 rows
12 pages · 2.1s · 189 items
Works with any MCP client

Give the scraper LLM a try.

This is the agent loop webrain runs: a plain-language prompt, seventeen intent-based tools, and structured JSON back. Presets show illustrative output, except the drone one: a real 1m43s run. Pick a demo or type your own prompt.

webrain · agent playgroundlive
“scrape product prices from shop.example.com”
webrain_navigate→ ok · 0 challenges
webrain_observe · what=state→ 24 product cards detected
webrain_extract · mode=autoschema→ schema
webrain_extract · mode=schema→ 42 rows
result.json42 items

From install to scraping in three steps.

No selectors to hand-write, no daemon, no driver wiring. The binary, your client, and the model do the rest.

Install

One binary, any OS

Install webrain once. No Node, no Python, no Docker. Engines download on demand.

shellcurl -fsSL …/install.sh | bash
Connect

Register it in a client

Add two lines to Claude, Cursor, Copilot, or Codex. The client spawns webrain mcp.

mcp.json
Ask

Point the model at the web

Tell the agent what to do in plain language. It navigates, extracts, and returns structured data.

agentscrape product prices from URL X

One loop, every site.

Read the page, pick a tool, act, hand back structured JSON. The agent walks the same circuit on every job.

askplain-language prompt
navigateengine loads the page
observeDOM snapshot
decideLLM picks the tool
extractstructured JSON out
webrainone binary

Everything an agent needs to read the web.

Seventeen intent-based tools cover the full job. No selectors to hand-write, no driver plumbing, no daemon.

17 intent-based tools

One tool per intent, each with a what, action, op, or mode selector, and every legacy one-action alias still dispatches.

Structured extraction

Autoschema probes the DOM, then schema, regex, table, JSON-LD, and BM25 modes return clean data. Zero LLM, zero cost. Live: 407 products from a real store in ~17 tool calls.

Stealth login

Real-Chrome profiles with an encrypted local vault and optional TOTP. Cookies transfer across engines.

AES-256-GCMTOTPcookie transfer

Challenge bypass

Every navigate reports a challenge field; real Chrome with a persistent profile and native login clears Cloudflare, Turnstile, and reCAPTCHA gates. No Python sidecar.

cloudflare_challengeblockedcaptcha

Crawl at scale

Batch, spider, sitemap, and scan modes with auto-throttle and checkpoint/resume. 132 products in one parallel call, ~2-4 s/page on Lightpanda.

Read anything

PDF extract and render, video transcripts plus frames, downloads, JSON-LD, media, and a no-browser HTTP path. Video transcripts run fully offline with bundled whisper and local vision.

Local AI, all OS

Bundled whisper-cli for transcripts and Qwen3-VL-2B for vision. No cloud key required. Runs fully on your machine.

whisper-cliQwen3-VL-2B
1static binary
3browser engines
16MCP tools
0Node runtime

Skills, recipes, and agent prompts, in the repo.

webrain ships a working agent playbook, not just tools: a routing skill, verified block-bypass workflows, and a ready-to-copy news-research prompt. Clone the repo and load them into any client.

webrain skill

The router. Load it and it picks the browser, the challenge path, and the extractor for each task, mcp_webrain-* without guesswork.

Workflows

Verified block-bypass recipes: CAPTCHA geometry, feed & news aggregation past WAFs, protected-site end-to-end.

Agent prompts

A ready news-research agent: copy the prompt into any chat for the optimal tool order and a precise bypass playbook.

References

Depth for every decision: browser selection, challenge handling, persistent profiles, extraction matrix, anti-patterns.

Proven on real jobs.

Measured on live sites and documented in the repo. No invented numbers, no benchmark theater.

407unique products from a live store in ~17 tool calls, ~46K tokens
132products in one parallel batch call, zero logins
3browser engines behind one CDP backend, plus a no-browser HTTP path
0runtime dependencies. One ~22 MB Rust binary on macOS, Linux, and Windows
Agent loop · 407 products
46,000tokens
Structured extract · zero LLM
0tokens

Same store, same 407 products. The extraction engine does the work with no LLM in the loop: zero tokens, zero cost per row.

Reproduce the zero-LLM claim on any site: webrain_extract · mode=autoschemamode=schema. No LLM, no tokens.

Real operations, end to end. Two full agent jobs. Every number from the run, not a demo.

Buy a machine for Qwen3.8

Live skroutz.gr op: navigate 4 targets, batch 2 search pages, eval the benchmark tables, rank by €/tok/s.

16 tool calls0 challenges100% price match~$0.04

Verdict → Acer Predator Helios 16 AI · 3.699 €, ~100 t/s on Qwen3.8-27B Q4 (interpolated)

Plan a drone build

Multi-source research: serp discovery → one batch over 6 build guides + firmware repos → a synthesized parts-and-code plan.

2× webrain_serp6 sources · one batch1m43sDeepSeek V4 Flash

Output → 12-part list · $500-650, Betaflight / INAV / ArduPilot + STM32 KiCad repo

Every figure is in the repo: the agent guide, the changelog

Structured search. Five engines, one tool.

Ask for results and get typed JSON: position, title, url, domain, snippet. duckduckgo and bing answer over plain HTTP with no browser at all; google and brave render in the connected engine; auto fetches duckduckgo + bing in parallel over plain HTTP and merges them — relevance-filtered and deduped (google and brave join the merge when a CDP engine is attached).

typed resultsposition, title, url, domain, snippet
five engines + autoduckduckgo, bing, google, brave, auto
fallback + dedupeproviders fall back, duplicate URLs dropped
pagination + safe + regionpage offsets, safe search, en-US market default
proxy + captcha solveroute engines through HTTP(S)/SOCKS proxies; 2captcha /sorry auto-solve
request_id + retrycorrelate every call, retry with backoff

One MCP tool and one CLI command: webrain_serp and webrain serp.

webrain · serplive
“tokio rust” · engine=duckduckgo · limit=5
webrain_serp · engine=duckduckgo
duckduckgo · plain HTTP · no browser
deduped · 5 unique results · 0.9s
1
Rust Programming Languagerust-lang.orgA fast, reliable, and productive programming language.
2
Rust (programming language) - Wikipediaen.wikipedia.orgA general-purpose language emphasizing performance, type safety, concurrency, and memory safety.
3
The Rust Programming Languagedoc.rust-lang.orgThe official Rust book: performance, safety, and fearless concurrency.
result.json5 items
5engines behind one tool
2browserless by default (duckduckgo · bing)
50max results per call

One CDP backend, four ways to load a page.

Pick the right engine for the job. From a full Chrome for interactive SPAs to a no-browser HTTP fetch for static pages.

Chrome

Interactive SPAs, challenges, screenshots. Anything real Chrome can do.

Default

Obscura

Fast batch scraping of non-challenged JS pages. No paint engine, no screenshots.

Fast

Lightpanda

Real accessibility tree, lightweight. Screenshot returns a placeholder frame.

Light

fetch_http

Static HTML, no JS, no auth. 10-100× faster. No engine at all.

No browser

Point any LLM at the web.

No driver wiring, no browser download dance, no tool wrappers. Install once, and your agent drives a real browser.

MCP native

stdio or HTTP. Works with Claude, Cursor, Copilot, Codex, Gemini.

Local first

Everything runs on your machine. No cloud, no API key, no data leaves.

Stealth and auth built in

Challenge bypass, encrypted vault, TOTP, and cookie transfer across engines.

webrain MCP workflow: AI agent connects through MCP protocol to browser engine, extracts structured data

Questions, answered plainly.

The objections that come up before you install. The short version: yes, it runs on your machine.

Do I need Node, Python, or Docker?

No. webrain is a single Rust binary. The browsers it drives (Chrome for Testing, Obscura, Lightpanda) download on demand into a cache dir. Nothing else to install.

Does it cost money or need an API key?

No. It is open source (MIT) and local-first. Cloud keys are optional and only for video transcriptions and vision; the bundled local whisper and Qwen3-VL-2B models work offline.

Which AI clients does it work with?

Any MCP client: Claude, Claude Code, Cursor, GitHub Copilot, Codex, Gemini, and more. Register it once in the client’s MCP config and the model drives the browser itself.

How is this different from a scraping API?

webrain runs on your machine, sends no data to a third party, and gives the LLM a real browser with stealth and challenge bypass. For static pages it can be 10-100× faster than a full browser.

Give your agent a browser in five minutes.

Install webrain, start the MCP server, and ask your LLM to scrape. No selectors, no wrappers.

webrain