📈 GH Trending Explorer 🎲 Surprise me

← all repos

feder-cr / invisible_playwright_mcp

git clone https://github.com/feder-cr/invisible_playwright_mcp.git v0.72.3 · 3d ago

Playwright MCP server undetected by anti-bots and captchas: AI agent browses the web on anti-detect stealth Firefox, Python, undetected browser automation, scraping, computer use.

—
stars, 24h
—
stars, 7 days
+1.3k
stars, 30 days · #244
1.3k
★ total
247
forks · 4 open issues

Star history starts 2026-10-20; the chart appears after the second daily snapshot.

LanguagePython
LicenseMIT
Created2026-09-29 (21d ago)
Last push3d ago
Watchers48
OwnerUser

GitHub topics

Links

README excerpt
Other AI browser agents get captchas. 
This one is invisible to anti-bots. 
---
## Two ways to use this browser agent
### 1. From your assistant, over MCP
Windows, in PowerShell:
 [code] 
Linux:
 [code] 
Then install it in your assistant.
**Claude Code:**
 [code] 
**Codex:**
 [code] 
**Gemini CLI:**
 [code] 
### 2. Standalone: the web UI
We bring the interface, you bring an OpenRouter key.
Chat on the left, the live browser on the right.
Windows, in PowerShell:
 [code] 
Linux:
 [code] 
Then open **http://127.0.0.1:8765** and type the same thing.
---
## What to ask a web browsing agent
Anything that needs real web automation: a browser rather than an API, and a
person's judgement about what is on the page.
> Go to ` `. One way, Milan to Lisbon, economy, one checked bag,
> one adult. Check every date from the 12th to the 16th of next month, one at a
> time, and read the cheapest fare for each day. The date field is a calendar
> widget, so click the days rather than typing them. If a date has no
> availability, say so. Do not guess a number.
It drives the page the way a person would: the pointer moves, keys are pressed.
## Options: proxy, profile, seed
- **`--openrouter-key`** Your key, or the `OPENROUTER_API_KEY` variable.
- **`--model`** An OpenRouter model id, or `INVISIBLE_MCP_MODEL`. Defaults to `z-ai/glm-5.3-flash`.
- **`--proxy`** Optional. `http://user:pass@proxy.example.com:8080` or
 `socks5://proxy.example.com:1080`. Host and port are both required. The
 timezone, locale and egress follow it.
- **`--binary`** An engine binary you already have. It must be the build the seal
 pins, or startup refuses: this skips the download, not the version check.
- **`--seed`** An integer. Same seed, same browser identity, every run.
- **`--profile-dir`** A directory to keep the profile in, so logins and cookies
 survive restarts.
- **`--headed`** Show the browser window. The interface shows you the page anyway.
- **`--host`, `--port`** `127.0.0.1` and `8765`. Changing the host
 exposes an interface that has no authentication.
### A `.env` beside the command
Rather than retyping the key and the binary path, put them in a `.env` in the
directory you run from:
 [code] 
It is read at startup, and on the way in it **never overrides** something
already set, so the order is `--flag` > the environment > `.env` > the default.
Only the directory you are in is read - there is no search upwards, so running
from a subfolder cannot silently pick up a different key. The startup line names
the variables it applied and never prints their values.
Passing `--openrouter-key` puts the key in your shell history, and on Linux in
the process list. `OPENROUTER_API_KEY` in the environment or in a `.env` avoids
both.
## The wiki: AI browser-agent guides
The reading room around the agent lives in the
wiki: the
AI browser-agent landscape: browser-use, Operator-style and
computer-use agents compared,
what to check when an agent gets blocked,
and what happened to OpenAI Operator,
among