Stealth browser automation for AI agents — clears Cloudflare, one MCP server + N parallel persistent Chromes, credential vault, vision clicking, prompt-injection safety. 31/31 sannysoft, 594 tests.
claude mcp add vibatchium -- python -m --python{
"mcpServers": {
"vibatchium": {
"command": "python",
"args": ["-m", "--python"]
}
}
}MCP Servers overview
# vibatchium <!-- mcp-name: io.github.trueoriginlabs/vibatchium --> **Agent-piloted browser automation that clears Cloudflare.** Patched Playwright + multi-session daemon + credential vault + vision clicking + prompt-injection safety. One MCP server, N parallel Chromes, persistent per-session profiles. ``` pipx install vibatchium # core: browse / extract / screenshot / N parallel sessions # want the stealth HTTP fetch lane (vb fetch), the credential vault, VLM read, or the REST shim? pipx install 'vibatchium[all]' # everything; or pick extras: vibatchium[fetch], [secrets], [llm], [rest] patchright install chrome vb setup # register MCP + an auto-discoverable skill so agents reach for vb (idempotent) ``` Core install covers all browsing. `vb fetch` (the curl_cffi TLS-fingerprint lane) is the `[fetch]` extra; `vb install` reports which optional lanes are available. On a **uv** venv (no pip), add an extra with `uv pip install --python <venv>/bin/python curl_cffi`. > Bleeding edge from `master`: `pipx install 'git+https://github.com/trueoriginlabs/vibatchium#egg=vibatchium[all]'` > **Coding agents (Codex / Cursor / Claude Code):** read [`AGENTS.md`](AGENTS.md) first — it has the one-call recipes (`explore`, `research`) and the env-discovery traps to skip. ``` vb explore https://example.com # one-call: text-first (screenshot only as a fallback) vb research --target https://example.com \ # parallel fan-out, N intents --intent "pricing model" --intent "customers" --intent "tech stack" ``` **Status:** active development, alpha. 606 tests green. 31/31 on bot.sannysoft.com. Cleared HackerOne Cloudflare cold-launch. Apache-2.0 (AGPL only via the opt-in `nodriver` extra). ## Updating ```bash vb update # upgrade to the latest PyPI release + restart the daemon vb update --version 0.6.8 # or pin a specific version ``` `vb update` detects how vibatchium was installed (pipx, `uv tool install`, a pip-less uv venv, or pip with a PEP-668 `--break-system-packages` fallback) and then **stops the running daemon** so the next command loads the new code. Manual equivalent: ```bash pipx upgrade vibatchium # or: uv tool upgrade vibatchium / pip install -U vibatchium vb shutdown # bounce the daemon — it serves old code until you do vb --version # confirm ``` > The daemon-restart step is the one people miss: the long-running daemon keeps > serving the **old** version until it's bounced. `vb update` does it for you; > if you upgrade by hand, run `vb shutdown` (the next `vb` call auto-respawns the > new version). Optional features upgrade via `pipx install 'vibatchium[all]' --force`. ## Why vibatchium | | Vibium | Patchwright | Browser-Use | vibatchium | |---|---|---|---|---| | LLM-friendly `@eN` refs + `map` / `diff map` | ✅ | ❌ | ❌ | ✅ | | Cloudflare CDP-leak patches | ❌ | ✅ | ❌ | ✅ | | **Multiple parallel browsers, one daemon** | ❌ | manual | ❌ | ✅ | | Per-session persistent profile (cookies, login) | ✅ | manual | manual | ✅ | | CDP-attach to manually-logged-in Chrome | ❌ | manual | ❌ | ✅ | | **Encrypted credential vault** (passwords + TOTP) | ❌ | ❌ | ❌ | ✅ | | **IMAP email-code polling** (2FA) | ❌ | ❌ | ❌ | ✅ | | Per-session proxy + WebRTC leak guard | ❌ | manual | ❌ | ✅ | | Vision-first clicking with spend cap | ❌ | ❌ | ✅ | ✅ | | **Prompt-injection classifier on scraped content** | ❌ | ❌ | ❌ | ✅ (0% FP / 204 samples) | | Live-view stream with takeover (WebSocket) | ❌ | ❌ | partial | ✅ | | Bearer-token REST shim + caps gating | ❌ | ❌ | manual | ✅ | | `research` command (parallel fan-out) — CLI only | ❌ | ❌ | ❌ | ✅ | ## Real Chrome vs fake Chrome A wave of "headless browser for AI agents" tools rebuild the browser from scratch (Rust + V8, no Blink/Skia) to hit tiny memory and sub-100ms page loads. The catch is structural: **with no rendering engine, they can't produce a real device's fingerprint — they synthesize one.** And synthetic fingerprints don't hold still. vibatchium drives *real* Google Chrome, so its fingerprints are real — and, more to the point, **stable**. The single test that separates the two is fingerprint stability across navigations. Run the same canvas + WebGL probe on two pages in one session: | | vibatchium (real Chrome) | synthesized-fingerprint engines | |---|---|---| | canvas hash, page A → page B | **identical** | reseeded per navigation | | WebGL `readPixels` | real, **deterministic** pixels | often `Math.random()` | | WebGL renderer | a real ANGLE renderer¹ | stub / zeros | <sub>¹ Chrome's own software renderer (SwiftShader) by default — still a coherent, deterministic Chrome value, not a stub. A hardware-GPU string (e.g. `ANGLE (Intel …)`) needs the opt-in `--gpu` flag.</sub> A real device returns the same fingerprint every page load; a fingerprint keyed off `Date.now()` does not — and *that inconsistency* is exactly what lie-detection fingerprinters (CreepJS and friends) flag. Measured: vibatchium's canvas hash and WebGL readback are byte-identical across navigations, and CreepJS reports **0 % stealth-tampering** (no synthetic-environment signatures). **This is not a claim of invisibility.** The moat is fingerprint *authenticity*, not hiding that a browser is automated — vibatchium still reads as headless on the headless-specific tells (see [Honest limits](#honest-limits)), and real-GPU WebGL (`--gpu`) is opt-in. But real, consistent fingerprints pass the consistency tier that synthetic ones fail *by construction* — and that tier is what stands between you and a login wall. ## Multi-session in 10 lines ``` vb session new work vb --session work start vb --session work go https://github.com # log in by hand once vb session new banking vb --session banking start vb --session banking go https://bank.example.com vb --session work click @e3 & # truly parallel — vb --session banking fill @e5 hi & # separate Chromes, no cookie bleed wait vb session list ``` Active-session resolution: `--session FLAG` → `$VIBATCHIUM_SESSION` env → `~/.config/vibatchium/active-session` → `default`. Cap via `VIBATCHIUM_MAX_SESSIONS=8` (default 8). ### Multi-agent: shared sessions vs a private daemon On **one** shared daemon, sessions give real fingerprint isolation (separate Chromes, no cookie bleed) but share the host: the session count budget, the memory, and the blast radius of an OOM or a daemon bounce. Two models, pick per trust level: - **Cooperating agents (your own fleet):** the shared daemon is right — just give each concurrent agent a **unique `--session` name** so stateful flows don't collide on `default`. `vb session lease` coordinates a shared name. - **A private blast radius:** a **per-agent daemon** on its own socket + `HOME` — separate profiles/config/state, its own session budget, zero contact with the shared daemon. `vb daemon start --isolated` prints the `XDG_RUNTIME_DIR`/ `HOME` to export for subsequent calls; `vb mcp --isolated` runs the MCP server on its own private daemon directly. `vb daemon reap` cleans up abandoned ones. (Same UID = same trust domain — this bounds *blast radius*, not a security boundary between distrusting tenants; for that, separate UIDs/containers.) **Resource governance.** The session cap bounds process *count*, not bytes. On a shared box, set `VIBATCHIUM_SESSION_RAM_FLOOR_MB` to refuse a new launch when free memory is low (a portable admission belt). For a hard ceiling, run the daemon under a cgroup — `systemd-run --user --scope -p MemoryMax=4G vb daemon start` puts the daemon **and all its Chromes** in one cgroup sharing the limit: an *aggregate* daemon-wide cap (not per-renderer), and a breach OOM-kills inside the scope, which can include the daemon. It's the only non-racy memory bound, so size it for the whole fan-out. **Idle CPU.** Parked sessions can't burn cores either: the daemon SIGSTOPs a launched session's renderer processes after `VIBATCHIUM_IDLE_FREEZE_AFTER` seconds with no verb (default 90) and thaws them on the next call, so an idle WebGL / animation page drops to zero CPU without a teardown (default on; `VIBATCHIUM_IDLE_FREEZE=0` disables). ## Documentation - [`AGENTS.md`](AGENTS.md) — coding-agent contract (Codex / Cursor / Claude Code) ## Server modes | Mode | Surface | Auth | |---|---|---| | `vb mcp` | stdio JSON-RPC; defaults to the **lean** ~80-verb profile (`--caps=full`/`all` for the full surface; `--caps=...` for a custom bucket set) | n/a (stdio) | | `vb serve` | FastAPI on `127.0.0.1:8000`; every verb at `POST /v1/<verb>`; WebSocket live-view at `/v1/stream/<session>` | bearer token (`~/.cache/vibatchium/rest-token`, mode 0600) | **REST capability gating**: `vb serve --caps=core,nav,input,vision` restricts the HTTP surface the same way `mcp --caps` does. Without it, REST grants local-code-equivalent access (eval + secret_* + file-writing verbs all exposed) — safe for localhost dev, **not** for hosted/multi-tenant. ## Stealth tiers — what clears what Stealth is a ladder, not a boolean. Pick the lowest tier that clears your target (higher tiers cost more setup / a visible browser / a manual login). vibatchium does **not** claim cold-launch defeat of behavioral walls — those need a real human-driven session, and attach-mode is the honest answer. | Tier | How | Clears | Doesn't clear | |---|---|---|---| | **Standard** (default) | headless cold launch, real `channel=chrome`, de-Headless'd UA | Cloudflare IUAM / managed challenge, `bot.sannysoft` 31/31, JS-runtime fingerprinting | aggressive Turnstile, DataDome/Kasada, anything behind a login | | **Hardened** | retry `--headed`; `vb humanize on`; `--backend nodriver` (`pip install vibatchium[nodriver]`, AGPL) for the hardest Cloudflare gates | aggressive Cloudflare/Turnstile, GPU/screen tells that headless leaves | behavioral biometrics, DataDome/Kasada sensor-fusion | | **Attach** | `vb attach` to a Chrom
What people ask about vibatchium
What is trueoriginlabs/vibatchium?
+
trueoriginlabs/vibatchium is mcp servers for the Claude AI ecosystem. Stealth browser automation for AI agents — clears Cloudflare, one MCP server + N parallel persistent Chromes, credential vault, vision clicking, prompt-injection safety. 31/31 sannysoft, 594 tests. It has 3 GitHub stars and was last updated yesterday.
How do I install vibatchium?
+
You can install vibatchium by cloning the repository (https://github.com/trueoriginlabs/vibatchium) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is trueoriginlabs/vibatchium safe to use?
+
trueoriginlabs/vibatchium has not been audited yet by our security agent. Review the original repository on GitHub before using it in production.
Who maintains trueoriginlabs/vibatchium?
+
trueoriginlabs/vibatchium is maintained by trueoriginlabs. The last recorded GitHub activity is from yesterday, with 0 open issues.
Are there alternatives to vibatchium?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy vibatchium to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/trueoriginlabs-vibatchium)<a href="https://claudewave.com/repo/trueoriginlabs-vibatchium"><img src="https://claudewave.com/api/badge/trueoriginlabs-vibatchium" alt="Featured on ClaudeWave: trueoriginlabs/vibatchium" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface