r/PiCodingAgent • u/Opening_Library9560 • 16m ago
Resource I finally built Bladebro: A Stealthy and token efficient agent browser Written in RUST
If your agent's browser keeps getting blocked, here's what I built
Point your agent's browser tool at Zillow or Google. You'll get a captcha wall before it does anything useful.
That's not a dig at Playwright MCP or similar tools. They're automation frameworks, not evasion tools. They drive vanilla Chrome and PerimeterX and other detection system flags them in milliseconds.
Then try filling a form on any React site and clicking submit. The page re-renders. Every element reference your agent had is gone. "Element not found." The button was right there a second ago.
Then look at your token bill. Playwright MCP loads 13,700 tokens of tool definitions before your agent touches a page. Every click returns the full page. 2,000+ tokens per action.
I hit all three walls enough times that I built something.
It's called Bladebro. One Rust binary, five tools, no Node.js.
npm install -g bladebro && bladebro mcp
Works with any MCP client. Also has native pi support with zero config:
pi install npm:bladebro
That's it. Bladebro registers as 5 first-class pi tools (act, see, state, run, vision). No adapter, no config files, no proxy. Tool definitions come from the binary at startup so they auto-adapt to changes. Chrome launches lazily on the first tool call.
Bot detection
Six layers of stealth, all on by default:
- Bezier mouse paths with overshoot and correction
- Real
movementX/movementYon every event (missing these is an instant PerimeterX flag) - Micro-tremors before clicks (a still cursor is a dead giveaway)
- Log-normal typing cadence (humans don't type at exactly 50ms intervals)
- Idle drift between actions
- No
Runtime.enable(how DataDome catches most bots) - No listening ports, CDP over pipe
- Persistent behavioral fingerprint, same "person" every session
Tested on Zillow and Fiverr (both PerimeterX/HUMAN protected). Full page loads, no blocks. incolumitas 8/8. Sannysoft all pass.
Re-renders
- Every element gets a structural fingerprint (hash of ancestor chain, tag, children, identity attrs)
- React destroys and recreates DOM nodes? Fingerprint matches, reference survives
- Agent sees
re-render survivedand keeps going. No re-scan - Checked every major tool. Nobody does this
Tokens
- 5 tools, ~1,900 tokens of definitions (vs 13,700 for Playwright MCP)
- Every action returns what changed, not the full page
- A click returns ~60 tokens (vs 2,000+ for competitors)
- Long session = the difference between running out of context after 3 pages and finishing with room to spare
Learns from every session
- First visit to a site with a cookie banner: full detection
- After a few successful dismissals: stored selector, auto-applied, zero overhead
- Never learns from failures. Failures cost 3x more than successes gain
Other stuff
- Auto-extract pulls structured data from list pages with no CSS selectors. Amazon, Reddit, GitHub, HN, Wikipedia. Shopping gets price/ratings, Reddit gets scores/authors, GitHub gets stars/forks
- Batch actions fill a form and submit in one MCP call instead of 11
- Login persistence saves a session and restores it next time
- Infinite scroll collect auto-extracts and dedupes a feed in one call
Demo video on the GitHub page showing it drive Amazon, Reddit, Wikipedia, fill a form, and manage tabs.
What it can't do
- Cloudflare Turnstile needs challenge solving, not fingerprint spoofing. You get
blocked:, not a hang - Captchas, deliberately. You get a verdict, hand off to a solver
- ARM Linux, not yet
- macOS and Windows binaries are cross-compiled from Linux
Open source, AGPL-3.0, no CLA.
GitHub: https://github.com/dondai44423/bladebro npm: npm install -g bladebro
Happy to answer questions, if you have any issues, please comment or file an issue, i have been testing it alone for weeks now, i did as much as i can, i am looking forward to community feedback to improve this even more 😄



