Stealth Browser Agent
Under maintenancePricing
from $0.05 / 1,000 browser-session-seconds (or compute-unit seconds)s
Stealth Browser Agent
Under maintenanceHuman-like stealth browser session server on Apify RESIDENTIAL proxy — passes 7/7 bot-detection tests, snapshot-driven command API for LLM agents, live noVNC viewer, and Cloudflare-R2 persistent profiles for surviving logins across runs.
Pricing
from $0.05 / 1,000 browser-session-seconds (or compute-unit seconds)s
Rating
0.0
(0)
Developer
Reqeique
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
A hosted browser session that pretends to be human — and passes the tests your local scripts fail.
It runs a source-patched Chromium (CloakBrowser) with a sticky residential IP on Apify, exposes a snapshot-driven command API for LLM agents, and ships a live noVNC viewer plus optional Cloudflare-R2 profile persistence so logins survive across runs.
The Core: 100% Stealth
- 7/7 Bot-Detection Pass — scores green across the entire Sannysoft and rebrowser CDP passive leak-test suites.
- Sticky Residential IP — pins a single residential IP per run, preventing mid-session CDN panics and 404s from rotating IPs.
- Human-Like Input — Bézier cursor paths with natural speed ramps and aim jitter; per-character typing with thinking pauses. With VNC enabled these are driven through the real X11 pointer (visible in the viewer).
- Agent-Ready Accessibility Tree — stable
@eNlayout selectors so your LLM never reasons about raw CSS or pixel coordinates.
Modes & Inputs
| Input | Values | Default | What it does |
|---|---|---|---|
mode | server / batch / detect | server | Interactive session server · one-shot batch executor · 7-test bot-detection suite |
backend | cloak / zendriver | cloak | CloakBrowser (modified Chromium + Playwright API, humanize on) or zendriver (CDP + human mouse) |
vnc | bool | false | Head the browser on Xvfb and serve noVNC at GET /vnc — drive multi-step logins in your own browser |
session_name | string | — | Save/restore the browser profile (cookies, localStorage, logins) to Cloudflare R2 across runs. Same name = same profile |
persist | bool | auto | Pull/push the profile on start/interval/shutdown. Implied by session_name |
persist_interval_s | int | 300 | How often the live profile is re-uploaded to R2 |
prox country | ISO code | US | Apify RESIDENTIAL proxy country |
idle_timeout_s | int | 300 | Exit after N seconds with no commands (0 = only on close) |
R2 persistence is optional: it's a no-op when the R2_BUCKET_NAME /
R2_ENDPOINT_URL / R2_ACCESS_KEY_ID / R2_SECRET_ACCESS_KEY credentials
aren't set, so the actor runs fine with zero configuration.
Live noVNC viewer
With vnc=true the actor heads the browser and serves a viewer at:
https://<container-url>/vnc
You can click/type directly in your browser (great for CAPTCHA-only or login-gated steps), while an agent concurrently drives the same session through the command API.
Persistent profiles (R2)
Pass a session_name to pin a reusable profile:
- Start — downloads
<name>.tar.gzfrom R2 (fresh profile on missing archive). - Every
persist_interval_s+ on shutdown — re-uploads the profile. - Stale Chrome lock files (
SingletonLocketc.) from aborted runs are cleared before launch, so restoring an interrupted profile never crashes the browser.
1-Line CLI Client (Public)
The open-source undercover-driver client drives the private Apify server:
# macOS / Linuxcurl -fsSL https://raw.githubusercontent.com/Reqeique/undercover-driver/main/install.sh | sh# Windows PowerShellirm https://raw.githubusercontent.com/Reqeique/undercover-driver/main/install.ps1 | iex
Note: the CLI client is fully public (MIT); the server-side stealth engines stay private.
Drive the session
export BROWSER_URL=https://<container>.runs.apify.netexport BROWSER_TOKEN=<auth_token>undercover-driver goto https://target-protected-site.comundercover-driver snapshot # -> layout output with @e1..@eN targetsundercover-driver click @e3 # -> clicks via human-like Bézier pathundercover-driver verify_cf # -> auto-solves Cloudflare Turnstileundercover-driver vnc # -> print the noVNC viewer URL
Zero-config: one token, no setup
With only an Apify API token, the CLI attaches to the most recent RUNNING run — or starts a fresh server session and waits for it to boot:
export APIFY_TOKEN=<apify-api-token> # the only thing you needundercover-driver goto https://target-protected-site.com
Resolution order:
BROWSER_URL/--url— if set, used as-is.- Latest RUNNING run of the actor → its container URL.
- Otherwise a new server session is started (
mode=server, cloak backend, US residential proxy, 1 h idle timeout) and polled until ready.
The new session's auth_token is your CLI bearer token, so the same
APIFY_TOKEN resolves, starts, and authenticates the session. For
attach-only behavior, pass --no-autostart / AB_NO_AUTOSTART=1; point at a
different actor with --actor-id / APIFY_ACTOR_ID.
Pricing — The Real Cost
Apify platform usage costs are passed through (at cost) with a small session-time margin:
| Line Item | Rate | Usage |
|---|---|---|
| browser-session-seconds | $0.0694 / 1,000 sec | Session margin (~$0.25/hr) |
| Compute units | $0.20 / CU | Apify at cost (2 GB container × 1 hr = 2 CU) |
| Residential proxy | ~$8 / GB | Apify at cost (dominant line under heavy load) |
The actor runs at 2 GB memory (measured peak 1.3 GB, median 700 MB). Time-based cost works out to ~$0.65/hr; only proxy traffic pushes it higher.
Realistic Scenarios
- Smoke run (~1 min): ~$0.05
- Quick check (~10 min): ~$0.10
- ~1 hour light session: ~$0.65
- Heavy hour (250 page loads, ~1 GB proxy traffic): ~$8.65 (proxy dominates)
License
Proprietary — server-side closed source. Run it on Apify; the core stealth code is not published.