Skip to main content

Client for the Oculr local Automation API: launch real browser profiles, pick a per-launch stealth level, and connect over CDP.

Project description

oculr (Python)

Thin Python client for the Oculr local Automation API. Launch real browser profiles on your own machine, choose a per-launch stealth level, and connect over CDP with Playwright or Selenium.

Zero runtime dependencies (stdlib only). Playwright is optional, for the connect_playwright() helper.

Install

pip install oculr
# optional, for connect_playwright():
pip install playwright

Usage

import os
from oculr import OculrClient
from playwright.sync_api import sync_playwright

# The desktop app shows the port and token under Settings.
oculr = OculrClient("http://127.0.0.1:8378", token=os.environ["OCULR_TOKEN"])

# Low-level: launch and get a ready CDP endpoint + driver recipes.
res = oculr.launch("de-store-01", stealth="balanced", headless=False)
print(res["ws_endpoint"])

# High-level: launch and connect a Playwright browser in one call.
with sync_playwright() as p:
    browser, _ = oculr.connect_playwright(p, "de-store-01", stealth="max")
    page = browser.contexts[0].pages[0]
    page.goto("https://example.com")
    oculr.stop("de-store-01")

Stealth dial

stealth is chosen per launch: "off" (clean Chromium, no fingerprint injection), "balanced" (native fingerprints, the default) or "max" (strongest noise). Overrides apply to that launch only and are never written back to the profile.

API

list_profiles(), create_profile(**body), get_profile(id), update_profile(id, **body), delete_profile(id), generate_profile(**body), launch(id, **options), stop(id), status(), connect_playwright(playwright, id, **options).

Errors raise OculrError with .status and .body.

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

oculr-0.1.0.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

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

oculr-0.1.0-py3-none-any.whl (4.1 kB view details)

Uploaded Python 3

File details

Details for the file oculr-0.1.0.tar.gz.

File metadata

  • Download URL: oculr-0.1.0.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for oculr-0.1.0.tar.gz
Algorithm Hash digest
SHA256 adbe22997d093cbcb604862244ddc3804190267f22b1ab0234952421429cef6a
MD5 2dd4a0a4163f7eea67937a5fb610ff00
BLAKE2b-256 5eccc8ae97239e0f4ac71a84420d3eed4030b1cf704321306ffec2bec765ce43

See more details on using hashes here.

File details

Details for the file oculr-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: oculr-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for oculr-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0f7e12001737b1435aafb5159409448654200d784cf7fd5ccf016f7dd447bdc5
MD5 000b2ce199dd1dd7c5cfbcc9c52f4412
BLAKE2b-256 97c35993db8e894cf72631f6e24a2624b1b079a17dcc99e7be198a464e23f20b

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