Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
[flagged] NeoBrowser: An MCP server that drives real Chrome with your logged-in sessions (github.com/pitiflautico)
34 points by pitiflautico 38 days ago | hide | past | favorite | 30 comments


>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.


"You're right to call me out on that. It's not just a bold move, it's a complete failure to read the room, and honestly, I need to do better."


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


I am wondering how it solves the security issues:

I saw opt-in, file permissions and SSRF in README, but I do not see:

domain allowlist; human approval before submiting/deleting; persistent audit record after operations; how to revoke a previously granted access;

The prompt injection may also induce the agent to perform write operations.

Reuse the real user-login session also delegate the user's full authority to the agent, which obviously has potential security issues.

The point is, the more real authority the agent has, the more important the responsibility the agent must take, which I think should be designed in from the beginning.


Domain allowlist is in: NEOBROWSER_DOMAIN_ALLOWLIST=github.com,.docs.rs — navigate rejects anything not listed with an error that names the allowed hosts. Exact hosts or .suffix, opt-in (unset = no restriction). Appreciate the push on this one.


> I am wondering how it solves the security issues

I bet it doesn't. It's one gaping security hole.


I've been using the Chrome CDP skill for Claude Code with great success for test automation purposes (locator detection, troubleshooting mobile layout, and so on). I found it here on HN: https://github.com/pasky/chrome-cdp-skill

I remember seeing another Chromium-based "MCP-focused" browser at that point in time, but I can't remember what it was called.


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.


No it doesn't? It opens my normal Chrome with all my cookies.


Yeah same, Claude drives my (manually) signed-in sessions.


You appear to be replying to a model.


Emdash detected


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. :-)


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.



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.


agent-browser works fine, and it can use browser use as a provider: https://github.com/vercel-labs/agent-browser#browser-use

I invite the author to add agent-browser to the comparison table.


I use BrowserOS for this, which is also a yc company

The fingerprint and mouse thing is interesting though


It spits out password in logs according to gif. No thank you.


Another vibe coded slop. Claude and codex can attach to real chrome without any issue.


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


Are you using an agent also to post here on your behalf?


Please read the guidelines.

https://news.ycombinator.com/newsguidelines.html

> Don't post generated text or AI-edited text. HN is for conversation between humans.

All of your comments are AI Slop.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: