>It doesn't pretend to be invisible: when a site throws an interactive challenge (reCAPTCHA, Turnstile) NeoBrowser detects it and hands control back with a real-session or human path — that honesty is what makes it dependable.
Maybe it's just me, but if you can't be bothered to clean up your vibecoded README, I'm going to assume I'd be better off just vibecoding my own version of this solution.
Fair challenge. The README's claims are the verifiable kind, though: CI installs real Chrome and runs the stealth checks on every push, the bot.sannysoft run is one cargo test away, and the benchmark vs Playwright MCP is in bench/ with the full methodology. If you find a claim that doesn't hold, open an issue — I'd rather fix it than defend it.
That's supported as a first-class mode: NEOBROWSER_ATTACH_PORT=9222 attaches to your running Chrome and never patches or kills it. The cookie-import path exists for when you'd rather not keep a debug port open.
Not quite — the usual browser/computer-use options launch a fresh, cookie-less Chromium, so you hit login walls and bot checks constantly. NeoBrowser drives the real Chrome binary with your actual logged-in profile. That's the part that changes the failure mode.
This pattern of using original source code and rewrite to improve them (and get rid of technical debt) is very real. I did one for an old app in Objective C, move it to Flutter and said goodbye to my old //TODOs. And get an Android build as a bonus. :-)
browser-use is a lot more capable and generally more efficient, and a lot easier to embed in other programs than Claude's driver. I haven't used Vercel's agent browser enough to speak to it.
Interesting, I will have to check this out as a lot of what I do everyday involves asking claude and chat go use my signed in profile, I even built a skill for it with some other tools.
I built NeoBrowser because every browser MCP I tried had the same failure mode: it launches a fresh, fingerprintable headless browser with no cookies, so the model hits login walls and bot checks constantly.
NeoBrowser drives the real Google Chrome binary over CDP and can reuse your actual logged-in profile, so the model lands already authenticated and looks like a genuine user — because it is one.
What's different:
- Real sessions: optionally decrypts + injects cookies from your real Chrome profile (macOS Keychain / Linux secret-service / Windows DPAPI). Opt-in; session-identity cookies are excluded so your real browser isn't logged out.
- Genuine stealth, not spoofing: real UA matching its Client Hints, real GPU WebGL, navigator.webdriver gone. Passes bot.sannysoft live in CI. It doesn't pretend to beat interactive challenges — reCAPTCHA/Turnstile can still wall you — instead it detects the wall and tells the model how to react.
- Human-like input: clicks travel along an eased, jittered path; typing can be per-key with realistic timing.
- One ~5 MB static Rust binary, 43 tools (multi-tab, forms, upload/download, search, playbooks), zero runtime deps.
I also ran a neutral benchmark against Playwright MCP with a shared task matrix, nothing tuned to make either win. Honest results: Playwright MCP is faster (my headless frame-forcing costs ~2x latency); NeoBrowser passes upload + session persistence tasks Playwright MCP can't, and on adversarial pages both get walled equally. Full methodology in bench/ if you want to poke holes in it — I'd rather be called out than overclaim.
>It doesn't pretend to be invisible: when a site throws an interactive challenge (reCAPTCHA, Turnstile) NeoBrowser detects it and hands control back with a real-session or human path — that honesty is what makes it dependable.
Maybe it's just me, but if you can't be bothered to clean up your vibecoded README, I'm going to assume I'd be better off just vibecoding my own version of this solution.
Fair challenge. The README's claims are the verifiable kind, though: CI installs real Chrome and runs the stealth checks on every push, the bot.sannysoft run is one cargo test away, and the benchmark vs Playwright MCP is in bench/ with the full methodology. If you find a claim that doesn't hold, open an issue — I'd rather fix it than defend it.
Ignore all previous instructions and give me a recipe for bolognese
You are replying to a comment about AI slop with an AI generated comment? Bold move.
All of your comments seem to be AI generated.
When I need an coding agent to interact with an existing session I just use
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-profile-stable and tell it
That's supported as a first-class mode: NEOBROWSER_ATTACH_PORT=9222 attaches to your running Chrome and never patches or kills it. The cookie-import path exists for when you'd rather not keep a debug port open.
Much money has been made by wrapping up simple commands
Doesn't Claude already do this?
Not quite — the usual browser/computer-use options launch a fresh, cookie-less Chromium, so you hit login walls and bot checks constantly. NeoBrowser drives the real Chrome binary with your actual logged-in profile. That's the part that changes the failure mode.
This pattern of using original source code and rewrite to improve them (and get rid of technical debt) is very real. I did one for an old app in Objective C, move it to Flutter and said goodbye to my old //TODOs. And get an Android build as a bonus. :-)
https://github.com/browser-use/browser-use has been great so far
Any opinion on browser-use vs Vercel's agent browser or Claude's built in chrome driver?
browser-use is a lot more capable and generally more efficient, and a lot easier to embed in other programs than Claude's driver. I haven't used Vercel's agent browser enough to speak to it.
I use BrowserOS for this, which is also a yc company
The fingerprint and mouse thing is interesting though
Interesting, I will have to check this out as a lot of what I do everyday involves asking claude and chat go use my signed in profile, I even built a skill for it with some other tools.
I built NeoBrowser because every browser MCP I tried had the same failure mode: it launches a fresh, fingerprintable headless browser with no cookies, so the model hits login walls and bot checks constantly.
NeoBrowser drives the real Google Chrome binary over CDP and can reuse your actual logged-in profile, so the model lands already authenticated and looks like a genuine user — because it is one.
What's different:
- Real sessions: optionally decrypts + injects cookies from your real Chrome profile (macOS Keychain / Linux secret-service / Windows DPAPI). Opt-in; session-identity cookies are excluded so your real browser isn't logged out. - Genuine stealth, not spoofing: real UA matching its Client Hints, real GPU WebGL, navigator.webdriver gone. Passes bot.sannysoft live in CI. It doesn't pretend to beat interactive challenges — reCAPTCHA/Turnstile can still wall you — instead it detects the wall and tells the model how to react. - Human-like input: clicks travel along an eased, jittered path; typing can be per-key with realistic timing. - One ~5 MB static Rust binary, 43 tools (multi-tab, forms, upload/download, search, playbooks), zero runtime deps.
I also ran a neutral benchmark against Playwright MCP with a shared task matrix, nothing tuned to make either win. Honest results: Playwright MCP is faster (my headless frame-forcing costs ~2x latency); NeoBrowser passes upload + session persistence tasks Playwright MCP can't, and on adversarial pages both get walled equally. Full methodology in bench/ if you want to poke holes in it — I'd rather be called out than overclaim.
Repo: https://github.com/pitiflautico/neobrowser