← all repositories
feder-cr/invisible_playwright_mcp

Your agent's model is fine; its browser is what gets it blocked

An open-source take on OpenAI's dots: a web agent whose whole bet is that failures happen in the browser, so it ships a Firefox patched in C++ to slip past bot detection.

★2.7k stars Python AgentsCoding Assistants
invisible_playwright_mcp
Velocity · 7d
+106
★ / day
star history

What it does dots is a local web agent: you type a task into a web interface — conversation on the left, a live view of the browser on the right — and it gets carried out in a real Firefox window. The README’s showcase task is the classic grind: check fares from Milan to Lisbon across five dates and report the cheapest per day, with an explicit “do not guess a number.” The model is any OpenRouter model, swappable with --model; the browser is the half the project actually obsesses over.

The interesting bit Most anti-detection is makeup — a fake fingerprint painted on with JavaScript, which is the first thing a suspicious page checks. dots does the surgery in C++, patching the Firefox engine itself so the identity exists before any page code runs. The identity is coherent, too: one --seed yields the same screen, fonts, GPU, timezone, and language on every run, and --proxy makes timezone and language follow the exit node, so the person and the place never contradict each other.

Key highlights

  • Firefox engine patched in C++ — the fingerprint is decided inside the engine, not layered on with inspectable JavaScript.
  • No WebDriver flag, no DevTools protocol, no automation globals exposed to the page.
  • The pointer travels to what it clicks and keys are pressed one at a time, so input events look trusted.
  • --profile-dir keeps logins and cookies between runs; --seed reproduces one consistent identity.
  • The same browser is available to Claude Code, Codex, and Gemini CLI via the companion invisible_playwright_mcp MCP server.

Caveats

  • The README never says where the patched Firefox engine comes from — how the C++ patches are built or distributed isn’t documented, which is a gap if you want to audit what’s actually running.
  • “Nothing for a page to find” is asserted, not demonstrated; no detection tests or results appear anywhere.
  • By its own tags this is an anti-detect, stealth browser, and the flagship example is scraping airline fares — squarely the kind of target whose terms of service forbid it.

Verdict If you build web agents and keep watching them die at challenge pages and expired logins, this MIT-licensed take on the real failure point — and open-source answer to OpenAI’s dots — is worth a look. If you need auditable provenance or want no part in the bot-detection arms race, move along.

Frequently asked

What is feder-cr/invisible_playwright_mcp?
An open-source take on OpenAI's dots: a web agent whose whole bet is that failures happen in the browser, so it ships a Firefox patched in C++ to slip past bot detection.
Is invisible_playwright_mcp open source?
Yes — feder-cr/invisible_playwright_mcp is open source, released under the MIT license.
What language is invisible_playwright_mcp written in?
feder-cr/invisible_playwright_mcp is primarily written in Python.
How popular is invisible_playwright_mcp?
feder-cr/invisible_playwright_mcp has 2.7k stars on GitHub.
Where can I find invisible_playwright_mcp?
feder-cr/invisible_playwright_mcp is on GitHub at https://github.com/feder-cr/invisible_playwright_mcp.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.