Skip to main content

Manage browser profiles across cloud storage providers

Project description

🚧 BrowserState for Python - COMING SOON 🚧

The Python implementation of BrowserState is under active development and will be available soon.

Why BrowserState?

Most browser automation workflows fail because authentication and session data don't persist reliably across environments. Manually handling cookies or re-authenticating slows everything down. Worse, many automations fail due to inconsistent browser fingerprints, machine IDs, and storage states—leading to bot detection and bans.

BrowserState ensures your automation behaves like a real, returning user by providing:

Full Browser Context Restoration – Save and restore cookies, local storage, IndexedDB, service worker caches, and extension data. Resume automation from the exact previous state.

Multi-Instance Synchronization – Share browser profiles across multiple servers or devices, making automation scalable and resilient.

Zero-Setup Onboarding for Automation – Instantly deploy automation-ready browser profiles without manual setup.

Efficient Resource Usage – Persistent browser usage without memory leaks, eliminating the need to launch new instances for every run.

Faster Debugging & Reproducibility – Store failing test cases exactly as they were, making it easy to diagnose automation failures.

Offline Execution & Caching – Automate tasks that rely on cached assets, such as scraping content behind paywalls or working in low-connectivity environments.

Cross-Device Synchronization – Seamlessly move between local development, cloud servers, and headless automation.

✅ Bot Detection Bypass Many bot detection systems track inconsistencies in browser states—frequent changes to fingerprints, device identifiers, and storage behavior trigger red flags. Most people get detected because they unknowingly create a "new machine" every time.

BrowserState solves this by preserving a stable, persistent browser identity across runs instead of resetting key markers. This drastically reduces detection risks while maintaining full automation control.

Now you can move fast without breaking sessions—or getting flagged as a bot.

Features (Coming Soon)

  • Save browser profiles (cookies, local storage, etc.) to different storage providers
  • Restore browser profiles on different machines
  • Support for multiple storage providers:
    • Local storage
    • AWS S3
    • Google Cloud Storage
    • Redis
  • Works with popular browser automation tools:
    • Selenium
    • Playwright
    • Puppeteer (via Pyppeteer)

Implementation Roadmap

Feature Status
Local Storage 🚧 In Development
S3 Storage 🚧 In Development
Redis Storage 🚧 In Development
GCS Storage 🚧 In Development

Installation (Pre-Release)

While BrowserState for Python is not yet available on PyPI, you can install it in several ways:

Using pip with GitHub repository

# Install directly from GitHub repository
pip install git+https://github.com/browserstate-org/browserstate#subdirectory=python

Using GitHub Packages (recommended)

Once we publish to GitHub Packages, you'll be able to install it using:

# Install directly from GitHub Packages (for public packages)
pip install browserstate --index-url https://pip.pkg.github.com/browserstate-org

# Using uv
uv pip install browserstate --index-url https://pip.pkg.github.com/browserstate-org

For permanent configuration, add this to your pip configuration:

pip config set global.extra-index-url https://pip.pkg.github.com/browserstate-org

Using uv (faster alternative)

# First install uv if you don't have it
pip install uv
# Or with pipx for isolated installation
pipx install uv

# Then install browserstate from GitHub
uv pip install git+https://github.com/browserstate-org/browserstate#subdirectory=python

From source

# Clone the repository
git clone https://github.com/browserstate-org/browserstate
cd browserstate/python

# Install with pip
pip install .

# Or with uv
uv pip install .

Once the package is officially released on PyPI, you'll be able to install it with:

pip install browserstate
# or
uv pip install browserstate

Want to be notified when Python support is released?

Watch our GitHub repository for updates or join our mailing list on browserstate.io.

In the meantime, check out our TypeScript implementation which is stable and production-ready.

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

browserstate-0.0.3.tar.gz (13.4 kB view details)

Uploaded Source

Built Distribution

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

browserstate-0.0.3-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

File details

Details for the file browserstate-0.0.3.tar.gz.

File metadata

  • Download URL: browserstate-0.0.3.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for browserstate-0.0.3.tar.gz
Algorithm Hash digest
SHA256 b2f752e4768aced1cb715479399025055c290269455ca93dad7968d5722092b0
MD5 0e58dd26a4f052c0401631aab68866a1
BLAKE2b-256 665bc68282432509cd1979e934b4b66a0c703655baf9f717d5b80b2aec85a8ee

See more details on using hashes here.

File details

Details for the file browserstate-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: browserstate-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 18.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for browserstate-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 75d949d2cebfdecc1bef596cbe54910b4e06363d3609428e10c9c1e92ba3db87
MD5 f743e89d3dc332adf1dddd73f18001ec
BLAKE2b-256 dfadf1e63b9a367c69cbd82a7b363c1baec9aa57070acef28dea13e9081cee8f

See more details on using hashes here.

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