Skip to main content

Production-grade, human-mimicking browser automation framework for autonomous agents. Survives modern anti-bot systems.

Project description

Agentic Stealth Browser

Playwright gets detected. This doesn't.

CI License: MIT Python 3.11+ PyPI Tests GitHub Stars Buy Me A Coffee

Agentic Stealth Browser Demo

Production-grade stealth browser automation that survives Cloudflare, LinkedIn, Amazon, and other anti-bot systems by looking convincingly human at every layer.

pip install agentic-stealth-browser
playwright install --with-deps chromium
from core.agent_browser import AgentBrowser

async with AgentBrowser(session_name="demo") as browser:
    await browser.launch(headless=True)
    await browser.safe_goto("https://bot.sannysoft.com")
    # ✓ passes WebGL, Canvas, AudioContext, WebRTC, and TLS fingerprinting

Why vanilla Playwright fails

Sites don't just check your User-Agent anymore. They check everything:

Attack Surface Vanilla Playwright This library
TLS handshake (JA3/JA4 fingerprint) Standard Python TLS — instantly identifiable Region-spoofed profiles (US, Japan, EU, Korea)
Navigator APIs (navigator.webdriver, plugins, languages) Leaks automation flags everywhere Every property patched before first paint
WebGL / Canvas fingerprint Headless GPU renders differently Consistent buffers across sessions
Human behavior Robotic clicks, instant typing Bézier mouse curves, variable speed, fatigue simulation
Auto-recovery None — blocks = failure CAPTCHA detection → proxy rotation → retry chain
Account warming Nothing 14-day graduated ramp-up per account

Result: passes bot.sannysoft.com, pixelscan.net, and CreepJS with zero flags in headless mode.


Quick Start

CLI (easiest)

# Health check + stealth fingerprint test
stealth-browser health --preset linkedin_2026 --region us

# Start the operator dashboard
agentic-stealth-browser dashboard

Python SDK

from core.agent_browser import AgentBrowser

async with AgentBrowser(
    session_name="my-session",
    region="japan",
    headless=True
) as browser:
    await browser.launch()
    await browser.safe_goto("https://example.com")
    # TLS-spoofed, no webdriver leak, human-like interaction ready

MCP (for AI agent clients)

{
  "mcpServers": {
    "stealth-browser": {
      "command": "python",
      "args": ["-m", "production.mcp_server"]
    }
  }
}

Then: stealth_launchstealth_navigatestealth_scrapestealth_close.

Attach to an existing browser (WSL → Windows, container → host)

Instead of launching a new Chromium, you can attach to a Chrome you already have running with --remote-debugging-port=9222:

async with AgentBrowser(session_name="attached") as browser:
    await browser.attach_over_cdp(
        "http://127.0.0.1:9222",   # or the Windows host IP from WSL
        new_context=True,           # don't disturb the user's tabs
    )
    await browser.safe_goto("https://bot.sannysoft.com")
    # close() will NOT terminate the external browser

See docs/ATTACH_OVER_CDP.md for the WSL→Windows walkthrough, the MCP stealth_attach_over_cdp tool, and the stealth degradation matrix (init-script stealth still applies; TLS/JA3 does not).


Key Features

Feature What It Does
TLS Fingerprinting JA3/JA4 region profiles
Human Behavior Mouse wobble, typing mistakes, fatigue, distraction
Auto Recovery Block detection → proxy/session rotation → retry
Account Warming 14-day gradual ramp-up for new accounts
Workflow Orchestrator Queue, schedule, domain concurrency, retries, persistence
Python SDK StealthClient — async API without MCP
Security Governance Input validation, session isolation, policy engine, approval gates
Adaptive Stealth Per-domain behavior profiles with FeedbackStore telemetry
Plugin System Lifecycle hooks via BasePlugin
Operator Dashboard Live DevTools, CAPTCHA intervention, workflow recording
Feature Flags Runtime capability discovery per browser backend
Performance Profiling Timing decorators + perf_benchmark.py

New in v2.3.0

  • Show HN launch — README overhaul, demo GIF, streamlined community onboarding
  • Buy Me A Coffee — sponsor the project directly
  • PID trackingAgentBrowser._browser_process for external process monitoring
  • PyPI publish automation — OIDC trusted publishing on every release tag

See CHANGELOG.md for the full release history.


Full Documentation

  • Operator Dashboard — Grok/X-inspired dark UI, live browser view, CAPTCHA solving, workflow recording
  • Workflow Orchestrator — queue, schedule, chain workflows with domain-aware concurrency
  • Security — input validation, session isolation, policy engine, approval gates
  • SDKStealthClient async API without MCP
  • Plugins — lifecycle hooks for custom behavior
  • VPS Deployment — systemd, Caddy reverse proxy, Cloudflare Tunnel patterns
  • Migration v1 → v2 — deprecation shims, migration guide, script

Additional references: CHANGELOG.md · Workflow Library · Migration Guide


Project Structure

├── core/           AgentBrowser, connection pool, session checkpoints
├── stealth/        TLS, scripts, Firefox adapter, caching
├── behavior/       Human simulation, personas, adaptive tuning
├── recovery/       Anti-block orchestrator
├── workflows/      Recorder, player, schema, library
├── production/     MCP server, SDK, orchestrator, security, profiler
├── plugins/        Plugin system with template
├── scripts/        Migration, evaluation, benchmarking
└── tests/          890+ contract + integration tests

License

MIT. See LICENSE and CHANGELOG.md.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agentic_stealth_browser-2.4.0.tar.gz (295.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agentic_stealth_browser-2.4.0-py3-none-any.whl (225.0 kB view details)

Uploaded Python 3

File details

Details for the file agentic_stealth_browser-2.4.0.tar.gz.

File metadata

  • Download URL: agentic_stealth_browser-2.4.0.tar.gz
  • Upload date:
  • Size: 295.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for agentic_stealth_browser-2.4.0.tar.gz
Algorithm Hash digest
SHA256 50c6f362f4f9991b04bec8fa6ee755a7ff25db33d8feeccbc63bf1f60c6fce0a
MD5 e2afb2fd0b813189848916083c9ef746
BLAKE2b-256 e836db084ba8d963644a3afe4eed528e204c554947ec000b65b8161fde07c27d

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentic_stealth_browser-2.4.0.tar.gz:

Publisher: publish.yml on shanewas/agentic-stealth-browser

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agentic_stealth_browser-2.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for agentic_stealth_browser-2.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8333dd25bc1c9ba5601b33e437ce0cf15979a91b08b4467456a215425af498fd
MD5 4652aefea22bdf479a94d29a19d0d7b9
BLAKE2b-256 153d7278b73211eaad936ef40128ebbbb9f92e6d72b2e674ae8bd7cf5a00d47d

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentic_stealth_browser-2.4.0-py3-none-any.whl:

Publisher: publish.yml on shanewas/agentic-stealth-browser

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page